【发布时间】:2016-09-22 07:27:10
【问题描述】:
我想编写一个 Collada-1.4 导出器来导出骨架。我需要扩展 Collada 格式以定义一些附加信息:
- 骨尾(相对于关节位置)
- 骨卷(相对于纵轴)
- 骨骼连接状态(骨骼尾部连接到父关节)
我能想到的最好的办法是使用一个元素并添加一个特定于工具的配置文件,但文档并不清楚如何准确地做到这一点。
我猜这是一个正确的工作示例:
<node id="Armature" name="Armature" type="NODE">
<matrix sid="transform">
1 0 0 0.1151489
0 1 0 0.01073149
0 0 1 1.730716
0 0 0 1</matrix>
<node id="A" name="A" sid="A" type="JOINT">
<matrix sid="transform">1 0 0 0 0 0 -1 0 0 1 0 0 0 0 0 1</matrix>
<node id="B" name="B" sid="B" type="JOINT">
<matrix sid="transform">
-0.7919466 -0.4411024 0.422196 0
8.9407e-8 0.6914554 0.7224193 1
-0.6105905 0.5721177 -0.5475955 0
0 0 0 1
</matrix>
<extra>
<technique profile="blender">
<!-- =============================== -->
<!-- Bone tail offset from bone head -->
<!-- =============================== -->
<float_array name="tail" sid="tail" count="3">
0.0 0.0 1.0
</float_array>
</technique>
<technique_common/>
</extra>
</node>
</node>
</node>
但是我有一些问题:
- 这是提供骨尾信息的可接受方法吗?
- 我可以使用 technology_common 元素来替代定义配置文件吗?
- 我必须定义一个空的 technology_common 元素还是可以跳过它?
- 是否可以对整个 collada 文件中的每个骨尾使用 sid="tail"?
- 有没有更简洁的方式来定义骨尾信息?
-
我可以更具体地使用配置文件吗?比如:
<node> ... <extra> <technique profile="blender"> <tail type="float_array" connect="true">0 0 1.0</tail> <roll type="float">0</roll> </technique> <technique_common/> </extra> </node>
我不确定是否允许我定义新元素(尾、角色、连接),如上例所示。我可以这样做吗?
我也知道进口商必须知道额外的数据(支持搅拌机配置文件)才能找到骨尾信息。因此,如果一个工具不知道搅拌机配置文件,它将无法识别额外的骨骼信息,但这对我来说没问题。
【问题讨论】:
标签: collada