Reality Composerに自分で作成した3Dモデルや、サイトからダウンロードした3Dモデルをインポートする作業が、結構大変だったので、やりかたを共有します。
なお、Reality Composerに3Dオブジェクトをインポートする一番簡単な方法は、AppleのReality Converter(β版)を使うか、Apple DevelopperサイトのDownload から、USDPythonをダウンロードして、そこに含まれているusdzconvert
を使うことです。
ですが、今回変換したかったモデルは、Reality Converterやusdzconvert
で変換しても何も表示されなかったため、別の方法を使いました。
環境
Mac (Catalina 10.15.5)
Blender 2.83.3
Xcode 11.7
Reality Composer 1.4
※各ソフトウェアのインストール方法は割愛します
TL:DR
結論から言うと、このやり方がうまくいきました。
任意の3Dオブジェクト => Blenderで加工をする & .daeに変換 => Xcodeで .usdzに変換 => Reality Composerにインポートする
やりかた
1. 3Dオブジェクトを入手する or 作成する
例えば、Unity Asset Storeでなにか3Dオブジェクトを入手してみます。
今回入手した3Dモデルの形式は、.FBXでした。
2. Blenderにインポートする
Blenderを起動して、xを押してデフォルトの立方体を削除しておきます。
ファイル > インポート > インポートしたいモデルの形式(今回の例では.FBX)を選択します。
ファイルの選択ダイアログがでます。
ここで、不要な情報はインポートしないようにします。
今回はアニメーションの情報はインポートしないようにしました。
ここで、エクスポートといきたいところですが、今回のモデルはそのままエクスポートして、Xcodeで開いてもモデルが表示されませんでした。
これはアーマチュアを解除することで対処できました。
その方法を示します。
オブジェクトモードでモデルを選択し、Option+pでメニューを出して、トランスフォームを維持してクリアを選択します。
アウトライナーにあるArmatureからメニューを開きます。
これでアーマチュアを解除することができました。
この時、オブジェクトのオフセット位置が原点からずれていたので、gボタンを押して原点(x,y,zがゼロの位置)に移動しておきました。
エクスポートします。
オブジェクトモードの状態でモデルを選択し、
ファイル > エクスポート > Collada(デフォルト)(.dae)を選択します
ダイアログが出るので、オプションを選択します。
「選択物のみ」「子を含む」を選択しないとXcodeでうまく読み込めませんでした。
これで、dae形式へのエクスポートができました。
3. Xcodeで.daeファイルを開く
Xcodeでエクスポートした.daeファイルを開きます。
うまく表示されていれば成功です。
usdz形式にエクスポートします。
File > Export
でエクスポートダイアログを出し、File FormatにUniversal Scene Description(Mobile)を選択します。
これで、usdz形式で出力されました。
4.Reality Composerで読み込む
Reality Composerを起動してシーンを作成したら、エクスポートした.usdzファイルをドラッグ & ドロップするだけです。
任意の3Dモデルを読み込めるようになるば、ARKitで実現できることの幅が広がりそうですね。