거진 한달만에 작성하게 되었습니다.

사실 14일인가에 작업 하고 15일에 작업일지 올리려고 했으나 그 날 카카오 서버 터져서 못 적고, 그 다음주에도 잠깐 작업 했는데 피곤해서 그냥 자버리고 이래저래 시간이 길게 지났습니다.

작업 자체는 왼쪽 발, 오른쪽 발 내민 상태의 애니메이션을 형성하고 이동에 따른 몽타주 연결만 하면 되었습니다만.

결과적으로 얘기하면 다시 만들고자 합니다.

 

다른건 아니고 최근에 회사에서 다른 팀 시니어 개발자 분을 만날 기회가 있었습니다.

개발 관련해서 이것저것 여쭈어보았고, 개인 프로젝트 쪽에 관심을 가져주셔서 관련해서 답답하거나 아리까리한 부분을 싹 다 여쭤보게 되었는데요.

그 중에 "UE5가 최신 엔진 버전인데 근 3년 안에 한국 개발사가 이걸로 게임 만들거나, 내가 그 팀에 갈 것 같지가 않아서 UE4로 개발했다. UE5로 하는게 맞는가?"라고 물어봤을 때 "당연히 UE5로 해야 한다."라고 답을 들었습니다.

이유는 최신 기술이기도 하고, 더 좋은 기능이 제가 개발하는 것보다 더 좋은 퀄리티로 구현되어 있어서 그것을 보고 공부하는 것이 더 미래지향적이기도 하고, 익숙함 때문에 UE4로 개발하는 거라면 업무와 공부를 분리해서 모르는 것을 찾아 가는 것이 도움이 된다는 것이 이유였습니다.

 

그래서 그날 귀가하고 고민을 하다가 UE5로 다시 개발하기로 마음먹었습니다.

이전에 개발한걸로 봤을 때 Pose를 기반으로 한 AimOffset과 이를 통한 디테일한 애니메이션 구현은 좀 힘들 것 같습니다.

하지만 막상 예시 프로젝트를 보고도 그걸 그대로 만든 것도 아니라서 더 좋을지 아닐지 모르겠네요.

 

일단 몇가지 추가 목표를 잡았습니다.

1. 3월까지 기본적인 코어 모션들을 개발하는 것이 목표입니다.

여기서 코어 모션은 이동, 회전, 점프, 앉기, 상호작용, 감정표현 등입니다.

 

2. AWS에서 제대로 된 프로젝트 구조를 형성하고자 합니다.

AWS에서 CodeCommit이란 것도 지원을 하긴 하는데 이걸 사용 할지 말지는 나중에 결정하고,

우선 SVN을 EC2에 올려서 애셋과 코드를 따로 관리하는 것을 목표로 하고자 합니다.

그리고 UE5 엔진 코드도 따로 레포지토리로 관리하고자 합니다.

 

현재 프로젝트를 만들고, 애니메이션 애셋을 정리해서 생성한 프로젝트로 마이그레이션까지 해놓은 상태입니다.

예전에는 이 기능을 잘 몰라서 Ctrl C+V를 사용하면서 고역이었는데 관련해서도 여쭈어보니 "샘플 프로젝트에서 정리한 뒤 마이그레이션 해야 한다." 말고는 답이 없더라구요.

IKRig를 하나하나 파주는게 고역이었지만 하루 정도 투자해서 문제 없이 Animation이 재생되는 것을 확인했습니다.

작업 중 Material Function이 비정상동작 하긴 했는데 이건 샘플 프로젝트에서의 설정 문제인 것 같아서 별도로 따로 만져줬습니다.

 

개인적으로 작업 하면서 이걸 다시 할까? 혹은 엎을까? 라는 생각이 많이 들었습니다.

그럼에도 꾸역꾸역 2주에 한번씩이라도 했던 것은 끝을 본 적이 없어서였는데 어느 이유에서든 다시 하게 되었고,

지금도 자신에게 한심함을 느끼고 있습니다.

 

하지만 어느정도 조언을 구한 후에 진행하는 것이라 결과를 내고 그걸 위안으로 삼아보고자 합니다.

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

22년 11월 12일 개발일지  (2) 2022.11.12
22년 11월 03일 개발일지  (0) 2022.11.03
22년 10월 02일 (비)개발일지  (0) 2022.10.02
22년 09월 27일 개발일지 2  (0) 2022.09.27
22년 09월 27일 개발일지  (0) 2022.09.27

개발 관련해서 작업 확인을 했는데 실제 작업은 없었으니 (비)개발일지

AdvancedLocomotionSystemV 프로젝트에서 Move Animation 동작 방식을 확인해보았습니다.

애니메이션은 방향에 맞춰서 AimOffset으로 재생을 하는데, 문제는 이게 경우에 따라 매우 많더군요.

왼발이 앞으로 갈 때. 오른발이 앞으로 갈 때에 대한 애니메이션이 다 다른데,

이걸 구현하려 하면 제자리 회전도 어느정도 구현을 해야 할 것 같습니다.

 

그래서 왼발 오른발에 맞춰서 AimOffset과 같이 개발을 하고, 이후 발에 따른 제자리 회전 보강 작업을 병행하고자 합니다.

근래 일도 많고 개인적으로 안 좋은 일이 있어서 작업을 잘 안하게 되는 것 같습니다.

그래도 이동 기능까지는 연말까지 개발을 하였으면 하네요.

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

22년 11월 03일 개발일지  (0) 2022.11.03
22년 10월 29일 비개발일지  (0) 2022.10.30
22년 09월 27일 개발일지 2  (0) 2022.09.27
22년 09월 27일 개발일지  (0) 2022.09.27
22년 9월 26일 개발일지  (0) 2022.09.26

재차 글을 쓴 이유는... 앞서 쓴 글에서 문제가 있던 부분과 더불어 부질없는 고민도 있었기 때문입니다.

우선 수정된 애니메이션부터 공유해보겠습니다.

메인 FSM
MainStateMachine::Idle State

일단 Layered Blend per Bone이 현재 상황에서는 의미가 없는 기능이었습니다.

Montage가 통째로 회전하더라도 머리의 방향은 AimOffset이 맞춰줄거기 때문에 굳이 Layered를 할 필요가 없었습니다.

그리고 Cache 포즈도 현재 Default 포즈를 따로 필요하지 않는 것 같아 일단은 제거해 두었습니다.

 

이전에 발생한 이슈는 2가지였는데요.

1. 왼쪽으로 고개 회전 시 무한이 회전하는 문제

이건 AimOffset 값 자체가 방향 정보도 포함하고 있어 Tick에서는 무조건 Delta만큼 차감하면 됐었는데, 이걸 다시 Type에 따라 반대로 연산하다 보니 왼쪽은 계속 가산되어서 그 방향으로 회전하게 되었습니다.

 

2. 고개가 90도로 맞게 회전하지 않는 문제

이건 Montage와 관련이 있었는데요.

초반 작업에서 Montage를 1배속으로 플레이 했을 때 90도가 아니라 225도를 회전하는 문제가 있었습니다.

AddControllerYawInput() 안에서 계수가 적용된 것으로 판단하여 MontagePlayRate를 조절하여 2.5배속 재생 되도록 UI에서 조절해 놓았는데, 이 때문에 몸이 90도 회전 하는 동안 -90도가 회전해야 할 머리가 -36도만 회전하였습니다.

그래서 UI에서 직접 입력하던 MontagePlayRate를 TurinInPlaceNotify.h에서 상수로 값을 잡아두고, Montage_Play()에서 MontagePlayRate를 입력하고, 동시에 Tick에서 연산되는 AimOffset에서도 MontagePlayRate를 곱하여 동일한 값만큼 몸과 고개가 움직이도록 조정했습니다.

 

이로서 제자리 회전에 대한 기능은 모두 완료가 되었습니다.

다음에는 방향키에 맞게 걷는 기능과, 회전 중 걷기 시 그 방향으로 걸어가는 기능을 구현할 예정입니다.

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

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

+ Recent posts