언리얼에서 VRM 아바타의 Spring bone을 애니메이션 블루프린트에서 사용할 수 있는데, 방법은 아래와 같다.
VrmSpringBone이라는 노드를 연결해서 Ouput Pose 노드에 연결하면 헤어라던지, 옷이라던지 Spring bone에 적용되어있는 본이 움직이는것을 확인할 수 있다.
하지만, 위와 같이 노드를 적용했음에도 움직이지 않으면 Spring bone 데이터가 없는것이다.
언리얼에서 VRM을 임포트하면 같이 생성되는 에셋 중, meta 파일이 존재할 것이다.
meta 파일을 열어보면 Rendering 카테고리에 VRMSpring Meta
가 있는데 Array element를 확인해보면 0으로 표시된 것을 확인할 수 있을것이다.
VRM 아바타에 Spring bone을 사용하고 싶으면 여기에 데이터가 들어가 있어야 정상적으로 작동한다.
언리얼에서 Array element로 추가해줄 수도 있는거 같긴 하지만(직접 해보지는 않음), 필자는 유니티에서 작업하는게 더 수월하다고 판단하여 유니티에서의 해결방법을 서술한다.
해결방법
1. 유니티에서 익스포트한 VRM 에셋을 유니티로 임포트
VRM 에셋을 임포트한 뒤, 아바타의 프리팹을 씬에 로드한다.
여기서 아바타의 하이어라키를 확인해보면 Secondary
게임오브젝트를 확인할 수 있다.
2. VRM Spring Bone 컴포넌트 설정
Secondary
를 클릭한 뒤, 인스펙터창을 확인해보면 VRM Spring Bone
컴포넌트를 확인할 수 있다.
해당 컴포넌트에서 Root Bones
에 Spring Bone을 적용할 본의 루트를 넣어주면 된다.
※ 헤어가 움직이면서 몸통을 뚫는 현상은 Collider 카테고리를 설정해주면 된다.
3. 설정한 아바타를 다시 Export해준 뒤, 언리얼로 Import한다.
언리얼로 임포트한 뒤, meta 파일을 열어서 VRMSpring Meta
의 데이터를 확인해준다.
위와 같이 VRMSpring Meta
항목에 Array elements에 데이터가 들어가있는 것을 확인할 수 있다.
+) 위와 같이 했는데도 Spring bone이 작동하지 않는 경우
애니메이션 블루프린트 파일을 열어서 VrmSpringBone노드를 클릭해서 Detail을 확인하면 Vrm Meta Object가 비어있을 수 있기 때문에 확인 후, Meta 파일을 설정해준다.
결과
'Develoment > Unreal' 카테고리의 다른 글
[언리얼] 애니메이션 리타게팅 시, 루트 모션이 적용되는 문제 (0) | 2024.03.10 |
---|---|
[언리얼] 애니메이션 Foot IK 적용 안되는 문제 (0) | 2024.03.09 |
[언리얼] VRM 리타게터 수정하기 (0) | 2024.03.08 |
[언리얼] VRM 임포트한 모델의 BlendShape가 오작동하는 경우 (0) | 2024.03.08 |
[언리얼] 위젯 Handled, Unhandled 차이 (0) | 2023.07.31 |