Minecraftの世界をGoogleマップのように表示してくれるという、The Minecraft Overviewerというソフトがあるので試してみた。
マインクラフトをGoogleマップっぽく表示できるツール「The Minecraft Overviewer」 via GIGAZINE
インストールしたのはPCじゃなくて、さくらのVPS(CentOS)だ。 ちゃんと動けば、こんな感じで自分のワールドのマップが表示されるらしい。
こりゃ試すしかないよね!
大雑把に手順を説明すると下記の通り。
分かる人はそれなりに、分からない人はググりながら頑張れ。
本体、依存関係のパッケージのインストール
公式サイトのインストールマニュアル通りやっていこう。 まずはパッケージ情報のダウンロード。
$ wget -O /etc/yum.repos.d/overviewer.repo //overviewer.org/rpms/overviewer.repo
次にパッケージと、依存関係のあるパッケージ群のインストール。
$ sudo yum -y install Minecraft-Overviewer
これだけ。 ちなみに、インストール先は下記だ。
/usr/bin/overviewer.py
Webサーバの設定
overviewer.pyの実行結果は、index.htmlを含むディレクトリ構造として出力されるので、Webで公開できるディレクトリの下に出力用のディレクトリを作っておくこと。
アクセス権もちゃんと設定してね!
テクスチャのダウンロード
次は設定マニュアルに従って、マップを生成してみよう。
The Minecraft Overviewerはコマンドラインで動作して、その書式はこう。
overviewer.py [--rendermodes=...] [options] <World> <Output Dir> overviewer.py --config=<config file> [options]
さて、ではさっそく試してみよう。 赤字の部分を自分のサーバの置いてあるパスに書き換えて実行する。 生成されたファイルは、青字のディレクトリに作成される。
$ overviewer.py /home/Minecraftをインストールしたパス/world ./
でも、エラーが出るだろ?
E Could not find the textures while searching for 'assets/minecraft/textures/blocks/grass_top.png'. Try specifying the 'texturepath' option in your config file. Set it to the path to a Minecraft Resource pack. Alternately, install the Minecraft client (which includes textures) Also see <//docs.overviewer.org/en/latest/running/#installing-the-textures> (Remember, this version of Overviewer requires a 1.8-compatible resource pack) (Also note that I won't automatically use snapshots; you'll have to use the texturepath option to use a snapshot jar)
超訳すると「ググれカス」って書いてある訳だけど、それじゃ不親切だからもう少し詳しく書く。
まず、リソースパックが無いって言われてる。 リソースパックと、そこへのパスを設定ファイルに書けと。 これはMinecraftのクライアントに同梱されてるのでそこへのパスを書いても良し、1.8対応のカスタムリソースパックを入れても良し、普段使っている環境が標準ならクライアントをダウンロードすれば同じ見た目のマップになる。
クライアントをダウンロードするなら、下記コマンドを実行する。
$ VERSION=1.8
$ wget //s3.amazonaws.com/Minecraft.Download/versions/${VERSION}/${VERSION}.jar -P ~/.minecraft/versions/${VERSION}/
赤字の部分はダウンロードするファイルの保存場所なので、自分の環境に合わせて適当に変えれば良い。 このコマンドを実行すると、下記のファイルがダウンロードされる。
~/.minecraft/versions/1.8/1.8.jar
この中にテクスチャも入っているんだけど、これを解凍してasset以下を取り出してパスを通しても、コマンド直下に置いても、何故かエラーが収まらない。 面倒だが設定ファイルを書くしかないのか。
設定ファイルの作成
設定ファイルは公式サイトの設定ファイルの書き方を見ながら作っていこう。
まず、設定ファイルは起動オプションで指定するので、場所はどこに置いても構わないし、名前も自由につけて良い。 試しにカレントで作ってみようか。
$ vim ov.conf
中身は公式サイトのサンプルをコピーして自分の環境に合わせて書き換えるんだが、ひとつのマップを作るのにアホみたいに時間がかかるので、テストのときは一つに絞らないと中々マップ生成が終わらない。
下記はサンプル。
worlds["適当なワールド名"] = "/home/Minecraftをインストールしたパス/world" renders["このマップの名前(この設定ファイル内でユニークであること)"] = { "world": "前述のワールド名と同じもの", "title": "マップで表示されるタイトル", "rendermode": smooth_lighting, "dimension": "overworld", } outputdir = "出力するファイルのパス(Webで公開できるパス)" texturepath = "/クライアントをダウンロードしたパス/1.8.jar"
設定項目はたくさんあるけど、よく使いそうなパラメータだけメモしとく。 何も指定しなければ標準のパラメータで生成される。
- rendermode
- normal 陰影の無いテクスチャだが処理が最速(標準)
- lighting 陰影がつくが少し遅い
- smooth_lighting 滑らかな陰影で最高画質だが最遅(オススメ!)
- night 夜景モード
- smooth_night 灯りの陰影が滑らかな夜景
- nether ネザー用の天井が無いマップ(dimensionもnetherにすること!)
- nether_lighting 上記に陰影がつく(dimensionもnetherにすること!)
- nether_smooth_lighting 滑らかな陰影がつく(dimensionもnetherにすること!)
- cave 洞窟や他のブロックの中にある空洞だけを描画する
- dimension
- overworld 通常の地上世界のマップ(標準)
- nether ネザーのマップ
- end エンドのマップ
- northdirection
- upper-left 左上が北(標準)
- upper-right 右上が北
- lower-left 左下が北
- lower-right 右下が北(標準+コレの2つのマップで全ての場所が見られる)
さて、設定ファイルを書いたら、さっそくマップ生成だ!
$ overviewer.py --config=設定ファイルのパス
実行すると色々なメッセージが表示されるが、このマップは巨大だよ!なんて表示がされて、その後にこのひとつのマップだけでも生成に3時間かかると表示されておる。
あっちこっちにテレポートしまくって作られた世界だったので、無駄に広いマップになっているようだ。
さすがにそんな待てないので、描画範囲を制限する下記を”dimension”の下に追記して早めに終わらせよう。
"crop": (x1, z1, x2, z2),
このx1,z1,x2,z2には、Minecraftプレイ中にF3キーを押して表示されるXYZのXとZの値を中心に、前後1,000程度を設定すれば雰囲気は掴めると思う。
例えば自分の座標がXYZが、0,50,0だったらこんな感じ。
?"crop": (-1000, -1000, 1000, 1000),
この範囲指定は、括弧で囲んで複数範囲を設定できる。
"crop": [(x1,z1,x2,z2),(x3,z3,x4,z4)],
これを活用することで、こんな風に必要な場所だけを網羅した地図も作成可能だ。 海とか不要だしね。
ただし、一度マップを作ってしまえば更新したところだけの処理になるので、もう少し早く処理も終わるので気にする必要は無いかもしれない。 どっか遠くにテレポートしちゃうと、また時間がかかるかもしれないけど。
設定項目はたくさんの種類があるので、他にも公開されているたくさんのサンプルを見ながらあれこれ試してみて。
マップの生成と公開
実行すると設定ファイルで指定したディレクトリにファイル群が生成されるので、その中のindex.htmlをブラウザで開けば自分の作ったマップが見られるって訳だ。
実行は設定ファイルへのパスを記述する。
$ overviewer.py --config=/設定ファイルへのパス/ov.conf
これは毎晩自動で走らせたいので、crontabに登録する。
$ sudo crontab -e
毎晩2時半に起動するようにした。
30 2 * * * /usr/bin/overviewer.py --config=/設定ファイルへのパス/ov.conf
ちなみに、ウチのマップはこんな仕上がりになった。 見ての通りで、テレポートした場所が点在している。 自分達が訪れた場所だけデータが作られるんだね。
なお、このマップ1枚で約5.5GB程度のディスク容量を消費している! でかっ!!
マップを複数生成すると容量もそれだけ必要になるので、広いワールドで遊んでいる場合にはディスク容量が充分かチェックしておいた方が良い。
実際、cronを走らせた翌朝、サーバは生きてるのにWebが表示されない状態になっていた。 サーバ障害か!?と思って焦ったけど、ディスクが満パンになっていたというオチだった。
ものは試しと、色々なバージョンのマップを追加で生成していったらこの有様。
あーびっくりした。
それにしても、全体をGoogleマップのインターフェイスで動かせるのは、思った以上の使い勝手で素晴らしい。
マップ左下に表示される座標もMinecraftのワールドの座標なので、テレポートしたい場所を確認するのにも便利だ。
使うまでに少々手間取ったけど、後は設定ファイルを少しずつ試してみるかな。
コメント
3年前の記事ですが、読んでくれてありがとう。
PEやってる人は多いけど、特殊なのでOVでは無理ですね。
ご質問のPEのワールドをJAVAに移植する方法は、
他のサイトに詳しいのでそちらを検索されたし。
The minecraft overviewerの
PE版はないですか?
無ければ
PEデータのPC版変換方法を
教えてください