blender の箱を消したら

blender を覚えたい蜂砂の発見や操作メモです。オブジェクトの動かし方は覚えたので中級者を目指したい。

モノを揺らしてみる(JiggleArmature addon)

物理シミュレーションができると聞いたらやってみたくなるのは、何かを揺らすこと。男のロマンからしかたない。

剛体・ソフトボディ・クロス・ボーン・・・

dskjalさんによるとblenderではいろいろな揺らし方があるらしい。

dskjal.com

でも、物理シミュレーションって難しくてよくわからない。剛体とかソフトボディとかクロスとか、非力なマシンだとカクッカクで動かないし。そんな中でも、とりあえず揺らすだけならば、Armature(ボーン)を使うのが軽くてよさそう。

勝手にいい感じのaddon「JiggleArmature」

そんなArmatureを簡単にいい感じに揺らしてくれるaddonがありました。 まずは、一連の動作をノーカットで。1分ほどでここまでできる。

f:id:beesand:20190901225331g:plain

いくつか試した中で、これが一番簡単にいい感じに揺れる。このいい感じって結構大事で、ソフトボディとか適当に設定してみても、形が崩れまくってしまって思ったようにならないんですよね。

インストール

では、使い方。まずはインストール。GitHubから無料で落とせます。

github.com

今日時点で最新のmasterは、v2.80に対応していないようで、インストールしようとするとエラーになる。v2.80用のブランチがあるのでそちらから落とす必要がある。

f:id:beesand:20190901230937p:plain
blender-2.8 のブランチを選択

単体ファイル型のアドオンなので、Branchをblender-2.8に変更したあと、ファイルの一覧からJiggleArmature.pyをクリック。右上の Raw ボタンを右クリックしてファイルとして保存する。

あとは、blenderでアドオンとしてインストールする際にこのファイルを指定するだけ。

f:id:beesand:20190901231231p:plain
Animationカテゴリにある

シーンタブにJiggle Sceneが追加されていたら、インストール成功。オプションを有効にしておきましょう。

f:id:beesand:20190901231840p:plain

Armatureを作成、PoseモードでJiggle有効化

適当なArmatureを作成して、ボーンをいくつか連ねる。最低2つあれば大丈夫だけど、動作がわかりやすいよう4つぐらいに分割しておく。

f:id:beesand:20190901232024p:plain

作成したら、オブジェクトデータタブのJiggle Armatureenabledにチェックが入ってなければつけておく。これでオブジェクトがJiggle(揺れもの)の対象となる。

f:id:beesand:20190901232220p:plain

さらに、Pose modeで揺らしたいボーンを選択して、ボーンタブのJiggle Boneにチェックをつける。複数選択していれば、すべてのボーンに反映される。

f:id:beesand:20190901232519p:plain

アニメーションをスタートさせると、もうボーンが揺れているはず。 適当に根本のボーンかオブジェクト自体を動かしてみてください。

ここで一つ注意。

根本のボーンにJiggleを有効にすると揺れなくなる。理屈はよくわかってないけど、僕はこれでしばらくハマりました。選択してないように見えて、選択されてしまっている場合もあるので、明示的にオプションがついてないことを確認しましょう。

パラメータはなに?

4つの数値パラメタがある。

f:id:beesand:20190901232519p:plain

数値を変えると少しずつ挙動が変わる。

stiffness:変形しにくさ

数値が大きいと硬め、小さいと柔らかめの動作になり、0にすると完全に力なくだらーんとなってしまう。

f:id:beesand:20190901234342g:plain
stiffness 1.00
f:id:beesand:20190901234407g:plain
stiffness 0.00

angular damping:角度減衰

linear damping:線形減衰

2つの違いはよくわからないけど、ボーンの先端にいくにつれてのふにゃふにゃの伝わり方が、数値が大きいほど動きにくくなるみたい。

f:id:beesand:20190901234808g:plain
angular damping 1.00
f:id:beesand:20190901234827g:plain
angular damping 0.00
f:id:beesand:20190901234850g:plain
linear damping 1.00
f:id:beesand:20190901234928g:plain
linear damping 0.00

mass:質量

言葉通りだとは思うんだけど、挙動の違いはわかりませんでした。ごめんさい。

control object:制御用オブジェクト

単純に揺れるに任せるのではなく、コントロールするオブジェクトを指定することができる。詳しくはこちらの動画参照。

youtu.be

というわけで

最後に飽きたのバレバレですが、とにかくやってみれば簡単なのはわかると思う。剛体やソフトボディなどと違って、このままでは当たり判定がないので、単に見ておもしろいというレベルだけど、それで十分な時は使いやすくてよいと思う。

やわらかい物体をあらわす以外にも、身体に身に着けているオブジェクト(かばんとか)を揺らしたり、もちろん髪の毛にも使えそうなので応用範囲はたくさんありそう。

でも、いつかソフトボディをちゃんと設定して当たり判定のあるゆらゆらをやれるようになってみたい!