v5.0
シミュレーション
指定の環境におけるリジッド ボディのダイナミクス エンジンを変更します(physX から ODE、またはその逆)。
ChangeEnvironmentDynamicsOperator( [InputEnvironment], [DynamicsEngine] ); |
パラメータ | タイプ | 詳細 |
---|---|---|
InputEnvironment | SimulationEnvironment | リジッド ボディのダイナミクス エンジンを変更する環境。
デフォルト値:現在の環境 |
DynamicsEngine | siRBDEngine | 指定された環境を切り替えるダイナミクス エンジン。
デフォルト値: siPhysXEngine |
/* 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(); } |