ぷちコン映像編で勉強したControlRigの復習もかねて記事に。
かねてよりControlRigが便利というのは聞いていたし、実際に動いているのを見て便利なのは理解していたけど、触ったことは無かった機能。
ただ調べていると「あんなことやこんなこともできる!すごいでしょ!」
みたいな記事が目立ち、時間がなかった自分にとっては使い方だけ簡潔に分かればそれで充分だった。
そんなわけで、ControlRigわかるマンには怒られそうだけど超簡略化したControlRigの使い方を紹介する。
もっと頭悪くUE4使ってもいいじゃないの。人間だもの。
あ、ControlRigがどうすごいとか、こんなことできます見たいなのはほかの人の記事のがいいかと。
- ControlRigのプラグインを有効にする
- ControlRigの作成をする
- ControlRigを開く
- ControlRigその1.特定の位置に顔を向けたい
- ControlRigその2.IKで手足を曲げ伸ばしする
- ControlRigその3.単純に回したり伸ばしたりする
- さいごに
ControlRigのプラグインを有効にする
まずはControlRigのプラグインをONにする。
プラグインウィンドウを出して…
検索にControlと打てば上のほうに出てくるはず
(ControlRigではなく、Control(半角スペース)Rigなので注意)
有効にしようとすると警告が出るが、OKOK。
すると下のほうにUE4再帰動しろーって催促されるので、再起動しよう。
催促されなくても再起動しよう。
これでプラグインの導入は終わり。検索してOKして再起動するだけ!
SteamのMOD導入より楽かもしれん
ControlRigの作成をする
ControlRigを使いたいモデルのSkeletonを右クリックすると
「コントロールリグを作成」というそのまんまな項目があるのでクリック
できた!
空っぽのControlRigを作成して、あとからキャラクターを適応するってのもできるけど今回はインスタントな実装なので割愛。おかずさんの動画見てね。
ControlRigを開く
開いたものがこちらになります。
何もねぇ…
リグ階層だけ充実しまくってるだけの画面…
とりあえずキャラクターが見えないことには始まらないので表示しよう
右上あたりにあるプレビューシーン設定タブの中にある
PreviewMeshを設定する
出てきた!やったぜ!
これでControlRigを始められる
ControlRigその1.特定の位置に顔を向けたい
特定のポイントを見るように顔を動かしたい時はこれ
Aimノード~
とりあえず頭を回したいのでItemにHeadを追加して、と
首がおかしくなってしまった…
細かい話はともかくこんな感じに設定すれば、Targetに指定した方向に顔を向ける。
次はどこに向けるかをわかりやすくするために、コントロールを作る。
とりあえずボーン階層がなっがいので畳む。
リグ階層タブの何もない場所で新規→新しいコントロールを選ぶとコントロールが作成される。今回はAimPointという名前を付けておく。
コントロールってなんやねんっていうと、座標や回転、拡縮のデータを持ってる点や。
ドラッグ&ドロップしてコントロールを取得を選択
でてきたGetTransform -ControlノードからTranslation(座標)とAimノードのTargetを繋ぐ
これで、作ったコントローラー(AimPoint)のほうを向くようになった
プレビューにあるこの赤い点が作ったコントローラー(AimPoint)
これをクリックして移動させると首を回していることが確認できる
シーケンサで使うときもこの点の位置を変えるだけで向いている位置を変更できるというわけだぁ。楽勝やな!
そして、繋いだTargetが顔を向ける先という事は、ここにActorの座標を渡すことができれば近づいた人を目で追うようなRigになるわけである。
詳しくはinuGamesさんのところの動画で。
ControlRigその2.IKで手足を曲げ伸ばしする
いわゆるIKというやつ。
IKってなんぞやって人は「なんかいい感じに関節が曲げられるやつ」とでも思っておいてください。大体あってるんで。
今回は先にコントローラーを作成する。HandIKという名前にする。
作ったらコントローラーを手首あたりに動かして右クリック
「最も近いボーンから初期トランスフォームを設定」を選択
すると手首に吸い付くような位置にワープするはず。
ただの点だと向きがわかりにくいので、ギズモを変更して円の形に変える。
コントローラーを設定してるときの詳細タブにあるので、ここを適当なものに変える。Circleでいいかな。
続いてBasicIKノードを作る。
設定は大体こんな感じ。
細かい説明はやっぱり省くけど、肩・肘・手首を指定してあれこれ調整すると
肘がいい感じに曲がるのだ!
膝でも同じことができるゾ
PrimaryAxisやSecondaryAxisなどはモデルによって変わるので注意。あくまでグレイマンことマネキンで動くようになる設定。
設定するとこんなポーズになるはず。
ここまで出来たら作ったコントローラー(HandIK)をBasicIKノードのEffectorにつなぐ
そしたら完成!コントローラーを動かしたり回転させてみよう!なんかいい感じに動く!
ただこれだけだと人体じゃ無理な曲がり方もするので頑張って調整したりしてね
角度制限とかもできたはず。
ControlRigその3.単純に回したり伸ばしたりする
紹介した2つより地味だが、とてもシンプルなノードOffsetTransformというものがある。
単純にそのボーンを指定角度曲げたり伸ばしたりできるノードである。
使い方はこんな感じ
コントローラーの作成などはさすがに省くが、GetTransformのSpaceがLocalSpaceになっている点は注意。
これを使うと好きな回転をさせたりできる。
(手首ボーンに合わせたようにコントローラーを頭の位置に合わせています)
これで何ができるかっていうと
買ったアニメーションのアセットをリターゲットしたけどガニ股になっちゃったりしたのを太ももを少し回転させて内股にしたり
同じく指がうまくリターゲットできなかった時に補正したり
シンプルゆえに使い道はいろいろ。
さいごに
ControlRigも見様見真似でも動きさえすればなんかわかった気がしてくるもの。
「なんか機能が多そうで難しそうだなぁ。」とか
「Epicのサンプル見たけど全然わからん!」とかあると思う。
とりあえず最低限の実装を真似してみて
「なんかよくわからんけど動いた!」を感じてほしい。
パラメータの細かい話はそのあとでいいと思う。
「IKの肘があらぬ方向に向いちゃう!」
のような問題にぶち当たったときに調べればいいのだ。
まずは見たままを真似して動いたら理解を深めるターンに入ろう。
最後に一つだけ。
ControlRigはモデルの作りに影響を受けやすいため、自作モデルでうまく動かないという事はままあると思うけど頑張ってね