VRChat의 아바타들은 VRC에 맞는 전용 애니메이션 파일이 필요합니다.
그러므로 SDK에 기본적으로 존재하는 애니메이션 클립 파일을 가져와 포즈를 만드는 편이 좀 더 편합니다.
(SDK 가 임포트된 본인의 프로젝트 이름)\Assets\VRCSDK\Examples3\Animation\ProxyAnim
이 경로로 가면 여러가지 애니메이션 클립이 있는데, VRCaht 내에서 캐릭터를 조작하면 볼 수 있는
기본적인 애니메이션들이 존재합니다.
우리는 이 클립을 사용해서 아바타의 기본 포즈를 변형해 보려고 합니다.
(필자는 C를 누르면 나오는 앉기 포즈를 바꾸고자 합니다)
원본 파일은 계속해서 남겨두는것이 좋기 때문에, 기본 앉기 애니메이션을 복사해줍니다.
단축키 Ctrl + D 를 눌러서 복사 해 줄 수도 있습니다.
(SDK 가 임포트된 본인의 프로젝트 이름)\Assets\VRCSDK\Examples3\Animation\Controllers
안의 vrc_AvatarV3LocomotionLayer라는 AnimationController를 열어보면 Crouching이라는 이름의 State가 존재합니다.
해당 State 를 더블클릭해서 들어가보면, BlendTrees 라는 타입의 애니메이션이 있는것을 확인 할 수 있습니다.
Motion 탭의 애니메이션 클립들을 클릭하면, 어떤 애니메이션이 들어가 작동하는지도 확인 할 수 있습니다.
Asset Lavels 창을 확대해서, 해당 포즈가 어떤 포즈인지도 확인 해 볼 수 있습니다.
(SDK 가 임포트된 본인의 프로젝트 이름)\Assets\VRCSDK\Examples3\Animation\BlendTrees
안에 해당 앉기 모션의 BlendTree 파일도 직접 확인 할 수 있습니다.
가능하면 원본 파일을 변형하지 말고, 복사해서 본인의 폴더에 따로 분류해 줍시다.
본래라면 LocomotionLayer Animation Controller는 Animator 탭에 들어가면 안됩니다.
VRC Avatar Descriptor에 Bese에 들어가고 Animator 탭의 Controller 는 None으로 비워줘야 합니다.
하지만 포즈를 만들고 유니티 내부에서 포즈를 확인해 보기 위하여 해당 Controller에 컨트롤러를 넣어주고 난 뒤,
Animator 창에서 Crouching State 의 BleendTree를 복사해준 본인의 BleendTree로 바꿔줍니다.
이후 Window 메뉴에서 Animation 탭을 열어 포즈를 바꾸고자 하는 캐릭터를 Hierachy에서 선택 해 준 뒤,
Animation 탭에서 해당 아바타에 적용된 애니메이션들이 보이는지 확인합니다.
Hierachy에서 캐릭터를 선택했는데도 Animation 탭에 뜨는것이 없다면,
선택한 아바타의 Inspector 창 Animator 탭에 Controller가 None인지 확인해 줍니다.
밑줄 친 곳을 클릭해 애니메이션을 바꾸고 타임라인을 마우스로 드래그 해주면 해당 애니메이션의 모션이
잘 작동하는지 확인 할 수 있습니다.
이는 인간형인 캐릭터에서 확인 할 수 있고, 아바타가 Humanoid 상태일때 확인 해 줄 수 있습니다.
만약 이럼에도 애니메이션이 변화가 없다면 원본 FBX 파일이 Humanoid 가 아니거나,
프리팹의 Animator의 아바타 항목이 누락됐을 수 있습니다.
원본 FBX 파일의 Rig 탭에서 Animation Type이 Humanoid 인지 확인하고,
아바타 프리팹에서 Animator의 Avatar가 원본 FBX 파일의 아바타인지 확인해 주어야 합니다.
다시 바꾸고자 하는 아바타 프리팹에 들어가, 해당 Animator Controller 의 Crouching State 의 기본 앉기 모션을
처음에 복사했던 Animation 파일을 넣어줍니다.
이러면 Animation 탭에서 본인이 넣었던 애니메이션 파일의 이름이 뜹니다.
이 애니메이션 파일의 이름을 클릭 한 뒤에, 타임라인 드래그로 애니메이션이 작동하는지 다시한번 확인합니다.
이후 Animation 탭에서 REC 키를 누르면 "녹화중" 이라는 표시로 타임라인이 빨갛게 변합니다.
Animation 탭에서 애니메이션 항목 마다 표시한 곳을 클릭하고, 좌 우로 드래그하면 해당 애니메이션의 수치가 변하면서 캐릭터의 포즈가 바뀝니다.
이를 이용해 각 항목마다 어떤 부위가 움직이는지 확인하고, 본인만의 포즈를 만들어 주면 됩니다.
이때 주의해야 할 점은, Animation 키가 1프레임이 아닌 2프레임이나 3프레임에 찍히고 있지 않는지 확인합니다.
2프레임이나 3프레임등에 찍혀도 사실상 큰 문제는 없지만, 나중에 이 애니메이션 클립을 다른 아바타에 넣을 때
문제가 생길수도 있기 때문에 1프레임에만 해당 키를 삽입하는것을 추천합니다.
가능하면 예쁜 포즈의 레퍼런스를 보면서 잡는게 좋습니다.
이렇게 아저씨같은 포즈 말고...
포즈를 다 만드셨다면, Animator 항목의 Controller 항목은 None으로 비우고,
Base 탭에 컨트롤러가 작업한 컨트롤러가 제대로 들어가 있는지 확인해줍니다.
이후 SDK 툴로 해당 아바타를 Build 한 뒤에, 인게임에서 포즈가 잘 적용되어 있는지를 확인합니다.
인게임 내에서 잘 출력이 된다면 포즈 바꾸기 성공입니다.
이 외에도 Locomotion 애니메이션 컨트롤러에는 각 상태의 State를 바꿔줄 수 있습니다.
해당 State의 BlendTree 안의 애니메이션 클립들을 확인해 복사하여 위와같은 작업을 반복해주면
자신만의 애니메이션 포즈를 만들 수 있습니다.
'VRChat > VRC Avatar SDK' 카테고리의 다른 글
[VRChat] 상대방과 상호작용하는 애니메이션 만들기 -VRC Contact- (1) | 2022.07.22 |
---|---|
[VRChat] 상대방과 상호작용하는 애니메이션 만들기 -Physics Bone Parameter- (0) | 2022.05.31 |