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を扱えるエンジニアを積極採用中です!詳しくはこちらをご覧ください。

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

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

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

関連記事