DynamicChain
Class | Type | Name | Interface Description |
---|---|---|---|
DynamicChain : DynamicComponent | Variables | damping : number | Damping (Motion Energy Dissipation Coefficient) |
Example
chain.damping = 0.3;
Use Case
// damping (DynamicChain)
@customNode()
export class Use Case_DynamicChain_damping extends BasicScriptNode {
@input() sceneObject: APJS.SceneObject;
@output() info: string;
execute() {
const chain = this.sceneObject.getComponent('DynamicChain') as APJS.DynamicChain;
if (!chain) return;
const prev = chain.damping;
this.info = `DynamicChain damping: ${prev}`;
chain.damping = 0.3; // Example: set to 0.3
}
}
Class | Type | Name | Interface Description |
---|---|---|---|
DynamicChain : DynamicComponent | Variables | elasticity : number | Elasticity (Linear Motion) |
Example
chain.elasticity = 0.8;
Use Case
// elasticity (DynamicChain)
@customNode()
export class Use Case_DynamicChain_elasticity extends BasicScriptNode {
@input() sceneObject: APJS.SceneObject;
@output() info: string;
execute() {
const chain = this.sceneObject.getComponent('DynamicChain') as APJS.DynamicChain;
if (!chain) return;
const prev = chain.elasticity;
this.info = `DynamicChain elasticity: ${prev}`;
chain.elasticity = 0.8; // Example: set to 0.8
}
}
Class | Type | Name | Interface Description |
---|---|---|---|
DynamicChain : DynamicComponent | Variables | stiffness : number | Stiffness (Rotational Stiffness) |
Example
chain.stiffness = 2.0;
Use Case
// stiffness (DynamicChain)
@customNode()
export class Use Case_DynamicChain_stiffness extends BasicScriptNode {
@input() sceneObject: APJS.SceneObject;
@output() info: string;
execute() {
const chain = this.sceneObject.getComponent('DynamicChain') as APJS.DynamicChain;
if (!chain) return;
const prev = chain.stiffness;
this.info = `DynamicChain stiffness: ${prev}`;
chain.stiffness = 2.0; // Example: set to 2.0
}
}
Class | Type | Name | Interface Description |
---|---|---|---|
DynamicChain : DynamicComponent | Variables | inertia : number | Inertia |
Example
chain.inertia = 1.5;
Use Case
// inertia (DynamicChain)
@customNode()
export class Use Case_DynamicChain_inertia extends BasicScriptNode {
@input() sceneObject: APJS.SceneObject;
@output() info: string;
execute() {
const chain = this.sceneObject.getComponent('DynamicChain') as APJS.DynamicChain;
if (!chain) return;
const prev = chain.inertia;
this.info = `DynamicChain inertia: ${prev}`;
chain.inertia = 1.5; // Example: set to 1.5
}
}
Class | Type | Name | Interface Description |
---|---|---|---|
DynamicChain : DynamicComponent | Variables | force : Vector3f | External Force |
Example
chain.force = new APJS.Vector3f(0, 9.8, 0);
Use Case
// force (DynamicChain)
@customNode()
export class Use Case_DynamicChain_force extends BasicScriptNode {
@input() sceneObject: APJS.SceneObject;
@output() info: string;
execute() {
const chain = this.sceneObject.getComponent('DynamicChain') as APJS.DynamicChain;
if (!chain) return;
const force = chain.force;
this.info = `DynamicChain force: (${force.x}, ${force.y}, ${force.z})`;
chain.force = new APJS.Vector3f(0, 9.8, 0); // Example: set to (0, 9.8, 0)
}
}
Class | Type | Name | Interface Description |
---|---|---|---|
DynamicChain : DynamicComponent | Variables | isLocalForce : boolean | Whether it is a force in local coordinates |
Example
chain.isLocalForce = false;
Use Case
// isLocalForce (DynamicChain)
@customNode()
export class Use Case_DynamicChain_isLocalForce extends BasicScriptNode {
@input() sceneObject: APJS.SceneObject;
@output() info: string;
execute() {
const chain = this.sceneObject.getComponent('DynamicChain') as APJS.DynamicChain;
if (!chain) return;
const prev = chain.isLocalForce;
this.info = `DynamicChain isLocalForce: ${prev}`;
chain.isLocalForce = !prev;
}
}
Class | Type | Name | Interface Description |
---|---|---|---|
DynamicChain : DynamicComponent | Variables | isRelative : boolean | Whether to rotate relatively |
Example
chain.isRelative = false;
Use Case
// isRelative (DynamicChain)
@customNode()
export class Use Case_DynamicChain_isRelative extends BasicScriptNode {
@input() sceneObject: APJS.SceneObject;
@output() info: string;
execute() {
const chain = this.sceneObject.getComponent('DynamicChain') as APJS.DynamicChain;
if (!chain) return;
const prev = chain.isRelative;
this.info = `DynamicChain isRelative: ${prev}`;
chain.isRelative = !prev;
}
}
Class | Type | Name | Interface Description |
---|---|---|---|
DynamicChain : DynamicComponent | Variables | physicsAnimation : boolean | Whether to enable physical animation blending (only for objects with animations) |
Example
chain.physicsAnimation = false;
Use Case
// physicsAnimation (DynamicChain)
@customNode()
export class Use Case_DynamicChain_physicsAnimation extends BasicScriptNode {
@input() sceneObject: APJS.SceneObject;
@output() info: string;
execute() {
const chain = this.sceneObject.getComponent('DynamicChain') as APJS.DynamicChain;
if (!chain) return;
const prev = chain.physicsAnimation;
this.info = `DynamicChain physicsAnimation: ${prev}`;
chain.physicsAnimation = !prev;
}
}
Class | Type | Name | Interface Description |
---|---|---|---|
DynamicChain : DynamicComponent | Variables | physicsAnimationRate : number | Physical animation blend ratio ranges from 0 to 1, where 0 represents full physics and 1 represents full animation |
Example
chain.physicsAnimationRate = 0.7;
Use Case
// physicsAnimationRate (DynamicChain)
@customNode()
export class Use Case_DynamicChain_physicsAnimationRate extends BasicScriptNode {
@input() sceneObject: APJS.SceneObject;
@output() info: string;
execute() {
const chain = this.sceneObject.getComponent('DynamicChain') as APJS.DynamicChain;
if (!chain) return;
const prev = chain.physicsAnimationRate;
this.info = `DynamicChain physicsAnimationRate: ${prev}`;
chain.physicsAnimationRate = 0.7; // Example: set to 0.7
}
}