언리얼 엔진 - Pawn 이동

카메라 회전에는 성공했으나 플레이어 캐릭터가 움직이지 않는다.

플레이어 캐릭터가 이동할 수 있도록 설정한다.

IA_Move

Content
└─Assets
  └─Input
    └─Actions
      └─IA_Move (+)
  • IA_Move 블루프린트를 추가한다.
  • 블루프린트를 열어 Value Type 값을 Asix 2D 벡터로 선택한다.
    • 상하좌우 축이 2개 필요함으로 Asix 2D로 선택하였다.

IMC_Default 편집

Content
└─Assets
  └─Input
    └─IMC_Default (*)
  • 블루프린트를 편집할 수 있도록 IMC_Default 를 열어준다.
  • Mappings 를 추가하여 IA_Move 등록한다.
    • WSAD 각각 처리할 수 있도록 키를 등록한다.
    • 추가로 Asix2D 등록으로 X,Y,Z = 1,0,0 이 기본 Double 값이다.
    • D 키는 X축이 양수 이동이므로 1,0,0 으로한다.
    • A 키는 X축이 음수 이동이므로 -1, 0, 0 으로 한다. Negero 부호만 바꿔도 된다.
    • W키는 Y축이 양수 이동이므로 0, 1, 0 으로 한다. XYZ->YXZ 치환한다.
    • S 키는 Y축이 음수 이동이므로 0, -1, 0 으로 한다.YXZ 치환하고 Negero 부호 변경한다.

BP_PlayerController 편집

다음으로 BP_PlayerController 블루프린트를 편집한다.

Content
└─Blueprints
  └─BP_PlayerController (*)

PlayerController 에서 자신이 직접 조종하는 폰을 가져와야한다. GetControlledPawn 노드를 가져와 변수로 저장한다.

캐싱 - 캐스트한 BP_Player 새로운 변수(Promote As Variable)로 저장한다.

  • PlayerController 에서 직접 조종하는 BP_Player 인스턴스를 가져와 변수로 캐스트한다.

플레이어 입력으로 회전하기

  • BP_Player 캐스트한 변수를 설정하였으므로 Add Movement Input 노드를 가져와 연결한다.
  • IA_Move 노드, GetControlRotation 노드를 추가한다.
  • Right Vector, Forward Vector 노드도 각각 추가한다.

GetControlRotation

PlayerController의 Rotation 값을 가져온다.

GetRightVector

좌우 이동 용도로 사용할 것임으로 RightVector 로 Rotation 핀을 연겨한다.

Add Movement Input

이벤트처럼 입력 키와 스케일, 회전을 입력한 값으로 Pawn(BP_Player)의 CharacterMovement 컴포넌트로 실행하라고 전달한다.

인 게임