본문 바로가기

게임 개발/언리얼 개인 프로젝트-FlightFight

[언리얼 개인 프로젝트-FlightFight / C++] #1. Pawn 설계 - (1) Pawn 구성

반응형
드디어 프로젝트를 완성하였다.
원래는 개발 계획을 파트 별로 세우고, 한 파트를 완료하면 정리글을 업로드할 생각이었다.

하지만 한 챕터를 완료하고 그다음 챕터를 진행하다 보면
그전 챕터에 해놨던 것들을 수정해야 하는 일이 너무 빈번하다 보니
그럴 때마다 여기에 쓴 글까지 수정하기는 너무 힘들다고 생각했다.

어찌어찌 프로젝트를 끝냈으니 이제라도 미뤄왔던 업로드를 해보려 한다.

<FlightFight 포스터>

가장 기본이 되는
플레이어가 조종하게 될 비행기를 필요에 맞게 구성해 본다.

 

<1>. 액터 생성(Pawn OR Character?)

 

우선 액터를 만들어야 하는데, 부모 클래스를 'Pawn'으로 해야 할지, "Character'로 해야 할 지에 대해 생각하는 것이 첫 번째였다. 따라서 어느 정도 정리해 본 결과이다.

Pawn Character
이동 로직 정의 X 인간형 Pawn을 효과적으로
제작하기 위한 특수모델
유연하게, 자유롭게 사용 가능 APawn클래스를 상속받음
이동 로직을 커스텀하게 구현 가능 /

특수한 이동방식(비행기, 드론 등)
걷기, 달리기, 점프, 수영 등의
움직임 제공

 

Character는 Pawn의 형태가 인간일 경우에 더 편리하게 사용하기 위한 기능이기 때문에, 비행기 액터의 부모 클래스는 Pawn으로 정한다. 

Pawn을 생성한 후, 월드 세팅의 디폴트 폰 클래스로 설정해 주는 것도 잊지 말자!

 

<2>. 비행기의 구성 요소

비행기 하나를 만들려면 많은 요소들이 필요하다. 이를 정리해 보자.

<2> - 1. 시각적 표현 담당 : SkeletalMesh

비행기의 겉모습을 담당하는 Mesh가 필요하다. 이는 마켓 스토어에서 무료로 다운로드할 수 있는 에셋을 사용하였다.

일반 상태일 때, 폭파된 상태일 때의 에셋을 사용하였다.

 

Jet
<Jet>

 

Damaged_Jet
<Damaged_Jet>

<2> - 2. 시점 담당 : Camera

이 게임은 3인칭 시점이기 때문에 조종하는 비행기의 모습을 플레이어가 볼 수 있어야 한다. 그렇기 때문에 Camera, SpringArm을 사용하여 Pawn을 기준으로 카메라를 배치해 준다.

Camera
<Camera>

<2> - 3. 충돌 담당 : Box Collision

이 게임은 슈팅게임이기 때문에 서로 총알을 발사하고 대미지를 입힌다. 다른 오브젝트와 Pawn이 충돌 반응을 일으킬 수 있게 Box Collision으로 비행기를 감싸준다. 

BoxCollision
<BoxCollision>

<2> - 4. 최종 결과

 

Pawn-Code
<비행기 구성 코드>
최종-결과
<최종 결과>

 

위와 같은 요소들로 구성을 하고 나면, 플레이어(사람)가 화면으로 보게 되는 모습은 위 사진과 같다.

 

<2> - 5. 참고 사항

  • Mesh_Death : 위에 나와있는 Damaged_Jet 메시이다. 비행기가 폭파됐을 때 해당 메시로 모습이 바뀌게끔 하기 위해 Jet / Damaged_Jet 메시 둘 다 항상 Pawn에 붙어있는데 폭파 여부에 따라 'SetVisibility'를 통해 둘 중 하나가 보이게, 안 보이게끔 해주었다.  

 

  • RootComponent :  Pawn은 반드시 RootComponent를 설정해줘야 하고, 어떤 오브젝트로 설정해줘야 할지 고민을 했다. 찾다 보니, Character 클래스는 기본적으로 루트 컴포넌트가 Capsule Component로 설정돼있다고 한다. 따라서 Pawn의 RootComponent 또한 BoxCollision으로 설정해 주었다.

 

※ 다음 ㅊ

 

[언리얼 개인 프로젝트-FlightFight/C++] #1. Pawn 설계 - (2) Pawn 조작법

비행기, 즉 Pawn의 조작법을 구현해 본다.. 조작법  (FloatingPawnMovement)비행기의 작동방식은 우리가 흔히 알고 있는 자동차의 작동방식과 다르다. Throttle이라는 장치도 있을뿐더러, 3개의 축을 기준

lbto.tistory.com

 

반응형