
서브 레벨
메인 레벨과 서브 레벨을 나누고 Level BluePrint에서 LoadStreamLevel로 원할 때마다 레벨을 가져올 수 있게 한다. (성능 이슈 때문에)
레벨 전환
메인 레벨에서 다른 레벨로 이동(맵 이동)할 때는 Level BluePrint에서 Open Level로 맵을 선택하면 다른 레벨로 이동이 가능하다.
폰(pawn)
컨트롤러는 폰을 소유(possess) 하고 소유 상태에 따라 캐릭터를 교체하여 다른 폰을 조종할 수 있다.AI 컨트롤러(AI Controller)
행동 트리로 의사결정 과정(시야에 들어오면 쫓기, 아니면 순찰하기)을 구현
UMG
언리얼 엔진에서 UI를 만드는 전용 프레임워크로 블루 프린트를 이용해 버튼, 텍스트, 슬라이더, 이미지 등을 배치할 수 있다.
액터
레벨에 배치할 수 있는 모든 오브젝트로
초기화 → 시작(Spawned) → Tick(프레임마다 업데이트) → Destroy 의 흐름을 가짐
이 밖에도 위치, 회전, 스케일 변경이 가능하고 다양한 컴포넌트를 넣을 수 있다.컴포넌트(Component)
Actor → Pawn → Character
- Pawn
액터를 상속받아 조종 가능한 특징을 더한 클래스- Character
Pawn을 상속받아 걷기, 달리기, 점프 등의 이동 로직이 포함된 클래스- 컴포넌트
액터가 자기 자신에게 서브 오브젝트로 Attach하는 오브젝트.
예를 들어 휘두르기가 가능한 검을 Attach하며 플레이어는 공격 컴포넌트를 가지게 되며 모션 움직임 사용이 가능하다.이벤트(Event)
액터는 블루프린트 이벤트(BeginPlay, Tick, Overlap 등)를 통해 상호작용 로직을 구현
예를 들어서 캐릭터가 문(Actor)에 가까이 가면 자동으로 열리는 것과 같음
캐릭터 생성 후 카메라
컴포넌트에서 SpringArm과 Camera를 설치하여 뷰 포트로 확인
SprinArm으로 뒤에 장애물이 있을 경우 카메라가 더 뒤로 이동하지 않게 된다.캐릭터 조작
콘텐츠 브라우저에서 우클릭으로 에셋 생성 → 입력 → 입력 액션, 입력 매핑 컨텍스트를 생성한다.
입력 액션 : 입력 받기
입력 매핑 컨텍스트 : 받은 입력을 어떻게 매핑할지
마우스로 화면 이동, 키보드로 캐릭터 이동은 둘 다 Vector 2D 방식이다.
S는 W의 부정(반대 방향), D는 스위즐 입력 측 값(오른쪽), A는 D의 부정(반대 방향)으로 값 설정
X축 값과 Y축 값에 대해서 GetActorForwardVector(앞 뒤), GetActorRightVector(좌우) 이동으로 블루프린트 설정캐릭터 화면 이동
AddControllerYawInput(좌우)와 AddControllerPitchInput(위 아래)를 각각 설정해주고 캐릭터 디테일의 무브먼트 방향으로 회전 조정을 체크 표시해주면 캐릭터 화면 이동도 정상적으로 동작한다.
카메라가 세팅되어 있다면 폰 제어 회전 사용도 체크조작 수정
A키와 D키를 눌렀을 때 카메라 기준이 아닌 캐릭터 기준으로 적용이 되어 같은 자리에서 회전할 때 카메라 기준으로 이동되게 수정하려고 한다.
이런 방식으로 캐릭터 조작 수정이 가능하다.
- 입력 액션 생성
- InputMappingContext에 등록
- 기본적으로 제공되는 Jump 와 연결