반응형
드디어 프로젝트를 완성하였다.
원래는 개발 계획을 파트 별로 세우고, 한 파트를 완료하면 정리글을 업로드할 생각이었다.
하지만 한 챕터를 완료하고 그다음 챕터를 진행하다 보면
그전 챕터에 해놨던 것들을 수정해야 하는 일이 너무 빈번하다 보니
그럴 때마다 여기에 쓴 글까지 수정하기는 너무 힘들다고 생각했다.
어찌어찌 프로젝트를 끝냈으니 이제라도 미뤄왔던 업로드를 해보려 한다.
가장 기본이 되는
플레이어가 조종하게 될 비행기를 필요에 맞게 구성해 본다.
<1>. 액터 생성(Pawn OR Character?)
우선 액터를 만들어야 하는데, 부모 클래스를 'Pawn'으로 해야 할지, "Character'로 해야 할 지에 대해 생각하는 것이 첫 번째였다. 따라서 어느 정도 정리해 본 결과이다.
Pawn | Character |
이동 로직 정의 X | 인간형 Pawn을 효과적으로 제작하기 위한 특수모델 |
유연하게, 자유롭게 사용 가능 | APawn클래스를 상속받음 |
이동 로직을 커스텀하게 구현 가능 / 특수한 이동방식(비행기, 드론 등) |
걷기, 달리기, 점프, 수영 등의 움직임 제공 |
Character는 Pawn의 형태가 인간일 경우에 더 편리하게 사용하기 위한 기능이기 때문에, 비행기 액터의 부모 클래스는 Pawn으로 정한다.
Pawn을 생성한 후, 월드 세팅의 디폴트 폰 클래스로 설정해 주는 것도 잊지 말자!
<2>. 비행기의 구성 요소
비행기 하나를 만들려면 많은 요소들이 필요하다. 이를 정리해 보자.
<2> - 1. 시각적 표현 담당 : SkeletalMesh
비행기의 겉모습을 담당하는 Mesh가 필요하다. 이는 마켓 스토어에서 무료로 다운로드할 수 있는 에셋을 사용하였다.
일반 상태일 때, 폭파된 상태일 때의 에셋을 사용하였다.
<2> - 2. 시점 담당 : Camera
이 게임은 3인칭 시점이기 때문에 조종하는 비행기의 모습을 플레이어가 볼 수 있어야 한다. 그렇기 때문에 Camera, SpringArm을 사용하여 Pawn을 기준으로 카메라를 배치해 준다.
<2> - 3. 충돌 담당 : Box Collision
이 게임은 슈팅게임이기 때문에 서로 총알을 발사하고 대미지를 입힌다. 다른 오브젝트와 Pawn이 충돌 반응을 일으킬 수 있게 Box Collision으로 비행기를 감싸준다.
<2> - 4. 최종 결과
위와 같은 요소들로 구성을 하고 나면, 플레이어(사람)가 화면으로 보게 되는 모습은 위 사진과 같다.
<2> - 5. 참고 사항
- Mesh_Death : 위에 나와있는 Damaged_Jet 메시이다. 비행기가 폭파됐을 때 해당 메시로 모습이 바뀌게끔 하기 위해 Jet / Damaged_Jet 메시 둘 다 항상 Pawn에 붙어있는데 폭파 여부에 따라 'SetVisibility'를 통해 둘 중 하나가 보이게, 안 보이게끔 해주었다.
- RootComponent : Pawn은 반드시 RootComponent를 설정해줘야 하고, 어떤 오브젝트로 설정해줘야 할지 고민을 했다. 찾다 보니, Character 클래스는 기본적으로 루트 컴포넌트가 Capsule Component로 설정돼있다고 한다. 따라서 Pawn의 RootComponent 또한 BoxCollision으로 설정해 주었다.
※ 다음 ㅊ
반응형
'게임 개발 > 언리얼 개인 프로젝트-FlightFight' 카테고리의 다른 글
[언리얼 개인 프로젝트-FlightFight/C++] #1. Pawn 설계 - (4) 추가 이펙트(Niagara System) (0) | 2025.01.02 |
---|---|
[언리얼 개인 프로젝트 - FlightFight/C++] #1. Pawn 설계 - (3) 총알 발사 (0) | 2024.12.24 |
[언리얼 개인 프로젝트-FlightFight/C++] #1. Pawn 설계 - (2) Pawn 조작법 (0) | 2024.12.18 |
[언리얼 개인 프로젝트-FlightFight / C++] #0. 프로젝트 기획 (0) | 2024.07.15 |