最適化
最適化は、PlayCanvasアプリケーション開発の重要な部分です。それは、優れたユーザーエクスペリエンスとひどいユーザーエクスペリエンスの分かれ目となることがあります。
ヒント
プロジェクトが完成に近づくまで最適化を考慮するのを待たないでください。最初から考慮するようにしてください。それはアプリケーションの設計方法に大きな影響を与える可能性があります。
まず、最適化の主要な目標を設定し、それぞれの目標がなぜ重要なのかを強調することから始めましょう。
| 目標 | なぜ重要か |
|---|---|
| ⏱️ ロード時間の最小化 | ユーザーの忍耐力は限られています。アプリのロードが速くない場合、ユーザーは待つのを諦めて他の場所へ行ってしまうかもしれません。 |
| 🎞️ フレームレートの最大化 | 高い(そして安定した)フレームレートは、心地よいビジュアルとユーザー入力に対する低遅延の応答をもたらします。 |
| 🔋 CPUとGPUの負荷の最小化 | アプリが1秒間に60フレームを維持しているからといって、作業が完了したわけではありません。プロセッサーの負荷を減らすことでバッテリー電力を節約し、デバイスを低温に保ちます。 |
| 🧠 メモリ使用量の最小化 | ブラウザはアプリケーションに割り当てるメモリプールを制限しています。このプールが枯渇すると、タブがクラッシュして再ロードされます。ユーザーは不満に感じるでしょう! |
最適化の前に測定する
再現可能なシーンや操作を選び、対象デバイスでベースラインを記録してから、同じ条件で各変更を測定します。
| ツール | 用途 |
|---|---|
| MiniStats | アプリケーションを操作しながら、フレーム時間、CPU/GPUコスト、GPUリソースメモリを観察します。 |
| AppStatsによるプロファイリング | コードから公開統計を読み取り、ダッシュボード、エージェント、自動比較向けのレポートを収集します。 |
| Editor Profiler | アセットの読み込みやシェーダーのコンパイルのタイムラインなど、エディターのLaunchプロファイラーを確認します。 |
| GPUプロファイリング | ネイティブGPUツールでフレームをキャプチャし、レンダリングを詳しく調査します。 |
| Inspector | 実行中のアプリケーションで、ビデオメモリの使われ方、フレームのパスと描画、各メッシュとマテリアルが使うものを調べます。 |
AI
AIアシスタントに目標、再現手順、AppStatsのベースラインレポートを渡すと、MiniStatsやブラウザーの結果と組み合わせ、測定可能な変更を1つずつ提案できます。EditorではEditor MCP Server、スタンドアロンではAIを活用した開発を使用します。