작업사항부터 정리를 하자면

  1. 더미 프로젝트에 있는 캐릭터, 애니메이션을 본 프로젝트에 이식
  2. 예시로 RPG 캐릭터 개발을 먼저 하기 위해 관련 GameMode, GameState, PlayerController, Character, PlayerState, AnimInistance 생성 및 연결.
  3. 세션 구조 공부 선행 예정

이렇게 됩니다.

 

우선 에셋 이식.

이게 정말 개 거지같은 작업이었습니다.

이전에 언급 했듯이 UE5의 Animation Retarget은 IK 리타겟과 IK 릭을 이용해야만 합니다.

한 프로젝트 내에서는 이 방식이 문제가 없었는데 다른 프로젝트로 애셋을 복붙해서 열어보니 경로가 바뀌어 Skeletal Mesh를 찾지 못하였습니다.

여기서 아주 큰 문제가 발생을 하는데, 외부에서 옵션을 통해 Skeletal Mesh를 새로 지정하는 방법이 없습니다.

Animation을 하나하나 열어서 대체 Skeletal Mesh를 지정해야 합니다.

그리고 저는 OpenWorldAnimSet이 있었고 이게 한 2, 300개 정도 Animation을 지원합니다.

모든 Animation을 다 합치면 도합 400개가 될 것 같네요.

이걸 3시간에 걸쳐 하나하나 열어서 대체 Skeletal Mesh를 지정하였습니다.

다시는 하고 싶지 않네요.

작업을 다 하고 혹시 다른 프로젝트의 IK 릭과 리타겟을 사용할 수 있는지 확인했으나 경로가 지원되지 않았습니다.

꼼짝없이 수기작업을 할 수밖에 없었던거죠.

 

개인적으로 최선은 범위를 지정해서 대체 Skeletal Mesh를 지정하는 옵션이 추가가 되는 것입니다.

하지만 그렇지 못하다면, 프로젝트에 에셋을 직접 연결해서 사용하는 것을 추천드립니다.

단, 이 방법은 제가 이전에 구상했던 GitHub로 관리하는 Repository 구조로는 대응이 안됩니다.

이 점은 기억하시기 바랍니다.

 

애니메이션을 연결한 뒤에 실제로 동작을 하는지 AnimInstance를 생성해서 하나의 Animation을 지정하고, Mode 등을 지정해서 재생 됨을 확인했습니다.

이 시기에 한가지 중요한 사실을 깨달았습니다.

AnimInstance 작업을 하더라도 GameMode 작업을 하지 않으면 카메라 조절이나 조작을 못한다는 점이었습니다.

그래서 GameMode쪽 공부를 먼저 선행하고자 합니다.

GameMode와 GameState가 어떻게 동작하는지.

PlayerController와 Character, PlayerState가 어떻게 동작하는지.

GameSession은 무엇인지.

이런 것들에 대한 개념을 확립해서 정리를 하고, 기본 기능을 구현한 뒤 Animation 기능 구현을 할 예정입니다.

물론 RPC를 사용해 Dedicate Server-Client 구조까지 염두를 하고자 합니다.

시간이 오래 거릴 것 같은데 이걸 해야 나중에 재작업을 하거나 관련 작업을 할 때 더 좋은 구조를 구상할 수 있을 것 같습니다.

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

22년 08월 07일 개발 일지  (0) 2022.08.07
22년 07월 31일 개발 일지  (0) 2022.07.31
22년 07월 16일 개발일지  (0) 2022.07.16
22년 07월 15일 개발일지  (0) 2022.07.15
22년 07월 10일 개발일지  (0) 2022.07.10

+ Recent posts