人やMobを通り抜けるには。エンティティの当たり判定を設定するコマンドの解説【Minecraft】
バージョン1.9の大きな変更の一つに、「プレイヤーやMobが当たった時、お互いを押すようになった」点があります。このままでは、既存のコマンドを使った仕掛けや、マルチプレイなどで予期せぬ事故が起こる可能性もあります。でも安心して下さい。この当たり判定は、とあるコマンドの機能を使えば無効化できます。今回は、バージョン1.9でエンティティ同士が押すか押さないかを設定する方法を解説します。
[2019年9月2日] 1.13以上のバージョンに対応させました
- バージョン1.9の、コマンドや配布ワールド作成に関する新機能/変更点まとめ
http://doanryo.com/wp/pcversion19-command-guide/
▲バージョン1.9はコマンドに関する新要素/仕様変更が盛り沢山。
目次
1.9で、エンティティ同士が接触した際跳ね返されるようになりました
Minecraft1.9の当たり判定に関する仕様変更は、こちらの一枚を見れば一目瞭然ですね。つまりは貫通しなくなったんです。例えばマルチプレイで他のプレイヤーを通り抜けることはできませんし、反対に村人など他のエンティティに押されることもあるのです。
些細な変更に思えるかもしれませんが、クリエイターとしてではなくプレイヤーとして遊んでみると違いがよく分かります。ゾンビをするっと通り抜けられないもどかしさ。ダンジョンやアスレチック系の配布ワールドの難易度が大きく変わってしまいそうで心配です…
でも安心して下さい。バージョン1.9でもエンティティを通り抜ける方法が用意されているんです。コマンドをちょっと打つだけでこの通り。プレイヤーも、村人も、ゾンビも、もう押されることも押してしまうこともありません。
チームごとに接触時の挙動を設定して、貫通/非貫通を切り替える方法
さて、これからMobやプレイヤーの接触時の挙動(貫通するか否か)を設定するわけですが、ただコマンドを羅列しただけではつまらないですのでざっと作業の流れを説明します。
エンティティの当たり判定を設定する、となるとNBTタグやらが出てきそうですが、今回は出てきません。summonコマンドもentitydataコマンドも使いません。使うのはscoreboardコマンドのチーム機能だけです。先に”チーム”を用意して、そのチームのオプションを変更することで当たり判定を設定するんです。
1.9の新しいチームルール「collisionRule」の設定内容
まずは”チーム”を作成します。PvPなどで既にチームを作成している場合はそのままで大丈夫です。
- チームを新規作成するscoreboardコマンド
- /team add チーム名 (表示名)
▲「チーム名」は半角英数字を使って下さい。
そのワールド/サーバーで特別にチーム分けをしていない場合は「当たり判定を無効化するためのチーム」なので、チーム名は「noCollision」「noPush」などが分かりやすいですね。他と被ってもいけませんし。
さて、いよいよ作った(作ってある)チームに当たり判定の設定をしますよ!
- チームに所属するエンティティの当たり判定(接触時の挙動)を設定するコマンド
- /team modify チーム名 collisionRule 設定内容
collisionRuleの「設置内容」一覧 | |
---|---|
always | デフォルトの値です。チームに所属しているプレイヤー、Mob等の当たり判定を持つエンティティはお互いに押し合います。 |
never | チームに所属している、本来押し合うものも含め全てのエンティティは貫通できるようになります。つまり1.8までの通り抜ける仕様になります。 |
pushOwnTeam | 同じチームに所属しているエンティティだけを押せます。 |
pushOtherTeams | 他のチームのエンティティだけを押せます。 |
結論から言いますと、チームを作って/scoreboard teams option チーム名 collisionRule neverで通り抜けられるようになるんです。これがバージョン1.9の新しいチームオプション「collisionRule」。
- チームにプレイヤーやMob等のエンティティを参加させるコマンド
- /team join チーム名 ターゲット(@p等のセレクタやプレイヤー名)
例: 近くのゾンビ1体を「noCollision」チームに参加させる
/team join noCollision @e[type=Zombie,c=1]
接触時の挙動を設定したチームに、プレイヤーやMobを参加させるわけですが、一つのエンティティは複数のチームに同時に所属することはできませんのでご注意下さい。既にPvP用などのチームがある場合、既存のチームに対して当たり判定の設定をすればOKです。
貫通させたいエンティティを両方チームに参加させる必要はありません。片方のエンティティのチームが貫通する設定になっていればお互い通り抜けられます。
エンティティを最初から当たり判定の無い(貫通する)状態で召喚するには
当たり判定の設定はチームごとに設定するので、例えばダンジョン系の配布ワールドで「ゾンビが召喚される」などの仕掛けでいちいちMobをチームに参加させるのは大変面倒ですね。そこで、最初から当たり判定の無いチームに参加した状態で召喚しましょう。
- 最初から当たり判定の無いチームに所属した状態でエンティティを召喚するコマンド
- まず、チームの作成と跳ね返し無効化:
/team add 当たり判定無効化用のチーム名 (表示名)
/team modify チーム名 collisionRule never次に、エンティティ召喚時にチームを指定!
/summon エンティティID 座標x y z {Team:”チーム名”}
先に当たり判定を無効化するエンティティのためのチームを作っておいて、NBTタグ「Team」を使って、エンティティの所属チームを指定します。実にシンプル。
ということで今回のコマンド解説はここまで。最後までお読み頂きありがとうございました。そういえば「最近書いた記事」コーナーはやめました。代わりに左(メニュー)の関連記事をチェックして頂ければ幸いです。
16件のコメント
-
名無しのクラフター2016年1月21日これでいつかの村人式右クリックアイテム1.9でも使えるように・・・! さんありがとうございます!
-
Moon Shift (ムーンシフト)2016年1月22日おれは思った あのクリックアイテム1.9でやるとどうなるのか
-
Chespin_20152016年1月22日おそらくゲッ☆タンするんじゃないかな?
-
2001 Y2016年1月23日毎回毎回関係ないことばかりコメントしてしまっていますが、少し字が小さくないですか? もう少し大きくてもいい気がします。 あくまで、私的感想ですので、お気になさらず。
-
匿名2016年1月23日どんな端末で読まれているのか教えて頂けないでしょうか。確かに大きなスマホやタブレットだと小さいですね...
-
匿名2016年1月23日横400px以下の端末で文字を小さくするようにしていたのですが、やめました。タブレットと同じ基本13pxの大きさで表示されます。ご指摘ありがとうございました。
-
Moon Shift (ムーンシフト)2016年1月23日ww
-
たいやき2016年1月24日おもしろいwww(画像が)
-
NIKOWARA2016年1月24日そんなコマンドあったんだ! 安心(^^)♪
-
2001 Y2016年1月26日いえいえ、返信遅れてしまい申し訳ありませんでした。 ちなみに、思ったのは、iMacとiPadminiでの表示です。
-
ookiikuma2016年2月11日collisionRuleの「設置内容」一覧の所ですが pushOtherTeamsとpushOwnTeamsが逆だと思います
-
匿名2016年2月12日http://minecraft.gamepedia.com/Scoreboard#Command_reference ▲Wikiの解説を再確認しましたが、 「When set to "pushOwnTeam", players will only push other players on their team and mobs. 」 ということでpushOwnTeamは「それぞれのチームの他のプレイヤーを押せる」 「When set to "pushOtherTeams", players will only push players on opposing teams. 」 pushOtherTeamsは「対立するチームのプレイヤーを押せる」 とあります。記事内の説明は合っているはずなのですが...
-
ookiikuma2016年2月12日16w05bと16w06aで試してみましたがpushOwnTeamの時は他のチームのプレイヤーのみ押せて, pushOtherTeamの時は同じチームのプレイヤーのみ押せました。 バグなんでしょうかねえ
-
でんでん2016年11月7日1.9~の場合 「/scoreboard teams join チーム名 @e」 をリピートコマンドブロックに入力すればエンティティを全てチームに入れられますよ。
-
匿名2016年11月7日リピートじゃなくても、一回実行すれば全てのエンティティがチームに入りますよ。
-
はげ2017年2月28日チームのプレイヤーからの攻撃をうけなくするにはどうしたらいいですか?