マインクラフトの大規模な畑作り、手作業だと大変ですよね。クワで耕したり、水の位置を考えたり、種をまいたり…。
でもPythonを使えば、そんな大変な作業も一瞬で完了します!この記事では、プログラムを使ってかんたんに大きな小麦畑を作る方法を紹介します。
プログラム初心者の人でも大丈夫。少しずつ解説していきますので、チャレンジしてみましょう!
マインクラフトとPythonの連携について
Pythonでマインクラフトを動かすには、特別な準備が必要です。
セットアップ方法は、前の記事でくわしく説明していますので、まだ準備ができていない人はそちらをチェックしてみてください。
小麦畑を作るプログラム概要
今回作成するプログラムでは、9×9ブロックの小麦畑を複数並べ、大規模な畑を作ります。
各畑の中央には水を配置して、全ての耕地が湿るようにします。
完成すると、横3つ、縦2つの計6つの9×9ブロックの小麦畑が整列した広い畑になりますよ。
これを手作業で作ると時間がかかりますが、プログラムなら一瞬です!
完成したソースコード
完成したプログラムは以下の通りです。
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
# プレイヤーの座標を取得
x, y, z = mc.player.getPos()
# 基準になる座標を設定
cur_x = x + 1
cur_z = z + 1
# 9×9ブロックの耕地を2行×3列作成
for _ in range(2):
for _ in range(3):
# 空気ブロックで耕地の範囲をクリア
mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 100, cur_z + 8, 0)
# 耕地を作成
mc.setBlocks(cur_x, y - 1, cur_z, cur_x + 8, -1, cur_z + 8, 60)
# 小麦を植える
mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 0, cur_z + 8, 59)
# 中央に水を配置
mc.setBlock(cur_x + 4, y - 1, cur_z + 4, 9)
# 基準の座標(x軸)を進める
cur_x += 9
# 基準の座標を設定(x軸:もどす、z軸:進める)
cur_x = x + 1
cur_z += 9
プログラムの説明
プレイヤーの座標を取得
最初に、プレイヤーの位置を基準として畑を作る準備をします。
cur_x = x + 1
cur_z = z + 1
mc.player.getPos()を使って、プレイヤーの現在位置(x, y, z座標)を取得します。
その後、基準となる座標cur_xとcur_zを設定します。これを基準に畑を配置します。
9×9の小麦畑を作る
中央に水ブロックのある9×9の畑をひとつ作ってみましょう。
mc.setBlocks(cur_x, y – 1, cur_z, cur_x + 8, -1, cur_z + 8, 60)
mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 0, cur_z + 8, 59)
mc.setBlock(cur_x + 4, y – 1, cur_z + 4, 9)
- 畑の上を空気ブロックに置きかえる
- 地面を耕地ブロックに置きかえる
- 耕地ブロックの上に小麦を置く
- 最後に畑の中央に水を配置する
水を中央に置くことで、畑全体がうるおう仕組みです。
東(xプラス)の方向に畑を広げる
次に、畑を横(東方向)にならべます。9×9の畑を作る処理をfor文でくり返しましょう。
mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 100, cur_z + 8, 0)
mc.setBlocks(cur_x, y – 1, cur_z, cur_x + 8, -1, cur_z + 8, 60)
mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 0, cur_z + 8, 59)
mc.setBlock(cur_x + 4, y – 1, cur_z + 4, 9)
cur_x += 9
このループでは3つの畑を横にならべます。
cur_x += 9 でx軸の基準座標(cur_x)を9ブロックずつ動かすことで、畑が東方向に広がります。
畑を南(z方向)に広げる
今度は、3つ横にならんだ畑を縦(南方向)にならべる処理を追加します。
for _ in range(3):
mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 100, cur_z + 8, 0)
mc.setBlocks(cur_x, y – 1, cur_z, cur_x + 8, -1, cur_z + 8, 60)
mc.setBlocks(cur_x, y, cur_z, cur_x + 8, 0, cur_z + 8, 59)
mc.setBlock(cur_x + 4, y – 1, cur_z + 4, 9)
cur_x += 9
cur_x = x + 1
cur_z += 9
3つ横にならんだ畑を縦に2つならべるイメージです。
cur_z += 9 でz軸の座標を9ブロック進めることで、畑を南(zプラス)の方向に広げます。
各行の最初の畑は、常に同じx座標から始まるようにする必要があります。一番西の位置にもどしましょう。
実行してみよう!
プログラムが完成したら「wheat.py」という名前で保存し、実行してみましょう。
広大な小麦畑が瞬時に広がるはずです!
コマンドブロックからでも実行できる!
実は、コマンドブロックからでもPythonで作ったプログラムを実行できます。
同じ場所で同じプログラムを何回も実行したい時に便利ですよ。
- コマンドブロックを入手する
チャット欄に「/give @p command_block」を入力し実行します。 - コマンドブロックを設置する
設置後、右クリックでコマンドブロックの設定画面を開きます。 - コンソールコマンドにプログラムを実行するコマンドを入力
今回のプログラムの場合「/py wheat」と入力します。 - レッドストーン信号を送る
コマンドブロックの入手方法や設定方法については、以下の記事でくわしく解説しています。まだ使ったことがない人は、ぜひ参考にしてみてください!
小麦が成長して収穫できる状態のときに、耕地ブロックを草ブロックに変えると、植わっていた小麦がアイテムとして地面に落ちます。
アイテム化した小麦は、コマンドを使って回収すると楽です。
まとめ
この記事では、Pythonを使ってマインクラフト内に大規模な小麦畑を作る方法を紹介しました。
プログラムを使えば、大変な作業も一瞬で終わりますね。
プログラムを自分好みにアレンジして、さらに大きな畑を作ったり、他の作物を植えたりしてみてください!