Collada (旧版)¶
Important
COLLADA I/O support is now considered as a legacy feature in Blender, and will be removed in a future release. Please see the official announcement for more insight on this topic.
COLLADA™ 模块已被实现为用于导出和导入 .dae
文件的一个灵活的工具。设计目标是提供一组参数,这些参数可以从/向各种工具导出/导入 Collada 文件。但请注意,Collada 模块仍在开发中。因此,你的特定应用场景可能尚不受支持。
Collada 导出¶
参考
- 菜单:
操作项预设
对于 "第二人生"(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 导入功能主要由需要导入的数据驱动。有一个控制导入单位的选项:
导入数据选项¶
- 自定义法向
使用 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>
。