Skip to content

DynamicsChainRigPoseModifierData

PBE 16.23 changes this class. This page shows the live definition. PBE changes

Class Documentation

Edit documentation

A pose modifier that simulates joints with physics: hair, cloth, tails, straps and other parts that should swing after the motion of the character. The animation still plays on these joints. The simulation starts from the animated pose on every frame and adds the swing.

The joints are given as groups of joint trees. Each tree is a root joint and everything below it in the skeleton. By default the root is pinned: it keeps its animated position. Every joint below it is a particle that moves under gravity, is pulled back to its animated place, collides, and keeps its distance to its parent. The pinning data of a tree can pin more joints.

What happens on each frame, in order:

  1. The collision shapes are moved to the current pose.
  2. Each simulated joint keeps a part of its velocity (Damping), falls under gravity, and is pulled toward its animated position relative to its simulated parent (AnimPoseAttraction).
  3. The joints are pushed out of the collision shapes, and the constraints are solved: the lateral links, and the rod constraints of groups with UseRodPhysics.
  4. Each joint is kept inside a cone around its animated direction (LimitAngle) and at its length from its parent (Stretch).
  5. The result is written to the pose. Each joint is blended between its animated and its simulated transform by the weight of the modifier times GlobalEnvelope times the joint's Envelope.

The simulation runs in world space, after every other pose modifier. So the movement and the turning of the unit swing the joints, with no setting for it. Lengths and radii are in world units, with the scale of the skin already applied.

Collision shapes are spheres and capsules attached to joints, read from the file named by 0xbb1d1aac, plus a ground plane. The plane is horizontal, at the height of the lowest joint of the bind pose, and moves with the unit.

The weight of the modifier is 1 when DefaultOn is true and 0 when it is false. A DynamicsChainBlendEventData on a clip changes it while the event is active.

Changes on PBE 16.23

tag re-added Hash

Properties

0xbb1d1aac

String = ""
Edit documentation

The path of a file with the collision shapes. Empty, which is the default: the only collision shape is the ground plane.

The file is binary, little endian: two 4-byte values that the client reads and does not use, the number of spheres, the spheres, the number of capsules, the capsules. A sphere is a joint name, a position and a radius. A capsule is that twice, one for each end, so the two ends can have different radii and can be on different joints. Positions are in model space in the bind pose. Each shape then moves with its joint.

DefaultOn

Bool = true
Edit documentation

The weight of the modifier when no event changes it. True: the simulation shows. False: the joints show the plain animation until a DynamicsChainBlendEventData turns the simulation on.

GlobalEnvelope

F32 = 1
16.9
Edit documentation

A weight for the whole modifier, multiplied into the Envelope of every joint. 1 shows the full simulation, 0 shows the plain animation.

tag

Hash = "0x0"
Removed in 16.21 16.21
Add documentation

No documentation available yet. Click "Add documentation" to contribute!