広告
広告

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

カテゴリ:blender

目次

クロスシミュレーション

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

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

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

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

クロスシミュレーション + Surface Deform

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

服が貫通する場合

ソフトボディ

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

ソフトボディ + IK

そのほか

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

スローペアレント+Bボーン(物理シミュレーションではない)

JiggleArmature add-on

クロスシミュレーション

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

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

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

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

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

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

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

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

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

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

クロスシミュレーション + Surface Deform

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

Surface Deform は Blender 2.79 で実装される予定だ.

Surface Deform Modifier

Surface Deform Technical Documentation

使い方

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

surface deform
Surface Deform の設定

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

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

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

setting

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

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

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

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

服が貫通する場合

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

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

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

damping
Spring の設定
penetrate
動作デモ

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

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

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

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

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

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

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

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

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

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

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

ソフトボディ

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

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ボーンで遊んでみよう!

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

手順

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

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

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

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

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

demo
動作デモ

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

JiggleArmature add-on(物理シミュレーションではない)

cheece/JiggleArmature(GitHub)

関連記事

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

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

Blender 記事の目次


広告
広告