0

我正在开发一款游戏,我需要让两个角色互相交谈。我知道 XNA 不允许我播放全屏以外的电影,所以我需要以不同的方式在我的游戏应用程序中实际“播放”动画。角色周围有动画环境,因此动画不是简单的头部运动,因此,通过 3D 模型中的关键帧动画角色不是一种选择。两个角色之间的对话是关卡之间的过场动画,因此它不是游戏玩法本身的一部分。

我不确定最好的方法是什么,所以如果您有任何想法,请告诉我。

这是我到目前为止的想法:

1. 为角色创建所有单独的框架作为图像。将这些图像加载到 spritesheet 中,并以我想要的帧速率浏览每一帧。

这种方法的问题在于,2048x2048 的最大 spritesheet 纹理不允许太多帧,因为字符大约为 300x200。另一个问题是我有两个字符,因此,最小的场景需要我在内存中创建两个 2048x2048 的 spritesheets ......而且我想保持低内存要求。

2. 加载一批帧(图像),播放它们,然后释放它们并加载下一组。我知道通常加载大量小纹理并在绘图调用中在它们之间切换(性能方面)并不是一个好主意,但在这种情况下我似乎别无选择。

我担心在 Update-Draw 循环中从内存中卸载东西并在 while 中加载其他东西会减慢整个场景......所以不确定这是否是一种理智的方法。

另一个想法是用整个东西制作一个 mp4/wmv [char 动画、对话的字幕等],但是承载这些角色的界面不会像直接渲染时那样“流畅”,等等......

谢谢大家的建议,

马吕斯

编辑 1

我已经测试了场景 2,似乎性能还可以。

4

1 回答 1

0

我使用了场景 2。它适用于我的特定情况,但我确信它不适用于所有情况。

于 2012-09-17T14:05:44.197 回答