見出し画像

Google Mapsの建造物をMinecraftに持ってくる

山梨大学をMinecraft内で再現するプロジェクトがありました

その時、Google Mapsの3Dオブジェクトをワールドに直接流せば作るのが楽なのではと考え、その一連の流れをまとめたものになります
(結局完成度が高くなく採用されなかったのはまだ別の話..

小難しい話は、飛ばして参考動画任せにするため、同様のことを行うとしているならば、参考資料から優先的に拝見されると良いかもしれません!


3Dオブジェクトを落としてくる

Google Maps にはデフォルトで3Dオブジェクトを落とす機能はないため、WebGLのキャプチャを行う方法を使います

RenderDoc

こちらのソフトを使い、Google Maps の3Dオブジェクト描画をキャプチャし、保存します

Blender

次にBlenderを使って作業をします

Blenderでは主に、.obj形式に変換不要部分を削除、を行います
不要部分削除では、保存形式の関係で、上手に消すことはほぼ不可能ですが、Minecraftに移してから削ればいいので妥協します(あまりに大きすぎるとツール移るたびに読み込み時間が長い)

voxelizer

先ほどのobjファイルをボクセル化します
これで、複雑な3Dオブジェクトから、Minecraftのようなドット風になるわけですね
このサイトで作られる.schematic形式はWorldEditを使えばワールドに直接書き込めてしまいます


Minecraftに書き込む

ここまでこれば勝ったも同然です

MinecraftにWorldEditが利用できる環境を構築(起動済み)にしてから、先ほどの.schematicファイルを「.minecraft/config/schematics」に入れます

//paste

上記のコマンドを置きたい周辺で行うと生成されます(オブジェクトが大きいと時間がかかります)


失敗談

上記の流れ(特に参考資料を参考にすれば)Google Mapsのデータを持ってこれますが、ここで一つ問題が起きてしまいます

角度がおかしい!

実は建築物の方角が、Google Mapsの方角と対応してしまっているわけです
つまり、東西南北にどれかに平行ではない建築物は、角度がいびつで、なんなら壁が斜め配置されてしまうんですね

これは困った..

仕方なく、配置した建築物を回転するPluginを作ることに
仕組みは皆さん大好き「アフィン変換」
試行錯誤を重ね完成させ、回転させた建物を一部の標高で画像出力

方角ズレ

ボクセル化したものを無理やり回転させてもいいことはありませんでした
よく見ると壁がギザギザになっている、近似処理にしているためか所々穴が開くなど悲惨

そもそもWorldEditに回転機能がありました
本当にありがとうございました(車輪の再発明)

そのため、こういった回転問題に困っている方は

  • Blenderで回転させてからMinecraftに持ってくる(未検証

  • WorldEditの機能で回転させる(非推奨

など試してみてはいかがでしょうか


参考資料

英語圏ですが、動画で解説されている方がいます。
From Google Maps to Minecraft [TUTORIAL]

この記事が気に入ったらサポートをしてみませんか?