1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【UE4】Control Rig試し中⑤/ぷちコン15進捗 - 2021/03/10

Last updated at Posted at 2021-03-10

株式会社ヒストリアさん主催の第15回UE4ぷちコンの作業進捗。
Control Rigの続き⑤。

イマココ

Control Rigをランタイムで使う実験をしていた。
以前の私の記事(「IKで地面の傾きに合わせる」のその1その2)と同じことを、Control Rigを使ってやってみた。

以前の記事のGIFアニメ(1年くらい前):

今回やったこと:
20210310_1618_RigForTiltFloor.gif
割と苦労はしたのだが、ええ感じにできたとは思う。

Anim Blueprint の Control Rig ノードを利用した。

image.png

  • Control Rig 側に Instance Editable (編集可能)な変数を用意すると、Anim Blueprint 側の Control Rigノードにパラメータとして出せるようになる。
    • 上の画像のFloor LocationFloor Normalがそれ。
    • 詳細パネルで ON にする必要はある。

Control Rig 側

前回までに作ってきたControl Rigは、まったく使い物になりませんでした!

image.png

ひとまずの結論:
前回までに作ってきたControl Rig(↑)は、完全にポーズやアニメーションの編集専用。
もちろん Sequencer 上ではちゃんと動く。

  • Anim Blueprint の Control Rig の詳細パネルには、「どのControl Rigを使うか」を設定する箇所がある。ここに前回までに作ってきた Control Rig を設定してみた。
  • だが、Sourceピンにどんなアニメーションを挿しても、Aポーズ(Reference Pose)のまま動かず、超焦る。
    • まだベータ版だからな! 実装されてないんだな! …と思って一度スルーした。
  • ところが、Preview 画面を見ると、微妙にふるふるしていることに気づいた。
    • 実は、なんか動いている気がする!

20210310_1648_AnimNodeControlRig.gif
ふるふるしてる…

Anim Blueprint 用の Control Rig のしくみ

「Anim Graph の Control Rigノードは、Rig Graph に組んだ Backward Solve を呼び出して、Sourceピンに挿した現在のアニメーションのポーズに合わせて、リグコントロールの Transform を設定してくれる説」

…これは間違い&勘違いでした!
正しくは、

Sourceピンに挿したアニメーションの現在のポーズは、Rig Graph側に渡った時点で、各ボーンのTransformとして既に設定されている」

…が、正解。

より具体的には、アニメーションがControl Rigに渡ってはいるものの、Anim BPからRig Control/Space を動かす方法がないため、Aポーズ(Reference Pose)の位置にあるControl Rigを使ってポーズが算出されている、ということだと思う。

なので、
image.png
Get Transformで現在のボーンのTransformを取得し、Set Transformで自分の作ったリグコントロール(もしくはスペース)にTransformを設定しながら計算を行う。

…という方針で、Rig Graphを作る必要がある。
(つまり、Sequencer でのポーズ・アニメ編集用の Rig Graph とは別物になる)

イメージは、今までの Anim Graph のものに近い:
image.png
上の画像は、

  1. Transform (Modify) Boneik_foot_lボーンに何らかの値を入れる
  2. Leg IKでIKを行う(Leg IKの詳細パネルには、ik_foot_lを使ってthigh_l, calf_l, foot_lを動かすように設定する)

これと似た考えのものをRig Graphに組めばよいようだ。

将来、Anim BlueprintのControl Rigノードから、Backward Solveを呼び出してくれるようになるのだろうか?
「毎フレームBackward Solveを呼び出すような処理は重い」「手動で必要なボーンのTransformを取得しなさい」がEpicの考えなのではないか、と個人的には思う。

おまけ① ポーズ/アニメエディット用のControl Rigは、実質使わないのか?

勉強にはなったが無駄足なのか?
…と思ったら早速使うことになった。

元のアニメーションの足が微妙に地面から浮いていたので、編集用のControl RigとSequencerを使って、足を地面の高さに合わせて、ベイクして使っている。

…というわけで、プログラマが素材を修正するのに重宝するので、ポーズ/アニメエディット用のControl Rigは用意しておいて損はない。
(MarketplaceのControl Rig Mannequinに入っているものをそのまま使う、で十分。自前で作る必要はない)

おまけ②

今回は Marketplace のアニメーションアセットFemale Movement Animset Proを使用した。
この作者のKuboldさんのアニメーションは、クオリティが高い上に使いやすいようにも作られていてオススメ。(その分、高いのだが…)

このKuboldさんがFemale Movement Animset Proを、いつものマネキン男子にリターゲットする方法を分かりやすく解説してくれている動画がある。これに従えば、とてもきれいにリターゲットできるので、興味のある方は一度見てみてください。(注:英語)

Female Movement Animset Proのページの「Retargeting Tutorial」のリンクをクリックしたら見られます(Youtube)。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?