我的订单|我的收藏|我的商城|帮助中心|返回首页
虚拟现实新闻>VR>VR软件>Virtools

Virtools 进阶教程—Click To Rotate And Scale点击缩放 - Virtools

文章来源:网络收集 作者:Frank 发布时间:2010年04月28日 点击数: 字号:

Click To Rotate And Scale

1.jpg

Instruction:

 

  本范例利用Mouse点选物体,再用拖曳的方式使物体旋转或缩放尺寸;物体的旋转会随着拖曳方向的不同而异,而尺寸变化的情形也相同。

 

Building Blocks:

(a) Mouse Waiter-Controllers/Mouse/Mouse Waiter
(b) Get Mouse Position-Controllers/Mouse/Get Mouse Position
(c) 2D Picking-Interface/Screen/2D Picking
(d) Switch On Parameter-Logics/Streaming/Switch On Parameter
(e) Binary Memory-Logics/Streaming/Binary Memory
(f) While-Logics/Loops/While
(g) Identity-Logics/Calculator/Identity
(h) Send Message-Logics/Message/Send Message
(i) Has Attribute-Logics/Attribute/Has Attribute
(j) Key Waiter-Controllers/Keyboard/Key Waiter
(k) Parameter Selector-Logics/Streaming/Parameter Selector
(l) Text Display-Interface/Text/Text Display
(m) Set Attribute-Logics/Attribute/Set Attribute
(n) Scale-3D Transformations/Basic/Scale
(o) Wait Message-Logics/Message/Wait Message
(p) Get Message Data-Logics/Message/Get Message Data
(q) Rotate-3D Transformations/Basic/Rotate
(r) Set As Active Camera-Cameras/Montage/Set As Active Camera
(s) Camera Orbit-Cameras/Movement/Camera Orbit

 

制作构想:

 

  将Mouse所点选的坐标位置输入Building Blocks-2D Picking,可以得到所选择的物体(Rock或Box),再利用Building Blocks-Key Waiter选择物体旋转或是尺寸缩放。

 

  在物体的旋转方面,利用Mouse移动时的相对坐标(X, Y),再经由算法分别取得物体在X轴与Y轴的旋转角度值;尺寸缩放方面,利用Mouse移动时X方向的变化量再经由算法取得尺寸的缩放值。

  其中,物体旋转的方向和尺寸的缩放均会随着拖曳方向而有所不同,充分表现了Mouse操控与物体变化间的互动性。

 

制作步骤:

 

(a) Mouse

2.jpg

Mouse Waiter:等待讯息的传入,在Edit Setting中只需勾选 Left Button Down 与 Left Button Up ,如图标。

3.jpg

Get Mouse Position:当 Left Button Down 讯息传入后,即得到Mouse Cursor的坐标位置Position(X, Y),其中X值作为一个快捷方式X0且与坐标位置Position由pOut输出。

4.jpg

2D Picking:由pIn输入Mouse Cursor 2D的坐标位置Position而得到一物体,并于pOut输出该物体;Window Relative-False。

 

  Switch On Parameter:由pIn输入快捷方式Action(rotate或scale),如果Action为参数1-rotate,则由Out-1输出至Behavior Graph-Rotate Object;如果Action为参数2-scale,则由Out-2输出至Behavior Graph-Scale Object。

 

  Rotate Object:当 Left Button Up 讯息传出后,则由Input1输入Behavior Graph-Rotate Object。

5.jpg

Binary Memory:判断讯息,如果由In1输入,则由pOut输出State
Memory-True;如果由In2输入,则由pOut输出State Memory-False。

 

  While:判断讯息,如果由pIn输入Condition-True,则执行Loop。

  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料
  • 暂无资料