Collada#

COLLADA™ 模块已被实现为用于导出和导入 .dae 文件的一个灵活的工具。 设计目标是提供一组参数,这些参数可以从/向各种工具导出/导入 Collada 文件。 但请注意,Collada 模块仍在开发中。 因此,你的特定应用场景可能尚不受支持。

Collada 导出#

../../_images/files_import-export_collada_export.png

操作项预设

对于 "第二人生" (SL)用户,有两种操作预设(请参阅边栏顶部):

  • Second Life 静态 -- 适用于导出静态网格物体。

  • Second Life 绑定 -- 适用于导出SL默认角色。

Note

虚拟世界用户特别说明:

  • 请使用操作项预设。 所有其它导出设置将不适用于Second Life。

  • 角色定位需要使角色看向X轴正向.

  • 必须在导出前应用缩放和旋转!

主要菜单#

仅选中项

如果启用 仅导出选中的物体,则仅导出所选物体。 否则,整个场景中所有可见和不可见的物体都会被导出。

包含子物体

启用此选项后,无论选择状态如何,所选物体的所有子物体都会被导出。

Hint

您只能选择一个骨架,然后使用此选项,连接到骨架的所有绑定网格也将导出。

包含骨骼

启用此选项后,无论选择状态如何,都将导出与所选物体相关的所有骨骼。

Hint

您可以只选择物体,然后在导出器中启用此选项以导出骨架数据。

包括形态键

包括通过导出具有当前形态键配置的网格来应用形态键。

全局坐标系#

待补充。

纹理选项#

仅UV贴图

当网格包含多个UV图层时,Blender默认会导出所有图层。 此选项允许您仅导出活动(选定)的UV图层。

复制

导出图像时,基于材质的图像纹理,导出器会在导出文件中创建绝对文件引用。

但是,如果启用了 复制 选项,导出器将创建图像的副本,并将副本放在导出文件之外。 在这种情况下,文件引用是相对的。

几何数据#

导出数据选项#

三角化

网格可以动态进行三角化。三角化基于与 三角化面 工具中使用的相同参数,用于对当前选择的面进行三角化。要完全控制三角化,您可以在导出之前手动执行此操作。但是,此选项仅允许对导出的数据应用三角化,网格本身不受影响。

应用修改器

使用评估后的网格导出物体,即所有 修改器 被计算后的网格。

分辨率

控制是否将3D视口分辨率或渲染分辨率应用于提供预览模式和渲染模式的修改器。

变换

Collada支持两种类型的转换矩阵规范。 可以是 <Matrix> ,也可以是一组变换分解(用于移动,旋转和缩放)。 需要注意的是,导出器不会严格遵循此选项设置,而是将其作为提示尽可能使用该选项。 之所以如此,是因为某些导出的数据类型具有关于如何导出转换矩阵的特定规则。 这部分功能还在开发过程中,将来可能会提供一种不那么模糊的方法。

骨架#

骨骼选项#

仅变形骨骼

启用此选项后,导出器将从导出的骨架中去除所有未变形的骨骼。当骨架包含控制骨骼(实际上不是角色骨架的一部分)时,此选项很有用。例如,您可以在启用此选项的情况下导出 Avastar 装备。由此产生的导出装配器与 "第二人生" 兼容。但请注意以下进一步的限制。

导出至 SL/OpenSim

启用此选项后,具有骨骼方向的一些问题将以不同的方式计算,并设计用于导出到Second Life或OpenSim。

这只与绑定的网格相关,对于静态网格,它什么都不做。

动画#

附加#

Collada 选项#

使用物体的实例

在Blender中,你可以为多个物体重用相同的网格。 这被称为 "物体实例化" 。 启用此选项后,Blender会将物体实例化到Collada文件中。

使用Blender轮廓

Collada可以使用工具特定的数据(配置文档)进行扩展。Blender有自己的(非官方)配置文档,允许将装配器信息导出到Collada文档中。稍后,当需要将 dae 文档导入到 Blender 中时,它可用于重建装备。

按物体名称排序

数据的导出顺序绑定到内部物体顺序,并且不能以可靠的方式影响它。 此选项可确保按字母顺序导出几何节点和物体节点。

保持绑定信息

将装备导入Blender时,装备的绑定姿态将用作Blender的静置姿态。因此,原始静置姿态的所有矩阵信息都将丢失。但在某些情况下,您可能希望保留原始绑定信息。此选项检查每个骨骼是否具有两个数组:

  • rest_mat -- 一个由16个浮点数组成的数组,表示骨骼的原始静置姿态矩阵。

  • bind_mat -- 一个由16个浮点数组成的数组,表示骨骼的原始绑定姿态矩阵。

如果数组存在,则将使用那些数组而不是当前的静置姿态/绑定姿态。 这两个数组要么是由先前的Collada导入创建的(请参阅下文的 Collada 导入),要么可以手动创建,也可以通过插件(基于脚本)创建。

Collada 导入#

../../_images/files_import-export_collada_import.png

Collada 导入功能主要由需要导入的数据驱动。 有一个控制导入单位的选项:

导入数据选项#

自定义法向

Use the mesh normals defined in the collada file, if they are defined, otherwise Blender will recompute them during the import process.

导入单位

如果未启用,则将根据当前使用的单位系统重新调整导入的数据。 如果启用此选项,则Blender将自行调整为 Collada 文件提供的单位系统。

骨骼选项#

修正叶骨

科拉达只记录了 "关节" ,这主要类似于Blender的骨头。但是,当您导入 Collada 文档时,不会定义骨头/骨尾。这对于连接的骨骼无关紧要,因为骨骼父母只有一个孩子。在这种情况下,父骨的末端位置将调整为子骨的关节位置。但是,特别是对于未连接的骨头和有一个以上孩子的骨头,就会出现问题。

当启用了 "修复叶骨* 选项时,Blender会尝试猜测未连接的骨骼的骨头/尾巴最好放置在哪里。如果禁用该选项,则骨头/尾将沿 Y 轴放置在偏移处。这就是为什幺骨骼经常指向Y轴的原因。

查找骨骼链

当骨骼有多个子骨骼时,则不会定义哪个(如果有)子骨骼应连接到父骨骼。 当启用 Find Bone Chains 选项时,Blender 会确定每个骨骼的最长骨链(对于子骨骼), 在此链上的所有骨骼将自动连接。

如果禁用该选项,则当父骨骼只有一个子骨骼是才会将子骨骼接到父骨骼。 但请参阅下面的 自动连接 选项。

自动连接

启用此选项后,如果父骨骼只有一个子骨骼,则子骨骼将自动连接到其父骨骼。


保持绑定信息

启用此选项后,导入功能会为每个骨骼创建两个自定义属性:

  • rest_mat -- 一个由16个浮点数组成的数组,表示骨骼的原始静置姿态矩阵。

  • bind_mat -- 一个由16个浮点数组成的数组,表示骨骼的原始绑定姿态矩阵。

当你想再次导出绑定时,可以使用这两个数组,并确保必须使用原始的重置姿势/绑定姿势组合。

技术细节#

网格#

导入#

支持的几何类型包括:

  • Tris (未经测试)

  • Polylist

  • Polygons

  • 多边形

  • Tri-fans (未经测试)

  • 行数(线)

导出#

网格数据导出为 <polylist><lines><vertices>

灯光#

导入#

Blender 尽最大努力从 .dae文件导入灯光。 如果检测到 Blender 的灯光配置文件,将使用配置文件中的值,确保完整导入Blender导出的 .dae文件。 在Blender 2.57中添加了 <extra> 支持。

导出#

通过 <extra> 标签添加了 Blender 的灯光配置文件。 Blender 的整个灯光结构将通过此配置文件导出,但光线曲线衰减除外。

动画#

导出 & 导入#

  • 支持物体(网格、摄像机、灯光)变换动画。只能导出欧拉旋转(这是物体的默认选项)。对于骨架动画,支持欧拉和四元数旋转类型。

  • 支持导入和导出以下参数的动画:

    • 灯光

    • 摄像机

    • 材质效果

  • 非面板控制骨骼动画。

  • 面板变形骨骼的骨架动画。

  • 物体模式中的骨架动画。

  • 完全固定的骨架动画(指Rigify插件)。 导出固定的骨架动画:

    • 运行 烘焙动作 运算符。

    • 如果您只选择了变形骨骼,请选中 Only Selected 。 这将给出更小的dae。 否则取消选中 Only Selected

    • 检查 清除约束

    • 烘焙操作。

    • 选择网格和变形骨骼。 然后导出到Collada,同时仅检查选定的选项。 (仅选择网格和骨骼并非绝对必要,仅选择和导出选定的会给出较小的dae。)

    • 一个说明这一工作流程的简短视频

对于作为骨架中叶节点的骨节点,或者如果骨骼具有多个子节点,则为这些节点添加带有 <extra> 标签的Blender配置文件。 在重新导入时正确导出骨骼到尾端位置。

Note

要记住的重要事情

  • 物体和数据块名称约束为21个字符(字节)。

  • UV层名称约束为32个字符(字节)。

  • 只有网格上的骨架动画,单个面板装配器。

  • 尚不支持修改器。

导入导出时具有 <instance_node> 的 .dae文件时,这些信息基本上会丢失,这些节点将是 <node>s。