よーぐるさんのマイクラ日誌!!

高校生の女の子がマイクラpeを楽しむブログです(*•̀ᴗ•́*)و ̑̑

A○EXのレイスのようなポータルの作り方 マイクラ統合版/PE

みなさんこんにちは、よーぐるです!

今回は、みんな大好きAPEXのレイスというキャラクターのウルトである、ポータルをマイクラで作ってみようと思います。

少々長いですが、気合いを入れて作っていきましょう!(๑و•̀Δ•́)و

マルチテストはしていませんが、タグをいじれば行けると思うので試してみてください!

以下目次を貼っておきますので、ご自由にどうぞ!



用意するもの

  • 旗 2つ
    (同色の場合は、金床などで名前を変えておくこと、旗じゃなくても可)
    今回は空色の旗ピンクの旗を使います。
  • レッドストーンコンパレーター 6個
  • コマンドブロック 3種類

コマンドブロックを得るためのコマンドはこちらです。↓

/give @p command_block
/give @p chain_command_block
/give @p repeating_command_block

また、
オレンジ→衝撃(インパルス)
緑→チェーン
紫→反復(リピート)で色分けしています。

作り方(本編)

まず、コマンドブロックとコンパレーターを画像のように並べます。

f:id:yogurr19:20201126223831p:plain

長くて分かりにくい方のために、文字でも書いておきます↓

←コマンドブロックの向き←
⑨⑧ | |

画像ではレバーが数箇所着いていますが、常時実行にするので実際は必要ありません。

ポータルや旗の名前は色ごとに同じ名前を使ってください。


反復、無条件、常時実行
/execute @e[type=armor_stand,name=portal1] ~~~ particle minecraft:end_chest ~~~

独立したコマンドブロックとして、アーマースタンドにポータルっぽいパーティクルを付与するコマンドを用意します。

パーティクルは何でも良いのですが、重すぎるものだと端末がカクカクになってしまうので、軽めのものを使うと良いです。

オススメはこちら↓
f:id:yogurr19:20201128113054p:plain
・(左) minecraft:end_chest ・(右) minecraft:dragon_breath_fire(左)


反復、無条件、常時実行
/testfor @e[name=空色の旗]

空色の旗があるかどうかを検知します。 これはインベントリ内の旗や設置してある旗ではなく、アイテムとして旗を投げた時に検知されます。

反復、無条件、レッドストーンが必要
/execute @e[type=item,name=空色の旗] ~~~ summon armor_stand portal1 ~~~

空色の旗に、portal1という名前が付いたアーマースタンドを召喚させます。

チェーン、条件付き、常時実行
/kill @e[name=空色の旗]

空色の旗をキルします。ここで空色の旗の役目は終了です。


反復、無条件、常時実行
/effect @e[type=armor-stand,name=portal1] invisibility 1000 1 true

portal1のアーマースタンドに透明化を付与します。秒数は短すぎなければ何でも良いです。

反復、無条件、レッドストーンが必要
/execute @e[type=armor_stand,name=portal1] ~~~ testfor @e[r=2,tag=p,name=!portal1]

portal1のアーマースタンドに、[半径2m以内で"p"というタグが付いていて、名前がportal1じゃないエンティティ]を検知させます。

名前がportal1じゃないことを検知させないと、コマンドを止めるまで永遠にportal1portal2を行き来し続けます。

衝撃、無条件、レッドストーンが必要
/execute @e[type=armor_stand,name=portal1] ~~~ tp @p[tag=p] @e[type=armor_stand,name=portal2]

portal1のアーマースタンドに、"p"のタグが付いたportal1に1番近いプレイヤーを、portal2という名前の付いたアーマースタンドにテレポートさせます。

チェーン、条件付き、常時実行
/execute @e[type=armor_stand,name=portal2] ~~~ tag @p[tag=p] remove p

テレポート先(portal2)に付いたら、portal2に1番近いプレイヤーの"p"というタグを一旦外します。

そうしないと、コマンドを止めるまでportal1portal2を行き来し続けます(2回目)。

チェーン、条件付き、常時実行、遅延40
/execute @e[type=armor_stand,name=portal2] ~~~ tag @p[tag=!p] add p

portal2に1番近くて"p"というタグが付いていないプレイヤーに、"p"というタグをつけます。

ポイントは遅延をつけること。1遅延=0.05秒なので、30〜60くらいがちょうど良いと思います。


これで一連の流れは終了です!!と言いたいところですが、これはportal1の分なので、ここからportal2の分を作ります(冷や汗)。

ですが、ストラクチャーブロックでコピーして設置したあと、先程のコマンドたちの、空色の旗ピンクの旗に、portal1portal2に(逆も同様に)書き換えれば完成です!

ちなみにストラクチャーブロックを得るコマンドはこちらです↓

/give @p structure_block

作成お疲れ様でした^^*


使い方

※動作確認をする前に、必ず全員に"p"というタグを付けてください

まず、空色の旗ピンクの旗を1つずつ用意します。

そのうちのどちらかを、ホットバー長押しで(もしくはインベントリから)捨てると、旗が消えてパーティクルが出ます。

f:id:yogurr19:20201128112803p:plain

もう片方の旗を少し離して捨てると、先程と同様にパーティクルが出ます。
そこに向かって進むと...

f:id:yogurr19:20201128112906p:plain

無事にテレポート出来ました!!

結構離れたところに設置しても機能するので、とっても便利ですね。

上手く行かない時の対処法

これを作っていると、コマンドが多い分動作しなくなることも多々あります。

そんな時の対処法を紹介します。

❶パーティクルが出ない

  • IDが合っているかどうか
    IDはJava版統合版関わらず、最初にminecraft:が必要です。
    種類によっては emitterと書くもの、アンダーバーがいるものなどがあります。

  • 水中でしか機能しないものではないか
    泡系のパーティクルは水がないと機能しないものがあります。そういうものは陸上では機能しないので、パーティクル自体を変更してください。

  • 設定でパーティクルの表示をONにしているか
    そもそも、設定でパーティクルを見えるようにしていないとパーティクルは出ません。もう一度確認してみてください。

❷パーティクルが重い

  • 1度にたくさんのパーティクルを出すものではないか
    炎や煙系、村人、ポーションなどのパーティクルは、一度にたくさん出るので反復で実行すると重すぎて大変です。①のコマンドに遅延を加えることで上手く行きますが、面倒ならパーティクル自体を変えましょう。

❸アーマースタンドが永遠に召喚される

  • ④の旗の名前が合っているか
    旗の名前が間違っていると、その旗がキルされないので永遠にアーマースタンドが召喚されて、激重になります。
    旗の名前に§(セクション)で色を付けている場合も、コマンドに入力するときに、§ごとそのまま書いてください。

  • コマンドブロックの③の矢印が④の方に向いているか
    これはコマンドブロックを上に積むタイプの人にたまにあるのですが、矢印の向き通りにしか次のコマンドは実行されないので、今一度確認してみてください。

❹テレポート出来ない

  • 2種類のアーマースタンドが召喚されているか
    名前が同じアーマースタンドだと、テレポート先が無いのでtp出来ません。1度アーマースタンドの透明化を消してから、今召喚されているアーマースタンドの名前を確かめてください。

  • タグ"p"が付いているか
    検知の対象にタグ"p"が付いていることとあるので、タグが付いていないと検知されず、テレポート出来ません。
    その場にいる全員にタグを付けておくと良いです。

❺永遠にテレポートして抜け出せない

  • ⑥で"!"を忘れていないか
    意外と忘れがちなので注意してください。

  • ⑨の遅延を付けているか
    遅延がないとすぐにテレポートしてしまうので、遅延は必須です。逆に遅延が長すぎると、今度はテレポートに時間がかかり過ぎてしまうので、いい感じに調節してください。

※どうにもならない時は、下を向いて地面に向かって連打してアーマースタンドを壊すか、設定を開いてコマンドの実行許可をオフにして、チャット欄で /kill @e を打ってください。

❻遠くに行くと機能しなくなる

  • コマンドが常に稼働できるエリアに入っているか

遠方に行くとチャンクの読み込みの都合上、コマンドが機能しなくなることがあります。
コマンドのtickingareaというのでエリアを作ることが出来ますので、作っておきましょう。

/tickingarea add circle ~~~ 4 a
これで、今いるところから4チャンク内のコマンドブロックが常に稼働出来るようになります。
4チャンクが重かったり、常に稼働させたいコマンドが少ない場合は、1チャンクにすると少し軽くなります。


以上で紹介を終わります。

ここまでお読みいただきありがとうございました!

また次回の記事でお会いしましょう。

さらばっっヾ('ω'⊂ )))Σ≡

コピー用(お急ぎの方はこちら)

全員にタグpを付けること。
/execute @e[type=armor_stand,name=portal1] ~~~ particle minecraft:dragon_breath_fire ~~~ /testfor @e[name=空色の旗] /execute @e[type=item,name=空色の旗] ~~~ summon armor_stand portal1 ~~~ /kill @e[name=空色の旗] /effect @e[type=armor_stand,name=portal1] invisibility 1000 1 true /execute @e[type=armor_stand,name=portal1] ~~~ testfor @e[r=2,tag=p,name=!portal1] /execute @e[type=armor_stand,name=portal1] ~~~ tp @p[tag=p] @e[type=armor_stand,name=portal2] /execute @e[type=armor_stand,name=portal2] ~~~ tag @p[tag=p] remove p /execute @e[type=armor_stand,name=portal2] ~~~ tag @p[tag=!p] add p