Virtools 进阶教程—Character Go To 角色运动 - Virtools
Character Go To
Instruction:
此范例可以和「Pick And Move To」作比较。Eva会移动至Mouse所点选的Box,但是当Mouse 点选至 Ground 时,Eva便站立在原地。
Building Blocks:
(a) Mouse Waiter-Controllers/Mouse/Mouse Waiter
(b) Get Mouse Position-Controllers/Mouse/Get Mouse Position
(c) Set Component-Logics/Calculator/Set Component
(d) Character Go To-Characters/Movement /Character Go To
(e) Unlimited controller-Characters/Movement/Unlimited controller
(f) Text Display-Interface/Text/Text Display
(g) Set As Active Camera-Cameras/Montage/Set As Active Camera
制作构想:
为将Mouse所点选的坐标位置输入Building Blocks-Set Component, 可以得到一个2D变量,其2D 变量可以取得所选择的物体 (在此Ground 也作为一个物体)和物体与Eva 间的距离,将变量输入Building Blocks-Character Go To便可以使Eva移动至该物体的轴心点。
制作步骤:
(a) Eva
Mouse Waiter:等待讯息的传入,在Edit Setting中只需勾选Left Button Down, (如图标)。
Get Mouse Position:当Left Button Down讯息传入后,即得到Mouse Cursor的坐标位置,该坐标位置X值与Y值再分别由pOut输出至Building Blocks-Set Component的pIn,其值为Component1和Component2。
因子值是由Integer转变为Float,所以在连结线的位置会出现Convert,在连结线的位置选择Edit Parameter Operation Link即出现以下图标。
Set Component:首先于pOut设定Edit Parameter/Parameter Type-Vector 2D,Variable(X,Y)是输出值,可以不必输入;再由pIn输入值Component1和Component2,再转变为一2D Variable(X,Y)由pOut输出。
Pick Object:由2D Variable(X,Y)取得一个3D Entity(如图标)。
Get Radius:由3D Entity取得物体半径作为Eva距离物体轴心需停止的距离之依据(如图标)。
Character Go To:由pIn输入Target Object-即所选择的物体;Distance-即物体距离人物需停止的距离。
因为物体Ground的半径较大,以至于点选Ground的时候Distance已经远超过Eva与Ground的距离,所以Eva会马上停止,且会旋转至面对Ground的轴心。
设定Character Direction-即Eva前进的轴向;Limit Angle-即Eva的轴向(-Z)与物体的最大角度,亦即Limit Angle为5度时,Eva必须旋转至轴向(-Z)与物体夹角5度时才能行走,角度约于75度至100度时行走的感觉较流畅(如图标)。
(b) Eva
Unlimited Controller:设定Eva的Animation-Walk、Wait(如图标)。
Text Display:文字说明。