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 导入功能主要由需要导入的数据驱动。有一个控制导入单位的选项:

导入数据选项

自定义法向

使用 collada 文件中定义的网格法向,如果他们已被定义。否则 Blender 将在导入过程中重新计算。

导入单位

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

骨架选项

修正叶骨

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 插件)。导出固定的骨架动画:

    • 运行烘焙动作运算符。

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

    • 检查 清除约束

    • 烘焙操作。

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

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

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

Note

要记住的重要事情

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

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

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

  • 尚不支持修改器。

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