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
を引き起こします。
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
に設定します。
follow_parm_references
このオプションは、hou.ParmTuple値を設定した時にのみ適用されます。
このオプションをTrue
に設定すると、このメソッドは、チャンネル参照に従って、参照されたパラメータタプルから、指定したパラメータタプルにチャンネル参照を作成します。
このパラメータタプルに、現在のところ他のパラメータタプルのチャンネル参照を含んでいれば、このメソッドは、チャンネル参照に従い、参照されたパラメータタプルの値を変更します。
これが期待する挙動でないなら、まずhou.ParmTuple.deleteAllKeyframesを使ってチャンネル参照を削除してください。
他には、その値を他のパラメータタプルに設定していて、既存のチャンネル参照に従いたくない場合には、オプションのfollow_parm_references
引数をFalse
に設定してください。
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()
メソッドも参照してください。
デフォルト ¶
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"))