ParmTupleクラスは、Pythonシーケンスのような挙動をするので、大括弧を使ったインデックス化が可能で、
それに対して反復させてlenなどをコールすることができます。
パラメータタプル内のエレメントは、hou.Parmオブジェクトです。
パラメータタプルの名前には、英数字とアンダースコアだけを含めることができます。
例えば、オブジェクトには、3つの整数パラメータを含んだ"t"という名前のパラメータタプルが含まれています。
そのタプル内のパラメータの名前は、パラメータタプルの名前とその命名スキームで決まります。
例えば、"t"パラメータはXYZW命名スキームを使用するので、その中の3つのパラメータ名は、"tx", "ty", "tz"です。
パラメータタプルに1個のパラメータしか含まれていなかった場合は、そのタプルとその中のパラメータは、同じ名前を持つことができます。
名前だけでなく、パラメータタプルもパラメータダイアログでユーザに表示されるラベルを持ちます。
例えば、"t"パラメータのラベルは"Translate"です。
そのラベルには、スペースや句読点を含めることができます。
タプル内の各パラメータは値を保存します。 異なるノード内の異なるparmタプルのインスタンスは、独自のパラメータ値のセットを保存します。 パラメータ内の値はアニメーションさせることができます。 その場合、そのパラメータは、プレイバーの現行時間に基づいて、異なる結果を評価します。 アニメーションパラメータに関する詳細は、hou.Keyframeを参照してください。
各hou.NodeTypeは、それに関連したパラメータタプルの記述のセットを持ち、 各hou.OpNodeのインスタンスは、それに該当するパラメータタプルインスタンスのセットを持ちます。 パラメータタプルは、そのノードで保存された特定の値を保存します。 しかし、パラメータタプルの記述は、hou.ParmTemplateで表現されます。 パラメータテンプレートは、パラメータタプルのタイプ、デフォルト値、範囲などを記述します。
hou.parmTuple()とhou.OpNode.parmTupleも参照してください。
メソッド ¶
演算子 ¶
__getitem__(index)
→ hou.Parm
このパラメータタプルの特定のコンポーネントのParmオブジェクトを返します。 マイナスのインデックスは、最後からのインデックスです。
このメソッドは、このクラスのインスタンスをタプルのように表現し、ParmTuple内のparmに対して反復させることができます。
インデックスが無効の場合は、IndexErrorを引き起こします。
>>> parm_tuple = hou.node("/obj").createNode("geo").parmTuple("t") >>> for parm in parm_tuple: ... print parm.name(), tx ty tz >>> tuple(parm_tuple) (<hou.Parm tx in /obj/geo1>, <hou.Parm ty in /obj/geo1>, <hou.Parm tz in /obj/geo1>)
メタデータ ¶
name()
→ str
このパラメータタプルの名前を返します。パラメータタプルの名前とその命名スキームは、そのタプル内のパラメータの名前を決めます。
>>> node = hou.node("/obj").createNode("geo") >>> node.parmTuple("t").parmTemplate().namingScheme() parmNamingScheme.XYZW >>> [parm.name() for parm in node.parmTuple("t")] ['tx', 'ty', 'tz'] >>> parm_tuple = node.parent().createNode("cam").parmTuple("dcolor") >>> parm_tuple.parmTemplate().namingScheme() parmNamingScheme.RGBA >>> [parm.name() for parm in parm_tuple] ['dcolorr', 'dcolorg', 'dcolorb']
description()
→ str
パラメータダイアログで表示されているこのパラメータタプルのラベルを返します。
parmTemplate()
→ hou.ParmTemplate
このパラメータタプルのテンプレートを返します。
Note
フォルダパラメータはhou.FolderSetParmTemplateテンプレートを持ち、 マルチパラメータパラメータはhou.FolderParmTemplateテンプレートを持ちます。
isSpare()
→ bool
このパラメータが“spare”(ユーザ定義)パラメータかどうか返します。
isTimeDependent()
→ bool
タプル内のどれかのパラメータが 時間依存 つまり、パラメータの値がその評価時におけるタイムラインの時点に依存して変わるかどうかを返します。
例えば、パラメータのエクスプレッションに$F(現行フレーム番号)変数が含まれている場合は時間依存です。
lock(bool_values)
このタプル内のパラメータすべてをロックまたはロック解除します。 Houdiniはロックされたパラメータを無効として表示し、それらの値を変更できないようにします。
bool_values
このパラメータのすべてのコンポーネントに適用される単一のTrue/False、または、True/Falseの値のシーケンス(各値は、このパラメータのコンポーネントに相当します)。
bool_valuesのエレメントがTrueなら、そのコンポーネントがロック(編集不可)され、エレメントがFalseなら、そのコンポーネントがロック解除(編集可)されます。
例えば、“translation”のパラメータタプルには、“tx”, “ty” , “tz”の軸毎の移動のParmオブジェクトを含みます。 (True, True, False)のブール値のタプルでロックをコールすれば、“tx”と“ty”のパラメータがロックされ編集不可になり、“tz”はロック解除されて編集可になります。
bool_valuesがこのパラメータタプルと違う長さであれば、hou.InvalidSizeを引き起こします。
このパラメータタプル内のどれかのパラメータが書き込み不可であれば、hou.PermissionErrorを引き起こします。
disable(on)
ノード内でこのパラメータタプルのUI無効状態を設定します。 これは、大元の値が今でも修正できるという点でパラメータのロックと同じではありません。 これは、disable-when条件が処理する内容に近く、disable-when条件によってパラメータが自動で無効になる時に近いです。
isDisabled()
→ bool
パラメータタプルの無効状態を返し、ロック状態を無視します。 これを使えば、disable-when条件の結果を読み込むことができます。
CUIのHoudiniまたはオーナーノードがまだParameter Paneに読み込まれていない時は、このメソッドを実行する前にhou.OpNode.updateParmStatesをコールすることを推奨します。
hide(on)
ノード内でこのパラメータタプルのUI非表示状態を設定します。
このメソッドをコールすることは、Edit Parameter InterfaceダイアログのInvisibleチェックボックスを変更すること、またはhide-when条件でパラメータを非表示にすること等価です。
フォルダを隠すには、hou.OpNode.setParmTemplateGroupを使用します。 このメソッドを使っても、フォルダを隠すことができません。その理由は、parmタプルがフォルダのセットに相当し、個々のフォルダに相当しないからです。
デジタルアセットで定義されたノードタイプの新しいインスタンスすべての可視性を変更するには、 以下のサンプルのようにhou.HDADefinition.setParmTemplateGroupを使用してください:
def showParmTupleInDefinition(parm_tuple, visible): '''parm_tupleは、デジタルアセットのインスタンスに対するhou.ParmTupleです。''' definition = parm_tuple.node().type().definition() parm_template_group = definition.parmTemplateGroup() parm_template = parm_template_group.find(parm_tuple.name()) parm_template.hide(not visible) parm_template_group.replace(parm_tuple.name(), parm_template) definition.setParmTemplateGroup(parm_template_group)
isHidden()
→ bool
パラメータタプルの非表示状態を返します。これを使えば、hide-when条件の結果を読み込むことができます。
CUIのHoudiniまたはオーナーノードがまだParameter Paneに読み込まれていない時は、このメソッドを実行する前にhou.OpNode.updateParmStatesをコールすることを推奨します。
isConstrained()
→ bool
パラメータの親ノードがOBJで、それがクックされていて拘束を持っている場合にTrueを返します。
評価 ¶
eval()
→ tuple of int
, float
, str
, or hou.Ramp
現行フレームでこのパラメータタプルを評価し、その結果をパラメータのタイプに応じてinteger,float,文字列,hou.Rampオブジェクトのタプルとして返します。
evalAtFrameとevalAtTimeのメソッドも参照してください。
evalAtTime(time)
→ tuple of int
, float
, str
, or hou.Ramp
指定した時間のパラメータタプルを評価し、その結果をパラメータのタイプに応じてinteger,float,文字列,hou.Rampオブジェクトのタプルとして返します。
evalAtFrameも参照してください。
evalAtFrame(frame)
→ tuple of int
, float
, str
, or hou.Ramp
指定したフレームのパラメータタプルを評価し、その結果をパラメータのタイプに応じてinteger,float,文字列,hou.Rampオブジェクトのタプルとして返します。
evalAtTimeも参照してください。
evalAsFloats()
→ tuple of float
現行フレームでこのパラメータタプルを評価し、その結果をflotのタプルとして返します。
値をfloatに変換できなかった場合は、TypeErrorを引き起こします。
evalAsFloatsAtFrame(frame)
→ tuple of float
特定のフレームでこのパラメータタプルを評価し、その結果をfloatのタプルとして返します。
値をfloatに変換できなかった場合は、TypeErrorを引き起こします。
evalAsInts()
→ tuple of int
現行フレームでこのパラメータタプルを評価し、その結果をintegerのタプルとして返します。
値をintegerに変換できなかった場合は、TypeErrorを引き起こします。
evalAsIntsAtFrame(frame)
→ tuple of int
特定のフレームでこのパラメータタプルを評価し、その結果をintegerのタプルとして返します。
値をintegerに変換できなかった場合は、TypeErrorを引き起こします。
evalAsRamps()
→ hou.Ramp
現行フレームでこのパラメータタプルを評価し、その結果をhou.Rampオブジェクトを含んだタプルとして返します。
これがrampパラメータでなかった場合は、TypeErrorを引き起こします。
evalAsRampsAtFrame(frame)
→ hou.Ramp
特定のフレームでこのパラメータタプルを評価し、その結果をhou.Rampオブジェクトを含んだタプルとして返します。
これがrampパラメータでなかった場合は、TypeErrorを引き起こします。
evalAsStrings()
→ tuple of str
現行フレームでこのパラメータタプルを評価し、その結果を文字列のタプルとして返します。
値を文字列に変換できなかった場合は、TypeErrorを引き起こします。
evalAsStringsAtFrame(frame)
→ tuple of str
特定のフレームでこのパラメータタプルを評価し、その結果を文字列のタプルとして返します。
値を文字列に変換できなかった場合は、TypeErrorを引き起こします。
evalAsGeometries()
→ tuple of hou.Geometry
このパラメータタプルを現行フレームで評価し、その結果をhou.Geometryオブジェクトを含んだタプルとして返します。
値をhou.Geometryに変換できなかった場合は、TypeErrorを引き起こします。
evalAsGeometriesAtFrame(frame)
→ tuple of hou.Geometry
このパラメータタプルを特定のフレームで評価し、その結果をhou.Geometryオブジェクトを含んだタプルとして返します。
値をhou.Geometryに変換できなかった場合は、TypeErrorを引き起こします。
evalAsImageLayers()
→ tuple of hou.ImageLayer
Evaluates this parameter tuple at the current frame and returns the result as a tuple containing a hou.ImageLayer object.
Raises TypeError if a value cannot be converted to a
hou.ImageLayer.
evalAsImageLayersAtFrame(frame)
→ tuple of hou.ImageLayer
Evaluates this parameter tuple at a certain frame and returns the result as a tuple containing a hou.ImageLayer object.
Raises TypeError if a value cannot be converted to a
hou.ImageLayer.
evalAsNanoVDBs()
→ tuple of hou.NanoVDB
Evaluates this parameter tuple at the current frame and returns the result as a tuple containing a hou.NanoVDB object.
Raises TypeError if a value cannot be converted to a
hou.NanoVDB.
evalAsNanoVDBsAtFrame(frame)
→ tuple of hou.NanoVDB
Evaluates this parameter tuple at a certain frame and returns the result as a tuple containing a hou.NanoVDB object.
Raises TypeError if a value cannot be converted to a
hou.NanoVDB.
evalAsJSONMaps()
→ tuple of dict of str
to str
このパラメータタプルを現行フレームで評価し、その結果をJSONマップ構造(つまり、Python辞書)を含んだタプルとして返します。
パラメータタプルがJSONマップデータのパラメータタプルでない場合は、TypeErrorまたはhou.OperationFailedを引き起こします。
evalAsJSONMapsAtFrame(frame)
→ tuple of dict of str
to str
このパラメータタプルを特定のフレームで評価し、その結果をJSONマップ構造(つまり、Python辞書)を含んだタプルとして返します。
パラメータタプルがJSONマップデータのパラメータタプルでない場合は、TypeErrorまたはhou.OperationFailedを引き起こします。
設定 ¶
set(values, language=None, follow_parm_references=True)
現行フレームでタプル内のパラメータの値を設定します。
values
このパラメータタプルのコンポーネントに相当するfloat、文字列のシーケンス。
例えば、“translation”のパラメータタプルには、“tx”, “ty” , “tz”の軸毎の移動のhou.Parmオブジェクトを含みます。 (2.5, 4.0, 5.5)のfloatのタプルをコールすれば、“tx”が2.5に、“ty”が4.0に、“tz”が5.5に設定されます。
この引数にhou.ParmTupleオブジェクトを渡すことで、このタプル内のパラメータから、渡したタプル内のパラメータにチャンネル参照を作成することもできます。 渡したタプルよりも多くのパラメータがこのタプル内にある場合、その余ったパラメータに対しては何も実行されません。 このタプルよりも多くのパラメータが渡したタプル内にある場合、その余ったパラメータは無視されます。
language
このオプションは、hou.ParmTuple値を設定した時にのみ適用されます。
このパラメータタプルから、指定したパラメータタプルにチャンネル参照を作成する時に使用するエクスプレッション言語を指定します。
デフォルトの言語を選択するには、このオプションをhou.exprLanguageオブジェクトまたはNoneに設定します。
このパラメータタプルに現在他のパラメータタプルのチャンネル参照を含んでいた場合、 このメソッドは、そのチャンネル参照に追従し、その参照されたパラメータタプルの値を変更します。 これが望まれる挙動でない場合は、まずhou.Parm.deleteAllKeyframesまたはhou.Parm.revertToDefaultsを使って、文字列値にチャンネル参照が埋め込まれていない文字列パラメータのチャンネル参照を削除してください。
valuesがこのパラメータタプルと違う長さであれば、hou.InvalidSizeを引き起こします。
このパラメータタプル内のどれかのパラメータが書き込み不可であれば、hou.PermissionErrorを引き起こします。
アニメーション ¶
saveClip(file_name, start=None, end=None, sample_rate=0)
このタプルのパラメータに関連のあるアニメーションを、‹file_name›で指定したClipファイルに保存します。 ‹file_name›の拡張子によって、保存されるファイルのフォーマットが決まります。
以下の拡張子のどれかを使用することができます:
-
.clip: アニメーションをプレーンテキスト(ASCII)のclipファイルとして保存します。 -
.bclip: アニメーションをbclip(バイナリclip)ファイルとして保存します。 -
.bclip.sc: アニメーションをBlosc圧縮のbclipファイルとして保存します。
Clipファイルに使用するサンプルレートを指定するには、‹sample_rate›にゼロ以外のプラスの値を設定します。 例えば、現行フレームレートが24(hou.fps())で、‹sample_rate›を12に設定すると、その‹sample_rate›が現行フレームレートの半分なので、そのアニメーションが2フレームおきにサンプリングされます。
‹start›がNoneでない場合は、その指定したフレーム(この番号を含む)からアニメーションの保存を開始します。
Noneの場合、グローバルの開始フレーム(この番号を含む)からアニメーションが保存されます。
同様に‹end›がNoneでない場合は、その指定したフレーム(この番号を含む)でアニメーションの保存を終了します。
Noneの場合、グローバルの終了フレーム(この番号を含む)までアニメーションが保存されます。
グローバルの開始/終了フレームは、Global Animation Optionsウィンドウで指定します。
このタプルのパラメータに何もアニメーションがなければ、hou.OperationFailed例外を引き起こします。
アニメーションをファイルに保存した際にエラーが起きれば、hou.OperationFailed例外を引き起こします。
start >= endの場合はhou.InvalidInput例外を引き起こします。
‹start›のみを指定する場合には、必ずグローバルの終了フレーム未満の値を指定してください。
‹end›のみを指定する場合には、必ずグローバルの開始フレームより大きい値を指定してください。
loadClip(file_name, sample_rate=0, start=None)
‹file_name›で指定したClipファイルを、このタプルのパラメータのアニメーションとして読み込みます。 対応しているClipファイルフォーマットのリストは、hou.ParmTuple.saveClipを参照してください。
このタプルのパラメータの名前に合致しないClipファイルのトラックは無視されます。
‹sample_rate›には、ゼロ以外のプラスの値を設定します。そこで指定した値がアニメーションを読み込む時に使用されます。 例えば、現行フレームレートが24(hou.fps())で、‹sample_rate›を12に設定すると、その‹sample_rate›が現行フレームレートの半分なので、そのアニメーションが2フレームおきにキーフレーム付きで読み込まれます。
‹start›には、読み込んだアニメーションを開始させるフレームを指定します。 デフォルトでは、Clipファイルで指定されたフレームからアニメーションが開始します。
Warning
読み込んだアニメーションの範囲内にあるこのタプルのパラメータの既存のキーフレームは、その読み込んだデータで上書きされます。
ファイルからアニメーションデータを読み込んだ際にエラーが起きれば、この関数は、hou.OperationFailed例外を引き起こします。
clipData(start=None, end=None, binary=True, use_blosc_compression=True, sample_rate=0)
→ str
for Python 2, bytes
for Python 3
このタプルのパラメータのClipデータを返します。 このメソッドはhou.ParmTuple.saveClipと同様ですが、アニメーションをClipファイルに保存するのではなくて、Clipデータ(ファイルの内容)を返します。
‹start›, ‹end›, ‹sample_rate›は、hou.ParmTuple.saveClipと同じ挙動です。
‹binary›がTrueの場合はバイナリClipデータを返し、Falseの場合はプレーンテキスト(ASCII)Clipデータを返します。
‹use_blosc_compression›がTrueの場合はBlosc圧縮のバイナリClipデータを返します。
これはプレーンテキスト(ASCII)Clipデータには使用することができません。
返されるクリップデータは、Python3だとbytesオブジェクト、Python2だとstrオブジェクトです。
詳細は、HOMバイナリデータを参照してください。
このタプルのパラメータに何もアニメーションがなければhou.OperationFailed例外を引き起こします。
start >= endの場合はhou.InvalidInput例外を引き起こします。
‹start›のみを指定する場合には、必ずグローバルの終了フレーム未満の値を指定してください。
‹end›のみを指定する場合には、必ずグローバルの開始フレームより大きい値を指定してください。
binary = False且つuse_blosc_compression = Trueの場合はhou.InvalidInput例外を引き起こします。
setClipData(data, binary=True, blosc_compressed=True, sample_rate=0, start=None)
‹data›で指定したClipを、このタプルのパラメータのアニメーションとして読み込みます。 このメソッドはhou.ParmTuple.loadClipと同様ですが、Clipファイルの代わりにClipデータからアニメーションを読み込みます。
‹sample_rate›と‹start›はhou.ParmTuple.loadClipと同じ挙動です。
‹binary›と‹blosc_compressed›には入力データのタイプを指定します。
‹binary›がTrueの場合、指定するデータはバイナリClipデータです。
Falseの場合、指定するデータはプレーンテキスト(ASCII)Clipデータです。
‹blosc_compressed›がTrueの場合、指定するデータはBlosc圧縮バイナリデータです。
これはプレーンテキスト(ASCII)Clipデータには使用することができません。
dataには、Python3だとbytesオブジェクト、Python2だとstrオブジェクトを指定してください。
詳細は、HOMバイナリデータを参照してください。
指定したデータが無効であれば、hou.OperationFailed例外を引き起こします。
binary = False且つblosc_compressed = Trueの場合はhou.InvalidInput例外を引き起こします。
setPending(values)
現行フレームでのタプル内のパラメータの値を設定し、パラメータがキーされていなければ、それをPendingとしてマークします。
values
このパラメータタプルのコンポーネントに相当するfloatや文字列のシーケンス。
例えば、“translation”のパラメータタプルには、“tx”, “ty” , “tz”の軸毎の移動のParmオブジェクトを含みます。 (2.5, 4.0, 5.5)のfloatのタプルをコールすれば、“tx”が2.5に、“ty”が4.0に、“tz”が5.5に設定されます。
valuesがこのパラメータタプルと違う長さであれば、hou.InvalidSizeを引き起こします。
このパラメータタプル内のどれかのパラメータが書き込み不可であれば、hou.PermissionErrorを引き起こします。
deleteAllKeyframes()
このパラメータタプルからキーフレームすべてを削除します。
このメソッドは、ほぼ以下のように実装されています:
def deleteAllKeyframes(self): for parm in self: parm.deleteAllKeyframes()
hou.Parm.deleteAllKeyframesも参照してください。
deleteKeyframeAtFrame(frame)
このパラメータタプルから、指定したフレームのキーフレームを削除します。
この関数は、Houdiniに存在しないパラメータに対して呼び出すと、hou.ObjectWasDeleted例外を引き起こします。
この関数は、指定したパラメータへの書き込みが不可の場合はhou.PermissionError例外を引き起こします。
この関数は、指定したフレームでパラメータに何もキーフレームがなければhou.OperationFailed例外を引き起こします。
hou.ParmTuple.deleteAllKeyframesも参照してください。
setAutoscope(bool_values)
このパラメータタプルのコンポーネントのオートスコーププロパティを変更します。
bool_values
TrueまたはFalseの値のシーケンス。各値は、このパラメータのコンポーネントに相当します。
bool_valuesのエレメントがTrueなら、そのコンポーネントがオートスコープになります。
例えば、“translation”のパラメータタプルには、“tx”, “ty” , “tz”の軸毎の移動のParmオブジェクトを含みます。 (True, True, False)のブール値のタプルでsetAutoscopeをコールすれば、“tx”と“ty”のパラメータが自動的にスコープされ、“tz”はスコープされません。
valuesがこのパラメータタプルと違う長さであれば、hou.InvalidSizeを引き起こします。
このパラメータタプル内のどれかのパラメータが書き込み不可であれば、hou.PermissionErrorを引き起こします。
setKeyframe(keyframe_vector)
このパラメータにキーフレームを設定します。
keyframe_vector
パラメータタプルの各コンポーネントのキーフレームシーケンス。
keyframeがhou.BaseKeyframeタイプでなかった場合はTypeErrorを引き起こします。
このパラメータが書き込み不可の場合はhou.PermissionErrorを引き起こします。
keyframe_vectorがこのパラメータタプルのサイズと同じでなかった場合はhou.InvalidSizeを引き起こします。
エクスプレッション ¶
isShowingExpression()
→ bool
このパラメータがエクスプレッションまたは現行値のどちらで表示されているのかを返します。
showExpression()メソッドも参照してください。
showExpression(on)
パラメータのUIに対して値の代わりにエクスプレッションを表示するように設定します。
isShowingExpression()メソッドも参照してください。
デフォルト ¶
overwriteDefaults()
デフォルト値を現行パラメータタプル値で上書きします。
revertToAndRestorePermanentDefaults()
値をHoudini出荷時のデフォルトに変更し、それらのデフォルトを元に戻します。
revertToDefaults()メソッドも参照してください。
revertToDefaults()
値をデフォルトに変更します。
revertToAndRestoreFactoryDefaults()メソッドも参照します。
isAtDefault(compare_temporary_defaults=True, compare_expressions=False)
→ bool
パラメータタプルが現在デフォルトかどうか返します。
compare_temporary_defaults
‹compare_temporary_defaults›がTrueの時、isDefaultはユーザが設定したかもしれない一時的なデフォルトに対してもチェックします。
‹compare_temporary_defaults›の値は、必ずTrueまたはFalseのどちらかでなければなりません。
compare_expressions
‹compare_Expressions›がTrueの時、パラメータがデフォルトのファクトリーエクスプレッションを持っている時にisDefaultは実際のエクスプレッションを比較します。
‹compare_expressions›の値は、必ずTrueまたはFalseのどちらかでなければなりません。
revertToDefaults()とrevertToAndRestorePermanentDefaults()のメソッドも参照してください。
isAtRampDefault()
→ bool
現在のランプパラメータがデフォルトのままかどうかを返します。
これは、特別なランプデフォルトSpareパラメータデータと比較することで、ランプに関連付けられているすべてのmultiparmパラメータをテストします。 デフォルトSpareデータを持たないランプは決してデフォルトにはなりません。
Multiparms ¶
isMultiParmInstance()
→ bool
このパラメータがマルチパラメータのインスタンスかどうか返します。例えば、add SOP内のpt0x, pt1x, pt2xなどのパラメータがマルチパラメータのインスタンスです。
isMultiParmParent()
→ bool
このパラメータがインスタンスパラメータの数を示した親マルチパラメータかどうかを返します。 そうでないならNoneを返します。
parentMultiParm()
→ hou.Parm
このパラメータがマルチパラメータインスタンスなら、親マルチパラメータを、そうでないならNoneを返します。
multiParmInstanceIndices()
→ tuple of int
このパラメータがマルチパラメータインスタンスなら、マルチパラメータブロックとそのネストされたブロック内でパラメータが表示される場所のインデックスのタプルを返します。 外側のマルチパラメータブロックのインデックスが最初にリスト化されます。
例えば、このパラメータがマルチパラメータブロック内の4番目のインスタンスとして表示される場合は、(3,)が返されます。
他のサンプルとしては、このパラメータがマルチパラメータブロック内の3番目のインスタンスとして表示され、 そのブロック自体が外側のマルチパラメータブロックの1番目のインスタンスとして表示される場合は、(0, 2)が返されます。
multiParmInstances()
→ tuple
of hou.ParmTuple
このパラメータがマルチパラメータ用のインスタンスの数に該当すれば、このマルチパラメータのインスタンスすべてに相当するパラメータすべてを返します。
このパラメータがマルチパラメータ用でない場合は空っぽのタプルを返します。
multiParmInstancesPerItem()
→ int
このパラメータがマルチパラメータ用のインスタンスの数に該当すれば、インスタンスあたりのパラメータの数を返します。
このパラメータがマルチパラメータ用でない場合は0を返します。
multiParmInstancesCount()
→ int
このパラメータがマルチパラメータ用のインスタンスの数に該当すれば、インスタンスあたりのパラメータの数を返します。
このパラメータがマルチパラメータ用でない場合は0を返します。
multiParmStartOffset()
→ int
このパラメータがマルチパラメータ用のインスタンスの数に該当すれば、マルチパラメータ名を構築する時に使用される開始インデックスを返します。 デフォルト値は1です。
このパラメータがマルチパラメータ用でない場合は0を返します。
CHOPs ¶
createClip(parent_node, name, create_new, apply_immediately, current_value_only, create_locked, set_value_to_default)
→ hou.ChopNode
このパラメータを表現したChannel CHOPを作成します。 Channel CHOPは、指定した親ノードの子として指定した名前で作成されます。 parent_nodeは、通常ではhou.OpNode.findOrCreateMotionEffectsNetworkによって作成されます。
create_new
常に新しいChannel CHOPを作成します。Falseに設定し、Channel CHOPが既に同じ名前で存在している場合は、それが再使用されます。 パラメータが既にChannel CHOP上に存在している場合は、まず最初に古いパラメータが削除されます。
apply_immediately
Trueに設定すると、Channel CHOP上のExportフラグが設定されます。
current_value_only
Trueに設定すると、パラメータの現行値のみが保存されます。
create_locked
Trueに設定すると、作成時にパラメータがロックされます。
set_value_to_default
Trueに設定すると、作成時にパラメータがデフォルト値に戻されます。
appendClip(chop_node, apply_immediately, current_value_only, create_locked, set_value_to_default)
このパラメータを、指定したChannel CHOPに追加します。
apply_immediately
Trueに設定すると、そのChannel CHOPにExportフラグが設定されます。
current_value_only
Trueに設定すると、パラメータの現行値のみが保存されます。
create_locked
Trueに設定すると、作成時にパラメータがロックされます。
set_value_to_default
Trueに設定すると、作成時にパラメータがデフォルト値に戻されます。
階層 ¶
containingFolders()
→ tuple of str
このパラメータを含んだフォルダの名前に相当する文字列のタプルを返します。
例えば、このパラメータがShadingフォルダ内にあり、そのShadingフォルダがRenderフォルダにある場合、 このメソッドは、(“Render”, “Shading”)を返します。 このフォルダ名は、内部パラメータではなくパラメータダイアログで使用されるラベルを意味します。
このパラメータがフォルダ内になければ空っぽのタプルを返します。
たくさんのパラメータに対してこのメソッドをコールすると遅くなります。高速なメソッドは、hou.OpNode.parmsInFolderを参照してください。
containingFolderSetParmTuplesメソッドとhou.OpNode.parmTuplesInFolderも参照してください。
containingFolderSetParmTuples()
→ tuple of hou.ParmTuple
このパラメータを含んだフォルダに相当するParmTuplesのタプルを返します。
例えば、このパラメータがShadingフォルダ内にあり、そのShadingフォルダがRenderフォルダにある場合、 このメソッドは、Render parmタプルとShading parmタプルを含んだタプルを返します。 返されるparmタプルはフォルダセットです。
このパラメータがフォルダ内になければ空っぽのタプルを返します。
containingFolders()メソッドとhou.OpNode.parmsInFolderとhou.OpNode.parmTuplesInFolderも参照してください。
containingFolderIndices()
→ tuple of int
このパラメータを含んだフォルダに相当するインデックスのタプルを返します。 各インデックスは、その該当するフォルダセットパラメータ内のフォルダを参照します。
このメソッドは以下のように実装されています:
def containingFolderIndices(self): return tuple( list(folder_set_parm_tuple.parmTemplate().folderNames()).index( folder_name) for folder_set_parm_tuple, folder_name in zip( parm.containingFolderSetParmTuples(), parm.containingFolders()))
このサンプルは、パラメータを含んだフォルダすべてを開くことで、パラメータペイン内のパラメータを可視にします。
def makeParmVisible(parm): for folder_set_parm_tuple, folder_index in zip( parm.containingFolderSetParmTuples(), parm.containingFolderIndices()): folder_set_parm_tuple[0].set(folder_index)
クリップボード ¶
copyToParmClipboard()
これをパラメータクリップボードにコピーします。 hou.parmClipboardContents()も参照してください。
その他 ¶
asCode(brief=False, save_values=True, save_keyframes=True, save_keys_in_frames=False, save_flag_values=True, save_aliases=True, function_name=None)
→ str
パラメータタプルの値、フラグ、他のプロパティを設定することができるPythonステートメントのスクリプトを返します。
このスクリプトを実行するには、Pythonのexecまたはexecfileのどちらかの関数を使用します。
brief
‹brief›がTrueの時、出力されるスクリプトは、ファクトリーデフォルトに設定された値とフラグを設定するためのコマンドを省略します。 このスクリプトは、未使用の値、スロープ、アクセラレーションを設定するキーフレームコマンドも省略します。 ‹brief›の値は、必ずTrueまたはFalseのどちらかでなければなりません。
save_values
‹save_values›がTrueの時、asCodeはパラメータタプルの値を設定するためのコマンドを出力します。
‹save_values›の値は、必ずTrueまたはFalseのどちらかでなければなりません。
save_keyframes
‹save_keyframes›がTrueの時、asCodeはパラメータタプル(あれば)のキーフレームを作成するためのコマンドを出力します。
‹save_keyframes›の値は、必ずTrueまたはFalseのどちらかでなければなりません。
save_keys_in_frames
‹save_keys_in_frames›がTrueの時、asCodeはチャンネルとキーの時間を秒ではなくサンプル(フレーム)で設定するためのコマンドを出力します。
‹save_keyframes›がFalseの場合は、このパラメータは何の効果もありません。
‹save_keys_in_frames›の値は、必ずTrueまたはFalseのどちらかでなければなりません。
save_flag_values
‹save_flag_values›がTrueの時、asCodeはパラメータタプルのフラグの値を設定するためのコマンドを出力します。
‹save_flag_values›の値は、必ずTrueまたはFalseのどちらかでなければなりません。
save_aliases
‹save_aliases›がTrueの時、asCodeはパラメータタプルのチャンネルエイリアスを設定するためのコマンドを出力します。
‹save_aliases›の値は、必ずTrueまたはFalseのどちらかでなければなりません。
function_name
‹function_name›を指定すると、出力されるスクリプトは、指定した名前でPython関数定義にラップされます。 ‹function_name›は英数字とアンダースコアだけで構成されたゼロ長ではない文字列でなければなりません。 無効な文字は内部的にアンダースコアに変換されます。
ラッパー関数は、単一引数を受け取り、この引数は既存のノードパラメータタプルを参照しなければなりません。 対照的に、この関数はパラメータタプル参照も返します。
以下は、出力をファイルに保存して、それをHoudiniに読み込むサンプルです:
# ターゲットパラメータタプルの参照を取得します。 pt = hou.parmTuple("/obj/geo1/t") # asCodeを実行し、その出力スクリプトをファイルに書き出します。 script = pt.asCode() f = open("set_parm_tuple_properties.py", "w") f.write(script) f.close() # スクリプトを実行します。これは、/obj/geo1のtパラメータタプルの値、フラグ値、他のプロパティを設定します。 # また、tパラメータタプルの参照を'hou_parm_tuple'変数に格納します。 execfile("set_parm_tuple_properties.py")
以下は出力を関数に保存して、それをHoudiniでコールするサンプルです:
# ターゲットパラメータの参照を取得します。 node = hou.parmTuple("/obj/geo1/t") # asCodeを実行して、その関数定義をファイルに書き出します。 func = p.asCode(function_name="setParmTupleProperties") f = open("parmtuplelib.py", "w") f.write(func) f.close() # 関数定義をコールして、他のパラメータタプルのプロパティを設定します。 import parmtuplelib hou_parm_tuple = parmtuplelib.setParmTupleProperties(node.parm("t"))
スクリプト ¶
pressScriptActionButton(arguments={})
パラメータ上のスクリプトアクションボタンのクリック操作を模倣して、そのアクションスクリプトを実行します。 そのアクションスクリプトを実行できなかった場合は、hou.OperationFailedを引き起こします。 オプションで、そのアクションスクリプトに引数の辞書を渡すことができます。 そのアクションスクリプトの実行結果を返します。
Note
これは、どのタイプのパラメータ上でもコールしてスクリプトアクションを実行することができ、ボタンパラメータにのみ制限されているわけではありません。
arguments
コールバックスクリプトのオプションの引数の辞書。 'alt'、'shift'、'ctrl'、'command'の各キーに対してブール値を設定することで、キーボード修飾キーを制御することができます。
As Data ¶
詳細は、レシピを参照してください。
valueAsData(evaluate=True, verbose=True) -> Union[int, str, float, dict, list]
このパラメータの値を表現したJSONライクな値を返します。
evaluate
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
setValueFromData(data: Union[int, str, float, dict, list]) -> None
(Parm.valueAsData()から返された)データから、このパラメータの値を更新します。
data
パラメータの値をデータとして表現したパラメータ値データ。
asData(value=True, evaluate_value=False, locked=True, brief=True, multiparm_instances=True, metadata=False, verbose=False) -> dict[str,Any]
このパラメータを表現したJSONライクな構造体を返します。
value
If this is True, the capture process saves the values of the parameters.
evaluate_value
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
locked
If this is True, the capture process saves the locked state of the parameters.
brief
Normally, the parm data that stores values for each parameter is saved in a compact form where possible. If this is False, it
stores the parm data with full structure. This option mainly exists for debugging. See parm data dict for more information.
multiparm_instances
If this is True, the capture processes multiparm instances of multiparm parent parameters.
metadata
If this is True, the capture process saves additional information about nodes and parameters.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
setFromData(data: dict[str, Any]) -> None
(Parm.asData()から返された)データから、このパラメータの設定と値を更新します。
data
パラメータをデータとして表現したパラメータデータ。
childrenAsData(values=True, default_values=False, evaluate_values=False, locked=True, brief=True, multiparm_instances=True, metadata=False, verbose: bool=False) -> dict[str, Any]
このパラメータがフォルダパラメータの場合、そのフォルダ内のパラメータを表現したJSONライクな構造体を返します。 そうでない場合、空っぽの辞書を返します。
default_values
Normally, when parms is True, the capture process only saves parameters with non-default values.
If this is True, the capture process also saves parameters set to the default value. If the parms argument is
a list of parameters to capture, this is ignored.
evaluate_values
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
locked
If this is True, the capture process saves the locked state of the parameters.
brief
Normally, the parm data that stores values for each parameter is saved in a compact form where possible. If this is False, it
stores the parm data with full structure. This option mainly exists for debugging. See parm data dict for more information.
metadata
If this is True, the capture process saves additional information about nodes and parameters.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
multiParmInstancesAsData(start_index: int=0, end_index: int=-1, value=True, evaluate_value=False, links=True, locked=True, brief=True, metadata=False, verbose=False) -> Sequence[dict[str, Any]]
このマルチパラメータのすべての子インスタンスを表現したJSONライクな構造体を返します。
start_index
マルチパラメータインスタンスをデータとして保存する最初のインデックス。
end_index
マルチパラメータインスタンスをデータとして保存する最後のインデックス。
value
If this is True, the capture process saves the values of the parameters.
evaluate_value
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
links
これがTrueの場合、参照リンクもデータと一緒に保存されます。
locked
If this is True, the capture process saves the locked state of the parameters.
brief
Normally, the parm data that stores values for each parameter is saved in a compact form where possible. If this is False, it
stores the parm data with full structure. This option mainly exists for debugging. See parm data dict for more information.
metadata
If this is True, the capture process saves additional information about nodes and parameters.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
setMultiParmInstancesFromData(data: Sequence[dict[str, Any]]) -> None
(Parm.multiParmInstancesAsData()から返された)データから、このマルチパラメータの子インスタンスを設定します。
data
マルチパラメータインスタンスをデータとして表現したデータ。
insertMultiParmInstancesFromData(data: Sequence[dict[str, Any]], index: int=0) -> None
(Parm.multiParmInstancesAsData()が返す)データから、このマルチパラメータの指定したインデックスに子インスタンスを挿入します。
data
マルチパラメータインスタンスをデータとして表現したデータ。
index
dataから新しいインスタンスを挿入する位置を示したインデックス番号。
appendMultiParmInstancesFromData(data: Sequence[dict[str, Any]]) -> None
(Parm.multiParmInstancesAsData()から返された)指定したデータから、このマルチパラメータに子インスタンスを追加します。
data
マルチパラメータインスタンスをデータとして表現したデータ。
rampPointsAsData(evaluate=True, metadata=False, verbose=False)) -> Sequence[dict[str, Any]]
このランプパラメータのポイントを表現したJSONライクな構造体を返します。
evaluate
If this is True, the capture process saves the evaluated value of the parameters at the current time
(including expanding variables in strings), instead of saving expressions and keyframe animation.
metadata
If this is True, the capture process saves additional information about nodes and parameters.
verbose
Normally, the capture process tries to omit and simplify various data structures.
If this is True, the capture process saves everything with full structure. This option mainly exists for debugging.
setRampPointsFromData(data: Sequence[dict[str, Any]]) -> None
(Parm.rampPointsAsData()から返された)データから、このランプパラメータのポイントを設定します。
data
ランプポイントをデータとして表現したデータ。
templateAsData(children=True, parmtemplate_order=False) -> dict[str, Any]
親のパラメータタプルのパラメータテンプレートを表現したJSONライクな構造体を返します。
children
Whether to recursively save the contents of nested parm templates.
parmtemplate_order
If this is True, an additional ordering_index key is saved for each parmtemplate data.
templateChildrenAsData(parmtemplate_order=False) -> dict[str, Any]
親のパラメータタプルのパラメータテンプレートの子を表現したJSONライクな構造体を返します。
parmtemplate_order
If this is True, an additional ordering_index key is saved for each parmtemplate data.
insertTemplatesFromData(data: dict[str, Any], operation="insert_after", rename_conflicts=True) -> None
指定したデータから、このパラメータを基準にSpareパラメータを挿入します。
data
The parm templates data dictionary that describes a sequence of parameter templates as data.
operation
データのテンプレートを既存のパラメータテンプレートに結合する方法を指定します。
insert_before
このデータのテンプレートをこのパラメータの前に挿入します。
insert_after
このデータのテンプレートをこのパラメータの後に挿入します。
insert_first
このデータのテンプレートをこのフォルダパラメータの先頭に挿入します。
append_to_folder
このデータのテンプレートをこのフォルダパラメータの末尾に挿入します。
rename_conflicts
Whether to rename the newly created parm templates when they conflict with existing templates.