gpt4 book ai didi

java - 使用 Chilli Source 模型导出器导出空或基于节点的 blender 模型

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:34 24 4
gpt4 key购买 nike

很抱歉没有使用与 Chilli Source 引擎相关的任何标签,但它是一个新引擎,似乎还没有任何标签。

我想要实现的是基于简单节点模型的 2D 外观对象(由平面或 Sprite 组件组成)。这样我就可以交换 body 的各个部分(头部、 body 等),而无需为每个角色使用多种 Material 或在该位置周围移动 UV。

我尝试过导出空容器和电枢,但在通过导出器运行时都不会产生任何结果。我对 CSModelConverter 中的工具有点迷失。节点似乎不会导出,因为它们的类型是 COLLADA_NODE_TYPE.BASE,而不是 CONTROLLER 或 GEOMETRY。

这是在 DAE 中使用空节点生成的内容(格式不好,归咎于 blender )。

<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>

这是一个简单的变换,看起来应该是兼容的,但我认为它失败的地方是它没有 Material 和几何形状。它也没有 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>

最佳答案

ColladaToCSModel 转换工具不支持导出没有模型数据的模型,而且恐怕添加支持看起来并不简单。即使导出器可以更改为支持它,我怀疑引擎是否可以处理它。

我认为你最好的选择是编写自己的系统来处理这个问题。为节点动画编写 Chilli 源组件并不难,唯一困难的部分是从 blender 中检索数据。为此,坚持使用 Collada 并编写一个直接解析它的 Chilli Source Resource Provider 可能是最简单的。 Collada 格式可能相当令人畏惧,其中包含大量信息,但场景节点层次结构和动画数据很容易检索,而不需要太脏。

如果解析 collada 对于您的游戏来说太慢,您可以编写一个简单的转换器来转换为您自己的格式,其中仅包含您需要的信息,然后编写一个 CS 资源提供程序来解析它。

关于java - 使用 Chilli Source 模型导出器导出空或基于节点的 blender 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26717853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com