DOPシミュレーションの内容に関する詳細は、hou.DopDataを参照してください。 このクラスのメソッドは、暗黙的に現行フレームのシミュレーションデータを使用します。
メソッド ¶
__init__()
ノードに関連付けられていない新しいシミュレーションを作成します。 DOPネットワークのシミュレーションにアクセスするには、hou.DopNode.simulationを使用します。
findData(data_spec)
→ hou.DopData or None
指定した名前のDOPデータを返します。 その名前には、スラッシュで区切ったパスを使用してネスト化したサブデータを指定することもできます。
そのデータパスがDOPオブジェクトを参照している場合、このメソッドはhou.DopObjectインスタンスを返します。 DOPリレーションシップを参照している場合、hou.DopRelationshipインスタンスを返します。 それ以外の場合、hou.DopDataインスタンスを返します。
このメソッドは、暗黙的に現行フレームのシミュレーションデータを使用します。
hou.DopData.findSubDataも参照してください。
findAllData(data_spec)
→ tuple of hou.DopData
パターンを指定すると、そのパターンに一致した名前のDOPデータのタプルを返します。 hou.DopSimulation.findDataも参照してください。
objects()
→ tuple of hou.DopData
シミュレーション内のDOPオブジェクトすべてのタプルを返します。
オブジェクトID(hou.DopObject.objidを参照)を使用して、このリストにインデックを付けることはできません。 オブジェクトIDをhou.DopObjectにマッピングした辞書を作成するには、以下のようにします:
id_dict = dict((obj.objid(), obj) for obj in simulation.objects())
findObject(obj_spec)
→ hou.DopObject or None
指定した名前のDOPオブジェクトを返します。その名前のオブジェクトがなければNone
を返します。
hou.DopSimulation.findDataとhou.DopSimulation.objectsも参照してください。
findAllObjects(obj_spec)
→ tuple of hou.DopObject
パターンを指定すると、そのパターンに一致した名前のDOPオブジェクトのタプルを返します。
>>> simulation = hou.node("/obj/AutoDopNetwork").simulation() >>> [obj.name() for obj in simulation.findAllObjects("box_object?")] ['box_object1', 'box_object2'] >>> [obj.name() for obj in simulation.findAllObjects("o* b*")] ['obj1', 'obj2', 'box_object1', 'box_object2']
relationships()
→ tuple of hou.DopRelationship
シミュレーション内のDOPリレーションシップすべてに対するhou.DopRelationshipオブジェクトのタプルを返します。
# 以下のサンプルでは、2つのボックスオブジェクトを作成し、それらを # リジッドボディにしていることを想定しています。 >>> simulation = hou.node("/obj/AutoDopNetwork").simulation() >>> relationship = simulation.relationships()[1] >>> affecting_objects = [ ... simulation.objects()[record.field("objid")] ... for record in relationship.records("ObjInAffectors")] >>> [obj.name() for obj in affecting_objects] ['box_object1'] >>> affected_objects = [ ... simulation.objects()[record.field("objid")] ... for record in relationship.records("ObjInGroup")] >>> [obj.name() for obj in affected_objects] ['box_object2']
findRelationship(rel_spec)
→ hou.DopRelationship
名前でDOPリレーションシップを探します。その名前のリレーションシップがなければNoneを返します。 hou.DopSimulation.relationshipsも参照してください。
findAllRelationships(rel_spec)
→ tuple of hou.DopRelationship
パターンに一致した名前のhou.DopRelationshipオブジェクトのタプルを返します。 hou.DopSimulation.relationshipsとhou.DopSimulation.findRelationshipも参照してください。
time()
シミュレーションの現行時間を返します。
Python Solver DOPをコールしない限り、またはDOPネットワークのTime Scale
やOffset Time
のパラメータのデフォルト値を変更しない限りは、
この値はhou.time()と同じであることがほとんどです。
setTime(t, resim_last_timestep=False, force_reset_sim=False, allow_simulation=True)
シミュレーションの現行時間を設定します。
resim_last_timestep
現行時間を設定する前に、直近のシミュレーションキャッシュエントリーを削除します。
force_reset_sim
指定した時間に移動する前にシミュレーションをリセットします。
allow_simulation
指定した時間に移動した時にシミュレーションを有効にするかどうかを指定します。
シミュレーションを変更できなかった場合は、hou.PermissionErrorを引き起こします。 シミュレーションがDOPネットワークで使用されているものではない場合、そのシミュレーション時間はプレイバーを使って変更してください。
timestep()
シミュレーションタイムステップの長さを返します。
setTimestep(t)
シミュレーションタイムステップの長さを設定します。
シミュレーションを変更できなかった場合は、hou.PermissionErrorを引き起こします。 シミュレーションがDOPネットワークで使用されているものではない場合、そのタイムステップはノードのパラメータを使って設定してください。
memoryUsage()
シミュレーションの合計メモリ使用量を返します。
createObject(name, solve_on_creation_frame)
→ hou.DopObject
新しいDOPオブジェクトを作成して、それを返します。オブジェクトの作成に失敗するとNoneを返します。
name
新しいオブジェクトの名前。
solve_on_creation_frame
Trueの場合、そのオブジェクトが最初に存在するフレームで、そのオブジェクトが計算されます。
シミュレーションを変更できない場合(例えば、Python DOP外からコールした場合)、hou.PermissionErrorを引き起こします。
既存オブジェクトのデータを複製するのであれば、hou.DopData.copyContentsFromを使用します。
removeObject(object)
シミュレーションから、指定したDOPオブジェクトを削除します。
object
削除するhou.DopObject。
シミュレーションを変更できない場合(例えば、Python DOP外からコールした場合)、hou.PermissionErrorを引き起こします。
createRelationship(name)
→ hou.DopRelationship
新しいDOPリレーションシップを作成して、それを返します。リレーションシップの作成に失敗するとNoneを返します。
name
新しいリレーションシップの名前。
シミュレーションを変更できない場合(例えば、Python DOP外からコールした場合)、hou.PermissionErrorを引き起こします。
既存リレーションシップからデータを複製するのであれば、hou.DopData.copyContentsFromを使用します。 そして、“ObjInGroup”と“ObjInAffectors”のレコードを更新するには、hou.DopRelationship.setGroupとhou.DopRelationship.setAffectorGroupを使用します。
removeRelationship(rel)
シミュレーションから、指定したDOPリレーションを削除します。
rel
削除するhou.DopRelationship。
シミュレーションを変更できない場合(例えば、Python DOP外からコールした場合)、hou.PermissionErrorを引き起こします。