スローペアレントとBボーンで揺れものをつくる
カテゴリ:blender
バージョン 2.80 以降
スローペアレントはバージョン 2.80 で削除された。親オブジェクトにキーが打たれているなら、ドライバーを使えば似た機能が実現できる。以下の式は5フレーム前の位置の X 座標を取得する。
bpy.data.objects['オブジェクト名'].animation_data.action.fcurves.find("location", index=0).evaluate(frame-5)
index=1 で Y 座標、index=2 で Z 座標が取得できる。
ボーンの X 回転量の場合、以下のようになる。クォータニオンなら rotation_quaternion、ただしクォータニオンの index=0 は W。
bpy.data.objects['アーマチュア名'].animation_data.action.fcurves.find('pose.bones["ボーン名"].rotation_euler', index=0).evaluate(frame-5)
2.79 以前
BlenderのBone+Empty+Slow Parentで弾んだり柔らかい動き
アーマチュアにキーを打ったりアーマチュアを直接動かすのは推奨された方法ではない(アーマチュアを使うならボーンにキーを打つべき)ので、ボーンを動かすことでスローペアレントを機能させる方法を紹介する。
まずルートとなるボーンの位置に Empty を配置し Child of でその情報をコピーする。
情報コピー用 Empty の配置
スローペアレントを有効にした追従先の Empty をボーンの情報をコピーした Empty の子にする。
スローペアレントの設定
あとはボーンに IK をつけるだけだ。
動作デモ