呪文付きのRPGがあり、各呪文アニメーションのフレーム数が異なり、サウンド効果に対する要件が非常に異なる状況を考えてみましょう。各呪文に関連付けられている連続したアニメーションは1つだけであると仮定しましょう(フルアニメーションを形成するために使用される複数のモジュラーピースとは対照的)、古い16ビットファイナルファンタジーゲーム。
サウンドとアニメーションを確実に同期させるために私が考えられる唯一の方法は、次のとおりです。
- アニメーションのフレーム数を取得します。
- アニメーションの各フレーム間の時間を取得します。(30 fpsの場合、フレームあたり1/30秒です。)
- 次に、アニメーションと正確に同じ長さのサウンドファイルを作成します。
つまり、アニメーションが5秒で30 fps、合計150フレームの場合、サウンドファイルも5秒になります。アニメーションの30番目のフレームで「インパクト」サウンドが必要な場合、これは、サウンドファイルに1.0秒のマークでインパクトのサウンドが含まれることを意味します。
最後に、アニメーションと効果音を同時に開始し、フレームとサウンドが同期することを期待します。
これは、フレームがスキップされるか、アニメーション中に何かが発生し、サウンドの再生が少し早すぎる、または遅すぎる場合に問題が発生し、サウンドとアニメーションが同期しなくなる可能性があるようです。これは最善のアプローチですか、それとも私が見ないだけのより良い方法がありますか?
答えが概念的なものである場合は特に、Cocos2Dに対する答えである必要はありませんが、cocos2dに対する特定の解決策がある場合は、ぜひ聞いてください。
編集:この方法では、後でフレーム数やアニメーションのタイミングを調整して調整した場合、戻ってサウンドファイルを変更する必要があることにも気づきました。これは、人為的エラーの恐ろしい原因のように聞こえます(アニメーションの変更後にサウンドファイルを更新するのを忘れている)。