Starling MovieClip帧不适合2048.一个MC的多个TextureAtlas?

时间:2012-05-08 17:05:13

标签: actionscript-3 stage3d starling-framework

我正在打一场格斗游戏,所以我有巨型角色精灵(300px X 350px),有很多动画帧(每个角色约150个),因此最大2048 x 2048纹理尺寸不适合所有帧角色的动画。所以,我需要多个TextureAtlases,对吧?

如果我在MovieClip上切换TextureAtlases,我是否需要担心昂贵的GPU纹理交换?

要更改动画帧,创建一个管理器来选择帧和地图集是否明智?

或者我可以组合TextureAtlases以便一个地图集存储多个2048 x 2048精灵表吗?

你会怎么做?

4 个答案:

答案 0 :(得分:4)

来自Daniel Sperl的Starling论坛

A recommendation

  

如果你的精灵是如此巨大,我担心你会遇到问题   与纹理记忆。不幸的是,没有简单的解决方法   目前,除了使用“Spriter”创建动画   (测试版):

     

http://www.kickstarter.com/projects/539087245/spriter

答案 1 :(得分:1)

考虑是否可以通过执行骨骼动画来减少动画需求。不是将角色的每一个帧直接绘制到纹理中,而是将角色分解为可动画部分,使用变换定位部分,然后在运行时将它们合成到动画帧中。这是一款格斗游戏,所以这应该是可以控制的(大概你只有两个动画角色,加上一些相对便宜的环境效果)。因此,您只需要每个角色的每个独特部分,这应该会大幅减少纹理预算(但会增加动画引擎的复杂性)。

您可以查看DragonBones(http://dragonbones.github.com/getting_started_en.html)以获得帮助。

答案 2 :(得分:0)

记录此2048 x 2048限制在哪里?我从来没有读过这样的话。我在Starling 1.1 documentation关于纹理图集大小的唯一内容是:

  

任何Stage3D纹理都必须具有2的幂的边长。   Starling会向您隐瞒此限制,但会以额外费用为代价   图形内存。通过使用纹理图集,您可以避免纹理   开关和二次幂限制。所有纹理都在一个内   大“超级质感”,而Starling照顾到了正确的部分   显示此纹理。

假设我没有完全错过这个重要的细节,纹理地图集没有尺寸限制,只需在4096 x 40968192 x 8192创建一个。

答案 3 :(得分:0)

嗯 - 我的猜测是使用大于2048x2048的纹理会影响性能。而且我会进一步认为在这种尺寸的纹理之间转换也会导致性能受到打击。您是否考虑过缩小纹理资源并在游戏中升级它们?