UE4 Chapter 3-2. 플레이어 캐릭터 : 캐릭터 이동, 회전
카테고리: UE4 Lesson 1
태그: UE4 Game Engine
인프런에 있는 황대희님의 언리얼 엔진4 3D 횡스크롤 게임 만들기 강의를 듣고 정리한 필기입니다. 😀
언리얼 엔진 공식 문서 https://docs.unrealengine.com/ko/index.html
Chapter 3. 플레이어 캐릭터
🔔 캐릭터 이동
Character
는 이동할 수 있고 충돌 처리도 된다.
- 입력 활성화 방법이
Actor
와는 좀 다르다. 밑에 참고.
액터의 Vector 이동의 한계
이전 포스트처럼 단순히 액터가 트랜스폼 위치 Vector3 를 변경하면서 움직이게 되면 액터끼리의 충돌 처리가 되지 않는다 (액터는 기본적으로 static하고 움직이지 않는 것이라서 그런가?) 따라서 서로 충돌처리가 가능한 Character를 부모클래스로 클래스 블루프린팅을 하자
좌우 움직이기
블루프린트 추가
- Character를 부모클래스로 로 하는 클래스 블루프린팅을 추가해주자.
- 이름은 “MoveCharBP”
- 블루프린트 창에서 큐브 컴포넌트를 추가해주었다.
- 컴파일 후 이 블루프린트를 뷰포트에 드래그 앤 드롭하면 오브젝트로서 생성이 된다.
입력 축 추가
- 이전 포스트에서 추가했던
LeftRight
입력 축 노드를 추가해준다.- 매 프레임마다 Axix Value로 0 or 1 or -1 을 리턴한다.
- 아무 입력 X or D 입력 or A 입력
- 매 프레임마다 Axix Value로 0 or 1 or -1 을 리턴한다.
블루프린팅
AddMovementInput
은 캐릭터같은Pawn
을 이동시키는 노드이다.
- Input 타입인
AddMovementInput
노드를 추가해준다. LeftRight
의 Axix Value 핀과AddMovementInput
의 Scale Value 핀을 연결해준다.AddMovementInput
의 World Direction은 (0, 1, 0) 으로 해준다.- Y축(오른쪽 왼쪽)
- 매 프레임 입력이 들어오는 순간동안 Y축 방향으로 -1 혹은 1 씩 움직이게 된다.
- 입력(float)값을 Scale Value로 받아 이만큼의 크기(벡터 길이)로 현재 위치로부터 World Direction 벡터만큼 움직이게 된다.
- 방향(벡터) X 크기(스칼라) = 이동할만큼을 나타내는 벡터
입력 활성화
캐릭터 같은
Pawn
은 입력 활성화를 할 때 이전 포스트처럼Enable Input
을 추가하지 않는다.
이 블루프린트가 적용된 “MoveCharBP”의 디테일 패널로 가서 Pawn
컴포넌트를 찾은 뒤 Auto Possess Player
를 Player 0
으로 변경해준다.Player 0
은 온라인이 아닌 로컬에서의 로컬 플레이어를 의미하는데, Player 0
폰으로 빙의(Possess) 되므로서 자동으로 Player 0
폰을 컨트롤하는데에 대한 입력이 활성화가 된다.
3인칭 카메라
- 카메라를 따로 만들어주지 않으면 언리얼에서 자동으로 1인칭 카메라를 생성해준다.
- 따라서 큐브의 시점을 보여주는 카메라가 생성된다.
- 큐브의 눈으로 보는 듯한 1인칭 시점
- 따라서 큐브의 시점을 보여주는 카메라가 생성된다.
- 3인칭 시점으로 큐브를 따라다니며 비추는 카메라를 만들기 위해
- 큐브의 블루프린트 창에서 카메라 컴포넌트를 추가해주었고 (컴포넌트로 추가가 된 것이므로 이제 큐브와 한몸이 되어 따라다니게 됨)
- 카메라 위치를 큐브와 겹치지 않게 큐브로부터 거리를 좀 두게끔 배치해주었다. 큐브와 겹쳐있으면 큐브에 파묻혀버려서..
- 카메라가 큐브의 뒤를 따라다니게 된다.
위아래도 움직이기
- 이전 포스트에서 배웠듯이 편집 - 프로젝트 세팅 - 입력에 가서
W
,S
키에 대한 입력 축(Axix Mapping
)인 “Foward Backward”을 추가해주자. AddMovementInput
의 World Direction은 (1, 0, 0) 으로 해준다.- X축(앞 뒤)
- 매 프레임 입력이 들어오는 순간동안 X축 방향으로 -1 혹은 1 씩 움직이게 된다.
🔔 캐릭터 회전
이동 방향에 따라 그에 맞게 캐릭터가 회전하게 하려면
Character Movement (Rotation Settings)
컴포넌트에서 Orient Rotation to Move 를 체크해준다. 캐릭터가 이동하고 있는 방향쪽으로 자동으로 회전하게끔 한다.Pawn
컴포넌트에서 Use Controller Rotation Yaw을 체크 해제해준다. 1번에서 이동 방향에 맞게 회전하게끔 하더라도 여기에 체크가 되어 있으면Pawn
에서 회전을 막게 된다.
🌜 개인 공부 기록용 블로그입니다. 오류나 틀린 부분이 있을 경우
언제든지 댓글 혹은 메일로 지적해주시면 감사하겠습니다! 😄
댓글 남기기