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个浮点数组成的数组,表示骨骼的原始绑定姿势矩阵。
当你想再次导出绑定时,可以使用这两个数组,并确保必须使用原始的重置姿势/绑定姿势组合。
技术细节
网格
导入
支持的几何类型包括:
- Tris (未经测试)
- Polylist
- Polygons
- N-gons
- Tri-fans (未经测试)
- Lines
导出
网格数据导出为 <polylist>
, <lines>
和 <vertices>
。
光
导入
Blender 尽最大努力从 .dae 导入灯光。 如果检测到 Blender 的灯光配置文件,将使用配置文件中的值。 从 Blender 导出的 .dae 会重新导入。 在Blender 2.57中添加了 <extra>
支持。
导出
通过``<extra>``标签添加了 Blender 的灯光配置文件。 Blender 的整个灯光结构将通过此配置文件导出,但光线曲线衰减除外。
材质和效果
导出
由于Blender 2.57已经对效果输出进行了一些更改。 最值得注意的是 <lambert>
当且仅当镜面反射为0时才会导出。
动画
导出 & 导入
- 支持对象(网格,相机,光)变换动画。 现在只能导出欧拉旋转,这是物体的默认选项。 对于骨架动画,支持欧拉和四元数旋转类型。
- 支持导入和导出以下参数的动画:
- 光
- 相机
- 材质效果
- 非皮肤控制骨骼动画。
- 皮肤变形骨骼的骨架动画。
- 物体模式中的骨架动画。
- 完全固定的骨架动画(指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>
。