![]() |
シンプルなパーティクル | |
|
http://f11.aaa.livedoor.jp/~hige/index.php?%5B%5B%A5%B7%A5%F3%A5%D7%A5%EB%A4%CA%A5%D1%A1%BC%A5%C6%A5%A3%A5%AF%A5%EB%5D%5D |
←パーティクル / 原文 / パーティクルへの作用→
ページ内リンク
Blender v2.31 関連文書
Blenderのパーティクルシステムは、高速で柔軟でパワフルです。 どんなMeshオブジェクトもパーティクルのエミッター(訳注:「放射するもの」の意)にできます。Haloをパーティクルとして使えるし、Duplivertsオプションと共にオブジェクトにもなります。 Duplivertsされたオブジェクトは、Blenderオブジェクトのどんなタイプにもなります。 例えばMeshオブジェクト、カーブ?、メタボール?、さらにランプにさえです。 パーティクルはグローバルな力に影響を受け、重力や風のような物理効果をシミュレートします。
これらの可能性によって、煙、炎、爆発、花火、鳥の群れでさえ生成できます。 Static Particles(訳注:静的なパーティクル)を使うと、毛、草、植物も生成できます。
まずBlenderをリセットし(訳注: [Ctrl X])デフォルトシーンにします。あるいはトップビューからPlane(訳注: MeshオブジェクトのPlane)を1つ追加したシーンを作ります。 このPlaneは我々のパーティクル・エミッターです。 ビューを回転し、Planeとその上の空間が良く見えるビューにしましょう。(図2)
図2.エミッター
Objectコンテキスト([F7]か
ボタン)のEffectsタブに切り替え、パネル中央のNEW Effectボタンを押します。 ドロップダウンメニューボタンをBuildからParticlesに変えると、Particlesボタンが表示されます。(図3)
図3.Particlesボタン
数値ボタンNorm:の値を0.100にセットします。それにはボタンの右の部分(訳注: 右向きの小さな三角)をクリックするか、[Shift LMB]を使ってキーボードから値を入力します。
マウスを3Dウィンドウに移動し、[Alt A]を押してアニメーションを再生しましょう。四つの頂点から垂直に上がる4本のパーティクルの流れが見えるでしょう。
おめでとう。あなたは2、3の簡単なステップで最初のパーティクルシステムを生成しました。
このシステムをもう少し興味深いものにするには、システムとボタン(図4)についてより深い洞察力を持たなければなりません。
図4. パーティクルの設定
あなたが始めるにはこれで十分でしょう。 でも実験する際に他のパラメーターに触れるのを恐れてはいけません。 次のセクションでそれらについても詳細にカバーします。
多分あなたは、上のサンプルを一枚の画像にレンダリングしようとしたでしょう。 カメラが正しく向いていたならば、灰色の泡のような点が乗った黒い絵を見ていたに違いありません。これは新しく作られたパーティクルシステムに対してBlenderが割り当てる標準のHaloマテリアルです。
パーティクルシステムが良く見えるようカメラ位置を設定してください。 もしシンプルな環境を追加したいなら、いくつかライトを追加するのを忘れないように。異なる方法で始めていなければ、Haloはライトが無くても描画されます。しかし、他のオブジェクトが見えるようにするにはライトが必要です。
もしエミッターにまだマテリアルをまったく割り当てていないならば、Materialボタン[F5]に移動して、新しいマテリアルを追加します。パレットの中央(訳注: Shadersパネル)に有るHaloボタンをクリックしてください。(図5)
図5. Haloの設定
MaterialボタンはHaloボタンに変わります。Lineを選び、Lines:を好きな数に合わせてください(その効果はマテリアル・プレビューでじかに見られます)。 HaloSize?:を0.30に下げ、HaloとLineの色を選んでください(図5)。
これで[F12]でレンダリングできます。もしくは、完全なアニメーションを作れます。 飛び回る何千もの星をご覧ください(図6)
図6. 流れ星
リアルなオブジェクトをパーティクルとして使うのはとても簡単です。特別なモデリング方法という章のDuplivertsセクションに書かれたテクニックとほぼ同じです。
今度はCubeか好きなオブジェクトをシーンに追加する所から始めてください。これからTot:が示す数だけ大量のオブジェクトを扱うため、あなたのコンピュータがどれだけパワフルなのか検討する価値が有ります。つまり、選んだオブジェクトの頂点数にTot:の数を掛けた数と同じ、大量の頂点を扱うということです!
新しく作ったオブジェクトを、一般的なシーンのスケールに合わせて縮小してください。
さて、(訳注:新しく作った)オブジェクトを選択し、次に[Shift RMB]でエミッターを選択します。[Ctrl P]でペアレントして(訳注:エミッターを)Cubeの親にします。 エミッターだけを選択し直します。 Objectコンテキスト[F7]でAnim Settingパネルの"Dupliverts"オプションをチェックします。DuplivertsされたCubeが3Dウィンドウに直接現れるでしょう。
図7. Duplivertsされたパーティクルの設定
[Alt A](訳注:アニメーション再生)の前にパーティクルの数を減らしても構いません。
アニメーションでは、全ての立方体が同じ向きである事に気づくでしょう。この動きは興味深いですが、これらの立方体をランダムな向きにする事もまた興味深いです。
そうするにはパーティクル・パラメーターのVectオプションをチェックします。これにより複製されたオブジェクトをパーティクルの向きに追随させ、結果としてずっと自然な動きになります(図7)。 アニメーションの一コマを図8に示します。
オリジナルの(訳注:複製対象の)オブジェクトについて
オリジナルのオブジェクトは、カメラビューの外に移動することに注意してください。 なぜならば、Duplivertsされたパーティクルは通常のMesh Duplivertsと違い、オリジナルのオブジェクトもレンダリングされてしまうからです!
図8. Duplivertsされたパーティクルのレンダリング
Blenderパーティクルシステムは、リアルな火や煙を作るのにとても有用です。 これによりキャンドル、キャンプファイヤー、燃える家も可能です。 火が物理的にどう実現されているのか考えるのも有用です。 火の炎は熱いガスであり、周囲の冷たい空気に比べて低い密度を持つために上昇します。 炎は中央で熱く、輝き、周囲では色あせ、暗くなります。
我々の火のために、いくつかの木材といくつかの石を置き、シンプルなセットアップをしてください。
図9. キャンプファイアーのセットアップ
ストーンサークルの中央にPlaneを追加します。 このプレーンは我々のパーティクル・エミッターとなるものです。 Planeを一回Subdivideしてください。 木材の上で炎(パーティクル)が始まるように、頂点を移動してもよいです。
ではObjectコンテキスト[F7]へ移動し、Planeに新しいパーティクル・エフェクトを追加します。 ここで与える数値(図10)は、リアルな火に相応しいものであるべきですが、エミッターのサイズによってある程度調整が必要でしょう。
図10. 火のパーティクルのセットアップ
いくつかの注:
さて、リアルな炎がどう動くか、3Dウィンドウで第一印象を得ることができるでしょう。 けれど、我々の火で最も重要な事はマテリアルです。
パーティクル・エミッターが選択された状態で、Shadingコンテキスト[F5]へ切り替え、新しいマテリアルを追加してください。 Haloボタンを押して、新しいマテリアルをHaloマテリアルに切り替えます。 また、そのボタンの下に有るHaloTexをアクティブにします。 これにより、後でテクスチャが使えるようになります。
図11. 炎のマテリアル
RGBスライダーでマテリアルを完全に真っ赤にします。 Alpha値を0.700に下げます(これは炎を少し透明にします)。 Addスライダーを少し増やし0.700にします。 これにより炎同士が上乗せされ、内側は輝き、外側は暗くなります。(図11)
図12. 炎のテクスチャ
もしこの時点でテストレンダすると、ただ赤い炎が見えるだけでしょう。 リアリズムのタッチを加えるには、テクスチャが必要です。 エミッターがまだ選択された状態ならば、Textureパネルへ移動し、新しいテクスチャを追加(訳注: AddNewボタンを押す)し、Textureボタン(ウィンドウ)[F6]でCloudタイプを選びます。 NoiseSize?:を0.600に調整してください。(図12)
Materialボタン(ウィンドウ)[F5]に戻り、マテリアルのボタン群の右(訳注: MapTo?パネルのこと)にあるRGBスライダーでテクスチャの色を黄色にします。 cloudテクスチャの黄色い部分を広げるには、(訳注: MapInput?パネルに有る)SizeYの値を0.30に下げてください。
ここでテストレンダリングすると、素敵な火が表示されるでしょう。 でもまだ、火の一番上で炎をフェードアウトさせる必要が有ります。 これはAlphaとHalo Sizeをマテリアル・アニメーションさせる事で実現できます。
アニメーションがフレーム1にしである事を確かめ[Shift LEFTARROW]、マウスをMaterialウィンドウへ移動します。 ここで[I]キーを押し、表示されるメニューでAlphaを選択します。 フレームスライダーをフレーム100に進めます。 Alphaを0.000に変更してから[I]キーでもう一つのキーを挿入します。(訳注: これもMaterialウィンドウにマウスカーソルを置いて実施する事) ウィンドウの1つをIPOウィンドウに切り替え、IPOウィンドウのヘッダーで適切なメニューエントリーを選ぶ(訳注: ウィンドウ下のリストボックスでObjectタイプから)Material IPOタイプに切り替える。)}事により、Material IPOタイプをアクティブにします。 するとマテリアルのAlphaチャネルに対するカーブが1つ見えるでしょう(図13)。
not found.パーティクルのマテリアルに対するアニメーションは、必ず最初の100フレームがパーティクルの寿命にマップされます。 その意味は、マテリアルのフレーム1から100でフェードアウトさせると、50フレームの寿命を持つパーティクルはそのとき(訳注: フレーム50で)フェードアウトする、ということです。
図13. 火のマテリアルIPO
やっとアニメーションをレンダリングする事ができます。 多分あなたは、パーティクルの寿命など、いくつかのパラメーターを細かく調整しなければならないでしょう。 シーンにぐっとリアルにすることもできます。それにはLight(もしくはスポットライトと影)をアニメーションさせ、火花のパーティクルシステムを火に追加します。 さらに推奨されることは、より生きた炎になるよう、エミッターをアニメーションさせることです。 または1つ以上のエミッターを使います(図14)。
図14. 最終レンダリング
この爆発は、実際のシーンに合成するか、動画テクスチャとして使われるようにデザインされています。 静止画レンダリングや爆発のスローモーションに使うには、もっとリアルに見せるために、もう少し仕事をすることが必要です。 しかし、忘れてならないのは我々の爆発が見えるのは0.5秒しかないということです(図15)。
図15. 爆発
(訳注: 画像サイズ横2004ドットと大きくレイアウトが崩れるため、勝手ながら横幅半分かつ縦2段に修正しました。)
爆発のエミッターに選んだのはIcoSphere?です。 爆発を少し不規則にするため、Editモードのサークル選択(円選択)機能で、頂点パターンを削除しました。 あるシーンでは、エミッターとして他の形状のオブジェクトを使う方がよいかもしれません。例えば実際に吹き飛ばしたいオブジェクトに似た形です。
私の爆発は2つのパーティクルシステムの合成です。1つは熱いガスの雲、もう一つは火花です。 私は火花を生成するエミッターに回転させた(訳注:「傾けた」?)バージョンを使いました。 さらに、アニメーションでパーティクルが生成される間、エミッターを回転させました。
爆発のパーティクルは、とても判りやすいHaloマテリアルです。 それはランダムさを追加するためCloudテクスチャを適用しました。 火花もまた、とてもよく似たマテリアルです。図16から図18を見てください。
図16. 爆雲のマテリアル
図17. 火花のマテリアル
図18. 両方に使ったテクスチャ
HaloパーティクルのAlpha値を1.0から0.0へ、100フレームでアニメーションします。 これはいつも通りパーティクルの寿命にマップされます。 火花のマテリアルに有るStarの設定に注意してください(図17)。 この形は、少しだけ火花を散らします。 我々はまた、これを実現するために特殊なテクスチャを使いました。けれども今回の場合、Star設定を使った方法が最も簡単な選択肢です。
図19. 雲用のパーティクルシステム
図20. 火花用のパーティクルシステム
図19と図20に見られるように、パラメーターは基本的に同じです。 違いは火花用のVect設定と、高速な火花を実現する、高いNorm:設定です。 私は火花ようにRandlife:を2.000に設定し、結果として火花が不規則な形になるようにしました。
これらのパラメーターを使って実験を始めるよう、私はあなたに助言します。 実際の設定は、あなたが実現したいものに依存します。 破片や煙などのためにもっとエミッターを追加することに挑戦してください。
これまでまったく使わなかったボタンがMult:ボタンです。 これにはパネルにあるボタン群の3行目全体が関係します。 Planeを1つ用意し、それにパーティクルシステムを追加してください。
パラメーターを調整し、いくつかのパーティクルが空に飛び上がるようにします。 それからMult:の値を1.0に上げてください。 これにより、寿命が終わる時に100%のパーティクルが、子どものパーティクルを生成します。 すぐさますべてのパーティクルが4つの子どもを生成します。 それではChild:の値を約90に上げてみましょう(図21)。 [Alt A]でアニメーションをプレビューすると、パーティクルによる説得力の有る花火が見えるでしょう。
図21. パーティクルのマルチプリケーション(増加)ボタン
花火をレンダリングした時、あまり印象的に見えないでしょう。 これはBlenderが割り当てる標準のHaloマテリアルが原因です。 そこで、次のステップでもっと良いマテリアルを割り当てます。
エミッターが選択されている事を確認して、Materialボタン(ウィンドウ)[F5]のShadingコンテキストに移動します。 メニューボタンで新しいマテリアルを追加し、タイプにHaloをセットします。
図22. 花火のマテリアル・その1
図22のパラメーターでは、私はすこし判りやすいHaloマテリアルを使いました。 レンダリングされたアニメーションは少し良くなっている筈ですが、まだできる事がいくつかあります。
エミッターを選択して、Editingコンテキスト[F9]に移動し、Link and MaterialsパネルのNewボタンを押して新しいマテリアルのインデックスを追加します(図23)。
図23. 2つめのマテリアルをエミッターに追加する ここでShadingコンテキストに戻ります。 するとマテリアルのリストボタンの色が青に変わっていると思います(訳注: 原文に有る'browsehas'の意味が判らないが、動作の記述から見て'MA:Material 1'リストボックスを指している。)。 2と書かれたボタンは、このマテリアルが2ユーザーに使われている事を示します。 2ボタンを押して(訳注: 'OK? Single user'という)ポップアップを確認してください。 マテリアルを"Material 2"にリネームし、HaloとLineの色を変更します(図24)。
図24. マテリアル・その2
パーティクル・パラメーターに切り替え、mat:ボタンを"2"に変更します。 再びレンダリングすると、第一世代のパーティクルは最初のマテリアルを使い、第二世代のパーティクルは2番めのマテリアルを使う様子が判ります! この方法はパーティクルに対して16世代(パーティクルのインデックスに使える最大の数)まで使えます。
それ以上の拡張 マテリアルの変更以外に、Material IPOを使ってそれぞれのマテリアル設定をアニメーションさせる方法が有ります。
Blenderのパーティクルシステムはとてつもなくパワフルなため、パーティクルの経路をフォース(訳注: 「力場」)だけでなくLattice?で決定することもできます。
正方形のMeshを1つ用意し、パーティクルを追加してZ軸方向へマイナスの力と図25に示す一般的なパラメーターを設定してください。
図25. パーティクルの設定
この設定は「風の無い日に燃える4つの火」から立ち上る煙に適していますが、これをねじらせようと思います。 Latticeを追加し、それを図26に示すように変形します。
図26. Lattice?の設定
パーティクル・エミッターをLattice?にペアレントします[Ctrl P]。 パーティクル・エミッターを選択し、Animationボタン(ウィンドウ)に切り替えてRecalcAll?ボタンを押すと、パーティクルがだいたいLattice?に沿って動くのが判るでしょう(図27の左)。
ねじりを与えるにはLattice?の水平方向の各セクションに対し、トップビューにおいて、スクリューのように60度ずつ時計回りで回転させます。 これを行ったあと、再びパーティクルをRecalcAll?します。 その結果が図27の右です。
図27. Lattice?の変形効果
ねじれているのは明白です。 もちろん、もっとLattice?を回転させるか、Lattice?をもっとサブディバイドすることで、より高い効果を出す事もできます。 エミッターにHaloマテリアルを割り当ててレンダリングすると、図28の左のようになるでしょう。
図28. 通常のパーティクル(左)、ベクターパーティクル(中央)、パーティクルでDuplivertsしたオブジェクト(右)
エミッターを選択してAnimationボタン(ウィンドウ)に切り替え、Vectパーティクルボタンを押します。すると、パーティクルは点ではなくセグメント(訳注: セグメント=線分あるいは区間)に変わります。パーティクルのセグメントは、パーティクルの速度に応じた長さと向きを持ちます。(訳注: 訳に自信無し。原文='the particles will turn from points to segments, with a length and a direction proportional to the particle velocity. ') レンダリングすると図28の中央のような結果になるでしょう。
オブジェクトをエミッターにペアレントしてDuplivertsボタンを押すことで、オブジェクトをパーティクルにDuplivertsします。 もしパーティクルが通常のパーティクルならば、Duplivertsされたオブジェクトはオリジナルと同じ向きになります。 しかし、パーティクルにVertが設定されていると、Duplivertsされたオブジェクトはパーティクルの向きに従い、回転します。 元のオブジェクトを選択してTrackボタン群をいじると、オブジェクトの向きを変更できます(図28の右)。
Static Particlesは繊維・草・毛・植物のようなオブジェクトを作るとき便利です。
Static Particlesを試す為に、小さなキャラクター、あるいはただのボールを作ってください。 例えば小さな「毛玉野郎」(訳注: "a small 'ball of fur' guy"の意訳)を。 エミッターは描画されないので、Meshを複製します((訳注: もし'作ったのが'Meshオブジェクトでないならば)[Alt C]でMeshに変換します)。 (訳注: EditModeで頂点を全選択[A]した上で)MeshをFractal subdivideし多少ランダムにするのも、たいていは良いアイデアです。 Meshを十分に細かくし終わったら、Limitを上げたRemove Doubles''をします。 サークル選択(円形選択)で毛を生やしたくない部分を選択し、削除してください。
ここでパーティクルシステムを割り当て、Staticオプションを有効にしてください。
図29. Static Particleの設定
図29のパラメーターを使います。 (訳注: 以下の羅列はパラメーター毎に改行を追加してあります。)
Life:とNorm:を組み合わせる事で、髪の長さをコントロールできます。
Force: Z:をマイナスにすると髪が伸びます。
Faceをチェックすると、パーティクルは頂点からではなく、それぞれの面上に分散して生成されます。
Vectをチェックするとパーティクルのような繊維を生成します(訳注: パーティクルが長さを持つということ)。
Stepの値は、パーティクルの寿命の間にいくつのパーティクルが生成されるか決定します。 これを低い値にするとパーティクルの曲線が滑らかになります。
Randの値(訳注: パーティクル発生方向のランダムさ)は大げさにならないよう気をつけてください。
レンダリングするととてもぼけたパーティクルになるでしょう。 Static Particlesに使うマテリアルはとても重要です。 そこでShadingコンテキスト[F5]ででエミッターのマテリアルを追加します。
図30. マテリアルの設定
HaloSizeはとても小さい値(0.001)を使いました。 数値ボタンでこの値は見えないため、[Shift LMB]でボタンをクリックして設定してください。 Shadedオプションを設定し、シーン内ライトの影響をうけるようにします。 さらにHaloTexをアクティブにします。
髪を形作るためにテクスチャを使いましょう(図30)。
図31. テクスチャのカラーバンド設定
(訳注: 色がわかるように日本語版では図をカラーにしました。 縦に並ぶ3段は、カラーバンドの左・中央・右にある3つのカーソルの設定をそれぞれ示しています。各カーソルを選択するには色つきバンドの縦線をクリックするか、数値ボタンCur:で変更します。)
Textureサブコンテキスト[F6]に移動し、新しくBlendタイプのテクスチャを追加します。 サブタイプはLinを選んでください。 Colorbandオプションを有効にし、図31の色を設定します。 透明から紫、そして再び透明な黒にすると素敵なブレンドになります。
図32. Materialボタンのテクスチャ設定
Materialボタンに戻り、MapTo?パネルにあるAlphaがアクティブであることを確認します。 それからSizeXとSizeYを使って(訳注: SizeXとSizeYを大きくして)、マテリアルのプレビューに表示されるHaloを小さな繊維の形にします。
もし毛の密度が薄いなら、Tot:でパーティクルを増やすか、エミッターを追加してください。 また、追加したエミッターのパーティクル・パラメーターを少し変更すると、髪にバリエーションが出ます(図33)。
図33. 最終結果
この節は原文に無いため、削除しても良いです。
テクスチャを使ってパーティクルの動きをコントロールすることができます。
図34. パーティクルをコントロールするテクスチャの設定
テクスチャをパーティクルに適用するには、図34 Effectsパネルの右下、角丸四角枠で囲んだ部分を設定します。いずれも8番めのテクスチャが無ければ影響しません。 これらのパラメータについては、日本語解説本 Blender Advanced Guideの5-4-7節「テクスチャによるパーティクルコントロール」に詳しく書かれています。 (私は著者ではありませんが、知っている情報を書くとほぼ転載になってしまうため、書きません。 パラメータの詳細な解説を知りたい人にはオススメの本です。) Advanced Guideが入手できない場合は、以下の情報が参考になるでしょう。
←パーティクル / ↑目次 / パーティクルへの作用→