Blender游戏引擎数据文件系统涵盖数据块设计、文件处理、场景设计以及数据文件的追加和链接等功能模块。
Blender游戏引擎数据文件系统格式为*.blend,每一个.blend文件包含了一套数据库,数据库涵盖了场景、物体、网格以及纹理等,都保存在文件当中。一个文件可以保存多个场景,每个场景可以保存多个物体。物体可以保存多个材质,材质可以保存多张纹理。在不同的物体之间还可以创建链接关系。
使用大纲视图编辑器的时候,可以很方便地在文件中获得需要的内容,编辑器显示某个*.blend文件中所有的数据。大纲视图可以进行一些对物体的简单操作,如选择、重命名、删除、链接以及父子化关系设定等。
打包和解包数据,打包数据Blender有能力将不同类型的数据封装进.blend文件中。例如,一个以.jpg为后缀名的图片材质可以通过选择“File”(文件)→“External Data”(外部数据)→“Pack into .blend file”(打包到blend文件),把数据放入.blend文件中。当.blend文件被保存时,那个.jpg文件的副本就会被放入.blend文件里面。这个.blend文件可以被复制和邮寄到任何地方,那个图片副本跟着一起移动。只要在标题栏看到一个小的“圣诞礼物盒”,那就说明已经将一张图片打包进.blend文件了。
解包数据,当收到一个打包好的文件,可以使用“File”(文件)→“External Data”(外部数据)→“Unpack into Files”(解压包到文件)进行文件的提取。解压数据包时会出现两种选项,一种选项是按原来的目录结构解压文件,另一种是将文件放在和当前.blend文件的同一目录下。如果打算将修改后的文件打包发回给原来将文件发给你的人的话,那么可以选择第一种选项进行操作。
Blender游戏引擎数据块设计涵盖数据块文件的使用和分类两大部分。数据块文件的使用包括数据块特性、数据块垃圾回收、数据块删除等。数据块文件的分类包含动作、骨架、笔刷、相机、字形、蜡笔、组、图像以及库等。
1)Blender游戏引擎数据块使用
一个Blender工程项目文件是由基本的数据块单元构成,例如:网格(meshes)、物体(objects)、材质(materials)、纹理(textures)、节点树(node-trees)、场景(scenes)、文本(texts)、笔刷(brushes)甚至是屏幕(screens)等。而骨骼(bones)、序列片段(sequence strips)和顶点组(vertex groups)不是数据块。
数据块特性:数据块是Blend文件的主要内容。数据块可以互相连接、重用和实例化,如子/父、对象/对象数据以及具有修改和约束等;具有唯一名字,允许被添加、删除、修改和复制;数据块可以在文件之间连接;数据块能有自己的动画数据;数据块可以有自定义属性。
当处理很复杂的工程项目管理任务时,数据块就会变得更加重要,特别是对.blend文件进行内部链接的时候。在大纲视图编辑器中,选择“大纲视图”→“数据块”。数据块视图,如图2-14所示。
图2-14 数据块视图
数据块使用(垃圾回收),Blender使用常规的数据块处理规则,没有被使用就移除。该规则通过设置一个数据块的使用数目来实现,当一个数据块的使用数目为0时,该数据块就会被释放。当数据块写入.blend文件的时候,这些零使用数据块将不会被保存。
数据块共享,很多种类的数据块可以与其他的数据库共享,如在通常的数据共享形式里:在材质中共享纹理;不同的物体中共享网格;不同的物体中分享动画动作,如让所有的灯光同时变暗。还可以在文件间共享数据库。
删除数据块,数据块通常在不再使用的时候被删除,但是也有例外的时候,如Scene(场景)、Text(文本)、Group(组)和Screen(屏幕)这些数据块可以被直接移除。其他数据块,如分组和动作可以在大纲编辑器的上下文按钮中取消链接。
2)Blender游戏引擎数据块分类
Blender游戏引擎数据块分类包含数据块类型、链接以及打包等。数据块类型包含动作、骨架、笔刷、相机以及曲线等。链接表示链接库,支持Bing(Bing中文名为“必应”,是全球领先的搜索引擎之一)链接到其他Blender文件,并支持将文件内容打包到Blender文件中,如表2-4所示。
表2-4 Blender游戏引擎数据块分类表
续表
续表
Blender游戏引擎场景设计是对管理Blender工程项目非常有用的工具。每个*.Blender文件都包含多个场景,这些场景可能共享了物体或者材质等数据。Blender游戏引擎场景设计包含新建、复制设置、链接物体、链接物体数据、完整复制等功能。Blender游戏引擎场景设计,如图2-15所示。
图2-15 Blender游戏引擎场景设计
可以通过单击 按钮添加一个场景在新场景列表中,选择“新建”按钮,添加一个新的场景。
新建:表示使用默认值新建一个空的场景。
复制设置:使用当前活动场景,再新建一个场景。如新建场景为(场景),复制设置场景为(场景.001)。
链接物体:该选项会创建一个新的场景使用活动场景的设置和内容。然而链接物体与复制设置的区别为新场景的物体都是链接于旧场景的。因此,新场景中物体的改动都会对旧场景产生相同的改变。
链接物体数据:在当前选定的场景中创建新的、复制的所有对象的副本,但这些重复的对象中的每一个都将有链接到原始场景中的对象的数据(如网格、材料等)的链接。这意味着,可以改变新的场景中的对象的位置、大小和方向,而不会影响其他场景,但任何修改的对象数据(如网格、材料等)将会影响其他场景。这是因为“对象数据”的一个实例现在正在被所有场景中的所有对象共享。
完整复制:该选项创建一个活动场景的独立复制,任何数据都不会共享,对象数据也是如此。
移除场景:在信息编辑器中,可以通过单击场景名字旁边的 按钮删除当前场景。
Blender游戏引擎文件处理包括新建文件、打开文件、保存文件、导入/导出文件、相对路径以及媒体格式等相关内容。Blender游戏引擎文件处理,如图2-16所示。
图2-16 Blender游戏引擎文件处理
新建文件,选择“文件”→“新建”,即创建一个新的工程文件。快捷键为Ctrl+N。
打开文件,选择“文件”→“打开”,即打开已保存的工程文件。快捷键为Ctrl+O或F1键。上部文本框中显示当前目录路径,而下部文本框包含所选的文件名。打开已保存的工程文件,如图2-17所示。
图2-17 打开已保存的工程文件
打开最近文件,选择“文件”→“打开最近文件”,即列出最近打开的文件,单击后载入文件。
恢复最后一次工程,选择“文件”→“恢复最后一次工程”,将会载入退出Blender前最后一次自动保存的quit.blend文件,所以该选项可以恢复最后一次工程的文件。
恢复自动保存的工程,选择“文件”→“恢复自动保存的工程”,该选项将会打开自动保存的工程文件。
保存文件包含保存、另存为…、保存副本…等功能。保存文件,选择“文件”→“保存”,即将文件保存到默认目录或指定的硬盘文件中的相应目录。快捷键为Ctrl+S或Ctrl+W将现有的.Blend文件保存在本身。
另存为,选择“文件”→“另存为…”,即将文件另存为到默认目录或指定的硬盘文件中的相应目录。快捷键为Ctrl+Shift+S或F2键,选择要保存到Blend的文件。在保存文件时,如果没有写文件的扩展名,Blend则自动添加扩展名。如果一个具有相同名称的文件已经存在,文本将弹出一个警告,文件将被覆盖,变成红色。Blend文件另存为窗口,如图2-18所示。
图2-18 Blend的文件另存为
保存副本,选择“文件”→“保存副本…”,即保存副本到默认目录或指定的硬盘中的相应文件目录。快捷键为Ctrl+Alt+S,选择要保存的Blend文件,即返回到编辑原始文件完成后的文件,这可以用来保存当前的工作状态的备份而不修改原始文件。
在保存工程文件时,保存选项显示左侧栏的底部包含选项有压缩文件、更改相对路径、保存副本、遗留网格格式。
压缩文件:当保存文件时,可以勾选该功能。使保存的文件占用更小的硬盘空间,但需要较长时间保存和加载。
更新相对路径:该选项用来重新映射保存的“相对路径”,如链接的库和图像,在一个新的位置保存一个文件。
保存副本:该选项保存一个副本的实际工作状态,但并不使保存的文件处于活动状态。
遗留网格格式:该选项保存Blend文件时,忽略了多边形四个以上的顶点,老版本的Blend(2.63版前)可以打开它。
导入/导出文件:Blender支持导入/导出其他格式的文件,如*.OBJ、*. FBX、*.3DS、*.PLY等文件格式。这些格式的导入/导出可以通过菜单选择“文件”→“导入/导出”。
相对路径:许多Blend文件引用外部图像或其他链接的Blend文件。路径告诉Blend在哪里寻找这些文件,如果外部文件被移动,引用它们的Blend文件将找不到外部文件。
使用相对路径,可以移动该Blend文件到一个新位置提供的外部链接的文件与它一起移动。如,能包含Blend文件和它引用的外部图像的子文件夹的文件夹。
大多数文件选择窗口提供*相对路径*检查框中,或当操作者将文本字段键入路径中,使用双斜杠前缀“//”。
媒体格式涵盖图像格式和视频格式等。图像格式包含BMP、Iris、PNG、JPEG、Targa、OpenEXR、TIFF等。视频格式包括AVI、H.264、MPEG、MOV和MP4等。支持的图像格式及Blender内置的图像格式一览表。如表2-5所示。
表2-5 Blender内置支持的图像格式一览表
常用的图像输出格式有:OpenEXR、PNG、JPEG等。如果想做合成或者对图像做色彩灰度可以使用OpenEXR图像格式;如果做屏幕输出或者要压缩成各种视频格式可以使用PNG图像格式;如果对于屏幕上输出文件的大小和质量要求不高,通常使用JPEG图像格式。
通道深度表示图像文件格式支持不同数量每个像素位数,这将影响色彩的质量和文件大小。
常用的深度:8位(2 8 =256);最常见的屏幕上的图形和视频有10位、12位、16位(2 10 =1024,2 12 =4096,2 16 =65536);用于某些格式,专注于摄影和数字电影的格式,如DPX和JPEG 2000。16位浮点,由于完整的32位浮点数通常是超过足够的精度,那么半浮法可以节省空间同时提供高动态范围的磁盘空间。32位浮点数,高质量颜色深度。
Blender内置的图像系统支持以下其中之一:
每个通道(4×8位)的8位。
每个通道(4×32位)的32位浮点。
支持的视频格式,视频格式主要用于将渲染完成的序列压缩成一个可播放的电影,也可以被用来制造普通的音频文件。编码器是压制视频的常用工具,所以会适用于DVD或者互联网,缆线传播的流媒体技术或只是一个合适的文件尺寸。编码器把视频的各个通道压制进储存空间并支持回放。有损的编码器可以消耗图像的质量来减小文件的尺寸。像H.264编码器适用于较大的图像。编码器可用来编码和解码视频,并且也通用于制作器和播放器,解码完成的数据会被储存在文件中。
常用的编解码器,包括XviD格式、H.264、DIVX以及微软等。每个编解码器都有各自优点和缺点,并兼容不同的操作系统及不同的播放器。大多数编解码器只能压缩RGB或YUV色彩空间,但一些编码器也很好地支持Alpha通道。
支持RGBA的编解码器包括:QuickTime。
PNG TIFF Pixlet:不损失少,并且可以是仅可在Apple Mac、Lagarith Lossless Video Codec。
AVI解码压缩器。依附于操作系统的可用编码器。当选择了AVI编解码器,编解码对话框会自动启动。该编解码器可以使用“集编解码器”按钮进行更改(AVI解码器设置)。
AVI Jpeg(AVI格式):也是AVI但使用了JPEG压缩。有损,能得到占空间更小的文件但小不过一个由编解码器的压缩算法得到的文件。JPEG压缩在数字摄像机中使用的DV格式中也有使用。
AVI Raw(AVI原):音视频交织(AVI)的未压缩的帧集。常用的视频文件格式包含:MPEG-1、MPEG-2、MPEG-4、AVI、MOV、DV、Flash、Wav以及Mp3等。
MPEG-1:表示一个标准的视频和音频的有损压缩格式。它被设计用来压缩VHS质量的原始数字视频和低至1.5Mb/s的音频。视频格式为.mpg、.mpeg。
MPEG-2:表示一个标准的“运动图像的通用编码和相关音频信息”。它描述了有损视频压缩和有损音频压缩方法的合集,其允许存储和传输使用目前可用的存储介质的电影,和传输带宽。视频格式为.dvd、.vob、.mpg、.mpeg。
MPEG-4(DivX):该格式吸收了许多MPEG-1、MPEG-2和其他相关标准的功能,并增加了新的功能。视频格式为.mp4、.mpg、.mpeg。
AVI:指资源交换文件格式(RIFF),它把一个文件的数据分成块。视频格式为.avi。
Quicktime:表示一个多跟踪格式。QuickTim和MP4容器的格式可以使用相同的MPEG-4格式,它们大多在仅使用QuickTime的环境中可交换。MP4作为国际标准,有更多的支持项。视频格式为.mov。
DV:表示帧内视频压缩方案,它使用离散的余弦变换(DCT)来从帧接帧的基础上压缩视频,音频存储不经过压缩。视频格式为.dv。
H.264:一种标准的视频压缩格式,是目前最常用的记录,压缩和分配高清晰度视频的格式中的一种。视频格式为.avi。
Xvid:该视频编解码器库遵循MPEG-4标准。它使用了ASP功能如b帧,全局和四分之一像素运动补偿、LUMI掩蔽、网格量化和H.263,MPEG自定义量化矩阵。视频格式为.avi。
Ogg:表示免费的有损压缩格式。它是由Xiph.Org基金会开发并免费分发。视频格式为.ogg、.ogv。
Matroska:表示一个开放的标准自由容器格式,可以容纳在一个文件中无限数量的视频、音频、图片或字幕轨道的一个文件格式。视频格式为.mkv。
Flash:表示容器文件格式,用于提供使用Adobe Flash播放器的互联网视频服务。视频格式为.flv。
Wav:表示未压缩(或轻度压缩)的微软和IBM音频文件格式。视频格式为.wav。
Mp3:表示高度压缩的,采用有损数据压缩形式的数字音频编码格式。它是一种常见的用来储存音频的音频格式,其实它是用来在电子播放器上传输和重放音频的标准数字音频压缩。视频格式为.mp3。
Blender游戏引擎追加和链接功能帮助重复使用材质、物体和其他数据块从外部源Blend文件加载,可以建立的共同内容库和跨多个引用文件共享它们。
“链接”能从源文件中链接数据,如果源文件中的数据被改变,那么引用数据的文件将在下次打开的时候更新数据内容。而“追加”使数据完整复制到你的Blender。可以向本地副本中的数据进行进一步的编辑,但外部源代码文件中的更改不会反映在该引用的文件。
追加,选择“文件”→“追加”,快捷键为Shift+F1。链接,选择“文件”→“链接/关联”,快捷键为Ctrl+Alt+O。Blender游戏引擎链接数据,如图2-19所示。
图2-19 Blender游戏引擎链接数据
链接数据选项,在图2-19所示左侧底部选项栏。包含有相对路径、选择、激活层、组实例等。
相对路径:允许使用相对路径来链接。
选择:使物体在加载后处于选中状态。
激活层:默认启用,对象将被添加到场景的可见层还是所处文件原有图层。
组实例:该选项将组中的物体添加到激活了的场景。物体被选择后,会放置在游标处,其他的数据如相机、曲线和材质被选中后需要链接到一个物体上才能可视。
在D视图和节点编辑器中,选择“添加”→“组实例”,分别可以看到新添加的组和节点树组。在大纲视图中模式设为Blender文件,则可见所有链接和追加的数据块。快捷键Ctrl+鼠标左键选择文件名字可以从定向链接到其他文件。提示:链接的物体不可移动,其坐标在源文件中设定。如果想在当前文件中修改这个物体可以使用复制组。