しかし、初めて使う場合、どうやって使うか分かりづらいシステムでもあります。というのも、導入を詳しく説明してある本やサイトが中々見つからないんですよね・・・・。
そこで、3dsmaxのパーティクルフローを初めて使う人向けに、使い方を説明してみたいと思います。
言葉でパーティクルフローを説明しても分かりづらいので、とりあえずこちらの動画を見てください。パーティクルフローを使えばこんなモーションが作れます↓
↑これはパーティクルフローに標準搭載されているプリセットです。
少しパーティクルフローの知識を付ければ、これらのプリセットを応用して様々なモーションが作れるようになるはずです!
まず、パーティクルフローを立ち上げ、上記画像と同じ基礎フローをビューポート上に表示させるところまで進めます。
この最初の流れが初心者の一番引っ掛かりやすい部分だと思うので、しっかり記憶しておきましょう。
2-1 PFソースをビューポートに配置する
まずビューポートにPFソースを配置します。
タイムラインを動かすと、白い粒が落下していくはず。
2-2 PFフローの設定
最重要項目
フローの操作の前に、PFソースの修正タブで[乗数の数]と[インテグレーションステップ]を設定します。
・乗数の数
この項目ではパーティクルのビューポート上での数と、レンダリング時の数を調整できます。二項目のズレを忘れていると後々大変なことになるので注意しましょう。例えばデフォルト状態の[ビューポート50%]、[レンダリング100%]の場合、いくらビューポート上で見た目を精密に調整しても、レンダリングしたら全然見た目が変わってしまうのです。
なぜかデフォルトでは上記ようにズレた設定になっているため、絶対に2項目の値は合わせましょう。ビューが重いなどの理由がない限り100%統一がおすすめ。
重いフローの全体的な動きを確認する場合などに、一時的にずらすのはOK。ただし、絶対にずらしたことを忘れないように!
・インテグレーションステップ
こちらは乗数の数ほど見た目に影響はありませんが、詰め作業の段階で重要になってくる項目です。この項目は簡単に言うと、システムがパーティクルの動きを計算する時間間隔の設定です。ビューポートのデフォルト値[フレーム]とはフレームレートの1F毎にパーティクルの計算をしていることになります。
ゲームで例えましょう。カーレースで車がガードレールに当たると車は跳ね返ります。しかし、チートなどを使い、物凄い速さでガードレールに突っ込んだ場合、ガードレールを貫通して通常では行けない場所に車が行ってしまうことがありますよね。これはガードレールの衝突監視システムを車がくぐり抜けてしまっている状態なのです。
この例えと似たようなことがパーティクルフローでも起きます。
下記の動画は当たり判定のある球体に四角いパーティクルが当たると、上に跳ねるフローです。インテグレーションは[フレーム]。
通常の速度だと特に問題ないのですが・・・。
↓球体の速度を速めると、不思議な現象が起きてしまいます。
跳ねあがったパーティクルに縞模様が現れます。
縞の1つ1つが1フレーム分の計算? になっているのだと思います。
ここでインテグレーションを[1/8フレーム]にすると・・・
縞模様の問題が解決されました。
このようにインテグレーションの違いで、見た目も変わってくることが分かります。
つまり、このインテグレーションも[ビュー]と[レンダリング]で差がある場合、思い通りの結果が得られないのです。乗数の数と同様に、値は絶対合わせておきましょう。
特に衝突判定があるパーティクルでは重要ですが、それ以外の場合もインテグレーション値によってモーションが微妙に変わる場合があるので、値は絶対に合わせましょう!
小さなフレーム間隔にすればするほど、動作は重くなるので注意!
通常はどちらも[フレーム]か[1/2フレーム]程度で大丈夫かなと思います。
2-3 ビューポートでパーティクルを表示させる
大分話が逸れましたが、次はパーティクルフローの設定です。
PFソースを作成した時点で、テンプレートのフローが作成されいますが、まだビュー上の見た目とレンダリング時の見た目が合っていないはずです。
フローを開きます。
開き方はPFソースの修正タブで[パーティクルビュー]ボタンを押すか、ショートカットキーの[6]です。
フローの[表示オペレータ]を修正します。
デフォルトでは処理を軽くするため、実際のパーティクルではなく、[ティック]という仮のパーティクルが表示される設定になっているので、タイプを[ジオメトリ]に変更しましょう。
これで初めてレンダリング結果とビューポートの見た目が合致します。
後はフローにある数値を色々いじってみましょう。
テンプレートのフローだけでも、速度や量、粒の見た目など様々な設定が可能です。
パーティクルフローを覚えるコツとしては、とにかくシンプルなフローでパラメーターを色々変更してみて、どんな変化があるのか理解していくことだと思います。複雑なフローの値を調整しても、何が何に影響を与えているか分かりづらいのです。
1項目ずつヘルプを読む必要はありません。大体触れば分かります。分からないものだけ、後々詳細をヘルプで調べていきましょう!
2-4 フローの大まかな解説
ここまで来れば、後はいじっているうちに把握できていきますが、一応フローの概要をまとめます。
↓テンプレートフローを微妙に改良した、途中からパーティクルの色と形が変わるフローで解説します。
・グローバルイベント
フロー全体に関わるオペレータをここに入れます。
例えば、全てのイベントの色をここで一括して変更したり。
フロー全体のON/OFFも、ここで一括して行えます。
・イベント
グローバルイベントの下に、いくつものイベントの箱を繋げていくことができます。
箱はそれぞれ独立しており、互いに干渉しません。
イベント01でいくら重力や風などの影響を設定しても、パーティクルがイベント02に進んだ瞬間に重力や風の影響は止まります。(そこからは惰性で飛んでいくイメージ?)
イベントは基本上から下へ順番に処理が進んでいきます。
・テスト
イベントを移動させる命令です。
試験に合格した粒子だけが次に進める感じ。
今回の場合は[エージテスト]を使用しています。
パーティクルが生まれてから8Fより長く時間が経っていれば、パーティクルを次のイベントに移します。
つまり、9Fからパーティクルの見た目が変わります。
・オペレータ
様々な命令群です。これらを組み合わせ、色々な動きを作っていきます。
・フローの流れ
今回のフローの流れを言葉にしてみると、こんな感じ。
[発生オペレータ]でパーティクルを生成
[位置オペレータ]で、パーティクルの出る位置を決める
[速度オペレータ]で、発生した瞬間の速度を決める
[回転オペレータ]で、パーティクル発生時の回転角度を決める
[シェイプオペレータ]で、パーティクルの形状を四角形に
[エージテスト]で、発生から9F以降パーティクルをイベント02へ
[表示オペレータ]でイベント01をビュー上に赤色で表示
(マテリアルを設定していない場合、表示オペレータで設定した色が表示されます。)
【ここからイベント02】
[シェイプオペレータ]でパーティクルの形を球体に変更
[表示オペレータ]でイベント02をビュー上に表示させ、色も青に変更
同じイベント内でもオペレータの順番で結果が変わる場合もあります。
ただ、基準がいまいち分からないし、ヘルプでもお茶を濁している感じがあるので、基本はプリセットフローなどを参考に順番を自分の中で決めていくしかないのかなと思います。
続きは別の記事で
次回はもう少し複雑なフローで枯れ葉が舞い落ちるモーションを実際に作ってみます。
コメント