4

私たちが開発しているゲームでは、サイズが 485x485 の大きなスプライトをアニメーション化する必要があり、アニメーションには約 30 フレームがあります。このようなアーティファクトのアニメーションには問題があります。以下にリストされているいくつかの解決策を試しましたが、残念ながらまだ解決策を見つけることができませんでした.

タイリング

次の理由により、すべてのフレームを 1 つの大きなタイルに配置することはできません。

  • テクスチャ サイズは 2 の累乗である必要があるため、ほとんどのデバイスで黒く表示されます。
  • テクスチャ サイズを 2 の累乗にすると、ほとんどのデバイスで処理するには大きすぎます
  • AndEngine の推奨最大テクスチャサイズは1024x1024 のようです。

スプライトを分ける

もう 1 つのオプションは、各テクスチャ、したがって各フレームを別々にロードし、Sprite(ここで説明されているように) に配置することです。これは非常にうまく機能し、適切なタイミングで各スプライトの可視性を切り替えると、ユーザーはアニメーションを見ることができます。

この方法の問題点は、アニメーション全体のロードにかなりの時間がかかることです。これは、ロード画面のため、ゲームの最初のロード時には表示されませんが、ゲームの後半でアニメーションを変更する必要があり、ゲームのロードには約 2 ~ 3 秒かかります。ロード画面を表示することはオプションではありません。

別スレッドでの読み込み

新しく作成された別のスレッドにテクスチャをロードしようとしましたが、スレッドがテクスチャをロードしている間でも、ゲームの描画が一時停止しているようです。

その他のオプション?

私には選択肢がありません。また、50x50 ピクセルを超えるテクスチャをアニメーション化しようとした人は誰もいないようです。同様のケースを持つ人を見つけるのは非常に難しいからです。

私の質問は、AndEngine で大きなテクスチャをアニメートすることさえ適切に可能ですか?

4

1 に答える 1

2

あなたの問題は、エンジンの制限ではなく、デバイスの制限にぶつかると思います。モバイル向けに設計されているため、それを実行できる Android デバイスはほとんどありません。

ただし、VertexShaders と FramentShaders を使用して代替ソリューションを考え出すことができる場合があります。これは、Andengine GLES2 の重要な機能です。

そのアプローチを説明する記事は次のとおりです: http://code.zynga.com/2011/11/mesh-compression-in-dream-zoo/

于 2012-10-01T20:25:05.203 に答える