内容をスキップ

目が合うと死亡! 向いている視点の方向を判定する「rx/ry」を使った仕掛けの作り方[コマンド解説]【Minecraft】

UPDATE :
「人形と目を合わせるとダメージを受けて殺される」など、
ホラーな配布ワールド/サーバーにぴったりな仕掛けの作り方と、
プレイヤーの向いている方向を判定する新しい引数「ry」「rx」を解説します。
応用すれば、マリオ64のピーチ城の「天井を見たらワープ」なんてことも!
簡単なコマンドと回路だけで実現可能なんです。そう、1.8ならね。

目次

 

※仕掛けの作り方は飛ばして、視点の向きを判定する「rx/ry」についての
詳しい解説を読みたい方
こちらへどうぞ。

 

今回作る仕掛け -目を合わせてはいけない人形、ピーチ城再現-

ホラゲーでよくある、「目を合わせたら何か起きる」という仕掛け。
マイクラで再現してみました。防具立てを人形に見立て、「死の人形」にしたわけです。

人形と目を合わせると...

暗い部屋に置かれた謎の人形に目を合わせると「殺す…!」とダメージを受けます。
目を合わせている間はダメージを受け続けます。
ホラーな配布ワールドやサーバーにピッタリ
でしょ?

それともう一つ、楽しい仕掛けを作ってみました。
皆さん、ニンテンドー64のマリオを覚えていますか? 滑り台で落ちまくるアレです。
あのマリオ64のピーチ城、広間で天井を見上げるとワープしますよね。
ほんで羽マリオでしたっけ、に変身して空をビューンって飛べる。アレです。

それもマイクラで再現しちゃいました。建物は適当ですが。
Cugv056f

天井をずっと見ていると画面が歪み、天空へワープします。
RPG風ワールドの、クエスト出発ゲートなどに応用できますね。

目を合わせるとダメージを受ける人形の作り方

それでは、人形に目を合わせるとダメージを受ける、ホラーな仕掛けの作り方を解説します。
まずは、目を合わせるための人形部屋を用意しましょう。

人形のフィールド

こんな風に、プレイヤーが歩ける場所を柵などで制限しておいて下さい。
今回は例として、目を合わせさせる物を南に置いて北には柵(壁)を設置しています。
青/水色の羊毛は記事で解説するための目印です。ここが効果の範囲になります。
(人形を置く方角などはどれでも構いません! 各方角別のコマンドを後述します)

人形の回路

それでは回路を組み立てましょう。
右側は、2つのコマンドブロックで最速クロック回路を作ります。

「A」のコマンドブロックに入力するコマンド (最速クロック)
/fill ~ ~-1 ~ ~ ~-1 ~ redstone_block

「B」のコマンドブロックに入力するコマンド (〃)
/fill ~ ~1 ~ ~ ~1 ~ stone

この上下のコマンドブロックの間にレッドストーンブロックをはめ込むことで、クロックが起動します。
以後、左右の「1」「2」は常時実行され続けます。

常時クロックで実行され続ける、「1」のコマンドブロックの中身です。↓

「1」のコマンドブロックに入力するコマンド (常時実行)
/effect @a[青い羊毛の上の座標,<人形までの距離と方角>,rxm=-3,rx=10] 20 1 1 true

青い羊毛の上の座標

「青い羊毛の上の座標」ですが、▲のように上に立って、「Block:」の数値を調べて下さい。
図のような座標の場合は、「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

「dx=」または「dz=」は、基準となる座標からターゲット範囲を広げるために記述します。例えば東に範囲を広げたい場合は「dx=距離の数字」と書き、南に範囲を広げたい場合は「dz=距離の数字」と書きます。北と西の範囲は指定することができないので、基準点を動かして下さい。

続いて記述する「rym」「ry」の値は、プレイヤーの向いている方角の数値です。
その後の「rxm=-3,rx=10」は「真横を向いているプレイヤー」の事を指しています。
これらの数値と方角の関係、求め方については後で詳しく解説します。

このコマンドはeffectコマンドなので、後に続けてステータス効果を書きます。
「effect @p 20 1 1 true」というのは、「ウィザー効果を1秒与える」という意味です。
これが、南の人形の方を向いている間はずっとダメージを受ける仕掛けなのです。


続いて、「2」「3」「4」のコマンドブロックの内容を解説します。

「2」のコマンドブロックに入力するコマンド (常時実行)
/testfor @a[青い羊毛の上の座標x,y,z,<人形までの距離と方角>,rxm=-3,rx=10]

プレイヤーが人形の方を向いているかを、testforコマンドで判定します。
プレイヤーが人形と目を合わせた瞬間にコンパレーターがONになります。

「3」のコマンドブロックに入力するコマンド (プレイヤーが人形の方を向くと発動)
/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;">「Ill kill you…」のメッセージを表示します。
「<人形までの距離>」には、先ほどの「<人形までの距離と方角>」「dx(dz)=a(-a)」部分のみを書きます。

「4」のコマンドブロックに入力するコマンド (〃)
/title @a[青い羊毛の上の座標,<人形までの距離>] times 5 20 5

「3」より先に実行されます。メッセージ(title)の表示時間を設定します。
「5 20 5」は「フェードイン | 表示 | フェードアウト」の時間(tick)の数値です。

最後に、「5」のコマンドブロックの中身を入力すれば完成です。

「5」のコマンドブロック

「4」のコマンドブロックにレッドストーントーチを刺しておきます。
こうすることで、プレイヤーが人形から目を離したら「5」が発動するようになります。

「5」のコマンドブロックに入力するコマンド (人形から目を離すと実行)
/effect @a[青い羊毛の上の座標,1,dz=人形までの距離] wither 0

人形から目を離した時に、ウィザー効果を解除します。
(またまた七色大先生にご指摘頂き、修正しました。毎度毎度ありがとうございます><) 

完成!

どれだけ人形の近くでも、目を合わせればダメージを受けます。
意外と簡単な回路とコマンドで完成しました。

マリオ64のピーチ城のように、上を向くとワープする仕掛けの作り方

それでは、2つ目の「天井をしばらく見つめるとワープする」仕掛けの作り方を解説します。
こちらのほうが、1つ目の仕掛けより断然簡単に作れるんです。

ワープ用の部屋

まずはこんな風なワープ用の部屋を用意して下さい。
壁や天井は仕掛けの動作と一切関係ないので、ご自由にどうぞ。

ワープ回路の図

こちらが回路です。「1」「2」のコマンドブロックの間のコンパレーターを忘れずに。
リピーターは全て右クリック3回で、導体ブロック2個を経由して「3」へ伸びています。
「最速クロック」の部分は、先ほど解説した人形の回路と同じものです。

それでは、各コマンドブロックの内容を解説していきます。

「1」のコマンドブロックに入力するコマンド (常時実行)
/testfor @a[部屋の中心の座標z,y,z,効果が及ぶ半径,rxm=-90,rx=-70]

部屋の中心と半径

「部屋の中心の座標」には、図のような部屋のど真ん中に立った時の座標を「x,y,z」で書きます。
「効果が及ぶ半径」は、そのまんま部屋の中心からの半径を入力します。
(半径ではなく、「dx」「dz」を使った範囲指定でも問題ありません)
「rxm=-90,rx=-70」というのは、「上を向いたプレイヤー」という意味です。
ここで新登場した「rxm/rx」については後で詳しく解説します。

「2」のコマンドブロックに入力するコマンド (上を向いたら実行)
/effect @a[部屋の中心の座標z,y,z,効果が及ぶ半径] 9 6 1 true

9 6 1 true」というのは「吐き気の効果6秒間レベル1でパーティクルを隠して付与」という意味です。
上を向いたらすぐこのコマンドが発動し、画面が歪みます。
テレポートのタイミングを変える際は、ここの秒数を程よく変えて下さい。

「3」のコマンドブロックに入力するコマンド (上を向いて約2秒後に実行)
/tp @a[部屋の中心の座標z,y,z,効果が及ぶ半径] <テレポート先の座標>

リピーターでかなり遅延をかけて実行します。程よく時間を掛けてからテレポ。
これにてこの回路は完成です。簡単でしょ。

「1」のコマンドブロックの角度の部分の数値を弄れば、「下を向いてワープ」なんて事も。
どんな数値を入れればどの方向が判定できるのか、これから解説します。

プレイヤーの視点の向きを判定する数値一覧 – 全方角を網羅!

ここまで解説してきた2つの仕掛けで、見慣れない数値が出てきましたね。
「@a[(中略)… rym=●●,ry=●●,rxm=●●,rx=●●]」というセレクタの書き方。
この「ry」や「rx」の数値は、プレイヤーの向いている視点の方向を表しています。

どんな数値を設定すれば、北や南、上や下など自由自在な方向を判定できるのか。
図と表で、プレイヤーの視点の方向と数値についてまとめました。

新引数「ry」の書き方 – 横方向の視点の向き、つまり方角を判定

まず解説するのは、Minecraft 1.8で追加された新引数「ry」についてです。
この「ry」では、プレイヤー/エンティティの横方向の向きを判定できます。
つまりは、「東西南北どの方角を向いているか」を判定できるのです。

新引数「ry」の使い方

▲「ry」の使い方を図にまとめてみました。数値と方角は左の円のような関係になっています。
南が「0」で、北が「180」東が「-90」で、西が「90」です。
これらの数値を、「rym=最小値」「ry=最大値」を2つセットで記述して判定します。

「ry」の表示場所

「ry」の数値は、デバッグモードの「Facing」欄で確認できます。
まずは判定したい方向の左端の値を調べて「rym」にし、右端の値「ry」にしましょう。
数値の大きい/小さいではなく、左がrym、右がryなのです。細かいことは気にしない。

「細かい説明はいいから、この方角はどんな数字なんだよ!」というあなたのために逆引き数値リストを用意しました。視点の向きを8方位に分けて、それぞれを判定する数値を書いています。▼

判定したい方角 セレクタに書く数値
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」の書き方 – 縦方向の視点の向き、つまり上下の向きを判定

次に解説するのは、同じく1.8で追加された新引数「rx」についてです。
「rx」では、プレイヤー/エンティティの縦方向の向きを判定できます。
つまりは、「プレイヤーが上下どこを向いているか」を判定できるのです。

新引数「rx」の使い方
▲「rx」の使い方を図にまとめてみました。数値と向きは左の円のような関係になっています。
真下が「90」で、斜め下は「45」真横が「0」で、斜め上は「-45」、真上は「0」です。
これらの数値を、「rxm=最小値」「rx=最大値」を2つセットで記述して判定します。

「rx」の数値の場所

「rx」の数値は、デバッグモードの「Facing」欄で確認できます。
まずは判定したい向きの上端の値を調べて「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」を使って、楽しい仕掛けが制作されるのを心待ちにしています。


 

ポスト
マイクラ思考編集部
YouTubeでマインクラフトの役立つ動画を投稿しています。クロスマルチプレイ対応のマイクラサーバー「くろまる」も運営中!

3件のコメント

  1. .*
    2016年8月22日
    図:新引数ryの使い方! が矛盾してますよー
  2. 2016年8月22日
    どこが矛盾しているのか教えて頂ければ助かります...
  3. hijiki
    2016年10月5日
    (↓の矛盾点について...) コメント失礼いたします。 真上がrxm=-90,rx=-80 斜め上がrxm=-55,rx=-35 真横がrxm=-10,rx=10 ...となることを指摘したかったのではないでしょうか?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です