不使用任何与Chilli Source引擎相关的标签的道歉,但它是一个新引擎,似乎还没有任何标签。
我想要实现的是基于简单节点的模型的2D外观对象(由平面或子画面组件组成)。这样我就可以交换身体的各个部位(头部,身体等),而不需要为每个角色分配多种材料或在地方周围移动紫外线。
我尝试过输出空箱和电枢但是在通过出口商运行时都没有产生任何东西。我在CSModelConverter中的工具中有点迷失。似乎节点不会导出,因为它们的类型为COLLADA_NODE_TYPE.BASE而不是CONTROLLER或GEOMETRY。
以下是使用空节点在DAE中生成的内容(格式不正确,责备混合器)。
<node id="LeftLegNode" name="LeftLegNode" type="NODE">
<matrix sid="transform">1 0 0 1.201311 0 7.54979e-8 -1 0.04089412 0 1 7.54979e-8 0.8485807 0 0 0 1</matrix>
</node>
这是一个简单的变换看起来应该是兼容的,但我认为它失败的地方是它没有材料和几何。它也没有UV,但我想它们可能不是必需的。
我可能会尝试通过更改导出器来支持空的blender对象来做一些困难的事情。有没有办法在模型导出器中实现这一点,既没有编写我自己的collada解析器,也没有用Chilli Source大量修改它?
这是完整的dae文件。
<?xml version="1.0" encoding="utf-8"?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
<asset>
<contributor>
<author>Blender User</author>
<authoring_tool>Blender 2.72.0 commit date:2014-10-21, commit time:11:38, hash:9e963ae</authoring_tool>
</contributor>
<created>2014-11-03T13:29:40</created>
<modified>2014-11-03T13:29:40</modified>
<unit name="meter" meter="1"/>
<up_axis>Z_UP</up_axis>
</asset>
<library_images/>
<library_effects/>
<library_controllers/>
<library_visual_scenes>
<visual_scene id="Scene" name="Scene">
<node id="RightHandNode" name="RightHandNode" type="NODE">
<matrix sid="transform">1 0 0 0.01576674 0 7.54979e-8 -1 -0.3080968 0 1 7.54979e-8 1.016 0 0 0 1</matrix>
</node>
<node id="LeftHandNode" name="LeftHandNode" type="NODE">
<matrix sid="transform">1 0 0 1.781394 0 7.54979e-8 -1 -0.3080968 0 1 7.54979e-8 1.016 0 0 0 1</matrix>
</node>
<node id="LeftLegNode" name="LeftLegNode" type="NODE">
<matrix sid="transform">1 0 0 1.201311 0 7.54979e-8 -1 0.04089412 0 1 7.54979e-8 0.8485807 0 0 0 1</matrix>
</node>
<node id="BodyNode" name="BodyNode" type="NODE">
<matrix sid="transform">1 0 0 0.9169789 0 7.54979e-8 -1 0 0 1 7.54979e-8 1.438218 0 0 0 1</matrix>
</node>
<node id="EarNode" name="EarNode" type="NODE">
<matrix sid="transform">1 0 0 0.6259508 0 7.54979e-8 -1 -0.1329943 0 1 7.54979e-8 2.138675 0 0 0 1</matrix>
</node>
<node id="HairNode" name="HairNode" type="NODE">
<matrix sid="transform">0.7933933 0 0 1.228412 0 5.98995e-8 -0.7933933 -0.2107617 0 0.7933933 5.98995e-8 2.458043 0 0 0 1</matrix>
</node>
<node id="LeftEyeNode" name="LeftEyeNode" type="NODE">
<matrix sid="transform">1 0 0 1.714596 0 7.54979e-8 -1 -0.1349886 0 1 7.54979e-8 2.185041 0 0 0 1</matrix>
</node>
<node id="RightLegNode" name="RightLegNode" type="NODE">
<matrix sid="transform">1 0 0 0.5970358 0 7.54979e-8 -1 0.04089412 0 1 7.54979e-8 0.8485807 0 0 0 1</matrix>
</node>
<node id="MouthNode" name="MouthNode" type="NODE">
<matrix sid="transform">1 0 0 1.45392 0 7.54979e-8 -1 -0.07053024 0 1 7.54979e-8 1.905577 0 0 0 1</matrix>
</node>
<node id="RightEyeNode" name="RightEyeNode" type="NODE">
<matrix sid="transform">1 0 0 1.194536 0 7.54979e-8 -1 -0.134 0 1 7.54979e-8 2.185 0 0 0 1</matrix>
</node>
<node id="HeadNode" name="HeadNode" type="NODE">
<matrix sid="transform">1 0 0 1.226985 0 7.54979e-8 -1 -0.04570943 0 1 7.54979e-8 2.166729 0 0 0 1</matrix>
</node>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url="#Scene"/>
</scene>
</COLLADA>
答案 0 :(得分:1)
ColladaToCSModel转换工具不支持在没有模型数据的情况下导出模型,我担心添加支持看起来并不简单。即使出口商可以改变以支持它,我怀疑引擎会处理它。
我认为你最好的选择就是编写自己的系统来处理这个问题。为节点动画编写Chilli Source Component并不困难,唯一困难的部分是从blender中检索数据。为此坚持Collada可能是最容易的,并编写一个直接解析它的Chilli源资源提供程序。 Collada格式可能非常令人生畏,其中有很多信息,但场景节点层次结构和动画数据很容易检索而不会让你的手太脏。
如果解析collada对你的游戏来说太慢了,你可以用你自己的格式编写一个简单的转换器,它只包含你需要的信息,然后写一个解析它的CS资源提供者。