이동 방향에 맞춰서 캐릭터 회전시키기
캐릭터를 이동하는 방향에 맞춰서 회전시키는 방법으로 해결해줄 것이다.
BP_Player의 Character Movement 컴포넌트를 선택 후, Character Movement(Rotation Settings)에서
Orient Rotation to Movement를 체크해준다.
이어서 클래스 디폴트에서 Use Controller Rotation Yaw의 체크를 해제해준다.
이제 실행해보면 캐릭터가 회전은 하지만, 이상하게 회전하는 것을 볼 수 있다.
이는 캐릭터 기준으로 계속 앞뒤좌우가 바뀌고 있기 때문인데, 그래서 카메라를 기준으로 이동하도록 바꿔볼 것이다.
카메라 기준으로 Vector값 받아오기
BP_Player 이벤트그래프에서 Get Camera 노드를 추가하고, 각각 Get Forward/Right Vector로 연결을 바꿔준다.
잘 이동하지만, 카메라가 위아래로 회전을 하게되면 카메라의 Forward(X축)이 밑을 가리키게 되어서 캐릭터가 멈춘다.
이를 해결하기 위해선 카메라의 회전값은 받아오되 Z축의 회전만 적용되도록 바꿔주는 것이다.
Camera에서 WorldRotation을 가져와서 Z축만 Rotator를 연결해준다.
그리고 그 값을 각각 Get Forward/Right Vector와 연결시켜주면 카메라의 Z축만 영향을 받게 바뀐다.
움직이다보면 카메라의 시점이 좀 불편할 수도 있다.
이는 SpringArm에서 알아서 수치를 잘 조절해주면 좀 더 자연스러운 카메라 이동이 된다.
캐릭터 컨트롤러
레벨로 나와서 콘텐츠 / BluePrints폴더에 블루프린트 클래스 - 플레이어 컨트롤러를 하나 추가해준다.(BP_PlayerController)
BP_PlayerController 블루프린트에 들어오면 뷰포트에 카메라가 보이지만, 컴포넌트에는 없다.
사실 BP_Player에 추가한 Camera 자체로 동작하고 있는 것이 아니라 Camera컴포넌트는 Camera 내부의 정보만
제공해주는 역할을 하고 있다.
실제로 그 정보가 쓰여서 보여주는 것은 PlayerController이다.
그래서 따로 PlayerController를 만들어주지 않아도 실행하면 자동으로 PlayerController가 생성이 되는 것을 볼 수 있다.
미리 만들어져 있는 것은 흰색 / 새로 만들어진 것은 노란색으로 보면 된다.
지금까지 우리가 조종하던 것은 PlayerController인 것이다. 즉, Player 한명은 PlayerController 하나만 가질 수 있다.
그래서 Player가 PlayerController로 여러개의 Pawn들 중에서 하나를 Possess하여 조종하게 되는 것이다.
따라서 이제는 BP_PlayerController 이벤트그래프에서 캐릭터의 이동하는 것을 담당할 것이다.
'언리얼엔진' 카테고리의 다른 글
11. Jump애니메이션/블렌드 세팅 (0) | 2023.05.13 |
---|---|
10. PlayerController / Game Mode Base (2) | 2023.05.11 |
8. 캐릭터 시점 이동하기 (0) | 2023.05.09 |
6. Asset / Character 살펴보기 (0) | 2023.05.06 |
5. Construction Script / 이벤트 / 함수 / 매크로 / 와일드카드 (0) | 2023.05.03 |