「人形と目を合わせるとダメージを受けて殺される」など、
ホラーな配布ワールド/サーバーにぴったりな仕掛けの作り方と、
プレイヤーの向いている方向を判定する新しい引数「ry」「rx」を解説します。
応用すれば、マリオ64のピーチ城の「天井を見たらワープ」なんてことも!
簡単なコマンドと回路だけで実現可能なんです。そう、1.8ならね。
※仕掛けの作り方は飛ばして、視点の向きを判定する「rx/ry」についての
詳しい解説を読みたい方はこちらへどうぞ。
今回作る仕掛け -目を合わせてはいけない人形、ピーチ城再現-
ホラゲーでよくある、「目を合わせたら何か起きる」という仕掛け。
マイクラで再現してみました。防具立てを人形に見立て、「死の人形」にしたわけです。

▲暗い部屋に置かれた謎の人形に目を合わせると、「殺す...!」とダメージを受けます。
目を合わせている間はダメージを受け続けます。
ホラーな配布ワールドやサーバーにピッタリでしょ?
それともう一つ、楽しい仕掛けを作ってみました。
皆さん、ニンテンドー64のマリオを覚えていますか? 滑り台で落ちまくるアレです。
あのマリオ64のピーチ城、広間で天井を見上げるとワープしますよね。
ほんで羽マリオでしたっけ、に変身して空をビューンって飛べる。アレです。
それもマイクラで再現しちゃいました。建物は適当ですが。

▲天井をずっと見ていると画面が歪み、天空へワープします。
RPG風ワールドの、クエスト出発ゲートなどに応用できますね。
こんな風に、プレイヤーが歩ける場所を柵などで制限しておいて下さい。 それでは回路を組み立てましょう。 「A」のコマンドブロックに入力するコマンド (最速クロック) 「B」のコマンドブロックに入力するコマンド (〃) この上下のコマンドブロックの間にレッドストーンブロックをはめ込むことで、クロックが起動します。 常時クロックで実行され続ける、「1」のコマンドブロックの中身です。↓ 「1」のコマンドブロックに入力するコマンド (常時実行) 「青い羊毛の上の座標」ですが、▲のように上に立って、「Block:」の数値を調べて下さい。 「<人形までの距離と方角>」は、方向と距離によって以下のように内容が変わります。 「dx=」または「dz=」は、基準となる座標からターゲット範囲を広げるために記述します。例えば東に範囲を広げたい場合は「dx=距離の数字」と書き、南に範囲を広げたい場合は「dz=距離の数字」と書きます。北と西の範囲は指定することができないので、基準点を動かして下さい。 続いて記述する「rym」「ry」の値は、プレイヤーの向いている方角の数値です。 このコマンドはeffectコマンドなので、後に続けてステータス効果を書きます。 続いて、「2」「3」「4」のコマンドブロックの内容を解説します。 「2」のコマンドブロックに入力するコマンド (常時実行) プレイヤーが人形の方を向いているかを、testforコマンドで判定します。 「3」のコマンドブロックに入力するコマンド (プレイヤーが人形の方を向くと発動) 「4」のコマンドブロックに入力するコマンド (〃) 「3」より先に実行されます。メッセージ(title)の表示時間を設定します。 最後に、「5」のコマンドブロックの中身を入力すれば完成です。 「4」のコマンドブロックにレッドストーントーチを刺しておきます。 「5」のコマンドブロックに入力するコマンド (人形から目を離すと実行) 人形から目を離した時に、ウィザー効果を解除します。 どれだけ人形の近くでも、目を合わせればダメージを受けます。目を合わせるとダメージを受ける人形の作り方
それでは、人形に目を合わせるとダメージを受ける、ホラーな仕掛けの作り方を解説します。
まずは、目を合わせるための人形と部屋を用意しましょう。
今回は例として、目を合わせさせる物を南に置いて、北には柵(壁)を設置しています。
青/水色の羊毛は記事で解説するための目印です。ここが効果の範囲になります。
(人形を置く方角などはどれでも構いません! 各方角別のコマンドを後述します)
右側は、2つのコマンドブロックで最速クロック回路を作ります。
/fill ~ ~-1 ~ ~ ~-1 ~ redstone_block
/fill ~ ~1 ~ ~ ~1 ~ stone
以後、左右の「1」「2」は常時実行され続けます。
/effect @a[青い羊毛の上の座標,<人形までの距離と方角>,rxm=-3,rx=10] 20 1 1 true
図のような座標の場合は、「251,56,-504」と書きます。人形のある方角 人形までの距離 <人形までの距離と方角>の内容 プレイヤーの北 aブロック dz=a,rym=175,ry=-175 (基準点を動かす!) 〃の南 aブロック dz=a,rym=-5,ry=5 〃の東 aブロック dx=a,rym=-95,ry=85 〃の西 aブロック dx=a,rym=85,ry=95
その後の「rxm=-3,rx=10」は「真横を向いているプレイヤー」の事を指しています。
これらの数値と方角の関係、求め方については後で詳しく解説します。
「effect @p 20 1 1 true」というのは、「ウィザー効果を1秒与える」という意味です。
これが、南の人形の方を向いている間はずっとダメージを受ける仕掛けなのです。
/testfor @a[青い羊毛の上の座標x,y,z,<人形までの距離と方角>,rxm=-3,rx=10]
プレイヤーが人形と目を合わせた瞬間にコンパレーターがONになります。
/title @a[青い羊毛の上の座標x,y,z,<人形までの距離>] title {"text":"Ill kill you..."</i></span>,"color":"red"}</b></p><p style="margin-bottom: 17px!important;">コンパレーターがONになったら実行されます。<b>実は「4」より後に実行されます。</b><br /><b>羊毛の範囲のプレイヤー</b>に<b><i><span style="color: #cc0000;">「I
ll kill you...」のメッセージを表示します。
「<人形までの距離>」には、先ほどの「<人形までの距離と方角>」の「dx(dz)=a(-a)」部分のみを書きます。
/title @a[青い羊毛の上の座標,<人形までの距離>] times 5 20 5
「5 20 5」は「フェードイン | 表示 | フェードアウト」の時間(tick)の数値です。
こうすることで、プレイヤーが人形から目を離したら「5」が発動するようになります。
/effect @a[青い羊毛の上の座標,1,dz=人形までの距離] wither 0
(またまた七色大先生にご指摘頂き、修正しました。毎度毎度ありがとうございます><)
意外と簡単な回路とコマンドで完成しました。
それでは、2つ目の「天井をしばらく見つめるとワープする」仕掛けの作り方を解説します。 まずはこんな風なワープ用の部屋を用意して下さい。 こちらが回路です。「1」と「2」のコマンドブロックの間のコンパレーターを忘れずに。 それでは、各コマンドブロックの内容を解説していきます。 「1」のコマンドブロックに入力するコマンド (常時実行) 「部屋の中心の座標」には、図のような部屋のど真ん中に立った時の座標を「x,y,z」で書きます。 「2」のコマンドブロックに入力するコマンド (上を向いたら実行) 「9 6 1 true」というのは「吐き気の効果を6秒間レベル1でパーティクルを隠して付与」という意味です。 「3」のコマンドブロックに入力するコマンド (上を向いて約2秒後に実行) リピーターでかなり遅延をかけて実行します。程よく時間を掛けてからテレポ。 「1」のコマンドブロックの角度の部分の数値を弄れば、「下を向いてワープ」なんて事も。マリオ64のピーチ城のように、上を向くとワープする仕掛けの作り方
こちらのほうが、1つ目の仕掛けより断然簡単に作れるんです。
壁や天井は仕掛けの動作と一切関係ないので、ご自由にどうぞ。
リピーターは全て右クリック3回で、導体ブロック2個を経由して「3」へ伸びています。
「最速クロック」の部分は、先ほど解説した人形の回路と同じものです。
/testfor @a[部屋の中心の座標z,y,z,効果が及ぶ半径,rxm=-90,rx=-70]
「効果が及ぶ半径」は、そのまんま部屋の中心からの半径を入力します。
(半径ではなく、「dx」「dz」を使った範囲指定でも問題ありません)
「rxm=-90,rx=-70」というのは、「上を向いたプレイヤー」という意味です。
ここで新登場した「rxm/rx」については後で詳しく解説します。
/effect @a[部屋の中心の座標z,y,z,効果が及ぶ半径] 9 6 1 true
上を向いたらすぐこのコマンドが発動し、画面が歪みます。
テレポートのタイミングを変える際は、ここの秒数を程よく変えて下さい。
/tp @a[部屋の中心の座標z,y,z,効果が及ぶ半径] <テレポート先の座標>
これにてこの回路は完成です。簡単でしょ。
どんな数値を入れればどの方向が判定できるのか、これから解説します。
ここまで解説してきた2つの仕掛けで、見慣れない数値が出てきましたね。 どんな数値を設定すれば、北や南、上や下など自由自在な方向を判定できるのか。 まず解説するのは、Minecraft 1.8で追加された新引数「ry」についてです。 ▲「ry」の使い方を図にまとめてみました。数値と方角は左の円のような関係になっています。 「ry」の数値は、デバッグモードの「Facing」欄で確認できます。 「細かい説明はいいから、この方角はどんな数字なんだよ!」というあなたのために逆引き数値リストを用意しました。視点の向きを8方位に分けて、それぞれを判定する数値を書いています。▼ 人形の仕掛けのように、狭い幅で指定するのをお勧めします。 次に解説するのは、同じく1.8で追加された新引数「rx」についてです。 「rx」の数値は、デバッグモードの「Facing」欄で確認できます。 横方向の向きと縦方向の向きの数値を組み合わせて書くことで、自由自在な向きの判定が可能です。プレイヤーの視点の向きを判定する数値一覧 - 全方角を網羅!
「@a[(中略)... rym=●●,ry=●●,rxm=●●,rx=●●]」というセレクタの書き方。
この「ry」や「rx」の数値は、プレイヤーの向いている視点の方向を表しています。
図と表で、プレイヤーの視点の方向と数値についてまとめました。新引数「ry」の書き方 - 横方向の視点の向き、つまり方角を判定
この「ry」では、プレイヤー/エンティティの横方向の向きを判定できます。
つまりは、「東西南北どの方角を向いているか」を判定できるのです。
南が「0」で、北が「180」、東が「-90」で、西が「90」です。
これらの数値を、「rym=最小値」と「ry=最大値」を2つセットで記述して判定します。
まずは判定したい方向の左端の値を調べて「rym」にし、右端の値を「ry」にしましょう。
数値の大きい/小さいではなく、左がrym、右がryなのです。細かいことは気にしない。判定したい方角 セレクタに書く数値 北 rym=175,ry=-175 北東 rym=-140,ry=-130 東 rym=-95,ry=-85 南東 rym=-50,ry=-40 南 rym=-5,ry=5 南西 rym=40,ry=50 西 rym=85,ry=95 北西 rym=130,ry=140
この表では、幅を10にしているため、結構厳しい判定になります。新引数「rx」の書き方 - 縦方向の視点の向き、つまり上下の向きを判定
「rx」では、プレイヤー/エンティティの縦方向の向きを判定できます。
つまりは、「プレイヤーが上下どこを向いているか」を判定できるのです。
▲「rx」の使い方を図にまとめてみました。数値と向きは左の円のような関係になっています。
真下が「90」で、斜め下は「45」、真横が「0」で、斜め上は「-45」、真上は「0」です。
これらの数値を、「rxm=最小値」と「rx=最大値」を2つセットで記述して判定します。
まずは判定したい向きの上端の値を調べて「rxm」にし、下の値を「rx」にしましょう。
数値の大きい/小さいではなく、上がrxm、下がrxなのです。細かいことは気にしない。判定したい向き セレクタに書く数値 真上 rxm=0,rx=10 斜め上 rxm=35,rx=55 真横 rxm=10,rx=10 斜め下 rxm=35,rx=55 真下 rxm=80,rx=90
この「rx/ry」を使って、楽しい仕掛けが制作されるのを心待ちにしています。

いかがでしたか。色々な場面で使って頂ければ幸いです。
「これはどうするの?」などコメント待ってます。
最近書いたコマンド解説記事
図:新引数ryの使い方!
が矛盾してますよー
どこが矛盾しているのか教えて頂ければ助かります…
(↓の矛盾点について…)
コメント失礼いたします。
真上がrxm=-90,rx=-80
斜め上がrxm=-55,rx=-35
真横がrxm=-10,rx=10
…となることを指摘したかったのではないでしょうか?