Virtools进阶教程—While 当..条件 - Virtools
While
Instruction:
当Box横移至与Statue的距离小于5时,Statue产生自转的效果,但横移至与Statue的距离超过5时,Statue便停止自转。
Building Blocks:
(a) Set As Active Camera-Cameras/Montage/Set As Active Camera
(b) Text Display-Interface/Text/Text Display
(c) While-Logics/Loops/While
(d) Rotate-Transformations/Basic/Rotate
(e) Switch On Key-Controllers/Keyboard/Switch On Key
(f) Per Second-Logics/Calculator/Per Second
(g) Translate-3D Transformations/Basic/Translate
制作构想:
Box的移动与Statue的旋转可以利用Building Blocks-Translate、Rotate配合Per Second作出移动与旋转的效果;在距离的控制上,可以使用Building Blocks-While配合Parameter Operation-Get Distance和Inferior来控制。
制作步骤:
(a) Camera
Set As Active Camera:设定现在使用的Camera。
Text Display:文字说明。
(b) Box
Get Distance:取得两个3D Object(Box与Statue)之间的距离Distance(Float)。
Inferior:比较两个数值大小,如果第一个数值(Float)小于第二个数值-5.0(Float),则pOut输出为True,反之则为False。
-While:由pIn输入一变量Condition(True或False),如果输入为True,则由Loop Out输出至Building Blocks-Rotate;如果输入为False,则由Out输出,且继续执行循环以作确认。
Rotate:设定使用目标Target-Statue;旋转轴Axis of Rotation-Y轴(0, 1, 0);旋转角度值Angle of Rotation-2度,设定Referential of the Axis--NULL-或Statue皆可。
勾选Hierarchy表示Building Blocks也可以应用在Child(如图标)。
(c) Box
Switch On Key:设定控制键分别为1、3。
Per Second:首先于Edit Parameter-Parameter Type设定为Vector(X, Y, Z),Y值为输出值可以忽略不必设定(如图标)。
设定1秒钟所做的位移X(X, Y, Z),乘上一个Frame所花费时间,在pOut输出位移值Y作为Building Blocks-Translate的变量Translate Vector。
-T X(pIn) * Elapsed Time = Y(pOut)
Translate:由pIn输入Translate Vector;Referential设为-NULL-或Rock皆可;勾选Hierarchy表示Building Blocks也可以应用在Child。