ByProduct - 副産物

IT FukuSanButsu Blog

社内インフラエンジニアの自宅からはじまるIT
自宅のPCに向き合いながら気づいたことや個人的な知見をまとめています


プロフィール
しらせ(HN)
とあるIT企業のインフラエンジニア。プライベートでは開発もちょっとやります。
※本ブログの内容はすべて個人の見解であり、所属する企業とは関連ありません。
2023/09/30 暫く更新停止中m
プロフィールを読む
カテゴリ別
内部リンク
相互リンク

Twitter
来訪
1205556 [合計]
424 [今日]
437 [昨日]
Powered by
Powered by AWS Cloud Computing


【マイクラ】ブロックを1つも触らずにMinecraftで現実世界を再現する3(点群データ)

2022/04/03
2022/04/03

ゲーム


お疲れ様です。
しらせです。

前回前々回と、ブロックを触らずに現実世界をなんとか再現しようと試してきました。

そろそろ2Dではなくちゃんと3Dで再現をしてみたくなったので、iPhone12で利用が可能なLiDARスキャナのように、点群データから現実世界を再現する方向に挑戦してみます。

(前回)
【マイクラ】ブロックを1つも触らずにMinecraftで現実世界を再現する
(前々回)
【マイクラ】ブロックを1つも触らずにMinecraftで現実世界を再現する2

もくじ

点群データとは?

詳しくはWikipediaなどにまとまっていますが、X,Y,Zなどの座標情報や色やベクトル情報を持ったファイルのことです。

例えば以下のような座標と色の情報を持つ点群では、、、

x,y,z,R,G,B
0,0,0,0,0,0
0,0,1,0,0,0
0,1,0,0,0,255
0,1,1,0,0,255
1,0,0,255,0,0
1,0,1,255,0,0
1,1,0,0,255,0
1,1,1,0,255,0

以下の画像に示すような図が出来上がります。

この点が無数に並ぶことで建物や図形を表すことができるようになります。

実際のデータ形式は上記のようなリスト型のcsvファイルもあれば、LASファイルのようなデータ形式でフォーマットされたデータもあります。

LASファイルはそのままでは加工が難しいので一旦csvファイルに変換しつつ、マインクラフトに流し込もうと思っています。

(参考)
点群 (データ形式) - ja.wikipedia.org
https://ja.wikipedia.org/wiki/%E7%82%B9%E7%BE%A4_(%E3%83%87%E3%83%BC%E3%82%BF%E5%BD%A2%E5%BC%8F)

事前準備と対象選定

今回は以下のような形で実現できないかを探ってみようと思います。

  1. LASファイルをCSVファイルに変換
  2. CAVファイルからマインクラフト用に座標を変換
  3. fillコマンドへ変換
  4. 流し込み

私はiPhoneを持っていませんので、今回点群データのサンプルはインターネットで探す必要があります。

いろいろ探してみたところ、東京都交通局から「都営大江戸線 都庁前駅」の3Dデータが公開されており、G空間情報センターのWebサイトから提供されていました!

今回はこちらの都庁前駅の地下1階~3階までのLASファイルをお借りしようと思います。

(参考)
都営大江戸線「都庁前駅」の3D点群データをオープンデータとして公開します! - www.kotsu.metro.tokyo.jp
https://www.kotsu.metro.tokyo.jp/pickup_information/news/others/2021/otr_p_202103029678_h.html

LASファイルの変換

まずはダウンロードしてきたLASファイルをCSVファイルに変換が必要です。

LASファイルの変換方法をいろいろ探しましたが、今回は「LASTools」を使ってみました。

WindowsやMacなどで実行が可能な形で提供されているツール(LGPLライセンス)になります。

(参考)
LAStools: converting, filtering, viewing, processing, and compressing LIDAR data in LAS format - www.cs.unc.edu
http://www.cs.unc.edu/~isenburg/lastools/

1.LASファイルをCSVファイルに変換

ダウンロードした「LAStools.zip」ファイルを解凍したら、binフォルダにある「las2txt64.exe」を利用して変換します。

元のLASファイルには色情報はありませんのでxyzのみ抽出します。
区切れ文字はカンマに指定します。

PS > .\las2txt64.exe -i .\tochomaeb1f.las -o tochomaeb1f.csv -parse xyz -sep comma

抽出し終わったCSVファイルの先頭にx,y,zのヘッダを付与しておきます。

2.CAVファイルからマインクラフト用に座標を変換

抽出したファイルそのままではマインクラフトに流せませんので、整数に変換してあげる必要があります。

128.2756,26.5289,-2.7852
132.6555,26.8891,-1.8742
132.7958,26.4351,-1.3296

少数点以下をそのまま削除しても良いのですが、なるべく正確に表現するために一度少数第一位までを求めつつ整数に直していきます。

128,26,-2
132,26,-1
132,26,-1

3.fillコマンドへ変換

最後に、マインクラフト側に流せるようにfillコマンドに整形します。

元のデータの問題なのか、Y座標とX座標が入れ替わっていました。。(これが正しい?)

なのでfillコマンドではyzを逆にしています。

/fill x z y x z y stone

流し込み

最後に出来上がったコマンドを流します。
(ドキドキ)

まずは地下一階。

形がしっかり現れました!

そして地下二階。

ちゃんと層になってますね!
出入口へ続く階段もいい感じ!

ラスト地下3階!

わかりにくいですがちゃんと3階建てになってますねー。
というか、都庁前駅めちゃくちゃでかく見えますw

すべて流し終わったので中身も見てみます!

地下二階には改札が見えます!
都庁前駅には訪れたことはありませんが、柱などから雰囲気は感じますね!

こちらは地下三階の駅ホーム。
右手には線路とホームドアがあり、左手には階段も見えます!
暗いので電気をつけたいですね!

地下二階の広い場所。
結構抜けブロックが多いですが、ここは床がしっかり描画できていますねー。

最後に全体像です!
さらに奥まで続いていますが描画しきれていません!

考察

まさかここまでしっかりできるとは思いませんでした!

色データが付加されたLiDARデータならもっとリアルに再現できるかもしれません!

また時間があれば挑戦してみます。

以上
おつかれさまでした。



View:2292 この記事をツイート!