Minecraftワールドデータを3Dデータでエクスポートする「JMC2OBJ」
閉じる
閉じる

新しい記事を投稿しました。シェアして読者に伝えましょう

×

Minecraftワールドデータを3Dデータでエクスポートする「JMC2OBJ」

2013-02-01 12:10
  • 19
  • 120
新作も作らずに解説記事とな!(がんばらずに作っておりますのでもうしばらくおまちください)

イカの人ことオキシーさんがブロマガにてこのような素晴らしい記事を書かれています。

MinecraftのワールドデータをMMD用に変換してみる的な
http://ch.nicovideo.jp/oxy/blomaga/ar62913

今回はその尻馬に乗って似たようなソフトを紹介するというド外道な丸パクりをします。具体的にはMinewaysと同様の3Dデータ出力ツールである「JMC2OBJ」というアプリケーションを解説したいと思います。

JMC2OBJ
http://jmc2obj.net/

拙作においてMinecraft世界のモデルを出力するために使っているのはこちらのJMC2OBJです。私の使い始めた当時は「階段や半ブロックなどを再現できるエクスポートアプリ」はこのJMC2OBJしかありませんでした。現在はMinewaysでも様々なブロックを出力できるようですが、選択肢が広いことはそれだけで正義です。

□使い方



まず上記サイト右上からダウンロードを選びアプリケーションをダウンロードします。
jMc2obj-dev_r***M.jarと書かれた奴らをどれかクリックして保存しましょう。
バージョンは単純に新しければ新しいほど(下に行くほど)良いと思って大丈夫そうです。





Javaファイル単体で動作します。別段どこのフォルダやjavaファイル内に入れる作業は必要なくダブルクリックでOK。当然Javaが必要ですがMinecraftが動く環境ならば当然動きますし、MODで遊びつくしている皆様には今更説明の要もないと思います。




ちょっと特徴的なインターフェース。
まずは最上段のアドレス欄、デフォルトでMinecraftのセーブデータがある場所が選択されていますので出力したいワールドを選択します。隣の0を切り替えるとネザーとかエンドになります。
選択したら「Load」




Minewaysなどと変わらず俯瞰視点で、操作も大差なく。
・左クリック&ドラッグで選択
・右クリックで移動
(Minewaysと逆!)
・右上、右下の上下バーで高さを選択

簡易な操作なので迷うことはないはずです。Windows7では上下バーが異常に細い(というか初見で気づかないレベル)のでちょっとイラッとします



XPでの画面。

高さ調整はスナップやカーソル操作など一切無くフリーハンドが要求されるので左にあるステータスも参考に。
選択した状態で「Export」を押し、出てきた横長なウィンドウの「Show Export Options」「Show texture options」を押して展開しましょう。





適宜オプションを変更し、最下部「Minecraft」と書かれたボタンでテクスチャファイルを出力、「Export」でモデルを出力すればOBJファイルとMTLファイルが出力されて終了です。.x化してMMDやそのまま3Dモデリングも可能です。
オプションの詳細は後述。



水中ハウス的なものを出力してみたところ。ちゃんと水にも透明度がついています。

□Minewaysとちがうところ

・特殊な形状のブロックでもかなり厳密に元ワールドから生成されます。



上の画像はそれぞれのブロックの左がJMC2OBJ、右がMinewaysで出力したものを並べてレンダリングしたものです。
Minewaysはガラスパネルがガラスとして出力される、ピストンヘッドなどが正常に描画されない、特殊ブロックがわりといい加減、ハシゴの扱いが張り付いているブロックと一体化した状態などなど問題がありますが、JMC2OBJは正確に出力されています。
エンチャントテーブルの本など、実物は意外と凝った(マイクラ基準で)構造になっていますが、JMC2OBJでは平面にテクスチャ貼り付けなどでなくそれなりにきちんとモデリングされており、このまま動画使用にも耐えます。

・後述の通り3Dモデリング用のオプションが充実しています。オブジェクトの分割方法など、かなり便利です。
・継続的に使ってる感想として、Minecraft最新バージョンへの対応がものすごい早いです。新ブロック追加もなんのその。

□注意点

・テクスチャのマッピングがごくごく微妙にズレる場合がある?これは3Dソフト側の問題か?
・当然大量のデータは重くなります。あとメモリ不足エラーがたまに出ます。
・バージョン1.4.7でテストしました。JMC2OBJのバージョンはdev_r271Mです。
現行までのバージョンで読み込めないということはないと思われますがr271現在13w04aスナップショット以降には注意。テクスチャファイルが個別化されたため、テクスチャ出力がうまくいきません。正規バージョンを使用して一度テクスチャファイルの出力さえしてしまえば問題ないと思います。
大規模MODなどを適用したワールドデータに対する扱いは分かりかねます。一応追加ブロックをUnknownとして出力できるため、読み込み自体ができないことはないと思われます。

□まとめ

Minewaysはコンセプト的に「CAD出力して3Dプリント」が主目的のソフトなので、RPに耐えうるよう細かい修飾ブロックなどは意図的に不正確にしてあるのだと思われます。
(3Dプリンタは細すぎるモデルデータを出力すると取り出すときに割れます。)
作業としてテクスチャの出力が別工程になっていたりするJMC2OBJと比べると、簡略でわかりやすく一発出力できるのが利点と言えます。感覚的には大容量データに対しても比較的堅牢な気がします。

JMC2OBJは.objでの出力、つまり3Dモデリング用に特化され、出力結果も厳密なので、我々「3Dでマイクラ動画」業界にとっては非常に強力無比なツールです。なんて狭い業界だ。
特に特殊なブロックの再現性は目を見張るほどで、レッドストーン周りですらオンオフ状態を含めほぼ完璧に出力します。
ときたまメモリ不足エラーを吐きますが(当方PCさんの名誉のために言っておくと16GB載ってます)動画や静止画素材として利用するための小さめの建築物を出力するのに向いていると思います。

いずれを使うにせよマイクラと3Dモデリングの融和にはこの種のツールの存在は大きな助けとなっており、事実拙作の制作でもMinecraft自体が完全に3Dモデリングソフトと化していました。マイクラで遊んで作業が進むなんてこんなに素敵なことはありません。おかげで自分のワールドに映画のセットみたいな建築が立ち並んだりしてますが気にしません
MMDの出力などはわたくしさっぱりわからんちんですので他の人の解説記事を待ちましょう。他力本願です。

□オプション解説

さて、オプションの項目はほぼ英語直訳で理解できる内容ですが(震え声)、なかなか3Dモデリング的に見逃せない項目も多いので以下に細かく解説、実践していきます。これを記事内容の水増しと言います。




  • Save folder
ファイルを保存するフォルダを選択します。右のBrowseで参照可能。
  • Map Scale
エクスポート後のモデルのサイズを指定する項目です。言うまでもなく、単にモデル出力するだけならばほとんどの3Dモデリングソフトで適宜拡大縮小すれば良いので、あまり気にしなくてもよいです。
  • Offset
モデルの基点の設定です。Noneだとマイクラ内のxyzが0のところになると思われるので単独モデルならCenterにしておくほうが扱いやすいです。

  • Render World sides & bottom 
選択したモデルの境界にある面を描画するかしないか。オンにするとそのまま切り出したかのように描画されます。ポリゴン数の節約にはなりますが、あまりオフにする意味もないです。

  • Render Biome 
バイオームによるテクスチャの色違いなどを描画、するはずです。

  • Render Entities 
エンティティ描画!とは書いてあるものの、実際アイテムやMOB、プレイヤーが描画されるということはありませんでした。装飾アイテムというわけでもないようで、何を示しているのかイマイチ不明。

  • Render Unknown Blocks
これはバージョン違いやMODなどで追加された未対応ブロックの扱い。とは言え単にピンクのブロックが代わりに置かれるだけです。

  • Create a separate object for each material
  • Create a separate object for each chunk
  • Create a separate object for each block [!]
まとめて説明。JMC2OBJで書き出されたモデルは、3Dデータ上では単一のオブジェクトとして出力されます。これらはそのオブジェクトを、マテリアルごと、チャンクごと、ブロックごとのそれぞれで分割する機能。
分割されたところはそれぞれ別オブジェクトとして出力されるため、以下の様な違いになります。




とりあえず匠ヘッド的な謎オブジェを出力。
これは全てオフにし、全て単一のオブジェクトとして出力した状態。つまりは「模様付きのハコ」として出力されます。
出力したモデルをひとかたまりで扱う(背景遠景など)場合、これにしておくと便利です。






↑Create a separate object for each materialをオンにし、マテリアルで分割したもの。をそれぞれ動かしました。
マテリアル、すなわちブロックの種類ごとに最初からオブジェクトとして分割されたモデルが得られます。Minewaysっぽいモードと言えます。
ブロックに埋まった不可視部分の境界までは生成されず、画像でも単なる板が生成されてしまいました。鉱石塊などを取り出せるようなそういうモードがあっても良いと思うのですが。





Create a separate object for each block [!]
をオンにすると、オブジェクトがブロック単位で分割して生成されます。




つまり「ブロック1つが1オブジェクト」という強力なモードで、不可視領域まで完全に再現されます。画像でダイヤモンド鉱石が出てきたのがお分かりでしょうか。
Minecraftの仕様そのものとも言え、たとえば上から層ごとにブロックが落ちてきてそれぞれ組み上げられて建築が完成するとか、その手の演出もやりやすいでしょう。
ご想像の通りオブジェクト数やマテリアル数が著しく増加し負荷が激しくなるため、必要ない場合はオフ安定です。赤字の[!]つきは伊達ではありません。

  • do not allow duplicate vertexes
頂点の複製を許可しない(直訳)
Chunkかなにかの影響で同じブロックでありながら頂点が2つ重なって生成された場合、それを集約するかどうかです。3Dモデリングやってるとたぶん意味がわかり、オンにしたほうがスッキリするだろうと想像がつくと思いますが、わからない場合はオフでいいかな。
「Create a separate object for each block [!]」をオンにして出力する場合は、こちらをオンにしていると危ない感じ。
  • Use single texture file
後に述べるテクスチャファイルのエクスポートと関連しますが、テクスチャファイルを単一ファイルとして出力した場合、そのファイルの場所を指定する欄。デフォルトのterrain.pngを指定するものではありません
  • Overwrite OBJ
  • Overwrite MTL
上書き設定を、確認(Ask)するか、常に(Always)するか、しない(Never)か。
  • Rename
面倒くさいことに上記の「Save folder」は本当に保存するディレクトリを決めるだけで、保存するファイル名はここで設定します。
  • Destination
テクスチャファイルの保存先です。
  • Pre-scale textures
テクスチャファイルを出力する際、通常のサイズの1~16倍で出力できる設定です。16xはマシン性能にかかわらずたいていメモリ不足でエラー吐きます
多くの3Dソフトではデフォルトでテクスチャの補間が行われるため、マイクラ世界の低解像度テクスチャは拡大補間されてボケた見た目になります。これは見た目を維持したままテクスチャ解像度を倍率分大きくする機能ですが、実際のところこの程度の倍率では結局補間されてしまってあまり変わらないかもしれません。
  • Export alpha channel in separate file(s)
出力したテクスチャファイルにアルファチャンネルを指定する機能。よもや画像や動画を扱おうという皆様にアルファチャンネルの説明が要るとは思ってはいませんが(暗黒微笑)、要は透明部分を透明部分として出力するための機能。
  • Export all textures in single file
テクスチャファイルを単一のファイルとして出力する機能。
少々ややこしいのですが、Minecraft1.4.7までの仕様において、テクスチャは原則terrain.pngファイルとして単一のファイルで扱われます。JMC2OBJではこれを1ブロックごとに1つのファイルに分割してテクスチャファイルとして保存する仕組みになっています。
それだけたくさんのファイルができることになるわけですが、これを本家と同じく1つのファイルにまとめるのがこの機能。(ただし本家のterrain.pngとは配置が異なるため互換性はない)
これの良し悪しはおのおののファイルの取扱い姿勢によって異なるのでなんとも言えませんが、私の環境ではこれをオンにして出力したモデルで、マッピングがズレる現象がときたま見受けられました。

次のアップデートでMinecraftのテクスチャファイルは1ブロックごとに1ファイルとして分割されるようになる予定です。JMC2OBJがこれに対応すれば、状況が変わってくるものと思われます。

  • Export texture from
テクスチャのソースを選択します。「Minecraft」を選択するとデフォルト、バニラのテクスチャで出力されます。「Custom Texturepack」では、ファイル選択画面が開き、Minecraft用のテクスチャパック(.zip)を選択してそれを適用した状態で出力出来ます。
3Dデータの仕様を考えるに、32や64のテクスチャでも結局モデルにマッピングするだけなので使用可能のはず。

□実践




安定のリフォーム。
あ、ちょっとブロック浮いてる…

ニコニコのブロマガにYoutube動画貼る奴もどうかと思うけど、こういうニコ動投稿するまでもない動画を良い感じに挿入する手段があればいいのにねと。

前述の「Create a separate object for each block [!]をオンにしたモデルに物理演算をかけました。割と素敵な崩壊シーンとなります。なかなか重いですが家一軒くらいならなんとかなります。

3Dソフトによって違ってきますが、インポートする際はスムーズ関連は全てオフにし、テクスチャの補間も忘れずにオフにしておくとマイクラらしい見た目になります。インポート後の設定でなんとかなることもあります。


というわけでJMC2OBJの説明でした。ちょっと長くなりましたがJMC2OBJを日本語文章で解説しているものが見つからないので、資料になれば幸いです。内容の正しさは保証しません。保証しませんとも。
広告
他9件のコメントを表示
×
メタセコイアでXファイルに出力するとテクスチャーが潰れてしまうんですが。
どうすれば匠オブジェクトのように潰れないようにするんですか?
50ヶ月前
×
>>10
たかたかさん、
http://www.nicovideo.jp/watch/sm5325224
この通りにするとテクスチャつぶれませんよ
47ヶ月前
×
>>11かげさん
ありがとうございます。助かりました
46ヶ月前
×
何回もDLリンクに飛んだけど文字が逆さになるだけで何にもDLできないくそサイトが出てきます。
DLしたいのにDLできないのでどうにかしてください
41ヶ月前
×
>>17
ブラウザを変えたら普通にDLできた
38ヶ月前
×
X化って何?か教えて?だれか・・・
37ヶ月前
×
メタセコでx化して、MMDに出してもテクスチャが灰色になってしまうし、なんか小さくなる。
34ヶ月前
×
>>11
RYUさん、もしかしてブロック1種類ごとにテスクチャを1つずつマッピングするということですか?
34ヶ月前
×
http://jmc2obj.net/
ここにアクセスできない...
7ヶ月前
×
こんばんわ。何もできずに頼るのはお恥ずかしい限りなのですが、最新版の使い方を教えて頂いてもよろしいですか?エクスポート後の画面も違っていて頭が混乱しています。お願いします
6ヶ月前
コメントを書く
コメントをするには、
ログインして下さい。