Minecraftの空間を把握する

提供: omotenashi-mind
移動先: 案内検索



はじめに

Minecraft(以下、マイクラ)でプログラミングを楽しむには、その空間がどのように管理されているかを把握する必要があります。
ここではマイクラ空間の理解を補助するための簡単な内容をまとめます。

デバッグ表示機能の活用

マイクラを起動したらF3キーを押してみましょう。デバッグ情報が表示されます。
サンプル.png ここで注目して欲しいのは、画面右側に表示されている

XYZ: 165.064 / 66.00000 / 134.651

という表記です。マイクラは言うまでもなく3次元の空間ですが、その空間は上記X,Y,Zの3つの値によって表現されています。それぞれは、

Y : 高さを示す値
Z : 南北の位置(緯度)を示す値
X : 東西の位置(軽度)を示す値

と、なっています。
次に見て欲しいのが、

Facing: west (Towards negative X) (83.9 / 26.1)

と表示されている部分です。このうち、 「83.9」となっている部分は視線の左右方向の位置を示し、
「26.1」は視線の上下位置を示しています。

空間を示すX・Y・Zの値とプレイヤーの見ている方向の関係

デバッグ表示をしつつ、色々と動きまわってもらうとわかるのですが、視線の左右方向を示す値が「0」の方向に進むと、
Zと値が増加します。Z方向+の方角は、東西南北でいうと「南」を表します。

視線の方向を「0」の状態から、向かって右に視線を向けていくと、視線の左右方向を示す値が「0」から増加していきます。
ちょうど「90」を示す位置で前に進むと、今度はXの値が減少していきます。この方角は、東西南北での「西」を表します。

絵に書くと、こんな感じです。
Minecraft004.png

ユーザの位置から真南の方向に炎を出現させる

上記座標の仕組みを利用し、ユーザがいる位置から南方向に炎を出現させてみます。

import mcpi.minecraft as minecraft
import mcpi.block as block

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

mc.setBlock(x,y,z+4,block.FIRE)

「mc.player.getPos()」で現在のユーザのいる座標が取得できるので、その座標からz方向に+4の位置に炎を出すように、

mc.setBlock(x,y,z+4,block.FIRE)

とコードを書くだけで、簡単に実現できます。
実行すると、こんな形で炎が出現します。
Minecraft005.png

まとめ

マイクラの座標の概念が理解できると、好きな場所にてレポートしたり、あるいは好きな場所に好きなブロックを出現させたり、など
かなり楽しめます。数学も可視化しながら楽しんで学べるのでお薦めです。