我尝试寻找一个确定的答案,但找不到。他们要么假设整体只有少数几个动画,要么以一种难以管理的方式缩放。
我发现处理单个动画的最佳方式是将其按身体部位分解成图层:头部、身体、两只手臂、腿、两只脚等等。
制作那些精灵表动画看起来一切都很美好。
但是,当你有一个用于8个方向的空闲精灵表、一个用于每个方向奔跑的精灵表、一个用于每个方向一次攻击的精灵表……两次攻击……三次……四次……五次,并且每个都有自己的精灵表,大小不同,因为需要为不同的身体部位和不同数量的帧留出空间(取决于动作)。
这变得如此庞大,我还没找到好的处理方式。
我看到有人建议只使用不同的动画精灵,然后开关它们。绝对不行,这看起来像是一种临时修补方案。
我看到有人建议对精灵使用同一个动画播放器,但为每个动画加载不同的纹理(即在开始时为每个轨道设置一个关键帧来指定纹理、垂直帧和水平帧)。试过了,但如果要为几十个动画及其变体这样做,根本无法很好地扩展。很容易出错,破坏一切。而且还有点奇怪,有时切换动画时某些精灵会消失一瞬间。延迟第一帧的显示有点帮助,但无法完全解决,感觉像是创可贴。(有人知道为什么吗?)
我看到有人建议像上面那样做,但为所有身体部位设置一个父精灵,在需要时通过脚本替换子纹理。但这最终也会遇到类似的扩展问题(并且必须在代码中到处处理垂直帧和水平帧)。
我看到有人建议通过代码在一些模块化/组合/角色定制教程中处理,但再次,根据我看到的做法,这似乎也不容易很好扩展。并且也似乎无法很好地处理大量不同的动画/精灵表。
我还看到有人建议确保每个精灵表都设置为相同的帧、分层和网格布局。但这仍然没有解决在代码/引擎中切换所有这些动画的问题。
所以我想知道:到底应该如何设置精灵表?应该怎样设置节点/精灵/动画播放器?应该如何编写代码/控制动画切换?
我知道如何在小规模下做这些事。但没有一种方法看起来能适用于超过一两个动画的情况。
在Godot中,什么是“行业标准”或最佳实践方法?因为根据我的理解,到目前为止我看到的都像是临时修补办法。
(我也在Godot subreddit上发了同样的帖子。)
评论 (0)