NAPOAN.COM by マイクラ思考
by
/ 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人! お気軽にチャンネル登録よろしくお願いします。

 

Tweet

コメント

記事の内容が最新のものと異なる場合があります。ご了承ください。

“右クリックで見ている方向にファイアボール爆弾を飛ばすバズーカの作り方 (マルチプレイ対応)” への41件のフィードバック

  1. Minecraft_tiebukuro より:

    PvP作成に役立ちますね!!

  2. リタリン より:

    1.8.xまでのバージョンなら/scoreboard players remove @e[type=!Player] fireball 1 {shake:0b,Fire:-1s}などで釣り竿の浮きを検知して雪玉の代わりに使えたのですが1.9だと無理っぽい?ですね…残念

  3. ryoq より:

    バズーカのテクスチャ 配布してほしいです

  4. 豚さんを守る会 より:

    釣り竿を使うともっとスマートになったりしますね

  5. 豚さんを守る会 より:

    釣り竿が本来の用途で使えなくなりますが。

  6. すうじよんよん より:

    アプリとかありませんか?
    あったら欲しいです。

  7. とおりすがるやつ より:

    2つのタグを持った人を検知するとこ、@a[タグ1,スコア] ˜ ˜ ˜ exe @a[タグ2] ˜ ˜ ˜になってますがこの形なら後の@aセレクターの方を@pにするかc=1をつけるかなどしないと雪玉を持って投げた人とファイヤーボール持ってる人さえいれば発動してしまいますよ。

  8. 匿名 より:

    ご指摘ありがとうございます! 修正しました。

  9. ookiikuma より:

    乗っかる感じになりますが@pだけだと「条件を満たしている最も近いプレイヤー」になるのでr=0を付け足した方が確実ですよ

  10. 匿名 より:

    確かに不確実ですね、付け足しました

  11. koogawata より:

    1.8で、立体起動装置をコマンドで作ってください

  12. ryoq より:

    バズーカのテクスチャ配布してほしいです。
    探してもバズーカのテクスチャが無いので。

  13. game6の人 より:

    テキトーに「バズーカ」とか画像検索して出たやつを正方形にして透過させればいいんじゃない?

  14. ryoq より:

    バニラのテクスチャとあわないので、
    テクスチャを配布してほしいです。

  15. この記事とは関係無いのですが箒に乗って空が飛べるようなコマンドを作れたりしませんか?

  16. Windows 7 より:

    Windows 7での拡張子表示

  17. Windows 7 より:

    あれ、画像が出ないような。。。

  18. 1.10のSSで使いたいので重力無効化も使えると思います

  19. WAAA より:

    この回路を応用して、矢を打った瞬間に何かが召喚されるようなコマンドを作ることは可能ですか?

  20. あきすて より:

    スケルトンの矢にファイアーチャージをつけることはできますか?

  21. 教えてほしい より:

    commands.scoreboard.players.tag.tagErrorとかになってできないんですが…

  22. より:

    [GIMP]とかのツールを使って自分でテクスチャ作ってそれをこの記事の方法で適用すればいいんじゃないですか?

  23. より:

    サバイバルで射ってもバズーカを消費しない様にするには、どこを変更すればいいですか?

  24. より:

    付け足しで質問です。サバイバルで射って、経験値を消費できますか?次ぎに、爆発ボールだけじゃなく、トルネードとかほかの効果を適用する方法を教えてください。色々聞いてしまって、すみません。

  25. なめこ より:

    データタグが「マイクラの名前」と一致しませんと出るのですがどうすればいいですか

  26. なめこ より:

    解決しました

  27. Unknown_User より:

    内容まで全く同じコマンドブロックでも置く位置によって”/execute”の実行結果が「実行できませんでした」となってしまい、チェーンコマンドブロックをあなたの画像のように並べたいのですが、並べると一部のコマンドブロックが動作しなくなってしまいます。これはこの装置の仕様ですか?

  28. かずまっちz@配布ワールド進歩1% より:

    アイテムIDを記入する場所にminecraft:がついていますか?

  29. かずまっちz@配布ワールド進歩1% より:

    自分で考えてみましょう。ヒントはバズーカを撃ったプレイヤーを対象にバズーカを与えるです。
    まずはタグ、スコアを消す前にコマブロを追加しましょう

  30. ゆっくりキセイショクブツ より:

    /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. 匿名 より:

    /replaceitem entity @a[score_useBall_min=1,tag=!hasSnowball] slot.weapon.mainhand minecraft:snowball 1 0 {display:{Name:”魔法球”,Lore:[右クリックで使用]}}
    を常時実行すれば、サバイバルでも使った後にメインハンドに雪玉が補充されます。giveでもいいですがどこのスロットに入るのか分かりませんので…

  32. でんでん (Minecraft ID:denden0816) より:

    ヤバい剣(耐久値: -32768 / 1561)のコマンド マイクラ、バニラはやばいですね。
    /give @p diamond_sword 1 34329

  33. linkura より:

    コマンドの最後のカッコの法則を教えて欲しいです・・・

  34. 匿名 より:

    それまでに出てきたカッコを閉じてるだけですので、一つ一つカッコを意識すれば悩むことはありません。
    しかしカッコが多すぎて嫌になるときも多々あります。そんなあなたに「CmdLiner」。
    http://exr-nap.sakura.ne.jp/www.napoan.com/45588594/
    ▲書いているコマンドをこちらのツールで一旦整形してみれば、カッコが足りているかなど一目瞭然です。

  35. Carrot1101 より:

    「箒」というアイテムを持ってる間のみ、浮遊効果をプレイヤーにつける、ということ
    でしょうか。
    それなら、箒を持っている間だけタグをプレイヤーに付与し、持っていないとき
    (持ってたけど外した時)にタグを消す、と言うコマンドを作っておき、
    タグが付与されているプレイヤーに常時浮遊効果を付与する、というコマンドを、
    リピートで常時実行すればできると思います。
    説明下手くそな上に実際のコマンドはありませんが、試してみて下さい。

  36. hiro1019 より:

    雪球を投げてもファイヤーボールが出現するだけで発射しません・・・
    どうしたら直りますか?

  37. E7kei_HAYABUSA より:

    たぶん{}とか[]が足りないと思う。

  38. かずまっちz@配布ワールド進歩1% より:

    自分自身のPCのスペックやコマンドの状況等を詳しく書かないと答えようがありませんよ

  39. sasa より:

    質問です
    この装置を2つ以上稼働させるにはどうすればいいでしょうか。
    あと、なぜかサバイバルで雪球を投げてもなにも起きませんそうすればいいでしょうか。
    ※「1」「2」「3」「5」「4」「サバイバルでの雪玉補給」「6」の順でコマンドブロックを置いています
    ※Minecraftのバージョンは1.11.2です。

  40. rui256 より:

    マインクラフトpeで雪玉を投げるとファイヤーチャージが飛んでいくコマンドがうまくいきませんので教えてください。パワーのちょうせいは入りません。

  41. No name より:

    質問なのですが、飛ばすものをファイアーチャージではなく矢にしたいと考えています。それで、「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}
    にしてみたところ、雪玉を投げた時、矢は出るんですが飛ばずにそのまま地面に刺さってしまうのです。どうにかして、矢を飛ばせないでしょうか?

コメントを残す

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