VirtoolsDev帮助文件
Virtools有很完善的组成:一个创作应用程序
一个动作引擎
一个渲染引擎
一个Web播放器
一个软件开发工具包(SDK)
一个创作应用程序
VirtoolsDev是一款允许你快速简单建立3D内容的应用程序。模型、动画、图象和声音等工业标准媒体都能通过Virtools的行为技术得以应用。
你不能在VirtoolsDev里创建模型;VirtoolsDev不是一款建模软件。但是,象摄影机、灯光、曲线、界面组件和3D结构(在大多数3D软件中叫虚拟助手)等简单的媒体能通过点击一个图标建立。
一个动作引擎
V元素、种类和物体导向设计
总体
VirtoolsDev组织元素到种类里。元素包括你带到VirtoolsDev中的媒体(模型、声音、材质等)、你在VirtoolsDev中创建的东西(曲线、地点、场景等)和象参数、属性、脚本的数据。
在这部分中集中在Virtools类层次结构的动作物体分支上的基本的种类包括:
Virtools怎样给媒体分类
例如,这里有一个在Virtools中包括所有灯光的灯光级别物体。每一盏灯都是灯光级别的场景,并都有它的颜色和范围属性。
为什么某个操作给某个元素和种类是可行的
例如只有角色才能使用角色动画。
为什么其它的操作能够应用到所有元素上。
例如所有的元素都能够激活和无效
按照规定,这部分只介绍对大多数人足够的Virtools类层次结构的动作物体分支。不过你可以在SDK文件中找到关于Virtools类层次结构的全部描述。
物体导向设计
VirtoolsDev把一个物体的导向比做写一个作文。那是因为,每个元素具有一个特殊的类型,每个特殊的类型被一个类定义来描述。在动作和参数实施内部通过使用压缩的方法来控制元素。在Virtools中的每个类别被叫做CKClass.
图片1Virtools类层次结构的动作物体分支
例如,一个CKClass叫做CKCharacter.。只有CKCharacter能够使用对于角色的动作特定设计。(例如角色控制器BB)
VirtoolsDev的物体导向性意味着你输入到VirtoolsDev(以模型、声音等形式的元素)中的任何事物都是一个CKClass场景。同样,你在VirtoolsDev中创建的任何事物也属于一个CKClass。图1-1图解说明了Virtools类层次结构的动作物体分支
遗传
使用类层次结构的一个优势是遗传原理。那就是,任何元素都有它自身独特的特性并且所有元素都继承了它所有父级别的特性。
例如,CKLight遗传如下:
1CK3DEntity,它的遗传如下
2CKRenderObject,它的遗传如下
3CKBeObject
因此,一个灯光有只应用给CKLight级别物体特殊的特性,特性如下:
灯光类型(点、方向等)
灯光颜色(白色、红色等)和
灯光的可视范围
这些特性能够通过灯光的建立来改变(在创造模式)或者一个积木动作(在运行时间、IE播放模式)。
第二,一个灯光是一个三维实体,也就意味它具有通过继承得到的在3D空间内的位置、空间的三维实体特性。因为一个灯光是一个三维实体,能够应用到三维实体上的任何动操作也能应用到灯光上。
第三,一个灯光是一个渲染物体,也就意味着它能够被渲染(能够在录音重放中被看到)。
因为灯光也是一个渲染物体,所有能应用到渲染物体上的操作也能应用到一个灯光上。
最后,灯光还是一个动作物体,也就意味着能有一个动作附着给它们(一些VirtoolsDev级别,例如存储内部数据的级别不能有动作附着给它们)。就因为灯光也是一个动作物体,任何能应用到动作物体上的操作也能应用到一个灯光上。
特殊作用
VirtoolsDev提供特殊的动作所以动作对于特殊的任务能够被最优化(也被认为是多态现象)。例如,移动一个3D场景比移动一个人物更简单,所以对于简单的任务移动一个3D场景的动作能够被优化。
优化操作对一个给定场景能够减少计算时间导致结构更小,对使用者的输入做出更快的响应并呈现一个可接受的帧频。
集合
VirtoolsDev支持集合,支持在一个元素是另一个元素的一部分但是两个元素又是截然不同的两个元素间合乎逻辑的关系。
例如,如果你看到了图1-23D物体的建立,你会看到一个专栏的标签ObjectMeshes,一个3D物体可以有几个网格,虽然在一个时间内只有一个网格能够激活。
如果你看到图1-3的网格建立,你会看到一个专栏的标签MaterialsUsed。一个网格可以有几个原料,它们中的几个能够在同一时间内激活。
如果你看到图1-4的材质建立,你会看到一个Texture标签。一个原料只能有一种材质。
因此,一个描述3D实体(不管它是一个物体还是一个角色等)的元素是有关系的,并且每个元素都保持不受约束。例如,一个材质是材料的一部分,一个材料是一个网格的一部分,一个网格是一个3D物体的一部分。
因为每个元素都保持不受约束,所以每个元素的特性都能够快速简单地被改变。事实上,全部的元素都能被另一个兼容元素所交换。
例如,你可以改变一个3D物体的网格,材料或者材质—或者任何结合而不用改变3D物体的存在的现实。
注意:如果改变一个角色上的网格,那么很可能你的动画就不会象预期那样工作了。
irtools是一个动作引擎,那是因为Viortools处理动作。一个动作是某个元素怎样在场景中运动的一个简单描述。Virtools在VirtoolsDev中提供一个强大的可以再度使用的行为,它允许你通过简单的绘图界面型的示意编辑器来创建任意类型的内容—除了写一个单一的线路代码。
对于编码器和编剧,新的VirtoolsScriptingLanguage(VSL)通过提供脚本级别来访问开发工具包。
Virtools还有一些管理器来帮助动作引擎完成她的任务。有些管理器(例如时间管理器)存在于动作引擎的内部而另一些管理器(例如声音管理器)则存在于动作引擎的外部。
一个渲染引擎
Virtools有一个渲染引擎来绘制你在VirtoolsDev3D设计中的图象。Virtools的渲染引擎能被你自己的渲染引擎所取代,或者通过软件开发包(SDK)定制出适合你特殊的需要。注意:任何有权限使用的渲染引擎猿代码都必须服从额外的专利使用权转让协定。
一个Web播放器
好的技术在它成为被尊重的伟大的技术之前必须是容易接近的。Virtools提供一个免费的Web播放器,它能够被任何人下载并且下载后不到1MB的容量。]
Web播放器包括动作引擎和全部的渲染引擎的一个录音重放的译本。对于Web播放器的更多了解可以通过在线参考。
一个软件开发工具包
VirtoolsDev包括一个能访问动作的某个部分和渲染过程的软件开发工具包。
用SDK,你能:
创建一个新的动作
修改现有动作的运行
写新的文件给输入和输出文件,来支持你选择的模型文件的格式
替换、修改、扩充VirtoolsDev的渲染引擎
VAL还提供一个接触面从Dev的内部给SDK,所以你可以简单快速的测试新的主意并不用执行自定义动态连接库来执行自定义代码。
这些只是例子—你的创造力才是你能够飞多远的限制。
运行时间集合、场景层次
一个场景是在运行时间内所有元素同时起作用的设置。场景内的元素被组织在一个场景层次内。
VirtoolsDev在场景层次内提供了一个特殊的集合形态。在运行时间内,元素的关系通过SetParent和AddChild(两者都在3D转化/基础中)能够被确定。运行时间集合允许你建立关系在3D实体的任意设置,具有目的的代表性的单一化的应用程序3D实体的转化设置。
例如,虽然它能够变得更简单地去做在一个建模的应用软件里,使用SetParent和AddChild你可以建造一部汽车作为3D实体的层次;一个有门、车身、轮子的汽车。一旦等级关系被确定,转变就能自动的变化汽车的子物体:门、车身、轮子。
注意:SetParent和AddChild只在场景层级中建立关系不能在CKClass层级中建立。
如果初始条件设置在受影响的元素之前SetParent或者AddChild然后被激活,当你按ResetIC时,关系被删除。
共享元素
VirtoolsDev对集合的支持允许你能共享例如声音、动画、网格、原料和材质等元素贯穿你的组成。
例如两个椅子能共享相同的网格、材料和材质—椅子能够看起来一样而只有名字不同。然而,椅子还可以有相同的网格,不同的材料和材质—椅子将会有相同的形状但看起来不同。
共享元素能够极大地减少文件大小和CPU和显示卡的工作量。在组成中减少元素的数量也能使管理组成的发展变得更容易。
联合
联合允许VirtoolsDev建立一个逻辑关系在两个没有被直接指定一个父--子关系在CKClass层级元素之间。
例如一个角色经常用一组3D物体联合为了碰撞检查,管理和检查的目的。
Virtools类层次结构—动作物体分支
点击下面的元素到达相应动作物体的页面
看下面的两页概念:
元素的组成
总体
在下面你能看到一些元素的类型在一个Virtools组成中。
呈锯齿状表示锯齿状的标签是一个最靠近的先前级别的锯齿状的子物体,根Virtools类层次结构的动作物体分支主要包括元素、层级和物体导向设计。
例如,一个2D实体和一个3D实体都是渲染物体的子物体。一个2D结构不是一个渲染物体的子物体而一个2D的结构却是一个派生的渲染物体。
元素的组成依照类型和字母顺序安排
BeObject—能够被应用一个行为的物体。
RenderObject—当渲染时能够看得见的物体
2DEntity—有长度、宽度但是没有高度的物体
2DFrame—有看得见部分的2D实体
3DEntity—有长宽高的物体
Character—担当一种有智力的3D实体的类型,直接被用者或软件控制的物体是可见的,但是通常不是
Camera—定义一点景色的物体
Curve—一种描述空间中曲线的3D实体的设置
Grid—一种2D数据设置,它的价值依靠3D物体相配
Light—一种提供照明物体的物体,是不可见的(抽象、数据设置、联合)
Array—一种表达一个表格的数据设置
Group—一组没有类型限制的任意组合的集合
Level—全部由父物体组成的物体
Material—一个网格的表面特征
Mesh—定义一个物体外型的至高点设置
Place—关于物体位置的收集
Scene—关于物体时间的收集
Sound—一种以数字形式存储的声音
Texture—用来提供物体表面更好细节的图象
TheBehavioralObject(BeObject)
当在VirtoolsDev中动作行为是主要概念时,如果他们没有附加给元素时,他们没有起作用。从行为物体层级能看到所有theVirtoolsDev类层级物体的简图。从这些层级示例的物体必须是有动作附加在上面的物体。BeObjects能够有动作但是他们不需要必须有动作。
当一个物体有动作附加在上面时,它被确定为这些动作的拥有者。所有的动作只能附加到一个而且只能是一个BeObject上。
注意,一个动作的所有者不总是动作的对象。附加到BeObject上的动作可以改变所有者或者改变其它物体(目标)。
Level
一个可以被描述为:
-对于所有组成的球形容器
-在组合中所有元素的根部
-在组合中所有元素的祖先和父物体
在一个CMO中只能有一个层级。层级能够包括不只一个场景并有零个或更多的地方来组织你的组成到更易于管理的部分。
一个Level是一个BeObject。因此动作和属性能够被附加到Level上。
注意:附加给Level上的脚本能够自动附加给所有场景。
Scenes
在VirtoolsDev里的场景就象是电影中的场景一样。
在同一时间内只有一个场景被激活。
只有在场景内的元素才能起作用。
只有激活的元素才能在摄影机里俘获。
不是激活场景里的元素不起作用。他们不能被渲染,并且他们的脚本不能被处理。因此,场景通过完美的方式把组合分割成大比例的叙述元素和大时间基数的时期。当和其它人协作工作时,场景很重要:每个人都可以工作在一个特殊的能够场景里,在那里可以保存和合并到一个CMO里。
层级场景(包括所有的层级物体)使激活的层级场景启动。当一个新的场景开启的时候,以前激活的场景自动无效。
一个场景就是一个BeObject,因此动作和属性可以附加到场景上。
场景包括参考的元素和没有副本的元素或者元素本身。
PlacesandPortals地点和入口
正象场景组织叙述分割到一个层级的方法一样,地点也是组织空间分割到一个场景或一个层级的方法。在一个层级中可以有零个或者更多个地点。在场景和地点之间没有特殊的了连接。
地点是3D实体层级的一部分能够包括零个或者更多个3D实体。在地点内部每个地点都可以看作3D实体的父物体。
地点和入口被使用来优化渲染阶段,通过摄影机来显示结果。
当入口系统(以入口管理器为例)被激活时,规则如下:
1在每个渲染过程之前,存在于空间的(包含激活摄影机的)地点目录通过地点限制盒被计算。
这些位置,和所有带一个入口的位置,被考虑潜在地可见并被渲染器处理
2如果一个元素不是这些位置的成员,这个元素不能被渲染。这个元素马上考虑不可见(即使这个元素被激活并且它的动作被执行)
3如果这个入口系统不被激活,通过位置和入口没有优化(每个3D实体被考虑潜在可见并只有一个等级选择被使用),但是位置仍然会被使用来组织3D实体给其它的目标。
位置在多人合作工作时仍然很有用,每个人都能工作在一个特殊的能被保存和合并到CMO中的位置。
一个位置也是一个BeObject。因此动作和属性也能加到位置上。
AbstractElements抽象元素
抽象元素在VirtoolsDev中是一种数据结构来存储信息和来描述两个元素之间的关系的。
Groups组
组是最简单最有用的组织VirtoolsDev3D的实体。组被要求列出执行任何逻辑联合必需的不受限制的包含相同CKClass或类型动作物体。
组能够在创作模式或者在运行时间通过BBS被建立,组能够被重新安排,覆盖等。--许多标准的BBS提供组的管理。
一个组是一个BeObject。因此动作和属性也能附加到组上,组能够是其它组的一部分。
Arrays排列
排列是一个简单的表格包括横纵有组织的单元。排列通过纵向类型排列(所有纵向元素有相同的类型。排列提供5个数据类型。
1整数
2浮点
3一行
4CKObject
5参数
排列能够被建立在创造模式或者通过BBs在运行时间里。排列能够被分类、过滤、搜索、重复等。--许多标准的建筑木块都被排列管理器提供。
排列是他们自己的动作物体,所以他们能有动作附加给他们。
Virtools过程循环
总体
当你或使用者运行一个组成时经常涉及到作为一祯或者一个渲染,Virtools过程循环是一个反复性的过程。理解循环过程能够帮助你建立高效的脚本和带满意侦频的能流畅运行的组成。
一个满意的帧频通常定义为能提供高效时时播放的帧频。时时播放最少需要每秒15个图片,总共侵入开始在每秒60帧。因此,作为一个创造者,你应当一直试图保持一个每秒最少30帧的帧频(近似与电视的帧频),目标是每秒60帧的帧频或者更多。
Virtools是一个即时引擎:它允许所有的动作连续不断地起反应在它的环境中,包括使用者。
当一个组合运行时,Virtools重复运行过程循环—经常运行相同的步骤在相同的次序下直到一个组合被停止或重起。
一个过程循环的持续时间一般叫做一帧。帧频是每秒钟完成和在每秒多少帧被测量的过程循环的时间数。帧频经常显示在VirtoolsDev的界面上,在屏幕右角落底部靠近播放暂停键处。
过程循环应当近可能快地执行。一个很高的帧频能对用户的输入提供很快的响应,增加用户对组合质量的理解。
尽可能快地渲染图片提高对动画质量和视觉效应的察觉。注意,更快地渲染图象比更新显示频率不能提高显示质量和,在有些情况下,通常会降低显示质量。
最大化帧频,你必须在每一帧最小化动作工程的执行数量。决不要试图在一个给定帧做得更多比最小的必须品来维持经验。
当制作脚本时,你应当试着:
划分任务成子任务并每帧只运行最小数量的子任务。
建立你的脚本使帧频保持相关的不变。
消除迟钝,响应用户的输入,一个大的脚本必须在它的全部给定帧内运行。帧频很可能显着降低并且用户将很难再次提供相同的输入。
一些BBS,例如跟随BB的角色曲线被设计来操作在一个增加的方式。胜于跟随指定的曲线从开始点到终止点在一个单帧中,跟随BB的角色曲线移动角色向前只有一小部分的曲线在一个给定帧扩展工作并增加质量。
显示在图1-6中是过程循环的两个部分
1处理动作和
2渲染场景
处理动作
动作的处理在你的组合里建立交互。动作能够应用给Virtools中的每个元素。在动作的过程中所有被激活的动作都能被执行,相继地,使用一个优先的区分计划。
每个动作,当被执行时,通过动作连接能够激活其它的动作。动作连接有一个能在帧(过程循环)中被测量的连接延迟。动作延迟能够:
0—在当前帧传播激活
1—在下一帧传播激活
n—在当前帧后的第n帧传播激活
在提及之前,不同的管理器在它工作中帮助动作引擎。管理器运行他们的任务不是在动作处理的开始就是在动作处理的结束—只在渲染之前。
一般来说,你不需要知道怎样或者什么时候这些管理器工作,但有一个例外:消息管理器。消息被发送在动作处理的结束时并在下一帧开始是被接收。因此,交互驱动消息一直经历一个单帧的延迟在消息被发送和接收的帧之间。
所有Virtools管理器的完全描述在VirtoolsSDK中是可利用的。
Rendering渲染
渲染显示组成并由一个特殊的渲染引擎运行。引擎能够被用户选择并需要显卡和操作系统的实际性能;然而你能强制使用某种渲染或使某个功能丧失能力。
当工作在VirtoolsDev时,通过选择一般参数从选项菜单并选择渲染标签你能够选择渲染引擎在创建和编辑模式。
做为特色时,渲染是最浪费时间在过程循环的加强部分。
TheBehavioralEngine-CK2动作引擎
总体
动作引擎执行动作处理,是Virtools的中心组成。同样CK2知道(因此你经常在界面上看到CK参数,例如CKID,CKClass等等),动作引擎使Virtools如此的灵活。
CK2是干什么用的?CK2执行你的组成,处理场景和管理所有的交互作用在用户和组成元素之间。CK2也处理你有动作应用到组成的元素?那就是,动作物体。
一旦所有的动作在给定帧内运行,CK2提供适当的信息给渲染引擎(CK2-3),所以相互作用的结果能够显示给用户。
当一个组成被播放时,则下面连续的任务被执行。
注意:为了适当地解释下面连续的任务,你必须注意每个陈述中层级的数量。必须完成的子任务作为优先次序的任务的一部分是相同主修数字的一部分。例如,任务3.1.1节“对于每个被附加上开始的BB还没有被激活,激活的BB具有最高的优先权。”这意味着所有的子任务必须运行来完成任务3.1.1。任务的"Foreach"部分描述意思是那个任务(或者所有子任务)被重复的完成除非有必需的—所有附加上开始的BBs已经被激活—条件出现。
1对于在一个层级中的每个激活元素,在优先权顺序中分类元素来建立元素的处理顺序。
2对于每个脚本应用在上面的元素,在优先权上被分类来建立对于那些元素的脚本处理顺序。
3对于每个元素,从最高的优先权到最低的优先全,保留处理最高优先权的元素。
3.1对于每个被附加上当前运行元素的脚本,保留处理最高优先权的脚本。
3.1.1对于每个没有被激活的附加上开始的BB,优先权最高的BB起作用。
3.1.1.1处理BB,计算pOuts,激活所有的bOuts和发送任何消息。
3.1.1.2对于每个激活一个动作连接的bOut。
3.1.1.2.1如果动作连接有一个0的延迟然后激活并运行下一个BB。以这种方式继续直到所有在脚本部分中的BBs起作用或者动作连接比0有一个更大的延迟。
3.1.1.2.2如果动作连接有一个比0大的延迟然后增加BB给必须帧内运行的堆。例如,连接延迟是1,然后BB在下一帧被运行。如果连接延迟是n,然后脚本保持激活并且BB在当前帧的第N帧被运行。
注意:层级一直在起作用并在每一帧中是最高优先权的元素。所有普遍不起作用的元素在剩余任务里被忽视。
在当前帧继续运行知道所有的BB被运行或者连接延迟大于0。
当所有的动作运行被完成,CK2提供信息给渲染引擎在屏幕上渲染图象,图象被渲染
所有大于0小于1的连接延迟和动作运行再次开始。
你能够看到动作的运行起作用通过在图表中的活动的Trace模式。当组合被播放时,激
活顺序和BB的运行在图表中高亮的红色显示。
重要:如果一个BB循环在内(例如等待消息或者停止-去BB),然后对于BB的完成次序
不跟随上面的运算法则大纲。代替,执行顺序受分派给BB的优先权控制。不在外在的创
造者的优先权中,执行顺序是不确定的。所以例如,如果有两个可能的激活流程,并在BB
上没有动作连接导致的优先权。预知那个流程会被首先激活是不可能的。当下一个流程被处
理时激活的流程继续直到完成。因此,为了保证在一个脚本内连续执行,指定在BB内部的
优先权的关系变得很重要。
BehaviorLoops动作循环
当一个连续的在一个重复的状态被激活或者触发的BB(或者BG)被动作连接以某种
方式所连接时一个动作循环被形成。
换句话说,一个动作循环是一个重复操作的直观表示。一个重复操作也可以被认为是一个反复和重复处理一个操作。
在很多执行的重复操作中,一个有意义的关系是保证有一个有可接受的重复操作时间数的上限。换句话说,这需要一个机制来保证一个操作不被不确定地重复。
VirtoolsDev允许你定义在一个单独帧内完成的最大的操作数经过MaxBehavioralIterations示意性的设置。
注意:最大的动作重复缺省值是8000。这个最大的动作重复缺省值被存储在组合中。
只要循环不经常起作用,只要在一帧内的反复次数不超过动作重复的最大数。所有的动
作循环能有一个积累的0的延迟。如果在一个贞内的反复次数超过了最大的动作反复那么假定一个发生和处理的无限循环动作引擎马上停止。
例如,排列和组经常有一个0的循环延迟,所以在排列和组内的所有元素被操作在一个单贞内。
然而,要紧记你想要划分被完成的处理成每贞必需的最小数量。因此,除非完全必需,一个行为循环在至少一贞中应当有一个积累的延迟。实际的动作循环延迟能有很多积极价值在0到32767范围内。
注意:基于时间的循环BB需要一个1贞的一个积累循环延迟或者BB自动改变基于贞的处理。
Priority优先权
一旦CK2已经分类哪元素起作用,CK2怎样知道哪个元素最先运行。答案是元素的优先权:最高的优先权最先通过。]
你能够设置优先权给动作物体,脚本和BB。一个动作物体优先权和一个脚本的优先权在层级管理器被设置。BB的优先权在Schematic图解中被设置。
如果一个或者更多的元素有相同的优先权,并且处理顺序是自由的。
关于图1-9,注意两个计数器和优先权都被连接来开始一个0贞延迟。因此,渲染引擎基于每个BB的优先权必须决定哪个BB首先被激活。
BehaviorsandScripts
总体
一个动作可以表示成一个脚本—一个动作的直观表示,应用给一个元素,表现在图表里。
一个脚本由一个脚本组成—一个标题一个主体。脚本的标题显示脚本的名字和脚本的所有者。脚本的内容由开始和一个或者更多的BBs,BGs,paramOps,参数,bLinks,pLinks,注解等。
图1-10举例说明一个简单的脚本包含一个BG和BB。注意在BG和BB之间字体颜色和字体宽度的不同点。
BehaviorBuildingBlock(BB)动作建立块
执行动作的基本机构是BB。BB是一个直观表示的作为一个功能的软件元素,一个准备使用的解决方案对于一个已知的任务。解释一个BB符号
BB达到一个不同的矩形大小,在下面你能看到一些不同的BB类型。动作输入bIn
一个代表性的BB至少要有一个动作输入?虽然这有很少的例外(在自动模式中运行的BB,创建混合动画)。bIns经常被定位在BB的左边。当BB接收到一个激活在BIN状态时一个BB开始运行。
动作输出bOut
BB经常有一个动作输出?虽然有众多的例外。输出经常定位在BB右面。输出在当前贞的运行过程的结尾时被激活。激活流程遵照所有附加动作的连接。
动作连接bLink
BBs通过bLink被连接,bLink定义BBS运行的顺序。BB的运行顺序被叫做激活流程。每个bLink都有一个连接延迟来指定什么时候CK2能够在bLink的结尾处处理BB。连接延迟能够是0或n.。
参数输入和参数输出
BB有代表性的参数,或者是以参数输入的形式在BB之上接收数据或者以参数输出形式在BB之下发送数据,入图1-5。参数在后面的部分会被详细讨论。
目标参数
被用来明确确定受BB影响的元素的目标参数是一个pIn的特殊类型。
当一个BB被附加给一个元素时,那个元素变成了这个动作的所有者。代表性地,被附加给一个元素的BB把脚本的所有者作为目标。
例如,翻译经常修改它所有者的位置。然而,你可以想让一个BB去影响一个不同的元素比所有者。在这样的情况下,你必须明确地把BB做为目标在一个不同的场景中。
作为选择,你可以附上一个动作给一个不同于受动作支持的类型的元素(例如,你可以附上一个旋转动作给一个材质)。一个目标参数被VirtoolsDev自动地建立在一个矛盾级别的情况下。
一个BB只是一个可命中目标的
图1-16可命中目标的圆柱的建立模块窗
如果一个目标参数已经不存在了在一个动作目标图表上,一个目标参数能够被附加通过选择增加的目标参数?从下拉菜单中。一个新的pIn被创建作为最左边的pIn。一个目标参数输入被确定通过一对小正方形。(对于一个正规的pIn胜于平常单一的小三角形)
CSV
一些BB在左下角被标记用一个或者更多个字母C,S或者V。
在左下角的一个“C”意味着BB有一个自定义的对话框被使用来配置复杂的参数。(例如动画同步闪光装置)
在左下角的一个“S”意味着BB已经被设置。代表性地设置控制哪个参数通过BB
被处理或者参数怎样通过BB被控制。
例如,MouseWaiter(鼠标管理器)通常考虑8个bOuts。你可能只需要这些bOuts中的4个,所以你可以只考虑编辑设置你需要的4个bOuts,从而保存有价值的处理时间。
或者你可以需要一个BB象LinearProgression那样基于参数胜于基于时间的。你能够选择基于运行的贞通过BB设置。
图1—20线型级数设置对话框
在BB左下角的V代表BB有一个可变的结构。那就是你能够做一个或者更多个如下的操作:
1增加bIns
2增加bOuts
3增加pIns
4增加pOuts
5改变一些或者多有的pIns和/或pOuts类型
在在线参数中检查个体的文件给一个BB来正确决定什么能够被改变。
图1—21参数选择,一个可变的BB消息
一个BB可以有消息图标,代表着这个BB可以发送和接收消息。代表性地,消息用于用信号通知一个改变的情况,要求完成一些任务和用信号通知一些任务已经完成。
注意:在发送和接受一个消息时有一个延迟贞。BB运行
你可以一直检查个体帮助文件从在线参考到明确地看到一个BB是如何工作的。在运行时有3种类型的BB被处理;那就是。在播放模式:
1一个单独的动作:在当前贞内BB完成运行。一个单独动作的BB能够保持独立或者是动作循环的一部分。例子:SetFog(世界环境/球)
2内部循环:每贞BB都被开启和激活直到BB关闭。例子;KeyboardController(键盘控制器)。注意对于内在循环的BB你必须注意内在循环的优先权。
3外部循环:BB完成一步在当前贞内的BB处理循环中。如果创造者想要BB以经典的方式来操作,需要一个外部起作用的反馈回路。例子:BezierProgression(逻辑/循环)注意:一个外部循环的BB现在不需要一个外部起作用的反馈回路。以外部起作用不被需要的反馈回路方式创建一个脚本是可能的。
但是当他们被附加给一个元素时也有一些BB在运行时间不起作用。一个BB的例子是CreateNodalPath(3D转换和节点路径)
图1-24创建节点路径BBBehaviorGraph(BG)动作图表
一个动作图表是创作—定义由一个或者更多个BB、操作参数等组成的动作。首先来看,一个BG几乎差不多被看作一个脚本。然而,一个BG不同于一个脚本因为BG的建立故意压缩了动作。BG压缩一个动作以能够被保存和再生方式。
VirtoolsDev的一个最有用的特征是有在一个再度使用的贞中相互捕捉的能力。动作重新使用能够导致惊人的生产效率。
VirtoolsDev把一个严密相同的BG看做一个BB。一个BG能够附加给一个元素以和BB相同的方式。一个BG甚至能被看作为一个创作—定义BB,对于一个创作者、以相同方式工作的BB。一个BG能够有pIns,pOuts,bIns和bOuts。一个BG能够被看作是一个高级的完成一个在VirtoolsDev中超过BB提供的范围的特殊的任务的BB。(例如,竞赛游戏中对于一个汽车的第三人称摄影机)
注意:VirtoolsDev文件任何时间都引用使用一个(行为)模块或者一个在组合中的BB、代替行为图表的读本或者BG。
图1—25一个塌陷的延伸的行为图表。
如果你用上面的已经存在的BB图象比较关闭的BG图象,你会注意到在字体和单位上用来帮助区分BG和BB的不同。Parameters参数
一个参数由名字(pName)、类型(pType)和数值(pvalue)。参数在传统规划中是VirtoolsDev的相等变量。
参数通过参数连接(pLinks)来转移数据:
—在行为之间—从参数输出(pOuts)到参数输入(pIns)。
—在参数运转(paramOps)之间。
—在paramOps和pIns之间。
—在paramOps和本身参数之间。
参数也能被使用来分配数值给一个元素的属性。
参数类型
参数类型定义数据的种类,通过参数类型一个参数能够被完全控制。参数也能被广泛地成组:
1参考点
参数确定一个物体,例如从CKClass层级(例如,一个3D实体,一个动画,一个脚本)
2数值
参数包含一个数值。(例如,一个颜色、一个键盘键、一个整数等)
3详表
参数的数值被强加给预先确定的数值的一个范围。(例如,由MiniCalculator提供的操作者被强加给+,-./,*)
4特殊的
参数与预先的种类不配合。只有3种参数类型,反射物体、障碍和地板。
对于参数类型更详细的描述,看SDK文件。
ParameterInput,pin参数输入pIn
参数输入是行为和paramOps—控制你怎么工作的数值—的争论点。如图1—6,输入参数通过一个BB、BG或者paramOp顶部的小三角被表现。参数输入特别是自身参数是它的pvalue的来源。pIns不存储它的数值在起作用的物体之间。
ParameterOutput,pOut参数输出pOut
当行为和参数运转已经完成他们的处理时,它们代表性地产生参数输出。参数输出表现为一个BB,BG,或一个paramOp底部的小三角。参数输出能够有一个或者更多个目的地,(viapLinks)目的地在参数的数值改变时立即被更新。pOut存储它的数值在起作用的物体之间。
ParameterLink,pLink参数连接pLink
一个参数连接是一个传播一个pvalue从一个输出或者一个自身参数到一个输入
的连接。不象行为连接那样,对于参数连接没有连接延迟。参数连接通过虚线被示意性的表现。
LocalParameter自身参数
一个自身参数被表现为一个小的矩形—通常位于pIn上面。自身参数是存储数值的数据缓冲器直到它们的数值被请求通过一个数据连接。自身参数是正常的,但是不总是通过一个pLink连接给pIns。
图1—28自身参数通过参数连接附加给BB。注意:两个唯一的自身参数被允许有相同的名字。然而,这个操作不是被推荐的由于潜在的混淆。举例,当你拷贝并粘贴一个自身参数时,你拷贝参数的名字,类型和数值给一个新的自身参数:这两个参数是不同的,虽然他们有相同的名字(由于拷贝和粘贴操作)。你被鼓励使用唯一的名字给你创建每个参数。
This
This是一个涉及到脚本所有者的特殊的自身参数。当你在脚本中创建了一个This参数时,它自动设置它的数值给一致的脚本所有者。
ParameterShortcuts参数捷径
参数捷径被使用在:
通过减少pLinks的数量来单一化你的脚本。
通过脚本边界共享参数
参数捷径表现为一个箭头图标,正如你在图1—29中见到一样。
参数捷径通过拷贝一个pOut建立(通过下拉菜单)然后运行一个PasteasShortcut(通过下拉菜单)。
拷贝并粘贴一个捷径创建一个具有和最初捷径相同原始资料的第二捷径。因此,所有被拷贝的捷径指向相同的资源并有相同的名字、类型、数值和标识符在全部时间里(CK_ID)。
图1—29一个参数捷径资源和目标记号ParameterOperations(paramOps)参数运行
总体
参数运行(paramOps)是简单的操作能被完成在一个单独或一对参数之间。一个paramOps被显示为带一个名字。两了参数输入和一个参数输出的(如图1—30)
1资料检索
从动作引擎找回信息
2数学操作
例如乘法和SINE
3类型转化
把一个参数的类型转化为另一个类型所以数据是想得到的类型。例如,一个浮动点的值能够被修改给一个正文列给在3D规划中的表达。
当在示意窗中建立脚本时,paramOps和行为模块一样有用。某个操作,特别是一些要求,通过执行paramOp能够被实现。注意:类型转换能够是一种参数操作连接的形式。缺省的paramOp图表不被显示,参数操作连接变成一个不同的颜色相对于标准连接并且单词Convert沿着连接被显示。
ParameterNotation
VirtoolsDev在书面形式中使用下面的符号来描述paramOps。
对于二元操作(两个输入的操作),语法是
—结果或者输出操作类型输入1输入2
对于一元操作(一个输入的操作),语法是
—结果或者输出操作类型输入1在所有的情况下,语法是被严格定义的。
<ptype>paramOp<ptype><ptype>
例如:<Vector>Multiply<Float><Vector>
表现为一个乘的操作,产生出一个参数类型为<Vector>的输出结果,使用输入<Float>和<Vector>。
数值也能被输入和输出关联。
<Float=50.0>Multiply<Float=10.0><Int=5>
参数运行能够被使用
—完成两元操作
C=A*B
V3=Angle(V1,V2)
V2=f*V1
—完成一元操作
C=sin(A)
C=ABS(A)gettheabsolutevalueofA
—转变参数类型从一个到另一个
<Float>Setvalue<Integer>
<3DEntity>Setvalue<3DObject>
—重新找回一个物体的信息
<Float>GetRadius<3DObject>
<Float>Magnitude<Vector>
<Vector>GetPosition<3DEntity><3DEntity>
<CharacterBodyPart>GetBodyPart<Character><String>
参数操作和行为
参数操作和行为模块的处理一不同的方式发生。
参数操作在和行为模块相同的方式下不起作用。参数操作没有一个bLink结构来支持激活。相反,参数操作只在需要时计算,也就是当一个行为模块或者另一个参数操作需要这个参数操作的结果时。如果参数操作的输出数值被需要:
1参数操作被触发。
2输出的数值被计算或者被更新。
3输出的数值被返回给输入请求并被推向给其它的输出继续存在的目的地。输出操作不同于BB如下:
输出操作没有任何设置
能够被建立在任何脚本里输出操作能够附加给任何类型的物体,在行为模块里的只能够附加给物体的一个CKClass的限制不起作用。然而,参数操作通过使用OporIdentity能够被直接与活动流程同步。
AdvancedparamOps高级参数
OrderofpIns
参数输入顺序
CalculatingavalueataSpecificMoment在一个特殊时刻计算一个数值
pTypes<Angle>,<Float>,and<Percentage>Attributes属性
总体
属性一种增加元素信息的方法。属性很象存储自身信息的自身参数,不同的是属性属于一个元素代替属于一个脚本。
VirtoolsDev包括很多预先确定的属性。你也可以自定义你自己的属性。
只有动作物体才有属性。一个层级是一个动作物体所以能有属性,层级属性是有效的球形属性。
属性结构
一个属性可以有结构也可以有种类,一个典型的属性包括你能编辑的一个或更多个参数。然而,一些属性(只有ZBuffer)不能够被编辑。
例如,一个带地板属性的元素被确定给一个动作引擎应当被处理的元素作为一个地板所以角色能够在元素上行走而不穿过元素。
在自动模式下属性被增加给元素通过一个下拉采单的层级管理器,通过一个元素的建立或通过属性管理器。
AttributesManager属性管理器
属性管理器允许你检查和处理哪些元素都有什么属性。
在运行时间,属性能够:
通过设置属性增加
通过移动属性离开
找回原由的属性,如果属性存在与元素中。
所有的属性行为模块都存在于Logics/Attribute中。
AttributeShortcuts属性捷径
属性经常被用来存储关联一个元素的数据值。属性的典型使用包括一个播放者的得分,生命和物体的特征等。
如果一个属性的数值被脚本需要的话,原有的属性被使用来找回属性的数值。作为选择,一个属性的捷径也能被使用。
属性捷径被建立通过拷贝一个属性从元素的属性建立(下拉菜单)然后执行一个粘贴(下拉菜单)作为捷径操作在场景中想得到的位置。IntroducingVSL介绍VSL
总体
VSLVirtools脚本语言
TheRenderEngine渲染引擎
渲染引擎是Virtools应用程序的一部分,通过它可以渲染出你在屏幕内看到的图象。Virtools的渲染引擎通常有两个组成,任一个都能被替换或者通过SDK自定义如有权使用VirtoolsRenderPack。
1渲染引擎—CK2_3D
2TheVirtoolsRasterizers,提供对DirectX5,DirectX7,DirectX8,DirectX9andOpenGL.的支持。InitialConditions初始条件
Interface界面
总体
这个截图介绍和解释了Virtools界面中的所有元素。
这个截图被分成了几个相应的部分。
MenuBar菜单栏
3DLayout3D设计
BuildingBlocksResources建立模块资源
DataResources数据资源
LevelManager层级管理器
Schematic示意图
EntitySetups实体建立
StatusBar状态栏
BuildingBlocksResource建立模块资源
总体
建立模块资源是一个资料库包括动作建立模块(BBs)。你可以浏览BBs通过左侧方形窗口内的种类使用树。为了找到学习更多在某个BB中,双击BB来打开它的在线文件。
Category种类
列出了BB的种类和子种类。
BehaviorName动作名称
BB的名称
Applyto应用于
你能够应用到BB的实体的类型
T
如果BB是可命中目标显示T。
Description描述
给行为模块的运行一个简短的功能描述
增加行为给元素
在3DLayout或者LevelManager中你可以拖拽一个BB到元素来把这个BB附加给元素。你可以同时选择几个BB用SHIFT或者CTRL+点击。在3DLayout或者LevelManager里
拖拽一个BB到一个实体上来增加给BB第一个附加给这个元素上的脚本,或者建立一个脚本如果元素没有任何脚本,并打开编辑参数对话框给那些具有能够编辑的参数输入BB。你也能直接拖动BBs到在显示上现有脚本。数据资源
总体
一个数据资源对于在一个组合中需要的所有媒体来说是一个存储地方。一个数据资源仅仅是一个根目录文件夹被确定给DEV包括子文件夹的内容的特殊类型数据。
为了增加元素给组合,选择一个或者几个元素然后拖拽这些元素到3DLayout或者LevelManager里。
创建一个数据资源
创建一个新数据库的过程很简单:从资源菜单,选择CreateNewDataResource。你将被提示选择一个位置-可以是你喜欢的地方甚至可以是一个服务器那样几个人可以很容易接近-来保存你的数据库。一个平常的WONDOWS文件夹被建立来存储你的文件(.nmsforBehaviors,.nmo,.jpg,.wavetc.forData),并且一个Virtools的.rsc文件以涉及到他们的相同的名字被建立。一旦你建立了你的数据库,它就能在Virtools屏幕的缺省部分自动地打开。
增加媒体给一个数据资源
一旦被建立,它将会生成缺省的下面八个缺省文件夹—2DSprites,3DEntities(concerninganothersub-folderAnimations),3DSprites,Behaviors,Characters(containinganothersub-folderAnimations),SoundsandTextures.这些文件夹能够被重新命名和删除。注意,要用资源充满他们,在窗口中定位文件夹并拷贝你的文件到适当的子文件夹。
右键单击一个动作图表(BG)允许你编辑这个描述。
关闭一个数据资源
为了关闭一个数据资源,右键单击它的标签并选择关闭或者单击它的标签选择它并按删除键。CustomizingtheVirtoolsInterface自定义Virtools界面
MenuBar菜单栏
总体文件
资源
编辑器
选项
帮助File文件
NewComposition新组成
LoadComposition读取组成
SaveComposition保存组成
SaveAs...保存组成为。。。
SaveVersion保存译本
ReverttoSaved回复到被保存的
Undo(3dLayout/Schematiconly)
Redo(3dLayout/Schematiconly)
PurgeUndo清除Undo的历史MergeComposition...合并组合
MergeCompositionasNewScene...合并组合到一个新场景ExporttoVirtoolsPlayer输出到Virtools播放器
CreateWebPage...建立Web页PrintSchematic...打开一个对话框允许你打印脚本从示意框中。
Exit
Undo
ResourcesMenu
OpenDataResource打开数据资源
打开一个对话框允许你选择一个现有的数据资源来打开。
CreateNewDataResource创建新的数据资源
ImportFile输入文件
打开一个对话框允许你直接输入文件到一个组合中而不用持有可通过的数据资源。
ImportFileas->Character/Place/Scene
打开一个对话框允许你作为一个角色、地点或场景。Help
Editors编辑
AttributesManager属性管理器
HierarchyManager层次管理器
PathManager路径管理器
VariableManager变量管理器
VSLScriptMamagerVSL脚本管理器
ParameterDebugger参数调试器
CloseAllSetupsandManagers关闭所有的设置和管理器
关闭所有的窗口和管理器ActionManager动作管理器
总体
在VirtoolsDev中,一个动作是一个特殊类型的VSL脚本(被叫做VSL动作脚本)—它被建立在VSL脚本管理器里只能在Dev的创作环境里被使用。在VSL中。一旦脚本被建立,一个脚本被打开并从动作管理器中发动,或者一个被定义的使用者的快捷键在选相或参数上来完成一个预先确定的任务。
本质上,动作管理器允许VSL脚本来建立和共享运行在VSL中的它们自己的献身工具并且点击几个按键来通过它们—一个巨大的生产力推进。例如,只通过几个点击来制作反复的媒体修改:改变位置、重定义位置、排列物体等。
使用动作管理器
重要:VSL动作脚本只在VSL脚本管理器中建立、删除和拷贝。
动作管理器处理使用者的访问给他们的动作。动作能够被组织,简单的执行从动作管理器的界面,并且/或分配给一个快捷键。动作也能循环一个自定义使用者的延迟在两个反复之间。
当一个动作被建立在VSL脚本管理器中,一个相应的.VSL文件被建立在VirtoolsDev目录下的动作文件夹里。在这个文件夹里,你会找到两个文件,保存当前动作管理器界面的ActionEditorInterface.ini和ActionEditorList.ini文件。所有在动作管理器界面中包含在.VSL文件中所有在动作管理器界面中的VSL动作脚本也能够被打开、组织、执行和指派一个用户自定义的快捷键。
注意;一个VSL动作也能够被简单的共享通过拷贝VSL文件到另一个Dev用户的/动作子目录并且输入它到动作管理器。TheToolbar工具栏
VirtoolsDev第一次被运行时,动作文件夹中的所有动作被加到动作管理器中:对于在动作文件夹中的每个文件被建立并且包含在哪个文件夹中的所有文件被列出。如果没有动作,一个缺省的标签被建立,命名为Default动作。每个标签包含一个动作列表和服务来组织你的动作。使用contextual菜单来建立/移除/移动/重命名标签。标签能够被拖动来改变它们的位置。当前至少有一个标签。
RefreshScriptsDescriptionsbutton更新脚本描述按钮
ExecuteActionbutton执行动作按钮
ActionTimer动作计时器
ImportallActions输入所有的动作ActionLists动作列表
每个标签提供组织一个分开的动作目录。缺省情况下,在一个空的目录里只有一个标签。使用者可以增加或者移除标签,和增加或移除在标签列表中的动作来以最有效的方式组织动作。使用前后关系菜单来创建/移除/移动/编辑动作。你可以在工具条上拖拽标签来改变它的位置。这是专栏描述。ActionListContextualMenu动作列表前后关系菜单
AttributesManager属性管理器
属性管理器显示所有当前可用所有分类的属性,通过双击它能够扩展一个种类来看到它的内容。一个属性的名字就是一个属性的类型,例如障碍。
使用属性管理器工具条
CreateAttribute创建属性
CopySelectedItemvalues拷贝被选择的项目值
PastevalueOnSelectedItems粘贴选择的项目
RemoveAllUserAttributes移除所有用户的属性
删除由用户创建的所有的属性和种类,不管在组合中他们是否被元素使用。注意,你不能移走系统的属性,这些属性通过Virtools或者自定义的plugins定义。
主窗口(物体的名字、属性的名字、属性值)
这个窗口显示在左侧窗口被选择的具有属性的物体的列表。从这,你可以很快的地看到并修改诺干物体的属性的值。通过(右键单击)下拉菜单你可以拷贝和粘贴用右键选择物体
的值,并且你也可以从被选择的物体上删除被选择的属性。双击属性值将会打开编辑对话框。
从属性管理器中增加属性属性能够被拖动从:
左侧的列表(所有属性的列表)
右侧的列表(带属性物体的列表)
注意:属性的值能够被拷贝在这样的情况下。
给:
在3DLayout里的物体
在LevelManager中的物体
在物体建立的任何地方
注意:如果一个属性和目标物体的属性不一致,这个属性将不受影响。HierarchyManager层级管理器
总体
通过选择Editorsmenu里的HierarchyManager能够打开层级管理器。层级管理器是一个包含在组合中的可渲染实体的树状的预览。
你可以塌陷或者扩张一个层级通过点击种类旁边的三角形,或者通过使用在顶部工具栏第一的两个按钮。通过这种方式你能够塌陷/扩张若干个选择的项目。
对于一个元素和他的所有子层级,简单拖拽元素到新的父物体上。如果你想把“orphan”的元素,拖拽元素到跟上。
你能够直接编辑3D或2D实体的渲染优先权在层级管理器中。
Popupmenu
Setup
Rename
EditRenderPriority
SetInitialConditionsonHierarchy
RemoveInitialConditionsonHierarchy
Toolbar工具栏
ExpandSelected在一个层级中扩展选择项目
CollapseSelected在一个层级中塌陷选择项目
Display/HideMeshes显示或者隐藏网格
允许使用者显示被3D物体的层级使用的网格。带一个不同的图标的网格也能被显示为使用它的物体的子物体。
Display/HideMaterials显示或隐藏原料
Display/HideTextures显示或隐藏材质RenderPriorityColumn渲染优先权栏
点击一个优先权来编辑。3D和2D实体被层级存储,然后被优先渲染,然后被命名。
ParameterDebugger参数调试器
总体
参数调试器允许你同时显现和编辑几个自身参数或者参数输出的参数。参数不能存在于相同的脚本中—你也能粘贴参数从属性或者排列到参数调试器中。
参数调试器的编辑器被打开通过选择编辑器中的参数调试器。缺省情况下它打开在Virtool的下半区。
HowtousetheParameterDebugger怎样使用参数调试器
选择影响你的参数,按下CTRL键并按下参数
一旦你作出你的选择了,右键单击参数并选择拷贝选择或者使用CTRL+C。
按下参数调试器标签来激活它,在主窗口中右键单击并选择粘贴
你会看到四个专栏
Name参数的名字如果它是从一个外部参数一个模块或者一个本身参数的脚本;如果它是一个参数运转的结果,然后它就会被“Out”。
value参数值
OwnerObject所有者物体
OwnerScript所有者脚本
当在运行和暂停/重起之间转换时被显示的值将会被更新除非你已经击活了示意框的TraceMode,在TraceMode模式下你能够立即更新。
为了改变参数的数值,双击它。一个编辑的参数对话框被打开,允许你改变数值。
为了从参数调试中移除一个参数,单击它选择这个参数,然后按下DEL键。
为了增加参数,只需返回到示意框,拷贝这个参数,然后如上所述在参数调试器中粘贴这个参数。
你也能看到属性值,使用“CopyParametervalue”或CTRL+C在示意管理器中或在一个物体属性建立中。
PathManager路径管理器
总体
路径管理器允许你定义路径给数据(图象、声音、或者其他的数据文件)来源。
例如,VariableManager
总体
在VirtoolsDev中,一个变量是一个编辑器或者管理器暴露的内部参数所以你能够合并和或者改变它的数值。例如,Antialiasing反锯齿是一个Virtools渲染引擎的参数让你指定渲染级别(0=none,1=1x,2=2x,4=4x)。如果你想要在运行强制抗锯齿,你可以在VariableManager中设置抗锯齿级别并且做标记,那样变量能够保存在CMO里。
VariableManager允许你编辑、保存、读取、拷贝变量从一个组合到另一个组合。如果你在一个变量中修改一个变量VariableManager变量管理器让你设置能够应用于另一个组合的新的缺省值,并且你能够恢复到缺省值或者本地值(定义在内部代码里)。变量以粗体形式列出那样他们的值不同于本地设置。
可定义的变量使用者的缺省值被保存在配置dev.ini文件里,dev.ini的最初设置是本地值,直到新的值被提交。dev.ini能够被编辑在正文程序中对于简单的咨询和编辑。
保存在组合中的某种变量,当被X显示在组合专栏里。一个变灰的X显示这个变量被组合需要。没有X代表着变量不被自动地保存在组合里,但是你仍然能强迫它这样通过双击使一个黑色的X出现在专栏里。通过这个方式,你或你的听众能够确定播放这个组合以能够被保存的精确的配置
如果你已经在一个组合中改变了一个变量,你能够恢所有或者一些参数从配置文件里;相反地,你能够保存所有或者一部分这些自定义设置给一个能够在另一个组合中读取的新的配置文件。最后,和变量管理器,你能够拖动一个变量到Schematic中并象使用自身变量一样使用它们。Variablesv.Preferences变量参数
UsingtheVariableManager
Toolbar工具条
ChangeDisplayMode改变显示模式
这个按钮让你栓牢在列表和文件夹显示模式之间,你也可以点击专栏标题来分类。(举例来说,下面被分类通过组合专栏)
DefaultSelectedItems回退选择项目
这个按钮回退被选择的变量到本地变量如果他们已经改变。
DefaultAllVariables回退所有变量
Commit提交
Restore恢复
All/Composition/Application所有/组合/请求MainWindow
VariableName变量名
value变量值
Category种类
Composition组成RuntimeEditing运行编辑
VariableManager'sListofVariablesandDefaultvalues
变量编辑器的变量列表和缺省值
Category/VariableName种类/变量名OptionsMenu选相菜单
GeneralPreferences一般参数
Activate/DeactivateTraceMode激活/解除跟踪模式
UnusedObjectsExplorer不被使用物体资源管理器
Hide/ShowDynamicObjects隐藏/显示动力物体
RefreshWindows刷新窗口
ResetInterface重新安排界面
BuildingBlockVersionTest行为模块翻译测试
这个功能块能够使你测试所有模块不能改变他们的输入或输出数字来看是否他们和当前你正在使用的Virtools译本是否是一致的。
InstalledPluginsInstalledPlugins安装Plugins
总体
安装Plugins窗口显示所有的当前可用到的Plugins。
一个Plugin是一个软件组成提供某种功能给CK2,Virtools的动作引擎。这有许多不同类型的Plugin:行为模块Plugin,文件读取Plugin,等等。对于建立和寄存你自己的Plugin的信息见VirtoolsSDK。
InstalledPluginsWindow
Plugin
Active
Description
DllUnloadingPluginsTemporarily临时卸载Plugins
你可以临时卸载一个plugin,这允许你编译一个plugin,例如你可以用SDK来发展你自定义的plugin,而不用重起DEV。BuildingBlockVersionTest建立模块译本文件
总体
建立模块译本文件能够使你确定你正在使用的建立模块与最近的Virtools译本一致,这样你的译本能够被观察不需要任何问题在VirtoolsWebPlayer中。这个功能只在选相菜单才能到达。当一个荒废的模块被发现时,它能被取代。
UsingBuildingBlockVersionTest
当你点击选相菜单中的建立模块编译文本时,程序测试你组合中的所有模块。
如果在行为和原型的不同被发现,一个对话框将出现来问你是否希望这些行为被自动地替换。
动作不同被发现当:不管你是否选择使有一个荒废译本的模块被代替或者不,荒费模块的名字将会被记录在ErrorLog里,如下.
Warning
SeealsoBuildingBlockVersionTestinMultipleCMOs(TestBB.exe)
在多数CMOS中的编译文本模块
总体
TestBB.exe能够使你确定在你CMOS中的模块与最近的Virtools译本一致.,所以你的组合能够被看到不需要任何问题在VirtoolsWebPlayer中。应用程序分析一个文件的CMOs来确定哪个组合需要更新。TestBB.exe靠近于Dev.exe根目录文件..
一旦CMO在DEV中已经被确定或被打开,容易的方式来更新使用BuildingBlockVersionTest的BBs。CheckMethods检查方法
UnusedObjectsExplorer不使用的物体资源浏览器
TheUnusedObjectExplorer允许你快速找到在你的组合中不被使用的资源,例如材质和网格。GeneralPreferences一般参数
总体
一般参数包括控制涉及到DEV使用者界面的一般外观也象选项涉及到特殊的功能例如选择模式,3D变化工具,渲染模式和引擎,脚本工具等。为了打开一般参数选择,点击在3DLayout窗口右上角的一般参数图标,或者选择从选相菜单选择一般参数。
下面部分组成了一般参数。
3DLayout-Rendering
3DLayout-Actions
3DLayout-Interface
3DLayout-ReferenceGrid
3DLayout-Snap&Align
Schematic
MiscellaneousControls
使用CurrentPrefs菜单来选择你希望编辑的参数。AlienbrainMenu
StatusBar状态栏
在一个详细元素上点击一个区域来得到帮助。把鼠标定位于一个区域上来看这个元素的简短描述。
下面特征的更多细节被描述在更多的分离页里。
EventLog事件日志
Profiler模制者
InitialConditions初始条件
TimeSettings时间设置SelectionName选择名字
Action动作
XYZCoordinatesXYZ相配之物
EventLogInformation时间日志信息
FPS显示贞频在每秒的贞中
RestoreInitialConditions恢复初始条件
Play/Pause-TimeSettings运行/暂停—时间设置
StepOneFrame一贞的脚步
只运行一贞是在运行/停止或者暂停模式
EventLog
总体
Virtools的事件日志服务来警告当你试图做一些不可能发生的事情时,例如,应用一个动作给一个不能接受它的实体。事件日志也保持明了任何你读取的场景和你增加给组合的
任何媒体。
UsingtheEventLog使用事件日志
事件日值通过点击朝向关闭播放按钮Virtools屏幕的底部事件日志图标出现。
在上面你能看到只在打开Virtools后的事件日志是什么样子,Virtools报告一个错误通过闪现一个事件日志图标为红色并在状态的底部显示信息。
Clear
清除事件日志,Play/TimeSettings运行和时间设定
总体
从自动模式到运行模式转换,注意暂停不能重新安排初始条件。右键单击播放按钮能够访问时间设置。通常制作者连接动作关系。这样有时有疑问,如果你有一个强大的计算机,在这样的情况下,它就能很好地限制贞频。时间设置允许你指定是否贞和动作频率能够被连接或者分离,并且允许你自定义这些设置。
UsingTimeSettings使用时间设置
FrameRate贞频
Free
SynchronizetoScreen与屏幕同步
Limit限制你必须指定一个最大限制贞频
ScaleTime加速时间
BehaviorRate行为比例
LinkedtoFrameRate连接贞频
Limit限制
DeltaTime
指定数值来设置最小和最大三角时间将会传给行为。VirtoolsWebPlayer
Troubleshooting发现并处理故障Profiler
Profiler允许你看出多少电脑时间用于特殊任务。3DLayout
3DLayout显示你工程的内容在一个实时的3D环境里,并为建立、选择、操作3D实体提供工具,也是导航工具。ToggleGuides栓牢向导
栓牢参考向导提供3D线更好地看到透视图。不要忘记点击打开向导参数
栓牢屏幕向导屏幕向导提供一个格子来允许你更容易地放置和排列2D元素。
3DLayoutShortcutMenu3D规划快捷菜单
弹出菜单能够被使用通过右键在3DLayout视图中。显示改变依靠是否鼠标在一个实体上,或者如果任何实体被普遍选择并且如果当前激活的摄影机是缺省摄影机的一个。部分有用的是:
Objectrelated关于物体
使用这个部分你能访问实体建立在鼠标下,并对于一些其他的实体也能被附加上。例如,一个3D实体也可以有一个网格和网格的一个材质。
Camerarelated关于摄影机
如果当前摄影机不是缺省摄影机的一部分,你可以弹出摄影机建立。任何摄影机都能被重新安排它的缺省值。在这样的情况下,它的所有设置都会被失去。你能够改变当前摄影机通过一个子菜单。
InitialConditionsonCurrentObject当前物体的初始条件
Scriptsrelated关于脚本
脚本能够建立在当前物体上,和被附加的实体上。脚本也能被建立在当前摄影机上。如果物体被选择,脚本能够被建立在每个选择的物体上。如果当前实体和摄影机有其它脚本,他们能够被显示在其它脚本里。
Selectionrelated关于选择3DLayoutKeyboardShortcuts3D设计快捷键
3DLayoutTopToolbar
3D设计顶部工具条
Snapshot快照
这个工具允许你捕获3D设计的图象或者一个它的特殊部分。图片也能被拖动到在示意框上的一个脚本上,或者加到一个物体的建立里,允许你有一个物体的绘图表现。
3DLayoutExplorer
3DLayoutExplorer允许你看到你有的在的当前组合场景中的项目,然后选择它们。在3DLayoutExplorer和3DLayout中选择是同步的。选择也能在组中管理,通过使用“选择组”3DLayout的下拉框。注意,你不能改变一个组,如果一个选择被锁定。
Usingthe3DLayoutFilter
SelectCamera
SelectionGroup建立和创建一个选择组
Tocreateaselectiongroupin3DLayout
Toswitchtoaselectiongroupin3DLayout
3DLayoutTransformationTools转化工具
转化工具被使用来选择、移动、缩放或改变一个或几个物体的方向。一些这些工具能够被使用用一个在头脑中的特殊的指示点,或者使用一个平面或者一个轴。通过这种方式,3D实体和2D实体也能被编辑。
可用到的工具有
SelectionTool
SelectandTranslate
SelectandRotate
SelectandScaleSelectandTranslate选择和转化
这个工具完成一个几何的转化在一个给定的选择上。例如方向、坐标系统或者约束的转化参数被一组被描述在另外的标记和描述中的标记控制。
UseSelectandtranslate
来交换现有选择的位置。
左键单击一个选择物体,并按下按钮。
拖动鼠标来转化实体的选择。
释放鼠标左键来结束动作。
当把握鼠标左键时,你可以取消动作,通过点击鼠标右键。
对于每个选择实体的位置在动作的开始将会被恢复到他们的原始值。
增加/移除选择的物体,并改变他们的位置
点击左键在一个不被选择的物体上。物体将会取代选择;同时按下CTRL的话,将会增加选择。
现在你可以开始拖拽鼠标来移动选择,如上说明的。
如果你不点击一个实体,你也能完成一个区域的选择。
运动方向和增加标记
通过强迫坐标或者强迫平面决定
也可以通过当前的调整系统
更多的约束能够被设置,使用ToggleSnap。当吸住时,在鼠标下的物体能够对齐到另一个物体,依靠捕捉设置。
物体的子层级在选择中能否移动需要ToggleHierarchyButton情形。
一般参数设置SelectandRotate选择和旋转
总体
这个工具运行旋转以一定角度,被给3D物体的设置。交替地,它能够编辑选择在旋转它之前。旋转参数例如速度、调整系统、或者约束被一组标记约束。
使用选择和旋转
SelectandScale选择和缩放
SelectionTool选择工具
3DLayoutNavigationTools导航工具
CameraDolly移动摄影机和目标点沿着摄影机的Z轴
CameraFieldofView摄影机视野大小
CameraPan在XY平面上移动摄影机和目标点
CameraRoll沿Z轴旋转摄影机
CameraZoom摄影机放缩
Orbit绕目标点盘旋,目标点保持在原位LevelManager层级管理器
ActivateatSceneStartColumnActivatingandDeactivatingScripts
ActiveNow
Name
Priority
ResetatSceneStartResetDon'tReset
Visible可见/隐藏/分等级隐藏
CreateNewPlace
CreateNewPlace
CreateNewArray
CreateNewScene
CreateNewWorkset
CreateNewScriptExpandbutton
Collapsebutton
Schematic
SchematicTopToolbar顶部工具栏
BehaviorLinks(bLinks)
一个行为连接有一个传播延迟,一个1的连接延迟就是那个行为连接不能激活连接给它的BB直到下一贞。一个0的连接延迟代表连接的BB被马上激活。
注意在一个循环中你不能使用一个等于0的连接延迟,除非在一个特殊的环境中,例如重复一个组或者一个排列。一个0的连接延迟能够产生从部终止的循环。
behaviorlinkproperties
当连接bOutsorbIns时,动作连接延迟被设置给这个动作贞的数量值来等待在继续运行之前。缺省是0。
PreventInfiniteLoop防止无限循环
MaxBehavioralIterations最大动作反复
LinkMode
UsingLinkorAutoLinkModetocreateLinks点击选择你想要连接的来源或者目的地,然后每个点击都会建立一个控制点,直到你点击最终的项目来完成连接。
如果你在一个自动路径找到连接方式,你只能从一个动作输入/输出直接到另一个动作输入/输出。
注意连接和自动连接只是创建连接的两种可能方式,InvalidorexistingpLinks
如果你试图建立一个失败的连接,Virtools将会用一个错误框警告你。
LinkswithErrorsExplorer错误连接对话框
Messageexplorer消息对话框
SchematicExplorerScriptDebugger脚本调试器
脚本调试器允许你看到哪个行为和举止在一个给定时间激活:这些以红色拖动。这有两个拖动模式:
一个正常的跟踪的模式。通过点击TRACE激活。
一个完全拖动方式