この記事ではMcreator2023.3の情報を執筆しています。
こんにちは。もえやです。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になっているモブに対して、追尾する処理を実行します。
保存して完成です。
なかなか複雑になってきたので、ひとつずつ確認しながら進めると失敗しにくいです。
ぜひ試してみてください。