BLOGブログ

2017.03.30UE4UE/ DCC

【UE4】Mayaからボーン以外のアニメーションを渡す

UE4にアニメーションをインポートする際、DCCツール側でボーン以外の要素(マテリアルなど)につけたキーフレームも同時に持っていきたい場合があります。

そうした場合には、DCCツール側であらかじめダミーのボーンを仕込んでおき、そのTransform情報にマテリアルなどの別パラメーターを接続しFBXをエクスポート。UE4にインポート後、偽ボーンを介し任意のパラメーターに値に渡す処理を組む、という方法でも実装可能です。パラメーター用に簡易的なリグを使用するようなイメージですね。
ただ、やはり無駄なボーンはインポートしたくないものです。

実はUE4ではFBXをスケルタルメッシュで読み込むときに、モーフのようにアニメーションアセットに紐付く形で、MayaのAttributeをカーブとして読み込むことができます。
さらに、そのカーブはマテリアルカーブとして設定することができ、BPなど処理を組まなくとも、カーブと同名のマテリアルパラメーターに値が渡るようになっています。そのため、実行時でなくともプレビューでき便利です。


以下、Maya LTを使用し簡単なデータを作ってみます。

スキニングしたメッシュを用意して、そのJointにAttributeを追加します。

KeyableのAttribute(Float)を命名し追加します。ここではEmissiveとしました。
そのAttributeにキーフレームを設定するか、任意のノード(Maya上でのマテリアルのパラメーターなど)を接続して下さい。

FBXに書き出します。出力の際に、Bake Animationを有効にして下さい。


UE4FBXを読み込みます。

Import Custom Attributeのオプションを有効にして下さい。

読み込んだアニメーションアセットを開いて確認するとカーブが読み込まれています。

メニューバーのWindowよりAnim Curveを開いてみると登録されているパラメーターを一覧できます。

ここでマテリアルとして使用したいパラメーターは、Type列のMaterialを選択してマークが付くようにしておきます。

すると、Curve Nameがマテリアルのパラメーターに渡ります。

Curve Nameと同一のパラメーター名を含むマテリアルを作成します。

ここではEmissiveとして設定しました。

それではアニメーションをプレビューしてみましょう。


これでマテリアルのアニメーションも簡単にインポートできますね!