1. 추 캐릭터 IK 시스템 병합
주인공 캐릭터를 플레이어가 조작하는 캐릭터로 설정하는 중에 있습니다.
하지만 지금 생각해보니, 얼굴 모델링이 아직 제대로 준비가 되어있지 않은 상태에서 진행하는 것은 무의미하다고 판단이
되네요. 그리고 언리얼 5에서 제공하는 샘플 캐릭터 (Manny/Quinn)에 탑재되어 있는 ik foot 리그를 제가 만든 캐릭터에
적용하려하고 있는데, 오늘 오후내내 씨름했으나 결국 해결하지 못했습니다.
단순 복붙이 아닌, 기술적인 부분에서 트러블 슈팅을 해야할 것 같아요.
현재 언리얼 포럼에 문의가 들어간 상태이지만, UE5가 공개된지 얼마 안된 상태라 답이 쉽게 달릴지는 모르겠어요.
한번 더 파봐야겠습니다.
- 처음에 위 문제의 원인이라 예상했던 캐릭터의 Root 위치 값이 계속 0,0,0가 아닌 이슈가 있었습니다.
이것도 물론 제대로 작동하지 않는 원인 중에 하나였지만 결국 해결하지 못했습니다. (아래 GIF 참고)
이슈에 대해 짧게 언급하자면, 마야에서 분명 root 본의 포지션 값이 0,0,0에 있는데,
언리얼로 import하면 계속 임의값이 추가되서 인식을 하더군요. ROOT 본에 값이 들어가있으면 Root motion부터 시작해서 여러가지 이슈가 생길 수 있습니다. 이걸 간과하고 계속 작업하다보니 결국 이러한 사태가 일어난 것이죠.
긴 우여곡절 끝에, 캐릭터 메시내에 피봇이 정상 위치에 있지 않은 것을 확인했습니다.
결국 스키닝을 다 풀고, 피봇위치를 재조정한 후에 다시 스키닝을 해야했죠.
메시의 형태가 비스무리할 경우, 위와 같은 경우일 때에 굳이 처음부터 스키닝을 해주시지 않으셔도 됩니다!
새로운 메시에 자동 스키닝 방법 :
// 스키닝 되어있는 메시 선택 후, 복사하신 메시를 동시 선택 후에, 아래 MEL 스크립트를 입력해주면 됩니다.
string $sel[] = ls -sl;
string $cluster = findRelatedSkinCluster $sel[0];
string $joints[] = listConnections -s 1 -d 0 ($cluster + ".matrix");
select -r $sel[1];
select -add $joints;
SmoothBindSkin -tsb -ta;
string $newCluster = findRelatedSkinCluster $sel[1];
copySkinWeights -ss $cluster -ds $newCluster -nm;
다음부터는 export할 때, 캐릭터의 오리진 값을 확인해주세요. 아, 스키닝 하기 전에..
내일은 언리얼에서 제공한 Echo를 레퍼런스로, 캐릭터의 Bone 구조와 메시구조를 어떻게 준비를 해야할지 점검하고,
추후 계획을 세우려합니다. 빨리 얼굴을 완성시켜야겠습니다.
위 스샷에 있는 문제를 드디어 해결했습니다.ㅠ.ㅠ
지푸라기라도 잡는 심정으로 언리얼 포럼에 질문을 올렸는데, 답으로 걸어주신 링크영상이 힌트가 됐어요. :D
위 영상에 보시면, ik로 활용할 Bone들을 언리얼 내에서 Virtual Bone을 추가해주는 과정이 있습니다.
저 같은 경우에는, 마야에서 임의로 본을 만들어줘서 Hierarchy에 추가해주기만 했는데(나름 축도 정렬해줬는데ㅠ)
아마 위치나 회전값도 문제였을 수 있었나봅니다. 영상과 같이 Foot_l , Foot_r 값을 참고해서 Virtual Bone을 만들어줘서 적용해보니 문제가 없네요. 다행입니다. 하루를 씨름했네요!