On this page |
MaxScript ¶
Houdini Engine for 3ds Maxプラグインは、MaxScriptによる基本的なスクリプト機能に対応しています。 スクリプト機能を使用すると、HDAの作成、パラメータ値の変更、HDAのクックができます。
MaxScript関数 ¶
メソッド |
成功した場合の戻り値 |
失敗した場合の戻り値 |
説明 |
---|---|---|---|
|
True |
False |
これは、プロセス外のHARS Thrift名前付きパイプシンクライアントを起動し、そのシンクライアントを使用してセッションを作成します。 |
|
True |
アクティブなセッションがある場合、そのセッションを終了します。 |
|
|
Bool(True/False) |
このメソッドは、Houdini Engineセッションがアクティブの場合はTrueを返し、そうでない場合はFalseを返します。 |
|
|
Bool(True/False) |
このメソッドはHDAがロードされているかどうかをチェックし、ロードされている場合はTrueを返し、そうでない場合はFalseを返します。HDAはファイルパスで識別されます。 |
|
|
True |
False |
これはHDAをロードします。アセットが正常にロードされたらTrueを返し、そうでない場合はFalseを返します。 |
|
INode |
未定義 |
指定したアセット(デフォルトでは0)を使用して、指定したHDAからシーン内にジオメトリオブジェクトHDAを作成します。成功すると、トップレベルのコンテナINode(ダミーオブジェクトを含む)を返します。失敗すると、未定義の値を返します。 |
|
True |
False |
指定したアセット(デフォルトでは0)を使用して、指定したHDAから指定したノード上にモディファイアHDAを作成します。成功すると、作成されたモディファイアを返します。失敗すると、未定義の値を返します。 |
|
True |
False |
ジオメトリHDAをクックします。このメソッドには、ジオメトリHDAのコンテナノード(ダミーオブジェクトを含むINode)を渡す必要があります。 |
|
True |
False |
モディファイアHDAをクックします。このメソッドには、クックするHDAを特定するために、INodeとモディファイアを渡す必要があります。 |
|
True |
ジオメトリHDAのコンテナノードが渡された場合、このメソッドはシーンから完全にHDAを削除します。HDAが見つからない場合、このメソッドはRuntimeError例外を投げます。 |
|
|
True |
モディファイアHDAとそれが属するノードが渡された場合、このメソッドはノードのモディファイアスタックからHDAを削除します。HDAが見つからない場合、このメソッドはRuntimeError例外を投げます。 |
|
|
Array <MAXNode> |
シーン内のすべてのジオメトリHDAのコンテナノードのリストを返します。 |
|
|
Name |
ジオメトリHDAのコンテナノードが渡された場合、このメソッドはHDAタイプを返します。HDAが見つからない場合、このメソッドはRuntimeError例外を投げます。 |
|
|
Name |
モディファイアHDAとそれが属するノードが渡された場合、このメソッドはHDAタイプを返します。HDAが見つからない場合、このメソッドはRuntimeError例外を投げます。 |
|
|
float, integer, string, MAXNode |
False |
このメソッドは、ジオメトリHDAからパラメータの値を取得します。インデックス引数で、取得する値のタプルインデックスを指定する必要があります。このメソッドはパラメータのタイプに応じて、float値、integer値、string値、またはMAXNode値を返します。 |
|
float, integer, string, MAXNode |
||
|
True |
False |
この関数は、ノード名とパラメータ名で指定したジオメトリHDAのパラメータを更新します。ListOfValuesで、パラメータの値を指定します。このリストで指定した値は、すべて同じタイプでなければなりません(位置パラメータに3つのfloat値など)。このメソッドは、成功するとTrueを返し、何か問題が発生して処理が失敗するとFalseを返します。 |
|
True |
False |
この関数は、ノード名、モディファイア名、パラメータ名で指定したモディファイアHDAのパラメータを更新します。ListOfValuesで、パラメータの値を指定します。このリストで指定した値は、すべて同じタイプでなければなりません(回転パラメータに3つのfloat値など)。このメソッドは、成功するとTrueを返し、何か問題が発生して処理が失敗するとFalseを返します。 |
|
INode |
未定義 |
このメソッドはジオメトリHDAをベイクします。このメソッドには、ジオメトリHDAのコンテナノード(ダミーオブジェクトを含むINode)を渡す必要があります。成功すると、ベイクされたジオメトリのコンテナノード(ダミーオブジェクトを含むノード)を返します。失敗すると、未定義の値を返します。 |
|
モディファイア |
未定義 |
モディファイアHDAとそのすべてのパラメータ値を別のノードにコピーします。成功すると、作成されたモディファイアを返します。失敗すると、未定義の値を返します。 |
|
INode |
未定義 |
指定したオブジェクトHDAおよびそのすべてのパラメータ値のクローンを作成します。この関数に渡されるINodeは、子ノードではなく、オブジェクトHDAのトップレベルのノードでなければなりません。成功すると、クローンを作成されたオブジェクトHDAのトップレベルのコンテナINode(ダミーオブジェクトを含む)を返します。失敗すると、未定義の値を返します。 |
|
Array <Name> |
未定義 |
これは、ジオメトリHDAのすべのパラメータ名のリストを返します。この関数には、HDAのトップレベルのコンテナノード(ダミーオブジェクトを含むINode)を渡す必要があります。成功すると、HDAのパラメータ名の配列を返します。失敗すると、未定義の値を返します。 |
|
Array <Name> |
未定義 |
これは、モディファイアHDAのすべのパラメータ名のリストを返します。この関数には、HDAを識別するためのINodeとモディファイアを渡す必要があります。成功すると、HDAのパラメータ名の配列を返します。失敗すると、未定義の値を返します。 |
|
True |
False |
このメソッドでは、ジオメトリHDAにサブネットワーク入力を設定できます。1つ目の引数には、ジオメトリHDAのコンテナノード(ダミーオブジェクトを含むINode)を指定します。2つ目の引数には、サブネットワークのインデックス(0ベース)を指定します。3つ目の引数には、入力として使用するジオメトリのINodeを指定します。INodeではなく未定の値が渡された場合、このメソッドは入力を削除します。 |
|
True |
False |
このメソッドでは、モディファイアHDAにサブネットワーク入力を設定できます。1つ目の引数には、モディファイアのINodeを指定し、2つ目の引数にはモディファイアそのものを指定します。3つ目の引数には、サブネットワークのインデックス(0ベース)を指定します。4つ目の引数には、入力として使用するジオメトリのINodeを指定します。INodeではなく未定の値が渡された場合、このメソッドは入力を削除します。 |
|
True |
False |
このメソッドでは、ジオメトリHDAにオペレータパスパラメータ入力を設定できます。1つ目の引数には、ジオメトリHDAのコンテナノード(ダミーオブジェクトを含むINode)を指定します。2つ目の引数には、オペレータパスパラメータの名前を指定します。3つ目の引数には、入力として使用するジオメトリのINodeを指定します。INodeではなく未定の値が渡された場合、このメソッドは入力を削除します。 |
|
True |
False |
このメソッドでは、モディファイアHDAにオペレータパスパラメータ入力を設定できます。1つ目の引数には、モディファイアのINodeを指定し、2つ目の引数にはモディファイアそのものを指定します。3つ目の引数には、オペレータパスパラメータの名前を指定します。4つ目の引数には、入力として使用するジオメトリのINodeを指定します。INodeではなく未定の値が渡された場合、このメソッドは入力を削除します。 |
|
True |
False |
ジオメトリHDAの自動再クックが有効がどうかを設定します。自動再クックが有効な場合、パラメータ値が変更されるたびにノードが自動的にクックします。 |
|
True |
False |
モディファイアHDAの自動再クックが有効がどうかを設定します。自動再クックが有効な場合、パラメータ値が変更されるたびにノードが自動的にクックします。 |
|
True |
Trueが渡され、HDAが選択されている場合、パラメータユーザインターフェースを現在のHDA選択にロックします。Falseが渡された場合、パラメータユーザインターフェースの選択をロック解除します。 |
|
|
String, Boolean, Integer |
False |
Houdini Engineオプションの値を取得します。渡される名前は、ここにリストされた設定のいずれかでなければなりません。このメソッドは、オプションのタイプに応じてstring値、boolean値、またはinteger値を返します。 |
|
True |
このメソッドは、Houdini Engineオプションを設定します。渡される名前は、ここにリストされた設定のいずれかでなければなりません。2つ目の引数には、オプションのタイプに合わせてstring値、boolean値、またはinteger値を指定します。 |
|
|
Array <String> |
Houdiniバージョン(メジャー、マイナー、ビルド番号)を含む配列を返します。 |
サンプル ¶
floatパラメータおよびfloatベクトルパラメータを設定する ¶
LoadHda "C:/Assets/sample.hda" myHda = CreateGeometryHda "C:/Assets/sample.hda" SetGeometryHdaParameter myHda "singlefloat" 5.5 SetGeometryHdaParameter myHda "floatvec" 2.2 3.3 4.4
integerパラメータおよびintegerベクトルパラメータを設定する ¶
LoadHda "C:/Assets/sample.hda" myHda = CreateGeometryHda "C:/Assets/sample.hda" SetGeometryHdaParameter myHda "singleinteger" 2 SetGeometryHdaParameter myHda "integervec" 3 4 5
stringパラメータを設定する ¶
LoadHda "C:/Assets/sample.hda" myHda = CreateGeometryHda "C:/Assets/sample.hda" SetGeometryHdaParameter myHda "singlestring" "Hello, world!"
モディファイアおよびジオメトリHDAを作成し、integerパラメータを設定して、HDAをクックする ¶
CreateModifierHda $Teapot001 "C:/Program Files/Autodesk/3ds Max 2018/Plugins/MountainModifierHDA.hda" 0 SetModifierHdaParameter $Teapot001 $Teapot001.MountainModifier "height" 5 CreateGeometryHda "C:/Program Files/Autodesk/3ds Max 2018/Plugins/SideFX_spaceship.otl" 0 SetGeometryHdaParameter $spaceship1 "smoothness" 1 CookHda $Teapot001 $Teapot001.MountainModifier CookHda $spaceship1
セッションを作成し、ジオメトリHDAを作成して、HDAをベイクする ¶
CreateSession() LoadHda "C:/Assets/spaceship.hda" geoHda = CreateGeometryHda "C:/Assets/spaceship.hda" BakeHda geoHda
HDAの入力を設定する ¶
mountainHda = CreateGeometryHda "C:/Assets/mountain.hda" SetGeometryHdaInput mountainHda 0 $Teapot001
オペレータパスパラメータを設定する ¶
booleanHda = CreateModifierHda $Sphere001 "C:/Assets/boolean.hda" SetModifierHdaOpParmInput $Sphere001 booleanHda "objpath1" $Box001
マルチパラメータの長さを設定し、インスタンスパラメータ値を設定する ¶
myHda = CreateGeometryHda "C:/Assets/multiparm_test.hda" SetGeometryHdaParameter myHda "integer_list" 3 SetGeometryHdaParameter myHda "my_int_parm_1" 1 SetGeometryHdaParameter myHda "my_int_parm_2" 2 SetGeometryHdaParameter myHda "my_int_parm_3" 3
Python ¶
MaxScriptはPythonスクリプトから実行できるため、プラグインのMaxScript APIもPython経由で使用することができます。PythonスクリプトからMaxScript関数を実行する方法の例を以下に示します。
import MaxPlus MaxPlus.Core.EvalMAXScript("CreateGeometryHda #'C:/Program Files/Autodesk/3ds Max 2018/Plugins/SideFX_spaceship.otl' 0")