関連ブログ
- [UE5] 元の位置に戻るカメラの実装 2024.12.18UE
- [UE5]難易度変更に対応したシューティングゲームを作ってみよう 2024.12.11UE
- [UE5] インタラクト可能なモノの量産に役立つBPを作ってみよう 2024.12.04UE
CATEGORY
2023.05.03UE5UE/ 初心者向けUE/ Blueprint
執筆バージョン: Unreal Engine 5.1
|
ゲームの実行中にBPからメッシュの色を変更するには主に2つの方法があります。
それぞれの使い方を解説します。
また、本記事ではゲームメーカーズから配布されているフリーアセットを使用しています。
※特に使わなくても問題はありません。僕が使いたかっただけです。
ゲームメーカーズに登場するキャラクター「キーボー」「ムラスケ」の3Dモデルデータを配布します。キャラクター設定も明らかに!
ブループリントには「Create Dynamic Material Instance」ノードがあります。(関連記事 [UE4]Material Instanceの基本的な使い方)
これを使用すると、プレイ中に別のマテリアルをメッシュに割り当てることが出来ます。
テスト用にマテリアルとブループリントアクタを作成します。
新規で赤いマテリアルを作りました。
ひとつ注意点として、スケルタルメッシュに割り当てるマテリアルは「Used With Skeletal Mesh」にチェックを入れる必要があります!
以上でマテリアルの設定は終わりです。
ノードを使用して「1秒後にマテリアルが切り替わる」ようにしてみます。
BeginPlayイベントにノードを作成しましょう
テスト用に3つのアセットを作成します
まず Material Parameter Collecitonを作成します。
このアセット名は「MPC_Test」としました。
作ったアセットを開いて値を登録しておきます。
続いてマテリアルを作成します。
キーボーのマテリアルを複製してもうひとつマテリアルを作ります。
なぜ複製するかというと、パラメーターコレクションを使って色を変更するにはマテリアルの中にノードを仕込む必要があるからです。
アセット名は「MT_Keybo_02」としました。
マテリアルの中身を編集します。
MPC_Testの値をマテリアルの中で呼び出します。
「Collection Parameter」をクリックするとノードが生成されます。
こちらを選択すると詳細欄で「MPC_Testのどのパラメーターをノードから出力するか」を選ぶことが出来ます。
マテリアルのノードはこのように組みました。
このマテリアルも忘れずに「Used with Skeletal Mesh」にチェックを入れておきましょう。
以上でマテリアルの編集は終わりです。
BP_Keyboを複製し「BP_Keybo_02」を作成します。
アセットを開き、Skeletal Meshには新たに作ったマテリアルを割り当てておきましょう。
BeginPlayイベントにBPを組みました。
「Set Scalar Parameter Valueノード」に指定した値は下記のようになってます。
これで「1秒後にマテリアルパラメーターコレクションの値を書き換える」という処理が出来ました。
両方とも結果は同じですが、場合によって適切な方を使いましょう。
大きくは下記のように考えておくと良いでしょう。
いかがでしたか?
今回はメッシュの色を変える方法を紹介しました。
これでゲーム中に色をバンバン変えまくって色鮮やかなゲームを作ってみてください!