Timelineとパーティクルの連携時における初回高負荷(プチフリーズ)を解消します。
\n\n具体的な解決方法
\n1. シェーダー温ため (Shader Warmup) の徹底
\nmyCollection.WarmUp();\n2. Timeline再生前の事前ダミー実行 (非同期プレウォーム)
\ndirector.Evaluate(); // 1フレーム強制評価ゲームプレイ中、必殺技演出や会話イベントなどのTimeline(カットシーン)が初めて再生された瞬間、画面が一瞬(0.1〜0.3秒程度)「プチフリーズ」する。2回目以降の再生やループ再生時はスムーズに動き、問題は再現しない。
初回再生時に「パーティクル関連シェーダーのコンパイル(GPUプログラム生成)」が走り大きな負荷がかかること、またはParticle Systemの「Prewarm(事前シミュレーション)」が一撃でCPUで計算されることにより、メインスレッドが一時停止することが主な原因です。
使用するエフェクトのシェーダーをShaderVariantCollectionで事前にウォームアップ(Shader Warmup)します。また、TimelineのControl Trackで動的生成されるパーティクルに対して、ゲームロード時や画面外で見えないようにあらかじめ「事前ダミーシミュレーション」を実行しておく処理を実装します。
Timelineとパーティクルの連携時における初回高負荷(プチフリーズ)を解消します。
\n\nmyCollection.WarmUp();\ndirector.Evaluate(); // 1フレーム強制評価A. PSOキャッシュの機構がより厳格化されたため、ビルドパイプラインでの自動PSOキャッシュ配布手法が推奨されます。