無限ループ迷路
ダンジョンを作る時、迷路って必ずと言っていいほど作りますよね。
今回は、Minecraft 1.8でコマンドを使った無限に出られない迷路の作り方を解説します。

製作時間はわずか15分! 大量に作れば、超難関ダンジョンになること間違いなし!
一度入ればその人は永遠に出られない恐怖のゲームの始まり始まり...
スポンサーリンク
お待ち! この記事は最後の更新から1年以上経過している古い記事だ。新しいバージョンに合わせて装置を作り直してスクショを取り直して解説を書き直す面倒臭さが君には分かるかい? 分からないなら読まないほうがいいぜ。


無限迷路の仕組みと建物の準備

これから作り方を解説するのは、一度入れば最後、二度と出られないかもしれない恐怖の迷路です。
いくつも部屋があり、それぞれがランダムに繋がっています。
無限ループ迷路の仕組み
こんな風にいくつも部屋があり、それぞれ4つ出口があります。
出口からランダムに別の部屋へとテレポートしていき、それが無限に続くわけです。

運が良ければいつか、ゴールの部屋に辿り着くでしょう。運が悪ければ同じ罠に何回もハメられます。

26
↑こんな部屋を作りましょう。4つ出口っぽい通路を開けておきます。
(ダミーの通路ですので、ドアとか付けなくて大丈夫です)

ここでこの部屋をいくつも作るわけですが、面倒なのでcloneコマンドでコピーしましょう。
※それぞれの部屋は離して下さい。通路を繋げないで下さい。
50
このようにcloneコマンドでコピーする方法については、↓の記事で解説しています。
【コマンド解説】一瞬で城が出現! fillやcloneの使い方とダンジョン用仕掛け【Minecraft】
/archives/41249070.html

さて、どうやってランダムに移動するのか。
そんな時役に立つのが、村人と1.8で追加された「防具立て(armor_stand)」です。

(armor_standについての細かいコマンドはこちらの記事で解説しています。)

03
各部屋の外側に村人、内側に防具立てを立てます。
以下のコマンドで召喚します。

AIが無効化されて動かない村人を召喚
/summon Villager ~ ~ ~ {NoAI:1b,Silent:1b}

立てたい場所に立ってコマンドを実行して下さい。この村人はテレポートの入口になります。
必ず{NoAI:1b}」と書かないと村人が動いてしまいます。


村人の手前にそれぞれ防具立てを立てます。この作業を全ての通路でして下さい。
次に、防具立てが見えてはいけませんので透明化させます。

防具立てを全て透明化させて見えなくする
/entitydata @e[type=armor_stand] {Invisible:1}

村人と防具立てはエンティティなので、entitydataコマンドで操作します。
「Invisible」タグに1を設定すると透明になります。

次に、村人を透明化させます。以下のコマンドをクロック回路で実行して下さい。

村人を透明化させる(クロック回路)
/effect @e[type=Villager] 14 1 1 true

最後に「true」を付けることで、パーティクル無しで効果を付与します。
 

ランダムにテレポートするコマンド

次に、いよいよランダムにテレポートさせる仕掛けを作ります。

ランダムに部屋を行き来する仕組み
この図のような仕組みで、村人に触れると防具立てまでテレポートするようにします。
テレポート先の防具立てをランダムに指定することで、どの部屋に出るか分からなくします。

50
迷路の外に、上図のようなクロック回路とコマンドブロックを用意しましょう。
コマンドブロックに以下のコマンドを入力します。

村人に触れるとランダムに防具立ての場所にテレポート
/execute @e[type=Villager] ~ ~ ~ tp @a[r=0] @r[type=armor_stand]

executeコマンドを使います。
村人を基準に、村人に触れたプレイヤー「@r」でランダムな防具立ての場所にテレポートさせます。
executeコマンドについて詳しくは↓の記事をお読み下さい。
【コマンド解説】TNTを飛ばすスケルトン! executeコマンドで色んな仕掛けを作ろう 【Minecraft】
/archives/41518664.html



38
こんな風にどこかの部屋にゴールを作れば迷路完成です。
それぞれの部屋にトラップを設置しておけば、攻略にかなり時間の掛かるダンジョンになるでしょう。


番外編: @rを使ってランダムにコマンドを実行しよう

最後に一つ、とっておきのマシンを紹介しましょう。
先ほどの迷路で「@r」というセレクタを使いましたが、これを使ってランダムにコマンドを実行させる方法を解説します。 どんなボスが現れるか分からないとか、どんな宝が手に入るか分からないだとか、
ガチャ的な要素をマイクラで作れます。

03
コマンドブロック(好きなコマンド)をいくつか並べて、感圧板を乗せておきます。

横に名前をつけた防具立てを召喚するので、以下のコマンドで召喚します。

「Ra」と名前をつけた防具立てを召喚
/summon armor_stand ~ ~ ~ {CustomName:"Ra",CustomNameVisible:10}

他の防具立てと区別するために名前をつけます。

次に、executeコマンドで防具立ての近くに砂を落とします。
↓のコマンドをコマンドブロックで実行して下さい。

防具立ての近くに砂を落とす
/execute @r[type=armor_stand,name=Ra] ~ ~ ~
summon FallingSand ~1 ~1 ~ {Tile:sand,Block:sand,Time:1,DropItem:0}

「FallingSand」というエンティティに砂を設定すると砂が落ちます。
このコマンドのままでは砂がその場に落ちるので、「~1 ~1 ~」 の数値を調整して下さい。
感圧板の上に砂が落ちるようになったら成功です。砂がランダムで落ちます。



43_2
いかがでしたか。
「@r」セレクタの便利さがお分かりいただけたかと思います。
このコマンドをうまく使った楽しいマップが制作されるのを心からお持ちしています。
もっと仕掛けが作りたい!という方は、是非これらの記事をお読みください。

参考にさせて頂いたページ

Random actions using @r and entities - YouTube
http://www.youtube.com/watch?v=fNU95xgYJkw

Minecraft 1.8 Random number / command generators - YouTube
http://www.youtube.com/watch?v=zImXBKxZYoM

スポンサーリンク

毎度毎度ツイート、コメント等ありがとうございます。Twitterではブログの更新状況など色々呟いてます。気軽にフォロー下さい。

スポンサーリンク

コメント

お待ち! この記事は最後の更新から1年以上経過している古い記事だ。新しいバージョンに合わせて装置を作り直してスクショを取り直して解説を書き直す面倒臭さが君には分かるかい?
  • でんでん (Minecraft ID:denden0816)

    なぜ村人でなければいけないのか…!?
    まぢか!