9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IKRetargeterでリターゲットをするコツ

Last updated at Posted at 2024-06-22

IKRetarget、MannyのデフォルトのIKRigをそのまま使っていませんか?

image.png

IKRetargetはそれぞれのボーン階層によってセットアップする必要があります。

例えば
・ルートボーンがない(全部腰から生えてる)
・腕の骨が4本ある
・手の指の生え方が違う
・腰骨が右足と左足で別れてる

この辺のボーンにリターゲットをするのに、デフォルトのIKRigをつかうと「なんかちゃう…」って感じのリターゲットになります。その辺の話です。

ゲームメーカーズさんのこの記事
https://gamemakers.jp/article/2022_10_24_20821/
を読んで実行できる感じの知識感で書いてます。

IKRigについて

image.png

IKRigはリターゲッターのもとになるもの(に近い)です。実はこれ単品で足の高さ合わせ作ったりばねを作ったりできるんですが機能別サンプルのIKRigを見てください。

リターゲットをするときに重要なのは実際のところ右下の「IKリターゲティング」です。とりあえずここが構造が一致していれば何とかリターゲティングができます。

FullBodyIKはじゃあなんのためにあるの?

FullBodyIKは好みです。場合によってはつけない方がいい場合もあります。
FullBodyIKはリターゲット元とリターゲット先でエフェクター(黄色の四角いやつ)の位置を一致させるように働きます。
これがないと例えばものを拾うアニメーションとかをリターゲットした時、身長や腕の長さによって手の到達点が変わってしまいます。
これを解決するやつです。

逆に身長差が著しいモデルでIKを使用すると、逆に変になることがあるので、時と場合によって使いましょう。ダンスとかだと使わない方がいい可能性があります。手足が伸びきる動きが身長高いモデルだと伸びなかったりするので。

リターゲティングルートってどこがいいの?

リターゲティングルートは通常はPelvisあるいはHip(腰骨)になっています。基本的にここで問題ありません
が、モデルによってはなぜか腰骨がなく全部Rootから生えていたり左右でわかれていたりします。
もしそういうモデルだった場合Blenderとかでボーンを編集してしまうのが一番楽です。
RetargetRootを設定しないという裏技もあるのですがあまりお勧めしません

IKRetargeterについて

image.png
リターゲットをする本体です。これを作るとAnim BPで「Retarget pose from Mesh」というノードを使うことでソースに入れたSkeltalMeshの動きをその場でリターゲットさせることができます。

基本的に重要なのは「とにかくポーズを一緒にさせる」これだけです。
IKRetargeterは二つのモデルのポーズが一致していれば何とかなります。手オンリーのモデルと人のモデルでもIKRigをセットアップしてRetargeterでポーズさえ一致させればリターゲットできます。いけます。

細かい調整方法としてチェンマッピングのチェーンを選んだ上で回転のアルファや平行移動のアルファを調整すると回転量を調整することができます。知らんかった(merao様ありがとうございます)
image.png

IKをリターゲットに使用する

実はIKRigで設定しただけではIKの位置に合わせてくれません(どうして)
image.png
各チェーンを選択した上で、詳細タブからソースにブレンドに数値を入れる必要があります
image.png

関節の数がおかしいのを何とかしてみる

上のモデルは腕が4分割されています。
当然IKは「間をいい感じに曲げる」なので人間みたいな曲がり方はしてくれません。
image.png
複雑骨折かな?

これをIKの意味があまりなくなる代わりにほぼまっすぐにすることができます
image.png

IKRigを組み替えます。
今まで
・右腕
・左腕
というくくりだったチェーンを
・右上腕
・右下腕
・左上腕
・左下腕
に変えます。
腕が分裂しているキャラとMannyの両方でこれを行います。

image.png
腕が分裂しているキャラの方にフルボディIK上の角度制約を追加します。

ソルバスタックのフルボディIKを選択した状態で上のボーン階層を右クリックすると設定を選択ボーンに追加というものを選ぶことができます。

これで動かしたくないボーンに制約を追加することができます。

image.png

image.png
回転の剛性、位置の剛性を上げて制限をすべての角度でLockedにしておけばほぼ動きません。(ある程度動くことはあります)

これをIKリターゲッターに通すと…
image.png

角度などはガン無視ですが、人間の腕とおおむね同じ2個2個でアニメーションしてくれました!

実際にリターゲットしてみる ~手と人間編~

手のIKRigの作成

今回はVRテンプレートの手のSkeltalMeshを持ってきました。
image.png
こんな感じでチェーンを設定していきます。
リターゲティングルートはRootに設定しました。
なんでHandじゃないの?というとなぜかリターゲティングルートに設定されたボーンは回転が制限されてしまうことがあるからです。症状的に謎なのですがアニメーションでガッツリ動くようなものはリターゲティングルートは避けましょう。

MannyのIKRigの作成

手のリターゲットをするにはボーン階層が大きく違います。特にリターゲティングルートが重要です。
こちらはHandに設定します。ほかに似た位置のボーンがないので…
image.png

IKRetargeterの作成

リターゲットをしていきます
Mannyをソースに、手をリターゲット先に設定します。
いい感じにポーズが同じになるように設定します。

image.png

歩きで動かしてみる

IKRT_HandThird 2024-06-22 17-43-26.gif
できました!!!

通常のIK_Mannequinでリターゲットをしてみる

ちなみに通常のIK_Mannequinでリターゲットをするとこうなります
IKRT_HandThird 2024-06-22 17-50-12.gif
カスタムしたIKRig、大事!

最後までお読みいただきありがとうございました。みんなもUEでRigを触ろう!

9
9
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
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?