1. HOME
  2. ブログ
  3. IT技術
  4. 【Unity】meshlabで出力した点群データを軽量化して可視化する

【Unity】meshlabで出力した点群データを軽量化して可視化する

Unityで点群の表示に挑戦!

スマートフォンアプリや、FacebookGameroom、Oculus などの VR のゲームまで開発することのできるソフト「Unity(ユニティ)」。

近頃はゲームアプリだけではなく、土木関係のビューワーや、医療関係のシュミレーションでも使用されています。

Unity を使用すれば、3Dモデルを利用した作品を簡単に作成することができます。

ですが、一番大変なのはモデリングの作業です。

人物のモデルの場合、プロのモデラーに頼むと、1つでも数万円から数十万円の費用が掛かることも。

点群とは

実際に存在する建物や地形などを、簡単に表現する方法があります。

それが「点群」です。

ドローンなどで撮影した航空写真から、自動で作成した点の集まりです。

拡大すると点の集まりですが、全体的に見ると 3Dモデルと遜色ありません。

これを Unity で扱っていきましょう。

注意点

  1. Unity の ve rは 2018.3.14f1 です。
    それ以前、以後のバージョンではエラーが出る恐れがあります。
  2. Point Cloud Free Viewer の情報は、2020年2月20日現在のものです
  3. 点群を扱うので、ある程度のマシンスペックを必要とします。
    メモリは 16GB 以上を、グラフィックボードは GEFORCE GTX1060 以上を推奨します。

こちらの記事もオススメ!

Unity Assets Store からアセットをインストール

今回は、「Point Cloud Free Viewer」というアセットを利用します。

使用するアセットはこちら!

【Point Cloud Free Viewer】
https://assetstore.unity.com/packages/tools/utilities/point-cloud-free-viewer-19811

「Open in Unity 」を選択し、その後 Unity で「Import」を押します。


(画像をクリックすると、別ウィンドウで大きなサイズの画像が開きます)

そして、Unity のヒエラルキーの横にある、プロジェクトビューのなかに「Point Cloud」というフォルダができていれば完了です。

【注意】点群の拡張子を確認する

点群には、加工に使用したソフトによって様々な拡張子があります。

今回使用しているアセットは、「off」という拡張子のみに対応しています。

「off」でない場合は、「meshlab」などで変更しましょう。

変換できる拡張子

ply、obj、3ds、ptx、v3d、pts、apts、xyz、txt など

変換できない拡張子

csv、lsproj、cl3 など

Unity に点群を読ませる

それでは、実際に Unity に点群を読ませていきます。

アセットをインポートした時に「Point Cloud」ができたと思います。

この中に「Example」というシーンが出来ているので、それを選択してください。

開くと、ヒエラルキーに「PointCloudManager」というゲームオブジェクトがあるので、そこに注目してください。

そこに、オブジェクトと同名のスクリプトがアタッチされています。

そこの「Data Path」を点群のデータのものにします。

パスを見ていただければわかると思いますが、「PointCloud」のフォルダ直下に入れるようにして下さい

「playボタン」を押せば、下記画像のように点群が表示されます。

カメラ操作をつける

これだけでは、視点の変更ができないので、カメラに以下のスクリプトをアタッチして、視点変更ができるようにしましょう。

スクリプト

カメラの操作方法

操作方法は以下のようになっています。

W、A、S、D前後左右の移動
Q、E上昇、降下
右ドラッグカメラの回転
左ドラッグ移動
中ドラッグパン

軽量化とエラー対策

この状態で、ビルドしようとするとエラーが出ることがあります。

「PointCloudManager」のフォルダにアクセスする機能が、悪影響を及ぼしています。

プレイ状態で、点群のオブジェクトをプレハブで保存します。

そのプレハブを配置して、「PointCloudManager」はプロジェクトビューから削除してしまいます。

そうすることで、エラーも出ず、起動が早くなります。

さいごに

いかがでしたか?

実際の建物や、地形などを使用しているので、モデリングの代用という考え以上に、いろいろと楽しい使い方が出来るかもしれませんね!

ご紹介した内容を参考に、点群データを使って、地形や建物を表現してみてください!

(株)ライトコードは、WEB・アプリ・ゲーム開発に強い、「好きを仕事にするエンジニア集団」です。
Unityでの開発依頼・お見積もりはこちらまでお願いします。
また、Unityを扱えるエンジニアを積極採用中です!詳しくはこちらをご覧ください。

※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!

書いた人はこんな人

ライトコード社員ブログ
ライトコード社員ブログ
「好きなことを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡本社、東京オフィスの2拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。

システム開発依頼・お見積もりは大歓迎!
また、WEBエンジニアとモバイルエンジニアも積極採用中です!

ご応募をお待ちしております!

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア