DOPデータ、レコード、フィールドの説明は、hou.DopDataを参照してください。
メソッド ¶
field()
→ int
, bool
, float
, str
, hou.Vector2, hou.Vector3, hou.Vector4, hou.Quaternion, hou.Matrix3, or hou.Matrix4
このレコード内のフィールドの値を返し、そのフィールドがなければNone
を返します。
ベクトルフィールドの名前の後に“x”, “y”, “z”を付けることで、個々の浮動小数点値にアクセスすることができます。
# 以下のコードは、シェルフからボックスを作成し、 # シェルフのRigid Bodies > RBD Objectを使用して、そのボックスをリジッドボディにしていることを想定しています。 >>> record = hou.node("/obj/AutoDopNetwork").simulation().findData("box_object1/Forces/Gravity_gravity1").options() >>> record.fieldNames() ('force', 'handlepos') >>> record.field("force") <hou.Vector3 [0, -9.80665, 0]> >>> record.field("forcey") -9.8066501617431641 >>> record.fieldType("force") fieldType.Vector3 >>> record.fieldType("forcey") fieldType.Float
このサンプルの関数は、レコードから辞書を作成します:
def recordAsDict(record): return dict((field_name, record.field(field_name)) for field_name in record.fieldNames())
以下の関数は、オブジェクトのジオメトリトランスフォームを返します:
def dopGeometryTransform(dopnet_node, object_name): subdata = dopnet_node.simulation().findObject(object_name).findSubData("Geometry") return subdata.record("Transform").field("transform")
fieldNames()
→ tuple of str
このレコード内のフィールドすべての名前を返します。サンプルは、hou.DopRecord.fieldを参照してください。
fieldType(field_name)
→ hou.fieldType列挙値
フィールドに保存されているデータのタイプを記述したhou.fieldType列挙値を返します。
その名前のフィールドが存在しなかった場合は、hou.fieldType.NoSuchField
を返します。
サンプルは、hou.DopRecord.fieldを参照してください。
recordIndex()
→ int
このレコードのインデックスを返します。詳細は、hou.DopData.recordとhou.DopData.recordsを参照してください。
recordType()
→ str
このレコードの名前を返します。詳細は、hou.DopData.recordTypesを参照してください。
setField(field_name, value)
フィールドを、指定した値に設定します。Script Solver DOPからこのメソッドをコールします。
value
にはint
, float
, str
,
hou.Vector2, hou.Vector3, hou.Vector4,
hou.Quaternion, hou.Matrix3, hou.Matrix4
を指定することができます。
残念ながら、このメソッドを使用して、フィールドをブール値(TrueまたはFalse)に設定することができません。 このメソッドにブール値を渡すと、そのフィールドには整数の1または0が設定されます。 適切にそのフィールドにブール値を設定するには、hou.DopRecord.setFieldBoolを使用してください。
Script Solver DOP外からコールすると、hou.PermissionErrorを引き起こします。
setFieldBool(field_name, value)
フィールドを、指定したブール値に設定します。Script Solver DOPからこのメソッドをコールします。
フィールドを別のタイプに設定するには、hou.DopRecord.setFieldを使用してください。
Script Solver DOP外からコールすると、hou.PermissionErrorを引き起こします。