Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Why Your 3D Model Won't Open on iPhone — and the No-Install GLB to USDZ Fix

2026年10月21日に「Dev.to」が公開したITニュース「Why Your 3D Model Won't Open on iPhone — and the No-Install GLB to USDZ Fix」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

iPhoneで3DモデルをAR表示するには、Web標準のGLB形式ではなくApple独自のUSDZ形式が必要だ。従来の変換ツールはmacOS限定など制約が多い。そこで、ブラウザだけでGLBをUSDZに変換・最適化するツールが登場。これにより、WebやAppleデバイスで手軽に3Dモデルを活用できる。

ITニュース解説

3Dモデルを扱う際、特にiPhoneで表示させようとすると、特定のファイル形式の壁に直面することがある。これは、Web上で広く利用されている3Dモデルの標準形式であるGLBファイルが、Appleの提供する拡張現実(AR)機能やSafariのプレビュー、さらには新しいVision ProといったAppleのエコシステムでは直接認識されないという問題だ。Appleのシステムは、ARプレビューに特化したUSDZという形式を要求する。このため、GLBファイルを持っているのにiPhoneでは開けないという状況が発生するのだ。

GLB(glTF Binary)は、Three.jsや<model-viewer>といったWebベースの3D表示ライブラリ、Shopify 3D、WebXRなどの多くのWeb技術で利用される、いわば「Webの標準語」と言えるフォーマットである。これに対しUSDZは、AppleがAR体験のために開発した独自形式で、USDAというテキスト形式のシーン記述と、モデルに貼り付けるテクスチャなどがまとめてzipアーカイブされたものだ。iPhoneで「QRコードをスキャンしてリビングで商品をAR表示する」といった場面では、AndroidデバイスではGLBがそのまま使えることが多いが、iPhoneではURLの先にUSDZファイルが置かれていなければ、AR表示は行われない。

このような背景から、GLBファイルをiPhoneで表示可能なUSDZ形式に変換する必要が生じる。インターネット上にはいくつかの変換方法が示されているが、それぞれに課題がある。一つはAppleが提供する「Reality Converter」というツールだ。これはMacユーザーにとっては便利な選択肢だが、WindowsやLinuxを使っているシステムエンジニアにとっては利用できない。次に、高機能な3Dソフトウェアである「Blender」を使う方法がある。BlenderはGLTF形式のインポートに対応しており、適切なUSDプラグインを追加すればUSD形式のエクスポートも可能だ。しかし、このプラグインを見つけて正しく設定するまでに手間がかかることが多く、特にマテリアル(質感)の表現がGLTFからUSDへ変換される際に意図せず崩れてしまう問題も頻繁に起こる。もう一つの一般的な選択肢として、オンラインのクラウドコンバーターがある。これはファイルをウェブサイトにアップロードするだけで変換してくれる手軽さがあるが、もしあなたがクライアントから秘密保持契約(NDA)を結んだ上で受け取った機密性の高い3Dモデルを扱っている場合、そのファイルを他社のサーバーにアップロードすることはセキュリティ上の懸念となるだろう。

このような既存のツールの課題を解決するために開発されたのが、ブラウザ内で完結するGLBからUSDZへの変換ツールである。このツールは、ファイルをブラウザから外部サーバーへ送信することなく、ユーザーのPC内で全ての変換処理を行うため、セキュリティ面での心配が大幅に軽減される。

具体的な変換プロセスは次のようになっている。まず、WebAssembly技術を活用した@gltf-transformライブラリを使って、ブラウザ内でGLBファイルを読み込む。このとき、ファイルデータはユーザーのPCの外に出ることはない。次に、読み込んだ3Dモデルの形状情報(ジオメトリ)を最適化する。これは、重複する頂点を結合したり、無駄なデータ(重複するアクセサ、未使用のノードや拡張機能など)を削除したり、アニメーションの動きの要となる瞬間(キーフレーム)を圧縮したりする処理だ。これにより、市場で流通している多くの3Dモデルに含まれる、見た目には影響しないがファイルサイズを大きくしている「重り」が取り除かれる。

特に注意が必要なのはテクスチャの処理だ。テクスチャは3Dモデルの見た目を決定する画像ファイルだが、変換時にいくつかの落とし穴がある。一つは、元のテクスチャが宣言しているファイルの種類(MIMEタイプ)と異なる形式に再エンコードしてはいけないということだ。例えば、WebP形式と宣言されたテクスチャはWebPのデータとして保持すべきであり、異なる形式に変換してしまうと、3Dビューアが正しく表示できない場合がある。また、WebPエンコードを行う際に、一部のブラウザのデフォルト設定では「ロスレス」(可逆圧縮)になってしまい、画像を小さくしたつもりが元の画像よりもファイルサイズが3倍も大きくなってしまうことがある。これを避けるためには、明示的に品質を指定してエンコードするか、再エンコード後のサイズが元のサイズより大きくなってしまった場合は、元のテクスチャデータをそのまま利用するといった工夫が必要だ。

これらのクリーンアップと最適化の処理が完了すると、three.jsライブラリに含まれるUSDZExporterを使ってUSDZファイルが生成される。このExporterは、USDAというテキスト形式で3Dシーンの構造を記述し、テクスチャを適切な形式に変換(ラスタライズ)し、それら全てをまとめて有効なUSDZアーカイブファイルとして圧縮する。最終的に、入力されたGLBファイルから、AR表示に対応したUSDZファイルと、最適化されたGLBファイルの2つが出力され、それぞれのファイルサイズも比較表示されるため、変換によって何が起こったのかをユーザーが確認できる。

このようなGLBからUSDZへの変換ツールは、様々な場面で役立つ。例えば、<model-viewer>コンポーネントを自分で実装してカスタムのオンラインストアやヘッドレスコマースサイトを構築する場合、src属性にGLBファイルを、ios-src属性にUSDZファイルを指定することで、AndroidとiOSの両方でAR表示を可能にできる。また、製品のデモをリンクやQRコード経由で行う場合、ホストされたUSDZファイルであれば、現代のiPhoneで直接AR Quick Lookが起動して、製品を現実空間に表示できる。Vision Pro向けのコンテンツのプレビューにも、同じUSDZフォーマットが利用される。さらに、クライアントへWeb版とApple版の両方の3Dモデルを納品する必要がある場合でも、専用の3Dツールをインストールすることなく、ブラウザだけで対応できるようになる。

ただし、このツールにもいくつかの制限がある。現在のバージョンでは、Draco圧縮されたGLB入力には対応していないため、Draco圧縮が施されている場合は、圧縮されていない状態で再エクスポートする必要がある。また、3Dモデルの形状をアニメーションさせる「モーフターゲット」という機能は、まだUSDZ形式への変換時に引き継がれない。そして、150MBといった非常に大きなGLBファイルを変換しようとすると、ブラウザが動作しているPCのメモリ容量に依存するため、処理に時間がかかったり、PCのファンが高速で回転したりする可能性がある。

このブラウザベースの変換ツールはrenderivo.com/convertで利用可能で、ファイルをドラッグ&ドロップするだけで変換が開始され、両方のフォーマットをダウンロードできる。最初の変換は無料で、アカウント登録も不要だ。継続的に利用したい場合は、一度のライセンス購入で無制限に変換が可能となる。

関連コンテンツ

関連IT用語

関連ITニュース