私はゲームに取り組んでおり、2人のキャラクターが互いに話し合う必要があります。XNAではフルスクリーン以外の映画を再生できないことを知っているので、ゲームアプリ内で別の方法でアニメーションを実際に「再生」する必要があります。キャラクターの周囲にはアニメーション環境があるため、アニメーションは単純な頭の動きではありません。そのため、3Dモデルでキーフレームを使用してキャラクターをアニメーション化することはできません。2人のキャラクター間の対話はレベル間のカットシーンであるため、ゲームプレイ自体の一部ではありません。
これに対する最善のアプローチが何であるかはわかりませんので、何かアイデアがあれば教えてください。
これは私がこれまで考えていたものです:
1.キャラクターの個々のフレームをすべて画像として作成します。これらの画像をスプライトシートにロードし、希望のフレームレートで各フレームを通過します。
このアプローチの問題は、文字が300x200前後であるため、2048x2048の最大スプライトシートテクスチャではフレームが多すぎないことです。もう1つの問題は、2つの文字があるため、最小のシナリオでは、メモリ内に2つの2048x2048スプライトシートを作成する必要があります...そしてメモリ要件を低く抑えたいと思います。
2.フレーム(画像)のバッチをロードして再生し、割り当てを解除して次のセットをロードします。一般に、小さなテクスチャをたくさんロードして、描画呼び出しでそれらを切り替えるのは良い考えではないことを知っていますが(パフォーマンスの観点から)、この場合は他に選択肢がないようです。
Update-Drawループ中にメモリからコンテンツをアンロードし、他のコンテンツをロードすると、シーン全体の速度が低下するのではないかと心配しています。したがって、これが適切なアプローチであるかどうかはわかりません。
もう1つのアイデアは、すべて[charアニメーション、ダイアログの字幕など]でmp4 / wmvを作成することですが、これらの文字をホストするインターフェイスは、直接レンダリングした場合ほど「スムーズ」ではありません。
すべての提案をありがとう、
マリウス
編集1:
シナリオ番号2をテストしましたが、パフォーマンスは問題ないようです。