MRが楽しい

MRやVRについて学習したことを書き残す

Blenderのボーンコンストレイントでモーションに制約を設ける

本日は Blender の技術調査枠です。
Blenderのボーンコンストレイントでモーションに制約を設ける方法を試したので記事にします。
f:id:bluebirdofoz:20211030231917j:plain

前提条件

以下の前回記事でThreeDPoseTrackerで出力したモーションをホロモンモデルに反映してみました。
bluebirdofoz.hatenablog.com

結果は人型のモーションをホロモンの骨格に反映した形となったため、以下のように特定のポーズが大きく破綻する結果となりました。
f:id:bluebirdofoz:20211030231933j:plain

そこで今回はボーンコンストレイントの設定でモーションに制約を設けて破綻を防いでみました。

回転制御のボーンコンストレイン

回転制御のボーンコンストレイントはボーンの回転角を軸ごとに制限できます。
以下のように大腿、膝、足首、手首に回転制御の公司トレインとを設定しました。
・大腿
f:id:bluebirdofoz:20211030231943j:plain
・膝
f:id:bluebirdofoz:20211030231953j:plain
・足首
f:id:bluebirdofoz:20211030232005j:plain
・手首
f:id:bluebirdofoz:20211030232249j:plain

ローカル軸に対して制限をかけるため、[オーナー]項目を[ローカル空間]に設定する必要がある点に注意が必要です。

動作確認

この状態でモーションを再生してみます。
破綻していたポーズのフレームを確認すると、無理のある回転は制限されて自然なポーズに見えるようになりました。
f:id:bluebirdofoz:20211030232026j:plain

この状態でアニメーションデータを出力すると、Blender のボーンコンストレイントで制御されたモーションを利用することができます。
f:id:bluebirdofoz:20211030232039j:plain

課題

一定以上の回転を制限しているだけなので実際に再生してみると、大きくアクションを取っている個所では突然回転が止まったり始まったりなど不自然な動きになります。
また IK のボーンコンストレイントを設定したままだと干渉しあうため、設定を削除しておく必要があります。
f:id:bluebirdofoz:20211030232049j:plain