この記事ではMcreator2023.4の情報を執筆しています。
こんにちは。もえやです。2年ほど前からMcreatorの制作動画をYoutubeにアップしています。
今回は、投げても戻ってくるブーメランを作ってみましょう。
この記事では、ブーメランを作る方法を解説します。
飛び道具を作る
まずは飛び道具を作成します。
プラスから、飛び道具を選択します。
名前を入れて、新しい飛び道具を作成、を押します。
モデルとテクスチャを設定します。今回は、ブロックベンチで作成した3Dモデルを使用しました。
飛び道具はエンティティという扱いになるので、エンティティモデルとして作成する必要があります。
パーティクルの発生にチェックを入れて、保存します。
アイテムを作成する
次にアイテムを作成します。
プラスから、アイテムを選択します。
名前を入れて、新しいアイテムを作成、を押します。
アイテムモデルを設定します。こちらも今回は3Dのアイテムモデルを作成しました。
プロパティに移動します。
クリエイティブインベントリタブを設定し、最大スタック容量を1にしておきます。
トリガーに移動します。
右クリックしたとき、のプラスから、プロシージャを作成します。
エンティティプロシージャのアクションから、利き手を振るプロシージャブロックを持ってきます。
アイテムプロシージャのアクションから、アイテムスタックを減らすプロシージャブロックを持ってきます。
飛び道具プロシージャから、飛び道具を発射するためのプロシージャブロックを持ってきます。
このように設定し、右クリックで先ほど作った飛び道具が飛んでいくようにします。
飛び道具のプロシージャの作成
飛び道具に戻って、トリガータブのプロシージャを設定していきます。
ブロックに当たった時
ブロックに当たった時、のプラスからプロシージャを作成します。
エンティティプロシージャのアクションから、デスポーンさせるプロシージャブロックを持ってきます。
マインクラフトコンポーネントの中から、即時の元エンティティを持ってきます。
ワールドプロシージャのアクションからドロップアイテムをスポーンするプロシージャブロックを持ってきます。
このように設定し、ブロックにぶつかるとアイテムになるようにします。
保存します。
エンティティに当たった時
エンティティに当たった時、とブロックに当たった時、は同じプロシージャを使用します。
エンティティに当たった時、のプルダウンから、先ほど作ったブロックに当たった時、のプロシージャを選択します。
プレイヤーに当たった時
プレイヤーに当たった時、のプラスからプロシージャを作成します。
フロー制御から、もし~実行を持ってきます。
ロジックから、図の2つのプロシージャブロックを持ってきます。
マインクラフトコンポーネントの中から、図の2つのプロシージャブロックを持ってきます。
このように設定し、投げた人以外のプレイヤーに当たった時にアイテム化するようにします。
保存します。
飛び道具が飛んでいる間
飛び道具が飛んでいる間のプラスから、プロシージャを作成します。
エンティティプロシージャのデータから、重力がない、のプロシージャブロックを持ってきます。
エンティティプロシージャのアクションから、無重力を設定するプロシージャブロックを持ってきます。
エンティティプロシージャのアクションから、NBTタグの設定用のプロシージャブロックを持ってきます。
ワールドプロシージャのアクションから、範囲内のエンティティに対して実行するプロシージャブロックを持ってきます。
ロジックから、エンティティのタイプを判別するプロシージャブロックを持ってきます。
エンティティプロシージャのデータから、エンティティの表示名を取得するプロシージャブロックを持ってきます。
このように設定し、重力がある場合は無重力にし、プレイヤーの名前と、カウンター代わりの数値保存用NBTタグをセットします。
数式から、数字と計算式を持ってきます。
エンティティプロシージャのデータから、NBTタグを取得するプロシージャブロックを持ってきます。
このように設置し、毎チックカウンター用のNBTタグをプラス1します。
ここからは、ほとんど追尾弾と同じ作り方になります。
ローカル変数を作成します。すべてnumberで作成します。
カスタム変数から、変数の初期値をセットするプロシージャブロックを持ってきます。
数式から、数値とランダムな数字を持ってきます。
ロジックから、文字列が同じか判別するプロシージャブロックを持ってきます。
このようにセットし、20チックたったら事前に取得した名前のプレイヤーに向かって方向を変えるように設定します。
また、プレイヤーが近くに来た場合はぶつかる前にアイテム化するようにします。
エンティティプロシージャのデータから、XYZの速度を持ってきます。
数式から四捨五入を持ってきます。この中に平方根が入っています。
このように設定し、飛び道具の速度とXYZ各方向の単位長さあたりの速度を計算します。
エンティティプロシージャのデータから、XYZ座標を取得するプロシージャブロックを持ってきます。
このように設定し、飛び道具からプレイヤーに向かう方向ベクトルを計算します。
プレイヤーに向かう方向と、飛び道具の方向を足して、飛び道具の方向を少しずつプレイヤーに向けていきます。
エンティティプロシージャのアクションから、速度を上書きするプロシージャブロックを持ってきます。
このように設定して、新しい速度を設定します。
保存して完成です。
投げると一秒後に向きを変えて戻ってきます。ぜひ作ってみてください。
ptpl配布
解凍してご利用ください。
使用する際は配布に際しての注意事項をご確認ください。