CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Blender2.9】物理演算を設定しよう!
こんにちは!
Blender修行中のHyouketsuです。
今回はBlenderの物理演算の機能を紹介します。
アニメーションを作る人や、3Dデザインをする上では知っておくと便利な機能なのでこの機会に覚えておきましょう!
物理演算を設定する
Blenderの物理演算の種類を紹介します。
- フォースフィールド
- コリジョン
- クロス
- ダイナミックペイント
- ソフトボディ
- 流体
- リジットボディ
- 爆発
フォースフィールド
外部に対して特定の影響を与えることのできる機能です。
〔パーティクル〕と〔ソフトボディ〕、〔リジットボディ〕、〔クロス〕に影響を及ぼすことができます。
例えば〔風〕という種類は、まさに風が吹いているようなシミュレーションを行うことができます。
〔クロス〕で作った旗を自然になびかせることなどができます。
▼【フォースフィールドを解説】はコチラ!
コリジョン
コリジョンとは、衝突判定をオブジェクトに追加するための機能です。
壁や机、床などのオブジェクトに追加することで、他の物体が物理的に接触する様子を再現することができます。
物理演算を使う上で、欠かすことのできない機能になります。
▼【コリジョンで衝突判定を追加】はコチラ!
クロス
服や布など連続的なメッシュで作られた物の再現の場合に用いられます。
オブジェクトを細分化することで、より精度が高い布を再現できます。
▼【細分化の方法まとめ】はコチラ!
他にも閉じたオブジェクトを使うことで、クッションのような膨らんだ形状を作れたりもします。
同じ機能で、気球も自然に膨らんだように作ることもできます。
▼【クロスシミュレーション:基礎編】はコチラ!
他の物理演算と組み合わせると様々なことができるのも面白いですね。
カーテンを物理演算で作った後に、〔コリジョン〕を使用して束ねることができます。
▼【カーテンを作成】はコチラ!
先ほど紹介した〔フォースフィールド:風〕と組み合わせることで、たなびく旗を作ることができます。
カーテンも同じように揺らすことができます。
▼【クロス×フォースフィールド:風】はコチラ!
▼【圧力で様々なもの作り】はコチラ!
ダイナミックペイント
オブジェクトにリアルタイムで波や凹凸といった変位、塗料を塗られたようなペイントや、ウェイト情報を作成できる機能になります。
〔ブラシ〕と〔キャンバス〕という種類があり、まさに名前の通りにブラシのオブジェクトでキャンバスに変化を与えることができます。
▼【ダイナミックペイントの解説】はコチラ!
ソフトボディ
ソフトボディを使うことで、さまざまな「やわらかいものの動き」を表現できます。
例えば、こちらのようにプリンがぷるぷると変形しながら動く様子を表現できます。
さらに、ソフトボディはメッシュオブジェクトだけでなくカーブやラティスにも使用することができます。
たとえば、ラティスをソフトボディで変形させることで、こちらのように木を風になびかせることができます。
▼【〔ソフトボディ〕を解説】はコチラ!
流体
液体と煙、火炎の再現に用いられます。
〔ドメイン〕と〔フロー〕と呼ばれる要素を組み合わせ作成します。
- フロー:流体が発生するオブジェクトに設定
- ドメイン:流体の発生する領域を設定
▼【ドメイン】はコチラ!
フローにそれぞれ、〔液体〕と〔煙〕、〔火炎 + 煙〕があります。
たくさんの項目があるので、細かい調整が可能です。
全ての項目を使いこなすのは難しいかもですが、こんなことができるというのを知っておくとよいですよ。
▼【煙の基礎編】はコチラ!
▼【火炎の基礎編】はコチラ!
▼【液体の基礎編】はコチラ!
実際に〔煙〕を使ってタバコのシーン作成をできるので挑戦してみてください!
▼【流体実践編:タバコ】はコチラ!
他にも流体の〔火炎〕を使用して爆発も作ることが可能です!
▼【流体実践編:爆発】はコチラ!
流体限定の〔コリジョン〕もあるので、合わせて理解しておきましょう。
▼【エフェクター:コリジョンとガイド】はコチラ!
リジッドボディ
リジッドボディを使うことで、さまざまな「固いものの動き」を表現できます。
例えば、こちらのようにリンゴを坂道に落下させて転がすことができます。
また、破壊を表現できるアドオン「Cell Fracture」と組み合わせることで、こちらのように落下させて壊すこともできます。
▼【CGエフェクトを作成】はコチラ!
因みに「リジットボディ」は直訳すると「剛体」となり、意味は「非常にかたくて、つぶしても引っ張ったり曲げたりしても全く変形しない、仮想的な物体」のことです。」
▼【〔リジットボディ〕を解説】はコチラ!
物理演算を設定してみる
試しに服に物理演算を当てていきましょう。
今回は簡単なボディモデルを用意し、ボディを複製してからTシャツを用意しました。
▼このような布感を再現してしましょう。
物理演算を設定する
物理演算はプロパティから設定していきます。
物理演算プロパティを選んでください。
▼クロスの設定を行うため、今回ボディは「コリジョン」を使用し、当たり判定として設定します。
コリジョンとは物理演算を適用したオブジェクトと接触判定を与えるモディファイアです
▼用意した服の方は「クロス」を設定します。
これで
- 服・・・クロス
- 体・・・コリジョン
の物理演算が設定できました。
タイムラインから再生することで物理演算が反映されます。
すぐに動作しない場合、十字キーでタイムラインを動かしてみると反映される場合がありました。
好みの布の動きになるように剛性や減衰を設定しましょう。
ソフトボディで物理演算を設定してみる
身体の動きを再現する場合はリギングをしたり、ほかの柱を追加する場合がありますが、
試しに今回はこのボディからソフトボディの物理演算を試してみます。
物理演算を軽量化するために胸部だけを表示します。
まず物理演算を設定する前に物理演算を適用させない頂点グループを作成します。
▼【頂点グループの使い方】はコチラ!
胸部を揺らすための物理演算を適用したいので、胸部以外のパーツを選択します。
▼ソフトボディのプロパティからゴールを設定しましょう。
ゴールとはマラソンなどの到達地点の意味ではなく、Vertexの目標地点のことを指します。
今回は動かない頂点という効果で用いることができます。
動かしたくない頂点グループを選択しましょう。
アニメーションをつけることでこのような動きになります。
物理演算をベイクする
物理演算を設定し、何かの作業の度にその都度演算を行うとPC性能へのリソースや時間を多く使う結果になってしまいます。
対策として物理演算で出した時間軸・シーンごとのメッシュ形状を保存して読み込むことで軽量化でき、その物理演算の保存の工程をベイクといいます。
キャッシュからベイクする
ベイク自体はキャッシュから行うことができます。
キャッシュの設定を行う
①キャッシュ名
キャッシュは一つのオブジェクトに対して複数回行うことができます。
また、その管理を行うことができます。
操作に関してはテクスチャのマテリアルや頂点と類似しているため省略します。
②キャッシュの範囲
シミュレーションの開始と終了地点の設定ができます。
また、キャッシュの保存間隔を指定できます。
ステップを広くするとデータサイズは抑えられますが、よほどの大規模モデリングではない限り、「1」に設定しましょう。
③キャッシュのベイク先の設定
キャッシュは通常.blendファイル内部に保存されるため、特段設定する必要はありません。
もしキャッシュ自体をデータとして保存したい場合「ディスクキャッシュ」にチェックを入れます。
.blendファイルが保存されている同じ階層に保存されます。
「Use Libray Path」も特に設定する必要がありませんが、もし今開いているプロジェクト内のオブジェクトが別のフォルダ等に保存されている場合、キャッシュの保存先を元データの方に保存する項目です。
④ベイク
- ベイク・・・このオブジェクトの物理演算をベイクします
- BAKE All Dynamics・・・すべてのオブジェクトの物理演算をベイクします
- Current Cache to Bake・・・現時点のシーンの物理演算をベイクします
まとめ
物理演算を行えるようになるとアニメーションやモデリングに幅が広がります。
例えば服を直接モデリングで作って重ねるだけでは、再現できない着ているしわなども再現できません。
そういった際に物理演算を用いたり、物同士をぶつけた際の動きの変化なども再現できます。
▼こちらでもパソコンを紹介しています。
もしVtuberモデルを作る場合は、リギングやダイナミックボーンなどで物理演算を再現した方が低負荷で動かせる結果になるでしょう。
物理演算でできることと物理演算じゃなくてもできることを理解することでBlenderをより深く理解していきましょう!