virtools中文教程内容摘要:

ing Blocks」面版中打开「 Cameras/Movement」资料夹。 14 – 愛迪斯科技股份有限公司 AXIS 3D Technology, Inc. 将「行 为模块」 CameraOrbit拖放到 Schematic view里,摆在「行为模块」 SetAsActiveCamera之右 ,如图所示。 在 Schematic view里将鼠标移到 CameraOrbit「行为模块」方块上按下右键,这时会出现一个选单,然后在选单里选择 Edit parameters。 这个动作将会开启一个对话框,这个对话框能让您指定该camera所要锁定的目标。 点选按键( Eyedropper button) ,并从 3D Layout视角中选取角色 Scientist。 点取 OK。 步骤 3:设计一套「行为模块流程」( Designing a behavior flowchart.) 现在,我们的 New Camera已经拥有两个「行为模块」了。 注意:在 Virtools里所有的「行为模式」实时处理与绘制,每执行一个 Frame(画格)都依循下列的执行程序运作: 处理「行为模块」 运算绘制场景 处理「行为模块」 运算绘制场景 依此类推 在 Virtools中,一个基本处理周期( basic cycle)(包括一次的『行为模块』处理与场景算图)被称为一个 Frame(画格 )。 举例来说, frame rate(画格更新率)为 30 fps代表了上述的基本处理周期在一秒钟里需要被连续执行 30次。 在这一课里,我们将会以 Frame的概念来描述所有的「行为模块」是如何地被连续组合起来的。 注意: Frame这个字在 Virtools也指在 3D环境里被用来标示一个位置或是有方向性的虚拟对象,小心别混淆了(其实在其它的软件里如 3DMAX,这样的对象通常被叫做 Dummy)。 以下就是我们所希望在 camera上所执行之「行为模块」的顺序: 1. 激活演出场景。 2. 切换到 New Camera(执行 SetAsActiveCamera)。 15 – 愛迪斯科技股份有限公司 AXIS 3D Technology, Inc. 3. 运算绘制场景。 4. 让 New Camera锁定在角色(执行 CameraOrbit)。 5. 运算绘制场景( Render the scene)。 6. 回到第 3步(以便在每一个新的 Frame绘制之前都能重新执行 CameraOrbit)。 步骤 4:观察所设定的「行为模块」如何运作( Understanding how behaviors basically work) 在学习如何创造「行为模块流程」之前,我们得花点时间搞清楚「行为模块」是如何运作的。 基本上,所谓的「行为模块」就是一些执行程序中的组件,当其被触发激 活时,就会展开特定的作业与效果。 这就是它们「输入端」( inputs)(位于每个『行为模块』的左侧) 的作用:「输入端」( inputs)接收以事件为基础的讯号 ( eventbased signals) ,并负责触发该「行为模块」激活之后一连串的处理程序。 某些「行为模块」或许需要设定一些参数以执行它的工作。 这些参数能够藉由一群称为「参数输入插脚」( input parameter pins)的小点来输入与控制,您可以在「行为模块」方块的上方找到这些「参数输入插脚」。 一旦某个「行为模块」完成它所负责的任务,它将 会传送一些事件基础讯号出去,透过位于盒子右方的「输出端」( outputs),然后接着触发连结到这些「输出端」的其它「行为模块」,继续执行它们的任务。 一个「行为模块」的执行结果或许还会输出一些「计算参数」 ( puting parameters) ,而这些「计算参数」则是透过盒子下方一些称为「参数输出插脚」( output parameter pins)传送出去的。 步骤 5:在 Schematic view 里新增「行为模块流程」( Creating the behavior flowchart in the Schematic view) 现在,让我们试试看以一些基本的规则来建立属于自己的「行为模块」流程。 我们可以看到在最左边的箭头状的 Start尖端 与「行为模块」 SetAsActiveCamera之间的连结,这连结所代表的意义是:当您按下 Play 按键开始播放您的作品时,「行为模块」 SetAsActiveCamera将第一个被触发激活。 一旦该「行为模块」的工作完成(切换到 New Camera), SetAsActiveCamera将藉由它盒子上的 16 – 愛迪斯科技股份有限公司 AXIS 3D Technology, Inc. 「输出端」送出一个讯号。 若是我们希望接下来要执行 CameraOrbit,我们得在 SetAsActiveCamera的「输出端」与 CameraOrbit的「输入端」之间建立起连结才行。 点选 Schematic view工具列中的 Link选项。 在 SetAsActiveCamera里选择 output。 在 CameraOrbit里选择 input。 到这里,我们已经建立起下列的简单「行为模块」流程了: 1. 激活演出场景。 2. 执行 SetAsActiveCamera。 3. 运算绘制场景。 4. 执行 CameraOrbit。 注意我们刚刚所建立的连结上头显现的指示 0/0:这 代表该连结所会延续( delay) 的时间。 它告诉我们从 SetAsActiveCamera的「输出端」传送到 CameraOrbit的「输入端」需要花费 0个 Frame的时间。 换句话说, SetAsActiveCamera与 CameraOrbit两个动作在以 Frame为执行单位里已经被串成一个执行程序。 按下状态区里的 Play按钮,以激活演出场景。 如您所见,现在 New Camera变成了 active camera( Virtools以此 camera为最起始的视点,算出整个场景),目前此 camera正锁定在角色上。 要是您使用数字键盘上的方向键让该角色在场景里四处移动一下,您会发现 New Camera并没有跟着角色而动。 别担心,看看我们刚建立的流程:原因出在于我们只要求该 camera在开始演出场景时锁定角色一次而已。 按 「 Restore Initial Condition」 (回复初始条件)按钮 停止演出。 按下状态区里的 Play 按键,再次激活演出场景。 正如您所看到的,现在 camera再一次地对准了目标角色。 当然啦,要是您现在将角色移开的话,camera是还不会跟着走的。 按 「 Restore Initial Condition」 (回复初始条件)按钮 停止演出。 步骤 6:在「 CameraOrbit」里加入一个循环 ( Creating a feedback loop on the behavior CameraOrbit) 17 – 愛迪斯科技股份有限公司 AXIS 3D Technology, Inc. 要想让 camera持续锁定追踪该角色,我们必须在每个 frame运算前都执行一次 CameraOrbit才行。 要达到这个效果,我们得在它的「输出端」和「输入端」间建立起一道延续值为 1个 Frame的连结。 如此,「行为模块」 CameraOrbit将会在每个新的 Frame开始执行时,重复执 行一次。 在 Schematic view工具列里点选 Link指令。 先 在 CameraOrbit里选择 output。 再 将鼠标移向右边,并轻击一下以创造一个连结控制点 ( link control point)。 如下页所示般,轻击鼠标,继续创造另外两个连结控制点。 按下 CameraOrbit的 「输入端」。 按下 Restore Initial Condition 按钮以停止演出播放。 现在,按下 Status Bar上的 Play 按钮,重新播放一次演出场景。 我们发现 camera已经 会追踪锁定移动中的角色了,因为「行为模块」 CameraOrbit在每个 frame绘制之前都会被重新执行一次。 按下 Schematic工具列上的 Trace按钮以激活 Trace模式,并实时地观察执行中的「行为模块」:您会看到以红色的高亮度显示着的「行为模块」 CameraOrbit正一次又一次不断地执行着。 恭喜啦。 您已经在 Schematic view里创作了自己的第一个「行为模块」流程了。 在下一课中,我们将让您知道,当您能将 Schematic view运用自如的时候, Virtools能够展示多么强大的威力。 记得要储存您辛苦完成的作品哦,因为您将会于下一课里在上头继续增添新的东西。 只要用第 2课里所学到的 Virtools Player就可以随时观赏您的得意作品了。 LESSON 4 障碍物回避的处理 18 – 愛迪斯科技股份有限公司 AXIS 3D Technology, Inc. 这一课里,我们将教您如何为您的角色附加上基本的障碍物回避功能,使用到的是「碰撞侦测行为模块」与「属性设定」。 在 Virtools里要处理障碍物回避的方式,其中之一就是利用 Virtools所提供的「碰撞总管」( Collision Manager),「碰撞总管」会自动替您计算所给定的 3D对象间会产生碰撞与否 ,是个很方便的工具。 要达到这个效果,我们需赋予角色叫做 Prevent Collision的「行为模块」。 一旦激活,这个「行为模块」会询问「碰撞总管」相关的信息,以决定该角色会跟哪些 3D对象产生碰撞行为。 若有任何碰撞被侦测到,这个「行为模块」将会让角色稍稍后退,以避免直接撞击。 要执行碰撞侦测测试,您的「碰撞总管」得要有一张会发生碰撞的障碍物清单才行。 我们必须指定出场景中会发生碰撞的 3D对象,并将其列入障碍物清单里头。 要这样做,我们得将这些对象一一挑出来,并且在个别对象上头贴上「障碍物」( obstacle) 的属性。 所谓的属性( Attributes),其实还是一些特定的参数,您可以将它们贴到场景里的个别组件上,用来给它们一些指定的特性。 在这一课里,我们只会用到「障碍物」( obstacle)属性(可被碰撞侦测引擎所解读),其它还有许多不同的属性能够被贴在组件上头(像是角色的『生命值』、物体的『重量』等等),我们有机会再做介绍。 步骤 1:将计算机设定为潜在障碍物属性( Declaring the puter as a potential obstacle using attributes.) 轻击 Level Manager卷标。 从 Global资料夹里打开 3D Objects子资料夹。 从 3D Layout工具列上点取 Select tool 图标。 从 3D Layout view中点取计算机,以选择它。 一个「外切框」( bounding box)会出现在 3D Layout中,这表示该桌子已经成功地被选取了。 计算机( New puter) 同时也在 Level Manager里以高亮度显示,就如一般被选取的组件一样。 19 – 愛迪斯科技股份有限公司 AXIS 3D Technology, Inc. 在 Level Manager里的 New puter上按下滑属右键, 并从选单里选取 Add Attributes。 这个动作开启了 Add Attribute对话盒。 「碰撞总管」 Collision Manager上单击鼠标,以开启对应的属性目录。 选取 Fixed Obstacle。 点取 Add Selected。 点取 Close。 您刚已经成功地将 Fixed Obstacle的属性给附加在计算机上了。 这台计算机目前已经被「碰撞侦测引擎」登录为一个潜在的障碍物了。 步骤 2:应用 Prevent Collision( Applying the Prevent Collision.) 在开始将该「行为模块」应用到角色上面之前,先按下 status bar上的 Play 按钮,激活场景演出。 以方向键让角色在场景中四处游走一番,然后让角色停在书桌前面(注意不要让角色和书桌接触)。 再一次按下 Play 按钮,暂停演出的进行(注意不要按到 Restore Initial Condition 按钮,因为您只是想暂停,而不是想倒带。 )。 选取 Building Blocks。 开启 Collisions资料夹。 开启 3D Entity资料夹。 将「行 为模块」 PreventCollision拖曳到角色上。 在重新测试场景之前,让我们从 Schematic view里先检视一遍角色所有行为模块的 script吧。 选取 Schematic卷标以开始检视 scripts。 使用垂直滚动条来检视角色的 script。 顺利的话,您将会看到。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。