最初のアドバイス:デザインを変更してください。それがあなたのものでない場合は、必要に応じて鈍器を使用してください。これは合理的にうまくいくことはほとんどありません。
アニメーション中にテクスチャを頻繁に読み込んだりアンロードしたりして、メモリ消費量をチェックする必要があります。これにより、アニメーションの達成可能なフレームレートが制限されます。 iPadや4世代のデバイスでは最高30-40 fpsになると思われます.1〜3世代のデバイスではおそらく非常に遅いでしょう。
最適な最適化は、Flashでエクスポートされたフルスクリーンテクスチャを使用しないことです。基本的に、Flashはあなたのためにすべてをアニメーション化し、各アニメーションフレームのフルスクリーンイメージを出力します。 これは、モバイルデバイス用のアニメーション用の最悪の解決策です。
代わりに、cocos2d内のすべてのアニメーションを個々のイメージとcocos2dアクションを使用して再作成して、同じアニメーションまたは十分に近いアニメーションを作成します。それはより多くのコーディング作業ですが、それはより良く機能します。 LevelHelperのようなツールがありますが、アニメーションのリアルタイムプレビューを表示できるかどうかはわかりません。 tool that can import Flash timeline animationsもありますが、どれくらいうまく動作しているか、まったく動作しているかどうかはわかりません。
Texture Packerを使用すると、個々のイメージからテクスチャアトラスを作成し、メモリを節約し、特にCCSpriteBatchNodeと組み合わせてレンダリングをさらに高速化できます。 Plus Texture Packerを使用すると、さまざまなテクスチャ形式を試すことができ、非Retinaデバイスをサポートしたい場合はSD解像度イメージを書き出すことができます。
もう1つの最適な最適化は、可能な限り色のビット深度を減らすことです。 32ビットから16ビット(RGBA4444またはRGBA5551または必要な透明度に応じてRGB565)にすると、すでにメモリ消費量を半分に減らすことができ、レンダリング速度も少し向上します。
可能であれば、PVR圧縮形式のうちの1つを使用してください。特に、移動するスプライトで劣化した画質がほとんど目立たないため、常に移動しているスプライトについては、
しかし、グラデーションについて言及しているので、色のビット深度が減ることで最も影響を受けます。単純なグラデーションの場合は、グラデーションの背景をCCLayerGradientに置き換えて背景画像のメモリを節約できます。
最後に、小さな画像を使用して拡大縮小することができます。特に透明な画像の場合、画像を拡大してぼかして表示するという事実は、実際には有益なことがあります。
- はフラッシュ(本当に悪いアイデア)によってエクスポートされたフルスクリーンテクスチャを使用していない、非常に少なくとも、cocos2d
- 用のFlashのタイムラインアニメーションのインポートツールを試すアニメーション個々の画像を使用します。要約すると
cocos2dの機能を使用して
- テクスチャのアトラス(とスプライトのバッチ処理)を使用してメモリ消費量を減らし、速度を上げます。
- 色のビット深度をできるだけ減らしてもう少しメモリを増やします
- 高速/常に動画用の非可逆圧縮フォーマットPVRの実験
- 小さい画像を使用して、
貴重なアドバイスをいただきありがとうございます。上記のことはすべて意味があります。現在、エクスポートされたテクスチャから離れ、アニメーションパーツのサイズとビット深度を最適化することを決めました。 – Bobrovsky