우선 기존에 만들었던 Spawn의 부족한 점을 손보자.
기존의 Spawn Unit은 정해진 Location에서 충돌을 무시하고 진행하기 때문에, 유닛이 서로 겹쳐서 등장하는 오류가 있었다.
소환 위치를 바꾸는 것 이전에, 계속 공중에 떠 있으니 보기 좋지 않다.
중력을 적용되게 만들어 볼 생각인데, 그러기 위해서 먼저 UE의 Movement Component들에 대해서 알아봤다.
1. PawnMovementComponent
2. FloatingPawnMovement
3. CharacterMovementComponent
4. NavMovementComponent
5. ProjectileMovementComponent
일단 유닛이 발사체는 아니니 5번은 제외. 3번도 많은 Pawn이 같이 사용하기에는 비용 부담이 클 것 같기에 제외.
공중에서의 움직임은 아직 계획이 없기 때문에 굳이 2번을 할 이유도 없는 것 같다.
그렇다면 1번 혹은 4번으로 생각해서 진행하되, 지금 프로토타입을 만들어보는게 먼저니까 1번을 받아와서 내가 필요로 하는 중력 부분만 구현해주면 되지 않을까? 라는 생각으로 진행했다.
이 UnitMovementComponent는 기본적으로 PawnMovementComponent를 가져왔고, 여기에 중력 요소만 추가하자.
TickComponent는 원래 있던 것에 중력 부분만 추가해서 실행한다.
추가된 요소는 땅에 닿아있는 것을 확인하는 CheckGroundContact와 중력을 적용하는 ApplyGravity.
땅에 닿아있는 상태에서 계속 적용할 필요는 없기에 bOnGround를 통해 공중에 떠 있을 때(처음 소환될 때)만 적용하게 했다.
그리고 다들 오랜만에 모여서 진행 상황을 공유하고, 할 것들을 정리해보기로 했다.
진행되고 있는 방향은 큰 틀로 나눠서 각각
1.유닛, 방, 함정 모델링
2.UI 디자인과 아트 분위기 정하기
3.내가 할 것
1번을 하고 있는 친구와는 유닛과 방 크기 정도만 이야기 했고, 2번 친구랑은 내가 짜놓은 함수가 UI 동작과 매끄럽지 않아서 그걸 우선 고치기로 했다.
내가 독립적으로 진행할 것은 플레이어가 Play 버튼을 누르기 전 후로 정리해보았는데,
Play 버튼 이전
Room에 할당된 개수 이상 소환시 유닛 반환.
Room에 배치된 이후 자기 자리 찾아가기.(충돌 해결)
*UI상에서 각 방에 배치되어있는 유닛 보는 법(2D map기준)
*적 소환될 포탈 위치 첫 지정시 적군이 들어올 경로 미리 보여주기
적이 소환되는 곳을 방처럼 취급하여 적군 유닛 소환.
Play 버튼 이후
소환된 적군 유닛이 핵까지의 경로 찾기.
Room에 할당된 유닛 끼리의 매칭 및
매칭된 유닛의 전투 시작 (전투 메커니즘)
유닛의 State machine (전투 - 이동(탐색))
전투가 시작된 방의 입구-출구 완전 별개로 그냥 지나가기
##각 행동 - 애니메이션 연결 (찾아봐야함)
핵 깨졌을때 패배 and 적 다 죽었을때 승리
기타 마무리
가 되겠다. 우선 개별적으로는 얼추 만들어져 있는데, 일단은 프로토타입을 연말까지 만들어보는 것을 목표로 일정을 잡았다.
'Unreal' 카테고리의 다른 글
[05] Unreal Singleton/Get Actor of Class (2) | 2024.09.04 |
---|---|
[04] Actor Spawn, Algo/Sort (0) | 2024.08.15 |
[03] Pawn C++ Class (0) | 2024.08.02 |
[02] Unreal Engine Learning (1) | 2024.05.16 |
[01] Unreal Engine Learning (0) | 2024.05.01 |