Object Hierarchy | 関連する C++クラス:ProxyParameter








Proxy パラメータは、シーン内の他の場所にある他のパラメータのクローンとして機能します。シーン Explorer ではプロキシパラメータがイタリック体で表示されるため、識別できます。プロキシパラメータは、CustomProperty.AddProxyParameter を呼び出して、作成します。プロキシパラメータは、元のパラメータと同じ範囲とUI範囲を所有します。EditParameterDefinition を呼び出して、新しいUI範囲を指定することが可能ですが、実際の範囲は変更できません。


AddCustomOp AddExpression AddFCurve AddFCurve2
AddScriptedOp AddScriptedOpFromFile AnimatedParameters Connect
ConnectFromFile ConnectFromFile2 ConnectFromPreset ConnectFromPreset2
ConnectFromProgID ConnectFromProgID2 Disconnect Enableオペレータ
GetInstanceValue GetValue2オペレータ IsAnimated IsClassOfオペレータ
IsEqualToオペレータ IsLockedオペレータ IsSupportedInstanceValue PutValue2オペレータ
SetCapabilityFlagオペレータ SetInstanceValue SetLock Showオペレータ


Animatableオペレータ Application Capabilitiesオペレータ Categories
Defaultオペレータ Descriptionオペレータ FullNameオペレータ HasInstanceValue
Help Keyableオペレータ LockLevelオペレータ LockTypeオペレータ
Marked MasterParameterオペレータ Maxオペレータ Minオペレータ
Model Nameオペレータ NestedObjects Origin
OriginPath OriginalValueオペレータ OverridenObject OverridingObject
Parametersオペレータ Parent Parent3DObject ReadOnlyオペレータ
ScriptNameオペレータ Source Sources SuggestedMaxオペレータ
SuggestedMinオペレータ Tagsオペレータ Typeオペレータ Valueオペレータ

VBScript の例


' Proxy Parameters are a useful way to centralize parameters from

' different objects on the same property, or even to build a simplified

' version of a property page.


' This example demonstrates creation of a custom property set

' that only shows a few items of the Shader that it controls,

' but maintains a pleasing layout.


g_Logic = _

"sub Enable_OnChanged()" & vbCrLf & _

"   bEnable = PPG.Enable.Value" & vbCrLf & _

"	'To disable the color control we just disable the proxy" & vbCrLf & _

"	' parameter representing the ""red"" component" & vbCrLf & _

"	PPG.Ambient.Enable bEnable " & vbCrLf & _

"	PPG.Diffuse.Enable bEnable " & vbCrLf & _

"end sub" & vbCrLf

NewScene , false 

set oSphere = ActiveSceneRoot.AddGeometry( "Sphere", "MeshSurface" )

oSphere.AddMaterial "Phong"  

set oPhongShader = oSphere.Material.Shaders(0)

' This is a Boolean for enabling diffuse

set oDiffuseEnable = oPhongShader.Parameters( "diffuse_inuse" )

' These are CompoundParameters, each with R,G,B sub-parameters

set oAmbientParam = oPhongShader.Parameters( "ambient" )

set oDiffuseParam = oPhongShader.Parameters( "diffuse" )

set oCustomProperty = oSphere.AddProperty("CustomProperty",false,"Proxies") 

' We specify a name to avoid having a long one like "sphere_Material_Phong_diffuse_inuse"

oCustomProperty.AddProxyParameter oDiffuseEnable, "Enable", "Enable" 

oCustomProperty.AddProxyParameter oDiffuseParam.Parameters("red"), "Diffuse", "Diffuse" 

oCustomProperty.AddProxyParameter oDiffuseParam.Parameters("green")

oCustomProperty.AddProxyParameter oDiffuseParam.Parameters("blue")

oCustomProperty.AddProxyParameter oAmbientParam.Parameters("red"), "Ambient", "Ambient" 

oCustomProperty.AddProxyParameter oAmbientParam.Parameters("green")

oCustomProperty.AddProxyParameter oAmbientParam.Parameters("blue")

' If we inspect the object now we would see 6 separate sliders,

' each controlling a different component of the colors

' We can create a custom layout to clean up the display

set oLayout = oCustomProperty.PPGLayout

oLayout.AddGroup "Phong Diffuse" 

	oLayout.AddItem "Enable" 

	' Just for fun, show the ambient before the diffuse, which

	' is the opposite of the normal Phong Property Page

	oLayout.AddColor "Ambient", "Ambient", false 

	oLayout.AddColor "Diffuse", "Diffuse", false 


oLayout.Logic = g_Logic 

oLayout.Language = "VBScript"

' Show both dialogs.  You will see that both items

' are identical.

InspectObj oCustomProperty, , , siLock 

InspectObj oPhongShader, , , siLock