Xcode3Dモデル読み込みと表示

ARkitを使ってiosアプリを作る際、3Dデータを読み込むことが必要になるがそこで少しつまづいたのでメモ。

art.scenassetsにデータフォルダを入れる

 読み込む3Dモデルのデータをart.scnassetsに入れておきます。デフォルトではship.scnとtexture.pngが入っているはず。

f:id:harumi_sagawa:20180609230356p:plain

 

scnファイルへの変換

 

 

f:id:harumi_sagawa:20180609230920p:plain

objファイルはそののままの状態では使えないので上記の方法でscnファイルに変換します。今回はobjファイルを使いましたが他の形式でも変換できそう 

マテリアルの設定

f:id:harumi_sagawa:20180609231324p:plain

Lighting modelが初期状態ではPhysically Basedに設定されているので他の値に変更するとモデルに設定されているテクスチャが綺麗に見えます。

f:id:harumi_sagawa:20180609231708p:plain

テクスチャ自体はDiffuseで設定されているので、その中を変更すればモデルに適用されているテクスチャが変更されます。上記はデフォルトで入っているテクスチャを設定した例です。

ハマっていたところのコード

f:id:harumi_sagawa:20180609233658p:plain

 こんな感じで書きます。

で、今回ハマったのがchildNodeのwithNameの部分です。ここがどこで指定しているのか全然わからずかなり時間を無駄にしてしまいました。今回はわかりやすくするため"GARLIC"という全て大文字で記述しています。

f:id:harumi_sagawa:20180609233359p:plain

 

 Xcodeで3Dモデルを扱っている人にとってはおそらく常識すぎて私の見た限りではここを教えてくれているサイトはありませんでした。私と同じところでつまづく方の力になれれば幸いです。

コード全文

f:id:harumi_sagawa:20180609234246p:plain

f:id:harumi_sagawa:20180609234306p:plain

お借りしたもの&参考文献

モデルはこちらのサイトからお借りしました。

poly.google.com

【ARkit入門】Xcodeに3Dファイルを入れてみる

qiita.com

 【iOS 11】 ARKitでソファー設置からあの子の身長測定まで色々やってみた

dev.classmethod.jp