reactor コントローラは、ソフトウェアで他のコントローラによって加えられた変更に対応して機能する手続き型コントローラです。
サポートされている reactor コントローラは、位置 reactor、回転 reactor、Point3 reactor、スケール reactor、およびフロート reactor の 5 種類です。
ソフトウェアでは、アニメート可能なあらゆるパラメータを、同様にアニメート可能な他のパラメータの変更に反応させることが可能です。反応が時間の変化によって引き起こされることはありません。シーン内のその他の要素が基準になります。
例
|
-- シーンを設定
ball = sphere name:"ball"pos:[-40,0,50] radius:10
ball.pos.controller = position_XYZ()
-- いくつかのキーを作成する
key = addNewKey ball.pos.Zposition.controller 0
key.outTangentType = #slow
key.value = 50
key = addNewKey ball.pos.Xposition.controller 0
key.value = -40
key = addNewKey ball.pos.Zposition.controller 25
key.InTangentType = #fast
key.outTangentType = #fast
key.value = 4
key = addNewKey ball.pos.Xposition.controller 25
key.value = -10
key = addNewKey ball.pos.Zposition.controller 50
key.InTangentType = #slow
key.value = 50
key = addNewKey ball.pos.Xposition.controller 50
key.value = 20
ball.showtrajectory = true
-- reactor コントローラを球のスケールに割り当てる
reactorCtrl= Scale_Reactor()
ball.scale.controller = reactorCtrl
-- オブジェクトへのリアクションを選択し、リアクションを作成する
reactorCtrl.reactions.reactTo ball.pos.ZPosition.controller
reactorCtrl.reactions.setName1"UnSquashed"
reactorCtrl.reactions.setVectorState1[1,1,1]
reactorCtrl.reactions.createname:"Squashed"
reactorCtrl.reactions.setVectorState2[1.5,1.5,.4]
reactorCtrl.reactions.setValueAsFloat 2 10
reactorCtrl.reactions.setInfluence16
reactorCtrl.reactions.setInfluence 2 5.5
reactorCtrl.reactions.setStrength 2 1.5
reactorCtrl.reactions.setFalloff 1 1.75
ss = StringStream""
reactorCtrl.reactions.getType()
ct = reactorCtrl.reactions.getCount ()
format "Reactor Statistics: \n------------------------------\n \n"to:ss
format "Count : %\n"ctto:ss
format "\n" to:ss
for i =1 to ct do
(
format "Reaction #: % \n------------------------------------------------
Name : %
State: %
Value: %
Strength: %
Influence : %
Falloff: % \n\n"(i)\
(reactorCtrl.reactions.getName i)\
(getReactionState reactorCtrli)\
(getReactionValue reactorCtrli)\
(reactorCtrl.reactions.getStrength i)\
(reactorCtrl.reactions.getInfluence i )\
(reactorCtrl.reactions.getFalloff i )to:ss
)
print ss
|
|