- 最后登录
- 2018-12-19
- 注册时间
- 2012-8-20
- 阅读权限
- 90
- 积分
- 54706
- 纳金币
- 32328
- 精华
- 41
|
三、作品的元素
(一)概述
以下你能看到组成一个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
层级可以被描述为:
· 一个作品中所有对象的全局容器
· 一个作品中所有元素的根
· 一个作品中所有元素的父类
一个CMO中只能有一个层级。层级能够包括不只一个场景并有零或更多的场所(图层)来组织你的作品,更易于管理。
一个层级是一个BeObject,因此行为和属性能够被附加到层级上。层级脚本通常用于管理场景、位置和需要横贯几个场景的元素(比如阵列)。
注意:附加给层级上的脚本能够自动附加给所有场景。
(四)场景
Virtools Dev里的场景就象是电影中的场景一样。
· 在同一时间内只有一个场景能被激活。
· 只有在场景中的元素才能被激活。
· 只有激活的元素才能被摄影机捕获。(被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都提供阵列管理。
阵列是它自己的行为对象,所以可以有行为附加给它。 |
|