関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2017.03.30UE4UE/ DCC
UE4にアニメーションをインポートする際、DCCツール側でボーン以外の要素(マテリアルなど)につけたキーフレームも同時に持っていきたい場合があります。
そうした場合には、DCCツール側であらかじめダミーのボーンを仕込んでおき、そのTransform情報にマテリアルなどの別パラメーターを接続しFBXをエクスポート。UE4にインポート後、偽ボーンを介し任意のパラメーターに値に渡す処理を組む、という方法でも実装可能です。パラメーター用に簡易的なリグを使用するようなイメージですね。
ただ、やはり無駄なボーンはインポートしたくないものです。
実はUE4ではFBXをスケルタルメッシュで読み込むときに、モーフのようにアニメーションアセットに紐付く形で、MayaのAttributeをカーブとして読み込むことができます。
さらに、そのカーブはマテリアルカーブとして設定することができ、BPなど処理を組まなくとも、カーブと同名のマテリアルパラメーターに値が渡るようになっています。そのため、実行時でなくともプレビューでき便利です。
以下、Maya LTを使用し簡単なデータを作ってみます。
スキニングしたメッシュを用意して、そのJointにAttributeを追加します。
KeyableのAttribute(Float)を命名し追加します。ここではEmissiveとしました。
そのAttributeにキーフレームを設定するか、任意のノード(Maya上でのマテリアルのパラメーターなど)を接続して下さい。
FBXに書き出します。出力の際に、Bake Animationを有効にして下さい。
UE4にFBXを読み込みます。
Import Custom Attributeのオプションを有効にして下さい。
読み込んだアニメーションアセットを開いて確認するとカーブが読み込まれています。
メニューバーのWindowよりAnim Curveを開いてみると登録されているパラメーターを一覧できます。
ここでマテリアルとして使用したいパラメーターは、Type列のMaterialを選択して✔マークが付くようにしておきます。
すると、Curve Nameがマテリアルのパラメーターに渡ります。
Curve Nameと同一のパラメーター名を含むマテリアルを作成します。
ここではEmissiveとして設定しました。
それではアニメーションをプレビューしてみましょう。
これでマテリアルのアニメーションも簡単にインポートできますね!