Unity

Generic Animation Type의 3D Model에 Avatar Mask 적용시키는 방법

CommitGuy 2024. 11. 7. 00:11

3D 모델에 애니메이션을 적용시킬때 애니메이션 클립의 모든 동작을 다 적용시키고 싶지 않을때가 있다

다리의 움직임 혹은 손의 움직임만 적용시키고 싶을때도 있는데 그럴때 사용하는 방법이 Avatar Mask 이다

 

3D 모델의 Animation이 Humanoid 타입인 경우에는 Avatar Mask에서 Humanoid 탭을 이용해 손쉽게 적용시키고자 하는 부위와 적용시키지 않고자 하는 부위를 선택할 수 있다

 

Humanoid Animation Type의 AvatarMask

 

적용시키고 싶지 않은 부위는 클릭 하여 빨간색으로 만들면 적용되지 않게 된다 반면 초록색은 적용시킬 부위이다

 

이 글에선 Humanoid Type의 Animation Type이 아닌 Generic Type의 Animation Type을 가졌을 경우 아바타 마스크를 어떻게 적용하는지 알아보자

 

우선 Avatar Mask를 적용시킬 3D 모델을 클릭해 Animation Type을 확인해보자

Generic Animation Type을 가진 3D Model

3D 모델을 클릭 후 Inspector에서 Rig를 확인해보면 Animation Type이 있는데 인간 형태의 3D 모델이지만 Generic Type의 Animation Type을 가지고 있다

이런 경우 Avatar Mask 를 Humanoid로 만들어주게 되면 Avatar Mask가 적용되지 않게 된다

 

Avatar Mask를 적용시키기 위해선 Avatar Definition을 통해 3D Model의 Avatar를 생성해 주어야 한다

Avatar Definition을 사용해 3D Model의 Avatar 생성

 

"Create From this Model" 을 클릭 하고 Root Node를 설정해 주고 난뒤 Apply 버튼을 누르면 3D Model 안에 Avatar가 생성된것을 확인할 수 있다

 

3D Model 안에 Chef_HatAvatar로 아바타가 생성됨

 

이제 이 아바타를 이용해 아바타 마스크를 만들것이다

Avatar Mask 파일을 생성후 HuManoid가 아닌 Transform 탭으로 들어간다

Transform 탭 안에 Use skeleton from 이라는 부분이 보이는데 거기에 생성한 Avatar를 Assign 한 후 Import skeleton 버튼을 클릭한다

Non Humanoid Avatar Mask

3D Model의 Hierarchy가 보이는데 여기에서 내가 애니메이션을 적용시킬 부분과 적용시키지 않을 부분을 선택한다

체크를 하면 애니메이션을 적용할 부위, 체크를 하지 않으면 애니메이션을 적용시키지 않겠다는 의미이다

 

필자의 경우 다리만 애니메이션을 적용시키고 싶고 팔은 적용시키고 싶지 않아 팔에 해당하는 Shoulder부분은 전부 uncheck했다

 

이렇게 해서 만들어진 Avatar Mask는 애니메이션으로 이동해 적용하고자 하는 애니메이션 레이어에 할당해주면 된다

Animation Layer에 Mask 적용

애니메이션 레이어 옆에 톱니바퀴 버튼을 클릭 후 Mask에 내가 생성한 Avatar Mask를 적용해주면 끝이다

 

아래 영상은 Avatar Mask를 적용하기 전/후 입니다