Minecraftの建築物をMakerBotで印刷する（MAC向け)

##はじめに
慶應義塾大学湘南藤沢キャンパスには3Dプリンターが設置されており、学生が自由に使用することができる（参考：[湘南藤沢メディアセンター](http://www.sfc.lib.keio.ac.jp/general/fabspace.html)）。しかし、3Dプリンターを使用するには様々な知識が必要である。筆者は３D設計の知識がないため、気軽に3Dプリンターを使う方法としてMinecraftで設計を行う方法を調べることにした。Minecraft以外のソフトは全てフリーソフトなので気軽に試すことができる。
##プリントまでの流れ
1. Minecraftで設計を行う
2. Minecraftの地図データから3Dデータを起こす
3. 3Dデータを3Dプリンタで読み込める形式に変換する
4. 変換したデータをMakerbotで扱える形式に変換する

##Minecraftで設計を行う
###Minecraftについて
Minecraftで設計を行うにあたって、今回使用するのはMinecraft Java Edition(いわゆるPC版)である。[Minecraft公式サイト](https://minecraft.net/ja-jp/)から3000円でライセンスを購入することができる。
###ワールドの生成
ワールドの生成において、Minecraftのバージョンは殆ど影響しない。そのため、最新バージョンで生成するのが無難だろう。トップページからシングルプレイを選択し、ワールドを新規作成する。この際、自分で１から何かを設計するのであればいくつかの設定が必要である。
####ワールド名の編集(任意)
後からワールドファイルを参照するので、分かりやすいワールド名が望ましい。
####ゲームモードの編集
ゲームモードはクリエイティブを選択する。
####その他のワールド設定
#####構造物の生成
構造物の生成をオフにする。Minecraftのデフォルトの建築物を試しに出力したい場合はこの限りではない。
#####ワールドタイプ
スーパーフラットを選択する。
#####チートの許可
チートの許可をオンにする。巨大な構造物を作る際などに便利である。
###設計
Minecraftで設計を行うに当たって、いくつかプリントに向けての注意点がある。
1. **構造物の色はプリントに反映されない。**
2. **全ての個体ブロックは1x1の立方体として出力される(階段などは使えない)**
3. **１つの構造物は接続されていなければならない**
4. **物理的に自立できない構造は極力避ける（出力自体は可能）**

##Minecraftの地図データから3Dデータを起こす
Minecraftの地図データから3Dデータを起こすには、フリーソフトを使用する。
###ソフトの導入
ここで使用するソフトはMinewaysというソフトで、[こちら](http://www.realtimerendering.com/erich/minecraft/public/mineways/)からダウンロードできる。
###ソフトの使い方
####ワールドの読み込み
File>Open Worldから先ほどのワールドを選択する。表示されない場合は、FindYourWorldから直接選択する。
![Kobito.M5ngvX.png](https://qiita-image-store.s3.amazonaws.com/0/190719/2d740052-814e-cc0c-2a4b-620e4f3a7de0.png "Kobito.M5ngvX.png")
ワールドが読み込まれると、ワールドの地図が表示されるので地図を右クリックする。ポップアップが表示されるのでOKする。
![Kobito.ZQ8QYW.png](https://qiita-image-store.s3.amazonaws.com/0/190719/841f30ce-d9b3-d56e-5cad-065ed4bf999e.png "Kobito.ZQ8QYW.png")
####データの書き出し
File>Export for 3D Printingを選択する。
![Kobito.RqR9y4.png](https://qiita-image-store.s3.amazonaws.com/0/190719/32f90817-4652-8099-c65b-e57b9e07feee.png "Kobito.RqR9y4.png")
ポップアップが表示されるので、任意の保存場所と任意のファイル名を選択する。ファイルの種類は「ASCII text STL stereolithography file (\*.stl)」を選択し、保存を押す。すると更にポップアップが開く。チェックボックスは、以下の画像と同じ状態にする。数値は編集する必要はない。
![Kobito.UmZowW.png](https://qiita-image-store.s3.amazonaws.com/0/190719/dc4d1e33-5ecc-1bb7-72cf-f3d0a4c63b0c.png "Kobito.UmZowW.png")
この段階で、同時にMinecraftを起動してワールドを開く。キーボードのF3キーを押すと、Minecraft上にデバック画面が表示される。
![Kobito.0dn3dj.png](https://qiita-image-store.s3.amazonaws.com/0/190719/576151c9-ad63-c62f-1eda-9edc85265d91.png "Kobito.0dn3dj.png")
ここで確認するのは、左側の下から３つ目にある「Looking at」だ。これは、Minecraftの画面の中央にある(=選択されている)ブロックの座標を示している。プリントする範囲を指定するには、3次元の2点の座標を用いる。まず、構造物の最下面の角の座標を調べる。この際、角が凹んでいたり一部が突出している場合は必ずしも構造物の角の座標にならないので、角になる場所を探してそこにブロックを設置するなどの工夫をして座標を調べる。
ここで調べた座標は、Minewaysの設定画面の左上にあるWorld coordinates selection area の Box min に入力する。
同じようにして構造物の最上面の逆側の角の座標を調べ、World coordinates selection area の Box max に入力する。
次に、Minewaysの設定画面の右上にある3D printing related optionsのMake each blockの値を10mmに設定し、設定が完了するのでOKを押す。なにやらポップアップが表示されるが、YesやOKを押して問題ない。
##3Dデータを3Dプリンタで読み込める形式に変換する
3Dデータを3Dプリンタで読み込める形式に変換するには、フリーソフトを使用する。
###ソフトの導入
ここで使用するソフトはUltimaker curaというソフトで、[こちら](https://ultimaker.com/en/products/ultimaker-cura-software)からダウンロードできる。
初回起動時に3Dプリンタの選択があるので、「MakerBotReplicator」を選択する。
###ソフトの使い方
####ファイルの読み込み
ソフトを開くと、左上のOpen fileからファイルを開くことができるので、先ほど作成した\*.stlを開く。
![Kobito.MU3YSR.png](https://qiita-image-store.s3.amazonaws.com/0/190719/fd8d80fd-f327-034f-2456-101d89797127.png "Kobito.MU3YSR.png")
####サイズの調整
読み込んだ時点では、モデルのサイズが大きすぎてプリントできなかったり、プリントに時間がかかりすぎる可能性があるため、サイズを調整する。
まず、モデルをクリックすると左側のメニューが選択できるようになるので、上から2つ目のScaleを選択する。Uniforrm Scalingにチェックが入っているのを確認し、X軸の％を増やしたり減らしたりしながら適度なサイズに調整する。
![Kobito.4oJ6cj.png](https://qiita-image-store.s3.amazonaws.com/0/190719/fe2cb098-8058-68b9-c7f4-d928e3cef54c.png "Kobito.4oJ6cj.png")

####データの書き出し
画面の右側では、データの書き出し設定を行うことができる。基本的には下記の画像と同じ設定にする。
![Kobito.9nMtxx.png](https://qiita-image-store.s3.amazonaws.com/0/190719/ad0cff11-315c-5385-6951-577a0d3d0ef3.png "Kobito.9nMtxx.png")
モデルが画面の中央にないと書き出しができないので、中央にあることを確認して右下のSave to fileを選択する。
ポップアップが開くので、保存場所と名前を任意で設定する。ファイル形式は、Wavefront OBJ File(\*.obj)を選択する。
##変換したデータをMakerbotで扱える形式に変換する
変換したデータをMakerbotで扱える形式に変換するには、フリーソフトを使用する。
###ソフトの導入
ここで使用するソフトはMakerBot Printというソフトで、[こちら](https://www.makerbot.com/print/)からダウンロードできる。
###ソフトの使い方
####ファイルの読み込み
ソフトを起動して、左上のProject Paneを開く。
![Kobito.0qPcYx.png](https://qiita-image-store.s3.amazonaws.com/0/190719/c0ceeed8-c0c5-fe01-8748-828f5b26deef.png "Kobito.0qPcYx.png")
すると、Add Modelsというボタンがあるので、それをクリックするとポップアップが開く。前の手順で作成したファイルを選択すると開くことができる。
####プリンターの追加
右下のAdd printerからAdd Unconnected Printerを選択し、Replicator+を選択する。その他のプリンターを使用する場合は、そのプリンターを選択する。
![Kobito.60xexz.png](https://qiita-image-store.s3.amazonaws.com/0/190719/aa7e0491-ec2a-6e6c-790c-74269b2aa550.png "Kobito.60xexz.png")
選択が完了すると右下にExportボタンが現れるので選択する。
![Kobito.zSrnxC.png](https://qiita-image-store.s3.amazonaws.com/0/190719/1ed61bdc-8838-1e4e-64f8-89a339e25c09.png "Kobito.zSrnxC.png")
ポップアップが表示されるので保存場所と名前を選択し、保存する。暫く時間がかかるので、完了まで気長に待つ。
エクスポートが完了するとプリントにかかる大まかな時間が表示されるので、この時間がプリンターの使用可能時間を越える場合は前の手順でサイズを小さくするなどして対応する。
![Kobito.ej88Sb.png](https://qiita-image-store.s3.amazonaws.com/0/190719/3d4d9073-a94e-f4e0-6204-eab81dd0d0d2.png "Kobito.ej88Sb.png")
##完成
ここで最終的に出力された.makerbotファイルを使用することで、実際に印刷を行うことができる。例としてMinecraftの村にある教会を印刷すると以下のようになった。そこまで難しい手順ではないので是非試してみて欲しい。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/190719/5679e49f-cfe2-c67e-dc7f-0b493a5401aa.png)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/190719/b39c016d-42d3-67a6-930f-59c7397d1ee4.png)