前回の記事でコントロールリグの機能を使ってリグを作成しました。
今回はこの作成したリグを使ってアニメーションを作成、そのアニメーションを使ってプロシージャルリグというものを試してみます。
UE4のバージョンは4.21 Preview 3となりますので、その後のバージョンによってはこれらの方法が変わってくるかもしれませんのでご了承ください。
では早速みていきましょう。
コントロールリグシーケンスでアニメーションを作成
作ったリグでアニメーションを作成してみましょう。この使い方は基本的に以前解説したものと同様ですが、細かい部分で差異があります。
以前はシーケンサー内で"BaseHuman"と呼ばれるリグが存在していましたが、今のバージョンにはそれが存在していません。
ここでは自分が作成したコントロールリグ ブループリントを選択しましょう。"Track"ボタンから自分で作成したリグを追加します。
細かく差異があり、Controlsにコントローラーの部位表示がありません。おそらくこれも自作できると思うのですが、現状ではそこまでの方法はわかりません。
ただ、このままではコントローラーとなるエフェクターなどがないので、キーをタイムライン上に打つことが出来ません。
仕方がないので、コントロールリグ ブループリントのトラック右側のプラスボタンからコントローラー用のトラックを追加します。追加した後は最初のポーズの状態でまずはキーを各トラックのプラスボタンからキーを追加しましょう。
トラックが追加されると、そのトラックを選択状態にすることで、ビューポート上にマニピュレーターが現れます。この状態でコントローラーを操作し、キーを追加していくことでアニメーションを作成することが出来ます。
これで、アニメーションを作成したらシーケンサーをアニメーションシーケンスとしてエクスポートします。以前の方法では、コントロールリグシーケンスのシーケンサー内にエクスポートボタンがありましたが、4.21 Preview 3の現在ではそれが見当たりません。
代わりの方法として、シーケンスレコーダーを使います。エディター上部メニューから"Window"→"Sequence Recorder"を選択し、シーケンスレコーダーのウィンドウを開きます。録画したいアクターを選択状態にし、シーケンスレコードのAddで追加します。
あとはお好みで終了時間や保存場所を設定してください。これでRecordボタンで録画します。
指定の保存場所にアニメーションシーケンスが保存されていれば成功です!
プロシージャルリグとして利用する
プロシージャルリグとして使うには既存のアニメーションブループリントの中で利用します。まずは利用したいリグを作成しておきます。
これは単純にheadジョイントを常にhand_rジョイントへとAim Constraintで注視させるだけのリグです。今回は単純な例なので、これだけにしておきます。
次にアニメーションブループリントのアニムグラフ内で、"Control Rig"ノードを検索し、追加しておきます。
Control Rigノードの詳細パネルから利用したい"Control Rig Class"を選択します。あとは既存のアニメーションとブレンドさせるようにアニムグラフ内で接続を行っていきます。
今回は単純に流しているアニメーションに対してリグを適用しているだけです。
結果は以下から。
プロシージャルリグを使って、リグのAim ConstraintをアニメーションBPで設定し、ゲーム中にも反映させる様子。頭を常に右手に注視するようなAim Constraintになってる。#UE4 #UE4Study pic.twitter.com/SUQuC8Olq4
— alwei (@aizen76) October 28, 2018
これで無事プロシージャルリグとしてゲーム中でもリグの効果を反映させることが出来ました。
これからのこと
今回の方法でプロシージャルリグにより、ゲーム中でもリアルタイムにリギングされた仕組みが使えることがわかりました。ただし、コントローラー系のエフェクターに直接アクセスすることはまだ出来ないようです。
しかし既に"Control Rig Component"と言うコンポーネントがブループリントには用意されているので、これから直接リアルタイムにリグ内にアクセス出来るようになるのは間違いないでしょう。
これが可能になれば、リグを用いた様々なアニメーションをプロシージャルに生成することが可能となり、ゲーム中にもっとリアルで細かいアニメーションを反映できるようになります。非常に期待度が高い機能で将来が楽しみです。