
レベルシーケンスでディゾルブマテリアルをアニメーション操作する方法-UEFN メモ –
こんにちは。やきまるです(@yakimaru3d)
今回は、UEFNでマテリアルのパラメーターをレベルシーケンスで操作してマテリアルを操作する方法を解説します。
例えば、トリガーを踏んだら、オブジェクトをディゾルブさせるといった感じ。
ムービーシーケンスを使って、ディゾルブアニメーションを試してみました。
— やきまる (@yakimaru3d) February 24, 2024
マテリアルのアニメーションもできるのでムービーシーケンスは有能ですね。🙌#UEFN pic.twitter.com/DEucspk3Mo
比較的簡単なので試してみてください
工程は2段階です。
①前準備:ディゾルブマテリアルを作る
②本題:レベルシーケンスでマテリアルのパラメーターを操作する
①前準備:ディゾルブマテリアルを作る
まず下準備としてディゾルブマテリアルをUEFNに用意します。今回マテリアル制作は本題でないので、マテリアル作成については先人の動画を参考にしていただければと思います。「UE・ディゾルブマテリアル」とググるといろいろ出てきます。例えば、下記の動画を真似していけばマテリアルわからんという人でもとりあえず再現できると思います。
※動画はアンリアルエンジン4のものですが、UEFN上でも同じものが作れます。
動画に従っていくとだいたい下記のようなノードが完成します。

ベースのマテリアルからマテリアルインスタンスを作り、

マテリアルインスタンスを開くと下記のような画面になります。

このマテリアルは赤枠で囲った部分”Dissolve”というパラメーターをの値に応じて、溶け具合が変化するという感じです。この”Dissolve”というパラメーターの値にレベルシーケンスでアクセスして値を変化させることでUEFNのレベル上でマテリアルを操作するということができます。(次の工程)

②本題:レベルシーケンスでマテリアルのパラメーターを操作する
では本題。マテリアルをゲーム内で実際に操作する方法を学びましょう。
まず、適当につくったBoxのスタティックメッシュのマテリアルとして先ほど作ったディゾルブのマテリアルインスタンスを割り当てます。

次にコンテンツブラウザで右クリック→シネマティックス→レベルシーケンスでレベルシーケンスを新規作成します。

レベルシーケンスを開いて、
①Boxのスタティックメッシュを追加
②Boxの+ボタンから”StaticMeshComponent0”を追加
③”StaticMeshComponent0”の+ボタンから”スロット:Material0”を追加
④”スロット:Material0”の+ボタンから”Dissolve”を追加
設定方法の動画はこちら

これでレベルシーケンスから先ほどのマテリアルインスタンスのパラメーター”Dissolve”にアクセスが可能になりました。


あとはレベルシーケンスの秒数に応じて、Dissolveの値を変更するようなアニメーションを設定すれば完成です。
今回は、1秒(30fps)でDissolveの値を1として、4秒(120fps)でDissolveの値を-1に設定しました。

シーケンサーを再生した結果がこちら。アニメーションによってマテリアルが変化していることがわかります。これでレベルシーケンスの設定は完了です。

最後に、ゲームプレイ中に動作するように設定しましょう。今回はトリガーを踏んだら、マテリアルが変化するように設定します。
トリガーとムービーシーケンスの仕掛けを用意して、作成したレベルシーケンスを割り当て、トリガーで発火させるだけ。(完成)

ゲーム画面で実行してみるとうまくいきました。

以上
レベルシーケンスはオブジェクトの位置だけでなくマテリアルも操作できるのでめちゃくちゃ便利ですね。
不定期ですがUEFN系のTips書いています。よろしければご参照ください。
また、UEFNで過去作った作品もよろしければご覧ください