작업은 10일부터 했는데 미완인 상태에서 계속 개선하고 건드려 보다가 오늘 완성이 되어서 일지를 적어봅니다.

Enhanced Input Component를 이용해 입력을 받도록 하되, 이왕 입력이 간단하게 정리가 되는 김에 좀 더 모듈화를 하고 싶었습니다.

그럴려면 가장 큰 문제는 입력 반응에 호출될 함수들이 Character 내부에 있는게 아니라 별도의 Object에 있고, Character에서 그걸 가져다가 쓸 수 있었어야 했습니다.

금요일에 Character 내부에서 입력 작업을 마무리 하고, UObject에다가 함수를 분리한 뒤 시도를 해보았는데 빌드 오류를 잡지 못해서 revert를 했습니다.

 

그리고 오늘 졸린데 자기 직전 니케 재화 빼기 위해 뭘 할까 하다가 다시 잡았는데, 코드를 좀 더 찾아보니 Bind Function을 Object와 FunctionName 두가지로 검색하는 것을 발견했습니다.

그래서 "혹시 항상 this를 넣어 주었던 Object 부분에 UObject를 넣어주면 되는거 아닐까?" 해서 시도를 해보았고, 이것이 들어맞게 되었습니다.

이 과정에서 몇 차례 크러시가 났었는데, 처음에는 Interface로 함수들을 선언해주고 이걸 UObject가 상속을 받게 했습니다.

하지만 Interface에서 파생된 함수는 Bind가 동작하면서 Object가 안전하지 못한 것인지 받아들이지 못했고, 그래서 Interface를 폐기하고 Object로 통일했습니다.

 

이 부분이 해결되니 그 이후는 비교적 간편했습니다.

Character 내부의 동작 함수를 각각의 Object에 이식을 하고, 이를 Bind 함수 내부에서 일괄적으로 Bind를 해주었습니다.

 

이후 작업은 Animation이 될 예정입니다.

기본 서있기나 이동 기능은 기본이고, 몇가지 사항은 애니메이션 제공 상황을 봐서 추가 적용할 생각입니다.

첫번째는 제자리에서 화면을 좌우로 전환 시 고개가 따라 움직이는 기능.

두번째는 고개가 일정 이상 회전 시 그 방향으로 몸이 완전히 돌아가는 기능.

세번째로 걷다가 방향을 전환할 시 회전 애니메이션을 넣는 기능.

이렇게 애니메이션을 우선 적용할 예정입니다.

여기까지가 연말에서 구정 전까지 작업 할 사항입니다.

 

위 작업이 마무리가 되면 뛰기, 점프, 앉기 등 혼자서 할 수 있는 기능들을 구현할 생각입니다.

그 다음에는 공격, 상호작용 등을 작업하여 솔로 플레이에서 퀄리티 있는 로코모션 기능을 구현하고, 간단한 오픈월드를 만들어서 IK를 적용할 생각입니다.

여기까지가 내년 3월 중으로 마무리 할 예정인 부분입니다.

 

이 다음은 Dedicate Server를 생성해서 멀티플레이에서 기능 테스트를 할 예정이고, 이 작업에서는 예전에 NDC에서 보았던 "서버와 클라이언트에서의 컴포넌트 부착을 조작하여 최적화"하는 것을 고려할 예정입니다.

예를 들어 Animation에 필요한 상세한 정보나 이벤트 호출 부분을 서버에서는 동작하지 않고, 결과만 받아서 쏴주는 등의 방식을 이용해볼까 합니다.

여기까지가 내년 상반기까지의 목표입니다.

 

이 부분까지 된다면 AWS에 서버를 올리고, 본격적인 기획사항을 구현해갈 예정입니다.

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

22년 12월 18일 개발일지  (0) 2022.12.18
22년 12월 07일 개발일지  (0) 2022.12.07
22년 11월 26일 개발일지  (0) 2022.11.26
22년 11월 24일 개발일지  (0) 2022.11.24
22년 11월 16일 개발일지  (0) 2022.11.16

+ Recent posts