Collada¶
COLLADA™ 模块已被实现为用于导出和导入 .dae
文件的一个灵活的工具。 设计目标是提供一组参数,这些参数可以从/向各种工具导出/导入 Collada 文件。 但请注意,Collada 模块仍在开发中。 因此,你的特定应用场景可能尚不受支持。
Collada 导出¶
操作项预设¶
对于 Second Life(SL)用户有两个操作项预设(参见操作面板顶部):
- Second Life Static -- 适用于导出静态网格物体。
- Second Life Rigged -- 适用于导出SL默认角色。
Second Life用户特别说明:
- 请使用操作项预设。 所有其它导出设置将不适用于Second Life。
- 角色定位需要使角色看向X轴正向.
- 必须在导出前应用缩放和旋转!
导出数据选项¶
- 应用修改器
所有活动的修改器都将以非破坏性方式应用。 也就是说,修改器将应用于网格的副本。 因此,你不再需要在导出之前应用修改器。 这些操作现在会在后台自动完成。
Hint
某些修改器提供预览模式和具有不同网格设置的渲染模式。 模块在应用修改器时两种模式都支持。
- 仅导出选中的物体
- 如果启用 仅导出选中的物体,则仅导出所选对象。 否则,整个场景中所有可见和不可见的物体都会被导出。
- 包含子物体
启用此选项后,无论选择状态如何,所选对象的所有子物体都会被导出。
Hint
你现在可以 只 选择一个骨骼,然后在导出器中启用*包含子项*,然后附加到该骨骼的所有绑定网格都会被导出。
- 包括骨骼
启用此选项后,无论选择状态如何,都将导出与所选物体相关的所有骨骼。
Hint
你现在可以只选择物体,然后在导出器中启用 包括骨骼,然后也会导出骨骼数据。
- 包括形态键
- 此选项还包括形态键的应用! 所以现在你可以使用烘焙的当前形态键配置导出网格。
纹理选项¶
- 仅UV贴图
- 当网格包含多个UV图层时,Blender默认会导出所有图层。 此选项允许您仅导出活动(选定)的UV图层。
- 包含贴图
- Blender 支持两种向物体中添加贴图的方式。
- 复制
导出图像时,基于材质的图像纹理,导出器会在导出文件中创建绝对文件引用。
但是,如果启用了 复制 选项,导出器将创建图像的副本,并将副本放在导出文件之外。 在这种情况下,文件引用是相对的。
骨骼选项¶
- 仅变形骨骼
- 启用此选项后,导出器将从导出的骨骼中剥离所有不变形的骨骼。 当你的骨骼包含实际上不是角色骨骼的控制骨骼时,此选项很有用。 例如,你现在可以在启用此选项的情况下导出Avastar绑定。 由此产生的导出绑定与Second Life兼容。 但请注意下面的进一步限制。
- 导出至 SL/OpenSim
这个选项很特别。 实际上,启用此选项时,骨骼方向的某些问题会以不同方式计算。 这仅适用于绑定网格。 此选项可能会被未来更有意义的内容所取代(并且仍将与Second Life兼容)。
仅当您要导出绑定的网格时,此选项才很重要。 对于静态网格,这个选项什么都不做。
Collada 选项¶
- 三角化
- 网格可以在运行中进行三角测量。 三角测量基于 Triangulate Faces 工具中使用的相同功能,用于对当前选择的面进行三角测量。 要完全控制三角测量,您可以在导出之前手动执行此操作。 但是,此选项仅允许对导出的数据进行三角测量。 网格本身不受影响。
- 使用物体的实例
- 在Blender中,你可以为多个对象重用相同的网格。 这被称为“物体实例化”。 启用此选项后,Blender会将对象实例化到Collada文件中。
- 使用Blender轮廓
- Collada可以使用工具特定数据(配置文件)进行扩展Blender有自己的(非官方)配置文件,允许将绑定信息导出到Collada文件中,以后可以用来重建绑定,如果有必要可以导入dae文件到Blender。
- 转换类型
- Collada支持两种类型的转换矩阵规范。 可以是``<Matrix>``,也可以是一组变换分解(用于移动,旋转和缩放)。 需要注意的是,导出器不会严格遵循此选项设置,而是将其作为提示尽可能使用该选项。 之所以如此,是因为某些导出的数据类型具有关于如何导出转换矩阵的特定规则。 这部分功能还在开发过程中,将来可能会提供一种不那么模糊的方法。
- 按物体名称排序
- 数据的导出顺序绑定到内部物体顺序,并且不能以可靠的方式影响它。 此选项可确保按字母顺序导出几何节点和物体节点。
- 保持绑定信息
当绑定被导入Blender时,绑定的姿势将被用作 Blender 的重置姿势。 因此,原始重置姿势的所有矩阵信息都将丢失。 但在某些情况下,你可能希望保留原始绑定信息。 新选项 保持绑定信息 检查每个骨骼是否有两个数组:
rest_mat
-- 一个由16个浮点数组成的数组,表示骨骼的原始重置姿势矩阵。bind_mat
-- 一个由16个浮点数组成的数组,表示骨骼的原始绑定姿势矩阵。
如果数组存在,则将使用那些数组而不是当前的重置姿态/绑定姿态。 这两个数组要么是由先前的Collada导入创建的(请参阅下文的 Collada 导入),要么可以手动创建,也可以通过插件(基于脚本)创建。
Collada 导入¶
Collada 导入功能主要由需要导入的数据驱动。 有一个控制导入单位的选项:
- 导入单位
- 如果未启用,则将根据当前使用的单位系统重新调整导入的数据。 如果启用此选项,则Blender将自行调整为 Collada 文件提供的单位系统。
- Fix Leaf Bones
Collada 只记录“关节”,它大致类似于 Blender 的骨骼。 但是,当你导入 Collada 文件时骨骼的末端是未被定义的。 这对于只有一个子骨骼的父骨骼是没有问题的。 在这种情况下,父骨骼的结束位置将调整为子骨骼的关节位置。 但是对于未连接的骨骼以及有多个子骨骼的父骨骼就会碰到问题。
当启用 Fix Leaf Bones 选项时,Blender会尝试猜测最好放置未连接骨骼的骨骼末端的位置。 如果禁用该选项,则骨骼末端将沿Y轴放置在偏移处。 这就是骨骼经常指向Y轴的原因。
- 查找骨骼链
当骨骼有多个子骨骼时,则不会定义哪个(如果有)子骨骼应连接到父骨骼。 当启用 Find Bone Chains 选项时,Blender 会确定每个骨骼的最长骨链(对于子骨骼), 在此链上的所有骨骼将自动连接。
如果禁用该选项,则当父骨骼只有一个子骨骼是才会将子骨骼接到父骨骼。 但请参阅下面的 自动连接 选项。
- 自动连接
- 启用此选项后,如果父骨骼只有一个子骨骼,则子骨骼将自动连接到其父骨骼。
- 保持绑定信息
启用此选项后,导入功能会为每个骨骼创建两个自定义属性:
rest_mat
-- 一个由16个浮点数组成的数组,表示骨骼的原始重置姿势矩阵。bind_mat
-- 一个由16个浮点数组成的数组,表示骨骼的原始绑定姿势矩阵。
当你想再次导出绑定时,可以使用这两个数组,并确保必须使用原始的重置姿势/绑定姿势组合。
技术细节¶
光¶
导入¶
Blender 尽最大努力从 .dae 导入灯光。 如果检测到 Blender 的灯光配置文件,将使用配置文件中的值。 从 Blender 导出的 .dae 会重新导入。 在Blender 2.57中添加了 <extra>
支持。
导出¶
通过``<extra>``标签添加了 Blender 的灯光配置文件。 Blender 的整个灯光结构将通过此配置文件导出,但光线曲线衰减除外。
动画¶
导出 & 导入¶
- 支持对象(网格,相机,光)变换动画。 现在只能导出欧拉旋转,这是物体的默认选项。 对于骨架动画,支持欧拉和四元数旋转类型。
- 支持导入和导出以下参数的动画:
- 光
- 相机
- 材质效果
- 非皮肤控制骨骼动画。
- 皮肤变形骨骼的骨架动画。
- 物体模式中的骨架动画。
- 完全固定的骨架动画(指Rigify插件)。 导出固定的骨架动画:
- 选择烘焙操作。 (在3D视图中按 Spacebar 并输入“Bake Action”。)
- 如果您只选择了变形骨骼,请选中 Only Selected 。 这将给出更小的dae。 否则取消选中 Only Selected 。
- 检查 清除约束 。
- 烘焙操作。
- 选择网格和变形骨骼。 然后导出到Collada,同时仅检查选定的选项。 (仅选择网格和骨骼并非绝对必要,仅选择和导出选定的会给出较小的dae。)
- 演示视频
节点¶
在导入时,<instance_node>
的父节点转换会准确地传播到子节点实例。 使用以下映射导出 Blender 材质:
- Phong
- Blinn
- Lambert
对于作为骨架中叶节点的骨节点,或者如果骨骼具有多个子节点,则为这些节点添加带有 <extra>
标签的Blender配置文件。 在重新导入时正确导出骨骼到尾端位置。
Note
要记住的重要事情
- 物体和数据块名称约束为21个字符(字节)。
- UV层名称约束为32个字符(字节)。
- 只有网格上的骨架动画,单个皮肤控制器。
- 尚不支持修改器。
导入导出时具有 <instance_node>
的 .dae 时,这些信息基本上会丢失,这些节点将是 <node>
。