본문 바로가기
[Research]/Unity & VR

[Unity] Generic Animation Clip Mirroring 하는 방법

by 늘품비 NeulpumB 2023. 5. 25.

아래 내용은 본인 참조용이며, 잘못된 정보가 있을 수 있습니다.

0) 사용한 기기 및 세팅: Unity 2021.3.18f1 3D URP

0) 준비물: 애니메이션이 삽입되어 있는 object (Hierarchy에 import 해두기)

 


위와 같이 generic animation clip 단일 파일을 가지고 mirror를 하는 방법은 아직 찾지 못하였다.

 

 

따라서, 아래는 animation을 포함한 humanoid FBX 파일을 사용하여 mirror를 진행하는 방법이다.

 

1) Hierarchy에서 Animation이 삽입되어 있는 object를 선택한다.

이때, Animation이 삽입되어있는지는 [Inspector의 Animator Controller에 Controller가 포함되어 있으며, Controller에 Animation clip이 포함되어 있는지]를 확인함으로써 알 수 있습니다 (아래 그림 확인)

 

2) 해당 오브젝트 위에서 우클릭 > Export To FBX를 선택한다.

만약, 이 옵션이 보이지 않는 경우 FBX converter가 설치되지 않은 것이므로, 아래 링크를 참고하여 설치한 후 진행한다.

https://neulpumb.tistory.com/entry/2304191438

 

[Unity] obj 파일(혹은 일반 오브젝트)을 fbx 파일로 export하는 방법

아래 내용은 본인 참조용이며, 잘못된 정보가 있을 수 있습니다. 0) 사용한 기기 및 세팅: Unity 2021.3.18f1 3D URP 1) package manager에서 FBX exporter를 설치한다. 2) fbx 파일로 저장할 게임 오브젝트들을 선

neulpumb.tistory.com

 

3) [Export Name]을 수정한 후, [Options > Include]에 Model과 Animation이 모두 포함된 옵션으로 선택되어있는지를 확인하고 Export를 누른다.

새로 생성되는 fbx는 [Export Path]에 저장된다.

 

4) 저장된 새로운 FBX 파일을 선택하여 Inspector > Rig > Animation Type에서 [humanoid]를 선택한 뒤 Apply를 누른다.

이 부분을 humanoid로 바꾸지 않으면 mirror 옵션이 생성되지 않는다.

 

5) Animation에서 FBX에 포함된 animation clip이 제대로 포함되어 있는지를 확인한다. 만약 원한다면 이 구간에서 이름을 바꿀 수 있다.

6) Mirror를 할 새로운 animation clip을 복제하기 위해 +을 클릭합니다.

 

7) 반전시키기를 원하는 clip(새로 생성한 animation clip)을 선택한 상태로 Mirror 옵션을 체크 > Apply

 

8) 이러면 Male@Pointing2라는 새로 생성된 FBX 파일 안에 아래와 같이 Animation Clip이 두 개 생긴다.

아래 그림의 경우, LP_male이 원래 있던 animation clip & RP_male이 mirroring한 animation clip

 

9) 새로 생긴 FBX 파일을 hierarchy에 배치한 후 Inspector > Animator에 Animation Controller을 새로 생성하여 추가한다.

 

10) FBX 파일에서 Animation 파일을 복제한다.

 

11) 복제한 animation파일 중 mirroring 된 것을 Controller에 삽입한다.

 

12) Run하여 제대로 mirroring되었는지 실행해본다.

 


+) 위의 방법대로 했을때, 나의 경우 mirroring한  animation clip이 어딘가 모르게...자세가 삐딱하다. 왜지

+) 아래 그림에서 좌측이 원본, 우측이 mirroring한 클립.

+) 우측...무슨 일이지 진짜

+) 해결되면 업데이트 예정

 

+) 위의 문제는 default avartar의 rotation z값이 애니메이션이 시작됨과 동시에 초기화 되면서 발생하는 것 같다.

이를 해결하기 위해서는 처음 시작할 때 default 모션이 기울어지지 않은 상태의 오브젝트를 기준으로 애니메이션을 만들어야 할 것 같다

+) 해결책 링크: 


ref)

https://learnandcreate.tistory.com/537