언리얼엔진 5 블루프린트를 사용해서 플랫포머 게임 만들기
https://www.youtube.com/watch?si=9Zh1O6MSMDM9Ig2f&v=i1AsseqRyuI&feature=youtu.be
이 게임에서 목표로 가지게 된 기능으로는
- 직교 렌더링
- https://dev.epicgames.com/documentation/ko-kr/unreal-engine/orthographic-camera-in-unreal-engine
- 많은 사람들이 3D로 구현해 주실 것 같아서 저는 2D느낌으로 진행했습니다.
- 블루프린트
- GameClearTrigger, WartActiveTrigger, WartStartTrigger
- 위에 부분들은 블루프린트로 트리거 개념으로 구현해서 진행했습니다.
- Mover, Character
- Mover는 이동하고 싶은 방향을 입력해서 해당 방향으로 왕복 운행을 목표로 했습니다.
- Character는 Input Action과 Input Mapping Context를 사용해서 입력을 받고 Blend Space, State Machine을 통해서 IDLE → RUN → JUMP 간의 관계를 구성했습니다.
- WarpEntrance
- WarpPoint로 플레이어의 로테이션 값을 이동시켜 주는 블루프린트입니다.
- GameClearTrigger, WartActiveTrigger, WartStartTrigger
- 레벨디자인
- 조금 SF 분위기가 들어간 루디브리엄? 맵의 느낌으로 구현했습니다.
- 네온사인 느낌을 좋아해서 많이 설치되었습니다.
- 사운드
- 플레이어 RUN 애니메이션에 발소리 키프레임으로 SoundCue 적용해서 발소리 구현 했습니다. 발소리 사운드에는 Modulator 적용해서 렌덤 하게 다양한 피치와 다양한 볼륨으로 나오도록 구현했습니다.
- 레벨 블루프린트에 배경음악 SoundCue 적용했습니다.
- 점프 블루프린트 진행할 때 점프 SoundCue 적용했습니다.
게임 시작과 끝에 퀄리티를 위해서라면 시네마틱 한 인트로와 아웃풋을 만들고 싶었지만 지금 목표랑은 관련이 없어서 깔끔하게 종료했습니다.
직교 렌더링
직교 렌더링을 위해서 카메라 오브젝트의 Projection Mode를 Orthorgraphic으로 설정합니다.
Ortho Width값을 조절하여 적정한 프레임 노출을 조절합니다.
트리거 아이템 오브젝트 블루프린트
- 제자리에서 상하로 위치 변환
- 콜리전 감지 후 인벤트 실행 및 제거
파라미터로 관리되는 왕복 이동 블루프린트
Character
- Enhanced Input Local Player Subsystem 적용
- Input Mapping Context, Input Action 사용해서 Move, Look, Jump 구현
- Animation Blue Print를 사용해서 다양한 상태 적용, State Machine 사용해서 애니메이션 상태 관리
BS_NBC_Character → A_Bot_RunJump = IsFalling의 값이 True일 때
A_Bot_RunJump → A_Bot_Fall → 점프 애니메이션의 남은 시간이 0.1 이하일 때
A_Bot_Fall → BS_NBC_Character = IsFalling의 값이 False일 때
조건으로 스테이트를 관리했습니다.
전체 레벨디자인(플레이 영상은 최상단에 있습니다.)
이득우의 언리얼 프로그래밍 Part 1
#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "FileName.generated.h" -> generated.h파일이 include의 마지막이여야 한다.
#include "person.h" -> 이것은 잘못된 경우
놓치기 쉽지만 해당 오류는 은근 발견하기 어려울 수도 있겠다는 생각이 들었습니다.
이렇게 일주일이 되었습니다.
유독 이번주는 길게 느껴지고 있습니다.
힘차게 다음 주도 나아가보겠습니다. 감사합니다.