Unity-logo

前回のコラムではiPhoneと3Dスキャンアプリ(Scaniverse)を使って、3Dスキャンデータを測定する手順についてご紹介しました。

測定したデータの閲覧や簡易的な編集作業であればScaniverseだけでも可能ですが、データを使ってゲームやWebサイトを作成したい時には、Unity(ゲーム開発エンジン)を使うのが一般的です。

ここではScaniverseで測定した3DスキャンデータのUnityへのインポート手順についてご紹介したいと思います。


事前準備


Unityのダウンロードおよびインストールについてはこちらをご参考ください。

Unity Hubで作成した新規プロジェクトを起動すると以下のような画面が表示されます。 ここで見やすさのため、赤枠内の設定を変えて画面配置を変更します。

プロジェクト画面


画面を構成するウィンドウの名称と役割は以下の通りです。

  • Scene: 作成中の3Dビュー
  • Game: シーンのカメラを通して描画されたゲームシミュレーションのビュー
  • Hierarchy: Sceneに配置しているオブジェクトの一覧
  • Project: プロジェクトに属するアセットの一覧
  • Inspector: 選択中のオブジェクトやアセットのプロパティ


Scaniverseからのデータ移行


Scaniverseからobj形式でエクスポートしたzipファイルを解凍して、解凍したフォルダごとUnityのProjectウィンドウのAsset配下にドラック&ドロップします。この時、Projectウィンドウに水色のアイコンが作成されますが、この水色のアイコンをプレハブといいます。

Projectウィンドウ


次にプレハブをSceneウィンドウにドラック&ドロップするとScene上に座標軸が現れ、Hierarchyウィンドウにプレハブと同様の水色のアイコン(プレハブから作成されたオブジェクト)ができます。しかし肝心のスキャンデータが見当たりません...そんな時にはHierarchyウィンドウのアイコンをクリックして、Inspectorウィンドウに表示されるTransformでオブジェクトの座標を確認してみましょう。

Hierarchyウィンドウ


どうやら、オブジェクト自体は配置されているものの、PositionとScaleに問題があったようです。そこでPositionを(X,Y,Z)=(0,0,0)、Scaleを(X,Y,Z)=(10,10,10)にそれぞれ変更してみます。

Scale変更


これでスキャンデータが目視で確認できる大きさになりました。でもまだ少し気になるところがあります。本来スキャンデータの中心と座標軸は一致しているべきですが、実際には座標軸はデータの中心よりかなり下の方に位置しています。


Pivotについて


この座標軸はPivotと呼ばれており、Pivotの原点はオブジェクトの移動や回転の中心点となります。今回、オブジェクト(スキャンデータ)とPivotの位置がずれてしまっているのは、スキャンデータに台座のデータが残っているためです。台座のデータ自体はScaniverseのCROP機能で削ったものの、Pivotの原点は台座を含んだ形で計算されており、対象物と台座の2つのデータの中心がPivotの原点となっています。

Pivotずれ


Pivotの原点とオブジェクトの中心がずれていると、オブジェクトの回転軸がずれてしまい、期待する動作とならないため、Unityにインポートする前にPivot位置を修正しておく必要があります。


Pivot位置の修正


Pivot位置の修正については幾つか方法がありますが、MeshMixerを使うのが簡単です。

MeshMixerにスキャンデータ(.obj)をインポートした直後の状態です。データと赤丸(Pivot座標の原点)がずれているのがわかると思います。

MeshMixerによるPivot修正前


編集→位置合わせ→適用を押すだけで、データの中心と赤丸が揃います。

MeshMixerによるPivot修正後


修正したデータをobj形式でエクスポート保存して、再度Unityで読み込んでみましょう。

Pivot修正後


今度はPivotとスキャンデータの中心が一致するようになりました。


まとめ


いかがでしたでしょうか?

Scaniverseで測定した3DスキャンデータをUnityへ取り込む際には、

  • PositionとScale
  • Pivot位置

が不揃いとなることがありますが、その際の対応方法について簡単に紹介させていただきました。


Tags

  • Unity
  • C#
  • スモールDx
  • Next.js
  • firebase
  • WebGL
  • React
  • LiDAR
  • フォトグラメトリ
  • MeshMixer
  • Scaniverse
  • Realtime Database
  • Authentication
  • ホームページ制作
  • Sketchfab

Search