【マイクラ×Python】あっという間に拠点が完成!かんたんプログラムで作ろう

マインクラフトで冒険ぼうけんに夢中になっていたら、いつの間にか夜に……ということはありませんか?

ゾンビやクリーパーから身を守れる安全な拠点きょてんを、パッと作れたら便利ですよね。

この記事では、Pythonを使ってマインクラフト内にかんたんな拠点きょてんを作るプログラムを紹介しょうかいします。

プログラミングで、安全に夜をすごせるシェルターを作ってみましょう!

 

スポンサーリンク

マインクラフトとPythonの連携について

マインクラフトをPythonで操作するためには、特定の環境かんきょうが必要です。

セットアップ方法については、前回の記事でくわしく説明しているので、まだ準備ができていない方はそちらをチェックしてみてください。

 

マイクラでは座標を使って場所を指定する

マイクラの座標

マインクラフト内では、ブロックを設置する際に「座標」を使って場所を指定します。

座標とは、位置を表すための数字の組み合わせです。マイクラでは「x、y、z」の3つのじくで表します。

  • xじく … 東西の方向(東がプラス、西がマイナス)
  • yじく … 上下の方向(上がプラス、下がマイナス)
  • zじく … 南北の方向(南がプラス、北がマイナス)

前回の記事で座標のあつかい方をくわしく説明しているので、座標についてよく分からない人はそちらを確認してください。

 

プログラム概要

拠点を作るプログラム

今回作成するプログラムでは、プレイヤーの位置を基準にして、となりにオークの木材でできた立方体の建物を作ります。

いわゆる「とうふ建築」というやつですね。

建物の中にドアとベッドを置いて、かんたんな拠点きょてんとして使えるようにします。

 

完成したソースコード

以下は、今回作成するプログラムのソースコードです。

import mcpi.minecraft as minecraft

# Minecraftに接続
mc = minecraft.Minecraft.create()

# プレイヤーの座標を取得
x, y, z = mc.player.getPos()

x += 1

# 立方体を設置 オークの木材
mc.setBlocks(x, y - 1, z, x + 4, y + 3, z + 4, 5, 0)

# 立方体の中をくり抜く
mc.setBlocks(x + 1, y, z + 1, x + 3, y + 2, z + 3, 0)

# ドアをつける
mc.setBlock(x + 3, y, z, 64, 1) # オークのドア下:南:閉
mc.setBlock(x + 3, y + 1, z, 64, 9) # オークのドア上:南:閉

# ベッドを設置
mc.setBlock(x + 1, y, z + 1, 26, 0) # 足側
mc.setBlock(x + 1, y, z + 2, 26, 8) # 頭側

 

プログラムの説明

以下の手順で拠点きょてんを作成します。

プレイヤーの座標を取得する

まず、プレイヤーの座標を取得し、その値を変数x、y、zに代入します。

x, y, z = mc.player.getPos()

 

次の行にある「x += 1」は、「x = x + 1」と同じ意味です。変数xの値に1を足し、その結果を再びxに代入します。

この処理は、プレイヤーのすぐとなり(1マス横)に建物を作って、プレイヤーが建物の中にうまらないようにするためです。

 

立方体の建物を作る

プレイヤーの位置から1マスとなりに、オークの木材で立方体の建物を作ります。

mc.setBlocks(x, y – 1, z, x + 4, y + 3, z + 4, 5, 0)

 

mc.setBlocks(x1, y1, z1, x2, y2, z2, block_id)は、指定した範囲はんいにブロックを設置する命令です。fillコマンドと同じように、広い場所にブロックをならべられます。

mc.setBlocks

範囲はんいを指定するには、「始まり」と「終わり」の2つの点の座標を使います。x1, y1, z1が範囲はんいの開始地点で、x2, y2, z2が範囲はんい終了しゅうりょう地点です。

 

たとえば今回の場合、「右下の角」を始まり、「左上の角」を終わりとするようなイメージです。これで、その範囲はんいすべてにブロックを置くことができます。

「始まり」と「終わり」の座標を指定する

また、block_idで設置するブロックの種類を指定します。ここではオークの木材のID「5」を使用しています。

 

立方体の中をくりぬく

次に、作った立方体の中をくりぬきます。

mc.setBlocks(x + 1, y, z + 1, x + 3, y + 2, z + 3, 0)

 

立方体の座標より1マス内側に範囲はんいを指定しています。

立方体の座標より1マス内側に範囲を指定

  • xじく:立方体の始点 x から1マス内側の x + 1 から、4マス目の x + 3 まで。
  • yじく:立方体のゆか(y – 1)の上にある y から始まり、天井てんじょうの手前(y + 2 まで)。
  • zじく:立方体の始点 z から1マス内側の z + 1 から、4マス目の z + 3 まで。

この範囲はんいを空気ブロック(ブロックID 0)でうめることで、立方体の内部にスペースができます。

 

ドアをつける

mc.setBlock()を使って建物の出入口にオークのドアを設置します。

建物の出入口にオークのドアを設置

mc.setBlock(x + 3, y, z, 64, 1)     # オークのドア下:南:閉
mc.setBlock(x + 3, y + 1, z, 64, 9) # オークのドア上:南:閉

ドアは上下で別々のデータ番号を持っているため、下側と上側に分けて設置します。

 

ベッドを置く

最後に、建物の中にベッドを置きましょう。

建物の中にベッドを置く

mc.setBlock(x + 1, y, z + 1, 26, 0) # 足側
mc.setBlock(x + 1, y, z + 2, 26, 8) # 頭側

ベッドも頭側と足側で分けて設置します。

 

実行してみよう!

プログラムが完成したら「shelter.py」という名前でファイルを保存し、実行してみましょう。

プレイヤーのとなりにオークの木材でできた建物が作られているのを確認できるはずです。

拠点内にベッド

ベッドも設置できました。これで夜も安心ですね!

 

まとめ

拠点を作るプログラム

Pythonを使ってマインクラフト内にかんたんな拠点きょてんを作るプログラムを紹介しょうかいしました。

  • mc.setBlocks(x1, y1, z1, x2, y2, z2, block_id):指定した範囲はんいに任意の種類のブロックを設置する。
    x1, y1, z1:開始地点の座標
    x2, y2, z2:終了地点の座標
    block_id:設置するブロックの種類(ブロック番号とデータ番号)

mc.setBlocks()を使うと、大きな建物や構造物を作成できるようになります。ぜひチャレンジしてみてくださいね!

タイトルとURLをコピーしました