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

  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

어제 1개의 애셋을 Retarget 세팅 한것에 이어 오늘은 5개를 추가로 Retarget을 하고, 모든 애니메이션을 Export했습니다.

다만 본 프로젝트에 복사해오니까 스켈레탈과 텍스쳐를 찾지 못해서 삭제후 좀 더 확인해볼 예정입니다.

주말에는 처리하고 그 뒤에는 Animation FSM 공부를 할 차례겠군요.

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

22년 07월 31일 개발 일지  (0) 2022.07.31
22년 07월 17일 개발일지  (0) 2022.07.17
22년 07월 15일 개발일지  (0) 2022.07.15
22년 07월 10일 개발일지  (0) 2022.07.10
22년 02월 19일 개발일지  (0) 2022.02.19

이전에도 짬짬히 했는데 일지 쓰는걸 까먹고 있다가 오늘 몰아서 써봅니다.

저번에 Animation Retarget을 하겠다고 했는데 UE5는 UE4보다 더 복잡스럽네요.

 

지금 참고해서 보고 있는 블로그입니다.

https://devjino.tistory.com/276?category=1020908 

 

[UE5] Animation Retargeting 방법

UE5에서는 UE4와 리타겟팅 하는 방법이 많이 바뀌었으며 그 과정을 정리하였습니다. Frank 애니메이션을 언리얼 마네킹으로 리타겟을 해보겠습니다. 소스 : SK_Frank_FS3_Meshes_Skeleton 타겟 : SK_Mannequin_Sk

devjino.tistory.com

 

UE4에서는 스켈레탈 우클릭 해서 옵션 지정하고 설정해서 쭉 긁으면 되던 것에 UE5에서는 IK Rig를 만들고 이걸 Retargeter로 엮어서 옵션 설정을 하고 난 뒤에야 Export가 되네요.

 

이 방식이 한번 처리하면 이후에 동일 스켈레탈에 대해 애니메이션이 추가되면 이를 관리하기에는 매우 용이한 구조인 것 같습니다.

다만 그 처음 한번이 너무 복잡스럽네요.

특히 Retarget Loop를 자동으로 설정할 수 없고 하나 하나 범위와 이름을 지정해서 해야 합니다.

자동으로 해주는게 없어요.

위 블로그에서는 파츠별로 나누어서 처리를 했지만 만약 부위별로 세세하게 들어가거나 파츠가 많다면 작업량이 어마무시하게 되겠죠.

 

물론 전 지금 여러 에셋의 애니메이션을 하나로 묶느라 Rig와 Retargeter가 애셋 갯수만큼 생겨버려서 더 작업량도 그에 비례하게 늘어난 편입니다.

그래도 이것저것 비교해보면 별로 달가운 작업은 아니었습니다.

그래서 하나 하다가 짜증나서 다시 껐습니다.

 

그래도 최소한의 작업량을 파악해서 한 한시간 정도 집중하면 정리는 될 것 같습니다.

이 뒤에는 이제 애니메이션 구조를 잘 고민해야할텐데 예전에 Rocomotion과 특정 상황 모션(사다리 타기, 사망, 공격, 피격 등등)을 분리하는 구조를 추천 받았는데 성능이나 관리 측면에서 매우 좋은 구조를 알아보는데 시간을 크게 할애하고 시작해야 할 것 같습니다.

 

이전에도 대략 이 시점에서 멈췄는데 부디 이번에는 제 자신이 멈추지 않았으면 합니다.

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

22년 07월 17일 개발일지  (0) 2022.07.17
22년 07월 16일 개발일지  (0) 2022.07.16
22년 07월 10일 개발일지  (0) 2022.07.10
22년 02월 19일 개발일지  (0) 2022.02.19
22년 02월 19일 개발일지  (0) 2022.02.19

+ Recent posts