iOSアプリに3Dを統合する数え切れないほどのプロジェクトを経て、私は信頼性が高く、高性能なARクイックルックプレビューを一貫して提供するUSDZワークフローを完成させました。私のプロセスは、クリーンなエクスポートパイプライン、厳格な検証、そしてXcodeとの緊密な統合に焦点を当てています。このガイドは、アセットの作成から機能的なARプレビューまでをスムーズに進めたいiOS開発者と3Dアーティスト向けです。鍵となるのは、USDZを後付けではなく、コアとなる最適化された成果物として扱うことです。
主なポイント:
ARKitとQuickLookを介してUSDZをアプリに統合するのは簡単ですが、現実世界のスケールとライティングの設定がユーザー体験を左右します。iOS ARの場合、USDZは単なる選択肢ではなく、標準です。Safariからメッセージ、そしてネイティブアプリに至るまで、AppleのエコシステムはARクイックルックを通じてUSDZを内蔵サポートしています。iPhoneやiPadで「ただ機能する」普遍的に認識されたコンテナであるため、カスタムARエンジンを必要とせずに開始できるため、私はこれを使用しています。
主な利点はユビキタス性です。USDZにエクスポートすることで、モデルがARクイックルックをサポートするあらゆるコンテキストでプレビュー可能になることを知っています。PBR(物理ベースレンダリング)マテリアルを正しく処理し、iOSのライティング下でアセットがリアルに見えるために不可欠です。また、その構成性にも頼っています。単一の.usdzファイルにアニメーション、複数のLOD(詳細度)、およびサウンドを含めることができ、アセットバンドルをクリーンに保ちます。
開発の観点からは、統合が軽量です。基本的なプレビュー機能のために重い3Dレンダリングフレームワークをバンドルする必要がありません。これにより、アプリのサイズが小さく保たれ、独自のものを構築するのではなく、システムレベルの機能を活用しているため、コードベースが簡素化されます。
初期のミスから貴重な教訓を得ました。最も一般的な落とし穴は、現実世界のスケールを無視することです。任意の単位でエクスポートされたモデルは、ARでは巨大に見えたり、微小に見えたりします。私は常にメートル単位でモデリングとエクスポートを行うようになりました。
もう一つの頻繁な問題は、過度に複雑なジオメトリです。映画パイプラインからの超高ポリゴンモデルは、モバイルデバイスでは動作が重くなります。USDZエクスポートの前に、細かいディテールをノーマルマップにベイクし、積極的にポリゴン数を削減することを学びました。最後に、サポートされていないテクスチャ形式や誤ったマテリアルグラフ(非PBRシェーダーなど)を使用すると、クイックルックでレンダリングが壊れます。私は標準のPNG/JPGテクスチャと、シンプルなメタル/ラフネスまたはスペキュラー/グロッシネスのワークフローにこだわっています。
これは、完成したモデルから検証済みUSDZファイルに至るまでの実践的なパイプラインです。ここでの一貫性が、後の問題を未然に防ぎます。
エクスポートダイアログを開く前に、モデルを準備チェックリストに通します。まず、ジオメトリがクリーンであることを確認します。非多様体エッジ、浮遊頂点、重複するUVがないこと。次に、すべてのテクスチャが正方形の2の累乗の寸法(例:1024x1024)であり、標準のPBRマテリアルセット(ベースカラー、ノーマル、ラフネス、メタリック)にパックされていることを確認します。
私のエクスポート前チェックリスト:
私は主にBlenderを最終的なUSDZエクスポートに使用しています。これは、堅牢で無料のUSDサポートがあるためです。私のエクスポート設定は意図的にシンプルです。
ファイル > エクスポート > USD (.usd, .usda, .usdc, .usdz)を選択します。選択オブジェクトボックスをチェックします。メッシュデータの下で、必要に応じてUVs、法線、頂点カラーがチェックされていることを確認します。アーマチュアの下で、アニメーションエクスポートが必要な場合を除き、無効にします。スケールを1.00に設定し、方向変換が正しいことを確認します(通常はY-Up)。コンセプトから素早く生成する場合や、コンセプトから始める場合は、画像やテキストプロンプトからベース3Dメッシュを作成するためにTripo AIをよく使用します。その出力はすでに最適化されており、水密であるため、非常に有利なスタートを切ることができます。その後、そのOBJまたはGLBをBlenderにインポートしてマテリアルを割り当て、最終的なUSDZエクスポートを行います。このハイブリッドアプローチにより、コンセプトからプレビューまでの時間が大幅に短縮されます。
エクスポートが最後のステップではありません。私はすぐにファイルを検証します。.usdzをusdzcheckコマンドラインツール(AppleのUSDZ Toolsから)にドラッグ&ドロップして、コンプライアンスエラーをスキャンします。次に、ライブテストを行います。
デバイスでこれらのテストに合格すれば、本番環境で利用可能とみなします。
USDZファイルをアプリに組み込み、表示可能にするのは、最後の満足のいく段階です。
私は通常、シンプルさのためにUSDZファイルをアプリバンドルに直接埋め込みます。ファイルをXcodeプロジェクトにドラッグし、正しいターゲットに追加されていることを確認します。動的またはダウンロード可能なアセットの場合、.usdzファイルをサーバーにホストし、URLSessionを介してフェッチします。重要なのは、ARクイックルックがローカルファイルURLとリモートHTTPS URLの両方から起動できることです。
コードでは、このアセットへの参照を保持します。ローカルファイルの場合、Bundle.main.url(forResource:withExtension:)を使用します。リモートファイルの場合、ダウンロードしたファイルをデバイスの一時ディレクトリにキャッシュして、表示ごとに再ダウンロードしないようにします。
ARビューの表示は、QuickLookとARKitを使用すると簡単です。QLPreviewControllerを作成し、そのデータソースをUSDZファイルのURLに設定します。よりカスタマイズされたAR体験のためには、ARKitのARQuickLookViewControllerを使用します。これにより、ARの配置をより細かく制御でき、カスタムの「配置」ボタンや指示を追加できます。
再利用するコードスニペット:
import QuickLook
import ARKit
func presentARQuickLook() {
guard let fileURL = Bundle.main.url(forResource: "model", withExtension: "usdz") else { return }
let previewController = QLPreviewController()
previewController.dataSource = self
present(previewController, animated: true)
}
私は常にARアイコンボタンのような明確なUIキューを提供し、ユーザーがタップしてARで表示できることを知らせます。また、デバイスでARが利用できない場合も適切に処理します。
技術的に有効なUSDZであっても、最適化されていなければ、ユーザーエクスペリエンスが低下する可能性があります。ここでは、品質を確保する方法を紹介します。
モバイルGPUには制限があります。60fpsでスムーズなAR体験を実現するためには、主要なオブジェクトで10万トライアングル未満のポリゴン数を目指します。高密度なスキャンやスカルプトを削減するために、自動リトポロジーツールを使用します。テクスチャについては、可能な限り複数のマテリアルを単一のテクスチャシートにアトラスし、テクスチャを圧縮します。Appleは、ARで腕の長さで表示されるほとんどのオブジェクトに対して、2Kまたは1Kのテクスチャを使用することを推奨しています。
スケールは非常に重要です。3メートルもの高さの仮想の椅子は役に立ちません。エクスポート前に3Dソフトウェアでスケールを調整します。ライティングについては、ARクイックルックのAppleの環境ベースのライティングに頼っています。これは、PBRマテリアルが正しく設定されていること(メタリック/ラフネスの値が正確であること)を意味し、実際のカメラフィードと推定されるライティングにリアルに反応するようにします。ライブ環境と競合するような強い影やアンビエントオクルージョンをベイクインすることは避けます。
迅速なプロトタイピングや2D参照からの作業の場合、AIを活用した3D生成は私のパイプラインの重要な部分となっています。製品写真やスケッチから数秒でベースメッシュを生成するためにTripo AIを使用しています。これにより、3D用にすでに最適化されたクリーンで水密な開始点が得られ、時間のかかるモデリングとリトポロジーの段階をスキップできます。その後、そのアセットを標準のUSDZ洗練およびエクスポートワークフローに移行します。このアプローチは、Eコマース、デザインモックアップ、またはコンセプトからARへの速度が不可欠なその他のツールでプレビューを作成する上で非常に価値があります。
moving at the speed of creativity, achieving the depths of imagination.
テキスト・画像から3Dモデルを生成
毎月無料クレジット付与
究極のディテール再現