出力引数の概要

 
 
 

出力引数は、割り当てオペレータを使って値を戻す手法の代案として、特定のスクリプト言語(VBScript など)やコンパイル言語(C++ など)で使用されます。 出力引数の利点の 1 つは、出力引数を使用する関数が複数の値を同時に戻すことができる点です。 ただし、JScript や PerlScript など一部の言語で出力引数をサポートしていなかったり、サポートしていても Softimage の一部の状況下に制限されている言語(Python など)があったりします。

Softimage では、一部のスクリプト コマンド(AddPropGetFCurveInfo、および SICreateImageClip)と一部のメソッド(NurbsSurface.EvaluateNormalizedPositionSIMatrix4.Get、および NurbsCurveList.Get)で出力引数を使用します。VBScript でこれらのコマンドまたはメソッドを使用する場合は、各出力引数のプレースホルダとして変数名で渡してから、残りのコード部で使用できます。

' This VBScript example illustrates how to use the AddProp
' command to add an annotation property to a null object.
Set oNull = GetPrim("Null")
AddProp "Annotation", oNull, , "MyAnnonation", oRtn

' You can use an output argument in VBScript to avoid
' using the implicit return argument collection.
SetValue oRtn & ".text", "Hello World"
InspectObj oRtn

ただし、他の言語では、動作が多少異なります。

出力引数が使用されるコマンド

すべてのシナリオでの各言語の動作の概要については、「各言語でサポートされている出力引数」を参照してください。 このセクションでは、出力引数をサポートしている(値は戻さない)コマンドを使用した各言語の作業について説明します。

スクリプト言語

他の戻り値が指定されていない限り、スクリプト コマンドは ISIVTCollection を戻します。 「コマンドおよびスクリプト リファレンス」のこのコマンドについて記載されている引数名をそのまま正確に使用してください(明記されていない限り、スペースは不要で、大文字と小文字は区別されます)。たとえば、SICreateImageClip コマンドでは、2 つの出力引数("FileName" と "Clip")を使用します。

ヒント:

Command オブジェクトと Argument オブジェクトを使用して、Softimage に引数の名前を問い合わせることもできます。ArgumentCollection のリファレンス ページの例を参照してください。

C#(.NET)

C# からコマンドを呼び出すには、XSIApplication.ExecuteCommand メソッドを使用する必要があります。出力引数は、汎用 C# オブジェクト内の ExecuteCommand メソッドから戻される Array にパック化されます。

C++ API

Application::ExecuteCommand 関数を使用する場合は、CValue オブジェクトを使用して入力引数配列を入力します。このコマンドが実行された後に、これらのオブジェクトを適切なクラスに変換することができます。「コマンドおよびスクリプト リファレンス」を調べて、各引数の順序と型を確認してください。詳細については、「出力引数を操作する」を参照してください。

出力引数を使用したメソッド

それぞれの言語が各シナリオでどのように機能するかについての概要は、「各言語でサポートされている出力引数」を参照してください。 ここでは、出力引数がサポートされているが、値は戻さないコマンドを使用した各言語の動作について説明します。

スクリプト言語

Python 以外のすべてのスクリプト言語は、出力引数を戻すメソッドを、出力引数を戻すコマンドと同じ方法で扱います。 Python は、複数の変数割り当て構文を使用している場合にのみ、メソッドの出力引数がサポートされる特殊な言語です(メソッドから出力引数を取得するを参照)。

C#(.NET)

出力引数は、C# で Softimage メソッドを使用している場合にサポートされますが、いくつかの特殊な制限が適用されます。 「オブジェクト モデル メソッドの呼び出し」を参照してください。

C++ API

出力引数は、C++ API でサポートされています。

リファレンスからの出力引数の識別

Softimage では、一部のスクリプト コマンド(AddPropGetFCurveInfo、および SICreateImageClip)と一部のメソッド(NurbsSurface.EvaluateNormalizedPositionSIMatrix4.Get、および NurbsCurveList.Get)で出力引数を使用します。

たとえば、PickObject コマンドでは、"PickedElement"、"ButtonPressed"、および "ModifierPressed"の 3 つの出力引数を使用します。

注:

特定の出力引数の名前を取得するには、「コマンドおよびスクリプト リファレンス」を確認してください。各パラメータの名前は、パラメータ一覧のパラメータ列に記載されています。 出力引数にはすべて、次のように名前の後に[out]と表示されます。