この記事にはプロモーションが含まれています。

【Blender】揺れの物理演算基礎:リジッドボディ

blender

この記事は無料の3DCGソフトBlender揺れの動きをつける物理演算の基本(リジッドボディ使用)を解説する記事です。

キャラクターのかわいい動きや、装飾品、服などのリアルな揺れの動きを作るのに避けて通れない揺れもの物理演算…。ワンクリックで揺れをつけることもできる便利なアドオンはありますが、アドオンを使いこなすにも基本を知らないと意味がわからなすぎるので0から設定してみました。

アドオンはエラーが出たり、その調整にも結局物理演算への基礎理解は重要ですよね。自分で設定してみて勉強してみたいと思います。

本記事はBlenderのリジッドボディでの揺れの物理演算について詳しく知りたい初心者~中級者向けの記事です。

難易度 3.0

スポンサーリンク

Blenderで揺れをつける方法

Blenderには複数の種類の物理演算があります。それぞれ用途に合わせて使い分けることが推奨されますので以下の表にその特徴をまとめました。

目的適した物理演算
硬い物体が動く・ぶつかる・転がるリジッドボディ
鎖や振り子のように物体をつなげて動かすリジッドボディ + ジョイント
布やロープが風になびくクロス
柔らかいゼリーやクッションが変形するソフトボディ
キャラの髪・しっぽ・布を手軽に揺らすダイナミックボーン(Wiggle2などのアドオンでボーンに物理演算をつけたもの)

アニメーションでキャラクターを動かすときによく使われているのはアドオンなどでボーンに物理演算をつけて揺れをつけるものだと感じます。

今回は勉強のためということで、二つのオブジェクトを関連させてぶつかったり、つなげて動かすことができるリジッドボディの基礎を解説してみます。

スポンサーリンク

リジッドボディとは

Blenderのリジッドボディとは?

リジッドボディ(Rigid Body)とは、剛体シミュレーションを行うための物理演算機能です。
これを使うと、オブジェクトが重力や衝突の影響を受けてリアルに動くようになります。

特徴

剛体(変形しない)オブジェクトの物理演算
重力・摩擦・跳ね返りのシミュレーションが可能
リジッドボディコンストレイントを使えば、オブジェクト同士をジョイントでつなぐこともできる

主な使い方

  1. オブジェクトにリジッドボディを適用
    • 「アクティブ(動く)」または「パッシブ(固定)」を選ぶ
  2. 重力や質量を設定
    • 例えば、ボールを落とすと地面にぶつかって跳ねる
  3. 衝突判定の形状を設定
    • メッシュやボックスなど、適切な形を選ぶ

よく使われるシチュエーション

オブジェクトが落下するアニメーション(例えば積み木を崩す)
キャラクターの装飾品や武器が動くシミュレーション
物理演算を活用したリアルな動き(例えばドミノ倒し)

💡 変形するオブジェクトには向かないので、布やゴムのようなものには「ソフトボディ」や「クロス」を使うのが一般的です。

以下が今回の物理演算を学んだ参考動画です。

スポンサーリンク

2つのオブジェクトを衝突させてみよう

まずは2つのオブジェクトを衝突させてみることから始めます。

Cube と Plane(板ポリ)のオブジェクトをAdd(追加)します。

右側のウィンドウの中の、惑星が回ってるようなアイコンのPhysics(物理演算)プロパティを開いて、2つのオブジェクト両方にRigid Bodyをつけます。

Cube…TypeをActive(動く物体)

Plane..TypeをPassive(動かない物体に衝突判定をつける)

に変更したらこれで完了です。

あとはタイムラインで再生を押せばアニメーションが始まり、立方体が落ちて板ポリにぶつかります。

オブジェクトの数を増やしたり、ドミノのように動く物体同士でぶつかるアニメを作ってみても楽しいです。

スポンサーリンク

オブジェクトをつなげて剛体シミュレーションするには?

それぞれバラバラのオブジェクトに剛体シミュレーションをつけることはできたけど、揺れるためには物体の固定されたところと、その動きに合わせて先端が微妙に動くといった、複数のオブジェクトのつながりが必要です。

今度は二つのCubeを出してつなげて落としてみます

リジッドボディコンストレイント

さっきと同様にセットし、そこにもう一つCubeを追加します。そして追加したCubeにもRigid Body(Type:Active)を設定します。

そして2つのCubeの中間にEmptyを出します(形はなんでもいい)

EmptyRigidBody Constraintをつけます。

Rigid Body Constraint はオブジェクト同士を関連づける制御です。

下部につなげるObjectsを設定する項目があるので、Firstに上のキューブSecondに下のキューブを設定します。

  • First Object(オブジェクト1)親・固定側・支点
  • Second Object(オブジェクト2)子・動く側

今回はどちらも落ちる設定ですが、親、子の設定がある場合や、揺れなどで根本を固定するときは、動く子側をSecondにします。

これで二つがバラバラではなく一つのつながった物体のように落ちるようになりました。

スポンサーリンク

オブジェクトをつなげて揺らす

オブジェクト同士はつながっていますが、一体となって落ちてしまっているので、つながりをバネのようにして揺らせるようにします。

さきほどの設定の続きを作業していきます

EmptyRigid Body ConstraintのTypeをGeneric Spring(汎用ばね)にします。

②下のセクションのLimits: LinearX,Y,Z Axis全てにチェックをいれ、全て0を入力します。(ばねの伸縮を0にする設定です)

アニメーションさせるための設定

これだけでは動いてくれませんので、アニメーションのための設定が必要です。

①固定用の上のCubeをType: Passiveにします。

②その下のSettingsAnimatedにチェックを入れます。(固定用のキューブにアニメの動きを設定する場合)

あとはタイムラインを再生中に上のキューブを動かすか、上のキューブのアニメをキーフレームで打って動かせば下のキューブが揺れるアニメーションが完成します。

スポンサーリンク

ショートカット

髪の毛やネックレス、衣服を動かすときには多くのボーンに物理演算をつける必要がありますが、一つ一つに設定をしていったのでは面倒くさすぎます。便利なショートカットがあるので紹介します。

Rigid Bodyをつけるショートカット

リジッドボディをつけたいオブジェクトを選択して

上部のObjectメニューから

Rigid Body → Add Active
Activeのリジッドボディを設定

Rigid Body → Add Passive
Passiveのリジッドボディを設定

複数のオブジェクトに一度に設定できて便利です。

Rigid Body ConstraintがついたEmptyを設定するショートカット

揺れる先端のオブジェクト→根本のオブジェクトという順番で選択し、

上部のObjectメニューから

Rigid Body → Connect
でコンストレイントのついたEmptyが自動で生成されます。

※汎用ばねなどの設定はつける必要があります

Altを押しながら複数のオブジェクトに同じ数値を設定

汎用ばねの設定などを一つ一つつけるのは面倒なので、設定したいEmptyを複数選択し、Altを押しながら設定していくと、選択したオブジェクトにも同じ設定をつけることができます。

スポンサーリンク

揺れのオススメアドオン

とてもめんどくさい。ワンクリックで設定させろ!という方にはWiggle2という素晴らしいアドオンをオススメします。ワンクリックで設定が簡単な上に様々な調整も可能で、他の物体との衝突判定もつけることができます。

以下の記事でインストールや使用方法を紹介していますのでチェックしてみてください。

スポンサーリンク

オブジェクトをつなげて揺らす操作まとめ

立方体にリジッドボディの設定をつけて物理演算させる設定・操作まとめ。

リジッドボディ・アクティブを付ける・・・揺らしたいオブジェクトを全て選択し、オブジェクトタブのRigid Body → Add Activeをクリックする。大元の揺れないオブジェクトは後でリジッドボディをパッシブにしておく

各要素を連結させるオブジェクトコンストレイントの設定・・・●揺れる先の方(子)をクリック、次にその元(親)をクリックし、その二つを選択した状態で、またオブジェクトタブからRigid Body → Connectをクリックする。●コンストレイントが設定された座標軸のようなエンプティが生成されるので、それを全て選択し、タイプを汎用ばね(Generic Spring)にする。(右クリック、選択にコピーで、選択したもの全てに適用できる)●このままだとばねが伸びすぎるので、LimitsのLinearx、y、z軸全てにチェック(Altを押しながらチェックすると選択したエンプティ全てに適用される)し、全てを0にします。(Altを押しながら入力欄をドラッグして数値入力すると、全てに適用される)

動かす元となるパッシブにしたオブジェクトのリジッドボディ設定のアニメ(Animated)にチェックすると、キーを打つことで揺れのアニメーションをさせることができます。

スポンサーリンク

ボーンをオブジェクトに追従させる

今度はさっきのキューブにボーンを入れて、ボーンも動かしてみます。

ボーンを仕込んで、ポーズモードでボーンを選択し、ボーンコンストレイントChild Ofで、キューブを親みたいに設定していきます。(※自分は間違ってオブジェクトコンストレイントで設定して何十分か悩んでました、似た名前のものがあるので気を付けましょう。)

それだけでわりと簡単に設定できます。アニメーション中に、オブジェクトモードでキューブを動かすと、ボーンも一緒に揺れてくれます。(キーフレームがあるとうまく動かなかったので、削除しておく)

動画内でもありましたが、ボーンの揺れの方が激しいので、ボーンの設定回転の継承のチェックを外すと動きがキューブとちゃんとシンクロします。

スポンサーリンク

+α

連続した物体にもボーンを入れてアドオン(rigid bodys generator)つければ簡単に揺れをつけることができます。ぶつかる相手にリジッドボディ・パッシブをつけておけば、貫通せず左図のように影響させあうことができます。

このとき衝突判定用の中のエンプティの大きさを調整すると、めり込んだりせずに動きます。編集モードで調整可能です。

物理演算アドオンうまく使えない!!という方は、もしかしたら原理を理解することで、何かひっかかりが見つかって問題解決したりするかもしれない…し、まぁ原理を理解するに越したことは多分ないはず。今回の参考動画はほんとにわかりやすく丁寧だったので、わからん!!って方は見てみることをおすすめします!

コメント