内容をスキップ

右クリックで見ている方向にファイアボール爆弾を飛ばすバズーカの作り方 (マルチプレイ対応)【Minecraft】

UPDATE :
バズーカの作り方解説

バズーカを持ち、オフハンドにファイアチャージをセットして右クリック! 視点の方向へファイアボールを発射! そんな「コマンドで作れたらいいな」の当ブログ要望No.1の仕掛けがついに完成しました。「視点をryやrxで判定して飛ばすんでしょ?」いいえ、この装置はたった6つのコマンドを常時動かせば動作します。マルチプレイでも使えるので、PvPの新しい武器として是非お使いください。

動画をご用意しました。合わせてご覧ください

最近記事だけでなく動画の制作にも力を入れてます。今回は初めてコマンド解説の動画を作ってみました。バズーカがどのように動作するのかは、▲の動画でご確認下さい。

スクショだとこんな感じ

スクショとGIFだとこんな感じ。ちなみに爆発の威力は自由に変えられます。ブロックを破壊せずダメージだけ与えることも可能。こんなバズーカが使えるPvPって面白そうじゃないですか…?

残りの弾数はこちらです

ちなみにバズーカの右下の数字がちょうど弾数を表しています。弾切れすると銃自体が消える仕様となっております。

 

今回の装置は「Fragment」製作者の漆丸氏のアイデアで完成しました! 感謝!

方向を検知する手もあるが面倒

最初にコメントか何かで「視点の方向に飛ばせるファイアボールの作り方を解説して!」と依頼された時、最初に考えたのはセレクタの「rx/ry」引数を使った方法でした。前に「向いている視点の向きを判定する方法」と題して解説記事を書きましたよね。ああやって角度ごとに飛ばす向きを設定すれば… しっかしこれがまた面倒なこと。非常に無駄な装置を考えてしまったなと自分の非力さを痛感します…

 

漆丸氏のTwitter
漆丸氏のTwitter
https://twitter.com/gol559

そんな時救いの手を差し伸べて下さったのが漆丸氏でした。なんと雪球を使えばいいとのこと。何故そんな御名答を即座にアドバイスして頂けたのかといいますと…

RPG風アドベンチャー配布ワールド「Fragment」の配布ページ (非公式フォーラム)
Fragmentの配布ページ
http://forum.minecraftuser.jp/viewtopic.php?f=10&t=30340

そう、漆丸氏は本格的配布ワールドの制作者なのです。▲は戦闘に重点を置いたRPG風アドベンチャーマップ、その名も「Fragment」の配布ページです。遊びたい気持ちは山々なのですが多忙で遊べてないままです…

PV内で登場したアイテム

ニコニコ動画にアップされている「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という名前のフォルダーを作成します。さらにその中にminecrafttexturesitemsという順番でフォルダーを作成していきます。

snowball.pngを配置

itemsフォルダーの中に、snowball.pngという名前でバズーカのテクスチャを配置します。画像についてですが、背景が透明な画像を作れるソフトで作りましょう。

assetsフォルダーを圧縮

ワールドデータ内の一番上の階層に戻り、assetsフォルダーを選択してzipに圧縮します。

resources.zipという名前にリネーム

生成されたzipの名前をresources.zipという名前にしましょう。こうすることで、ワールド読み込み時に一緒にこのリソースパックを読み込むようになります。(1.8以上なら使えるテクニック)

 

YouTubeのチャンネル登録してね

YouTubeを活発に

今回初めてコマンド解説を動画化してみました。(動画では全然ちゃんと解説できてませんが) こんな風に動画の投稿をこれからもっと活発にする予定なのでご期待下さい。アンケートで「YouTubeを充実させてほしい」とのご意見があり、そろそろ本格的にチャンネルを始動させたいなと思っている次第です。

チャンネル登録

目指すは登録者1000人! お気軽にチャンネル登録よろしくお願いします。

 

ポスト
マイクラ思考編集部
YouTubeでマインクラフトの役立つ動画を投稿しています。クロスマルチプレイ対応のマイクラサーバー「くろまる」も運営中!

41件のコメント

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です