
バズーカを持ち、オフハンドにファイアチャージをセットして右クリック! 視点の方向へファイアボールを発射! そんな「コマンドで作れたらいいな」の当ブログ要望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人! お気軽にチャンネル登録よろしくお願いします。
PvP作成に役立ちますね!!
1.8.xまでのバージョンなら/scoreboard players remove @e[type=!Player] fireball 1 {shake:0b,Fire:-1s}などで釣り竿の浮きを検知して雪玉の代わりに使えたのですが1.9だと無理っぽい?ですね…残念
バズーカのテクスチャ 配布してほしいです
釣り竿を使うともっとスマートになったりしますね
釣り竿が本来の用途で使えなくなりますが。
アプリとかありませんか?
あったら欲しいです。
2つのタグを持った人を検知するとこ、@a[タグ1,スコア] ˜ ˜ ˜ exe @a[タグ2] ˜ ˜ ˜になってますがこの形なら後の@aセレクターの方を@pにするかc=1をつけるかなどしないと雪玉を持って投げた人とファイヤーボール持ってる人さえいれば発動してしまいますよ。
ご指摘ありがとうございます! 修正しました。
乗っかる感じになりますが@pだけだと「条件を満たしている最も近いプレイヤー」になるのでr=0を付け足した方が確実ですよ
確かに不確実ですね、付け足しました
1.8で、立体起動装置をコマンドで作ってください
バズーカのテクスチャ配布してほしいです。
探してもバズーカのテクスチャが無いので。
テキトーに「バズーカ」とか画像検索して出たやつを正方形にして透過させればいいんじゃない?
バニラのテクスチャとあわないので、
テクスチャを配布してほしいです。
この記事とは関係無いのですが箒に乗って空が飛べるようなコマンドを作れたりしませんか?
Windows 7での拡張子表示
あれ、画像が出ないような。。。
1.10のSSで使いたいので重力無効化も使えると思います
この回路を応用して、矢を打った瞬間に何かが召喚されるようなコマンドを作ることは可能ですか?
スケルトンの矢にファイアーチャージをつけることはできますか?
commands.scoreboard.players.tag.tagErrorとかになってできないんですが…
[GIMP]とかのツールを使って自分でテクスチャ作ってそれをこの記事の方法で適用すればいいんじゃないですか?
サバイバルで射ってもバズーカを消費しない様にするには、どこを変更すればいいですか?
付け足しで質問です。サバイバルで射って、経験値を消費できますか?次ぎに、爆発ボールだけじゃなく、トルネードとかほかの効果を適用する方法を教えてください。色々聞いてしまって、すみません。
データタグが「マイクラの名前」と一致しませんと出るのですがどうすればいいですか
解決しました
内容まで全く同じコマンドブロックでも置く位置によって”/execute”の実行結果が「実行できませんでした」となってしまい、チェーンコマンドブロックをあなたの画像のように並べたいのですが、並べると一部のコマンドブロックが動作しなくなってしまいます。これはこの装置の仕様ですか?
アイテムIDを記入する場所にminecraft:がついていますか?
自分で考えてみましょう。ヒントはバズーカを撃ったプレイヤーを対象にバズーカを与えるです。
まずはタグ、スコアを消す前にコマブロを追加しましょう
/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:[右クリックで使用]}}
でいけます
/replaceitem entity @a[score_useBall_min=1,tag=!hasSnowball] slot.weapon.mainhand minecraft:snowball 1 0 {display:{Name:”魔法球”,Lore:[右クリックで使用]}}
を常時実行すれば、サバイバルでも使った後にメインハンドに雪玉が補充されます。giveでもいいですがどこのスロットに入るのか分かりませんので…
ヤバい剣(耐久値: -32768 / 1561)のコマンド マイクラ、バニラはやばいですね。
/give @p diamond_sword 1 34329
コマンドの最後のカッコの法則を教えて欲しいです・・・
それまでに出てきたカッコを閉じてるだけですので、一つ一つカッコを意識すれば悩むことはありません。
しかしカッコが多すぎて嫌になるときも多々あります。そんなあなたに「CmdLiner」。
http://exr-nap.sakura.ne.jp/www.napoan.com/45588594/
▲書いているコマンドをこちらのツールで一旦整形してみれば、カッコが足りているかなど一目瞭然です。
「箒」というアイテムを持ってる間のみ、浮遊効果をプレイヤーにつける、ということ
でしょうか。
それなら、箒を持っている間だけタグをプレイヤーに付与し、持っていないとき
(持ってたけど外した時)にタグを消す、と言うコマンドを作っておき、
タグが付与されているプレイヤーに常時浮遊効果を付与する、というコマンドを、
リピートで常時実行すればできると思います。
説明下手くそな上に実際のコマンドはありませんが、試してみて下さい。
雪球を投げてもファイヤーボールが出現するだけで発射しません・・・
どうしたら直りますか?
たぶん{}とか[]が足りないと思う。
自分自身のPCのスペックやコマンドの状況等を詳しく書かないと答えようがありませんよ
質問です
この装置を2つ以上稼働させるにはどうすればいいでしょうか。
あと、なぜかサバイバルで雪球を投げてもなにも起きませんそうすればいいでしょうか。
※「1」「2」「3」「5」「4」「サバイバルでの雪玉補給」「6」の順でコマンドブロックを置いています
※Minecraftのバージョンは1.11.2です。
マインクラフトpeで雪玉を投げるとファイヤーチャージが飛んでいくコマンドがうまくいきませんので教えてください。パワーのちょうせいは入りません。
質問なのですが、飛ばすものをファイアーチャージではなく矢にしたいと考えています。それで、「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}
にしてみたところ、雪玉を投げた時、矢は出るんですが飛ばずにそのまま地面に刺さってしまうのです。どうにかして、矢を飛ばせないでしょうか?