トップ  >  1. Blenderリリースノート翻訳  >  Blender機能別  >  Blender2.37 SoftBody
元記事:Softbodies


ソフトボディ(SoftBody)



はじめに


Blender のそれぞれの Object で "SoftBody(軟体物理演算)"エフェクトを適用できるようになりました(現在は Mesh と Lattice のみ)。一旦適用すると、この SoftBody システムは、ゼリーや布のような柔らかい物質を支配している物理法則を元に、Vertex を動かすことができるようになります。

2.37デモファイル(4MB)に、SoftBody の二つのサンプル、softbody_basics.blend と wind_soft.blend があります。


SoftBody エフェクトをコントロールするには、主に二つの方法があります。

"Goal"
SoftBody の Goal は、選択された Vertex の組で、ピンのような役割をします。SoftBody の影響量のコントロールはこれらで行います。
Goal を完全にアクティブ(1.0)にすると、Object は通常のアニメーション付き Object(SoftBodyエフェクトなし)のように振るまいます。
Goal を0.0にした場合、Object は物理法則にのみ影響を受けます。
Goal 値を0.0から1.0の間に設定することにより、Object がアニメーションシステムから受ける影響と、SoftBody エフェクトから受ける影響をブレンドすることができます。

また、Goal はメモリとしても働き、SoftBody Object があまり大きく変形しないようにし、最終的にはSoftBody によるアニメーションがされていない形状になります。
VertexGroup の Weight システムを使用して、Goalのウェイトを Vertex ごとに設定できます。

より自然に見えるようにするには、Vartex がオリジナルの位置からどれだけ遠くに動けるかをコントロールするスプリング(Stiff)を設定するといいでしょう。



Weight Paint を使用し、SoftBody の Goalを作成




スプリング
Edge のスプリングは、Edge がオリジナルの長さをどれぐらい保つかを決めます。例えば、Cube に対角線の Edge を追加することにより、より堅牢になります。(より「ゼリー状」ではなくなります)。Edge のスプリングを使用することで、Object はそのオリジナルの形状を保ちつつ、物理によって自由に動くことが可能になります。
スプリングはまた、布のシミュレーションにも使用することができます。


現在の実装


Blender2.37の SoftBody システムは主として、アニメーションシステム(キャラクタアニメーションも含む)の拡張を目的としています。柔らかい、もしくはくねくねするスキンのようなエフェクトが非常に簡単にできるようになりました。

SoftBody エフェクトをある Object で有効にした時、常に時間の進行をシミュレートします([Alt]+[A]のようなアニメーション再生、もしくは[→]キー)。逆方向の時間、もしくは9フレームを超えた大きなステップのジャンプでは、SoftBody はオリジナルの位置に戻ります。新しい TimeLine Window の再生を使えば、SoftBody のエフェクトの調整をインタラクティブに行えます。

一旦シミュレーションに満足したなら、"Bake" でシミュレーションを静的なアニメーションシステムに焼き付けるといいでしょう。Bake した SoftBody は非常に早く再生され、シミュレーションにはもう依存しなくなります。
シミュレーションはモーションブラー(MBlur)レンダリングでは上手く働かないこと、また、ネットワークレンダリングシステムで小さなチャンクでレンダリングするためには、アニメーションのレンダリング時には SoftBody を Bake することをお勧めします。

布のシミュレーションに SoftBody を使用する場合、特に衝突判定についてはまだテスト段階です。現在の衝突判定コードは改良が必要で、後のリリースに予定されています。

また、布のシミュレーションをもっと正確にコントロールするため、後のリリースで特別な Edge オプションを追加する予定です。現在、SoftBody のすべての Edge の効果は等しくなっています。


Field と Deflector


SoftBody の Vertex は Particle として扱われるため、ForceField と Deflector のオプションも同様に適用されます。

反射(衝突)はデフォームされていない(hook、Armature、Latticeなどが適用されていない)Mesh でのみ動作することに注意して下さい。詳細はField と Deflection をご覧下さい。


SoftBody の設定





Softbody 設定パネル


全体的なオプション:
  • Enable Soft Body
    SoftBody エフェクトを現在の Object で有効にします。


  • Friction
    全体的な「媒質」の摩擦で、Vertex のモーションすべての減速に使用します。


  • Mass
    Vertex の質量。大きいとモーションが遅くなります。


  • Grav
    SoftBody に影響する重力の量を変えます(力は負のZ軸の方向に加えられます)。


  • Speed
    SoftBody の内部タイミングをこの値でコントロールできます。


  • Error Limit
    ルンゲクッタ法:シミュレーション中のステップサイズを決定します。小さい値で精度が上がりますが、計算時間は増大します。


  • Apply Deform First
    SoftBody を他の Lattice もしくは Armature によるデフォームの後に適用します。(訳注:つまり、デフォームを先に(first)適用します)



Goal オプション:
  • Use Goal
    アニメーションの動きをシミュレーションに使用します(Ipo、デフォーム、Parent等)。"Goal" は、アニメーションを元にした、Vertex の最終的な目標となる位置です。SoftBody がこの Goal にどれだけ到達しようとするかは、Stiffness と damping によって決定できます。


  • Goal
    VertexGroup が全く設定されていない時の、すべての Vertex のデフォルトの Goal ウェイト。もし VertexGroup が存在する、もしくは適用されている場合、代わりに Goal の VertexGroup の名前が表示されます。


  • G Stiff
    Goal のスプリングの硬さ。低い値で非常に弱いスプリング(Goal へのより柔らかい「器具」)になり、高い値で強いスプリング(Goal への硬い「器具」)になります


  • G Damp
    Goal の摩擦。高い値で SoftBody 上の Goal への効果が弱くなります。


  • G Min/G Max
    VertexGroups を WeightPaintMode で値をペイントした時、GMin とGMax を使用して Weight 値の範囲を(絞り込んで)調整することができます。一番低い Vertex Weight(青)は GMin になり、一番高い値(赤)は GMax になるでしょう。



Edge オプション:
  • Use Edges
    Mesh Object の Edges (あれば、自動的に Editing(EditButtons)→Meshパネルの Edge がONになります)が同様にスプリングとして動作します。


  • Stiff Quads
    四角形の Face で、対角線の Edge が、スプリングとして使用されます。四角形の Face が完全につぶれるのを防ぎます。


  • E Stiff
    Edges のスプリングの硬さ(どれだけ Edges が伸びるか)。低い値で非常に弱いスプリングになり(非常に弾力のある材質)、高い値で強いスプリング(硬い材質)になります。


  • E Damp
    Edges のスプリングの摩擦。高い値で E Stiff の効果が弱くなります。



Bake の設定




Start、End
Bake(焼付け)する SoftBody シミュレーションの範囲の設定。

Interval
Bake 間隔のフレーム数の設定(Bake 結果の「解像度」)。中間の位置はこのステップをキーフレームとして使用し、Bスプラインで補間されます。

Bake
Bake 処理の開始。複雑さにもよりますが、すこし時間がかかります。[Esc]で Bake を止めることができます。一度 Bake すると、このボタンは "Free Bake(Bake の解放)" ボタンに変わります。SoftBody の設定を変えたい時は、Bake された結果を解放しなければなりません。


SoftBody の学習


以下にスタートガイドと、Blender の SoftBody を学び、実践できる、いくつかのビデオチュートリアルへのリンクがあります。

チュートリアルへのリンク
Elysiun.comで、Tuxbot氏が素晴らしい SoftBody ビデオチュートリアルをいくつか作成・告知されています。これらはblendertutorials.orgで公開されています。

スタートガイド
このセクションは主な二つの種類の SoftBody、「ゼリー」オブジェクトと、布オブジェクトの作成をカバーするものです。これらは深い部分に触れるチュートリアルではなく、むしろ Blender の SoftBody システムを身近な物にするサンプルです。


「ゼリー」SoftBody

このサンプルは比較的シンプルで、Goal の設定と VertexGroups の作成について悩む必要はありません。

このサンプルで必要なのは、一枚の Plane と、一つの IcoSphere(Subdivision:2)だけです。Plane の大きさは IcoSphere より少し大きくして下さい。IcoSphere の位置(Object の中心位置)は、 Plane の4グリッドユニット上にして下さい。

EditButtons([F9])の Smooth ボタンと SubSurf ボタンをONにし、IcoSphere をなめらかにします。SubSurf のレベルを2にすると、よりなめらかになります。

そして EditMode を出て、ObjectButtons([F7])に行きましょう。SoftBody パネルをクリックし、"Enable Soft Body" をクリックします。ゼリーのようなエフェクトには、少しの設定だけでOKです。まず最初に、"Use Goal" ボタンをOFFにします。どの Vertex にも重み付けの必要がないためです。

次に "Grav" を9.8ぐらいまで増やします(これは現実の重力のシミュレートです)。

そして、"E Stiff" を0.9ぐらいまでに増やします。"E Stiff" より高く、もしくは低くすると、硬い、もしくは柔らかい材質のゼリーになります(一番高いレベルにすると、この IcoSphere は剛体に近くなります)。

最後に、IcoSphere を Plane 上でバウンドするようにする必要があります。Plane を選択し、Particle Interaction パネル(タブ)をクリックし、"Deflection" をONにします。デフォルトの設定のままで大丈夫です。

では[Alt]+[A]を押し、ゼリーがバウンドするのをみましょう!


布の SoftBody

このサンプルは前回に比べ少し複雑になりますが、さほど多いわけではありません。
Plane を作成し、少し大きくします。Subdivide([W]キーメニュー)を二回行います。EditButtons([F9])にし、SubSurf をONにします(レベルは2がベストです)。そして"Set Smooth" を押します。

「ピン」を布の隅の一つに追加します。SoftBodyのエフェクトが判るようにするためです。新しい VertexGroup を作成し、"Weight" を0にします。すべての Vertex を選択し、"Assign" を押します。

次に、布の隅の Vertex を一つ選択し、"Weight" を1.0にします。そしてもう一度 "Assign" を押します。これは SoftBody シミュレーションが進行中、その Vertex をその位置に固定します。

EditMode を出、ObjectButtons([F7]) の SoftBody パネルに移動します。再び "Enable Soft Body" をクリックします。"Grav" を9.8に増やし、今回は、"Use Goal" ボタンはONのままにしておきます。"Use Goal" の隣になる小さいメニューボタンをクリックし、先ほどの VertexGroup の名前を選択し、Goal に使用します(このケースでは、選択できるのは Group だけです)。

では、[Alt]+[A]を押してみましょう。布が重力に反応するのがわかります。材質の柔らかさを変えるには、"E Stiff"ボタンを調整します ― 小さい値で布はほぼ無限に伸び、大きい値でほとんど伸びなくなります。

コーディング:Jens Ole Wundsi氏、統合:Ton Roosendaal氏
リリースログとチュートリアル:Jason Saunders氏


プリンタ用画面
友達に伝える
投票数:69 平均点:10.00
前
Blender2.37 変形ツール
カテゴリートップ
Blender機能別
次
Blender2.37 Field と Deflection

クイックリンク

2013/11/15版
●Blender.org
BlenderFoundation
- Blenderのダウンロード
- オープンプロジェクト
- 公式ストア

●マニュアルなど
公式マニュアル(途中)
JBDP2.5 Wiki
CGRad Project
Project-6B(6B計画)

●チュートリアルなど
公式チュート等
その他チュートリンク集
公式動画チュートリアル
Blender Cookie
Blenderで3DCG制作日記
BlenderVideos.com
Blender 3D: Noob to Pro
blenderguru

●日本語コミュニティ
Blender@2ch
BLUG.JP(FBページ)
(BLender User Group of JAPAN)

-旧BLUG.JP
-blugjpまとめ
ぶれんだちゃん*(ツイッター)

●実写合成(日本語)
CGCompo

●合成エフェクト(日本語)
tomo@web

●Cycles
Blender Cycles memo

●Freestyle(日本語)
公式マニュアル
使用例
スザンぬクラブ

●ニュース(英文)
BlenderNation

●Blenderコミュニティ
blenderartists.org
- フォーラム
- 記事検索
- New feature tests
- Model Repository

●Blender Q&A
- Blender Stack Exchange

●テストビルド
Graphicall.org(非公式)
Buildbot(自動生成)

●開発関連
開発情報
開発ドキュメント
公式開発ブログ
Blender開発者サイト
- バグトラッカー
- 旧バグトラッカー(閲覧用)
- パッチトラッカー
- 旧パッチトラッカー(閲覧用)
SVNコミットログ

●GameBlender
公式マニュアル
専用API
バグトラッカーなど
旧バグトラッカー(閲覧用)
Bullet 物理演算ライブラリ

●外部レンダラ
YafRay
LuxRender 私家版資料
Mitsuba

●アドオン
公式スクリプトカタログ
BlenderArtists::python & plugins

●アドオン開発
最新 PythonAPI
Python Japan User's Group

●モデル&マテリアル
Blender Model Repository
Kator Legaz 3D Model
Blend Swap
blender-materials.org

●日本語化・翻訳サイト
Blender日本語化関連(blugjpまとめ)
日本語化の設定(2.4xのみ)

●2.4x用スクリプトとAPI
公式(日本語:下側参照)
L-System(2.5以降は同梱)
Python API リファレンス(2.4x用)

2.4x以前ではPythonフルセットが別途必要になることがあります。
旧Pythonバージョン

●2.4x用プラグイン(Python以外)
Blender Plugin Repository

ログイン

ユーザ名:

パスワード:



パスワード紛失