Collada (旧版)

Important

COLLADA I/O 支持现在被视为 Blender 的遗留功能,将在未来的版本中移除。请参阅官方公告以了解有关此主题的更多信息。

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

Collada 导出

参考

菜单:

文件 ‣ 导出 Collada (.dae) (旧版)

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

操作项预设

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

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

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

Note

虚拟世界用户特别说明:

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

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

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

主标签

仅选中项

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

包含子物体

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

Hint

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

包含骨架

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

Hint

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

包括形态键

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

全局坐标系

应用

旋转所有的根对象,使其与全局方向设置相匹配,否则将为每个 Collada 资产设置全局方向。

向前/向上轴

由于许多应用程序使用不同的 “向上” 轴,因此存在转换轴向设置,向前和向上轴——通过映射不同的轴,可以转换应用程序默认向上和向前轴之间的旋转。

Blender 使用 Y 轴向前,Z 轴向上(因为前视图沿 +Y 轴方向看)。例如,许多应用程序通常使用 Y 作为向上轴,在这种情况下,需要使用 -Z 轴向前,Y 轴向上。

纹理选项

复制

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

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

仅选中的 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 导入

参考

菜单:

文件 ‣ 导出 Collada (.dae) (旧版)

../../_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>