ChangeEnvironmentDynamicsOperator

導入

v5.0

カテゴリ

シミュレーション

詳細

指定の環境におけるリジッド ボディのダイナミクス エンジンを変更します(physX から ODE、またはその逆)。

スクリプト構文

ChangeEnvironmentDynamicsOperator( [InputEnvironment], [DynamicsEngine] );

パラメータ

パラメータ タイプ 詳細
InputEnvironment SimulationEnvironment リジッド ボディのダイナミクス エンジンを変更する環境。

デフォルト値:現在の環境

DynamicsEngine siRBDEngine 指定された環境を切り替えるダイナミクス エンジン。

デフォルト値: siPhysXEngine

JScript の例

/*
        This example illustrates how to create a simple RigidBody simulation
        and then switch the dynamics engine
*/
var oCone = ActiveSceneRoot.AddGeometry("cone","MeshSurface");
var oModel = ActiveSceneRoot.AddModel();
oModel.Name = "Model";
var oGrid = oModel.AddGeometry("grid","MeshSurface");
// Move the cone
oCone.posy.value = 6.0;
// Modify the grid
oGrid.ulength.value = 24;
oGrid.vlength.value = 24;
oGrid.subdivu.value = 24;
oGrid.subdivv.value = 24;
// The following line creates the SimulationEnvironment object.
CreatePassiveRigidBody( oGrid );
CreateActiveRigidBody( oCone );
CreateForce( "Gravity" );
var oEnvironment = ActiveProject.ActiveScene.ActiveSimulationEnvironment;
// Switch the rigid body dynamics engine to PhyX by NVIDIA 
ChangeEnvironmentDynamicsOperator(  oEnvironment, siPhysXEngine);
// Results of running this script:
//  * If the currently used engine is the same as the one specified in
//    the command, there is no output.
//  * Otherwise the following output will be echoed (as appropriate):
//    //INFO : Switched to physX
//    or
//    //INFO : Switched to ODE
// Simulate
for(i =0 ; i < 100 ; i++)
{
        NextFrame();
        Refresh();
}
// Switch the rigid body dynamics engine to ODE
ChangeEnvironmentDynamicsOperator( oEnvironment, siOpenDynamicsEngine);
// Simulate again
FirstFrame();
Refresh();
for(i =0 ; i < 100 ; i++)
{
        NextFrame();
        Refresh();
}

関連項目

CreateActiveRigidBody CreatePassiveRigidBody RemoveRigidBody AttachRigidBodies