文字列式とオブジェクト ポインタの間の不要な変換を回避する

 
 
 

文字列式は、シーン項目を識別する方法としてスクリプト コマンドで使用される場合がほとんどです。一方、オブジェクト ポインタは、オブジェクト モデルに優先的に使用されるタイプの変数です。

	' Get a pointer to the camera
	set c = ActiveSceneRoot.FindChild( "Camera" )

	' We can save the name of the object as a string in different ways
	' 	Object -> String Expression
	s1 = GetValue( c )
	s2 = c.Name

	' As can converting the object's name to an object pointer 
	' 	String Expression -> Object
	set o1 = GetValue( s1 )
	set o2 = Dictionary.GetObject( s2 )

	LogMessage "c = " & TypeName(c)
	LogMessage "s1 = " & TypeName(s1)
	LogMessage "s2 = " & TypeName(s2)
	LogMessage "o1 = " & TypeName(o1)
	LogMessage "o2 = " & TypeName(o2)

	'INFO : c = Camera
	'INFO : s1 = String
	'INFO : s2 = String
	'INFO : o1 = Camera
	'INFO : o2 = Camera

文字列式とオブジェクト ポインタの間の変換は、Softimage SDK では簡単に実行できますが、パフォーマンスが低下することがあり、一般的に必要な処理ではありません。 たとえば、入力として文字列式を取るスクリプト コマンドを使用してシーン エレメントを識別したい場合は、オブジェクト ポインタを文字列に変換する必要はありません。ほとんどの単純なオブジェクト上の既定プロパティは Name (SIObject) * プロパティであるため、オブジェクト ポインタをコマンドに渡せばよいのです。