CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Blender2.9】フォースフィールドについて解説:風や渦、磁場を実装しよう!
こんにちは!
Blenderの使い方や機能、ノウハウについてまとめているUEDAです。
自分のためのアウトプットの意味合いもありますが、読んだ方の参考になれば嬉しいです。
今回は〔フォースフィールド〕についてまとめていきます。
パーティクルを使用して各種フォースフィールドの動きを確認していますが、パーティクル側の設定については触れていません。
詳しくはコチラの記事で確認してください。
他の物理演算についてもまとめているので、ぜひ読んでみてください。
▼【物理演算の設定】はコチラ!
フォースフィールドとは?
〔フォースフィールド〕とは、外部に対して特定の影響を与える機能のことです。
例えば〔風〕というフォースフィールドがあり、まさに風が吹いているようなシミュレーションを行うことができます。
ただのオブジェクトはこのフォースフィールドの影響は受けません。
影響を受ける対象は〔パーティクル〕と〔ソフトボディ〕、〔リジッドボディ〕、〔クロス〕になります。
これらは自動的に影響を受けますが、設定で影響をおさえることも可能です。
このことに関してはそれぞれの記事で触れているので、そちらの記事で確認してください。
設定を行ったら”Space”を押すことで、シミュレーションが再生されます。
使い方
まず〔フォースフィールド〕は何か他のオブジェクトをハンドルとして、移動と回転、拡大縮小を行います。
追加方法は2つあり、ハンドルの種類によって使いたい方を選びましょう。。
- Shift + A
- 物理演算プロパティ
ハンドルを選ぶ理由としては、後述する〔カーブガイド〕の場合はハンドルとして〔カーブ〕を使用する必要があります。
他には、〔シェイプ〕もハンドルによって使えるもの使えないものがあります。
〔Shift + A〕での追加方法は他のオブジェクトなど同様に、一覧から選択して画面に追加します。
追加するとエンプティをハンドルとした〔フォースフィールド〕が追加されます。
次に画面左側の〔物理演算プロパティ〕からは、オブジェクトを選択して〔フォースフィールド〕を追加します。
この場合は、選択したオブジェクトがハンドルになります。
後はフォースフィールドの対象としたいものを準備して、フォースフィールドの調整を行えばOKです。
基本機能
フォースフィールドにはそれぞれ特定の影響がありますが、とりあえず共通している基本機能を紹介します。
それぞれの詳しい内容については、後述します。
タイプ(設定)
〔タイプ〕は、フォースフィールドの種類を変更できます。
追加後に違うフォースフィールドを試したくなったら、ここから変更できます。
シェイプ
〔シェイプ〕は、フォースフィールドの作用する方向を決めることができます。
以下の6種類があり、ハンドルが〔サーフェス〕と〔全ての点〕はオブジェクトのみ、〔カーブ〕はカーブの時のみ使用できます。
〔ポイント〕は、原点から全方向に影響を与えます。
〔ライン〕は、ローカルのXY平面に影響を与えます
〔平面〕は、ローカルのZ軸方向に影響を与えます。
〔サーフェス〕は、 オブジェクトの面から影響を与えます
〔全ての点〕は、オブジェクトの頂点から影響を与えます。
〔カーブ〕は、カーブの形状に沿って影響を与えます。
強さ
〔強さ〕は、フォースフィールドの与える影響の強度を設定できます。
負の値の場合は逆方向に作用します。
フロー
〔フロー〕は、影響に対する抗力を設定できます。
動画の様に数値を上げるとパーティクルが減速しているのが分かります。
恐らく空気抵抗を追加するような感じだと思われます。
影響:位置/回転
〔位置〕は、対象の位置に影響を与える機能です。
オフにするとフィールドの影響がなくなってしまうので、基本的にはオンのままでよいでしょう。
〔回転〕は、パーティクルの回転に影響を与える機能です。
パーティクルの〔回転〕内にある〔ダイナミック〕を使用している場合に意味があるようです。
でも簡単な検証ではあまり差が分からなかったです。
ノイズの量/シード値
〔ノイズの量〕は、〔強さ〕で設定した値をどれだけ乱すか設定できる。
〔強さ〕の値は変えていないが、他の強さの影響を受けているパーティクルが存在している。
〔シード値〕は、このノイズのランダム性を変更することができます。
値を変更して、気に入ったものを使うとよいですね。
吸収
〔吸収〕は、コリジョンに衝突した後のフォースフィールドの影響力を設定できます。
オンにすることでオブジェクトの裏側に影響力がなくなり、パーティクルが停止しています。
〔コリジョン〕内の〔フィールドの吸収〕で具合は調整できます。
風の係数
〔風の係数〕は、クロスなどに作用した時にどれだけ影響力が弱まるか設定できます。
値を大きくすることで、フォースフィールドの影響力が弱まってより早く落ちてきています。
シェイプ(減衰)
〔シェイプ〕は、フォースフィールドの減衰する形状を設定できます。
以下の3種類があり、後述する〔パワー〕を”0”以上にすることで有効になります。
点線の部分が〔シェイプ〕の形状になり、二重にあるのは後述する最小/最大距離の2つが視覚化されているからです。
Z方向
〔Z方向〕は、減衰の調整を有効にする方向をZ軸で設定できます。
〔+Z〕にすると-Z軸は減衰しきりますが、+Z軸は減衰しません。
そこから〔パワー〕の値を上げていくと、+Z軸でも減衰が発生します。
パワー
〔パワー〕は、フォースフィールドの原点からどのくらい離れたら減衰するかを設定できます。
最小/最大距離
〔最小距離〕は、減衰が無効な範囲を設定できます。
〔最大距離〕は、フォースフィールドの有効な範囲を設定できます。
先ほどの〔シェイプ〕によって距離を設定する形状が異なります。
また〔チューブ〕の場合は〔放射〕、〔円錐〕の場合は〔角度〕という項目が追加されます。
これらの項目で更に、距離を調整することが可能です。
種類
フォースフィールドには以下の13種類があります。
- 力
- 風
- 渦
- 磁石
- 調和
- チャージ
- レナードジョーンズ
- テクスチャ
- カーブガイド
- ボイド
- 乱流
- ドラッグ
- 流体フロー
それぞれの詳細と、基本機能ではない部分を書いていきます。
力
〔力〕は、原点から一定の斥力と引力を発生させます。
正の強さの場合は斥力で、負の強さの場合は引力になります。
〔重力〕は、フォースフィールド内に重力を発生させて対象を遅くさせます。
風
〔風〕は、フォースフィールドのハンドルのローカルZ軸単一方向に一定の力を発生させます。
風の強さは、ローカルZ軸に垂直な円の間隔によって視覚化されています。
この風を使って〔風にたなびく旗〕を作りました。クロスについて勉強したい人は参考にしてください。
渦
〔渦〕はフォースフィールドのハンドルのローカルZ軸方向に螺旋状の力を発生させます。
〔流入口〕は、螺旋状の力への抵抗力を追加することができます。
数値を大きくすると動きが鈍くなっており、基本機能の中で紹介した〔フロー〕の渦版という感じでしょうか。
負の値にすると螺旋とは逆回りに飛んでいきます。
磁石
〔磁石〕は、磁化されたものに対する磁力を発生させます。
パーティクルの〔速度〕の設定によって、動きが異なります。
調和
〔調和〕は、指定した箇所に対象を集める高周波を発生させます。
〔減衰〕を”1”に設定することで、指定した箇所に到達後に停止します。
これはテキストに〔フォースフィールド:調和〕を発生させて、パーティクルが集まっている様子です。
〔静止長〕は、指定箇所からどれだけずらすかを設定できます。
〔シェイプ:ポイント〕にして、〔静止長〕を”0.500”にしました。
〔複数のばね〕をオンにすると複数のばねの影響を受けるようになるみたいですが、複数のばねというのが分かりませんでした。
解明したら追記します、すみません。
チャージ
〔チャージ〕は、電荷力を発生させます。
〔フォースフィールドの設定〕から〔チャージ〕を設定(電荷を付与)したパーティクルを使用することで、影響が表れます。
動画の場合は立方体に〔フォースフィールド:チャージ〕を設定して、電荷を持つパーティクルが引き寄せられています。
パーティクルとフォースフィールドの正負の組み合わせで動きが変わります。
【パーティクル:フォースフィールドの設定についてはコチラ!】
これを使ったアニメーションを作っている方がいたので、実用的な使い方は更にコチラを見ることをオススメします!
レナードジョーンズ
〔レナードジョーンズ〕は、パーティクルを反発させるフィールドを発生させます。
先ほどの〔チャージ〕と同じく〔フォースフィールドの設定〕から〔レナードジョーンズ〕を設定したパーティクルを使用することで、影響が表れます。
その際に強さは正と負にしてください。
動画や公式マニュアルを見ていると正と負の組み合わせでやっていました。ですが、正負が同じでも動きに違いは見られませんでした(僕だけかもしれません)。
また特徴としてパーティクルの大きさで反発力が決められます。
大きければ大きいほど、反発力も大きくなります。
因みに正式なレナードジョーンズとは、2つの原子間での相互作用によるエネルギーのことのようです。
レナード-ジョーンズ・ポテンシャル(英: Lennard-Jones potential)とは、2つの原子間の相互作用ポテンシャルエネルギーを表す経験的なモデルの一つである。ポテンシャル曲線を表す式が簡単で扱いやすいので、分子動力学計算など、様々な分野において使われる。その名はレナード-ジョーンズにちなむ。
レナード-ジョーンズ・ポテンシャルは、実際のポテンシャル曲線を表現するための簡便な手法であり、少数のパラメータを用いたフィッティングに相当するため厳密ではない。しかし、問題の種類によっては、この方法で十分な場合がかなり多い。レナード-ジョーンズ・ポテンシャルに用いるパラメータは、実験的に求められた第二ビリアル係数、粘性係数、熱伝導率などから、推定することができる。他の原子間の相互作用のモデルポテンシャルとしては、モースポテンシャル(Morse potential)等が挙げられる。
出典:フリー百科事典『ウィキペディア(Wikipedia)』 レナード-ジョーンズ・ポテンシャル
テクスチャ
〔テクスチャ〕は、テクスチャ情報を使用して複雑なフィールドを発生させます。
赤はX軸、緑はY軸、青はZ軸と3方向に割り振られており、黒はRGB値が全て”0”なので停止します。
動画では〔マジック〕のデフォルトのまま使用しています。
テクスチャの設定方法や種類など詳しくはコチラの記事でまとめているので、ぜひ読んでみてください。
〔テクスチャモード〕には以下の3種類があり、フォースフィールドの方向を設定できます。
- RGB:RGBを必要とする、無い場合は十分な効果を得られない
- グラデーション:テクスチャの強度(グレースケール)のみで実行可
- カール:カラーテクスチャのみで実行可
〔ナブラ〕は、〔グラデーション〕と〔カール〕の時に使用されるオフセットです。
値を上げていくと動きが鈍くなり、オフセットなので位置も変更されます。
〔2D〕は、Z軸への影響を無視してXY平面のみに影響が表れます。
カーブガイド
〔カーブガイド〕は、パーティクルをカーブオブジェクトに沿わせるフィールドを発生させます。
ソフトボディには影響しません
〔カーブガイド〕については特別な項目が多いので、別の記事でまとめようと思います。
・〔カーブガイド〕の記事は準備中。。
ボイド
〔ボイド〕は、パーティクルの〔物理タイプ:ボイド〕を利用するためのフィールドを発生させます。
ボイドについて詳しくは別の記事でまとめようと思います。
・〔パーティクル:ボイド〕の記事は準備中。。
ボイドはAIを利用して、動物の群れなどの生命体をシミュレートすることができます。
とりあえずコチラの動画を見てもらえれば、どのようなことができるのか理解できますよ。
乱流
〔乱流〕は、ランダムで混沌としたフィールドを発生させます。
間欠泉や海底の水のような動きだと公式マニュアルに記載がありました。
〔サイズ〕は、乱流全体の大きさが変化します。
〔グローバル〕は、使用する座標を変更する機能です。
多少の変化でしたが、オンにすることで位置が変わりました。
ドラッグ
〔ドラッグ〕は、パーティクルの動きを減速させるフィールドを発生させます。
〔リニア〕と〔二次式〕によって減速の具合を調整することができます。
パーティクルの〔フォースフィールド設定〕から自己エフェクトをかけた状態で実行してみました。
パーティクルが動いていれば効果があるので、他のフォースフィールドと組み合わせる使い方も考えられます。
流体フロー
〔流体フロー〕は、〔流体〕のシミュレーションの流れる速度を適用するフィールドを発生させます。
〔ドメインオブジェクト〕は、〔流体フロー〕で使用したい〔流体〕のシミュレーションを設定できる。
例えばここに〔煙〕のシミュレーションを設定すると、その煙の流れに沿うような動きを作り出すフィールドになります。
〔密度を適用〕は、流体の密度によってフィールドの強さを調整する機能です。
煙の密度を最大値の”1”にしているので、オンにすると若干動きが鈍くなっています。
密度設定は〔流体〕→〔設定〕→〔密度〕から行いました。
まとめ
フォースフィールドを全て使いこなすのは骨が折れる作業ですね。
〔風〕や〔カーブガイド〕なんかは使いやすそうで、今後作ったオブジェクトに実装してみても面白そうです。
〔ボイド〕なんかも動物の動きを細かい調整で再現できるということで、いつか上手く使ってみたいです!
- 外部に対して特定の影響を与える力場を作成
- フィールドのハンドルによって機能に差異がある
- フォースフィールドは13種類
- 力
- 風
- 渦
- 磁石
- 調和
- チャージ
- レナードジョーンズ
- テクスチャ
- カーブガイド
- ボイド
- 乱流
- ドラッグ
- 流体フロー