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

2 - 애님 다이내믹스 적용

언리얼 엔진

캐릭터에 애니메이션 블루프린트 와 동적 애니메이션을 적용할 본이 준비되었으니, 애니메이션 블루프린트애님 그래프 에서 AnimDynamics 노드 작업을 해 주면 되겠습니다.

우리 예제에서, 캐릭터는 목에 커다란 장비를 달고 다니는데, 여기에 캐릭터의 이동에 따라 애니메이션을 적용하고 싶습니다. 별도의 캐릭터를 사용중이시라면, 아래 단계에서 AnimDynamics 로 구동시키고자 하는 본을 할당해 주고 원하는 대로 세팅을 조절해 주시면 됩니다.

단계

  1. 콘텐츠 브라우저 에서 캐릭터의 애니메이션 블루프린트 (GruntAnimBP) 를 엽니다.

    1_OpenAnimBP.png

  2. 내 블루프린트, 애님 그래프 를 클릭하여 애니메이션 그래프를 엽니다.

    2_AnimGraph.png

  3. 그래프에 우클릭 하고 AnimDynamics 노드를 검색하여 추가합니다.

    3_AddNode.png

    AnimDynamics 노드는 External Force 값을 받는데, 시뮬레이션의 모든 바디에 적용되는 외부의 힘을 말합니다 (옵션이지만 고려는 해볼 만 합니다). Component Pose 라는 레퍼런스 포즈 데이터와 아울러 Alpha 값도 (스켈레탈 컨트롤을 적용할 세기로, 0 은 없음, 1 은 최대) 받습니다.

  4. 노드를 복사 하고 붙여넣기 한 뒤, 아래와 같이 노드를 연결합니다.

    4_ConnectNodes.png

    핀을 연결할 때 Local to ComponentComponent to Local 이 자동 생성됩니다.

    우리 예제에서는 AnimDynamics 노드를 두 개 (하나는 Harness(장비)에, 다른 하나는 Furnace(풀무)에) 사용하고 있습니다.

  5. 시퀀스의 첫 번째 AnimDynamics 노드를 선택한 뒤, 디테일 패널에서 아래와 같이 세팅을 할당합니다.

    5_Furnance1.png

    Preview 섹션은 뷰포트에서 운동에 적용되는 현재 제한 값을 알아보는 데 도움이 되는 시각화입니다. (이 예제에서는 다루지 않지만 실험해 볼 수 있는 세팅인) Planar Limits (평면형 제한)을 사용하거나 CoM (Center of Mass, 질량 중심)이 켜져있지 않은 경우, Collision Spheres (콜리전 구체)를 확인할 수도 있습니다.

    마지막으로 설정할 것은 Bound Bone 또는 캐릭터의 furnace 본에 설정하여 영향을 끼치고 있는 본(이 본이 Harness(장비)에 영향을 끼치는 것)입니다.

  6. 이 노드를 선택한 채, SetupConstraint 섹션을 아래와 같이 설정합니다.

    6_Furnance1.png

    SetupConstraint 섹션은 애님 다이내믹스로 구동되는 본의 운동 및 그 범위를 정의하는 곳입니다. Box Extent 는 관성을, Local Joint Offset 은 피벗 포인트를, Angular Limits 는 운동의 회전 범위를 나타냅니다 (각각 프리뷰 시각화 옵션을 켜서 확인할 수 있습니다).

    Setup 및 Constraint 섹션 관련 상세 정보는 스켈레탈 컨트롤 문서를 참고하세요.

  7. 컴파일 버튼을 클릭하고 장비가 좌우로 흔들리는 모습을 확인해 보세요.

    6_Furnance1b.png

    Y 축에 대한 Angular Limits 가 꽤 큰데, 위 그림에서 초록색 원뿔로 보이는 부분입니다. 이 범위를 줄여봅시다.

  8. 이 노드를 여전히 선택한 채 Constraints 섹션에서, Angular LimitsMin/Max 값을 아래와 같이 바꿉니다.

    6_Furnance1c.png

    이번에 컴파일 하면, (SpeedIsInAir? 세팅을 변경해도) 장비가 이전처럼 많이 움직이지 않을 것입니다.

    6_Furnanced.png

  9. 시퀀스의 두 번째 AnimDynamics 노드를 선택하고 다음 세팅을 사용합니다.

    클릭하면 원본을 봅니다.

    위의 세팅을 가지고, Bound Bone 이 이제 풀무 오브젝트에 영향을 끼치는 캐릭터의 Furnace_Pivot 본을 타깃으로 하도록 변경해 주었습니다. Twist AxisY 축으로 뒤틀리도록 조정하여 좌우가 아닌 전후 운동을 하도록 했습니다. Angular Limits 는 -50 에서 50 으로 운동 범위를 설정했습니다.

  10. 컴파일, 저장 후 에디터에서 플레이 합니다.

최종 결과

이제 캐릭터가 움직이면 컨스트레인트 세팅에 따라 풀무도 같이 움직이는 것이 보일 것입니다.

Setup 섹션의 Box Extent, Local Joint Offset 값은 물론 Constraints 섹션의 LinearAngular Limits 값도 자유롭게 변경하면서 애님 다이내믹스가 본의 운동에 어떤 영향을 끼치는지 실험해 보시기 바랍니다.