前回より私がよく使っているフォトグラメトリーソフトである「3DF Zephyr」のチュートリアル #02「Managing The Bounding Box」(解析範囲の設定法)に関して説明しています。
これは、このソフトを開発しているイタリアの 3Dflow社のサイトにあるチュートリアル、それの No.2に関する日本語での詳細解説です。それに加えてここでは Unityへの取り込みまでを解説します。
【範囲を設定した状態で再解析】
ダウンロードしたファイルは既に Texture Meshesの最終工程まで解析が終わってます。その状態は現物が分かりやすいので、ここでは Texture Meshesで解析範囲を変更します。例えば以下の画像のように。
(通常、解析時間がそもそも長くなりそうなデータ量の場合、最初の工程から範囲を減らしていくかと思います。)
ここでは、「Meshes」の工程から再解析を行います。メニューから「Mesh Extraction」をクリックします。
Workflow > Advanced > Mesh Extraction

「Next」をクリック。

「Close Range」を選択して、「Next」をクリック。

「Run」をクリック。解析が終了したら「Finish」をクリック。
新たな「Mesh 2」が作成されました。
次に範囲を指定した Mesh(Mesh 2)を使って新たな Texture Meshを再作成します。メニューより「Textured Mesh Generation」をクリックします。
Workflow > Textured Mesh Generation

基本的にそのまま「Next」をクリック。
「Run」をクリック。解析が終了したら「Finish」をクリック。
【3Dモデルを抽出してUnityに取り込む】
チュートリアルでは上記までの話で終わってますが、3Dモデルは Unityなど外部環境に取り込んでなんぼなので、上記までに範囲を指定して再作成した3Dモデルを抽出してUnityに取り込むところまでやってみましょう。
まず、範囲を指定した Textured Mesh(Textured Mesh 2)を選択して、メニューから「Export Textured Mesh」をクリックします。
Export > Export Textured Mesh

Export formatで「Obj/Mtl」を選択します。そして、「Export」をクリック。

出力するフォルダとファイル名を指定します。そして、「Save」をクリック。
3Dモデルの Objファイルが出力されました。

では、次に出力された3DモデルファイルをUnityに取り込みます。
Unityで 3Dの New Projectを開始し、先ほど出力した3Dモデルファイル(objファイル、mtlファイル、jpgファイル)をファイルエクスプローラーから Unityの Projectビューにドラッグアンドドロップします。
そして、Projectビュー内のモデルデータを Hierarchyビューにドラッグアンドドロップします。すると Sceneビュー上に3Dモデルが表示されました。見ての通り色がかなり違ったものになっています。
Materialを変更します。Projectビューから Create > Material をクリック。

新規 Materialの Shaderを「Unlit/Texture」に変更します。そして、Base(RGB)の右側のボックスに Projectビューから Textureファイルをドラッグアンドドロップします。
そして、Hierarchyビュー上のオブジェクトファイルの配下にある子オブジェクトをクリック。Inspectorビュー上にある Mesh Rendererコンポーネントの Meterials: Element 0に今作成した Materialをドラッグアンドドロップします。
すると、実際の色で表示できました。
どうでしょう。フォトグラメトリーで作成した3Dモデルを、Unity内にゲームオブジェクトとしてインポートできました。これで、ゲームやAR, VRツール内のモデルとして使用できるわけです。
いかがでしたでしょうか。3Dflow社のチュートリアル #02「Managing The Bounding Box」(解析範囲の設定法)の解説でした。
このフォトグラメトリー、今後もっと研究してこのブログでも解説をしていこうと思っています。
Sponsored Link