ネリスさん備忘録

主にUE4の備忘録を残すよ!

【UE4】インスタントにControlRigを使おう

ぷちコン映像編で勉強したControlRigの復習もかねて記事に。

 

かねてよりControlRigが便利というのは聞いていたし、実際に動いているのを見て便利なのは理解していたけど、触ったことは無かった機能。

ただ調べていると「あんなことやこんなこともできる!すごいでしょ!」

みたいな記事が目立ち、時間がなかった自分にとっては使い方だけ簡潔に分かればそれで充分だった。

 

そんなわけで、ControlRigわかるマンには怒られそうだけど超簡略化したControlRigの使い方を紹介する。
もっと頭悪くUE4使ってもいいじゃないの。人間だもの。

 

あ、ControlRigがどうすごいとか、こんなことできます見たいなのはほかの人の記事のがいいかと。

 

ControlRigのプラグインを有効にする

まずはControlRigのプラグインをONにする。
プラグインウィンドウを出して…

f:id:LunaNelis:20210114004813p:plain

検索にControlと打てば上のほうに出てくるはず
(ControlRigではなく、Control(半角スペース)Rigなので注意)

f:id:LunaNelis:20210114004922p:plain

有効にしようとすると警告が出るが、OKOK。

f:id:LunaNelis:20210114005011p:plain

すると下のほうにUE4再帰動しろーって催促されるので、再起動しよう。
催促されなくても再起動しよう。

f:id:LunaNelis:20210114005105p:plain

これでプラグインの導入は終わり。検索してOKして再起動するだけ!
SteamのMOD導入より楽かもしれん

 

ControlRigの作成をする

ControlRigを使いたいモデルのSkeletonを右クリックすると

「コントロールリグを作成」というそのまんまな項目があるのでクリック

f:id:LunaNelis:20210114005357p:plain

できた!

f:id:LunaNelis:20210114005519p:plain

空っぽのControlRigを作成して、あとからキャラクターを適応するってのもできるけど今回はインスタントな実装なので割愛。おかずさんの動画見てね。

ControlRigを開く

開いたものがこちらになります。

f:id:LunaNelis:20210114010005p:plain

何もねぇ…
リグ階層だけ充実しまくってるだけの画面…

とりあえずキャラクターが見えないことには始まらないので表示しよう
右上あたりにあるプレビューシーン設定タブの中にある
PreviewMeshを設定する

f:id:LunaNelis:20210114010241p:plain

f:id:LunaNelis:20210114010336p:plain

出てきた!やったぜ!

f:id:LunaNelis:20210114010409p:plain

これでControlRigを始められる

 

ControlRigその1.特定の位置に顔を向けたい

 特定のポイントを見るように顔を動かしたい時はこれ
Aimノード~

f:id:LunaNelis:20210114013535p:plain

とりあえず頭を回したいのでItemにHeadを追加して、と

f:id:LunaNelis:20210114013647p:plain

f:id:LunaNelis:20210114013714p:plain

首がおかしくなってしまった…

f:id:LunaNelis:20210114014555p:plain

細かい話はともかくこんな感じに設定すれば、Targetに指定した方向に顔を向ける。
次はどこに向けるかをわかりやすくするために、コントロールを作る。

 

とりあえずボーン階層がなっがいので畳む。

f:id:LunaNelis:20210114014942p:plain

リグ階層タブの何もない場所で新規→新しいコントロールを選ぶとコントロールが作成される。今回はAimPointという名前を付けておく。
コントロールってなんやねんっていうと、座標や回転、拡縮のデータを持ってる点や。

f:id:LunaNelis:20210114015021p:plain

ドラッグ&ドロップしてコントロールを取得を選択

f:id:LunaNelis:20210114015306p:plain

でてきたGetTransform -ControlノードからTranslation(座標)とAimノードのTargetを繋ぐ

f:id:LunaNelis:20210114015629p:plain

これで、作ったコントローラー(AimPoint)のほうを向くようになった
プレビューにあるこの赤い点が作ったコントローラー(AimPoint)

f:id:LunaNelis:20210114015828p:plain

これをクリックして移動させると首を回していることが確認できる

f:id:LunaNelis:20210114015945p:plain

シーケンサで使うときもこの点の位置を変えるだけで向いている位置を変更できるというわけだぁ。楽勝やな!
そして、繋いだTargetが顔を向ける先という事は、ここにActorの座標を渡すことができれば近づいた人を目で追うようなRigになるわけである。
詳しくはinuGamesさんのところの動画で。

 

ControlRigその2.IKで手足を曲げ伸ばしする

いわゆるIKというやつ。
IKってなんぞやって人は「なんかいい感じに関節が曲げられるやつ」とでも思っておいてください。大体あってるんで。

f:id:LunaNelis:20210114022927p:plain


今回は先にコントローラーを作成する。HandIKという名前にする。

f:id:LunaNelis:20210114024806p:plain

作ったらコントローラーを手首あたりに動かして右クリック
「最も近いボーンから初期トランスフォームを設定」を選択

f:id:LunaNelis:20210114024846p:plain

すると手首に吸い付くような位置にワープするはず。

ただの点だと向きがわかりにくいので、ギズモを変更して円の形に変える。
コントローラーを設定してるときの詳細タブにあるので、ここを適当なものに変える。Circleでいいかな。

f:id:LunaNelis:20210114025151p:plain

続いてBasicIKノードを作る。
設定は大体こんな感じ。

f:id:LunaNelis:20210114023339p:plain

細かい説明はやっぱり省くけど、肩・肘・手首を指定してあれこれ調整すると
肘がいい感じに曲がるのだ!
膝でも同じことができるゾ

PrimaryAxisやSecondaryAxisなどはモデルによって変わるので注意。あくまでグレイマンことマネキンで動くようになる設定。

f:id:LunaNelis:20210114024452p:plain

設定するとこんなポーズになるはず。

f:id:LunaNelis:20210114025354p:plain

ここまで出来たら作ったコントローラー(HandIK)をBasicIKノードのEffectorにつなぐ
そしたら完成!コントローラーを動かしたり回転させてみよう!なんかいい感じに動く!

f:id:LunaNelis:20210114025517p:plain

ただこれだけだと人体じゃ無理な曲がり方もするので頑張って調整したりしてね
角度制限とかもできたはず。

ControlRigその3.単純に回したり伸ばしたりする

紹介した2つより地味だが、とてもシンプルなノードOffsetTransformというものがある。

単純にそのボーンを指定角度曲げたり伸ばしたりできるノードである。
使い方はこんな感じ

f:id:LunaNelis:20210114030331p:plain

コントローラーの作成などはさすがに省くが、GetTransformのSpaceがLocalSpaceになっている点は注意。
これを使うと好きな回転をさせたりできる。
(手首ボーンに合わせたようにコントローラーを頭の位置に合わせています)

f:id:LunaNelis:20210114030513p:plain

これで何ができるかっていうと

買ったアニメーションのアセットをリターゲットしたけどガニ股になっちゃったりしたのを太ももを少し回転させて内股にしたり
同じく指がうまくリターゲットできなかった時に補正したり
シンプルゆえに使い道はいろいろ。

さいごに

ControlRigも見様見真似でも動きさえすればなんかわかった気がしてくるもの。
「なんか機能が多そうで難しそうだなぁ。」とか
「Epicのサンプル見たけど全然わからん!」とかあると思う。
とりあえず最低限の実装を真似してみて
「なんかよくわからんけど動いた!」を感じてほしい。

パラメータの細かい話はそのあとでいいと思う。
「IKの肘があらぬ方向に向いちゃう!」
のような問題にぶち当たったときに調べればいいのだ。

まずは見たままを真似して動いたら理解を深めるターンに入ろう。

最後に一つだけ。
ControlRigはモデルの作りに影響を受けやすいため、自作モデルでうまく動かないという事はままあると思うけど頑張ってね