캐릭터가 목을 90도 이상 돌렸을 때 시점과 고개 방향이 고정된 채로 나머지 몸체만 그 방향으로 회전하는 기능을 구현하였습니다.

 

 

작업하면서 몇가지 난항이 있었는데 이를 공유하고자 합니다.

 

1. 몸은 회전하는데 고개가 원래 방향으로 리셋되는 현상

고개를 우측으로 90도 돌리면 몸체만 돌아가야 하는데 고개도 정면으로 돌아간 상태에서 캐릭터가 통째로 회전하는 현상입니다.

그냥 애니메이션만 나오면 크게 체감이 안될 수 있지만, 고개와 시점을 고정하면 시점이 휙휙 돌아가 매우 어지러웠습니다.

이를 수정하기 위해 Blend 쪽을 만져보다가, 우연히 Aim Offset이 비정상 동작할 때 무언가 다르게 움직이는 점을 확인하고 Offset이 문제가 아닌가 하는 의문이 들었습니다.

그래서 TurnInPlace Montage가 시작하는 시점에 Offset을 수정하는게 아니라, 매 틱마다 조금씩 Offset을 줄여서 +90에서 +0 언저리가 되도록 수정을 해보았더니 원하는대로 구현이 되었습니다.

결국은 Montage를 먼저 적용하고 그 뒤에 Offset을 적용하다 보니 고개에 대한 방향은 Offset이 강제로 값을 바꿔주는 형태라 이 값을 Tick에서 조절해주면 자연스럽게 구현이 되는 것 같습니다.

 

2. Layered Blend per Bone 기능 사용 미숙

해당 기능이 있는 것은 알았지만 어떻게 사용하는지를 바로 깨닫지 못했습니다.

재밌게도 이걸 검색 했더네 두번째 링크가 제 블로그더군요.

네가 여기서 왜 나와?

https://redchiken.tistory.com/19

 

UE4 2개 이상의 Layered blend per bone

서류 몇개 더 떨어지고 정말 간만에 개발을 하다가 막혔던 부분 중 공유하면 좋을 것 같아서 적어봅니다. Animation에는 Layered blend per bone이라는 노드가 있습니다. 기존의 포즈에 지정한 포즈를 특

redchiken.tistory.com

그런데 이 블로그에서도 정확히 사용 방법을 알 수가 없었습니다.

결국 다시 블로그 등을 검색하여 옵션을 넣었으나, 같은 불상사를 방지하기 위해 하기 설명에 옵션 사진도 같이 첨부하였습니다.

 

마지막으로 현재 제가 작업해놓은 Animation 부분을 공유합니다.

전체 Animation

외부에 Cached Pose를 두개를 둔 이유는 원래 참고하고 만들던 것과 더불어 새로운 Cached Pose가 필요하기 때문입니다. 성능적인 부분은 찾아봐야겠지만, 만약 크게 문제가 안된다면 가능한 이런 식으로 외부에 Cached Pose를 만들어두고 나중에 이를 가져다 쓰는 형식으로 구현하는 방향으로 구상 중입니다.

 

MainStateMachine 내부의 Idle 상태

실제 Idle 상태에서의 BP부분입니다.

뒤에 Offset으로 각도 조정을 해줄거기 때문에 Bone은 root를 그냥 넣어주었습니다.

 

Idle 상태에서의 FSM

Idle FSM 내부입니다.

임시로 상태를 만들어 서있거나, 앉아있는 등의 경우에서 Idle일 때의 Animation을 반환합니다.

구조는 나중에 필요에 따라 바뀔 여지는 있을 것 같습니다.

 

우선 문서를 작성하면서 확인해보니 왼쪽으로 회전에서 발생하는 문제, 혹은 고개가 완벽하게 각도가 안 맞는 부분이 있어 이 부분을 나중에 조정을 하고, 이후 걷는 애니메이션을 구현해볼 생각입니다.

'개발일지 > 코어 플레이 개발' 카테고리의 다른 글

22년 10월 02일 (비)개발일지  (0) 2022.10.02
22년 09월 27일 개발일지 2  (0) 2022.09.27
22년 9월 26일 개발일지  (0) 2022.09.26
22년 09월 20일 개발일지  (0) 2022.09.20
22년 09월 17일 개발일지  (0) 2022.09.18

캐릭터가 90도 이상 회전하고 몸이 회전할 때 카메라 방향도 같이 움직이도록 수정했습니다.

다만 고개만 움직일 때 카메라가 안 움직이는게 어색하여 SpringArm을 머리에 붙여서 고개를 흔들면 같이 화면이 전환되도록 하고, Montage를 목 아래에서만 재생되도록 하여 고개를 고정하고 몸만 움직이게 해보고자 합니다.

 

생각보다 고된 작업인 것 같습니다.

그래도 작업 과정을 숙련하면 확실한 강점이 될 수는 있겠다 싶습니다.

특히 만들고 싶은 게임 중 캐릭터 위주의 게임도 있어서 이 기술은 포기하지 않고 꼭 잡고 가고 싶습니다.

'개발일지 > 코어 플레이 개발' 카테고리의 다른 글

22년 09월 27일 개발일지 2  (0) 2022.09.27
22년 09월 27일 개발일지  (0) 2022.09.27
22년 09월 20일 개발일지  (0) 2022.09.20
22년 09월 17일 개발일지  (0) 2022.09.18
22년 09월 16일 개발일지  (0) 2022.09.16

오늘은 캐릭터 회전 Montage를 작업했습니다.

결과적으로 완성은 못했지만, AimOffset을 돌리다가 Offset이 90도 이상 돌렸을 때 몸이 돌아가는 Montage가 호출되는 로직은 구현을 완료했습니다.

대략적으로 코드를 보기 좋게 수정도 했고, 다만 Tick에서 캐릭터가 실제로 회전하지는 않아서 이 부분을 수정중에 있습니다.

캐릭터가 회전한 후에는 다시 구조를 좀 더 좋게 수정을 하고, 하나의 커밋으로 뭉쳐서 Push할 예정입니다.

'개발일지 > 코어 플레이 개발' 카테고리의 다른 글

22년 09월 27일 개발일지  (0) 2022.09.27
22년 9월 26일 개발일지  (0) 2022.09.26
22년 09월 17일 개발일지  (0) 2022.09.18
22년 09월 16일 개발일지  (0) 2022.09.16
22년 09월 13일 개발일지  (0) 2022.09.13

+ Recent posts