1
1

多関節的な奴をリギングした

Last updated at Posted at 2024-07-14

はじめに

この記事は多関節系の無機物のリギングをしようぜ、という記事です。
コントロールリグのコントローラー1個で制御するアンブロポイズ(Pi●erのライト)を作ったのでそのログです。
LS_Anglepoise.gif

バネとかあるものはボーンを入れてリギングしてしまうと自動化できて楽です。楽しいよ!
ControlRig - Unreal Editor 2024-07-13 21-16-41.gif
image.png

環境
・UE5.3.2
・Blender3.6

モデル

image.png
image.png

image.png
image.png
Head(ライト)まで一連でつながったボーンを組んでいます

リギング

設計方針としては、
1.ライトの位置を決める
2.ライトの位置に追従したアームから他パーツの位置を決める

です。

Controlを追加する

コントロールを追加します。
image.png

Head:ライトのコントロールです。動かすときに使用する部分です。
UnderSingleArm_ctrl:親から解除せずUpperArmに追従するようにします。Rootとつながっていない真ん中のUnderSingleArmの位置を決めるのに使用します。
Right/Middle/Left Spring_end_Point:バネの移動しない方の端の位置に置いておきます。

Construction Event

今回はばねの伸縮のためにばねのボーンの初期の長さを保存しておく必要があります。
image.png
Get Double Spring Lengthの中身
image.png
右側のばねのボーンとそのバネの終了地点のコントロールからLengthを取って保存しています。
image.png
シングルも同じような感じです。

Forwards Solve

ライトの位置からArmを動かす

image.png

IKにはBasic FABRIKを使用します。
precisionはEffectorとの誤差になり、小さいものだとカクツキが露骨に出るので0にしておきます。

UnderSingleArmの位置をUpperArmのコントロールの位置に合わせる。

image.png

UpperArmに追従しているコントロールからTransfromを取り使用しています。

ばねの伸縮を行う

image.png
ばねの伸縮を行う部分です。現状ばねがArmに追従して浮いてしまうので固定側を押さえつけていきます。
image.png

Basic FABRIKでばねの端のコントロールをEffectorに指定してばねの位置を合わせます。
これを左右中央の3つ分行います。
image.png
続いて初期値と今のばねの長さを比較して、ばねのボーンを伸縮させていきます。
image.png
今のばねのボーンの開始地点と終了地点の距離を求める関数÷初期値で割合を出します。
こちらもすべてのバネの分行います。
image.png

完成

ControlRig - Unreal Editor 2024-07-14 15-56-42.gif
動くアングルポイズが完成しました。Boothに使用したモデルを置いておきますので是非遊んでみてください。
↓今回使用したモデル
https://gisulove.booth.pm/items/5916817

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