본문 바로가기

Unity

유니티 애니메이션 리깅 작업 -어깨편- (1)

 

 

앞서 글들에서 평어체(반말체)를 썼습니다만 이제 부터는 경어체(높임말)로 작성하도록 하겠습니다.

 

 

 

Unity를 사용하는 게임이나 버튜버 아바타 프로젝트에서 3D 캐릭터를 제작하게 되면 직면하는 문제가 있습니다.

 

'리깅'

low 폴리곤이 대세를 이루던 모바일 게임 시장과 달리

 

최근 유저들의 눈높이가 높아져 고퀄리티 아바타가 많이 나오는 추세입니다.

 

출처 : [인벤] 덕심 재충전, 2025 서브컬쳐 기대작 10선

 

스텔라 블레이드나 갓오브워 정도의 AAA급 대작 게임이 아니라 중소규모 스튜디오에서 개발되는 게임이나 'BOOTH'로 대표되는 버튜버 아바타에서 활용할 만한 리깅 기술을 이야기 해보도록 하겠습니다. 

 


 

리깅에서 가장 골치가 아픈 것은 뭐니뭐니해도 어깨 일 것입니다.

 

많은 리거들께서 어깨에서 발생하는 캔디랩 현상을 없애기 위해 이런 저런 많은 Constraint 와 스크립트 등을 사용하고 계십니다만..


어디까지나 이건 3D 툴 내에서만 가능합니다.....

3d 툴에서 제작한 constraint 와 스크립트들은 fbx로 export 하는 순간 그 데이터들은 없어진다고 보시면 됩니다.

(MAYA의 경우 Constraint 가 export 됩니다만..실제로 유니티에서 사용이 불가능 경우가 많습니다.)

 

https://cafe.naver.com/pinksox/2175

 

하지만 이 셋팅을 유니티로 가져가면 (export to .fbx)

 

 

3dsmax

 

Unity

 

잘되던 어깨 트위스트 본이 부모본(상박)에 따라 움직여서 캔디랩 (꼬임) 현상이 일어나게 됩니다.

 

이 때문에 많은 작업자들은 트위스트 본의 애니메이션 키 값까지 함께 export 하였고,

애니메이션을 가져가지 못하는 버튜버 프로그램에서는 이 기능을 제대로 쓰지 못해 어깨 꼬임 현상을 방치 했습니다.

 

또한 휴머노이드 방식으로 외부 애니메이션을 불러오게 될 경우도 상박 트위스트 본에 키 값이 없어 꼬임현상이 발생합니다.

 

(그래서)

 

이제부터 하는 설명은 작업 난이도가 높아,유니티 중급자 이상 분들께 추천드립니다.

 

 

 

 

1. 3D툴에서 상박 트위스트 본을 설치 합니다. 

Biped Twist 를 쓰셔도 무방합니다.

https://youtu.be/Rn_1IpWWSuM?si=WvCINqg1C2Wr_Zbp

저는 위 링크에 있는 트위스트 본 스크립트를 사용합니다.

 

 

 

 

 

2. 유니티로 가져와서

 

 

 

설치한 트위스트본을 UpperArm 의 자식에서 Clavicle의 자식으로 옮깁니다.

 

 

 

 

 

 

 

아래 부터는 조금 어려우니 자세히 보시고 따라하시기 바랍니다.
Clavicle 자식으로 트위스트본 의 본래의 rotation의 값을 저장해 놓기 위한 빈 오브젝트를 만듭니다.

 

트위스트 본의 World Transform 값을 복사 하여,

 

트위스트 본의 본래 rotation 값을 복사 붙여 넣기 합니다.

 

 

머리 복잡해 지시겠지만...좀 더 따라 오세요

 

 

 

본래의 Bone * UpperArm Twist에 Look At Constraint를 설치 하고 위와 같이 셋팅 합니다.

Is Active = True

Use Up Object = True

World Up Object = Spine2

Sources = * Forearm

 

 

이후 보시게 되면

 

 

 

억...

 

 

 

 

 

속이지..않았습니다.

 

 

잠시 머리 식히고

 

 

빨간 네모에 있는Rotaion Offset (X,Y)에 수치값을 넣어서,
녹색 네모안 Bone * Twist 의 Rotation 값을, 파란 네모 의 Rotation 값과 동일하게 만들면 됩니다.

 

이 작업은 하나하나 수치값을 넣어 보시기 보다는,

X,Y Rotation Offset 에 ±90º 의 값을 넣어 보시고 근사값이 나오면 그때부터 세밀하게 값을 바꿔보시는걸 추천드립니다.

 

저는 x = -112.512 y = 90 으로 나왔습니다.

 

 

이후 Constraint Settings Lock = True 로 설정하시고 유니티에서 Biped 상박을 움직이시면

 

 

 

 

 

얼라?? 나름 그럴듯??

 

 

아직 X축 Rotation Twist 가 작동하지 않으나(다음글에 추가로 설명하겠습니다) 나름 그럴듯한 어깨 본이 완성되었습니다.

기본적으로 이 셋팅은 twist bone의 bake animation이 없어도 자체 유니티 Constraint로

어깨 캔디랩 현상을 줄일 수 있는 노하우 입니다.

 

 

이제 팔꿈치와 뾰족해지게 리깅 셋팅 하는 법 (in Unity)와 상박 트위스트 작동하게 하는 법 (in Unity)를 

다음 어깨편 (2)에 이어 작성하겠습니다.