Any3DAny3D
·Any3D Team

createImageBitmap が利用できない? プラットフォームと環境別にトラブルシューティング

troubleshootingbrowser-compatibilitycreateimagebitmap

見られる症状

Any3D から「現在のブラウザは createImageBitmap をサポートしていません」と表示されます。これは Worker パスの主要機能の一つで、バックグラウンドで画像ピクセルを効率的にデコードするために使用されます。これが欠如すると、テクスチャ圧縮や画像からモデルへの変換などのプロセスが Worker パスで完了できず、大きなファイルで lag が発生しやすくなります。

一般的な原因

原因典型的なシナリオ
ブラウザ/WebView が古い古い Android WebView、アプリ内蔵ページ
セキュアコンテキストではないHTTP サイト(localhost ではない)、file://
クロスオリジンリソースの設定ミス企業 CDN/CORS 导致画像デコード失敗(機能異常として表現)
メモリ/タブの制限低メモリのモバイルデバイス、企業「単一タブ」ポリシー
拡張機能の干渉プライバシープラグインが Image API の動作を変更

プラットフォーム別にトラブルシューティング

Windows / macOS(デスクトップ)

  1. Chrome / Edge / Firefox / Safari の最新安定版を使用してください。
  2. Any3D を HTTPS で開く必要があります。
  3. macOS スクリーンタイムWindows ファミリーセーフティ でダウンロードやメディアアクセスを制限している場合、大きな画像のデコードに影響する可能性があります — 管理者アカウントでテストしてください。
  4. リモートデスクトップ:非常に高解像度のテクスチャは GPU が弱い環境でデコードに失敗することがあります。まず小さな画像で確認してください。

Linux

  1. Chrome/Firefox を更新してください。Wayland で GPU デコードに問題がある場合は、X11 セッションで比較テストしてください(稀なケースです)。

iOS / iPadOS

  1. Safari 14 以上から良好にサポートされています。iOS システムを最新に更新してください。
  2. WeChat 内蔵ブラウザのカーネルは遅れがちです → Safari で開いてください
  3. iCloud プライベートリレー / 成人コンテンツ制限 は通常 createImageBitmap をブロックしませんが、クロスオリジンの画像ホスティングをブロックすることがあります — モデルのテクスチャが同一オリジンまたはアクセス可能であることを確認してください。

Android

  1. ChromeAndroid System WebView を更新してください(設定 → アプリ → システムアプリを表示)。
  2. 国産ブラウザの互換モード → Chrome に切り替えてください。
  3. デジタルウェルネス / Family Link がバックグラウンドアクティビティを制限する場合、直接 API には影響しませんが、大きなファイルのアップロードを妨げる可能性があります。

ネットワーク、VPN、企業内網

シナリオ説明
会社の VPNモデルのテクスチャが内網 CDN を経由する場合、CORS エラーや証明書エラーでデコードが失敗する — Console にネットワークエラーが表示されます
透過プロキシ画像レスポンスを書き換えるか破損させた場合、createImageBitmap が reject する可能性があります
内網は HTTP のみセキュアコンテキストではないため、API が利用できないか動作が制限される場合があります
ゼロトラスト / SSL インスペクション自署名証明書を信頼としてインポートする必要があります。否則、リソースの読み込みに失敗します

提案:VPN を切断し、ホットスポットに切り替えて、外部テクスチャのない純粋なジオメトリモデル をアップロードしてテストしてください。純粋なジオメトリが正常でテクスチャが失敗する場合は、まずネットワーク/CORS を確認してください。

企業ポリシーと保護者制限

  • Intune App Protection は「名前を付けて保存/ダウンロード」を制限する可能性があり、ユーザーの画像選択プロセスに間接的に影響しますが、API 自体は存在するはずです — Console で個別に確認してください。
  • 学校 iPad のデバイス管理:「ファイル アプリ」を禁止しても API には影響しませんが、アップロード方法に影響します。サポートされているアップロードチャネルを使用してください。
  • 路由器の保護者制限 DNS:Any3D のドメインをブロックすると、単に createImageBitmap だけでなく、サイト全体が利用できなくなります。

段階的な修正(汎用)

  1. HTTPS + 最新ブラウザ + 再起動。
  2. インクognito ウィンドウで拡張機能を除外。
  3. システムブラウザで開き、アプリ WebView ではなく。
  4. 同時に Web WorkerOffscreenCanvas も警告されていないか確認。

クイックセルフテスト

typeof createImageBitmap !== "undefined"

上級者向け(HTTPS とアクセス可能な画像 URL が必要):

fetch("https://example.com/favicon.ico")
  .then((r) => r.blob())
  .then((b) => createImageBitmap(b))
  .then(() => console.log("ok"))
  .catch(console.error);

まとめ

createImageBitmap の問題は、主に古い WebView、HTTPS ではない接続、VPN/内網によるリソース読み込み失敗が原因です。プラットフォームに応じて WebView を更新し、ネットワークを切り替えてテストし、拡張機能を除外すれば、Worker 画像パスは通常回復します。

応援する