【Blender】物理演算|ソフトボディでキャラの胸を揺らすよ

その他

今回は、ソフトボディを体に対して適用していくことについて共有していきます。また今回の内容は、様々な方のBlenderチュートリアルを参考にしています。私のでわからない場合は検索すればサクッと解決するかもしれません(笑)

ソフトボディを体に!?

今回のタイトル通り、”ソフトボディを体に”ということでまぁなんか少しいやらしい感じが出てますが、簡単に言うと”揺れるモノ”を表現していきたいと思います。

人間における”揺れるモノ”っていうと、代表的なのは”髪の毛”とか”胸”ですかね。作者(ミクロ)はオスなので、やっぱり胸を揺らしてみたいなとか思いましたね。



とりあえず揺らしていきましょう(笑)

ソフトボディ

ソフトボディとは、柔らかい物体(オブジェクト)を表現するために用いる物理演算といった形です。実際にソフトボディシミュレーションを適用した動画を以下に載せます。

柔らかいモノと言ったら、プリンかなと思ったので簡単に作ってみました。このプリンには2つの揺れが存在しています。それは縦揺れ横揺れです。どちらともそれぞれソフトボディを使って再現しています。

このプリンでいう横揺れを使って、胸の揺れを再現していきたいと思います!まだ、何もわからなくて良いです。順を追って説明していきます。

その前に胸の揺れに関しての動画も載せておきますね。
あくまでマネキンです(笑)

揺れる表現の仕組み

揺れる仕組みに関してですが、4つの工程を踏むことで動画のようにオブジェクトを揺らすことが可能になります。4つの工程は以下の通りです。

①カーブオブジェクトを揺らします。

②カーブオブジェクトの揺れに追従するオブジェクトを作成します。
※このオブジェクトは”フォローオブジェクト”とここでは呼びます。

③フォローオブジェクトを追従するリグを作成します。

④リグと揺らしたいオブジェクト(プリン)を関連づけます。
※ウェイトを付けます。

LINE風チャット画面(会話方式)を記事に表示する
※先に謝っておきます。申し訳ございません。

本来、動きのある3Dオブジェクト(今回の場合はオブジェクトを揺らす)を作成する場合、オブジェクト➡リグ➡カーブオブジェクト➡フォローオブジェクトの順に作成されるため、上記の順番では行わないと思います。

今回は説明のために、手順が変更されていることをご了承ください。

言葉だけだと本当にわからないですね…イラストにしてみます!

①カーブオブジェクトを作成し、ソフトボディで揺れるようにします。

②カーブオブジェクトの揺れを追従するフォローオブジェクトを作ります。要は、フォローオブジェクトはカーブオブジェクトと同じ動きをさせます。

③フォローオブジェクトの揺れを追従するリグを作ります。要は、リグはフォローオブジェクトと同じ動きをさせます。

リグと、【揺らしたい】オブジェクトをペアレント付けします。要は、【揺らしたい】オブジェクトはリグと同じ動きをします。

わかりましたかね?次はBlenderで実際にやっていきます!

カーブオブジェクトを作成&ソフトボディシミュレーション

カーブオブジェクトを作成し、ソフトボディを適用した動画です。



ここからBlenderで作業します。

ベジエカーブを作成します。オブジェクトモードでShift+Aから作成できます。

作成したベジエカーブをZ軸を軸に90度回転させます。

LINE風チャット画面(会話方式)を記事に表示する
覚えて損しないショートカットキー

“回転”=R
“任意の軸をもとに回転”=R+X,Y,Z(いずれか)

ベジエカーブを直線にします。
※直線にしなくてもよいですが、リグに組み込むため直線のほうが良いと思います。

ベジエカーブをソフトボディに適当します。“物理演算プロパティ”から“ソフトボディ”を選択します。設定の値を以下のように変更します。
※値に関してはお好みで良いと思います。画像のように真似てみてもOK!

  • 剛性を0.5~0.9(項目:▼ゴール)
  • デフォルト1.0(項目:▼ゴール)
  • 最小0.5~0.9(項目:▼ゴール)
  • 最大1.0(項目:▼ゴール)
  • 曲げ0.1(項目:▼辺)

フォローオブジェクトを作成&オブジェクトコンストレイント

フォローオブジェクト(エンプティ)を作成し、オブジェクトコンストレイントを適用した動画です。



ここからBlenderで作業します。

エンプティを作成します。 オブジェクトモードでShift+Aから作成できます。

“オブジェクトコンストレイントプロパティ”“オブジェクトコンストレイントを追加”を選択し、その中の“パスに追従”を選択します。
設定の値を以下のように変更します。

  • ターゲットをベジエカーブ
  • 定位置に☑

リグを作成&ボーンコンストレイント

リグを作成し、ボーンコンストレイントを適用した動画です。



ここからBlenderで作業します。

カーブの長さを元にリグを作成、配置していきます。オブジェクトモードでShift+Aからアーマチュア(単一ボーン)を作成できます。

ピッタリ配置する必要はありませんが、配置したい場合は、“編集モード”➡”カーブの先端の頂点を選択”➡”Shift+S”➡”カーソルを選択物に(テンキー2)”の順で選択し、カーブの先端にカーソルを配置します。次に、“リグのヘッド(軸側)、テールを選択”➡” Shift+S”➡”選択物をカーソルに(テンキー8)” の順で選択し、配置していきます。

本来、動きのある3Dオブジェクトを作成する場合、オブジェクト➡リグ➡カーブオブジェクト➡フォローオブジェクトの順に作成されるため、上記のようなことはしないと思います。オブジェクト➡リグの順で作成されている方は、リグの両端(ヘッドとテール)にカーブの両端を合わせてください。

ベジエカーブの親に、リグ②を選択します。リグ②とはリグ①の親にあたるボーンです。

  • リグ①は揺れるオブジェクトに対するボーン
  • リグ②は揺れるオブジェクトに対するボーンの親

親の設定に関しては、“オブジェクトモード”➡”ベジエカーブ選択”➡”Shift+アーマチュア”➡”Ctrl+Tab(オブジェクトモードからポーズモード)”➡”リグ②(リグ①の親)”➡”Ctrl+P(ペアレント対象)”➡”ボーン”で設定できます。
※ベジエカーブのオブジェクトプロパティの関係から、親の設定は確認できます。

ベジエカーブの原点をジオメトリへ移動させます。

移動のさせ方は、“オブジェクトモード”➡”ベジエカーブを選択”➡”右クリック”➡”原点を設定”➡”原点をジオメトリへ移動”で設定できます。

リグ②をリグ①の親に設定します。

LINE風チャット画面(会話方式)を記事に表示する
※先に謝っておきます。申し訳ございませんver2。

本来、普通にテールから順にリグを作成していれば親になっていますが、今回の場合はリグ2のヘッドからリグ1を作成したため、余計に設定が増えてしまいました。

リグ①にボーンコンストレイントの軸固定トラック(2つ)を設定していきます。

軸固定トラックの設定は、“オブジェクトコンストレイントプロパティ”➡”オブジェクトコンストレイントを追加”➡”軸固定トラック”で設定できます。

軸固定トラック(2つ)の設定は以下のようにします。

  • ターゲットはエンプティ(フォローオブジェクト)
  • 固定された軸はZ
  • 影響0.5
  • ターゲットはエンプティ(フォローオブジェクト)
  • 固定された軸はX
  • 影響は0.5

軸固定トラックを2つ設定する意味は、上記のようにY軸以外に追従してほしいためです。

軸固定トラックの影響0.5の場合は、リグを任意の方向に回転させることができます。

軸固定トラックの影響1.0の場合は、リグを任意の方向に回転させることができません。 なので0.5にします。

減衰トラックでも同じ動きをさせることができますが、軸固定トラックの影響1.0と同じくリグを任意の方向に回転させることができません。
※減衰トラックの影響の数値に関しては、そもそも意味合いが異なるため揺れに対して意図していない影響が出ます。

リグとオブジェクト(揺らしたい)のペアレント作成

リグとオブジェクト(揺らしたい)のペアレント関係を作成し、ウェイト付けした動画です。



ここからBlenderで作業します。

揺らしたいオブジェクトを作成します。今回は、プリンに棒が生えたオブジェクトを用意しました。

リグとオブジェクトのペアレント関係を設定します。リグ①に対するウェイトは画像の感じです。

ペアレント関係の設定は、“オブジェクトモード”➡”オブジェクトを選択”➡”Shift+アーマチュアを選択”➡”Ctrl+P(ペアレント対象)”➡”自動のウェイトで”で設定できます。

※ “自動のウェイトで” ではなく “空のグループで”でも良いです。空のグループの場合、手動でウェイトを塗っていくことになります。(私は適当に手動でやりました)

ウェイトの塗り方に関しては、今回は深く説明しません。リグが動くと、それに対するオブジェクトがどのくらい動くか?という設定です。

リグ②に対するウェイトは画像の感じです。



これで、終わりです!!案外長くなった(笑)

オブジェクトを適当に揺らすことはとても簡単ですが、オブジェクトの動きに対して任意の部分を揺らすっていうのは少しばかり難しいですよね(笑)



ではまたっ!!

コメント

タイトルとURLをコピーしました