- 最后登录
- 2014-10-23
- 注册时间
- 2011-7-19
- 阅读权限
- 90
- 积分
- 81303
- 纳金币
- -1
- 精华
- 11
|
我提供一些撰写Building Blocks的经验,对一个新手来说,如何在短时间内了解并运用行为模组:Building Blocks (以下简称BB)。
Virtools对每一个使用者的第一个障碍,不是在使用者介面,也不是在BB如何使用,而是在於这些BB的位置,所以对於初学者来说,常常发生的就是找不到BB,找到了也不知如何下手,因而花了不少时间。在这里我提供一些方法给各位参考。
BB的位置
在目前的版本中,Virtools Dev 2.1共分为几大类,可以先从每一类的名称去 解Virtools所提供的功能,每一类中常用的、基本的功能都会放在Basic中,所以对於不熟悉的BB建议先找Baisc中的BB,然后才去其他的项目中寻找,这样做对於初学者来说,比较容易也比较快上手。以下列表概述每一分类:
-----------------------
3D Transformations
-----------------------
处理3D物件的基本属性,包含座标位置(position)、尺寸(scale)与方位角(orientation)。其他的功能包括3D物件的动态控制(Animation)、移动限制(Constraint)、位移控制(Movement)等,比较特别的是Curve与Nodal Path也是放在这个位置,并没有独立出来。
-----------------------
Cameras
-----------------------
这个比较简单,从字面上就可以知道意义。基本的摄影机属性可以从"Basic"项目中找到,只要是牵涉到物件位移的都会放在"Movement"中,"FX"指的是特殊效果。
-----------------------
Characters
-----------------------
这是特别独立出来的类别,处理的功能类似" 3D Transformations",所以内部的项目几乎一样,除了"IK"之外。
-----------------------
Collisions
-----------------------
所有要处理碰撞的功能都放在这里,不管是 3D Object或是Character,而且设定碰撞的方式不只一种。在Virtools中有些BB的功能,与直接手动增加物件属性的方式效果是一样的,例如"Floor > Declare Floor"或是"Obstacle > Declare Obstacles",会针对所作用的物件增加"Floor"或是" Obstacle"的属性。
-----------------------
Controllers
-----------------------
处理一般我们较常使用的 Input Device的功能,如摇杆、滑鼠、键盘与MIDI。
-----------------------
Grids
-----------------------
处理Virtools中Grid物件的功能。Grid为Virtools中的物件之一,主要功能可以做碰撞,可以侦测目前Object的所在区域。
-----------------------
Interface
-----------------------
处理2D使用者界面的功能,例如按钮功能、字型(英文)、文字显示、动态的Loading Bar。
-----------------------
Lights
-----------------------
这个与Camera相同,从字面上就可以知道意义。同样的,控制灯光基本的功能都放在"Basic"中,关於特殊效果的部分如光晕、Lightmap都放在"FX"里面。
-----------------------
Logics
-----------------------
大部分属於逻辑运算处理的、比较抽象的物件,都放在这个位置。如决定流程走向的"Streaming",处理回圈的"Loop",可处理不同型别之间运算的"Caculator",负责做判断的"Test"…等等,是属於逻辑运算处理的部分。其他的如"Array"、"Attribute"、"Group"、"Message"与"String",属於比较抽象的物件,也是放在这个位置。
-----------------------
Materials-Textures
-----------------------
处理材质、贴图的功能。
-----------------------
Narratives
-----------------------
处理「整个」档案中物件的管理,包含Config:可以从Window的Registry写进或读取一些设定。Object Management:Object的建立、载入、删除…,其中Object可以是3D模型、声音或是贴图。Scene Management:"场景物件"的管理,决定显示哪一个场景的内容。Script Management:控制script的执行与否。
-----------------------
Optimizations
-----------------------
处理场景、场景中的物件最佳化的功能与场景执行中的一些统计数值,如Frame Rate、处理的总面数、著色所花费的时间…等,为了能够调整出更顺畅、更好的画质。
-----------------------
Particles
-----------------------
很单纯,就是指分子运动系统的功能。
-----------------------
Sounds
-----------------------
处理音效、音乐的功能,调整基本的声音属性可以在"Basic"中找到,另外也支援3D Sound。
-----------------------
Visuals
-----------------------
处理一些视觉效果的功能,属於特殊效果的部分如阴影、镜射、Motion Blur…等,放在"Shadow"与"FX"中;比较特别的是2D的物件(2D Framem与2D Sprite)也放在这个位置的"2D"中;物件的显示与隐藏处理则放在"Show-Hide"中。
-----------------------
Web
-----------------------
处理与Web相关的功能,较常用的应该是"Navigation > Go To Web Page",要记得的是,这个BB只要执行一次就要停下来;另一个是"Scripting > Browser Script",可以在Virtools中写javascript或是VBScript。
-----------------------
World Environments
-----------------------
处理场景的背景图片(Cube Map)与背景颜色。
-----------------------
需求的功能分析
首先我们要对於想作的功能,做完整的分析,而且要有具体的想法,不能太过於模糊,好像A方法也可以,B方法也可行,这对於我们在往后撰写BB的时候,反是一种阻碍。确定一种适当可行的方法,并且尽可能地将所有的变数量化,定义出变数之间的关系,这是我们首先要做的,也是在企划阶段就应该完成的工作。
绘制流程图
在这个步骤,主要是事先确认我们的逻辑的可行性,有任何错误的地方,可以先在这个步骤中发现,避免在BB撰写的过程中才发现错误,而必须花更多时间修改,反而更浪费时间。当整个流程图绘制完成后,就可以很清楚地了解执行流程。
可运用的BB
在流程图完成后,我们可以依照流程图的每一个步骤,寻找哪些BB可以满足我们的 要,再将这些BB放到Schematic中编辑。Virtools已经提供大部分我们所 要的BB,包含众多的逻辑运算部分,所以这些BB已经可以应付大部分的状况。
实作
如果我们所要作的功能,是由很多BB所组成,在这种情况下,建议分成几个小步骤,确定必须先开始执行的BB(可能只有一个,有可能是一个以上),先拖拉至Schematic中编辑,并设定好相关的参数,接著可以先行执行,检查是否有任何错误讯息,如果没有任何错误讯息,输出的结果也是我们所 的,就可以再继续加入其他的BB,再重复以上的过程,直到整个功能完成。建议不要整个功能的参数都设定完,并做完流程的连结后,才去检查执行结果,除非整个流程都没有错误,除非是你很有把握的功能,不然你可能会多花一些时间在Debug上,因为太多的BB与连结线会让我们一时间无法得知是哪里出了状况。另外,在检查执行的过程中,建议把「Trace」功能打开,执行中的行为模组,或是连结线,都会显示红色的线框,或是红色的线条,如此我们可以很清楚地知道,目前流程执行到哪 ,如果整个流程执行太快,可以在「Play」键上按滑鼠右键,在随后出现的对话框中,限制执行的frame rate,再重新开始执行,会比较容易观察。
|
|