InspectObj

InspectObj

導入

v1.0

詳細

プロパティ エディタにオブジェクトをロードします。 これにより、ユーザはオブジェクトのパラメータをインタラクティブに参照および編集できます。 Mode パラメータに siModal モードを使用することで、ユーザとやり取りができます(ダイアログ ボックスのように)。以下の最初の例に示します。

プロパティ ページには、一度に複数のオブジェクトを表示できます。 オブジェクトのタイプが異なる場合には、順々に表示されます。 たとえば、球を調べる際には X3DObject、プリミティブ、オペレータがこの順で表示されます。 一方、同じタイプのオブジェクトの場合には、「マルチ」モードで表示されます。 このモードは、多数のオブジェクトのパラメータを同時に変更する際に便利です。 以下の例は、両方の場合を扱っています。

通常、あるオブジェクトを調べると、そのオブジェクトにネストされているオブジェクトも同じフレームで検査されます。 キーワードのリストを使用して、ネストされたオブジェクトの検査対象を制限することができます。 たとえば、Keyword パラメータに siAnimationKeyword を指定すると、Animation プロパティのセットのみを表示することができます。

スクリプト構文

oReturn = InspectObj( [InputObjs], [Keywords], [Title], [Mode], [Throw] );

戻り値

コマンドがキャンセルされ、Throw 引数が False に設定されている場合には True を戻します。 コマンドがキャンセルされ、Throw 引数が指定されていない(または True に設定されている)場合には、コマンドはエラーを発行します。 それ以外の場合には False を戻します。

パラメータ

パラメータ タイプ 説明
InputObjs 文字列 調べるオブジェクトのリスト

デフォルト値: 現在選択されている値注: 選択されている値に複数のオブジェクトが含まれている場合は、最初のオブジェクトのみが表示されます。

Keywords Keywords 指定のオブジェクトに対して、表示するプロパティ セット(Animation、Hair、IK、Deform など)を指定します。

デフォルト値:""(現在のマーキングを消去)

Title 文字列 プロパティ エディタ ダイアログのタイトル。 注: ModeパラメータにsiModeを使用する場合、ここで使用するタイトルは、プロパティエディタにのみ表示されます。

デフォルト値:入力オブジェクトの名前から作成されます。

Mode siInspectMode ダイアログがロック、リサイクル、フォーカス、モーダルであるかどうかを指定します。

デフォルト値: siRecycle

Throw Boolean コマンドがキャンセルされたときにエラーを発行する場合には True。

注: この引数が False に設定され、ユーザがコマンドをキャンセルすると、コマンドはエラーを発行せずに True を戻します。

デフォルト値: True

1. VBScript の例

'

' In modal mode, a property editor has Ok and Cancel buttons.

' Here's how to open a modal property editor

'

NewScene , false

On Error Resume Next

InspectObj "Light",,"Inspecting Light", siModal

' Check if user clicked Ok

if Err.Number = 0 then

	LogMessage "User has pressed OK in the modal property editor"

else

	LogMessage "User has pressed CANCEL in the modal property editor"

end if

' Open a property editor and lock it

InspectObj "Camera",,, siLock

LogMessage "User has opened a property editor and has locked it"

2. VBScript の例

'

'	This example demonstrates how you can inspect multiple objects on the same Property Page

'

NewScene , false

SelectObj "Scene_Root"

CreatePrim "Sphere", "MeshSurface"

'Add a custom property set and a bend operator

SIAddCustomParameter "sphere", "Param", siDouble, 0, 0, 1, , 5, 0, 1

ApplyOp "Bend", "sphere", 3, siPersistentOperation

set myPPGList = CreateObject("XSI.Collection")

myPPGList.Add "sphere.CustomPSet"

myPPGList.Add "sphere.polymsh.bendop"

'The property page will show both the custom property set and 

'the bend operation.

InspectObj myPPGList

3. VBScript の例

'

'	The following uses InspectObj to inspect several properties 

'	in a multi-edit fashion

'

NewScene , false

CreatePrim "Sphere", "MeshSurface"

CreatePrim "Cylinder", "MeshSurface"

SelectObj "cylinder.kine.global,sphere.kine.global"

InspectObj 

LogMessage "The global kinestate of both the sphere and the cylinder"

LogMessage "are inspected together in a bulk-edit fashion"

4. VBScript の例

' Set up a sphere

NewScene ,False

set oSphere = CreatePrim( "Sphere", "MeshSurface" )

' Open a general property editor 

InspectObj , siGeneralKeyword

' Set up a deform on the sphere 

ApplyOp "Bulge", oSphere, 3, siPersistentOperation

' Open the Deform property editor for the sphere

InspectObj , siDeformKeyword

' Add some animation

SaveKey oSphere.active

SetValue "PlayControl.Key", 65

SetValue "PlayControl.Current", 65

Translate , 3.9582518712148, 3.40954109797705, -0.340954109797705, siRelative, siView, siObj, siXYZ

SaveKey oSphere.active 

' Open the Animation property editor for the sphere

InspectObj , siAnimationKeyword

5. VBScript の例

'

'	Another example demonstrating inspecting objects in multi-edit mode.

'

NewScene , false

SelectObj "Scene_Root"

set oSphere1 = CreatePrim( "Sphere", "MeshSurface", "FirstSphere")

set oSphere2 = CreatePrim( "Sphere", "MeshSurface", "SecondSphere")

set myPPGList = CreateObject("XSI.Collection")

myPPGList.Add oSphere1.Primitives(1)

myPPGList.Add oSphere2.Primitives(1)

'The property page will show just a single Radius control

'that will control both spheres

InspectObj myPPGList, "Primitive"

6. JScript の例

/*

	This example shows how to create a temporary instance of the Self-Installed 

	Custom Property called "CustomColor".

*/

var oColor = XSIFactory.CreateObject( "CustomColor" )

bCancelled = InspectObj( oColor,null,"Pick your favorite color",siModal,false ) ;

if ( !bCancelled )

{

	LogMessage( "You picked " + oColor.Color_R.Value + "," + oColor.Color_G.Value + "," + oColor.Color_B.Value ) ;

}

7. JScript の例

/*

	This example demonstrates the use of the Throw argument.

	When you run this script, make sure you close the dialog using 

	the X (close) button on the top right or the Cancel button in

	the main body of the dialog.

*/

// Set up a quick dialog in a property page

NewScene( null, false );

var pset = SetUpPSet();

// Canceling here returns 'true'

var rtn1 = InspectObj( pset, "", "Throw = FALSE", siModal, false );

LogMessage( "Value returned: " + rtn1 );

// Canceling here throws an error.

try

{

	var rtn2 = InspectObj( pset, "", "Throw = TRUE", siModal );

	// This line is never executed if the user presses cancel

	LogMessage( "Value returned: " + rtn2 );

}

catch(e)

{

	LogMessage( "User cancelled" );

}

// This is a convenience function that sets up the property page apart

// from the main demo

function SetUpPSet( )

{

	// Create the underlying pset

	var prop = XSIFactory.CreateObject("CustomProperty");

	prop.Name = "Jetsam" ;

	prop.AddParameter3( "SelectOne", siFloat, 0 );

	// Set up its appearance

	var pout = prop.PPGLayout;

	var avals = new Array(

		"One",		1,

		"Two",		2,

		"Three",	3,

		"Four",		4,

		"Five",		5

	);

	pout.AddEnumControl( "SelectOne", avals, "", siControlCombo );

	// Return the property set

	return prop;

}

関連項目

PPG PPGLayout