lvar(name)
→ float or string
ほとんどのノードのアルゴリズムは、一連のポイント(またはプリミティブや頂点。サンプルではポイントを使用しています)に対して反復を伴います。 それらのノードは、ポイント毎にパラメータを評価し、そのパラメータ内のエクスプレッションからアクセス可能な変数に、そのポイント固有の値を設定します。 例えば、TX変数は現行ポイントの位置のX値を評価するために設定されます。 それらの変数は、ノードのパラメータ内のエクスプレッションにのみ存在するので、ローカル変数と呼ばれています。
HScriptエクスプレッション言語では、グローバル変数を評価する方法と同様に$を使用することでローカル変数を評価することができます。
Pythonでは、lvar関数を使用します。つまり、Pythonで$TX
に相当するものはlvar("TX")
です。
Tip
パラメータエクスプレッション内では、lvar関数をコールするのにhou.
接頭辞を外すことができます。
その理由は、エクスプレッションを評価する時に、Houdiniが暗黙的にfrom hou import *
を実行しているからです。
パラメータエクスプレッション外からこの関数をコールすると、hou.NotAvailableを引き起こします。 無効な変数名でこの関数をコールすると、hou.OperationFailedを引き起こします。 この関数を使用してHoudiniのグローバル変数を評価することはできません。代わりにhou.expandString()を使用してください。
hou.SopNode.curPointと、hou.SopNodeのクラスの同様のメソッドは、ノードが反復している現行ポイントを返します。 そのポイントを使用することで、アトリビュートなどを評価して、ローカル変数と同様のことを実行することができます。 また、ローカル変数でアクセスできない情報にもアクセスすることができます。
See also |