查看: 1431|回复: 1
打印 上一主题 下一主题

【Virtools中文手册】如何将「行为模块」组合成行为模块流程

[复制链接]

3795

主题

2

听众

5万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
53202
精华
32

活跃会员 优秀版主 推广达人 突出贡献 荣誉管理 论坛元老

跳转到指定楼层
楼主
发表于 2013-1-8 14:27:23 |只看该作者 |倒序浏览
这一virtools中文手册课程里,我们的目标是建造一道当玩家用鼠标点选就能开关自如的门。由于Virtools所提供的「行为模块」数据库里并没有这样的东西存在。因此,我们必须将使用现存的「行为模块」在Schematic view里整合起来,组成一个「行为模块」流程(或称为『行为模块图』),来达成我们所需要的功能。最后,我们还可以将把这个流程命名为「Open」,如此一来,我们就能将这个建好的「行为模块」流程Open应用在场景中其它的对象上,甚至于我们还可以把这个新的「行为模块」流程储存在数据库里,把它当成一个新的「行为模块」以供未来使用哦。首先,请重新加载您先前储存的作品。


以下就是我们需要为Open所编写的「行为模块流程」:

基于您在第3课与第4课里所学到的东西,您应该能够毫不费力地把这个「行为模块流程」建立起来吧?!

您将需要用到下列的三个「建构区块」:

• Wait Message(在Logics / Message 里)

• Sequencer(在Logics / Streaming 里)

• Translate(在3D Transformations/Basics 里)


要得到这些「行为模块」如何运作及怎么使用等信息,只要在该Building Block里该「行为模块」的名字上头双击鼠标左键即可。这个动作将会 开启位于 Building Block 面版上方的「线上说明」 Online Reference,里面就会出现关于该「行为模块」的所有说明文件。

举例来说,下一页所显示的,就是关于「行为模块」Translate的说明文件:


我们建议您在使用「行为模块」前常常查询相关的线上说明,这样对您的进步是很有帮助的。


步骤1:新增「流程模块」(Creating the flowchart)

按照下列步骤:

• 将「行为模块」Wait Message 拖放到实验室的大门上(如图)。


• 将「行为模块」Translate拖放到Schematic view中门的script里,重复两次。

• 将「行为模块」Sequencer到Schematic view中门的script里。
• 您的script现在看起来应该像是这样:

• 从Wait Message的Out输出端到Sequencer的In输入端作一个连结。

• 从Sequencer的Out1输出端到上方的Translate的In输入端作一个连结。

• 从Sequencer的Out2输出端到下方的Translate的In输入端作一个连结。

• 从upper Translate的Out输出端回Wait Message的In输入端作一个循环。

• 从lower Translate的Out输出端回Wait Message的In输入端作一个循环。

步骤2:了解您的流程表(Understanding the flowchart)

现在,这流程是被连接起来了。让我们进一步解释一下倒底发生了甚么事情!

首先,Wait Message先被执行了。这个「行为模式」基本上等待着从「门」收到给定的讯息,而后藉由其「输出端」送出一个讯息(也因此触动了Sequencer的动作)。而等待输入的Message则是由「行为模块」Wait Message的「参数输入插脚」(input parameter pin)处进来的。

• 按住在Wait Message之「参数输入插脚」上方的小方块,并将其向上拖曳到如图所示的位置,然后松开鼠标。

这个小方块代表一个local parameter(Wait Message本身的参数设定钮),它是透过一道parameter link(参数连结,以一条虚线表示)传入「行为模块」Wait Message。


• 双击local parameter

一个local parameter有一个名字(name),包含了一个给定类型(type)(整数integer、串行string、向量vector……等)的值(value),并且会连结在一个script上头(在这个例子里,是连在『门』的script上面)。

此例中,参数的名字叫做Message,它的值为「On Click」。

• 在local parameter上按下鼠标右键,并从选单里选取Edit Message。

• Edit Parameter对话盒会显示出该参数的名字、类型、与值等资料。

• 点选OK。

让我们来检视一下这个「行为模块流程」。首先,Wait Message先被执行,它正在等待OnClick传来讯息。也就是,它正在等待使用者在「门」上按下他鼠标的左键。
当使用者在门上按下鼠标左键时,Wait Message会经由它的「输出端」送出一个讯号并触动

Sequencer的In「输入端」。根据线上说明文件的描述,当Sequencer的输入端In被触动之后,Sequencer会交替地由它的输出端Out1与Out2输出讯号。这意味着Sequencer首先将会经由它的Out1输出端送出一个讯号,先触动上面的Translate。然后,Translate依照着它门板的轴线移动,把门打开。最后,由它的「输出端」送出一个讯号,再一次触动Wait Message,等待新的OnClick讯息。当使用者第二次按下门板时,「行为模块」Wait Message会再次触动Sequencer,而这一次将会触动下方的Translate,Translate门板将因此而关上。


步骤3:编辑相关参数(Editing local parameters)

现在,我们所要做的就是替两个「行为模块」Translate设定适当的参数,让上方的Translate专门负责开门,而下方的 Translate则负责关门。

• 鼠标移至上方的Translate按下右键,从选单里选取Edit Parameters。

• Edit parameters对话盒是用来交代上方的Translate动作的三个参Translate Ventor (移动向量)Referential(依据对象)、和从属关系连动设定Hierarchy。您都可以在线上说明里找到关于这些项目的详细说明。


• 轻点Translate Ventor区,并将其值改为x=-1.5。

• 点选OK。

现在,上方的Translate将会沿世界坐标的X轴做一个-1.5单位的移动,将门打开。

• 鼠标移至下方的Translate按下右键,从选单里选取Edit Parameters。

• 点取Translate Ventor区,并将其值改为x=1.5。


• 点选OK。


现在,lower Translate将会沿世界坐标的X轴做一个1.5单位的移动,将门关闭(这个移动动作会完全与上一个相反)。


步骤4:测试您的「流程模块」(Testing the flowchart)

OK,现在您可以开始测试您所设计的流程了。


• 按下Restore Initial Condition按钮。
• 按下Play按钮。

• 轻点门板。你会看到「门」沿着X轴打开了1.5单位。

• 再次轻点门板。「门」立刻关上。

• 在Schematic view的工具列里点取Trace按钮激活trace模式。

• 边玩玩您的「门」,边看看在Schematic view里的「行为模块」们是如何运作的。

也是该到存盘的时候了,别忘了储存您的作品哦!


步骤5:将「行为模块」流程封存成一个新的「行为模块」(Encapsulating the flowchart in a new behavior)

我们现在要教您的,算是Virtools里最有价值的技巧与最重要的特色之一,将您自行建立的「行为模块流程」储存成为能重复利用的资产!在这一课里,我们已经见识到Virtools在3D场景里快速地建立个人化「行为模块」的能力了(以『行为模块』构成『流程表』的可视化模式)。


在Virtools里,创造一扇能够旋转的门只要花几分钟而已,但想想,要是您得重复这样的程序200次以制造200扇移动门,那不是累死人吗?!Virtools提供了一些方法让您能够重新利用您所做过的模块组件,只要将您以「行为模块」所完成的流程封装起来,成为一个新的「行为模块」就可以了。

在Schematic view里「门」的script背景处右击鼠标,选择Draw Behavior Graph。

拖曳鼠标,框选起整个流程表:从左上方按下并拖曳鼠标光标,直到将整个盒子框选完整。

最后再放开鼠标。



您刚刚藉由将整个流程表封装起来,成功地创造了一个新的「行为模块」。这个新的「行为模块」系统暂命名为”开关门控制”,并且拥有一个单独的「输入端」。

如您所见,原本连接Start盒子与Wait Message「输入端」间的连结线已经不见了。

您将需要重新连上它。



运用Schematic view工具列里的Link按钮,新增一个连接Start盒子与「行为模块」”开关门控制”间的连结线。

新增另一条连结线连接”开关门控制”的「输入端」与Wait Message的「输入端」。


在背景处双击鼠标以关闭它。现在,「行为模块」”开关门控制”已经成为一个新的「行为模块」,等着您将其储存在您自己的数据库里了。
「行为模块」”开关门控制”具有一个「输入端」。您会看到有一个黑色的小盒子在它的右端,代表其中包含了一个完整的流程表和许多「行为模块」在内,要想检视里面的内容与结构,只要在上面双击鼠标左键就可以完全打开了。

步骤6:从「行为模块」盒子中拉出有用的参数(Exposing meaningful parameters.)

「行为模块」”开关门控制”将能在使用者点选附加了该功能的3D对象时,使其产生移动的动作。假定您要调整”开关门控制”的移动单位设定,您得先打开「行为模块」”开关门控制”的代表盒子,然后才能进行必要的调整。现在,我们教您一个法子能够不必经过这么麻烦的手续,就能简单地进行参数的调整动作。双击「行为模块」”开关门控制”的背景处,显示出它的流程表。

选取上面Translate的上方左边数来第二个「参数输入插脚」(就是Translate Ventor)。

将它拖离「行为模块」”开关门控制”盒子,如下页图标。

选取该「参数输入插脚」…将它拖离「行为模块」盒子…然后放下它。现在,我们将可以从「行为模块」”开关门控制”的外面来存取与修改Translate的Translate Ventor的参数了。

• 选取下面Translate的上方左边数来的第二个「参数输入插脚」(还是Translate Ventor)。

将它拖离「行为模块」”开关门控制”盒子。

• 在”开关门控制”背景处双击鼠标以关闭它。现在,「行为模块」”开关门控制”已经有两个「参数输入插脚」,用来编辑与修改移动的单位值。

• 右击”开关门控制”,并从选单里选取Edit parameter。


• 一个对话盒出现,让您能编辑两个移动单位参数。

• 点选OK。

步骤7:将新「行为模块」存入使用者数据库中(Saving the new behavior in a user library)


从Resources 下拉选单里选取Create New Data Resource选项。

在Name字段中键入「My Behaviors」。

按下Save。



您刚在您的硬盘里建立了一个称为「My Behaviors」的资料夹。在这里,您可以储存您自己所创造出来的「行为模块」。如果您注意看,一个叫做「My Behaviors.rsc」的档案出现在这个资料夹当中,这个档案里记载了这个新资料夹里所有内容的描述在内。一个新的面版出现在Building Block面版的上方。

从Schematic view里点选「行为模块」”开关门控制”,并从按右键里选取Save As。

您会看到一个Save对话框在画面上出现。这个「行为模块」将会被以Open.nms 的文件名储存

在My Behaviors资料夹当中。

按下Save。

如下图所示般填妥Behavior Information资料。

按下OK。

「行为模块」Open已经被储存在属于您自己的「行为模块」资料夹当中了。它将会出现在「My Behaviors」面版中。


步骤8:呼叫并使用一个已经储存的「行为模块」(Reusing a saved behavior)

您可能猜到了,「行为模式」”开关门控制”现在能够被应用在场景里任何的3D组件上头了(甚至您想将它储存起来应用在您未来的其它作品里都不是问题)。放胆用这个「行为模式」做各种的尝试吧,将它自由地贴到场景里的任何对象上头,并且试试调节与编辑其输入参数。

举个例子:

• 将「行为模块」open.nms拖放到计算机(New Computer)上。

• 编辑移动的单位,将其分别设定为-2与2。

• 点取OK。

• 按下Restore Initial Condition按钮.

• 按下Play按钮。

• 点选门(door)。接着门会沿着世界坐标的X轴向左移动1.5单位开启。

• 点选门,将门关上。

• 点选计算机,您会看到计算机移动-2单位。

• 点选计算机,您会看到计算机再次地移动,回到原来的位置。


分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

3795

主题

2

听众

5万

积分

版主

Rank: 7Rank: 7Rank: 7

纳金币
53202
精华
32

活跃会员 优秀版主 推广达人 突出贡献 荣誉管理 论坛元老

沙发
发表于 2013-1-9 15:14:43 |只看该作者
总目录: 【Virtools中文手册】virtools简介、系统需求和接口操作【Virtools中文手册】创造第一个3D互动场景【Virtools中文手册】如何移动、控制与浏览Virtools里的对象【Virtools中文手册】制作一个追踪目标的摄影机【Virtools中文手册】障碍物回避的处理【Virtools中文手册】如何将「行为模块」组合成行为模块流程【Virtools中文手册】参考术语表  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2025-7-21 18:36 , Processed in 0.083361 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部