右クリックで見ている方向にファイアボール爆弾を飛ばすバズーカの作り方 (マルチプレイ対応)【Minecraft】
バズーカを持ち、オフハンドにファイアチャージをセットして右クリック! 視点の方向へファイアボールを発射! そんな「コマンドで作れたらいいな」の当ブログ要望No.1の仕掛けがついに完成しました。「視点をryやrxで判定して飛ばすんでしょ?」いいえ、この装置はたった6つのコマンドを常時動かせば動作します。マルチプレイでも使えるので、PvPの新しい武器として是非お使いください。
目次
動画をご用意しました。合わせてご覧ください
最近記事だけでなく動画の制作にも力を入れてます。今回は初めてコマンド解説の動画を作ってみました。バズーカがどのように動作するのかは、▲の動画でご確認下さい。
スクショとGIFだとこんな感じ。ちなみに爆発の威力は自由に変えられます。ブロックを破壊せずダメージだけ与えることも可能。こんなバズーカが使えるPvPって面白そうじゃないですか…?
ちなみにバズーカの右下の数字がちょうど弾数を表しています。弾切れすると銃自体が消える仕様となっております。
今回の装置は「Fragment」製作者の漆丸氏のアイデアで完成しました! 感謝!
最初にコメントか何かで「視点の方向に飛ばせるファイアボールの作り方を解説して!」と依頼された時、最初に考えたのはセレクタの「rx/ry」引数を使った方法でした。前に「向いている視点の向きを判定する方法」と題して解説記事を書きましたよね。ああやって角度ごとに飛ばす向きを設定すれば… しっかしこれがまた面倒なこと。非常に無駄な装置を考えてしまったなと自分の非力さを痛感します…
- 漆丸氏のTwitter
https://twitter.com/gol559
そんな時救いの手を差し伸べて下さったのが漆丸氏でした。なんと雪球を使えばいいとのこと。何故そんな御名答を即座にアドバイスして頂けたのかといいますと…
- RPG風アドベンチャー配布ワールド「Fragment」の配布ページ (非公式フォーラム)
http://forum.minecraftuser.jp/viewtopic.php?f=10&t=30340
そう、漆丸氏は本格的配布ワールドの制作者なのです。▲は戦闘に重点を置いたRPG風アドベンチャーマップ
、その名も「Fragment」の配布ページです。遊びたい気持ちは山々なのですが多忙で遊べてないままです…
ニコニコ動画にアップされている「Fragment」のPVの1:37あたりに登場するのが、今回作り方を解説するアイテムです。雪球(解説する装置ではこれをバズーカのテクスチャに差し替えてそれっぽくします)を持ってオフハンドにファイアボールをセットすると火球モードになり、爆発する球を好きな方向にどんどん飛ばせる… あなたのワールドでも作ってみませんか。
コマンドの解説
まずはスコアボードとバズーカとファイアチャージを用意しよう
まずは動作に必要なスコアボードを作成します。
- 動作に必要な、雪球の使用回数をカウントするスコアボードを作成するコマンド
- /scoreboard objectives add useBall stat.useItem.minecraft.snowball
stat.useItem.minecraft.snowballという種類を指定すれば、雪球を投げた回数が自動で代入されます。この統計カウント機能の詳しい使い方や他の項目一覧はこちらの記事にまとめてありますので是非お読み下さい。
次に、「バズーカ(正体は雪球)」と「飛ばせる火の球(正体はファイアチャージ)」を入手しましょう。
- 「バズーカ」と名付けた雪球をコマンド
- /give @p minecraft:snowball 16 0 {display:{Name:”バズーカ”,Lore:[“右クリックで使用”]}}
- 「飛ばせる火の球」と名付けたファイアチャージを入手するコマンド
- /give @p minecraft:fire_charge 1 0 {display:{Name:”飛ばせる火の球”,Lore:[“オフハンドにセットせよ”]}}
この時点ではまだただの雪球です。テクスチャの差し替えは最後にするのでご安心下さい。
メインハンドとオフハンドのアイテムを検知してファイアボールを飛ばすコマンド
6つのコマンドブロックを同じ向きに並べて、以下のコマンドを入力して下さい。
以下のコマンドは漆丸氏のアドバイスを元に初心者の私が書いたはしたないコマンドですので、見苦しい部分等あるかも知れません。コメントやTwitterで「こうすればいいよ」等助言を下されば嬉しいです。
※マウスオーバーすると説明が出る箇所を用意しています。 | |
---|---|
「1」 | Repeat(リピート)Unconditional(無条件)Always Active(常時実行) |
/scoreboard players tag @a add hasSnowball {SelectedItem:{id:minecraft:snowball,tag:{display:{Name:”バズーカ”,Lore:[“右クリックで使用”]}}}} 「バズーカ」をメインハンドに持っているプレイヤーに、hasSnowballタグを付与します。 |
|
「2」 | Chain(チェーン)Unconditional(無条件)Always Active(常時実行) |
/scoreboard players tag @a add offhandFB {Inventory:[{Slot:-106b,id:”minecraft:fire_charge”,tag:{display:{Name:”飛ばせる火の球”,Lore:[“オフハンドにセットせよ”]}}}]} オフハンドに「飛ばせる火の球」を持っているプレイヤーに、offhandFBタグを付与します。 |
|
「3」 | Chain(チェーン)Unconditional(無条件)Always Active(常時実行) |
/execute @a[tag=hasSnowball,score_useBall_min=1] ~ ~ ~ execute @p[tag=offhandFB,r=0] ~ ~ ~ execute @e[type=Snowball,c=1] ~ ~ ~ summon Fireball ~ ~ ~ {direction:[0.0,0.0,0.0],power:[0.,0.0,0.0],ExplosionPower:1} 2つのタグを持っていて、さらにuseBall(雪球の使用回数)が1以上のプレイヤーの、最寄りの雪球エンティティの位置にファイアボールを召喚します。 ExplosionPower:1の数値が爆発力になります。少ない数値でもかなり大きな爆発が起こるので注意。 |
|
「4」 | Chain(チェーン)Unconditional(無条件)Always Active(常時実行) |
/scoreboard players set @a useBall 0 このままだとバズーカを持って右クリックする度に雪球の使用回数、useBallのスコアが延々と増えるので常時0にセットします。こうすることで、useBallは右クリックした瞬間だけ1になります。 |
|
「5」 | Chain(チェーン)Unconditional(無条件)Always Active(常時実行) |
/scoreboard players tag @a remove hasSnowball このままでは一度バズーカを持つとずっとタグを持ったままになるので、常時強制的にタグを消します。 |
|
「6」 | Chain(チェーン)Unconditional(無条件)Always Active(常時実行) |
/scoreboard players tag @a remove offhandFB 「5」と同様の理由でoffhandFBタグを削除。 |
「3」のコマンドについての図解がこちら。メインハンドにバズーカ、オフハンドに火の球を持っていれば2つのタグが付与されます。その状態で右クリックしてバズーカ(雪球)を使えばuseBallスコアが増えるので、その瞬間に一番近くの雪球(つまり今発射した雪球)の位置にファイアボールを召喚します。すると雪球の力でファイアボールが飛んで行くわけです。
雪球のテクスチャを置き換える手順
それでは最後に、雪球のテクスチャをバズーカっぽく置き換える手順を解説します。
当ブログではファイルの拡張子が表示されている前提で解説を進めていくので、もし表示させてないのであればまず先に表示させておいて下さい。
まずワールドデータのフォルダーを開き、assetsという名前のフォルダーを作成します。さらにその中にminecraft→textures→itemsという順番でフォルダーを作成していきます。
itemsフォルダーの中に、snowball.pngという名前でバズーカのテクスチャを配置します。画像についてですが、背景が透明な画像を作れるソフトで作りましょう。
ワールドデータ内の一番上の階層に戻り、assetsフォルダーを選択してzipに圧縮します。
生成されたzipの名前をresources.zipという名前にしましょう。こうすることで、ワールド読み込み時に一緒にこのリソースパックを読み込むようになります。(1.8以上なら使えるテクニック)
YouTubeのチャンネル登録してね
今回初めてコマンド解説を動画化してみました。(動画では全然ちゃんと解説できてませんが) こんな風に動画の投稿をこれからもっと活発にする予定なのでご期待下さい。アンケートで「YouTubeを充実させてほしい」とのご意見があり、そろそろ本格的にチャンネルを始動させたいなと思っている次第です。
目指すは登録者1000人! お気軽にチャンネル登録よろしくお願いします。
41件のコメント
-
Minecraft_tiebukuro2016年5月15日PvP作成に役立ちますね!!
-
リタリン2016年5月15日1.8.xまでのバージョンなら/scoreboard players remove @e[type=!Player] fireball 1 {shake:0b,Fire:-1s}などで釣り竿の浮きを検知して雪玉の代わりに使えたのですが1.9だと無理っぽい?ですね…残念
-
ryoq2016年5月15日バズーカのテクスチャ 配布してほしいです
-
豚さんを守る会2016年5月16日釣り竿を使うともっとスマートになったりしますね
-
豚さんを守る会2016年5月16日釣り竿が本来の用途で使えなくなりますが。
-
すうじよんよん2016年5月16日アプリとかありませんか? あったら欲しいです。
-
とおりすがるやつ2016年5月16日2つのタグを持った人を検知するとこ、@a[タグ1,スコア] ˜ ˜ ˜ exe @a[タグ2] ˜ ˜ ˜になってますがこの形なら後の@aセレクターの方を@pにするかc=1をつけるかなどしないと雪玉を持って投げた人とファイヤーボール持ってる人さえいれば発動してしまいますよ。
-
匿名2016年5月16日ご指摘ありがとうございます! 修正しました。
-
ookiikuma2016年5月16日乗っかる感じになりますが@pだけだと「条件を満たしている最も近いプレイヤー」になるのでr=0を付け足した方が確実ですよ
-
匿名2016年5月16日確かに不確実ですね、付け足しました
-
koogawata2016年5月16日1.8で、立体起動装置をコマンドで作ってください
-
ryoq2016年5月17日バズーカのテクスチャ配布してほしいです。 探してもバズーカのテクスチャが無いので。
-
game6の人2016年5月17日テキトーに「バズーカ」とか画像検索して出たやつを正方形にして透過させればいいんじゃない?
-
ryoq2016年5月18日バニラのテクスチャとあわないので、 テクスチャを配布してほしいです。
-
でっていう205@ゆっくり実況者(無名)2016年5月18日この記事とは関係無いのですが箒に乗って空が飛べるようなコマンドを作れたりしませんか?
-
Windows 72016年5月18日Windows 7での拡張子表示
-
Windows 72016年5月18日あれ、画像が出ないような。。。
-
でっていう205@ゆっくり実況者(無名)2016年5月19日1.10のSSで使いたいので重力無効化も使えると思います
-
WAAA2016年5月24日この回路を応用して、矢を打った瞬間に何かが召喚されるようなコマンドを作ることは可能ですか?
-
あきすて2016年5月30日スケルトンの矢にファイアーチャージをつけることはできますか?
-
教えてほしい2016年5月31日commands.scoreboard.players.tag.tagErrorとかになってできないんですが...
-
蠍2016年6月4日[GIMP]とかのツールを使って自分でテクスチャ作ってそれをこの記事の方法で適用すればいいんじゃないですか?
-
蠍2016年6月5日サバイバルで射ってもバズーカを消費しない様にするには、どこを変更すればいいですか?
-
蠍2016年6月5日付け足しで質問です。サバイバルで射って、経験値を消費できますか?次ぎに、爆発ボールだけじゃなく、トルネードとかほかの効果を適用する方法を教えてください。色々聞いてしまって、すみません。
-
なめこ2016年7月27日データタグが「マイクラの名前」と一致しませんと出るのですがどうすればいいですか
-
なめこ2016年7月28日解決しました
-
Unknown_User2016年7月29日内容まで全く同じコマンドブロックでも置く位置によって"/execute"の実行結果が「実行できませんでした」となってしまい、チェーンコマンドブロックをあなたの画像のように並べたいのですが、並べると一部のコマンドブロックが動作しなくなってしまいます。これはこの装置の仕様ですか?
-
かずまっちz@配布ワールド進歩1%2016年8月26日アイテムIDを記入する場所にminecraft:がついていますか?
-
かずまっちz@配布ワールド進歩1%2016年8月26日自分で考えてみましょう。ヒントはバズーカを撃ったプレイヤーを対象にバズーカを与えるです。 まずはタグ、スコアを消す前にコマブロを追加しましょう
-
ゆっくりキセイショクブツ2016年9月21日/execute @a[tag=hasSnowball,score_useBall_min=1] ~ ~ ~ give @p[tag=offhandFB,r=0] snowball 1 0 {display:{Name:"魔法球",Lore:[右クリックで使用]}} を /execute @a[tag=hasSnowball,score_useBall_min=1] ~ ~ ~ execute @p[tag=offhandFB,r=0] ~ ~ ~ execute @e[type=Snowball,c=1] ~ ~ ~ summon Fireball ~ ~ ~ {direction:[0.0,0.0,0.0],power:[0.,0.0,0.0],ExplosionPower:1} の後に入れればいいはずです オフハンドに持っていても持っていなくても戻ってくるようにするのであれば /give @a[tag=hasSnowball,score_useBall_min=1] snowball 1 0 {display:{Name:"魔法球",Lore:[右クリックで使用]}} でいけます
-
匿名2016年9月21日/replaceitem entity @a[score_useBall_min=1,tag=!hasSnowball] slot.weapon.mainhand minecraft:snowball 1 0 {display:{Name:"魔法球",Lore:[右クリックで使用]}} を常時実行すれば、サバイバルでも使った後にメインハンドに雪玉が補充されます。giveでもいいですがどこのスロットに入るのか分かりませんので...
-
でんでん (Minecraft ID:denden0816)2016年11月25日ヤバい剣(耐久値: -32768 / 1561)のコマンド マイクラ、バニラはやばいですね。 /give @p diamond_sword 1 34329
-
linkura2016年12月11日コマンドの最後のカッコの法則を教えて欲しいです・・・
-
匿名2016年12月11日それまでに出てきたカッコを閉じてるだけですので、一つ一つカッコを意識すれば悩むことはありません。 しかしカッコが多すぎて嫌になるときも多々あります。そんなあなたに「CmdLiner」。 http://exr-nap.sakura.ne.jp/www.mcthnk.com/45588594/ ▲書いているコマンドをこちらのツールで一旦整形してみれば、カッコが足りているかなど一目瞭然です。
-
Carrot11012017年1月19日「箒」というアイテムを持ってる間のみ、浮遊効果をプレイヤーにつける、ということ でしょうか。 それなら、箒を持っている間だけタグをプレイヤーに付与し、持っていないとき (持ってたけど外した時)にタグを消す、と言うコマンドを作っておき、 タグが付与されているプレイヤーに常時浮遊効果を付与する、というコマンドを、 リピートで常時実行すればできると思います。 説明下手くそな上に実際のコマンドはありませんが、試してみて下さい。
-
hiro10192017年3月9日雪球を投げてもファイヤーボールが出現するだけで発射しません・・・ どうしたら直りますか?
-
E7kei_HAYABUSA2017年4月5日たぶん{}とか[]が足りないと思う。
-
かずまっちz@配布ワールド進歩1%2017年6月3日自分自身のPCのスペックやコマンドの状況等を詳しく書かないと答えようがありませんよ
-
sasa2017年6月27日質問です この装置を2つ以上稼働させるにはどうすればいいでしょうか。 あと、なぜかサバイバルで雪球を投げてもなにも起きませんそうすればいいでしょうか。 ※「1」「2」「3」「5」「4」「サバイバルでの雪玉補給」「6」の順でコマンドブロックを置いています ※Minecraftのバージョンは1.11.2です。
-
rui2562017年7月24日マインクラフトpeで雪玉を投げるとファイヤーチャージが飛んでいくコマンドがうまくいきませんので教えてください。パワーのちょうせいは入りません。
-
No name2017年8月29日質問なのですが、飛ばすものをファイアーチャージではなく矢にしたいと考えています。それで、「3」のコマンドを /execute @a[tag=hasSnowball,score_useBall_min=1] ~ ~ ~ execute @p[tag=offhandFB,r=0] ~ ~ ~ execute @e[type=Snowball,c=1] ~ ~ ~ summon Arrow ~ ~ ~ {direction:[0.0,0.0,0.0],power:[0.,0.0,0.0],ExplosionPower:0} にしてみたところ、雪玉を投げた時、矢は出るんですが飛ばずにそのまま地面に刺さってしまうのです。どうにかして、矢を飛ばせないでしょうか?