SIGetPrimSpotLight

詳細

スポット ライトのプリミティブを作成します。

注: このコマンドは、出力引数を使用します。C# および一部のスクリプト言語(JScript、PerlScript、Python など)は、リファレンスによって渡される引数をサポートしていません。このため、状況に応じた適切な回避策を実行する必要があります。

スクリプト言語の場合、このコマンドは出力引数を取得するために使用できる ISIVTCollection を戻します。

C# の場合は、XSIApplication.ExecuteCommand メソッドを使用してこのコマンドを呼び出すことができます。ExecuteCommand は、出力引数を C# の System.Object (出力引数の Array を含む)にパック化します(詳細については、「C# からのコマンドの呼び出し」を参照)。

スクリプト構文

SIGetPrimSpotLight( PresetObj, [Name], [InterestName], [Parent], [3DObjSpot], [3DObjSpotInterest], [PrimObjSpot], [PrimObjSpotInterest] );

パラメータ

パラメータ タイプ 説明
PresetObj 文字列 スポット ライトのプリセット(「ライト プリミティブ」を参照)。

指定可能な値:

説明:

Spot スポット プリセット
Name 文字列 ライトの名前
InterestName 文字列 注視点の名前
Parent 文字列 ライトの親オブジェクト
3DObjSpot ライト スポット ライト オブジェクトを戻します。
3DObjSpotInterest Null スポットの注視点を戻します。
PrimObjSpot Primitive スポット ライト プリミティブを戻します。
PrimObjSpotInterest Primitive 注視点のプリミティブを戻します。

JScript の例

/*

	This example demonstrates how to retrieve the output arguments through 

	the returned ISIVTCollection, by using their name with the Value property.

*/

NewScene( null, false );

// Get the output arguments via the ISIVTCollection

var rtn = SIGetPrimSpotLight( "Spot.Preset", "MySpotName", "MySpotInterestName" );

// With the ISIVTCollection, you can either get the items by index number using the Item

// property, or by output argument name by using the Value property, which is much clearer

// and faster to use

var o3DObjSpot = rtn.Value("3DObjSpot");

var o3DObjSpotInterest = rtn.Value("3DObjSpotInterest");

var oPrimObjSpot = rtn.Value("PrimObjSpot");

var oPrimObjSpotInterest = rtn.Value("PrimObjSpotInterest");

// For each object, find out its name and class, if possible

WhatAmI( o3DObjSpot );		//INFO : MySpotName is a Light

WhatAmI( o3DObjSpotInterest );	//INFO : MySpotInterestName is a Null

WhatAmI( oPrimObjSpot );		//INFO : MySpotName.light is a Primitive

WhatAmI( oPrimObjSpotInterest );	//INFO : MySpotInterestName.SpotInterest is a Primitive

// Convenience function

function WhatAmI( in_obj ) 

{

	// To prevent crashes, use the try...catch statement, because using ClassName 

	// on a simple data type (string, number, etc.) will throw an error

	try {

		LogMessage( in_obj + " is a " + ClassName(in_obj) );

	} catch (e) {

		LogMessage( "input object is a " + typeof(in_obj) );

	}

}

関連項目

GetPrimLight SIGetPrimLight