ども、ハングドです。
今回は、僕が脱出マップでよく使っているナンバーロックの作り方を解説しようと思います。
本解説は二つのパートに分かれています。
- 制作編:装置の概要、作り方
- 解説編:仕組みの解説、応用
今回は制作編です。
この解説ではコマンド及びデータパックを使います。でもご安心下さい!!コマンドに触れたことがない、という方でも理解出来る内容にしている(つもりです)ので、是非試してみて下さい。また、マインクラフトJE版のver1.17.1で遊ぶ方を対象としています。統合版には対応していませんので、ご了承下さい。
(2021/11/21)解説編を公開するにあたりデータパックを少し修正しました。それに伴い、本編の解説を多少変更しています。
概要
下の図のような装置を作ります。
看板を右クリックして正しい数字に合わせ、ボタンを押すと扉が開きます。
作り方
データパックの準備
まずは下のリンクをクリックし、今回使用するデータパックをダウンロードしましょう。
ダウンロードしたデータパックを導入します。
マインクラフトを起動し、装置を使いたいワールドを選択します。次に、編集 → ワールドフォルダーを開く をクリックすると、ワールドのデータフォルダが開きます。その中の datapacks フォルダに、先ほどダウンロードしたデータパックを入れます。
ブロックの設置
ワールドに入り、図のようにブロックを設置しましょう。
青枠はプレイヤーの頭、緑枠はコマンドブロック、赤枠の赤羊毛はレッドストーントーチが設置される場所です。銅ブロック等は好きなブロックに置き換えても大丈夫です。
次にプレイヤーの頭、看板、赤羊毛の座標を記録します。F3ボタンを押してブロックに焦点を当てると、下図の赤で囲った箇所に座標が表示されます。これをメモしておきましょう。
今回は下の図のようになりました。
座標を間違えると装置が上手く起動しません。ミスがないかを確認しながらメモを取りましょう。
コマンドブロックを右クリックし、コマンドを入力します。
<入力するコマンド>
上のコマンドを打ち込んだ後、 完了 をクリックして下さい。
データパックの編集
先程の datapacks フォルダを開き、number_lock → data → example → functions → lock と進んでいくと .mcfunction の拡張子がついたファイルが6つ入っていると思います。このファイルの中身を、先ほどメモした座標を使って書き換えていきます。
<reset.mcfunction>
#ブロックをリセット
#看板
data merge block 167 81 -41 {Text2:'{"text":"右クリック","underlined":false,"clickEvent":{"action":"run_command","value":"/execute if score #lock unlocked matches 0 positioned 167 82 -42 run function example:lock/code1"}}'}
data merge block 168 81 -41 {Text2:'{"text":"右クリック","underlined":false,"clickEvent":{"action":"run_command","value":"/execute if score #lock unlocked matches 0 positioned 168 82 -42 run function example:lock/code2"}}'}
data merge block 169 81 -41 {Text2:'{"text":"右クリック","underlined":false,"clickEvent":{"action":"run_command","value":"/execute if score #lock unlocked matches 0 positioned 169 82 -42 run function example:lock/code3"}}'}
#プレイヤーの頭
data modify block 167 82 -42 SkullOwner set from storage mech:lock/0
data modify block 168 82 -42 SkullOwner set from storage mech:lock/0
data modify block 169 82 -42 SkullOwner set from storage mech:lock/0
#扉
setblock 172 79 -42 minecraft:air
後半部分の座標を変更します。メモをした座標をもとに上から順に
#看板
- 看板①の座標
- 頭①の座標
- 看板②の座標
- 頭②の座標
- 看板③の座標
- 頭③の座標
#プレイヤーの頭
- 頭①の座標
- 頭②の座標
- 頭③の座標
#扉
- 赤羊毛の座標
に変更して下さい。
<check.mcfunction>
execute if score #lock unlocked matches 0 if score #lock code1 matches 4 if score #lock code2 matches 5 if score #lock code3 matches 6 run function example:lock/unlock
色付けされた数字がパスコードになります。この場合であれば、パスコードは「456」です。もしパスコードを変更したい場合は、数字を適宜変更して下さい。各数字は必ず一桁(0~9)になるようにして下さい。
<unlock.mcfunction>
赤色の部分を赤羊毛の座標に変更して下さい。
仕上げ
マイクラのチャット欄に
/function example:lock/reset
と打ち込みます。プレイヤーの頭が「0」になり、看板に文字が追加されていれば完成です!
穴を塞いだ後は、設定したパスコードで扉が開くかどうかを確認しましょう。
リセットしたい場合はもう一度チャット欄に
と打ち込んで下さい。
まとめ
今回はデータパックを使ったナンバーロックの作り方を解説しました。次回は、この装置がどのような仕組みで動いているのかについて解説します。装置の応用例も紹介するつもりですので、お楽しみに!