Rigid Body

Rigid Body, 리짓 바디 노드와 애니메이션 블루프린트 안에서 라이트웨이트 피직스 시뮬레이션으로 사용하는 방법에 대한 설명입니다.

Windows
MacOS
Linux

아래 그림의 Rigid Body (리짓 바디) 스켈레탈 컨트롤 노드는 하이 퍼포먼스 Immediate Mode PhysX API 를 통해 캐릭터의 경량 물리 시뮬레이션을 하는 데 쓰입니다. Rigid Body 노드는 애니메이션 블루프린트애님 그래프 에 추가하고 심지어 Blend 노드 와 함께 사용하여 포즈에서 시뮬레이션 피직스 상태로 전환할 수 있습니다. 이 시뮬레이션을 사용하는 캐릭터는 월드의 스태틱 지오메트리와 콜리전 생성도 가능합니다.

RigidBodyNode.png

Rigid Body 노드의 전형적인 사용 예는 포니테일이나 체인 등 무언가 피직스를 적용하면 좋을 "달려있는" 본에 쓰면 좋습니다.

위에서, 캐릭터의 머리에서 나오는 호스에는 피직스 애셋이 있어, 애니메이션 블루프린트 내 Rigid Body 노드와 함께 사용됩니다.

입력 및 출력 핀

아래 표는 사용할 수 있는 입력 및 출력 핀과 핀 사용법 정의에 대한 개요입니다.

RigidBodyPins.png

설명

External Force

외부 힘 - 월드 스페이스에 균등 외부 힘을 가합니다. 예를 들어 컴포넌트 스페이스에서 시뮬레이션을 계속 하면서 가짜 관성 운동을 쉽게 만들 수 있습니다.

Component Pose

컴포넌트 포즈 - 컴포넌트 스페이스의 포즈를 받아 컴포넌트 스페이스의 포즈를 출력합니다.

Alpha

알파 - 스켈레탈 컨트롤의 현재 세기입니다.

예제 RigidBody 노드 구성

이 노드를 사용하기 전, 피직스 애셋 안에서 시뮬레이션을 하고자 하는 피직스 바디 를 선택하고 Simulated 로 설정합니다.

RigidBody_02.png

위는 캐릭터의 머리에서 나오는 호스에 본 각각을 설정하여 물리 시뮬레이션을 하고 있습니다.

피직스 애셋을 셋업해 둔 상태로, 애니메이션 블루프린트의 애님 그래프 안에서, Rigid Body 노드와 언제 사용할지 정의하는 데 필요한 로직을 추가합니다.

RigidBody_11.png

위는 다른 애니메이션 블루프린트에서 데이터를 받아 Rigid Body 노드에 물려준 뒤 최종 애니메이션 포즈를 만들고 있습니다.

애님 그래프에서 Rigid Body 노드를 선택한 채, 디테일 패널에서 노드 사용 방식을 정의하는 프로퍼티를 변경할 수 있습니다.

RigidBodyDetails.png

프로퍼티

설명

Override Physics Asset

피직스 애셋 덮어쓰기 - 사용할 피직스 애셋입니다. 비워 두면, 스켈레탈 메시의 기본 피직스 애셋이 사용됩니다.

Override World Gravity

월드 중력 덮어쓰기 - 이 바디의 중력을 덮어쓸 벡터 값을 지정할 수 있도록 합니다.

External Force

외부 힘 - 월드 스페이스에서 균일한 외부의 힘을 적용합니다. 예를 들어, 컴포넌트 스페이스에서 시뮬레이션을 하면서 관성 운동을 쉽게 흉내낼 수 있습니다.

Overlap Channel

오버랩 채널 - 충돌 대상 스태틱 지오메트리를 찾는 데 사용할 채널입니다.

Component Space Simulation

컴포넌트 스페이스 시뮬레이션 - true 면 시뮬레이션은 컴포넌트 스페이스에서 일어납니다. 즉 속도가 애니메이션 바디에 의해서만 상속된다는 뜻입니다.

Cached Bounds Scale

캐시된 바운드 스케일 - (실제 바운드 대비) 캐시된 바운드의 스케일입니다. 이 값을 올리면 퍼포먼스가 향상될 수 있으나, 오버랩이 정상 작동하지 않을 수 있습니다. 값이 1.0 이면 사실상 캐시 바운드가 비활성화됩니다.

(As Pin) Alpha

(핀으로) 알파 - 알파 프로퍼티의 노드의 핀으로 또는 디테일 패널에 표시합니다.

Alpha Scale Bias

알파 스케일 바이어스 - 알파 프로퍼티의 최소 최대 인플루언스 값을 설정합니다.

perf.png

프로퍼티

설명

LOD Threshold

LOD 한계치 - 이 노드의 실행 대상이 될 수 있는 최대 레벨 오브 디테일 (LOD) 입니다. 예: LOD 한계치가 2 로 설정된 경우, LOD 2 까지만 실행되고, 컴포넌트의 LOD 가 3 이 되면 스스로 꺼집니다.

조인트를 시뮬레이션 베이스로 사용

언리얼 엔진 4.20 부터 RigidBody 노드에 시뮬레이션 베이스로 조인트가 지원됩니다. Simulation SpaceBase Bone Space 로 설정하고 사용할 본을 Base Bone Ref 로 선택하면 됩니다. 한 가지 참고할 점은, 전체 스켈레탈 메시를 옮기고 Base Bone (베이스 본)을 개별적으로 수정하는 것은 속도에 영향이 없습니다.

아래는 RigidBody 노드를 사용하여 무기에 할당된 베이스 본에서 시뮬레이션을 하는 예입니다.

다이내믹스 리셋

RigidBody 노드는 Reset Dynamics (다이내믹스 리셋)도 지원합니다. 사용하려면 블루프린트에서 스켈레탈 메시의 애님 인스턴스를 구하고 Reset Dynamics 함수를 호출하면 시뮬레이션이 리셋됩니다.

ResetDynamics

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼