언어:
페이지 정보
수준별:
엔진 버전:
언리얼 엔진

3. 캐릭터 셋업 마무리

언리얼 엔진

여기서는 플레이어 입력에 따라 캐릭터를 제어하는 스크립트를 구현하여 캐릭터 셋업을 마무리하도록 하겠습니다.

  1. MyCharacter 블루프린트를 엽니다.

  2. 그래프에 우클릭 한 다음 InputAxis MoveForwardInputAxis MoveRight 이벤트를 추가합니다.

  3. Ctrl 키를 누른 채 DisableMovement 변수를 끌어놓고 각 이벤트 분기Condition 에 연결합니다.

  4. 나머지 노드 망은 아래와 같이 구성합니다.

    이미지를 클릭하면 원래 크기로 보입니다.

    여기서는 DisableMovementFalse 인 경우에만 캐릭터 이동이 가능합니다. 이렇게 해 주는 이유는 애니메이션이 존재하지 않는 캐릭터 동작을 방지하기 위함인데, 예를 들어 Prone Idle 애니메이션은 있지만 Prone Crawl 애니메이션은 없습니다. 플레이어가 엎드린 상태에서 미끄러져 돌아다니지 않도록 하기 위해, 그 동작은 비활성화시킵니다.

  5. 우클릭InputAxis TurnInputAxis LookUp 이벤트를 추가합니다.

  6. Turn Event 를 Add Controller Yaw Input 노드에, LookUp Event 를 Add Controller Pitch Input 노드에 연결합니다.

    Character_MouseInput.png

  7. 그래프에 우클릭 한 다음 InputAction Jog 이벤트를 추가합니다.

  8. 내 블루프린트 창에서 상속된 변수 표시 체크박스를 체크한 다음 Ctrl 키를 누른 채 CharacterMovement 를 그래프에 끌어 놓습니다.

    Character_JogA.png

  9. Alt 키를 누른 채 Jog Pressed 변수를 끌어놓은 뒤, Ctrl 키를 누른 채 Crouch Pressed 변수를 끌어 놓습니다.

  10. 아래와 같이 "Jog Pressed" 적합한 Set 노드에 되어있도록 망을 구성합니다.

    Click image for full view.

    여기서는 조깅을 누르면 Jog PressedTrue 로 설정하고, Character Movement 컴포넌트에서 캐릭터의 Max Walk Speed375 로 설정하고 있습니다 (이 값을 조절하여 조깅 속도를 올리고/내릴 수 있습니다).

    조깅을 떼면 웅크린 상태인지 검사하여, 그렇다면 Walk Speed 를 160 으로, 아니라면 200 으로 설정합니다 (기본 속도입니다). 조깅 상태에서 웅크리기 또는 걷기 상태로 들어가 적절히 돌아가는 것이 가능합니다.

  11. 그래프에 우클릭 한 다음 InputAction Crouch 이벤트를 추가합니다.

  12. Alt 키를 누른 채 Crouch Pressed 변수를 끌어놓은 뒤, Ctrl 키를 누른 채 Jog PressedProne Pressed 변수를 끌어 놓습니다.

  13. 아래와 같이 "Crouch Pressed" 가 적합한 Set 노드에 되어있도록 망을 구성합니다.

    이미지를 클릭하면 원래 크기로 보입니다.

    웅크리기 스크립트의 경우, 먼저 현재 엎드린 상태인지 검사하고 그렇다면 웅크리기를 허용하지 않습니다 (이렇게 하는 유일한 이유는 웅크리기에서 엎드리기로, 또는 반대로의 애니메이션이 없기 때문이며, 있다면 만들어 줘도 괜찮을 것입니다).

    웅크리기는 버튼을 누르는 동안 유지되도록 하기 보다는, FlipFlop 을 사용해서 토글되도록 했습니다 (이는 선호하는 방식에 따라 달라질 수 있습니다). 처음 누르면 Crouch PressedTrue 로, Max Walk Speed160 으로 설정합니다. 두 번째 눌러 웅크리기 상태 토글을 풀 때는 조깅 상태로 들어가는지 검사한 다음 (그렇다면 속도를 375 로 설정하고) 그렇지 않으면 속도를 다시 200 으로 설정합니다.

  14. 그래프에 우클릭 한 다음 InputAction Prone 이벤트를 추가합니다.

  15. Alt 키를 누른 채 Prone PressedDisableMovement 변수를 끌어 놓습니다.

  16. Ctrl 키를 누른 채 Crouch Pressed 변수를 끌어 놓습니다.

  17. 아래와 같이 "Prone Pressed" 가 적합한 Set 노드에 되어있도록 망을 구성합니다.

    이미지를 클릭하면 원래 크기로 보입니다.

    엎드리기 스크립트의 경우, 먼저 현재 웅크리기 상태인지 검사한 다음, 그렇다면 엎드리기 상태로 들어가지 못하도록 합니다 (말씀드렸듯이, 전환 애니메이션이 없기 때문입니다). 그런 다음 여기서도 FlipFlop 노드를 사용하여 엎드리기 상태를 토글하고 있습니다.

    처음 눌렀을 때는, Prone PressedDisableMovement 둘 다 True 로 설정하여 엎드리기 상태로 들어가 캐릭터의 동작을 불가능하도록 만듭니다. 두 번째 눌렀을 때는, Prone Pressedfalse 로 설정하여 엎드리기 상태를 빠져나간 뒤, (일어서는 상태로의 애니메이션 재생이 끝나기 전 플레이어가 돌아다니지 못하도록) 약간의 (1.4 로 설정된) 딜레이를 두고 동작을 재개시킵니다.

  18. 그래프에 우클릭 한 다음 InputAction Jump 이벤트를 추가하고, 내 블루프린트 창에서 CharacterMovement 를 끌어 놓습니다.

  19. Alt 키를 누르고 Jump Pressed 변수를, Ctrl 키를 누르고 DisableMovementCrouchPressed 변수를 끌어 놓습니다.

  20. 아래와 같이 "Jump Pressed" 가 적합한 Set 노드에 되어있도록 노드 망을 구성합니다.

    이미지를 클릭하면 원래 크기로 보입니다.

    점프 스크립트의 경우, 먼저 엎드리기 또는 웅크리기 상태인지 검사합니다. 어느 것도 True 가 아니라면, CharacterMovement 컴포넌트를 사용하여 현재 속도를 알아내고, 0 보다 크다면 이동중임을 나타냅니다.

    그러면 이동중인지 여부에 따라 캐릭터의 점프 높이를 이동중인 경우 JumpZVelocity365 로, 정지상태인 경우 340 으로 설정하면 됩니다. 어느 경우에도 Jump PressedTrue 로 설정했다가, 점프가 끝나면 Jump PressedFalse 로 설정합니다.