FAQ & トラブルシューティング
このセクションでは、WebGL最適化中によく発生する問題の解決策と、よくある質問への回答をまとめています。
インストールとデモシーン
Q: デモシーンを開いたら、すべてのマテリアルとオブジェクトがピンク色です!
A: プロジェクトがURPを使用しているのに対し、デモシーンはデフォルトでBiRP用に設定されているためです。WebAdaptivePerformance/Demo/Import Me (URP).unitypackage にあるパッケージを解凍してください。シェーダーが自動的に更新されます。
Q: プラグインをインストールしましたが、ゲーム内で視覚的に何も変わりません。
A: 以下のチェックリストを確認してください:
- Project Settingsでプラグインが有効になっていますか?スケーラーは追加され、アクティブになっていますか?
- Unityのグラフィック設定は最初から最大に設定されていますか?設定がすでに低い場合、プラグインが下げるものはありません。
- おそらく、デバイスが負荷を完璧に処理しており、FPSが安定しているのでしょう。
Dashboardプレハブをシーンに追加して、インデクサーの現在の決定を監視してみてください。 - すべてが正しく設定されているのに効果がない場合は、お問い合わせください。トラブルシューティングをお手伝いします。
解像度とインターフェース (UI)
Q: 解像度が変わりません (Resolution Scaler がアクティブになりません)。
A: 最も一般的な2つの理由は以下の通りです:
- BiRP を使用しており、
RenderTextureScalingモードの場合:スケーラー設定内のTarget Tags配列を確認してください。ゲームのカメラの名前が異なる場合(MainCameraではない場合)、そのタグを挿入する必要があります。そうしないと、プラグインはそれを見つけることができません。 NativeBrowserScalingモードは、ビルドされたWebGLレンダリング環境でのみ動作します。Unity Editor内では何も行いません。
Q: FPSが下がると、UIも歪んだりぼやけたりします!
A: BiRPで RenderTextureScaling が選択されていることを確認してください。Canvas自体は Screen Space - Overlay モードで設定されている必要があります(またはUI専用のカメラを使用する必要があります)。
Q: 標準のUIボタンは正常に動作しますが、3Dオブジェクトへのマウスクリック(カスタムのRaycast)がおかしくなります。
A: 標準の EventSystem イベントは、当社の WebScaledPhysicsRaycaster コンポーネントによってシームレスに修正されます。ただし、コードを通じて手動でレイキャスト(Raycast)を呼び出す場合(Camera.ScreenPointToRay())、画面の解像度がレンダリングされたものと一致しないため、クリック座標の取得に失敗します。この目的のために、当社のプラグインのメソッドを使用してください:WebRaycasterUtility.TryComputeScaledRay()。
メトリクスとシステムの動作
Q: 遅延によりグラフィック品質が低下しました。現在FPSは再び高くなりましたが、グラフィックが回復しません!
A: アンチヨーヨー・ペナルティシステム (Anti Yo-Yo Penalty System) がアクティブになった可能性が非常に高いです。プラグインは、不安定さ(Quality flickering)を防ぐために、視覚的な向上を一時的にブロックしました。
- グラフィックをより早く安定させたい場合は、
Penalty Lockout Durationパラメータの制限を減らしてください(例:10秒に設定)。 - また、
Increase Cooldownも確認してください。待機時間が長すぎる可能性があります。
Q: シーンが空であるにもかかわらず、ダッシュボードに継続的に CPU Bottleneck (CPUボトルネック) または Unknown と表示されます。
A: Player Settingsで Frame Timing Stats を有効にすることを忘れないでください。その後、Application.targetFrameRate = -1 となっているか確認してください。時間のリフレッシュの制限を解除することで、メトリクスを解放し、ブラウザの setTimeout による減速から隔離します。
Q: キャラクター(または物理プロップ)が激しくカクついたり、「ラグ (lags)」が発生したりします。
A: これは、Physics Step Scaler が強制的に有効になったことによる副作用です。極端なパフォーマンス低下時にCPUがフリーズするのを防ぐために、Time.fixedDeltaTime のベースラインを調整します。シーン内の各キャラクターの Rigidbody コンポーネントタブにある Interpolate(または Extrapolate)設定を即座にオンにすることで、純粋に滑らかな移行を確保してください。
Q: Shadow Scalers (シャドウ) が有効になっていますが、パフォーマンスは低下し続け、シャドウはそのまま残っています。
A: これらのモジュールは、リアルタイム(Realtime)の動的シャドウと照明のみを監視および操作します。照明設定が「事前計算済み (Baked/Lightmaps)」としてマークされている場合、ツールはそれに影響を与えません。
カスタムスケーラー (Custom Scalers)
Q: 独自のカスタムスケーラーはエディターモードでは見事に機能しますが、WebGLビルドバージョンでは完全に消滅してしまいます!
A: 通常の内部手順において、IL2CPPアーキテクチャインテグレータがそれを未使用のコード("dead code")とみなして消去したためです。作成したカスタムスケーラーのメインクラスの上部に、必須の [UnityEngine.Scripting.Preserve] 属性を強制的に含めてください。
