[UE4]Control Rig機能調査(4.27)
注意事項
これはUnreal Engine 4 (UE4) #2 Advent Calendar 2019 24日目の記事でした
まだ参照して下さる方がいるとの事で4.27.2向けに改修しています
元々4.24での検証記事を4.27で作り直しているので、ノードのピンなど正確に合致しない場合があるかもしれません
独自研究が含まれます
機能の解釈や運用において公式のそれと異なる可能性があります
Rigセットアップを行いますが、業界の常識を欠いた組み立てをしている可能性があります
ここから文体が雑になります
Control Rigとは何か
「動きをチョイ足ししてイイ感じにするアレ」をノードベースに作れるヤツ
どういう時に使うのか
Procedural Animationと複雑なRetargetingの解決
とGDC2019講演で言っていた
たとえば補助骨制御
身体の動きに合わせてアクセサリの骨を制御したい
手首のねじれに合わせてtwist骨を回転させたい(本記事で簡単に紹介)
あとIK制御とか
銃構え時にウィークハンドの位置を合わせたい
足が階段や坂道にめり込まないようにしたい
Look At(Aim)処理(本記事で簡単に紹介)
なぜ使うのか
機能的には既存のキャラBP+ABPの連携でも実現可能
…だったが、4.27.2時点ではControl Rigでないとやれない事も出てきている(Full body IKとか)
講演によると、以下のような嬉しさがあるとの事
機能分割
Rigを追加する時、ABP側はControl Rigを1つ接続すればよい
ABPはAnimationの再生とBlendに専念できる
高速化
Control Rigで記述された処理はNative CodeにCompileされ、Fast Pathに乗る
使ってみた感触では以下の利点もありそう
責任分割
Rigがバグった時、複雑(になりがち)なABPを調べることなく、Control Rigを調べればよい
再利用
複数のABPに同じRigを適用したい時、1つのControl Rigを作ればよい
ABPのノード群をコピペするより保守しやすい
使ってみる
まとめ
Control Rigを使って太りがちなAnimation BlueprintからRig周りを分離可能
むしろControl Rig ComponentをキャラBPに搭載すれば、ABP無しでProcedural Animation可能
制御対象であるControl別に固有のGizmoが設定でき、DCC上でのRiggingのようにセットアップ可能
まだWIPなので挙動が怪しい部分は覚悟すべし4.27.2ではかなり安定
所感
検証段階では階層構造が一致しないと流用できなかったが、RE Engineのモジュラーリグみたいに部分一致でも適用する方法があると、より可能性が広がりそう
どこか設定できる箇所があるのかも?
まだBETA 1.0なので、完成版でできるようになるかもしれない
ダメならC++でControl Rigを拡張すればできるだろう(未検証)
複雑なRig機能はC++で専用のノード作るから必要ないゼ…という猛者にもControl Rigでグラフィカルに試作してからコードに落とし込むなど、使い道はあるのではなかろうか
雑談
今回、Google Photoの公開アルバムに資料画像をUploadし、そのURLに画像リンクするという手法で記事を作ったGoogle Siteだと100MB制限があるが、これなら容量無限なので気にせず作れる!と思って重いgifを使いすぎたかもしれない…などと2019年は思っていましたが、2021年の新Google Sitesへの移行で実質容量無限になったぜ!
終わりに
明日25日目の記事は@nokonoko_08さんによる「CableComponentを使ってグレーマンを動かす」です
Unreal Engine 4 (UE4) #2 Advent Calendar 2019及び関連アドカレをチェックしましょう!
参考資料
New Animation Features in Unreal Engine | GDC 2019 | Unreal Engine - YouTube(日本語字幕あり)
人間と下肢の構造が異なる狼男へのAnimation RetargetをControl Rigで解決
Bind Poseから人足→対応する狼足の変換を得て、それをAnimationに適用
IKでつま先位置を一致
Enhancing Animation with Control Rig | GDC 2019 | Unreal Engine - YouTube(日本語字幕あり)
ガントレットの爪を本体骨の指の動きに連動させる処理をControl Rigで解決
人差し指の回転量を取得、ガントレットの爪の回転量として適用
人体フルコントロールリグの紹介
Control Rig Sequenceの紹介
記事に記したとおり、4.24.0ではTrack化した
【CAPCOM RE:2019】モジュラーリギング 〜リギングをより効率よく、より簡単に〜 - YouTube
REエンジンにおけるリギングの考え方についての講演
Control Rigで近いことが実現できるだろう…できるといいな
UE4 コントロールリグを使って、リグを作成してみる - Let’s Enjoy Unreal Engine
4.21の頃のControl Rig機能の紹介
この時点で作ったControl Rigも、4.24で開くと実行可能なようにConvertされるようだ