캐릭터 점프 애니메이션 설정하기

김민수·2025년 1월 31일

언리얼 C++

목록 보기
32/32

1. State Machine 생성 및 Control Rig 설정


1. Main States 이라는 이름으로 State Machine 생성
2. Control Rig 노드를 Output Pose로 연결


3. Control Rig 설정

  • Detail 창에서 Control Rig ClassCR_Mannequin_BasicFootIK로 지정한다. (프로젝트에 존재하는 IK용 Control Rig 에셋)
  • Set Initial Transforms From Mesh 옵션을 체크한다.
    • 이 옵션은 현재 스켈레탈 매쉬(Anim Graph에서 넘어온 포즈)의 뼈 반환을 그대로 초기값으로 사용하겠다는 것을 의미한다.
    • 체크하면, 매 프레임 “State Machine에서 계산된 포즈”를 기반으로 Control Rig이 추가적인 IK나 변형을 진행한다.
  • Input과 Output 카테고리에서 ShouldDoIKTrace - Use Pin을 체크한다.
    • 보통 CR_Mannequin_BasicFootIK에서는 ShouldDoIKTrace가 있어서, 실제로 발 위치를 추적할 것인지를 결정한다.
    • Use Pin에 체크하면, 이 값이 Anim Graph나 Blueprint에서 핀으로 연결 가능하게 된다.
    • 즉, 캐릭터가 공중에 있을 땐 발 IK를 안 쓰고, 지면 위에 있을 때만 발 IK를 사용한다는 뜻이다.

2. Locomotion State Machine을 캐시 포즈로 저장

캐시 포즈(Cached Pose)로 저장하면 쉽게 재사용할 수 있다.

  1. New Save Cached PoseLocomotion 으로 저장

  2. Main States State Machine 안에서 EntryLocomotion 상태 생성하고 연결

  3. Locomotion 상태 안에서 아까 만든 캐시 포즈를 Output Animation Pose에 연결


3. 3개의 상태 생성 (Jump, Fall Loop, Land)

✅ Jump State 추가

  1. State Machine 내부에서 "Jump" State 추가
  2. Jump에서 점프 애니메이션 연결
  3. Loop Animation 체크 해제 (점프 애니메이션이 한 번만 재생되도록 설정)

✅ Fall Loop(추락) State 추가

  1. State Machine 내부에서 "Fall Loop" State 추가
  2. Fall Loop에서 추락 애니메이션 연결
  3. Loop Animation 체크 (추락 중 계속 애니메이션 반복)

✅ Land(착지) State 추가

  1. State Machine 내부에서 "Land" State 추가

  2. Land에서 Additive 노드 생성 후 Locomotion 캐시 포즈 및 착지 애니메이션 연결

    • 기존 이동 애니메이션(Locomotion 캐시 포즈)을 유지하면서 착지 애니메이션을 부드럽게 적용하기 위해 Apply Additive 노드를 사용한다.
    • Apply Additive 노드의 Base에는 Locomotion 캐시 포즈를, Additive에는 착지 애니메이션을 연결한다.
    • Apply Additive 노드는 기존 애니메이션(Base) 위에 추가적인 애니메이션(Additive)을 더하는 방식으로 동작한다.
    • Alpha 값을 조정하면 착지 애니메이션의 강도를 조절할 수 있다.
  3. Loop Animation 체크 해제 (착지 애니메이션 한 번만 실행)


4. Transition Rule (전환 조건) 설정

✅ Jump -> Fall Loop

  • Automatic Rule Based on Sequence Player in State 체크

✅ Land -> Locomotion

  • bShouldMove == true 설정
  • Automatic Rule Based on Sequence Player in State 체크

5. State Alias 생성 및 Transition Rule 설정

✅ To Falling 생성

  • Locomotion, Land 상태 체크

✅ To Falling -> Jump, To Falling -> Fall Loop 조건 설정

  • To FallingJump 전환 조건: Z축 속도 > 100 & bIsFalling == true

  • To FallingFall Loop 전환 조건: 높은 곳에서 떨어지는 경우

✅ To Land 생성

  • Jump, Fall Loop 상태 체크

✅ To Land -> Land 조건 설정

  • To LandLand 전환 조건: bIsFalling == false

profile
안녕하세요

0개의 댓글