簡単!自由自在に投擲物を作り出す![JE v.1.20.1]

みなさんこんにちは。Elseです。
今回は、マインクラフトでとても簡単に、自分オリジナルの投擲物を作ることができるワザを書いていきます。
※今回扱う投擲物は、一直線に飛んでいくため、放物線を描きません。
もし目的が合わないようでしたら、ブラウザバックをお勧めいたします。
投擲物とは?
一応、投擲物について説明します。
投擲物(とうてきぶつ)とは、雪玉やエンダーパールのような、投げて使うもののことを指しています。
また、この回では矢やトライデントも投擲物として扱っているので、まあ発射できるものだと思っておいてください。
コマンドの紹介
では早速、コマンドの紹介をしていきたいと思います。
まず最初に、発射されるエンティティを呼び出します。
/summon minecraft:item_display ^ ^1 ^2 {item:{id:"アイテムのID",Count:1b}}
このように、つい最近リリースされた、「ディスプレイエンティティ」というものを使用します。
座標がなぜ^ ^1 ^2なのかというと、後程説明する"facing"を用いてディスプレイエンティティの視線を整えるときに最適で、かつ思った方向に飛ばしやすい位置であるからです。
nbtは、アイテムのIDさえ変えれば、他は丸写しで基本大丈夫です。
注意
上記のコマンドは、あくまで「アイテム」限定です。
ディスプレイエンティティにはほかにもブロック、テキストがあります。
ブロックのディスプレイエンティティを出すコマンドは下記のとおりです。
/summon minecraft:item_display ~ ~1 ~ {block_state:{Name:"ブロックのID"}}
なお、テキストは今回の趣旨から逸れてしまいますので割愛させていただきます。
続いて、投擲物を飛ばすためのコマンドです。
こちらは二つのコマンドを使用します。コマンドブロックなどを使って書き込んでください。
/execute as @e[type=item_display] at @s run tp @s ~ ~ ~ facing entity @p eyes
/execute as @e[type=item_display] at @s run tp ^ ^ ^-1
一つ目は「インパルス」、二つ目は「リピート」がおすすめです。
データパックの場合は、トリガーとなるfunctionと、常時実行されるfunctionに分けるとよいかもしれません。
少し複雑になってきましたが、解説します。
一つ目は、executeでターゲットを指定したのち、tpコマンドの"facing"というオプションを使ってディスプレイエンティティの「視線」を最も近いプレイヤーに向けるというコマンドです。
そして、二つ目のコマンドでディスプレイエンティティを後ろに動かします。
すると、このディスプレイエンティティを投げたような形になるというわけです。
^ ^ ^-1の、3つ目の数字を変えることで、速度を変更できます。
なお、正の値にしてしまうの自分に向かって飛んでくるので注意してください。
ヒント
さて、一通り説明させていただきました。
ここからは、いくつかのヒントをのせておきます。気になったものはぜひ使ってみてくださいね。
<右クリックで投擲物を発射>
scoreboardコマンドと人参付きの棒を使うことで、右クリック検知が可能になります。
execute if scoreなどを用いて、紐づけることで銃なども簡単に作ることができます。
<射程を決める>
execute as @e[type=item_display] at @s if entity @a[distance=50..] run kill @s
このコマンドを使うことで、プレイヤーから50ブロック離れるとディスプレイエンティティを倒すことができます。銃の射程の設定などに使ってみてください。
<ダメージを与える>
executeで範囲とターゲットセレクターを指定し、damageコマンドを使うことで、近づいた敵などにダメージを与えることができます。
条件付きのチェーンコマンドブロックをつなげ、ディスプレイエンティティを倒すように設定すれば、当たった時に投擲物を消すことも可能です。
<マイクラにないものでも…>
少し難しい話になりますが、マイクラにはリソースパックに「CustomModelData」なるものが存在します。
CustomModelDataを編集することで、マイクラにもともとなかったものでもディスプレイエンティティとして出現させることが可能です。
詳しくは後の記事で出すかもしれませんが、CustomModelDataのモデリング用ソフトでおすすめのものがありますので、リンクを貼らせていただきますね。
最後に
今回は、手軽にオリジナル投擲物の作り方を紹介させていただきました。
昔は、アマスタのfacingがうまくいかず、斜めに飛ぶような仕組みはかなり作りづらかったのですが、現在はこのようにディスプレイエンティティを使ってお手軽に作ることができるようになりました。
tpのfacingは、円形の建物を作ったり、アマスタで作ったオリジナルNPCの視線合わせにも使えますので、よければぜひ使ってみてくださいね。
さて、ブロックディスプレイで落とし穴でも作りますか…щ(゜ロ゜щ)
それではまた次の機会に!
(+o+ ノシ!!!