Skip to main content

Physics Parameters

Parameters that control the basic behavior of physics simulation.

View Source

About This Page

This is the complete reference for physics parameters. For how to tune the sway, see Adjusting the Sway; to learn the concepts first, see Basic Concepts; for other task-oriented usage, see Bone Chain Setup / Curve Editor / Bone Subdivision.

FKawaiiPhysicsSettings

A struct that defines the basic physics control settings. It is assigned to the node via the PhysicsSettings property. Damping (how easily it sways) and Stiffness (how strongly it returns) are the core of the physics behavior — the balance between the two determines the overall "softness." Each member can be modulated by bone-length ratio using the curves described later.

USTRUCT(BlueprintType)
struct KAWAIIPHYSICS_API FKawaiiPhysicsSettings
{
float Damping = 0.1f; // Damping
float Stiffness = 0.05f; // Stiffness
float WorldDampingLocation = 0.8f; // Suppression of movement reflection
float WorldDampingRotation = 0.8f; // Suppression of rotation reflection
float Radius = 3.0f; // Collision radius
float LimitAngle = 0.0f; // Rotation limit angle
};

Damping

Damping Coefficient - Controls the intensity of swaying. Smaller values reflect more acceleration in the physics behavior, so it sways more. Larger values make the motion duller and heavier.

PropertyValue
Typefloat
Default0.1
Range0.0 or higher
CategoryKawaiiPhysics

Stiffness

Stiffness - Higher values maintain the original shape (the animated pose) more strongly and return to it quickly. Lower values let it sway more freely.

PropertyValue
Typefloat
Default0.05
Range0.0 or higher
CategoryKawaiiPhysics

WorldDampingLocation

Suppression of component movement reflection - Controls how much of the Skeletal Mesh Component's world-space movement is reflected into the sway.

  • 0 = movement fully reflected (maximum sway)
  • 1 = follows the component exactly (not reflected into sway)
  • Actual reflection factor = 1 - WorldDampingLocation
PropertyValue
Typefloat
Default0.8
Range0.0 or higher
CategoryKawaiiPhysics

WorldDampingRotation

Suppression of component rotation reflection - The rotation counterpart of the above. Controls the Skeletal Mesh Component's world-space rotation in the same way (actual reflection factor = 1 - WorldDampingRotation).

PropertyValue
Typefloat
Default0.8
Range0.0 or higher
CategoryKawaiiPhysics
note

Because they are named "Damping (suppression)," WorldDampingLocation / WorldDampingRotation are counter-intuitive: higher values mean less sway (1 follows the component exactly = no sway). Set them lower when you want the hair/cloth to trail behind character movement and rotation.

Radius

Collision radius for each bone - The radius of the collision sphere each bone carries. Used in the push-out calculation against colliders (SphericalLimit, etc.). Its editor display name is Collision Radius.

PropertyValue
Typefloat
Default3.0
Range0.0 or higher
Display NameCollision Radius
CategoryKawaiiPhysics

LimitAngle

Rotation limit angle - The maximum rotation angle (in degrees) per step caused by the physics behavior. 0 means unlimited. Setting it appropriately suppresses erratic, jittery behavior.

PropertyValue
Typefloat
Default0.0 (unlimited)
Range0.0 or higher
CategoryKawaiiPhysics

Simulation Settings

SimulationSpace

Simulation Space - Specifies the coordinate system for physics control.

PropertyValue
TypeEKawaiiPhysicsSimulationSpace
DefaultComponentSpace
ValueDescription
ComponentSpaceSimulate in component space
WorldSpaceSimulate in world space. Can avoid influence from sudden Root bone movement/rotation
BaseBoneSpaceSimulate in specified bone space
note

Using anything other than ComponentSpace causes minor performance degradation, but can avoid influence from sudden Root bone movement/rotation.

TeleportDistanceThreshold

Teleport Distance Threshold - If the SkeletalMeshComponent movement per frame exceeds this value, that movement won't be reflected in physics control.

PropertyValue
Typefloat
Default300.0

TeleportRotationThreshold

Teleport Rotation Threshold - If the SkeletalMeshComponent rotation per frame exceeds this value, that rotation won't be reflected in physics control.

PropertyValue
Typefloat
Default10.0

PlanarConstraint

Planar Constraint - Fixes each bone on a plane according to the specified axis.

PropertyValue
TypeEPlanarConstraint
DefaultNone
ValueDescription
NoneNo planar constraint
XConstrain to X axis
YConstrain to Y axis
ZConstrain to Z axis

SkelCompMoveScale

Component Move Scale - Scale applied when reflecting SkeletalMeshComponent movement in physics behavior.

PropertyValue
TypeFVector
Default(1, 1, 1)

Bone Settings

RootBone

Control Root Bone - The specified bone and all bones below it become control targets.

PropertyValue
TypeFBoneReference
CategoryBones

ExcludeBones

Exclude Bones - Removes the specified bones and all bones below them from control targets.

PropertyValue
TypeTArray<FBoneReference>
CategoryBones

DummyBoneLength

Dummy Bone Length - If greater than 0, adds a dummy bone at the end of control bones. Adding dummy bones improves physics control of terminal bones.

PropertyValue
Typefloat
Default0.0
Range0.0 or higher

BoneForwardAxis

Bone Forward Direction - Forward direction of bones. Affects physics control and dummy bone placement position.

PropertyValue
TypeEBoneForwardAxis
DefaultX_Positive
ValueDescription
X_Positive+X direction
X_Negative-X direction
Y_Positive+Y direction
Y_Negative-Y direction
Z_Positive+Z direction
Z_Negative-Z direction

Bone Subdivision

Inserts virtual dummies between real bones inside the simulation (without modifying the real skeleton) to raise collision resolution. See Bone Subdivision for details.

BoneSubdivisionCount

Dummy Subdivision Count - Minimum number of dummy bones to insert between adjacent bones. Improves collision detection (e.g. prevents skirts from penetrating legs). 0 to disable.

PropertyValue
Typeint32
Default0
Range0 - 10
CategoryBones|Bone Subdivision

bBoneSubdivisionCollisionOnly

Collision Only - Skips velocity integration (gravity/wind/etc.) for inter-bone dummies and lets them participate only in collision/constraints from interpolated positions (lightweight). Does not affect the dummy count.

PropertyValue
Typebool
Defaulttrue
Edit ConditionBoneSubdivisionCount > 0
CategoryBones|Bone Subdivision

bBoneSubdivisionDensifyByRadius

Densify By Radius - Adds dummies based on radius so collision spheres roughly cover the gap between bones. Uses BoneSubdivisionCount as a minimum and places more where bones are far apart (up to 50 per segment).

PropertyValue
Typebool
Defaultfalse
Edit ConditionBoneSubdivisionCount > 0
CategoryBones|Bone Subdivision

BoneConstraintSubdivisionCount

Horizontal Subdivision Count - Number of collision-proxy dummies (bridge dummies) inserted along each horizontal BoneConstraint. Fills gaps between adjacent chains (columns) to prevent penetration. 0 to disable. Independent of BoneSubdivisionCount.

PropertyValue
Typeint32
Default0
Range0 - 10
CategoryBones|Bone Subdivision

BoneConstraintSubdivisionFeedbackScale

Feedback Scale - Strength of transferring a bridge dummy's collision displacement to its endpoint bones (0 = none, 1 = standard). Lower it if the result is too stiff.

PropertyValue
Typefloat
Default1.0
Range0.0 - 2.0
Edit ConditionBoneConstraintSubdivisionCount > 0
CategoryBones|Bone Subdivision

Warm-up Settings

WarmUpFrames

Warm-up Frame Count - Number of physics idle runs. Used when you want to start/display after physics processing settles.

PropertyValue
Typeint32
Default0
Range0 or higher

bNeedWarmUp

Enable Warm-up - Flag to enable warm-up.

PropertyValue
Typebool
Defaultfalse

bUseWarmUpWhenResetDynamics

Warm-up on Reset - Flag to run physics idle during ResetDynamics.

PropertyValue
Typebool
Defaulttrue

Curve Control

The following parameters can be controlled by curves. The curve value at "length from RootBone to specific bone / length from RootBone to terminal bone" (0.0-1.0) is multiplied to each parameter.

CurveDescription
DampingCurveDataAdjusts Damping parameter
StiffnessCurveDataAdjusts Stiffness parameter
WorldDampingLocationCurveDataAdjusts WorldDampingLocation parameter
WorldDampingRotationCurveDataAdjusts WorldDampingRotation parameter
RadiusCurveDataAdjusts Radius parameter
LimitAngleCurveDataAdjusts LimitAngle parameter
tip

Using curves allows settings like making the root stiff and the tip soft.

Advanced Settings

bUpdatePhysicsSettingsInGame

Update Parameters During Game - Flag to update physics parameters for each bone every frame. Disabling slightly improves performance, but makes it impossible to change physics parameters during runtime.

PropertyValue
Typebool
Defaulttrue

ResetBoneTransformWhenBoneNotFound

Reset When Bone Not Found - Flag to reset Transform when control target bone is not found. Generally recommended to keep disabled.

PropertyValue
Typebool
Defaultfalse