ファブ3Dコンテスト2016:カテゴリー3:Minecraftで3Dプリンタを作ってみた

Created Date: 2016-10-28/ updated date: 2016-10-29
    Owner & Collaborators
    License
    Summary
    modなどの拡張機能なしの素の状態のMinecraftで動くコンピュータ兼3Dプリンタを作成。
    ゲーム内で3Dプリントされたデータを本物の3Dプリンタでも出力してみました。

    Materials

      Tools

        Blueprints

          Making

          • Minecraft(クリエイティブ、チートon)で使えるブロック「コマンドブロック」を使うと論理回路、加算回路などを作ることができます。
            コマンドブロック1 `/testforblock 0 0 0 stone` impulseモード
            コマンドブロック2 `/testforblock 0 0 1 stone` chain&conditionalモード
            コマンドブロック3 `/setblock 0 0 2 stone` chain&conditionalモード
            手動だと大変なので、Minecraftのワールドのセーブデータを直接プログラムから作成します
            • 簡単なプログラミング言語をマイクラのワールドデータ(ブロックの配置)に変換するコンパイラを作ります。
              `y = x + 4`
              `clone 0 100 0 0 100 31 0 0 0` xの値を読み出す
              `fill 0 1 0 0 1 31 air` `setblock 0 1 2 stone` 4を書き込む
              `setblock 1 2 3 redstone_block` 加算装置を起動
              `clone 0 0 0 0 0 31 200 0 0` yに書き込む
              • プログラムを書いて、コンパイル、Minecraft(modなどの拡張機能無し)で実行します。
                ただし、とてつもなく遅い(クロック周波数、数Hz程度)ので
                `sqrt(x*x+y*y)` → `sqrt_table[square_table[x] + square_table[y]]`
                のような工夫をしました。
                • 座標を指定して、STLファイルに書き出します
                  (Minewaysなどのソフトを使う、ワールドデータを開いて自分で作る、など)

                  最後に、縮尺を調整して本物の3Dプリンタで出力すれば完成
                  Add Card Order

                  References

                    Usages

                    • git clone https://github.com/tompng/mc_computing
                      cd mc_computing
                      # プログラムをMinecraftのワールドデータにコンパイル(r.0.0.mcaが生成されます)
                      ruby sample/applepen.rb
                      # 壊れてもいいワールド(クリエイティブ、チートon)を作成し一度ゲーム終了する
                      # ワールドデータファイルを置き換える
                      mv r.0.0.mca your_minecraft_save_dir/your_world_name/region/r.0.0.mca
                      # ワールドに入り、座標192,128,192に移動 看板を右クリック

                    Project comments