この記事ではMcreator2023.4の情報を執筆しています。
こんにちは。もえやです。2年ほど前からMcreatorの制作動画をYoutubeにアップしています。
今回は、以前Youtubeのほうで公開したバリアを、新しく作り直してみました。
プロシージャブロックの名前が変わっていたりするので、2023.4で作る方はこちらを参考にするとわかりやすいかもしれません。
この記事では、バリアを作る方法を解説します。
パーティクルを作成する
既存のパーティクルを使用してもいいのですが、ちょうどいいのがなかったのでパーティクルから作成しました。
プラスからパーティクルを選択します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-10.png)
名前を付けて、新しいパーティクルを作成、を押します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-20.png)
テクスチャを設定、パーティクルのレンダリングタイプをLITにし、パーティクルの最大生存時間を1にします。
レンダリングタイプをLITにすると、パーティクルが光ります。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-30-1024x645.png)
保存します。
アイテムの作成
プラスからアイテムを選択します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-40.png)
名前を付けて、新しいアイテムを作成、を押します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-50.png)
テクスチャを設定します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-60.png)
テクスチャはこちらで適当に作りました。
プロパティタブに移動します。
クリエイティブインベントリタブをTools&Utilitiesに設定、最大スタック容量を1に設定、耐久値を1000にします。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-70-1024x666.png)
保存します。
プロシージャの作成
プラスからプロシージャを選択します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-80.png)
名前を付けて、新しいプロシージャを作成、を押します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-90.png)
グローバルトリガーを、プレイヤーのティック更新時に設定します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-100.png)
まずは、手に持っているアイテムが先ほど作成した物である場合に実行するようにします。
フロー制御から、もし~実行のプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-110.png)
ロジックから、図の2つのプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-120.png)
エンティティプロシージャのデータから、手に持っているアイテムを取得するプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-130.png)
マインクラフトコンポーネントの中に、アイテムを選択するプロシージャブロックがあるので持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-140.png)
このように設定します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-150-1024x190.png)
パーティクルを周辺に出す
次に、パーティクルをプレイヤーの周辺に出力する設定を行っていきます。
ローカル変数のプラスを押して、新しい変数を作成します。
距離r、角度a、bをnumberで作成します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-160.png)
初期値を設定します。
カスタム変数から、変数をセットするプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-170.png)
数式から数字を持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-180.png)
距離rを1.5、角度aを0、角度bを90にします。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-190-1024x254.png)
フロー制御から、回数指定の繰り返しを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-200.png)
ワールドプロシージャのアクションから、パーティクルを発生させるプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-210-1024x316.png)
数式から、計算式と、四捨五入を持ってきます。四捨五入のプルダウンの中に、sinやcosなどが入っています。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-220.png)
カスタム変数の中から、変数を取得するプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-230.png)
図のように設定します。
パーティクルは先ほど作成したものを設定します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-240-1024x523.png)
エンティティが近づけないようにする
次に、エンティティが近づいたら跳ね返すように設定をしていきます。
ワールドプロシージャのアクションから範囲内のエンティティに対して実行する処理を持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-250-1024x371.png)
ロジックから、~ではない、と同じエンティティかどうか判別するプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-260.png)
エンティティプロシージャのアクションから、モーションベクトルを上書きするプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-270-1024x513.png)
エンティティプロシージャのデータから、XYZの速度を持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-280.png)
マインクラフトコンポーネントの中から、エンティティのイテレーターを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-290.png)
このように設定し、使用者以外のエンティティに反対の速度を与えるようにします。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-300-1024x513.png)
ダメージを受けないようにする
万が一攻撃が当たってしまっても、ダメージを受けないようにします。
エンティティプロシージャのアクションから、ポーション効果を付与するプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-310-1024x295.png)
効果をRESISTANCEにして、一番最初に設置します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-320-1024x403.png)
プレイヤーの矢のみ通るようにする
このままでは、プレイヤーが矢を打っても逆方向の速度になってしまうので、自分の矢のみ打てるように変えていきます。
ロジックの中から、エンティティのタイプを判別するプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-330-1024x689.png)
エンティティプロシージャのアクションから、NBTロジックタグをセットするプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-340-1024x351.png)
先頭にこのように設定し、自分の打った矢にタグをつけます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-350-1024x473.png)
ロジックからこれらのプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-360.png)
エンティティプロシージャのデータから、NBTロジックタグを取得するプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-370.png)
反対の速度を与えるプロシージャにこのように条件を追加します。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-380-1024x552.png)
使用すると耐久値が減るようにする
最後に、使用している間は耐久値が減るように設定します。
フロー制御から、条件分岐を持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-390.png)
アイテムプロシージャのアクションから、アイテムにダメージを与えるプロシージャブロックを持ってきます。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-400.png)
先頭にこのように設定し、手に持ってる間はアイテムの耐久値が減るようにします。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-410-1024x449.png)
保存して完成です。
いかがだったでしょうか?このバリアがあればスケルトンの矢もはじいてくれます。 よかったら作ってみてくださいね。
![](https://moeya3d.com/wp-content/uploads/2024/02/43-420-1024x576.png)