Documentation / scene / AssetJointDynamicsSpringBone
Interface: AssetJointDynamicsSpringBone
Defined in: libs/scene/src/asset/model.ts:808
Joint dynamics spring bone information.
Properties
name?
optionalname?:string
Defined in: libs/scene/src/asset/model.ts:809
center?
optionalcenter?:AssetHierarchyNode
Defined in: libs/scene/src/asset/model.ts:810
chains
chains:
AssetJointDynamicsChain[]
Defined in: libs/scene/src/asset/model.ts:811
controllerConfig
controllerConfig:
object
Defined in: libs/scene/src/asset/model.ts:812
gravity?
optionalgravity?:Vector3
Global gravity vector
windForce?
optionalwindForce?:Vector3
Global wind force vector applied to all dynamic points
relaxation?
optionalrelaxation?:number
Number of constraint relaxation iterations per substep. Higher = more stable but slower
subSteps?
optionalsubSteps?:number
Number of simulation substeps per frame. Higher = more stable at cost of performance
rootSlideLimit?
optionalrootSlideLimit?:number
Max system-local root slide distance retained after root motion. Excess is applied to physics state. -1 = unlimited
rootRotateLimit?
optionalrootRotateLimit?:number
Max root bone rotation angle (degrees) per substep. Excess is distributed. -1 = unlimited
constraintShrinkLimit?
optionalconstraintShrinkLimit?:number
Upper limit for horizontal/shear constraint shrink power. Prevents over-compression
blendRatio?
optionalblendRatio?:number
Global blend ratio between physics and animation [0-1]. 0 = full physics, 1 = full animation
stabilizationFrameRate?
optionalstabilizationFrameRate?:number
Target frame rate for stabilization (currently unused, reserved)
isFakeWave?
optionalisFakeWave?:boolean
Enable sinusoidal fake wave effect on leaf bones
fakeWaveSpeed?
optionalfakeWaveSpeed?:number
Fake wave global speed (accumulates over time)
fakeWavePower?
optionalfakeWavePower?:number
Fake wave global amplitude multiplier
enableSurfaceCollision?
optionalenableSurfaceCollision?:boolean
Enable triangle-based surface collision (cloth vs colliders)
enableBroadPhase?
optionalenableBroadPhase?:boolean
Enable broad-phase pruning before precise collider tests
preserveTwist?
optionalpreserveTwist?:boolean
Preserve each joint's initial local twist (axial roll) after physics simulation
angleLimitConfig?
optionalangleLimitConfig?:object
Post-simulation angle limiting between parent-child bones
angleLimitConfig.angleLimit?
optionalangleLimit?:number
Max angle in degrees between parent and child bone. Negative = disabled
angleLimitConfig.limitFromRoot?
optionallimitFromRoot?:boolean
If true, measure angle from original transform orientation instead of simulated parent
curves?
optionalcurves?:object
Depth-based physics parameter curves
curves.massScale?
optionalmassScale?:InterpolatorScalar
Scales point mass by depth
curves.gravityScale?
optionalgravityScale?:InterpolatorScalar
Scales gravity strength by depth
curves.windForceScale?
optionalwindForceScale?:InterpolatorScalar
Scales wind force effect by depth (also multiplied by depth rate)
curves.resistance?
optionalresistance?:InterpolatorScalar
Velocity damping [0-1]. Higher = less damping. Controls how much velocity is preserved
curves.hardness?
optionalhardness?:InterpolatorScalar
Restore-to-animation stiffness [0-1]. Higher = bone stays closer to animated pose
curves.friction?
optionalfriction?:InterpolatorScalar
Friction multiplier by depth. Scales collision friction accumulation
curves.pointRadius?
optionalpointRadius?:InterpolatorScalar
Collision radius by depth, mapped from VRM SpringBone hitRadius when available
curves.sliderJointLength?
optionalsliderJointLength?:InterpolatorScalar
Extra slack length for horizontal/shear constraints (allows stretching)
curves.allShrinkScale?
optionalallShrinkScale?:InterpolatorScalar
Global shrink stiffness multiplier (applied to all constraint types)
curves.allStretchScale?
optionalallStretchScale?:InterpolatorScalar
Global stretch stiffness multiplier (applied to all constraint types)
curves.structuralShrinkVertical?
optionalstructuralShrinkVertical?:InterpolatorScalar
Structural vertical constraint shrink stiffness by depth
curves.structuralStretchVertical?
optionalstructuralStretchVertical?:InterpolatorScalar
Structural vertical constraint stretch stiffness by depth
curves.structuralShrinkHorizontal?
optionalstructuralShrinkHorizontal?:InterpolatorScalar
Structural horizontal constraint shrink stiffness by depth
curves.structuralStretchHorizontal?
optionalstructuralStretchHorizontal?:InterpolatorScalar
Structural horizontal constraint stretch stiffness by depth
curves.shearShrink?
optionalshearShrink?:InterpolatorScalar
Shear constraint shrink stiffness by depth
curves.shearStretch?
optionalshearStretch?:InterpolatorScalar
Shear constraint stretch stiffness by depth
curves.bendingShrinkVertical?
optionalbendingShrinkVertical?:InterpolatorScalar
Bending vertical constraint shrink stiffness by depth
curves.bendingStretchVertical?
optionalbendingStretchVertical?:InterpolatorScalar
Bending vertical constraint stretch stiffness by depth
curves.bendingShrinkHorizontal?
optionalbendingShrinkHorizontal?:InterpolatorScalar
Bending horizontal constraint shrink stiffness by depth
curves.bendingStretchHorizontal?
optionalbendingStretchHorizontal?:InterpolatorScalar
Bending horizontal constraint stretch stiffness by depth
curves.fakeWavePower?
optionalfakeWavePower?:InterpolatorScalar
Fake wave amplitude by depth (sinusoidal pseudo-wind on leaf bones)
curves.fakeWaveFreq?
optionalfakeWaveFreq?:InterpolatorScalar
Fake wave frequency offset by depth
constraintOptions?
optionalconstraintOptions?:object
Which constraint types to generate and their collision flags
constraintOptions.structuralVertical?
optionalstructuralVertical?:boolean
Generate parent→child vertical constraints
constraintOptions.structuralHorizontal?
optionalstructuralHorizontal?:boolean
Generate same-depth horizontal constraints across chains
constraintOptions.shear?
optionalshear?:boolean
Generate diagonal cross-bracing constraints
constraintOptions.bendingVertical?
optionalbendingVertical?:boolean
Generate skip-one vertical bending constraints
constraintOptions.bendingHorizontal?
optionalbendingHorizontal?:boolean
Generate skip-one horizontal bending constraints
constraintOptions.isLoop?
optionalisLoop?:boolean
Connect last root point back to first (for cylindrical topology like skirts)
constraintOptions.collideStructuralVertical?
optionalcollideStructuralVertical?:boolean
Enable per-constraint collision detection on structural vertical pairs
constraintOptions.collideStructuralHorizontal?
optionalcollideStructuralHorizontal?:boolean
Enable per-constraint collision detection on structural horizontal pairs
constraintOptions.collideShear?
optionalcollideShear?:boolean
Enable per-constraint collision detection on shear pairs
constraintOptions.enableSurfaceCollision?
optionalenableSurfaceCollision?:boolean
Enable surface/triangle collision (overrides per-type collision flags)
colliders
colliders:
AssetJointDynamicsCollider[]
Defined in: libs/scene/src/asset/model.ts:813
flatPlanes
flatPlanes:
AssetJointDynamicsFlatPlane[]
Defined in: libs/scene/src/asset/model.ts:814