- 最后登录
- 2014-10-23
- 注册时间
- 2011-7-19
- 阅读权限
- 90
- 积分
- 81303
- 纳金币
- -1
- 精华
- 11
|
三、作品的元素
(一)概述
以下你能看到组成一个Virtools作品的一些元素。缩进表示了它们的依附关系。Virtools类层次结构的交互对象分支主要由元素、类和面向对象设计引入。
例如,一个2D实体和一个3D实体都是渲染对象的子对象。一个2D帧不是一个渲染对象的子对象,但是它却是由渲染对象派生出来的。
作品中的元素,依照类型和字母顺序排列
BeObject—具有行为能力的对象
RenderObject—当渲染时能够可见的对象
2D Entity—有长度、宽度但是没有深度的对象
2D Frame — 具有可见部分的2D实体
3D Entity—具有长宽高的对象
Character—一种具有智能的3D实体,可以由用户或者软件控制。它可见,但通常是隐藏的。
Camera—定义一个视点的对象
Curve —一个3D实体装置,它在3D空间中定义一条曲线
Grid —一种2D数据装置,值与3D物体相配
Light—一种提供照明的对象,是不可见的(抽象、数据装置、联合)
Array—表达为一个表格的数据装置
Group—一组没有类型限制的任意组合对象
Level —作品的父系对象
Material—一个网格的表面特征
Mesh —定义一个对象形状的顶点集
Place—关于对象位置的集合
Scene—关于对象时间的集合
Sound—一种以数字格式存储的声音
Texture —用来提供对象表面更好细节的图象
(二)具有行为能力的对象
在Virtools Dev中行为是主要概念,但是如果不把它们附加给元素,则不起作用。注意,从行为对象类能反映出所有 Virtools Dev类层级结构。实例化的对象是附加了行为的对象。BeObjects能够有行为,但不是必需的。
当一个BeObjects附加了行为时,它就是这些行为的主人。所有的行为只能附加一个BeObject。
注意,一个行为的所有者不总是行为的目标。附加到BeObject上的行为可以改变所有者或者改变到其它的对象(目标)。
(三)Level
层级可以被描述为:
l 一个作品中所有对象的全局容器
l 一个作品中所有元素的根
l 一个作品中所有元素的父类
一个CMO中只能有一个层级。层级能够包括不只一个场景并有零或更多的场所(图层)来组织你的作品,更易于管理。
一个层级是一个BeObject,因此行为和属性能够被附加到层级上。层级脚本通常用于管理场景、位置和需要横贯几个场景的元素(比如阵列)。
注意:附加给层级上的脚本能够自动附加给所有场景。
(四)场景
Virtools Dev里的场景就象是电影中的场景一样。
l 在同一时间内只有一个场景能被激活。
l 只有在场景中的元素才能被激活。
l 只有激活的元素才能被摄影机捕获。(被Virtools中的交互引擎处理)
不是激活场景里的的元素不起作用。它们不能被渲染,并且它们的脚本不能被处理。
因此,场景是把大作品进行分片处理的完美方法。当和其它人协作工作时,场景很重要:每个人都可以工作在自己的场景里,最后可以保存和合并成一个CMO文件里。
层级场景(包括了所有层级对象)在启动时生成一个激活场景。当另一个新的场景开启时,以前激活的场景自动无效。
一个场景就是一个BeObject,因此行为和属性可以附加到场景上。
场景包括参考元素、没有副本的元素或元素本身。
(五)场所和入口
就象场景在层级内分片处理作品一样,场所在空间上分片处理作品到场景或层级。在一个层级中可以有零到许多个场所。在场景和场所之间没有什么特殊的连接。
场所是3D实体层级的一部分,能够包括零到许多个3D实体。每个场所都可以看作是在场所内的所有3D实体的父系。
场所和入口用来优化渲染过程,显示与否取决摄影机的开启。当入口系统(以入口管理器为例)被激活时,规则如下:
1.在进行每个渲染进程之前,包含摄影机的场所列表通过场所限制盒被确定,这些场所和所有带有入口的场所有可能可见,被考虑进行渲染处理。
2.如果一个元素不是这个场所的成员,这个元素不被渲染。这个元素立即被确定为不可见(即使这个元素被激活并且它正执行交互行为)。
3.如果入口系统不被激活,不对场所和入口进行渲染优化(每个3D实体被认为具有潜在可见性,并只有一个层级),但是场所仍然会被用来分类组织3D实体给其它的用途。
场所在多人合作工作时很有用,每个人都能工作在自己的场所下,然后保存和合并到一个CMO文件中。
场所也是一个BeObject。因此行为和属性也能加到场所上。
(六) 抽象元素
抽象元素在Virtools Dev中是一种数据结构,用来存储信息和描述两个元素之间的关系。
组
组是组织Virtools Dev 3D实体最简单最有效的方法。组有规律的排列行为对象,执行也许是必须的或者不受限制的包括相同的CKClass元素或者类型的任何逻辑交联。
组能够在创作模式或在运行时通过
BBs
建立。组能够被重新安排、覆盖等。--许多标准的
BBs
提供对组的管理。
一个组是一个BeObject。因此,行为和属性也能附加到组上。组能够是其它组的一部分。
阵列
阵列是由行、列构成单元的简单表格。阵列是纵向排列(所有纵向元素必须有相同的类型)。阵列提供5种数据类型。
1.整数
2.浮点数
3.字符串
4.CKObject
5.参数
阵列组能够在创作模式或在运行时通过
BBs
建立。阵列能够被分类、过滤、搜索、重复等。--许多标准的
BBs
都提供阵列管理。
阵列是它自己的行为对象,所以可以有行为附加给它。
|
|