프로젝트 생성 및 기본 입력 처리

Taegang Yun·2023년 7월 16일
0

버전 관리 시스템과의 연동

  1. Unreal Editor에서 프로젝트를 생성한다.
  2. 해당 프로젝트 폴더에서 terminal > git init
  3. .gitignore 파일을 추가함으로써 불필요한 log 파일 등의 저장을 거를 수 있다.
  4. Unreal Editor 우하단 Source Control > Connect to source control
  5. Provider > Git

변경 사항 적용법

  1. 컨텐츠 변경 후 우하단 Source Control > 콘텐츠 제출
  2. 간단한 Msg를 남길 수 있다.

레벨

레벨은 우리가 흔히 생각하는 Map과 비슷한 개념이다. 세트장이라고 생각하면 된다.

Outliner 아웃라이너

현재 레벨에 배치된 모든 오브젝트를 볼 수 있다.

게임 프레임 워크

게임 개발을 쉽게 하기 위해 정해진 틀이 있다.

게임 모드, 플레이어 컨트롤러, 폰 으로 구성이 된다.

  • 게임 모드 : 게임 내에서 심판 역할을 하는 구성 요소. 게임의 시작과 끝을 담당, 게임의 규칙을 담당

  • 플레이어 컨트롤러 : 게임 내에서 플레이어의 영혼 역할. 일밙적으로 하나의 폰에 빙의(Possess)를 해서 그것들을 소유하거나 관리하는데 쓰임.

  • : 게임 내에서 플레이어의 육체 역할. 일반적으로 하나의 플레이어 컨트롤러에 의해 빙의당해 플레이어의 입력을 처리하는 실질적 대리인을 구현함.

구현 실습

Blueprint > Gamemode, PlayerController, Character 생성.
Gamemode의 blueprint에서 클래스 디폴트 -> 사용할 PlayerController, Character 설정 가능.
그리고 현재 레벨에서 사용할 Gamemode는 월드 세팅에서 설정.

블루프린트

블루프린트 화면에서 보이는 노드들은 블루프린트 노드.
블루프린트는 입력핀과 출력핀이 존재한다. 왼쪽이 입력핀, 오른쪽이 출력핀.

  • Event BeginPlay : 게임을 플레이할 때 시작되는 노드
  • Event ActorBeginOverlap : 다른 액터와 충돌이 발생했을 때 > 출력핀의 Other Actor는 충돌 발생한 액터를 의미
  • Event Tick : 매 프레임마다 처리되는 노드

캐릭터 이동 구현

캐릭터 이동은 Event Tick에서 구현하는 것이 편리하다.

  • Add Movement Input : 이동을 구현하는 노드
  • Add Controller pitch/roll/yaw input : 회전을 구현하는 노드
  • Get Actor Rotation : Actor의 Rotation 을 획득.
    • Get Forward Vector : Rotation의 정면 벡터획득
    • Rotate Vector Around Axis : 축을 기준으로 회전, GetForwardVector의 Return 값에 RotateVectorAroundAxis를 응용

입력을 받아 캐릭터의 이동을 구현해보자

Enhanced Input Action이라는 것을 사용한다.

Input mapping Context를 이용해 여러 액션을 매핑한다.
각 액션을 매핑한 후, GameController의 BeginPlay 이벤트에 향상된 입력 서브 시스템을 연결해준다. 연결할 때, AddMappingContext를 통해 연결한다.

그런데 우리가, MoveForward에 W, S 키를 매핑해놨다고 하자. 앞으로 갈 때 w, 뒤로 갈 때 s라고 정의해주지 않았기 때문에, Modifiers를 이용한다.
Modifiers의 Negate를 사용하면 반대가 된다.

GameController에서 AddMappingContext 를 통해 IMC를 사용할 것이라고 선언해준다음, 입력 액션에 대한 동작은 Character의 BP에서 만들어준다.

pitch, Yaw, Roll 은 각각 회전 축이 다르다.
Roll 은 x축을 중심으로 회전하고,
Pitch 는 y축을 중심으로 회전하고,
Roll은 z축을 중심으로 회전한다.

x, y, z 축은 이렇게 생각하면 편하다.

profile
언젠간 전문가가 되겠지

2개의 댓글

comment-user-thumbnail
2023년 7월 17일

저도 개발자인데 같이 교류 많이 해봐요 ㅎㅎ! 서로 화이팅합시다!

1개의 답글

관련 채용 정보