Blender から USDZ をつくる
Blender から USDZ をつくみようと思う。
USD のプラグイン的なものがないので、OBJ に吐き出し、Xcode 10 の Command line tools から USDZ に変換する。
Xcode 10 の Command line tools については前回の記事を参照。
(現状、Xcode 10 が Beta のため、今回の方法で USDZ に変換する場合は Apple Developer Program 加入が必要)
appleengine.hatenablog.com
Xcode 11 から usdz_converter が Command line tools から外れた。
Apple の Augmented Reality
ページからダウンロードする必要がある。
(Terminal からダウンロードしたファイル等の PATH を設定する必要あり)
内容的には Blender で OBJ ファイルを書き出し、ターミナルでコマンドを打つだけ。
Blender に関してはどのバージョンでもよいのだが、今回は 2.79 を使用した。
Blender でジオメトリを作成する
おさるさんの SUZANNE にテクスチャを設定した OBJ ファイルを作成する。
Blender を起動して、立方体を削除する
起動するとスプラッシュが出るのでクリック。
選択された立方体が表示されるので、X キーを押おす。
選択したものを消すか聞かれるので delete を押して消す。
そして Shift + A を押すとメニューが出るので、Mesh > Monky を選ぶ。
そうするとおさるの顔が表示される。
マテリアルを設定する
テクスチャを設定する際にジオメトリの質感であるマテリアルが必要なので、 右側に球体のタブがあるのでクリックして、下の「New」を押す。
おさるさんに質感であるマテリアルが設定される。
テクスチャを設定する
マテリアルのタブの横にチェック模様のタブがあるのでそちらをクリック。
マテリアル同様に下の「New」を押し、
下の「open」ボタンから適当な画像を選択する。
現在のおさるさんにテクスチャを表示したい場合は、画像のピンクの枠をクリックして Material に変更すると表示される。
変更するのが面倒であれば Shift + Z キーでレンダリング画像になり、戻す場合はもう一度 Shift + Z キーを押す。
位置を調整する
N キーを押して Transform の Position の Z 軸を 1 にすると上に上がる。
(Bender は Z 軸が上方向になっている)
必要であれば UV を変更する
おさるが選択された状態で TAB キーを押すと頂点編集のモードになる。
初期状態では全選択になっているので、以下のボタンで球体でマッピングする。
Mesh > UV Unwrap > Sphere Projection
OBJ に書き出す
File > Export > Wavefront (.obj) を選択して保存。
デフォルトで obj とテクスチャが設定された mtl ファイルが書き出される。
USDZ に変換する
以下の文字をターミナルで入力してコンバート USDZ が作成される。
テクスチャ画像のファイルは obj や mtl と同じ階層に必要なので注意。
xcrun usdz_converter ファイル名.obj ファイル名.usdz
本来は以下のように画像とともに設定して変換するが、今回は mtl で参照設定されるため必要がない。
xcrun usdz_converter RetroTV.obj RetroTV.usdz -g RetroTVMesh -color_map RetroTV_Albedo.png -metallic_map RetroTV_Metallic.png -roughness_map RetroTV_Roughness.png -normal_map RetroTV_Normal.png -ao_map RetroTV_AmbientOcclusion.png -emissive_map RetroTV_Emissive.png