6

その画面内のどこにでもメニューを配置でき、別のメニューが必要なときにカメラがその場所に飛ぶ大きな (最大 4096x4096) 背景領域を持つ Android ゲームの UI システムを作成しています。大きな静止画像を使用する代わりに、これを少しアニメーション化できるようにしたいと考えています。私が知りたいのは、デバイスを遅らせずにこれを効率的に行う方法です。これらは私がこれまでに思いついた方法ですが、もしかしたらもっと良い方法があるかもしれません..

1)背景用に 3 つの別々の 4096x4096 静的レイヤーを用意します。1 つは空、1 つは地形、もう 1 つは雲や木などです。カメラが動いたときにわずかな視差効果を与えるために、Z 空間のわずかな違いで各レイヤーが互いの上に配置されます。

2)大きな静止した背景画像を用意し、その上に、アニメーション化する必要のある個々の特定の雲、木、その他のスプライトを含むレイヤーを配置します。ビューにないパーツをアニメーション化しないことを選択できるため、これが最も効率的なルートであると思いますが、すべての異なるオブジェクトを手動でスペースに配置する必要があるため、再利用性も制限されます. 私の目標は、アセットを簡単に変更して、まったく新しいゲームを作成できるようにすることです。

3)ほとんどビデオのように再生されるいくつかのフレームを含む 1 つの大きな背景レイヤーを用意します。これはパフォーマンスが最悪になると思いますが (4096x4096 フレームをいくつかロードし、別のフレームを 1 秒間に 30 回描画します)、After Effects から直接希望どおりのシーンを得ることができます。描画のためだけでなく、メニュー UI のためだけに Android デバイスのストレージ スペースが複数の 6MB フレームを許可しないため、これが実行可能であるとは思えません。

これらのいずれかが正しい方向に進んでいますか? 同様の質問がいくつか見られましたが、必要なものに十分に近いものはありませんでした(タイルで作られていない大きくて動く背景)。

どんな助けでも大歓迎です。

4

1 に答える 1

3

あなたの質問が Android 用にタグ付けされている限り、2 番目の解決策をお勧めします。

主な理由は、解決策 1 と 3 には多数の 4096x4096 テクスチャをロードする必要があるためです。簡単な計算: このような解像度の 32 ビット テクスチャを 3 つ使用すると、少なくとも 200MB のビデオ RAM が使用されます。これは、多くの Android デバイスをすぐに破棄できることを意味します。

一方、解決策 2 では、2 つの大きなテクスチャのみが必要になります。大きな固定背景画像と、特定の雲や木のスプライトを含むテクスチャ アトラスです。この解決策は、メモリ フレンドリーであり、同じ美的出力。

TL;DR: 3 つのソリューションはうまく機能しますが、組み込みデバイスに適合するのは #2 だけです。

于 2013-02-13T10:45:15.763 に答える