오늘은 본격적으로 작업을 시작하면서 굉장히 많은 작업을 진행할 수 있었습니다.

마일스톤 1 작업사항

 

다만 그에 못지 않게 변동사항이나 우려사항도 많아졌습니다.

첫번째로, 애니메이션이 부족하여 원하는 기능을 충분히 만들기가 힘들었습니다.

무료 애셋에서는 단순 걷기 회전 이런 것들만 존재하다보니 생각하는 과정에서 빈 곳이 너무 많았습니다.

또한 어느정도 갖추고 있더라도 어떻게 하는지 방법을 전혀 알 수 없었습니다.

그렇다보니 최대한 있는 것으로 구현을 하고자 할 때에도 기능이 조금씩 바뀌어 갔습니다.

저 커서 회전만 하더라도 더 많은 기능들이 있었는데 좌우 이동 애니메이션이 없어서 마우스 회전에 대한 기능을 완전히 지울 수 밖에 없었습니다.

 

두번째도 애니메이션이었습니다.

우선은 정면 걷는 애니메이션만 넣고 좌우 이동 할 때에는 캐릭터를 회전하려 했습니다.

하지만 그냥 회전을 넣어버리니 카메라가 훅훅 돌아가는게 어지러웠습니다.

그리고 걸을 때에는 회전 애니메이션이 따로 있는데 이걸 사용하면 작업량이 줄어들 것만 같았습니다.

그래서 이걸 사용하는 방안을 찾기 위해 AdvancedLocomotionSystemV 라는 시연 프로젝트를 참고하였습니다.

https://www.unrealengine.com/marketplace/en-US/product/advanced-locomotion-system-v1

 

Advanced Locomotion System V4 in Blueprints - UE Marketplace

An advanced bipedal locomotion and layering system focusing on high quality character animation with responsive movement. Built to be flexible, extendable, and to provide a solid starting point for new projects. Currently Singleplayer only. (100% BP)

www.unrealengine.com

애니메이션 블렌드는 물론 1차 마일스톤 일정에 있지만 아직은 시도도 못한 IK에 대한 내용도 있었습니다.

일반 Animation은 Character가 들고 있는 Mesh에서 지정을 해주는데, IK는 Mesh의 PostProcessAnimation으로 지정을 따로 해주더라구요.

다시 요점으로 돌아와서, 여기 Animation이 어떻게 제작이 되었는지 살펴보니 굉장히 복잡하게 구성이 되어 있었습니다.

적어도 저에게는요.

수 많은 포즈와 디테일한 Animation으로 Blend Asset을 지정하고, 각 애니메이션에서 AnimNotify를 발산해 어느 발이 앞에 있는지에 따라 애니메이션을 상세하게 관리를 하고 있었습니다.

물론 제가 워너비로 생각하는 엘든링이나 원신 정도의 수준과는 상당히 차이가 났지만, 이미 제가 혼자서 공부해서 만들기에는 매우 수준이 높은 프로젝트였습니다.

 

그래서 이 프로젝트의 Animation을 Retarget해왔습니다.

이제 프로젝트를 참고하여 Locomotion을 따라 만들고자 합니다.

우선은 이동과 시야 조절에 대한 Locomotion을 만들고, 그 다음 앉은 상태와 뛰어다니는 상태에 대한 Locomotion을 구현하고자 합니다.

이후 점프와 IK를 구현을 할 계획입니다.

상세 마일스톤은 많이 어그러지겠지만 최대한 일정에 맞추고자 합니다.

그리고 마일스톤1 마감이 끝나는 날에는 작업사항을 일지로 정리하고, 이후 마일스톤의 일정을 조절 할 예정입니다.

기간 내에 많은 것을 개발하면 분명 좋긴 하겠지만, 그보다는 퀄리티 높고 좋은 구조의 작업물을 생성하는 것을 목표로 하고자 합니다.

 

작성하고 생각해보니 오늘 작업물도 대다수가 수정 될 여지가 있겠군요...

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

22년 09월 02일 개발일지  (0) 2022.09.02
22년 08월 28일 비개발일지  (0) 2022.08.28
22년 08월 24일 개발일지  (0) 2022.08.24
22년 08월 22일 개발일지  (0) 2022.08.23
22년 08월 20일 개발일지 2  (0) 2022.08.21

오늘은 가지고 있는 애니메이션 중 1차 마일스톤에 작업 할 걷기, 뛰기, 쪼그려 앉기 상태, 점프 애니메이션 중 손상된것, 부자연스러운 것들을 분리하고 쓸만한 것들을 폴더롤 분류했습니다.

이 작업이 마무리 된게 정오 정도였습니다.

 

두번째 작업은 일과 후 저녁에 잠깐 만졌습니다.

GameMode나 GameState, Character, AnimInstance, PlayerControlller 등을 만들어서 연결하여 게임 실행 시 캐릭터에 자동으로 카메라가 붙도록 작업을 해두었습니다.

이 과정에서 카메라 기본 값을 BP에서 입력받도록 하려 했는데 Character가 Construct될 때 그 값이 빈 값이 잡혀서 우선은 보류하였습니다.

 

다음 작업에서는 입력을 넣어 상하좌우 이동 기능을 먼저 넣어두고, 이에 따른 Animation을 연결을 할 예정입니다.

이 다음에는 방향에 따라 Blend Animation을 적용하고, 이 뒤에 3인칭에서 화면 전환을 구현하할 예정입니다.

 

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

22년 08월 28일 비개발일지  (0) 2022.08.28
22년 08월 26일 개발일지  (0) 2022.08.27
22년 08월 22일 개발일지  (0) 2022.08.23
22년 08월 20일 개발일지 2  (0) 2022.08.21
22년 08월 20일 개발일지  (0) 2022.08.21

코드 작업을 하기 보다는 작업사항을 Trello에 정리를 하였습니다.

총 1차, 2차, 3차와 그 외 기능으로 분리를 하였으며 1차는 이번 추석 연휴가 끝나는 9월 12일을 마감으로 잡았습니다.

2차와 3차는 각각 10월과 12월의 휴일인 한글날 대체휴일과 크리스마스날로 잡았습니다.

1차 마일스톤에 작업할 사항은 대략 다음과 같습니다.

1차 마일스톤 작업사항

생각보다 사소한 것도 풀어서 적다보니 내용이 꽤 많아진 것 같습니다.

현실은 기본적인 시점과 이동 동작을 구현하는 작업으로 추석 연휴 중 2, 3일을 오롯이 쏟아부어 볼 생각입니다.

 

또한 어떤 유의미한 커밋을 올렸을 때에는 위와 같이 사진으로 공유를 할 예정입니다.

마지막으로 코드 작업을 시작하기 앞서, 1차 마일스톤에서 사용하는 이동과 회전 관련 애니메이션을 미리 확인하고, 분류를 할 예정입니다.

작업 마감은 주말 전까지입니다.

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

22년 08월 26일 개발일지  (0) 2022.08.27
22년 08월 24일 개발일지  (0) 2022.08.24
22년 08월 20일 개발일지 2  (0) 2022.08.21
22년 08월 20일 개발일지  (0) 2022.08.21
22년 08월 19일 개발일지 2  (0) 2022.08.20

신규 프로젝트는 캐릭터 기능을 위주로 개발하고자 하며 대략 다음 기능을 올해 안에 개발하는 것을 목표로 하고 있습니다.

  • 간단한 조작(Locomotion)
  • 앉기, 점프, 달리기 등 기본 동작
  • 상호작용 모션(실제 내부 기능 없이 애니메이션만 재생되도록)
  • 이동하면서 상호작용 시 상체는 상호작용 애니메이션이 유지되고 하체만 이동 상태로 바뀌도록 수정
  • 1인칭과 3인칭을 토글하는 기능
  • 마우스 커서가 회전 시 그 방향으로 고개가 돌아가는 기능
  • 일정 각도 이상 회전 시 그 방향으로 캐릭터가 회전 하도록 수정
  • 경사나 울퉁불퉁한 곳에서 발이 허공에 떠있지 않도록 수정

 

또한 아래 기능들을 내년 10월 전까지 개발을 할 예정입니다.

  • 일정 높이 이상 추락 시 착지 모션 발동되도록 수정
  • 맵 상의 오브젝트와 상호작용 시 상호작용 애니메이션 재생되도록 추가
  • 맵 상의 무기와 상호작용 시 무기를 장착하는 기능 추가
  • 특정 오브젝트에 상호작용 시 벽/로프/사다리 타기가 되도록 수정
  • 달리기 중 앉기 키 누를 시 슬라이딩 기능 추가
  • 방향키 연속으로 두번 누르거나, 특정 키를 누른 채로 방향키 누를 시 그 방향으로 튀어 나가는 기능(Dodge) 추가
  • 방향키를 누르면서 특정 키를 누르면 그 방향으로 구르기를 하는 기는 추가
  • 근접 공격 추가
  • 총기 발사 및 Locomotion 기능 추가
  • 피격(잠깐 움찔 함) 및 사망(레그돌) 모션 추가
  • 수영 기능 추가
  • 여성 캐릭터를 생성하여 성별에 따라 애니메이션이 따로 적용되도록 작업
  • 4개 이상 스킬을 만들고 이 중 2개를 소지한 캐릭터 6개를 제작(스킬에 대한 구조화 기능)

위 작업 일정은 Trello로 다시 한번 정리가 될 예정입니다.

이 과정에서 작업 규모나 순서는 변경될 수 있습니다.

 

오늘은 새 프로젝트를 만들고 Animation Retarget을 한뒤 대략 애니메이션 종류별로 폴더 분리를 했습니다.

이제 폴더 안에서도 기능별로 세부분류를 하고, 이름을 수정하고자 합니다.

이 뒤에는 이전 프로젝트 작업에 맞춰 게임모드와 캐릭터를 만들고, 이동 할 때와 정지 할 때 서로 다른 애니메이션이 재생되고 이동 기능이 동작을 하는 수준으로 먼저 만들어 놓을 예정입니다.

여기까지 작업을 9월 8일까지 진행할 예정입니다.

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

22년 08월 24일 개발일지  (0) 2022.08.24
22년 08월 22일 개발일지  (0) 2022.08.23
22년 08월 20일 개발일지  (0) 2022.08.21
22년 08월 19일 개발일지 2  (0) 2022.08.20
22년 08월 19일 개발일지  (0) 2022.08.19

오전에 일어나 캐릭터가 가만히 있어도 앞으로 걷는 현상을 수정하기 별도의 Velocity 적용 로직을 만들어보았으나 동작하지 않았습니다.

그래서 아얘 새로운 Velocity 체계를 만들다가 문뜩 "이거 그냥 당장 문제를 해결하기 위해 땜빵처리 하는거 아닌가?"라는 생각이 들었습니다.

그래서 작업사항을 모두 지우고 처음부터 디비깅을 진행하였습니다.

그 결과 Skeleton에서 root로 잡은 Pelvis가 Animatiton이 재생될 때마다 움직임을 보여서 Velocity가 정지해도 변경이 된다는 것을 발견했습니다.

 

이를 고치기 위해서는 Animation을 다시 Retarget하여 Root를 root 노드로 지정해서 다시 Animation Retarget을 해야 합니다.

이전에는 그래도 Skeleton에서 노드 연결하는 거라도 해놓았기 때문에 2차 작업을 할 여유가 되었지만, 이번에는 이전 작업사항이 branch checkout을 하면서 다 날라가서 다시 처음부터 해야 했습니다.

이게 두번째.

 

첫번째는 어제 발생한 사항입니다.

작업사항을 Push하려는데 Git LFS가 용량이 초과되어 새 Data Pack을 구매 하였는데, 그 가격이 60달러였습니다.

사실 이것저것 구독을 해놓은 상태라 60달러 추가 구독이 엄청나게 부담이 되는 것은 아니었습니다.

하지만 뭔가 아깝다라는 생각이 크게 들었습니다.

Github는 왜그런지 모르지만 레포지토리를 삭제하지 않으면 올려놓은 파일이 계속 용량에 잡힌다고 합니다.

즉, LFS 파일 수정이 많아질수록 그 부담이 심히 커진다는 것이죠.

 

이렇게 되다 보니 또 다시 고질병이 도졌습니다.

바로 끈기 없이 얼마 안가서 작업사항을 날리고 그만두거나, 다시 하는 병입니다.

어제도 Git LFS 때문에 이런 식으로 작업하는게 맞나 싶었는데 Animation Retarget을 다시 해줘야 한다니 무언가 잘못된 것 같다는 생각이 강하게 들었습니다.

그래서 작업 진행 방향에 대해 고민을 했습니다.

 

제가 다시 개인프로젝트 개발에 의욕과 의무를 가지려 한 이유는 다음과 같았습니다.

1. 퀄리티가 높은 게임 플레이 개발을 하여 관련 경험을 쌓고 실력을 인정받아 게임 플레이 개발로 전환 할 실력을 갖추는 것.
2. 엔진 코드를 보고 이해하여 언리얼 엔진에 대한 숙련도를 높이고, 더 나아가 수정을 할 줄 알아 엔진 개발 능력을 익히는 것

그리고 이 외에 작업을 준비하면서 언리얼 엔진 5가 나오다 보니까 다음 사항이 추가가 되었습니다.

3. 언리얼 엔진 5에 익숙해지고 기능을 사용해보는 등 언리얼 엔진 5 알앤디

 

사실 우선도로 따지자면 1 -> 2 or 3 순서일 것 같습니다.

그런데 3으로 인해 언리얼 엔진 5를 사용하게 되고, 2로 인해 엔진 코드를 프로젝트에 포함시키다 보니 Asset Store 접근성이 0가 되어 1을 하기 위해 원활히 개발하기 힘든 상황이 되었습니다.

물론 Submodule로 엔진 코드를 넣은 것도 잘못이긴 하였지만, 여튼 이를 병행하기에는 의지와 끈기가 부족해 지금처럼 언젠가는 반드시 포기할 것 같았습니다.

 

그래서 프로젝트를 지우고 다시 작업하기로 마음먹었습니다.

그나마 다행인건 이 부분을 다시 개발한지 오래되어 작업이 매우 더딘 탓에 작업량이 적다는 점일 것 같습니다.

 

우선 위의 3가지 목표 중에 1번과 3번을 중점으로 운영되는 프로젝트를 따로 생성 할 예정입니다.

2번이 빠진 이유는 이번에 작업하면서 엔진코드를  수정하고 PR을 날려본 경험.

그리고 오늘 오전에 디버깅을 통해 이슈 발생 원인을 발견한 과정의 경험.

마지막으로 업무에서 디비깅을 했던 경험이 어느정도 이어졌기 때문입니다.

엔진코드의 깊은 부분을 수정할 수는 없지만, 당장 작업에 필요한 기능을 추가하는 것은 충분히 할 수 있을 거란 자신감을 얻었습니다.

 

또한 이와 별개로 하고 싶은 일이 조금이나마 명확해졌기 때문입니다.

이전에는 엔진 프로그래머와 코어 플레이 개발자 사이에서 고민한 적이 있었습니다.

이는 직장 동료로부터 "엔진 프로그래머가 코어 플레이 프로그래머로 전환하는 경우는 생각보다 좀 있다."라는 말을  들은 것과, 넥슨 등의 회사에서는 "클라이언트 프로그래머가 필요하면 엔진을 직접 수정해서 개발 한다."는 얘기를 듣고 엔진 개발을 하는 편이 업무 전환에 좀 더 빠를까 싶었기 때문입니다.

하지만 최근에 엔진 코드 수정은 부차적인 부분이고 정말 내가 하고 싶은건 새로운 피쳐.

가급적 캐릭터의 스킬이나 기능 구현, 혹은 게임모드 개발하고 싶다고 어느정도 범위를 좁히게 되면서 현재의 경험 감각을 살려두기만 하면 개발을 지속하면서 꾸준히 엔진 코드를 마주칠 수 있는 기회가 있지 않을까 싶습니다.

 

다시 본론으로 돌아와, 현 게시판 주제인 1번 이유.

코어 플레이 개발은 언리얼 엔진 4로 프로젝트를 만들어 진행하고자 합니다.

이유는 애니메이션을 더 빈번하게 수정해야 하는데 아직은 언리얼 엔진 4 코드와 에디터가 더 친숙하기 때문입니다.

해당 프로젝트에 대한 작업 일지는 그대로 현 게시판에 이어서 작성이 될 예정입니다.

 

또한 3번 언리얼 엔진 5 기능 RnD는 따로 만들고 싶었던 게임을 만들면서 천천히 해볼 예정입니다.

앞선 코어 플레이 개발 프로젝트가 캐릭터에 초점을 맞췄다면, 이 프로젝트는 캐릭터 기능은 매우 간략하게 만들고 모드와 네트워크에 좀 더 초점을 맞출 생각입니다.

그래서 캐릭터는 개판이지만 게임 플레이가 가능한 상태로 빠르게 진입하고 그 뒤에 게임 플레이에 필요한 최소 요건(HUD, 점수 계산, 데디케이트 서버 등)을 갖추어 프로토타입을 뽑아볼 생각입니다.

 

그리고 이 프로젝트는 가급적 github를 사용하지는 않을 것입니다.

github를 쓰면 다시 git lfs랑 엮이게 되고 이쪽과 엮이면 또 머리가 복잡해지더군요.

당분간은 git만 사용해서 commit만 올리고, 여유가 될 때 사설 git 서버와 perforce를 사용하여 레포지토리 구조가 어느정도 안정화가 되면 그 때 Push를 해보려 합니다.

 

정리를 하면 이렇게 될 것 같습니다.

  1. 기존 프로젝트는 다음 이유로 폐기
    1. 복수의 개발 목표가 혼동되어 정체 됨
    2. 1.1의 이유로 지나치게 규모가 커지려는 경향을 보임
    3. 프로젝트 구조로 인해 애니메이션 작업 속도가 매우 느림
    4. 작업에 비해 불필요한 비용 발생이 있고 앞으로 그럴 여지가 큼
  2. 기존 3가지 목표 중 1가지를 폐기.
  3. 남은 2가지 목표를 각각 다른 프로젝트로 분리하여 재 작업
    1. 코어 플레이 개발
      1. 언리얼 엔진 4로 개발
      2. 캐릭터 기능 개발을 중심으로 함.
    2. 언리얼 엔진 5 알엔디
      1. 언리얼 엔진 5로 개발
      2. AOS 장르 게임을 개발
      3. 모드와 네트워크 기능에 초점을 둠.
      4. 빠르게 프로토타입을 생성하고자 함.

각 프로젝트에 대한 사항은 관련 일지 게시판에 추가로 작성해 두도록 하겠습니다.

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

22년 08월 22일 개발일지  (0) 2022.08.23
22년 08월 20일 개발일지 2  (0) 2022.08.21
22년 08월 19일 개발일지 2  (0) 2022.08.20
22년 08월 19일 개발일지  (0) 2022.08.19
22년 08월 18일 개발일지  (0) 2022.08.19

12시가 넘었지만 직전에 작업한 사항이라 정리합니다.

별건 아니고 Root Motion에 성공했습니다.

AnimSequence에서의 Root Motion 설정과 Animation BP에서 Root Motion Mode 설정이 누락이되어서 동작하지 않았습니다.

이를 적용하니 정상적으로 적용이 되었습니다.

 

다만 스폰이 되자마자 Velocity가 진동을 하여 자동으로 걷기 애니메이션이 재생되고 있었습니다.

이는 키 입력에 따라 속도값을 넣고 값을 쏴서 속도값을 따로 적용하도록 하고자 합니다.

 

이 작업을 먼저 하고, 그 다음 3인칭에서 커서 이동 시 캐릭터가 통째로 움직이는게 생각보다 불편하여 이를 분리할 예정입니다. 대신, 일정 이상 회전을 하면 캐릭터 자체가 돌아가도록 할 예정입니다.

정리하면 대략 다음과 같습니다.

 

1. 자동으로 걷게 되는 문제 수정(속도값 따로 제공)

2. 커서 이동 시 캐릭터 회전 안되도록 수정(대신 일정 이상 회전 시 자동으로 방향을 틀도록 수정)

 

추가로 Repository Issue로 해야 할 작업들을 리스트업을 할 예정입니다.

이 과정을 주말 안에 모두 마무리할 예정입니다.

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

22년 08월 20일 개발일지 2  (0) 2022.08.21
22년 08월 20일 개발일지  (0) 2022.08.21
22년 08월 19일 개발일지  (0) 2022.08.19
22년 08월 18일 개발일지  (0) 2022.08.19
22년 08월 15일 개발일지  (0) 2022.08.15

어제 너무 시간이 오래 걸려서 하다가 중단한 Rebase를 진행 하였고, Solution 빌드를 하였습니다.

다행히 빌드는 정상적으로 잘 되었고 Animation BP에서 AnimSequence가 연결을 잃은 것을 제외하고 문제가 없었습니다.

결과적으로 RPG 브랜치 작업을 다시 재개 할 수 있는 상태가 되었습니다.

 

한가지 안타까운 소식은 RootMotion이 여전히 비정상 동적을 한다는 점이었습니다.

하지만 이를 다시 개선하려면 시간이 꽤 걸리기 때문에 가능한 기능 구현 위주로 작업해보고자 합니다.

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

22년 08월 20일 개발일지  (0) 2022.08.21
22년 08월 19일 개발일지 2  (0) 2022.08.20
22년 08월 18일 개발일지  (0) 2022.08.19
22년 08월 15일 개발일지  (0) 2022.08.15
22년 08월 14일 개발일지  (0) 2022.08.15

커밋 정리가 너무 늦게 걸려 자정을 넘어가버렸습니다.

오늘은 여태 실패한 Animation Retarget을 마저 진행했습니다.

 

지금까지 확인된 성공 조건은 다음과 같았습니다.

1. AnimSequence에 SkeletalMesh를 재지정 하기 전에 SkeletalMesh와 관련된 일련의 클래스 3개를 하나도 빠짐없이 모두 Valid 한 상태로 만들어야 합니다. 3개의 파일이 서로를 참조하는데 이 연결이 정확히 연결되어 있어야 합니다.

2. Retarget 되는 AnimSequence 중 일부는 반드시 수동으로 지정해줘야 합니다.

3. 1과 2가 모두 되더라도 실패할 가능성이 있습니다. 즉, 확률적입니다.

 

이는 Animation Retarget 내부 코드를 뜯어보지 않아서 조건을 명확히 알 수가 없습니다.

다만 이게 의도된 사항은 아니라 생각하고, 조만간 수정이 되지 않을까 싶어 구태여 따로 건들지 않고 Retarget만 최대한 빠르게 처리했습니다.

그래도 Property Matrix를 알아서 비교적 빠르게 처리가 되었습니다.

 

두번째로, 작업하면서 의도치 않은 작업이 진행되었습니다.

AnimSequence의 Property Matrix를 열 때 크러시가 발생하는 일이 종종 발생했습니다.

확인해본 결과 크러시 발생 조건은 Skeletal이 연결이 된 AnimSequence와 그렇지 않은 AnimSequence가 모두 포함 된 채로 Property Matrix를 열려고 시도하면 발생을 하였습니다.

크러시 위치는 USkeleton::IsCompatible 함수 내부에서 발생했고, 원인은 이 함수 내에서 자기 자신(this)이 Invalid하여 발생을 하였습니다.

 

정확한 해결 방안인지는 잘 모르겠지만 너무 불편하여 USkeleton::IsCompatible 안에서 this가 Valid한지 체크하는 조건문을 추가했고, 이 커밋을 정리하여 EpicGames의 UnrealEngine 레포지토리에 PR을 던져두었습니다.

부족한 영어로 메세지를 적었고, 로직을 모두 확인하지는 못했지만 처음으로 엔진에 수정사항을 적용하였기에 결과가 기대가 됩니다.

 

지금은 Master 브랜치에서 작업한 Animation Retarget 커밋을 올려두고, 원래 작업하던 RPG 브랜치로 돌아와 Master Rebase를 하고 있습니다.

Rebase가 끝나면 실행을 해보고, 실행이 안되면 다시 엔진서부터 빌드를 하여 실행 가능한 상태로 만든 뒤 애니메이션 작업을 재개하고자 합니다.

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

22년 08월 19일 개발일지 2  (0) 2022.08.20
22년 08월 19일 개발일지  (0) 2022.08.19
22년 08월 15일 개발일지  (0) 2022.08.15
22년 08월 14일 개발일지  (0) 2022.08.15
22년 08월 10일 개발일지  (0) 2022.08.10

애니메이션 작업을 하기 앞서 프로젝트가 저장되어 있는 저장장치의 용량이 100GB 남짓 남았더군요.

그리고 PC에 개발환경이 두 군데에 형성되어 있길래 이걸 정리하였습니다.

기존에 사용하던 SSD에 개발프로그램들을 남겨두고, HDD에 프로젝트를 저장하였습니다.

그리고 이 과정에서 사소하지만 매우 큰 사건이 터졌는데요.

 

현재 개발중인 Unreal Project를 HDD로 옮기고 엔진 빌드를 걸었는데 자고 일어나니까 50% 밖에 진행되지 않았습니다.

이걸 보고 HDD에서 사용하면 속이 터질 것 같아 다시 SSD로 옮기고 엔진 단위서부터 다시 빌드를 했습니다.

이후 엔진 빌드와 프로젝트 빌드를 하고 다시 실행 가능할 때까지 복구를 하니 오후 5시가 되었습니다.

 

5시부터는 애니메이션 재작성을 시작했는데 여기서 한가지 기쁜 점과 슬픈 점을 발견했습니다.

 

기쁜 점은 사라졌다고 생각 되었던 Animation의 손실된 Skeletal의 일괄 적용 방식을 발견했습니다.

https://docs.unrealengine.com/5.0/ko/property-matrix-in-unreal-engine/

 

프로퍼티 매트릭스

동시에 여러 액터의 프로퍼티 다수를 확인하고 편집하는 툴입니다.

docs.unrealengine.com

Property Matrix라고 동일한 BP타입의 Properpty를 Matrix로 수정하는 기능입니다.

이 기능을 통해 Skeletal Mesh를 일괄로 적용을 할 수 있었습니다.

 

슬픈 점은 이걸 적용했을 때 AnimSequence가 정상 동작하지 않는다는 점이었습니다.

그나마 다행인 점은 Animation Retarget을 시행하면 Retarget 된 AnimSequence는 정상 동작을 합니다.

문제는 Property Matrix만 사용해서는 동작하지 않고, 수동으로 Skeletal Mesh를 재지정 하여 정상 동작이 확인된 AnimSequence를 포함하여 Retarget을 해야지만 정상 동작을 한다는 점입니다.

 

이게 왜 이런지는 솔직히 잘 모르겠습니다.

우선은 이 Animation Retarget 지옥에서 벗어나기 위해 최대한 빠르게 애니메이션을 다시 입력하고 정상 작업 궤도로 복구하고자 합니다.

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

22년 08월 19일 개발일지  (0) 2022.08.19
22년 08월 18일 개발일지  (0) 2022.08.19
22년 08월 14일 개발일지  (0) 2022.08.15
22년 08월 10일 개발일지  (0) 2022.08.10
22년 08월 07일 개발 일지  (0) 2022.08.07

오늘은 마우스 이동으로 방향 전환 시 캐릭터가 같이 회전하지 않는 이슈.

그리고 이동 시 간단한 애니메이션 적용을 해보았습니다.

 

캐릭터 회전 이슈는 SpringArm의 Rotator 값을 Controller의 값을 사용하도록 하다 보니 마우스를 돌릴 때 캐릭터가 아니라 SpringArm만 회전을 하는 것이었습니다.

이 부분은 옵션을 제거해 놓은 상태입니다.

 

또한 이 과정에서 캐릭터를 90도 회전한 뒤 이동하면 이동 방향이 꼬이는 문제가 있었는데, 이는 Controller의 FrontVector를 사용해서 생긴 문제로 ArrowComponent의 것을 사용하는 것으로 수정했습니다.

 

마지막으로 Animation은 적용해 보았는데 루트모션이 비정상 동작을 하였습니다.

이것저거서 만지다가 아래 블로그를 통해 원인을 파악했습니다.

https://devjino.tistory.com/277

 

[UE5] Animation Retargeting 루트 모션 문제 해결

다음의 글과 같이 작업한후 테스트 해보니, 애니메이션을 루트 모션으로 설정하였지만 제자리에서 움직이지 않는 현상이 있었습니다. [게임 개발/Unreal Engine] - [UE5] Animation Retargeting 방법 다음의

devjino.tistory.com

원인은 Animation Retarget할 때 root 항목과 옵션을 누락했기 때문이고, 튜토리얼에는 이 항목이 없다고 하네요.

결국 이를 수정하기 위해서는 Animation Retarget을 다시 해야 하는데, 이전처럼 노가다를 하나하나 할 생각은 없습니다.

그냥 Unreal Engine 5.x 버전에 호환된 애셋들을 Ctrl CV를 하여 본 프로젝트에 옮겨두고, ignore로 push가 안되게 한 뒤 본 프로젝트 안에서 Animation Retarget을 진행하고자 합니다.

 

내일 광복절이라 회사에 가지 않으니 오후에 시간이 되면 이 작업을 진행할 예정입니다.

추가로 시점 변환 등의 작업을 진행해보니 생각보다 고도화 해야 할 사항이 많다는 것을 깨달았습니다.

그래서 AOS 모드 개발을 무기한 연기하고, 코드 리펙토링을 거친 뒤 기능 추가를 하면서 고도화 작업을 진행 할 예정입니다.

 

 

1.1) 3인칭-1인칭 토글 기능 (주말 전까지 개발)

1.2) 이동 애니메이션 추가 (22.08.14 - cont)

1.3) 이동 함수를 Controller로 이동(1.6)과 통합)

1.4) 이동 방향에 따라 하체 애니메이션 방향 정확히 매칭되도록 보정

1.5) 울퉁불퉁하거나 언덕, 절벽에서 발이 공중에 붕 뜨지 않도록 보정

1.6) 코드 리팩토링(1.이동 기능을 Controller로 이동)

1.7) 추가 기능 구상 및 고도화

2. AOS 모드 개발(충분한 기능이 개발되기 전까지 무기한 연기)

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

22년 08월 18일 개발일지  (0) 2022.08.19
22년 08월 15일 개발일지  (0) 2022.08.15
22년 08월 10일 개발일지  (0) 2022.08.10
22년 08월 07일 개발 일지  (0) 2022.08.07
22년 07월 31일 개발 일지  (0) 2022.07.31

+ Recent posts