【ターゲット指定の追尾弾に改造しよう】Mcreatorで自作MODを作ろう#34【マイクラ】

Minecraft
スポンサーリンク

こんにちは。もえやです。2年ほど前からMcreatorの制作動画をYoutubeにアップしています。

今回は、以前作成した追尾弾を改造して、ターゲットの指定ができるようにしましょう。

スポンサーリンク

追尾弾の作成

今回は、以前作成した追尾弾を改造していきます。

こちらの記事で作り方を紹介しています。

視線方向にいる敵を光らせるプロシージャーの作成

まずは、視線方向にいるモブを光らせて、ターゲットを選びやすくします。

プラスから、プロシージャーを作成します。

名前を付けて、新しいプロシージャーを作成、を押します。

プルダウンから、グローバルトリガーを、プレイヤーのチック更新時、に設定します。

まずは、ローカル変数を作成します。

右上のプラスから、視線方向距離として使用するrをnumberで作成します。

カスタム変数の中から、変数の値を設定するプロシージャーブロックがあるので持ってきます。

数式の中に、数字があるので持ってきます。

変数rの初期値を1に設定します。

フロー制御の中に、条件分岐があるので持ってきます。

ロジックの中に、アイテムの種類を判別するプロシージャーブロックがあるので持ってきます。

エンティティデータの中に、利き手にあるアイテムの種類を判別するプロシージャーブロックがあるので持ってきます

マインクラフトコンポーネントの中にアイテムを選択するプロシージャーブロックがあるので持ってきます。

このように設定し、追尾弾を持っているときにだけ発動するようにします。

フロー制御の中に、回数指定で繰り返しを行うプロシージャーブロックがあるので持ってきます。

このように設定し、20回処理を繰り返すようにします。

ワールドデータの中に、範囲内にエンティティがいるかどうか判別するプロシージャーブロックがあるので持ってきます。

エンティティデータの中に、エンティティのXYZ座標、視線方向のXYZベクトルがあるので持ってきます。

数式の中に演算用のプロシージャーブロックがあるので持ってきます。

カスタム変数の中に、変数の値を取得するプロシージャーブロックがあるので持ってきます。

このように設定します。

視線方向、距離rの0.5マス以内に、モブエンティティーがいるかどうかを確認して、いる場合に次の処理を実行します。

エンティティ管理の中に、ポーション効果を付与するプロシージャーブロックがあるので持ってきます。

ワールドデータの中に、指定位置、範囲内の一番近いエンティティを取得するプロシージャーブロックがあるので持ってきます。

フロー制御の中に、ループから抜け出すプロシージャーブロックがあるので持ってきます。

このように設定します。視線方向、距離rの位置にいる、一番近いモブを光らせます。モブに当たるまで、距離rを増やし、当たった時点でループを抜けて処理が終了します。

保存します。

キー設定でターゲットを指定

次に、ターゲットを指定できるようにします。

プラスから、キー設定を作成します。

名前を付けて、新しいキー設定を作成、を押します。

今回は、Rキーにターゲットの指定をお願いしました。

キーが押されたとき、のプラスから、プロシージャーを作成します。

先ほど作成した、視線方向のモブを光らせるプログラムとほとんど同じなので、一旦先ほど作成したプロシージャーを同じように作成します。この時、光っている時間を3秒(60チック)に設定しておきます。

ここからキー設定用に変更していきます。

エンティティ管理の中から、NBTタグをセットするプロシージャーブロックがあるので持ってきます。

このように間に差し込んで設定し、今光っているモブの、homingtargetという名前のNBTタグを1に設定します。

ワールドマネージメントの中に、範囲内のエンティティに対して処理を実行するプロシージャーブロックがあるので持ってきます。

このように設定して、Rを押したときに、先にNBTタグをリセットして、ターゲットが2重にならないようにします。

保存します。

追尾弾のトリガーを改造して、ターゲットを追いかけるようにする。

前回作成した追尾弾は、一番近くのニワトリを追いかけるようになっていました。

ここまででターゲットの設定ができたので、追尾弾側を変更して、ターゲットを追いかけるようにします。

まずは、前回作成した追尾弾のプロシージャーを開きます。

モブの種類をchickenにしていたところをMob entityに変更し、一番近いニワトリの位置を指定していた部分を、エンティティーイテレーターに変更します。

次に、このように条件を追加します。

範囲内にいるモブの中で、homingtargetという名前のNBTタグが1になっているモブに対して、追尾する処理を実行します。

保存して完成です。

なかなか複雑になってきたので、ひとつずつ確認しながら進めると失敗しにくいです。

ぜひ試してみてください。

タイトルとURLをコピーしました