広告
広告

Blender でスカートや髪を物理で動かす方法まとめ

カテゴリ:blender

目次

概要

クロスシミュレーション

クロスシミュレーションの使い方

直接クロスシミュレーション

直接クロスシミュレーションでディティールの保存

クロスシミュレーション + メッシュ変形

クロスシミュレーション + IK

クロスシミュレーション + サーフェス変形

服が貫通する場合

クロスシムを利用したモデリング

ソフトボディ

ソフトボディのパラメーターの解説

ソフトボディ + IK

ソフトボディ+メッシュ変形で髪を動かす

剛体

剛体 + ボーンで髪のアニメーション

物理シミュレーションを使わない方法

スローペアレント+Bボーン

JiggleArmature add-on

VicTools Spring Bone

波モディフィアを使って服をなびかせる

概要

物理シムを使う方法は大きく分けて2種類ある。物理シムを直接使う方法と、物理シムの結果をボーンやメッシュにコピーして動かす方法とだ。メッシュが単純な形ならば物理シムをそのまま適用しても満足できる結果が得られることもある。しかしメッシュが複雑な形をしている場合、コリジョンがうまく機能しなかったり静止したときに元の状態に戻らなかったりする。その場合は物理シム用メッシュを作成し、その結果をボーンやメッシュにコピーする方法を使うことになる。

ソフトボディ VS. クロスシム

詳しい説明はWhat is the technical difference between softbody and cloth simulation?を参照。

体積の保存

ソフトボディは体積を保存するがクロスシムはそうではない。多様体(一般的な閉じたメッシュ)を地面に落下させたとき、ソフトボディは元の形状を保存しようとするがクロスシムは布のように折りたたまれる。

計算負荷

ソフトボディの方が一般的に計算負荷は高い。ソフトボディは頂点間の距離が変化するが、クロスシムの頂点間の距離は固定だからだ。

柔らかい布を表現したい時はクロスシムよりソフトボディを使った方がいいかもしれない。

ボーン VS. メッシュ変形

ボーンはセットアップが面倒だ。しかし物理シムの影響を切り替えたり、物理シム後に微調整できるようなリグを組める。

メッシュ変形はセットアップが簡単だが、調整はシミュレーション頼りになる。スカートや板ポリで作った髪のような非多様体(閉じていないメッシュ)はサーフェス変形を使った方が簡単だ。

クロスシミュレーション

クロスシミュレーションの使い方

クロス・シミュレーション

クロス・シミュレーションのパラメーターの解説(英語)

直接クロスシミュレーション

スカートにクロス・シミュレーション〈その1〉

直接クロスシミュレーションでディティールの保存

メッシュ変形や IK を使う方法ではディティールは保存されたままだ。 たとえばプリーツスカートを引っ張ると折り目が展開されるが、 メッシュ変形や IK ではそうはならない。

直接クロスシミュレーションする方法ではパラメータを適切に設定すればそのような動きも可能になる。 重要なパラメータは Bending(曲げ)、Spring(ばね)、セルフコリジョンだ。

setting

Spring(ばね)は布の柔らかさをきめる。Spring が小さいと体が貫通しやすい。

Bending(曲げ)はしわの保存力をきめる。大きければ大きいほど元の折り目が復元されやすい。

low benging
Bending 0.5 (デフォルト)
high bending
Bending 1000

.blend ファイルダウンロード

クロスシミュレーション + メッシュ変形

スカートにクロス・シミュレーション〈その2〉

クロスシミュレーション + IK

スカートにクロス・シミュレーション〈その3〉

このボーンのセットアップを自動化するスクリプト

クロスシミュレーション + サーフェス変形

サーフェス変形はセットアップの手間が少ないメッシュ変形のようなものだ。 メッシュ変形と違いシミュレーション用メッシュが閉じていなくてもいい。

Surface Deform Modifier

Surface Deform Technical Documentation

使い方

クロスシミュレーション + メッシュ変形 と同様にクロスシミュレーションメッシュとレンダリング用メッシュを用意する。 レンダリング用メッシュにサーフェス変形をつけ、Target: にシミュレーション用メッシュを指定して Bind を押すだけだ。

surface deform
サーフェス変形の設定

サーフェス変形の制限

サーフェス変形は以下のようなメッシュをターゲット:に指定できない。

1. 重複頂点を含むメッシュ

これらの頂点は「重複頂点を削除(Remove doubles)」で削除できる。

2. 凹型(concave)ポリゴンを含むメッシュ

凹型ポリゴンとは以下のようなポリゴンのことだ。凹型ポリゴンを見つける簡単な方法はない。しかし三角化(Triangulate Face)や「メッシュ > クリーンアップ > 凹面を分割(Split Concave Faces)」で解消できる。

concave polygon
凹型ポリゴン
3. ふたつ以上の面を持つ辺を持つメッシュ

ふたつ以上の面を持つ辺は以下のような辺だ。

y polygon
2つ以上の面を持つ辺

非多様体の選択(Select non-manifold)で多数の面で共有(Multiple Faces)にのみチェックを入れると選択できる。

multiple faces
多数の面で共有
4. 同一線上にある辺をもつ面を持つメッシュ

同一線上にある辺を持つ面とは以下のようなものだ。これは三角ポリゴンの辺のうちの一つを分割するとできる。これがあってもバインドはできる。しかしバインドした瞬間にメッシュがゆがむ。

これも簡単に見つける方法はない。しかし三角化(Triangulate Face)で解消できる。

collinear edge
同一線上にある辺

服が貫通する場合

服が貫通する場合は以下の項目を確認する。

1。Spring(ばね)を設定して布を柔らかくする

Damping(減衰): の Spring(ばね)を大きくすると布が柔らかくなる。

damping
Spring の設定
penetrate
動作デモ

2。シミュレーション前の時点でメッシュ変形のメッシュが体を貫通している

メッシュ変形のメッシュと体とが近すぎると正しくシミュレーションできない。 これはシュリンクラップを使ったときに起こりやすい。

3。メッシュ変形用メッシュがレンダリング用メッシュより小さいことを確認する

レンダリング用メッシュより大きいメッシュ変形用メッシュをつくり内側へ Solidify(厚み付け)をする場合、 体を貫通しやすい。

location
メッシュ変形用メッシュの配置

4。メッシュ変形用メッシュの分割数が少なすぎる

メッシュ変形用メッシュの分割数が少なすぎると、ふくらみのある部分でメッシュが貫通しやすい。

5。体のコリジョンの Outer(外側)が小さい

Outer でコリジョンのサイズを変更できる。

outer
体のコリジョンサイズの設定

.blend ファイルダウンロード

クロスシムを利用したモデリング

これはフックモディフィアを使えば実現できる。フックで釣りたい頂点をピン止め用頂点グループに含めておき、フックで釣ってからクロスシムを適用する。

hook
モディフィアの適用順

ソフトボディ

ソフトボディのパラメーターの解説

Blender SoftBody Tutorial - Introduction(英語)

ソフトボディ + IK

耳をソフトボディで揺らしてみた

ソフトボディ+メッシュ変形で髪を動かす

剛体 + ボーンで髪のアニメーション

剛体をボーンにセットアップするアドオン


剛体コンストレイントの使い方


剛体のセットアップ

上の動画ではエンプティを使っているが、それを使わなくても剛体で髪を動かす方法はある。 例えば以下のようなメッシュを用意する。

setup
剛体のセットアップ

ただしアニメーションさせる剛体の最初と最後のボックスにはボーンを設定しない。 これらのボックスはボーンの位置をきめるのに使う。

アニメーションさせる剛体の原点の位置をボックスの上面に設定しておく。

set origin

剛体の設定

まず体のコリジョンを設定する。剛体を以下のように設定する。

body setting
体のコリジョンの設定

つぎにアニメーションさせる剛体を設定する。それぞれのボックスを以下のように設定する。

first
最初のボックス
other box
他のボックス(ただしオブジェクト12の部分は変える)

剛体コンストレイントのオブジェクト1は自分自身を設定し、オブジェクト2はひとつ前のオブジェクトを設定する。

設定が成功していれば、アニメーションさせながら最初のアニメーションさせる剛体を移動すると以下のように動く。

demo
動作テスト

ボーンの設定

後はボックスの位置にボーンを配置し、位置コピーと IK を設定するだけだ。

このときボックスの X 軸とボーンの X 軸を一致させておくといい。 ボーンのロールはプロパティシェルフ(N)のロールで設定できる。

set axis
座標軸の設定
roll
ロールの設定
constraint
コンストレイントの設定

体や頭のボーンを親としてアニメーションさせる剛体の最初のボックスを親子付けすると以下のようになる。

demo
動作デモ

設定

動作速度が遅い場合はシーンの速度を変更する。

speed
速度の変更

剛体の揺れを抑える時は剛体力学の減衰やばねの減衰を大きくする。

damping
減衰の設定

凸包の注意点

凸包はへこみを表現できない。 実際に凸のような形に凸包を適用すると以下のようになる。

convex
凸包はへこみを表現できない

このような場合はコリジョンメッシュを分割してへこみをなくすようにする。

作成風景(Youtube)

.blend ファイルダウンロード

Blenderで簡単にRigid Body(剛体)とConstraint(ジョイント)を設定できるaddon

スローペアレント+Bボーン

BlenderのBone+Empty+Slow Parentで弾んだり柔らかい動き

ver.2.78 使いやすくなったBボーンで遊んでみよう!

Bボーンとスローペアレントで簡易自動揺れモノ

アーマチュアにキーを打ったりアーマチュアを直接動かすのは推奨された方法ではない(アーマチュアを使うならボーンにキーを打つべき)ので、 ボーンを動かすことでスローペアレントを機能させる方法を紹介する。

手順

まずルートとなるボーンの位置に Empty を配置し Child of でその情報をコピーする。

set child
情報コピー用 Empty の配置

スローペアレントを有効にした追従先の Empty をボーンの情報をコピーした Empty の子にする。

set slow parent
スローペアレントの設定

あとはボーンに IK をつけるだけだ。

demo
動作デモ

.blend ファイルダウンロード

JiggleArmature add-on

cheece/JiggleArmature(GitHub) からダウンロードできる。コリジョンをサポートしていないのがこのアドオンの欠点だ。

VicTools Spring Bone

VicTools Spring Bone は以下の動画の概要欄からダウンロードできる。

キーを打ったボーンを用意して、ツールシェルフの Spring Bone Tool > Bake Spring Bone を押すと結果をベイクできる。VicTools が作成したキーは Clear All Bones Key で削除できる。

bake
Spring のベイク

波モディフィアで服をなびかせる

波(Wave)モディフィアで服をなびかせるリグ

demo
動作デモ

関連記事

動的に皺を作れる tension map の使い方

プリーツスカートのモデリング

ソフトボディを使って胸を揺らす

Blender 記事の目次


広告
広告