·Any3D Team
OffscreenCanvas 不可?プラットフォーム別トラブルシューティング
troubleshootingbrowser-compatibilityoffscreencanvas
観測される症状
Any3D が「現在のブラウザは OffscreenCanvas をサポートしていません」と表示されます。これは Worker パスの主要コンポーネントの一つであり、不足するとテクスチャ圧縮など Worker 内で WebGL2 を使用するエンコーディングフローが正常に実行できなくなります。
OffscreenCanvas は Web Worker 内でキャンバスを作成し、WebGL コンテキストを取得することを可能にし、ページをブロックせずにバックグラウンドで GPU 操作を完了します。
一般的な原因
| 原因 | 典型的なシナリオ |
|---|---|
| ブラウザ/WebView が古い | Chrome < 69、Safari < 16.4、古い Android WebView |
| ハードウェアアクセラレーションが無効 | Windows/macOS の省電力またはポリシーによる GPU 無効化 |
| 企業ポリシー | GPO による GPU 無効化、MDM によるグラフィックス機能の制限 |
| 埋め込み WebView | WeChat、企業アプリ、古い Electron シェル |
| ネットワーク層 | 罕見;大半は API 自体ではなくスクリプトの読み込み失敗によるもの |
プラットフォーム別のトラブルシューティング
Windows
- Chrome / Edge:設定 → システム → 「ハードウェアアクセラレーションを使用する」を有効に → ブラウザを完全に終了して再起動。
- グラフィックカードドライバー:ノートパソコンのデュアル GPU 構成では、ブラウザがディスクリート GPU(NVIDIA コントロールパネル / AMD Software)を使用していることを確認。
- グループポリシー:「ハードウェアアクセラレーションを無効にする」クラスのポリシーは、OffscreenCanvas WebGL コンテキストの作成を失敗させます。
- リモートデスクトップ(RDP):一部の RDP セッションでは GPU 機能が制限される場合があります。ローカルログインで比較テストを行ってください。
macOS
- Safari 16.4 以降 または 最新バージョンの Chrome。
- システム設定 → バッテリー → 低消費電力モードでは GPU スケジューリングが低下する可能性があります;電源に接続して再試行。
- スクリーンタイム が OffscreenCanvas を直接無効にすることは稀ですが、MDM がグラフィックス API を制限している場合は IT 部門に連絡してください。
Linux
- Mesa/プロプライエタリドライバーが正常であることを確認;Wayland と X11 の両方で最新の Chrome を使用してテスト。
- ヘッドレスサーバーのリモートブラウザには仮想 GPU が必要(個人シナリオでは珍しい)。
iOS / iPadOS
- Safari はシステム更新に伴って更新されます(iOS 16.4 以降で OffscreenCanvas サポートがほぼ完全です)。
- アプリ内 WebView はシステム Safari より遅れている可能性がある → Safari でリンクを開いてください。
- 学校の iPad の管理モードでは古いシステムがロックされている場合があり、管理者が更新する必要があります。
Android
- Chrome と Android System WebView を更新。
- 国産ブラウザの互換コアは非対応 → 極速コアに切替または Chrome を使用。
- 低スペック端末の GPU ドライバーが古い場合:「省電力モード」を無効にして再試行。
ネットワーク、VPN、企業環境
OffscreenCanvas はローカル API であり、通常 VPN から直接影響を受けません。しかし、VPN がブラウザを「セーフモード」に劣化させたり、企業拡張機能によるスクリプト注入が行われたりすると、間接的に失敗する可能性があります:
- VPN を切断して比較;
- 企業ブラウザが「ソフトウェアレンダリング」を強制していないか確認;
- iframe 内埋め込み時に、外側が Worker 内の WebGL を阻止していないことを確認。
ファミリー制御と管理デバイス
- Family Link / スクリーンタイム:OffscreenCanvas を直接無効にすることは極めて稀です;より一般的なのは、ブラウザ更新のインストールを禁止することで API が古くなること → システムの自動更新を許可してください。
- 試験所/図書館モード:カスタマイズされたブラウザが使用される場合があり、個人デバイスへの切替をお勧めします。
段階的な修正手順(汎用)
- ブラウザを上記の最低バージョン以上に更新。
- ハードウェアアクセラレーションを有効にしてブラウザを再起動。
- システムブラウザで開き、アプリ内 WebView を使用しない。
- WebGL2 に関するエラーも同時に発生している場合は、先に WebGL2 修正ガイド を処理。
クイックセルフテスト
typeof OffscreenCanvas !== "undefined"
false を返す場合、現在の環境はこの API をサポートしていません。
まとめ
OffscreenCanvas の欠落は、古いブラウザ/WebView、ハードウェアアクセラレーションの無効化、Windows リモート接続または企業 GPU ポリシー に多く見られます。プラットフォームに応じて GPU アクセラレーションを有効にし、WebView を更新し、システムブラウザに切り替えることで、Worker 内の GPU エンコーディング機能を通常回復できます。