이것 저것 개발하고 만들어보기
article thumbnail

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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 안의 애니메이션 클립들을 확인해 복사하여 위와같은 작업을 반복해주면

 

자신만의 애니메이션 포즈를 만들 수 있습니다.

profile

이것 저것 개발하고 만들어보기

@Tintana'k