近況報告をば。(2022年5月)
ども、ハングドです。
皆様ご無沙汰しております。
大風車を公開してから、はや半年ちょっと。ここ最近は失踪気味でしたので、久々にブログ記事を書こうと思い立ちました。取り敢えず、現状の報告と今後の計画について軽く述べたいと思います。なお、計画についてはきちんと遂行した試しがありません。半ば願望みたいなものということで、ご了承下さい。
進行中の作業
新マップ作り
鋭意、制作中です。90%くらいは完成しているので(ホントだよ)、マイクラのアップデートが入って少し経ったくらいに公開しようと思います。
前作の反省点として、謎の構成とギミックを複雑にし過ぎて製作者自身の手に負えなくなった、という点が挙げられます。そこで、今回は「プレイヤーにとっても作者自身にとってもやさしい」作品を目指しました。
詳細については後ほど...。
過去作の改築
新マップが一段落したら、「明かずの山荘」の作り直しをやろうと思います。本当はこちらの作業を先に進めるつもりでした(Twitterにもそう呟いた気がします)が、新マップを作りたいという欲が優ってしまいました。そろそろいい加減に憂いを断ちたいので、再公開に向けて少しずつ工事を進めていきます。リアルの忙しさがどうなるかにもよりますが...
ということで、ちょびちょびと作業を続けていきたいと思います。ではでは。
【マインクラフトJE1.17.1】ナンバーロックの作り方② 〜解説編〜

ども、ハングドです。
ナンバーロックの作り方の後編です。
本解説は二つのパートに分かれています。
- 制作編:装置の概要、作り方
- 解説編:装置の仕組み、応用
今回は解説編です。制作編を既に読まれているという前提で進めますので、未読の方は先に目を通しておきましょう。また、本編はコマンド及びデータパックの基本的知識がある方を対象にしています。
使用するデータパックはこちらからダウンロードできます。なお、本記事を執筆するにあたりいくつか修正しましたので、本日(2021/11/21)の時点で既にダウンロードした方はデータパックを改めてダウンロードして下さい。
仕組み
装置の構造
ナンバーロックの基本的な構造は以下のようになっています。

ここで、赤はワールド内のブロック、青は function、緑は storage、水色は scoreboard を表しています。それでは、それぞれの役割について詳しく見ていきます。
看板
各数字を入力する為のボタンの役割を担います。右クリックされた時に function(lock:code1、code2、code3)を実行します。これはボタン+コマンドブロックで代用出来ます。
プレイヤーの頭
現在入力されているパスコードを表示します。NBTデータを変更することで様々なテクスチャを貼り付けることが出来る為、様々なワールドで装飾として取り入れられています。看板に書かれた文字と比べて大きくて見やすくデザイン性が高いことから、ここでは数字を表示するディスプレイとして利用します。
ボタン
パスコードの確認ボタンです。このボタンが押された時に function(lock:check)を実行し、入力されたパスコードの正誤をチェックします。もちろん看板等でも代用できます。
scoreboard
この装置では unlocked、code1、code2、code3 の四つの値を使用します。unlocked にはナンバーロックの状態が保存されます。ロックが解除されていない時は値が0ですが、解除された場合に1になります。code1、code2、code3 はそれぞれ入力されたパスコードの百の位、十の位、一の位が保存されます。
storage
プレイヤーの頭のテクスチャデータ(ブロックのNBTデータ)を保存します。プレイヤーの頭のNBTデータは非常に長いので予め storage に保存しておき、必要に応じて参照します。このようにすることで、 function 内のコマンドが短くなり可読性が向上します。また、テクスチャを変更する場合にコマンドを一箇所書き換えるだけで済むようになります。
function
scoreboard や storage に保存された情報を元に装置を動かします。それぞれのファイルの中身を見ていきましょう。
<reset.mcfunction>
scoreboard objectives add unlocked dummy
scoreboard objectives add code1 dummy
scoreboard objectives add code2 dummy
scoreboard objectives add code3 dummy
scoreboard players set #lock unlocked 0
scoreboard players set #lock code1 0
scoreboard players set #lock code2 0
scoreboard players set #lock code3 0
scoreboard の作成と値のリセットを行います。
data merge storage lock:head/0 {...
data merge storage lock:head/1 {...
data merge storage lock:head/2 {...
data merge storage lock:head/3 {...
data merge storage lock:head/4 {...
data merge storage lock:head/5 {...
data merge storage lock:head/6 {...
data merge storage lock:head/7 {...
data merge storage lock:head/8 {...
data merge storage lock:head/9 {...
storage にプレイヤーの頭のテクスチャデータ(ブロックのNBTデータ)を保存します。
#看板
data merge block <看板1の座標> {...
data merge block <看板2の座標> {...
data merge block <看板3の座標> {...
#プレイヤーの頭
data modify block <頭1の座標> SkullOwner set from storage lock:head/0
data modify block <頭2の座標> SkullOwner set from storage lock:head/0
data modify block <頭3の座標> SkullOwner set from storage lock:head/0
マップ上の看板、プレイヤーの頭、扉を開ける為のレッドストーンをリセットします。
<code1.mcfunction>
scoreboard players add #lock code1 1
#カウントが10ならば0に戻す
execute if score #lock code1 matches 10.. run scoreboard players set #lock code1 0
scoreboard の code1 を 1 増加させます。もし code1 が 10 の時は 0 に戻します。
execute if score #lock code1 matches 0 run data modify ...
execute if score #lock code1 matches 1 run data modify ...
execute if score #lock code1 matches 2 run data modify ...
execute if score #lock code1 matches 3 run data modify ...
execute if score #lock code1 matches 4 run data modify ...
execute if score #lock code1 matches 5 run data modify ...
execute if score #lock code1 matches 6 run data modify ...
execute if score #lock code1 matches 7 run data modify ...
execute if score #lock code1 matches 8 run data modify ...
execute if score #lock code1 matches 9 run data modify ...
code1 の値に応じて、storageのデータを用いてプレイヤーの頭のテクスチャを変更します。
code2.mcfunction, code3.mcfunction も同じ構造です。
<check.mcfunction>
execute if score #lock unlocked matches 0 if score #lock code1 matches <数字1> ...
unlocked の値が0(ロックが解除されていない)かつ code1、code2、code3 があらかじめ設定した値に等しいとき、function(lock:unlocked)を実行します。
<unlock.mcfunction>
unlocked の値を1にします。また、ロックが解除された時の挙動を指定します。ここでは、解除時に扉が開くようにレッドストーントーチを設置します。
応用例
例①

正しいコードに合わせるとトラップドアが開き、奥のチェストの中を見ることができます。
変更点
・プレイヤーの頭のテクスチャ
reset.mcfunction の
data merge storage lock:head/0 {{Id:[I;xxx,xxx,xxx,xxx],Properties:{textures:[{Value:"xxx"}]}}
data merge storage lock:head/1 ...
の橙色の部分を変更したいテクスチャのデータに置き換えます。プレイヤーの頭のテクスチャはこちらのサイト 等から探すことができます。
・看板の文字
reset.mcfunction の
#看板
data merge block <看板1の座標> {Text2:'{"text":"右クリック","clickEvent":{"action":"run_command","value":"/execute if score #lock unlocked matches 0 positioned <頭1の座標> run function example:lock/code1"}}'}
data merge block <看板2の座標> ...
の橙色の部分を変更します。"右クリック"を"RIGHT CLICK" にし、文字の色を変更する為に "color":"white" を書き足します。
・トラップドアの挙動
上の画像のようにトラップドアを金庫の扉として使用する場合は、扉の時とは異なりロック解除前にレッドストーントーチを設置し、解除後に撤去する必要があります。従って、unlock.mcfunction を次のように書き換えます。
また逆に reset.mcfunction の minecraft:air を minecraft:redstone_torch に書き換えます。
例②

脱出マップで実際に採用したナンバーロックです。正しいパスコードを入力すると梯子が降りてきます。
変更点
・パスコードの桁を増加
パスコードをこれまでより一桁多い4桁にしています。変更箇所が多いので詳細は省きますが、 code4.mcfunction のファイルを作り、reset.mcfunction、check.mcfunction を修正します。コマンドを一から書く必要はなく code1 ~ code3 のものを流用すればよいので、そこまで難しくはないと思います。
まとめ
さて、二回にわたってナンバーロックの作り方を解説しましたが、いかがだったでしょうか?今回の装置は色々と応用が利きやすいと思いますので、是非ご自身のマップに取り入れてみて下さい。感想をお待ちしております。
【マインクラフトJE1.17.1】ナンバーロックの作り方① 〜制作編〜

ども、ハングドです。
今回は、僕が脱出マップでよく使っているナンバーロックの作り方を解説しようと思います。
本解説は二つのパートに分かれています。
- 制作編:装置の概要、作り方
- 解説編:仕組みの解説、応用
今回は制作編です。
この解説ではコマンド及びデータパックを使います。でもご安心下さい!!コマンドに触れたことがない、という方でも理解出来る内容にしている(つもりです)ので、是非試してみて下さい。また、マインクラフト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」になり、看板に文字が追加されていれば完成です!
穴を塞いだ後は、設定したパスコードで扉が開くかどうかを確認しましょう。
リセットしたい場合はもう一度チャット欄に
と打ち込んで下さい。
まとめ
今回はデータパックを使ったナンバーロックの作り方を解説しました。次回は、この装置がどのような仕組みで動いているのかについて解説します。装置の応用例も紹介するつもりですので、お楽しみに!
現状報告(2021年10月)
ども、ハングドです。
最近マイクラ脱出マップの制作が少々行き詰まっております...。そこで、気分転換に記事を書くことにしました。取り敢えず今回は、現状報告と今後やりたいことをリストアップしようと思います。
現在進行中の作業
新マップの作成
マップテーマと流れは大体固まっています。後は細かい謎が思い付けば、制作作業に移ろうと思います。とは言っても、これからリアルの方が忙しくなると思うので配布は今年度末になりそうです。
今後やりたいこと
脱出マップの改築
最近「明かずの山荘」というマップを公開しましたが、一旦配布を停止することにしました。理由としては、個人的に納得のいかない箇所があったからです。恐らく今、改築作業をしても上手くいかないと思うので、少し寝かせておこうと思います。もしかすれば後日、詳細をブログに書くかもしれません。
ブログの更新・整備
新しい記事を全く更新しておらず、単なるマップ配布場所と化していたので、もう少し執筆にも力を入れようと思います。折角なのでウェブデザインも改良していきたいですね。何か記事にして欲しいことがあれば教えて下さい(_ _)
マイクラ脱出サーバー
3~4人位でプレイするマップを作り、サーバー上で遊べるようにしようかと思います。イメージはリアル脱出ゲームやマーダーミステリーです。敢えてマップを配布しないことで、プレイヤーが普段と違った体験を得られるかも...。
SkyStoneのアップデート
マイクラver1.17で面白いアイテムが色々追加されたので、それらを生かしたマップ構成に作り直したいです。但し他にもしたいことが山ほどあるので、ここまで手が回らないかもしれません。
以上、現状報告と今後やりたいことリストでした。これからは、ぼちぼちと記事を更新していこうと思います。ではでは。
【マインクラフト】ストップウォッチ(脱出マップ用)データパック配布
※本データパックはPC版(Java Edition)専用です。
※本来のマップに影響がないようできる限り配慮していますが、導入する際は自己責任でお願いします。
内容
ストップウォッチ機能
時間を計測します。任意のタイミングで計測を始めることができます。
累計プレイ時間のカウント
データパックを導入してからのプレイ時間を計測します。プレイ前に予め導入しておくことで、そのマップのプレイ時間の合計が分かります。
導入方法
1. 以下のリンクからzipファイルをダウンロード
2. プレイするマップのdatapacksフォルダに、解凍したデータをそのまま入れる。(datapacksフォルダがない場合は新しく作ってください。)
3.コマンドを使用するため、必要に応じてop権限を取得しておいて下さい。シングルプレイで場合は、LAN公開(メニュー画面)等をするとコマンドを使用できます。
使い方
コマンド一覧を表示:/function stopwatch:help
現在のタイムを表示:/function stopwatch:show
計測を開始 :/function stopwatch:start
計測を一時停止 :/function stopwatch:stop
タイムをリセット :/function stopwatch:reset
オプション設定 :/function stopwatch:option
ダウンロード
Minecraft JE 1.6.x
【マインクラフト】配布マップ一覧
- 配布マップは全てJE版(PC版)になります。
- 難易度・推定クリア時間はマップ内にある説明書の記載と異なる場合があります。
遊び方
1.各マップのダウンロードURLをクリックし、ファイルをダウンロード
2.解凍したファイルを丸ごと minecraft の saves フォルダに入れる
マップ一覧
脱出マップ
–REPLICA–
Minecraft JE 1.21.4
難易度:普通
推定クリア時間:3~5時間
ダウンロード(最新版:ver1.1.1):Dropbox
明カズノ山荘
Minecraft JE 1.20.4
難易度:難しい
推定クリア時間:5~8時間
ダウンロード(最新版:ver1.4.0):Dropbox
灰かぶりの天象台
Minecraft JE 1.20.1
難易度:簡単
推定クリア時間:1~2時間
ダウンロード(最新版:ver1.0.3): Dropbox
かぜなき谷の大風車
Minecraft JE 1.19.4
難易度:難しい
推定クリア時間:4~6時間
ダウンロード(最新版:ver1.1.0):Dropbox
絡繰仕掛けの灯台島
Minecraft JE 1.16.5
難易度:普通
推定クリア時間:1~2時間
ダウンロード(最新版:ver1.0.9): Dropbox
SunkenLeviathan
Minecraft JE 1.14.4
難易度:難しい
推定クリア時間:3時間
ダウンロード(最新版:ver1.1.4): Dropbox
MAGIS -魔法な家からの脱出-
Minecraft JE 1.13.2
難易度:簡単
推定クリア時間:30分~1時間
ダウンロード(最新版:ver1.0.4): Dropbox
FrozenHut
Minecraft JE 1.13.2
難易度:普通
推定クリア時間:3時間
ダウンロード(最新版:ver1.7.2): Dropbox
サバイバル
SkyblockStoneTech
Minecraft JE 1.16.5
ダウンロード(最新版:ver1.0.2)
-現在配布停止中-
<パッチの導入方法>
1.パッチのダウンロードURLをクリックし、ファイルをダウンロード
2.現在遊んでいるマップのdatapacksフォルダに、解凍したファイルを既存のファイルと置き換える(前のバージョンのパッチは破棄)