式 コントローラ
3ds Max 8 以降 の 式コントローラは、以下に説明されている IExprCtrl インタフェースを介して MAXScript に完全に公開されています。
3ds Max 8 より前のバージョンでは、式コントローラでアクセスできるプロパティまたはメソッドはありませんでした。
使用できる式コントローラは次のとおりです。
Float_Expression : FloatController
Point3_Expression : Point3Controller
Position_Expression : PositionController
Scale_Expression : ScaleController
プロパティ:
<expression_controller>.ThrowOnError Bool default:true
式でエラーが発生したときに放棄するかどうかをコントロールします。
インタフェース:
3ds Max 8 以降、すべての式コントローラによって IExprCtrl インタフェースが公開されます。このインタフェースでは、MAXScript でコントローラにアクセスするためのすべてのメソッドが提供されます。
IExprCtrl - Expression Controller Interface
メソッド:
<boolean>SetExpression <&TSTR>Expression
Expression is In parameter
参照によって渡される文字列に式文字列を設定します。成功した場合は true を返し、成功しなかった場合は false を返します。
<TSTR by value>GetExpression ()
式文字列を返します。
コントローラで定義されているスカラーの数を返します。
コントローラで定義されているベクトルの数を返します。
<boolean>AddScalarTarget <&TSTR>Name <value>Target Offset:<time> Owner:<maxObject>
Name is In parameter
Offset default value: 0f
Owner default value: undefined
スカラー ターゲットを追加します。最初の引数はスカラーの名前です。2 番目の引数は、スカラーに接続するターゲットです。
<boolean>AddVectorTarget <&TSTR>Name <value>Target Offset:<time> Owner:<maxObject>
Name is In parameter
Offset default value: 0f
Owner default value: undefined
ベクトル ターゲットを追加します。最初の引数はベクトルの名前です。2 番目の引数は、ベクトルに接続するターゲットです。
<boolean>AddVectorNode <&TSTR>Name <node>Node Offset:<time>
Name is In parameter
Offset default value: 0f
ベクトル ノードを追加します。最初の引数はベクトルの名前です。2 番目の引数は、ベクトルに接続するノードです。
<boolean>AddScalarConstant <&TSTR>Name <float>Constant
Name is In parameter
スカラー定数を追加します。最初の引数はベクトルの名前です。2 番目の引数は、スカラーに割り当てる定数値です。
<boolean>AddVectorConstant <&TSTR>Name <point3>Constant
Name is In parameter
ベクトル定数を追加します。最初の引数はベクトルの名前です。2 番目の引数は、ベクトルに割り当てる定数値です。
<boolean>SetScalarTarget <value>Which <value>Target:<maxObject>
Owner default value: undefined
特定スカラー変数のターゲットを設定します。成功した場合は true を返し、成功しなかった場合は false を返します。ターゲットが複数のオブジェクトでインスタンス化されている場合は、オプションの
Owner パラメータを指定してターゲット トラックの所有者を指定できます。
<boolean>SetVectorTarget <value>Which <value>Target Owner:<maxObject>
Owner default value: undefined
特定ベクトル変数のターゲットを設定します。成功した場合は true を返し、成功しなかった場合は false を返します。ターゲットが複数のオブジェクトでインスタンス化されている場合は、オプションの
Owner パラメータを指定してターゲット トラックの所有者を指定できます。
<boolean>SetVectorNode <value>Which <node>Node
特定ベクトル変数のノードを設定します。成功した場合は true を返し、成功しなかった場合は false を返します。
<boolean>SetScalarConstant <value>Which <float>Constant
指定した定数値に特定スカラー変数の値を設定します。成功した場合は true を返し、成功しなかった場合は false を返します。
<boolean>SetVectorConstant <value>Which <point3>Constant
指定した定数値に特定ベクトル変数の値を設定します。成功した場合は true を返し、成功しなかった場合は false を返します。
<boolean>DeleteVariable <&TSTR>Name
Name is In parameter
指定された名前を持つ変数を削除します。指定された名前を持つ変数を削除します。
<TSTR by value>GetDescription ()
コントローラの説明文字列を返します。
<boolean>SetDescription <&TSTR>Description
Description is In parameter
指定した参照文字列引数にコントローラの説明文字列を設定します。
<time>GetOffset <&TSTR>Name
Name is In parameter
特定変数のオフセットを返します。
<boolean>SetOffset <&TSTR>Name <time>Offset
Name is In parameter
指定した時間値に特定変数のオフセットを設定します。
コントローラを更新します。
<boolean>VariableExists <&TSTR>Name
Name is In parameter
指定した変数が存在する場合は true、存在しない場合は false を返します。
<float>GetScalarConstant <value>Which
特定スカラー定数の値を返します。
<value>GetScalarTarget <value>Which asController:<boolean>
asController default value: false
特定スカラー変数のターゲットを返します。オプションの asController パラメータを true に設定すると、結果はコントローラ値になります。
<point3 by value>GetVectorConstant <value>Which
特定ベクトル定数の値を返します
<value>GetVectorTarget <value>Which asController:<boolean>
asController default value: false
特定ベクトル変数のターゲットを返します。オプションの asController パラメータを true に設定すると、結果はコントローラ値になります。
<node>GetVectorNode <value>Which
特定ベクトル変数のノードを返します。
<float>GetScalarValue <value>Which
特定スカラー変数の値を返します。
<point3 by value>GetVectorValue <value>Which
特定ベクトル変数の値を返します。
<fpvalue>GetValue <&TSTR>Name
Name is In parameter
指定した変数の値を返します。
<enum>GetScalarType <value>Which
GetScalarType enums: {#unknown | #scalarTarget | #scalarConstant | #vectorTarget | #vectorConstant | #vectorNode}
特定スカラー変数のタイプを返します。
<enum>GetVectorType <value>Which
GetVectorType enums: {#unknown | #scalarTarget | #scalarConstant | #vectorTarget | #vectorConstant | #vectorNode}
特定ベクトル変数のタイプを返します。
<enum>GetValueType <&TSTR>Name
GetValueType enums: {#unknown | #scalarTarget | #scalarConstant | #vectorTarget | #vectorConstant | #vectorNode}
name は In パラメータです。
特定変数の値のタイプを返します。
<TSTR by value>GetScalarName <index>Index
そのインデックスが付いたスカラー変数の名前を返します。
<TSTR by value>GetVectorName <index>Index
そのインデックスが付いたベクトル変数の名前を返します。
<index>GetScalarIndex <&TSTR>Name
Name is In parameter
指定したスカラー変数のインデックスを返します。
<index>GetVectorIndex <&TSTR>Name
Name is In parameter
指定したベクトル変数のインデックスを返します。
<TSTR by value>PrintDetails ()
説明文字列、式コード、スカラーとベクトルの詳細など、式コントローラの情報を出力します。
注:
- 変数の既存の値を変更するには、 AddScalarTarget()、 AddVectorTarget()、 AddVectorNode()、 AddScalarConstant()、 または AddVectorConstant() の適切なメソッドを使用することもできます。これらのメソッドを使用すると、オフセット値を設定することもできます。
- 変数のタイプ (スカラーかベクトル) を変更することはできません。変数を削除して新しいタイプで追加する必要があります。
- AddScalarTarget()、 AddVectorTarget() 、および AddVectorNode() の「r ;<value> Target」引数は、コントローラか subAnim 値のどちらかにすることができます。コントローラにすると、メソッドは、Owner 値を指定した場合はその下でコントローラを検索し、Owner
値を指定しない場合は最初に見付かった所有者を使用します。
- 引数「r: <value>Which」を取るメソッドの場合、Which の値は整数インデックスまたは文字列名にすることができます。
- 式コントローラ変数の名前では、大文字と小文字が区別されます。
- すべての関数公開システムの操作では取り消しとやり直しがサポートされます。
- 式コントローラの式は、 SetExpression() および Update() の呼び出しのみによって評価されます。
注:
[MAXScript デバッガ](MAXScript Debugger)ウィンドウ、関数公開システムで変数値を取得すること、式コントローラを評価することには一貫性がありません。
- [デバッガ](Debugger)ダイアログ ボックスで作業する場合、変数値は現在のスライダの時間に基づいて表示されます。
- 関数公開システムでアクセスする場合、返される変数値は現在の MXS 時間に基づきます。
- コントローラを評価する場合、結果は現在の時間値に基づきますが、コントローラの範囲、コントローラ用に設定された範囲外のタイプ、コントローラに適用されているイーズ カーブにも基づきます。
つまり、「NT」では[デバッガ](Debugger)ダイアログ ボックスに 1 つの値が表示されますが、評価におけるその値は異なることがあります。