Minecraft PC版にRaspberry Jam Modを入れると、プログラムでMinecraft内のブロック、プレイヤーを動かして遊ぶことができます。
#手順の概略
- Minecraftをインストール
- Forgeをインストール
- Modをインストール
- gemをインストール(Rubyの場合)
- プログラムの実行
※ Raspberry Piでは1〜3の手順が省略できる。
環境
- OS X 10.11 El Capitan または Windows 7
- Minecraft 1.8.8
- Minecraft Forge 18-11.14.4.1563
- Raspberry Jam Mod 0.51
- Minecraft-Pi-Ruby 0.0.1
#1-a.Minecraftのインストール
Minecraftのウェブサイトから購入(US$26.95)、あるいは体験版をインストールする。
(体験版はサイト右側の「Get Minecraft」の下にある「Download it here」をクリック)
#1-b.Minecraftの起動
Minecraftを起動すると、Minecraft Launcher (1.6.48) が起動する。
※ Macで、"Javaのインストールが必要です" というようなメッセージが出た場合は、Javaをインストールする。
#1-c.Profileの設定
release 1.8.xに設定する。
- Minecraft Launcherの左下の「Profile」には、ユーザー名の付いたProfileが表示されているはずなので、「Edit Profile」ボタンを押す。
- 「Use Version」で最新の「release 1.8.8」を選ぶ。
- 右下の「Save Profile」ボタンを押して、設定を保存する。
※「1.8.xではなく、1.8そのものを選ばなくてはいけない」という情報もあったので、うまくいかなかった場合は、release 1.8を選ぶ。
#1-d.Minecraftで新規ワールドを作る
次でForgeをインストールするには、1.8系で作ったワールドを一度は起動しておく必要がある。
- Minecraft Launcherの「Play」を押すと、Minecraft(1.8.8)が起動する。
- 「シングルプレイ(Singleplayer)」を押し、「ワールド新規作成(Create New World)」を押すと、Minecraftワールドが作られる。(ワールド名、ゲームモードはお好みで。)
- 少し遊んでみて動作を確認したら、Minecraftを終了する。
※ ワールドの画面からマウスポインタを外に出したい時、ワールドを終了したい時は、Escキーを押す。
###※Minecraftの基本操作
####○キーボード
-
W 前進
-
S 後退
-
A 左に水平移動
-
D 右に水平移動
-
E アイテム一覧(Escで閉じる)
-
スペースを素早く2回 飛行モード/ 通常モードの切り替え
(飛行モードはクリエイティブモードのみ) -
スペース 上昇(飛行モード)/ ジャンプ(通常モード)
-
左Shift 下降(飛行モード)/ 身をかがめる(通常モード)
-
Esc メニュー画面(設定、LANに公開、セーブしてタイトルに戻る)、マウスカーソルを画面外に出す
-
T チャット/サーバーコマンド、マウスカーソルを画面外に出す
####○マウス
- マウスカーソル 見る向きを変える
- 右クリック ブロックを置く
- 左クリック ブロックを壊す
- ホイール ホットバー中のアイテムから選択(または1~9のキーで指定)
####○ファンクションキー(Mac、ノートPCの場合、fnキーと共に押す)
-
F1 ヘッドアップディスプレイ(追加情報)表示の切り替え
-
F2 スクリーンショットの撮影
保存場所;
・Mac;~/Library/Application Support/minecraft/versions/1.8-Forge11.14.4.1563/screenshots
・Windows; C:\Users\ユーザー名\AppData\Roaming.minecraft\versions\screenshots -
F3 デバッグ情報表示の切り替え、他のキーとの組み合わせでその他の機能も
※ F3 + P 他のウィンドウに切り替わった時、「ゲームメニューを出す、一時停止する」/「ゲームメニューを出さない、一時停止しない」の切り替え
- F5 視点の切り替え(自己、後方から、前方から)
- F11 全画面表示の切り替え(Macでは、fn + option + F11 の時も)
#2-a.Minecraft Forgeのインストール
Modを管理するためのMinecraft Forgeをインストールする。
- Minecraft Forgeのウェブサイトで、「Minecraft Versions」の「1.8」を選んで、「Download Recommended (11.14.4.1563)」の「Installer」(Windowsなら「Installer-win」)をクリックする。
- 広告が表示されるが、数秒後に出る右上の「SKIP」ボタンを押すとダウンロードが始まる。
(バージョンを選びたければ、「Show all downloads」をクリック。) - ダウンロードされた forge-1.8-11.14.4.1563-installer.jar をダブルクリックしてインストール。
→・【1.8対応】Mac OS X でMinecraftにMod導入 - AQUAALTA
→・[Minecraft] これなら導入できる! 修正版新しいMODの導入方法- Forgeやフォルダの設定を解説 [1.7.10/1.8~] - ナポアンのマイクラ
→・【Minecraft】 1.8対応 はじめてのMod導入方法 for Windows - AQUAALTA
#2-b.再度Profileの設定(Forge用の設定を作る)
-
再び Minecraft を起動。
-
Minecraft Launcherの左下の「Profile」に、「Forge」 Profile が追加されているはずなのでそれを選んで、「Edit Profile」ボタンを押す。
-
「Use Version」でインストールしたForgeのバージョン「release 1.8-Forge11.14.4.1563」を選ぶ。
-
「Profile Info」の「Game Directory」にチェックを入れて、
/Users/ユーザー名/Library/Application Support/minecraft/versions/1.8-Forge11.14.4.1563(Mac)あるいは、
C:¥Users¥ユーザー名¥AppData¥Roaming¥.minecraft¥versions¥1.8-Forge-11.14.4.1563(Windows)
のように指定する。
※ このディレクトリのパスの確認法
-
Mac;
「Finder」>「メニュー」>「移動」>optionキーを押すと「ライブラリ」が表示されるので選ぶ>「Application Support」>「Minecraft」>「versions」>「1.8-Forge11.14.4.1563」フォルダ で見つかる。 -
Windows;
「コンピューター」>「ローカルディスク(C:)」>「ユーザー」>ユーザー名>「AppData」>「Roaming」>「.minecraft」>「versions」>「1.8-Forge-11.14.4.1563」のように辿っていける。
5.設定できたら、右下の「Save Profile」ボタンを押して、設定を保存する。
#2-c.Minecraftの起動(Forgeのインストールの確認)
- Minecraft Launcherの「Profile」が「Forge」になっているのを確認して、「Play」を押す。Forgeの適用されたMinecraftが起動する。
- Forgeが適用されると、「Mods」ボタンが増え、画面左下に Forgeのバージョンなどが表示されるのを確認する。
#3-a.Raspberry Jam Modのインストール
-
「Latest release(0.51)」の「Downloads」にある「RaspberryJamMod.jar」をクリックするとダウンロードされる。
-
ダウンロードされた RaspberryJamMod.jar を先ほど「Game Directory」で指定したディレクトリ(Macだと、/Users/ユーザ名/Library/Application Support/minecraft/versions/1.8-Forge11.14.4.1563)にある「mods」フォルダの中に移動 or コピーする。
※ 注意;
Windowsの場合も、「Downloads」にある「RaspberryJamMod.jar」を選ぶこと。
「RaspberryJamMod-Installer.exe」を選ぶと、RaspberryJamMod.jarが上記とは別のフォルダに自動でインストールされてしまう。
※ Pythonを使う場合;
「Downloads」にある「python2-scripts.zip」と「python3-scripts.zip」もダウンロードする。
※ Minecraft 1.8に対応したRaspberry Jam Modとは別に、1.7に対応したmcpiapi modもある。
#3-b.Minecraftの起動(Raspberry Jam Modのインストールの確認)
- 再びMinecraft Launcherの「Profile」が「Forge」になっているのを確認して、「Play」を押す。
- Minecraftが起動したら「Mods」ボタンを押す。
左側にModのリストの中に「Raspberry Jam Mod」があればインストールされている。
#3-c.新規ワールドを作る(ウィンドウ切り替え時の設定)
- 動作確認用に「シングルプレイ」を選択し、「ゲームモード」は「クリエイティブ」、「ワールド名」は好きに入力して、「ワールド新規作成」を押す。
- できたワールド画面で、F3 + P(もしくは fn + F3 + P)を押して、別のウィンドウがアクティブになっても、一時停止したり、ゲームメニューが出ないようにする。(この後、デバッグ画面表示が邪魔なら、F3を押す。)
- Cmd + Tab(Mac)または Alt + Tab(Windows)で別のウィンドウに切り替える。(ウィンドウは2つ以上開いておく)
- ワールド画面にゲームメニューが出ず、一時停止しないことを確認する。
※ Minecraftウィンドウ自体の移動などの操作は Escキーを押さないとできない。
※ プログラムの実行中は、Minecraftワールドの画面を開いておく。(Launcher画面ではなく)
※ 同じ LAN環境にいれば、ゲームメニューで「LANに公開」を選ぶと、別の人とワールドを共有(マルチプレイ)できる。
#4.Minecraft-Pi-Ruby gemのインストール(Rubyの場合)
##4-A.通常のMinecraft-Pi-Ruby gemのインストール
$ gem install minecraft-pi-ruby
Successfully installed minecraft-pi-ruby-0.0.1
Parsing documentation for minecraft-pi-ruby-0.0.1
Done installing documentation for minecraft-pi-ruby after 1 seconds
1 gem installed
##4-B.独自拡張したMinecraft-Pi-Ruby gemのインストール(おすすめ)
Pythonに比べ機能が不足していたので、機能追加した。
→・https://github.com/noanoa07/minecraft-pi-ruby/tree/feature
$ gem install specific_install
$ gem specific_install https://github.com/noanoa07/minecraft-pi-ruby.git feature
※ Windowsの場合、gitが必要。
#5-A.プログラムの実行(Ruby)
##5-A-1.Rubyプログラムを書く
require 'minecraft-pi-ruby'
mc = Minecraft.new
mc.say 'Hello Minecraft World!'
##5-A-2.Rubyプログラムの実行
Minecraftワールドを開いた状態のままで;
$ ruby hello.rb
Minecraftワールドの画面に;
Hello Minecraft World!
と表示されれば成功!
※ irbでも実行可能
※ 使える命令は、下記の参考A あるいは Minecraft-Pi-Rubyのウェブサイト参照
#5-B.プログラムの実行(Python)
##5-B-1.MCPIフォルダ
-
Raspberry Jam ModのGitHubサイトから、python2-scripts.zip(Python2の場合)あるいは python3-scripts.zip(Python3の場合)をダウンロードして展開する。
-
展開してできた「mcpipy」フォルダの中には様々な Pythonのサンプルプログラムが入っているが、それと共に「MCPI」フォルダも入っている。
##5-B-2.Pythonプログラムを書く
MCPIフォルダと同じ場所に作成する。
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
mc.postToChat("Hello Minecraft World!")
##5-B-3.Pythonプログラムの実行
Minecraftワールドを開いた状態のままで;
$ cd mcpipy
$ python hello.py
Minecraft の画面に
Hello Minecraft World!
と表示されれば成功!
mcpipyフォルダにある他のサンプルプログラムも実行してみる。
※ インタラクティブシェルでも実行可能
※ 命令一覧;
→・Minecraft API - <Stuff about="code" />
※ Pythonで書かれたプログラム、解説;
→・Digital Clock in Minecraft - Raspberry Pi • View topic
→・Python & Minecraft on Raspberry Pi! - import minecraft - MCPIPY.com
→・Python coding for Minecraft - instructables
→・Adventures in Minecraft - <Stuff about="code" >
→・Minecraft Pi Recipe Cards - arghbox
→・Python Programming with Minecraft Pi: Early Draft - arghbox
#参考A.Minecraft-Pi-Rubyのコマンド一覧
##○初期設定
require 'minecraft-pi-ruby'
mc = Minecraft.new
実行には、上記の2行が必要。(mcは任意の変数名。)
##○コマンド
-
say "message"
画面に文字(message)を表示 -
set_camera_mode(Raspberry Pi環境のみ)
カメラモードを設定(:fixed、:normal、:follow) -
set_block(x, y, z, ブロックID[, ブロックデータ]) または
set_block(position, ブロックID[, ブロックデータ])
例)set_block(0, 0, 0, Block::STONE)
ブロックIDは数字でも良い
ブロックデータは省略可
(ブロックID、ブロックデータは後述)
※ 座標の指定は、(x, y, z) または position = Position.new(x, y, z) で指定
※ Minecraftの座標は、ブロック単位で、y座標が高さ方向になる(上方が +)
-
get_block(x, y, z) ※独自拡張
座標(x, y, z) のブロックIDを返す -
set_blocks または make_cuboid
引数の指定は (x1, y1, z1, x2, y2, z2, ブロックID[, ブロックデータ]) または (position1, position2, ブロックID[, ブロックデータ])
例)set_blocks(0, 0, 0, 20, 20, 20, Block::OBSIDIAN)
ブロックIDは数字でも良い
ブロックデータは省略可
(ブロックID、ブロックデータは後述)
-
get_ground_height(x, z) または ground_height(x, z)
座標 (x, z) の地面の高さ(y座標)を返す -
set_player_position(x ,y, z) または set_player_position(position)
プレーヤーを座標 (x, y, z) に置く -
get_player_position ※独自拡張
プレーヤーの座標を Positionクラスで返す。 -
キー入力の取得
Minecraftからキー入力の情報を取得することは(現状では)できない。また、Minecraftウィンドウがアクティブだと、ターミナルで実行中のプログラムにはキー入力の取得はできない。
そこで、ターミナルウィンドウをアクティブにしつつ、Minecraftウィンドウを表示させることで、キー入力の情報をターミナル側で取得する。
(上記 3-c.「ウィンドウ切り替え時の設定」で、別のウィンドウがアクティブになっても、一時停止したり、ゲームメニューが出ないようにしておくこと)
なお、キー入力の取得には、Rubyの io/consoleライブラリが使える。
→・Ruby - ターミナルのキー入力を得てカーソル移動とかする (curses無し) - Qiita
#参考B.サンプルプログラム(Ruby)
(license; public domain)
○画面に文字を表示
require 'minecraft-pi-ruby'
mc = Minecraft.new
mc.say 'Hello Minecraft World!'
○土地を平地化
require 'minecraft-pi-ruby'
mc = Minecraft.new
sleep 5
mc.say 'Reset this World!'
mc.set_blocks(-100, 0, -100, 100, 63, 100, Block::AIR)
mc.set_blocks(-100, -1, -100, 100, -1, 100, Block::GRASS)
mc.set_blocks(-100, -63, -100, 100, -2, 100, Block::STONE)
mc.set_player_position(0, 100, 0)
○ブロックを文字の形に地面に置く
require 'minecraft-pi-ruby'
mc = Minecraft.new
chars = [
'##### # # #### # # #',
'# # # # # # # # #',
'# # # # #### # #',
'#### # # # # # #',
'# # # # # # # ',
'# # #### #### # #',
]
sleep 5
mc.set_player_position(0, 100, 0)
mc.say 'Hello Ruby !'
# Reset the world
mc.set_blocks(-100, 0, -100, 100, 63, 100, Block::AIR)
mc.set_blocks(-100, -1, -100, 100, -1, 100, Block::GRASS)
mc.set_blocks(-100, -63, -100, 100, -2, 100, Block::STONE)
x = -10
y = 0
z = -10
chars.each do |line|
line.each_char do |ch|
if ch == '#'
mc.set_block(x, y, z, Block::GOLD_BLOCK)
end
x += 1
end
x = -10
z += 1
end
参考)→・Minecraft Pi Editionで遊びながらプログラミングの勉強! - TONGARISM.COM
○押したキーを表示
require 'minecraft-pi-ruby'
require 'io/console'
mc = Minecraft.new
mc.say 'chat start!'
# ctrl + C to exit
while ch = STDIN.getch
exit if ch == ?\C-c
mc.say ch
end
※ Cmd + Tab(Mac)または Alt + Tab(Windows)でMinecraftワールドを開いたまま、ターミナル(コマンドプロンプト)ウィンドウに切り替えて実行。
プログラムの終了は Ctrl + C。
(上記 3-c.「ウィンドウ切り替え時の設定」で、別のウィンドウがアクティブになっても、一時停止したり、ゲームメニューが出ないようにしておくこと)。
#参考C.ブロックID、ブロックデータ
##○ブロックID(* はブロックデータあり)
0 AIR(空気、何もない状態にする)
1 STONE(石)
2 GRASS(草)
3 DIRT(土)
4 COBBLESTONE(丸石)
5* WOOD_PLANKS(木材)
6* SAPLING(苗木)
7 BEDROCK(岩盤)
8 WATER_FLOWING
WATER(水)
9* WATER_STATIONARY(静止した水)
10 LAVA_FLOWING
LAVA(溶岩)
11* LAVA_STATIONARY(静止した溶岩)
12 SAND(砂)
13 GRAVEL(砂利)
14 GOLD_ORE(金鉱石)
15 IRON_ORE(鉄鉱石)
16 COAL_ORE(石炭鉱石)
17* WOOD(原木)
18* LEAVES(葉)
20 GLASS(ガラス)
21 LAPIS_LAZULI_ORE(ラピスラズリ鉱石)
22 LAPIS_LAZULI_BLOCK(ラビスラズリブロック)
24* SANDSTONE(砂岩)
26 BED(ベッド)
30 COBWEB(クモの巣)
31* GRASS_TALL(草)
35* WOOL(羊毛)
37 FLOWER_YELLOW(黄色い花)
38 FLOWER_CYAN(赤いバラ)
39 MUSHROOM_BROWN(キノコ 茶)
40 MUSHROOM_RED(キノコ 赤)
41 GOLD_BLOCK(金ブロック)
42 IRON_BLOCK(鉄ブロック)
43* STONE_SLAB_DOUBLE(重ねたハーフブロック)
44* STONE_SLAB(ハーフブロック)
45 BRICK_BLOCK(レンガブロック)
46* TNT(TNT爆弾)
47 BOOKSHELF(本棚)
48 MOSS_STONE(苔石)
49 OBSIDIAN(黒曜石)
50* TORCH(松明 たいまつ)
51 FIRE(炎)
53* STAIRS_WOOD(樫の木の階段)
54* CHEST(チェスト)
56 DIAMOND_ORE(ダイヤモンド鉱石)
57 DIAMOND_BLOCK(ダイヤモンドブロック)
58 CRAFTING_TABLE(作業台)
60 FARMLAND(耕地)
61* FURNACE_INACTIVE(かまど)
62* FURNACE_ACTIVE(燃えているかまど)
64 DOOR_WOOD(木のドア)
65* LADDER(はしご)
67* STAIRS_COBBLESTONE(丸太の階段)
71 DOOR_IRON(鉄のドア)
73 REDSTONE_ORE(レッドストーン鉱石)
78 SNOW(雪)
79 ICE(氷)
80* SNOW_BLOCK(雪ブロック)
81 CACTUS(サボテン)
82 CLAY(粘土)
83 SUGAR_CANE(サボテン)
85 FENCE(フェンス)
89 GLOWSTONE_BLOCK(グロウストーンブロック)
95 BEDROCK_INVISIBLE(鍵のかかったチェスト)
98* STONE_BRICK(石レンガ)
102 GLASS_PANE(板ガラス)
103 MELON(スイカ ブロック)
107* FENCE_GATE(フェンスゲート)
246 GLOWING_OBSIDIAN(輝く黒曜石)
247* NETHER_REACTOR_CORE(ネザーリアクターコア)
##○ブロックデータ
5 WOOD_PLANKS(木材)
0: Oak
1: Spruce
2: Birch
3: Jungle
6 SAPLING(苗木)
0: Oak
1: Spruce
2: Birch
3: Jungle
9 WATER_STATIONARY(静止した水)
11 LAVA_STATIONARY(静止した溶岩)
0-7: Level of the water, 0 being the highest, 7 the lowest
(0-7: 高さ、0が一番低く、7が一番高い)
17 WOOD(原木)
0: Oak (up/down)
1: Spruce (up/down)
2: Birch (up/down)
3: Jungle (up/down)
4: Oak (east/west)
5: Spruce (east/west)
6: Birch (east/west)
7: Jungle (east/west)
8: Oak (north/south)
9: Spruce (north/south)
10: Birch (north/south)
11: Jungle (north/south)
12: Oak (only bark)
13: Spruce (only bark)
14: Birch (only bark)
15: Jungle (only bark)
18 LEAVES(葉)
1: Oak leaves
2: Spruce leaves
3: Birch leaves
24 SANDSTONE(砂岩)
0: Sandstone
1: Chiseled sandstone
2: Smooth sandstone
31 GRASS_TALL(草)
0: Shrub
1: Grass
2: Fern
3: Grass (color affected by biome)
35 WOOL(羊毛)
0: White
1: Orange
2: Magenta
3: Light Blue
4: Yellow
5: Lime
6: Pink
7: Grey
8: Light grey
9: Cyan
10: Purple
11: Blue
12: Brown
13: Green
14: Red
15:Black
43 STONE_SLAB_DOUBLE(重ねたハーフブロック)
44 STONE_SLAB(ハーフブロック)
0: Stone
1: Sandstone
2: Wooden
3: Cobblestone
4: Brick
5: Stone Brick
6: Nether Brick
7: Quartz
46 TNT(TNT爆弾)
0: Inactive
1: Ready to explode
50 TORCH(松明 たいまつ)
1: Pointing east
2: Pointing west
3: Pointing south
4: Pointing north
5: Facing up
53 STAIRS_WOOD(樫の木の階段)
67 STAIRS_COBBLESTONE(丸太の階段)
0: Ascending east
1: Ascending west
2: Ascending south
3: Ascending north
4: Ascending east (upside down)
5: Ascending west (upside down)
6: Ascending south (upside down)
7: Ascending north (upside down)
54 CHEST(チェスト)
61 FURNACE_INACTIVE(かまど)
62 FURNACE_ACTIVE(燃えているかまど)
65 LADDER(はしご)
107 FENCE_GATE(フェンスゲート)
2: Facing north
3: Facing south
4: Facing west
5: Facing east
80 SNOW_BLOCK(雪ブロック)
0-7: Height of snow, 0 being the lowest, 7 being the highest.
(0-7: 雪の高さ、0が一番低く、7が一番高い)
98 STONE_BRICK(石レンガ)
0: Stone brick
1: Mossy stone brick
2: Cracked stone brick
3: Chiseled stone brick
247 NETHER_REACTOR_CORE(ネザーリアクターコア)
0: Unused
1: Active
2: Stopped / used up
→・Minecraft API - <Stuff about="code" />
####参考;
(画面下の「Next」や「View All Steps」で続きが表示される)
#####元記事;