メソッド ¶
アニメーション ¶
alias()
→ str
パラメータのチャンネルエイリアス名を返します。 そのような名前が存在しなかった場合は空っぽの文字列を返します。
setAlias(alias_name)
パラメータにチャンネル内で参照可能な他の名前を付けます。 空っぽの文字列を渡すことで、既存のエイリアス名を削除することができます。
isAutoscoped()
→ bool
このパラメータのオートスコーププロパティがオンになっているかどうかを返します。
isAutoSelected()
→ bool
このパラメータのオートセレクトプロパティがオンになっているかどうかを返します。
deleteAllKeyframes()
このパラメータからキーフレームすべてを削除します。
削除するキーフレームがなければ、これは何の効果もありません。 すべてのキーフレームが削除された後のパラメータの値は、現行フレームで評価された値になります。
この関数は、Houdini内で存在しないパラメータに対して呼び出すと、hou.ObjectWasDeletedを引き起こします。
この関数は、指定したパラメータへの書き出しができなかった場合にhou.PermissionError例外を引き起こします。
hou.Parm.deleteKeyframeAtFrameとhou.ParmTuple.deleteAllKeyframesも参照してください。
deleteKeyframeAtFrame(frame)
このパラメータから、指定したフレームでのキーフレームを削除します。
この関数は、Houdiniに存在しないパラメータに対して呼び出すと、hou.ObjectWasDeleted例外を引き起こします。
この関数は、指定したパラメータへの書き込みが不可なら、hou.PermissionError例外を引き起こします。
この関数は、指定したフレームのキーフレームがパラメータになければ、hou.OperationFailed例外を引き起こします。
hou.Parm.deleteAllKeyframesも参照してください。
keyframesAfter(frame)
→ tuple of hou.BaseKeyframe
frame
以降(そのフレームを含む)のこのパラメータのキーフレームのタプルを返します。
キーフレームがなければ、空っぽのタプルが返されます。
keyframesBefore(frame)
→ tuple of hou.BaseKeyframe
frame
以前(そのフレームを含む)のこのパラメータのキーフレームのタプルを返します。
キーフレームがなければ、空っぽのタプルが返されます。
keyframeExtrapolation(before)
→ hou.parmExtrapolate
このパラメータを最初のキーフレームの前または最後のキーフレームの後の時間に対するパラメータの外挿を返します。 この外挿は、キーフレームの範囲外のparm値の評価方法を定義しています。
before
Trueに設定すると、最初のキーフレーム前の評価をする外挿を返します。 Falseに設定すると、最後のキーフレーム後の評価をする外挿を返します。
この関数は、Houdiniに存在しないパラメータに対してコールするとhou.ObjectWasDeleted例外を引き起こします。
この関数は、パラメータに有効なアニメーションチャンネルがなかった場合にhou.OperationFailed例外を引き起こします。
keyframesRefit(refit, refit_tol, refit_preserve_extrema, refit_bezier, resample, resample_rate, resample_tol, range, range_start, range_end, bake_chop)
再サンプリングと範囲コントロールを使って再フィット処理を実行します。
refit
Trueに設定すると、指定した再フィットオプションで3次再フィットが実行されます。 Falseに設定すると、その再フィットがスキップされて、再サンプリングや範囲処理のみが実行されます。
refit_tol
絶対値での再フィット許容値。
refit_preserve_extrema
極小値または極大値のキーを維持します。
refit_bezier
Trueに設定すると、新しいキーフレームは、bezier()セグメントを使用するように設定されます。 Falseに設定すると、新しいキーフレームは、cubic()セグメントを使用するように設定されます。
resample
Trueに設定すると、再サンプリング処理が再フィット前に実行されます。 Falseに設定すると、そのチャンネルがそのまま使用されます。
resample_rate
フレーム単位での再サンプルレート。1.0に設定すると、フレーム毎にキーフレームが追加されます。
resample_tol
フレーム単位での再サンプル許容値、1.0に設定すると、フレームが1フレーム内で存在すれば、再サンプリングは発生しません。
range
Trueに設定すると、range_startとrange_endの引数が使用されます。これは、cycle/cycle offsetまたはoscillateのチャンネル外挿を使用していて、 その周期をベイクする時に役に立ちます。 Falseに設定すると、そのチャンネル範囲は、最初と最後のキーフレームに基づいて使用されます。
range_start
範囲の開始フレーム。
range_end
範囲の終了フレーム。
bake_chop
hou.parmBakeChop列挙値。
refit_smooth
True
に設定すると、新しいキーフレームに自動スロープが適用されます。
False
に設定すると、新しいキーフレームは再フィッティングアルゴリズムで選ばれたスロープを使用します。
isScoped()
→ bool
このパラメータのチャンネルがスコープされているかどうかを返します。 スコープされていれば、そのチャンネルがAnimation Editorに読み込まれます。
isSelected()
→ bool
このパラメータのチャンネルが選択されているかどうかを返します。 選択されていれば、アニメーションエディタでそのチャンネルが選択されます。
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.Parm.saveClipを参照してください。
このパラメータのhou.Parm.nameに合致しない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.Parm.saveClipと同様ですが、アニメーションをClipファイルに保存するのではなくて、Clipデータ(ファイルの内容)を返します。
start, end, sample_rateは、hou.Parm.saveClipと同じ挙動です。
binaryがTrue
の場合はバイナリClipデータを返し、False
の場合はプレーンテキスト(ASCII)Clipデータを返します。
use_blosc_compressionがTrue
の場合はBlosc圧縮のバイナリClipデータを返します。
これはプレーンテキスト(ASCII)Clipデータには使用することができません。
The returned clip data is a bytes
object in Python 3 and a str
object in Python 2. See HOM binary data for
more information.
パラメータに何もアニメーションがなければ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.Parm.loadClipと同様ですが、Clipファイルの代わりにClipデータからアニメーションを読み込みます。
sample_rateとstartはhou.Parm.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例外を引き起こします。
setScope(on)
パラメータのチャンネルのスコーププロパティを変更します。 これは、アニメーションエディタでそのチャンネルを読み込むかどうかに影響します。
setAutoscope(on)
パラメータのオートスコーププロパティを変更します。このプロパティがオンなら、オブジェクトを選択した時に、このパラメータが自動的にスコープされます。
setSelect(on)
パラメータのチャンネルのセレクトプロパティを変更します。 これは、アニメーションエディタでそのチャンネルを選択するかどうかに影響します。
setAutoSelect(on)
パラメータのオートセレクトプロパティを変更します。 このプロパティがオンなら、アニメーションエディタでパラメータを表示した時に、そのパラメータがデフォルトで選択状態になります。
setKeyframe(keyframe)
このパラメータ上にキーフレームを設定します。
keyframe
がhou.BaseKeyframeタイプでない場合は、TypeError
を引き起こします。
このパラメータが書き込み不可の場合は、hou.PermissionErrorを引き起こします。
setKeyframes(keyframes)
このパラメータに複数のキーフレームを設定します。 このメソッドのコールは、設定されるキーフレーム全体をまとめてHoudiniへ更新イベントを1回送信するだけで良いので、hou.Parm.setKeyframeを複数回コールするよりも効率が良いです。
keyframes
はhou.BaseKeyframeオブジェクトのタプルまたはリストでなければなりません。
このパラメータが書き込み不可であれば、hou.PermissionErrorを引き起こします。
setKeyframeExtrapolation(before, extrapol)
最初のキーフレームの前または最後のキーフレームの後の時間に対して、このパラメータの外挿を設定します。 この外挿は、キーフレームの範囲外のparm値の評価方法を定義します。
before
Trueに設定すると、最初のキーフレーム前の評価をする外挿が設定されます。 Falseに設定すると、最後のキーフレーム後の評価をする外挿が設定されます。
extrapol
この関数は、Houdiniに存在しないパラメータに対してコールするとhou.ObjectWasDeleted例外を引き起こします。
この関数は、指定したパラメータに書き込みできなかった場合にhou.PermissionError例外を引き起こします。
この関数は、パラメータに有効なアニメーションチャンネルがなかった場合にhou.OperationFailed例外を引き起こします。
setPending(value)
現行フレームでのパラメータ値を設定し、パラメータがキーされていれば、それをPendingとしてマークします。
value
のタイプがこのパラメータのタイプに一致しなかった場合は、TypeError
を引き起こします。
このパラメータが書き込み不可の場合は、hou.PermissionErrorを引き起こします。
isPending()
→ bool
このキーが打たれたパラメータが変更されてはいるものの、明示的にキーが打たれていない場合はTrueを返します。
値 ¶
unexpandedString()
→ str
ドル記号とバッククォート展開の前のパラメータの内容を返します。
未展開の文字列の例は、“image$F.pic”, “$HIP/split.hda” または“chs('../font1/text')
”です。
それらの文字列に対してeval()
をコールすれば、Houdiniは、変数展開とバッククォートエクスプレッション評価を実行します。
そのため、“image$F.pic”の代わりに“image1.pic”のような何かを取得します。
文字列パラメータのみがドル記号や文字列展開を行おうとするので、このメソッドが文字列以外のパラメータからコールされると、hou.OperationFailedを引き起こします。
文字列パラメータにキーフレームが含まれていると仮定します。
この場合では、Houdiniはパラメータの値に対して文字列展開を行なおうとしないので、このメソッドをコールすると
hou.OperationFailedを引き起こします。
このメソッドをコールする代わりに、expression()
をコールすることで、最初のキーフレームのエクスプレッションにアクセスすることができます。
複数のキーフレームがあれば、keyframes()
をコールすることでhou.StringKeyframeオブジェクトのリストを取得することができ、
それらのオブジェクトに対してexpression()
をコールすることでそのエクスプレッションを取得することができます。
eval()
→ int
, float
, or str
このパラメータを現行フレームで評価し、その結果を返します。
evalAtFrame
とevalAtTime
のメソッドも参照してください。
evalAsFloat()
→ float
このパラメータを現行フレームで評価し、その結果をfloatとして返します。
値をfloatに変換できなければ、TypeError
を引き起こします。
evalAsFloatAtFrame(frame)
→ float
このパラメータを現行フレームで評価し、その結果をfloatとして返します。
値をfloatに変換できなければ、TypeError
を引き起こします。
evalAsInt()
→ int
このパラメータを現行フレームで評価し、その結果をintegerとして返します。
値をintegerに変換できなければ、TypeError
を引き起こします。
evalAsIntAtFrame(frame)
→ int
このパラメータを特定のフレームで評価し、その結果をintegerとして返します。
値をintegerに変換できなければ、TypeError
を引き起こします。
evalAsNode()
→ hou.OpNode
このパラメータを現行フレームで評価し、その結果をhou.OpNodeとして返します。
パラメータの解が複数のノードパスになる場合は、None
が返されます。
この場合にはevalAsNodes
を参照してください。
その値をhou.OpNodeに変換できなければ、TypeError
を引き起こします。
evalAsNodeAtFrame(frame)
→ hou.OpNode
このパラメータを特定のフレームで評価し、その結果をhou.OpNodeとして返します。
パラメータの解が複数のノードパスになる場合は、None
が返されます。
この場合にはevalAsNodesAtFrame
を参照してください。
その値をhou.OpNodeに変換できなければ、TypeError
を引き起こします。
evalAsNodes()
→ tuple
of hou.OpNode
このパラメータを現行フレームで評価し、その結果をhou.OpNodeのタプルとして返します。
その値をhou.OpNodeに変換できなければ、TypeError
を引き起こします。
evalAsNodesAtFrame(frame)
→ tuple
of hou.OpNode
このパラメータを特定のフレームで評価し、その結果をhou.OpNodeのタプルとして返します。
その値をhou.OpNodeに変換できなければ、TypeError
を引き起こします。
evalAsString()
→ str
このパラメータを現行フレームで評価し、その結果を文字列として返します。
変数展開前のパラメータの文字列の内容とエクスプレッション評価が必要であれば、hou.Parm.unexpandedStringをコールします。
値を文字列に変換できなければ、TypeError
を引き起こします。
evalAsStringAtFrame(frame)
→ str
このパラメータを特定のフレームで評価し、その結果を文字列として返します。
変数展開前のパラメータの文字列の内容とエクスプレッション評価が必要であれば、hou.Parm.unexpandedStringをコールします。
値を文字列に変換できなければ、TypeError
を引き起こします。
evalAtTime(time)
→ int
, float
, or str
このパラメータを指定した時間で評価し、その結果をinteger, float または stringとして返します。
evalAtFrameも参照してください。
evalAtFrame(frame)
→ int
, float
, or str
このパラメータを指定したフレームで評価し、その結果をinteger, float または stringとして返します。
evalAtTimeも参照してください。
evalAsRamp()
→ hou.Ramp
このパラメータを現行フレームで評価し、その結果をrampとして返します。
パラメータがrampでない場合は、TypeError
を引き起こします。
evalAsRampAtFrame(frame)
→ hou.Ramp
このパラメータを特定のフレームで評価し、その結果をrampとして返します。
パラメータがrampでない場合は、TypeError
を引き起こします。
evalAsGeometry()
→ hou.Geometry
このパラメータを現行フレームで評価し、その結果をジオメトリとして返します。
パラメータがジオメトリでなかった場合は、TypeError
を引き起こします。
evalAsGeometryAtFrame(frame)
→ hou.Geometry
このパラメータを特定のフレームで評価し、その結果をジオメトリとして返します。
パラメータがジオメトリでなかった場合は、TypeError
を引き起こします。
evalAsJSONMap()
→ dict of str
to str
このパラメータを現行フレームで評価し、その結果をJSONマップ構造(つまり、Python辞書)として返します。
このパラメータがJSONマップデータパラメータでなかった場合は、TypeError
またはhou.OperationFailedを引き起こします。
evalAsJSONMapAtFrame(frame)
→ dict of str
to str
このパラメータを特定のフレームで評価し、その結果をJSONマップ構造(つまり、Python辞書)として返します。
このパラメータがJSONマップデータパラメータでなかった場合は、TypeError
またはhou.OperationFailedを引き起こします。
evalAsNodePath()
→ str
このパラメータを現行フレームで評価し、その結果を絶対ノードパスとして返します。
パラメータの解が複数のノードパスになる場合は、空っぽの文字列が返されます。
この場合にはevalAsNodePaths
を参照してください。
evalAsNodePathAtFrame(frame)
→ str
このパラメータを特定のフレームで評価し、その結果を絶対ノードパスとして返します。
パラメータの解が複数のノードパスになる場合は、空っぽの文字列が返されます。
この場合にはevalAsNodePathsAtFrame
を参照してください。
evalAsNodePaths()
→ tuple
of str
このパラメータを現行フレームで評価し、その結果を各文字列が絶対ノードパスのタプルとして返します。
evalAsNodePathsAtFrame(frame)
→ tuple
of str
このパラメータを特定のフレームで評価し、その結果を各文字列が絶対ノードパスのタプルとして返します。
rawValue()
→ str
このパラメータのそのままのテキスト値を評価または展開せずに返します。 このパラメータにエクスプレッションが含まれていれば、そのエクスプレッションが返され、そうでない場合は、このパラメータのそのままのテキスト値が返されます。
設定 ¶
set(value, language=None, follow_parm_reference=True)
現行フレームのパラメータ値を設定します。
value
このパラメータ値に設定するfloat, integer, string。
rampパラメータの値を設定するには、hou.Rampオブジェクトをパラメータ値として渡します。 このrampオブジェクトのタイプは、ターゲットのrampのタイプと一致する必要があります。
Note
rampパラメータのカラータイプは読み込み専用なので、hou.Ramp.colorType()情報は無視されます。
ジオメトリデータパラメータの値を設定するには、hou.Geometryオブジェクトをパラメータ値として渡します。
このパラメータからチャンネル参照を作成するには、hou.Parmオブジェクトを、指定したパラメータに渡します。
language
このオプションは、hou.Parm値を設定した時にのみ適用されます。
このパラメータからチャンネル参照を作成する時に使用するエクスプレッション言語を、指定したパラメータに指定します。
このオプションにhou.exprLanguageオブジェクトまたはNone
を設定すると、デフォルトの言語が選択されます。
follow_parm_reference
このオプションは、hou.Parm値を設定した時にのみ適用されます。
このオプションをTrue
に設定すると、このメソッドは、チャンネル参照に従って、参照されているパラメータからのチャンネル参照を、指定したパラメータに作成します。
このparmに現在他のパラメータのチャンネル参照を含んでいた場合、
このメソッドは、そのチャンネル参照に追従し、その参照されたパラメータの値を変更します。
これが望まれる挙動でない場合は、まずdeleteAllKeyframesを使って、そのチャンネル参照を削除してください。
別の方法として、この値を他のパラメータに設定し、既存のチャンネル参照に従いたくない場合には、オプションのfollow_parm_reference
引数をFalse
に設定します。
value
のタイプがこのパラメータのタイプと一致しなかった場合はTypeError
を引き起こします。
このパラメータが書き込み不可であれば、hou.PermissionErrorを引き起こします。
hou.OpNode.setParmsも参照してください。
setFromParm(src)
指定したsrc
パラメータから、チャンネルを含むパラメータ全体の値をコピーします。
setFromParmDefaults(src)
指定したsrc
パラメータのデフォルトからパラメータ全体(チャンネルを含む)の値をコピーします。
エクスプレッション ¶
expression()
→ str
このパラメータのエクスプレッションを返します。
例えば、パラメータにframe() * 2
Pythoエクスプレッションが含まれていたとします。
この場合では、フレーム2ではhou.Parm.evalは4を返すのに対し、
expression()をコールすると、frame() * 2
文字列を返します。
パラメータにエクスプレッションが含まれていなかった場合は、このメソッドはhou.OperationFailedを引き起こします。 また、パラメータに2つ以上のキーフレームが含まれていれば、複数の異なるエクスプレッションを含めることができるので、 その場合でもhou.OperationFailedを引き起こします。
このメソッドは、ほぼ以下と同等です…
parm.keyframes()[0].expression()
setExpression()
, expressionLanguage()
, keyframes()
, eval()
のメソッドも参照してください。
setExpression(expression, language=None, replace_expression=True)
このパラメータのエクスプレッションを設定します。
expression
パラメータの中に入れるエクスプレッションを含んだ文字列。
language
hou.exprLanguage列挙値またはNone
のどちらか。
languageがNoneで、パラメータにまだエクスプレッションが含まれていない場合は、その言語がノードのエクスプレッション言語になります。 (hou.OpNode.expressionLanguageを参照してください)。そうでない場合は、languageがNoneでパラメータに既にエクスプレッションが含まれていると、 そのエクスプレッション言語は変わりません。
replace_expression
このパラメータは、パラメータに既にキーフレームが含まれている場合のみ効果があります。
True
の場合、Houdiniは現行フレーム前のキーフレームを新しいエクスプレッションを含んだキーフレームに置換します。
そうでない場合、Houdiniは常に現行時間でキーフレームを追加します。
この挙動は、Houdiniのパラメータダイアログからエクスプレッションを編集した時と同じです。
hou.Parm.setと違い、このメソッドは、チャンネル参照に追従しません。
つまり、このパラメータが他のパラメータを参照していて、setExpression()
をコールすると、それはチャンネル参照エクスプレッションをその指定したエクスプレッションに変更します。
パラメータにまだキーフレームが含まれていない場合は、このメソッドは、フレーム1でのキーフレーム設定とほぼ等価で、キーフレームのエクスプレッションと言語が指定したものになります。
このメソッドは、以下のコードでほぼ同じように実装することができます:
def setExpression(self, expression, language=None, replace_expression=None) if self.template().type() == hou.parmTemplateType.String: k = hou.StringKeyframe() else: k = hou.Keyframe() k.setExpression(expression, language) if len(self.keyframes()): if replace_expression: k.setTime(self.effectiveKeyframeAtFrame(hou.frame()).time()) else: k.setTime(hou.time()) else k.setTime(0.0) self.setKeyframe(k)
expression
, expressionLanguage
, setKeyframe
のメソッド, hou.OpNode.expressionLanguage, hou.OpNode.setExpressionsも参照してください。
expressionLanguage()
→ hou.exprLanguage列挙値
パラメータのエクスプレッションの言語を返します。
パラメータにエクスプレッションが含まれていなかった場合は、このメソッドはhou.OperationFailedを引き起こします。 また、パラメータに2つ以上のキーフレームが含まれていれば、複数の異なるエクスプレッションを含めることができるので、 その場合でもhou.OperationFailedを引き起こします。
エクスプレッション言語を変更するには、hou.Parm.setExpressionを使用して、明示的に言語を指定します:
parm.setExpression(parm.expression(), language)
このメソッドは、ほぼ以下と同等です…
parm.keyframes()[0].expressionLanguage()
expression()
, setExpression()
, keyframes()
, setExpressionLanguage()
のメソッドも参照してください。
isShowingExpression()
→ bool
このパラメータがエクスプレッションまたは現行値のどちらで表示されているのかを返します。
showExpression()
メソッドも参照してください。
referenceExpression(parm, language=None, follow_parm_reference=True)
→ str
このパラメータから指定されたparm
までのチャンネル参照を含んだエクスプレッション文字列を返します。
showExpression(on)
パラメータのUIに対して値の代わりにエクスプレッションを表示するように設定します。
isShowingExpression()
メソッドも参照してください。
参照 ¶
デフォルト ¶
hasTemporaryDefaults()
→ bool
デフォルトがパラメータに対して明示的に設定されているかどうか返します。
revertToDefaults()
と revertToAndRestorePermanentDefaults()
のメソッドも参照してください。
isAtDefault(compare_temporary_defaults=True, compare_expressions=False)
→ bool
パラメータが現在デフォルトかどうか返します。
compare_temporary_defaults
compare_temporary_defaultsがTrueの時、isAtDefault
はユーザが設定したかもしれない一時的なデフォルトに対してもチェックします。
compare_temporary_defaultsの値は、必ずTrueまたはFalseのどちらかでなければなりません。
compare_expressions
compare_ExpressionsがTrueの時、パラメータがデフォルトのファクトリーエクスプレッションを持っている時にisAtDefault
は実際のエクスプレッションを比較します。
compare_expressionsの値は、必ずTrueまたはFalseのどちらかでなければなりません。
revertToDefaults()
とrevertToAndRestorePermanentDefaults()
のメソッドも参照してください。
isAtRampDefault()
→ bool
現在のランプパラメータがデフォルトのままかどうかを返します。
これは、特別なランプデフォルトSpareパラメータデータと比較することで、ランプに関連付けられているすべてのmultiparmパラメータをテストします。 デフォルトSpareデータを持たないランプは決してデフォルトにはなりません。
revertToAndRestorePermanentDefaults()
値をHoudini出荷時のデフォルトに変更し、そのデフォルトを元に戻します。
revertToDefaults()
メソッドとhou.ParmTuple.revertToAndRestorePermanentDefaultsも参照してください。
revertToDefaults()
値をデフォルトに変更します。
revertToAndRestoreFactoryDefaults()
メソッドも参照してください。
revertToRampDefaults()
ランプの値をデフォルトに変更し、デフォルトでないすべてのコントロールポイントを削除します。
パラメータがランプでない場合はTypeError
を引き起こします。
階層 ¶
containingFolders()
→ tuple of str
このパラメータを含んだフォルダの名前に相当する文字列のタプルを返します。
例えば、このパラメータがShadingフォルダ内にあり、そのShadingフォルダがRenderフォルダにある場合、 このメソッドは、(“Render”, “Shading”)を返します。 このフォルダ名は、内部パラメータではなくパラメータダイアログで使用されるラベルを意味します。
このパラメータがフォルダ内になければ空っぽのタプルを返します。
このメソッドは、中に含まれているマルチパラメータを返しません。 中に含まれているマルチパラメータを返したいのであれば、hou.Parm.parentMultiParmをコールしてください。
たくさんのパラメータに対してこのメソッドをコールすると遅くなります。高速なメソッドは、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()も参照してください。
メタデータ ¶
name()
→ str
このパラメータの名前を返します。
tuple()
→ hou.ParmTuple
このパラメータと関連付けられたhou.ParmTupleを返します。
例えば、移動パラメータ“tx”のためにParmオブジェクトに対してこのメソッドをコールすると、3つの移動パラメータ“tx”, “ty” , “tz”に対してParmオブジェクトを含んだParmTupleを返します。 タプルがそのパラメータと関連付けられていない場合は、そのパラメータ自体がサイズ1のタプルで返されます。
path()
→ str
このパラメータのフルパスを返します。
description()
→ str
このパラメータのラベルを返します。
componentIndex()
→ int
このパラメータのコンポーネントインデックスを返します。
例えば、X軸方向の移動パラメータ“tx”は0のコンポーネントインデックスを返し、 Y軸方向の移動パラメータ“ty”は1のコンポーネントインデックスを返します。
isLocked()
→ bool
このパラメータがロック(編集不可)されているかどうか返します。
isSpare()
→ bool
このパラメータが“spare”(ユーザ定義)パラメータかどうか返します。
isTimeDependent()
→ bool
このパラメータが 時間依存 かどうか返します。つまり、そのパラメータが評価されるタイムライン上のそのポイントに依存して値が変化するかどうか。
例えば、パラメータに$F
(現行フレーム番号)変数を含んだエクスプレッションを持っています。
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条件でパラメータを非表示にすること等価です。
とはいえ、この関数を使ってUIの状態を変更しても、それは一時的なものであり、ノードパラメータテンプレートに影響しません。 つまり、その新しい状態が.hipファイルに保存されず、このノードを更新した時に、Spareパラメータテンプレートに戻すことができます。
ノードのパラメータのUI状態を永続的に変更するには、代わりにhou.ParmTemplate.hideを使用します:
parms = hou.node('/obj/node').parmTemplateGroup() p = parms.find('lookatpath') p.hide(True) parms.replace('lookatpath', p) hou.node('/obj/node').setParmTemplateGroup(parms)
isHidden()
→ bool
パラメータの非表示状態を返します。これを使えば、hide-when条件の結果を読み込むことができます。
CUIのHoudiniまたはオーナーノードがまだParameter Paneに読み込まれていない時は、このメソッドを実行する前にhou.OpNode.updateParmStatesをコールすることを推奨します。
isVisible()
→ bool
このノードのパラメータダイアログでこのパラメータが可視になっているかどうかを返します。 これは、パラメータのテンプレートとパラメータの非表示状態の両方をチェックします。 これは、以下のコードと等価です(が、hou.ParmTemplateを作成しないので実行が速いです):
>>> p = hou.parm('/obj/geo1/tx') >>> not p.isHidden() and not p.parmTemplate().isHidden() True
isConstrained()
→ bool
パラメータの親ノードがOBJで、それがクックされていて拘束を持っている場合にTrueを返します。
lock(on)
このパラメータをロック(lock(True)
)またはロック解除(lock(False)
)します(つまり、値を編集不可にします)。
このパラメータがロックされたデジタルアセットの一部であれば、hou.PermissionErrorを引き起こします。
CHOPs ¶
overrideTrack()
→ hou.Track or None
このパラメータを上書きしているCHOPトラック(あれば)を返します。
isOverrideTrackActive()
→ bool
このパラメータを上書きするCHOPトラックがアクティブになっていればTrueを返します。
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に設定すると、作成時にパラメータがデフォルト値に戻されます。
スクリプト ¶
pressButton(arguments={})
ボタンパラメータのクリックを模倣して、そのコールバックスクリプトをトリガーします。
コールバックスクリプトを実行することができなかった場合は、hou.OperationFailedを引き起こします。
引数のオプションの辞書をコールバックスクリプトに渡すことができます。
引数値のタイプがサポートされていなかった場合はTypeError
を引き起こします。
Note
これは、コールバックスクリプトをトリガーするどのタイプのパラメータからでもコールすることができ、ボタンパラメータだけに限定されていません。
arguments
コールバックスクリプトの引数のオプションの辞書。この辞書は、コールバックに渡されるキーワード値とマージされます。
引数値は、以下のタイプの単一値です: int
, bool
, float
, str
。
Multiparms ¶
insertMultiParmInstance(index)
指定したインデックスの前に新しくmulti parmインスタンスを挿入します。
新しいmulti parmインスタンスを後ろに追加するには、そのインデックスをインスタンスの現行番号に設定します。
現行番号は、このパラメータに対してevalAsInt
をコールすることで照会することができます。
removeMultiParmInstance(index)
指定したインデックスでのmulti parmインスタンスを削除します。
moveDownMultiParmInstance(index)
指定したindex
のMulti Parm Instanceに対してMoveDown操作を実行します。
この関数は、指定したパラメータへの書き込みが不可な場合にhou.PermissionError例外を引き起こします。
この関数は、index
が無効、最下位のインデックス、インデックスが1つしかない場合にhou.Error例外を引き起こします。
moveUpMultiParmInstance(index)
指定したindex
のMulti Parm Instanceに対してMoveUp操作を実行します。
この関数は、指定したパラメータへの書き込みが不可な場合にhou.PermissionError例外を引き起こします。
この関数は、index
が無効、最上位のインデックス、インデックスが1つしかない場合にhou.Error例外を引き起こします。
moveMultiParmInstances(moves)
Multi Parm Instanceに対して一連のMove操作を実行します。
moves
引数には、偶数個のエントリーを含んだ整数配列を指定する必要があります。
奇数番号目の配列位置のエントリーには、“移動元”のMulti Parmインデックスを指定します。
偶数番号目の配列位置のエントリーには、その“移動元”のMulti Parmインデックスに関連付ける“移動先の”Multi Parmインデックスを指定します。
-
インデックス2のインスタンスを上へ移動させるには、
moves
に[2,3]
を指定します。 -
インデックス2のインスタンスを下へ移動させるには、
moves
に[2,1]
を指定します。 -
インデックス0のインスタンスを2段階上へ移動させるには、
moves
に[0,2]
を指定します。
1回の操作で複数のMulti Parm Instanceを移動させることができます:
-
インデックス0とインデックス1の最初の2個のインスタンスを1段階上へ移動させるには、
moves
に[0,1, 1,2]
を指定します。
この関数は、指定したパラメータへの書き込みが不可な場合にhou.PermissionError例外を引き起こします。
この関数は、moves
引数のエントリーの数が偶数個でない、または、インデックスが無効な場合に説明文を含んだhou.Error例外を引き起こします。
isMultiParmInstance()
→ bool
このパラメータがmulti parmのインスタンスかどうか返します。例えば、add
SOP内のpt0x
, pt1x
, pt2x
などのパラメータがmultiparmのインスタンスです。
isMultiParmParent()
→ bool
このパラメータが親マルチパラメータ(例えば、インスタンスパラメータの数を示すパラメータ)であるかどうかを返します。
parentMultiParm()
→ hou.Parm
このパラメータがマルチパラメータインスタンスなら、親のマルチパラメータを、そうでないならNoneを返します。
multiParmInstanceIndices()
→ tuple of int
このパラメータがマルチパラメータインスタンスなら、マルチパラメータブロックとそのネストされたブロック内でパラメータが表示される場所のインデックスのタプルを返します。 外側のマルチパラメータブロックのインデックスが最初にリスト化されます。
例えば、このパラメータがマルチパラメータブロック内の4番目のインスタンスとして表示される場合は、(3,)が返されます。
他のサンプルとしては、このパラメータがマルチパラメータブロック内の3番目のインスタンスとして表示され、 そのブロック自体が外側のマルチパラメータブロックの1番目のインスタンスとして表示される場合は、(0, 2)が返されます。
multiParmInstances()
→ tuple
of hou.Parm
このパラメータがmultiparm用のインスタンスの数に該当すれば、このmultiparmのインスタンスすべてに相当するパラメータすべてを返します。
このパラメータがmultiparm用でない場合は空っぽのタプルを返します。
multiParmInstancesPerItem()
→ int
このパラメータがmultiparm用のインスタンスの数に該当すれば、インスタンスあたりのパラメータの数を返します。
このパラメータがmultiparm用でない場合は0を返します。
multiParmInstancesCount()
→ int
このパラメータがmultiparm用のインスタンスの数に該当すれば、インスタンスあたりのパラメータの数を返します。
このパラメータがmultiparm用でない場合は0を返します。
multiParmStartOffset()
→ int
このパラメータがmultiparm用のインスタンスの数に該当すれば、マルチパラメータ名を構築する時に使用される開始インデックスを返します。 デフォルト値は1です。
このパラメータがmultiparm用でない場合は0を返します。
メニュー ¶
isDynamicMenu()
→ bool
Houdiniソースコード内に定義された独自のロジックを使用してパラメータのメニューアイテムリストが指定されている場合はTrue
を返します。
パラメータのメニューアイテムがスクリプトまたはアイテムリストで指定されている場合、または、パラメータがメニューでない場合はFalse
を返します。
その他 ¶
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に読み込むサンプルです:
# ターゲットパラメータの参照を取得します。 p = hou.parm("/obj/geo1/tx") # asCodeを実行して、その出力されたスクリプトをファイルに書き出します。 script = p.asCode() f = open("set_parm_properties.py", "w") f.write(script) f.close() # スクリプトを実行します。これは、/obj/geo1のtxパラメータの値、フラグ値、他のプロパティを設定します。 # また、txパラメータの参照を'hou_parm'変数に格納します。 execfile("set_parm_properties.py")
以下は出力を関数に保存して、それをHoudiniでコールするサンプルです:
# ターゲットパラメータの参照を取得します。 p = hou.parm("/obj/geo1/tx") # asCodeを実行して、その関数定義をファイルに書き出します。 func = p.asCode(function_name="setParmProperties") f = open("parmlib.py", "w") f.write(func) f.close() # 関数定義をコールして、他のパラメータのプロパティを設定します。 import parmlib hou_parm = parmlib.setParmProperties(node.parm("ty"))
uiBackgroundColor()
→ hou.Color
パラメータダイアログ内でこのパラメータの状態を示す際に使用される背景色を返します。 UIがなければhou.NotAvailableを引き起こします。