Comments
Description
Transcript
Thinking Particles
Thinking Particles THINKING PARTICLES プログラミングチーム Christian Losch, Philip Losch, Richard Kurz, Tilo Kühn, Thomas Kunert, David O Reilly, Cathleen Poppe. プラグインプログラミング Sven Behne, Wilfried Behne, Michael Breitzke, Kiril Dinev, Per-Anders Edwards, David Farmer, Jamie Halmick, Richard Hintzenstern, Jan Eric Hoffmann, Eduardo Olivares, Nina Ivanova, Markus Jakubietz, Eric Sommerlade, Hendrik Steffen, Jens Uhlig, Michael Welter, Thomas Zeier. プロダクトマネージャ Marco Tillmann. 品質管理 Björn Marl. マニュアル執筆 Paul Babb, Rick Barrett, Oliver Becker, Jens Bosse, Chris Broeske, Chris Debski, Glenn Frey, Michael Giebel, Jason Goldsmith, Jörn Gollob, Sven Hauth, Josiah Hultgren, Arndt von Königsmarck, David Link, Arno Löwecke, Aaron Matthew, Josh Miller, Matthew Mash O Neill, Janine Pauke, Marcus Spranger, Luke Stacy, Perry Stacy, Marco Tillmann, Jeff Walker, Scot Wardlaw. SDK 執筆およびサポート David O Reilly, Mikael Sterner. レイアウト Oliver Becker, Harald Egel, Michael Giebel, David Link, Luke Stacy, Jeff Walker. 翻訳 Oliver Becker, Michael Giebel, Arno Löwecke, Björn Marl, Janine Pauke, Luke Stacy, Marco Tillmann, Scot Wardlaw, 内田もと カバーアート Heike Bauer, Onur Pekdemir Copyright © 1989-2004 by MAXON Computer GmbH. All rights reserved. English Translation Copyright © 2004 by MAXON Computer GmbH / MAXON Computer Ltd. All rights reserved. 本書とこれに対応するソフトウェアの著作権は保護されています。MAXON Computer GmbH の書面による明確な許可なく、書類の一部 もしくは全てを、翻訳、変更、複写すること、および形態や方法が電子的または機械的であるかを問わず、また目的を問わず、再配布 することは禁じられています。 プログラムや本書の製作については万全を期していますが、MAXON Computer はその中に含まれるエラーや欠落に関して一切の責任を 負いません。プログラムの使用によって発生した損害や、本書に記載されている情報に起因して生じた損害に関しても同様です。 このマニュアル、およびこれに対応するソフトウエアは、次に述べる使用許諾契約の元に供給され、この使用許諾契約の定めにした がってコンピュータにインストールされ、使用されるものとします。またこのマニュアルに記載されている内容は、このソフトウエアを使 うための単なる情報であり、予告なく変更される場合があり、これによって MAXON Computer が何かを約束するものではありません。 MAXON Computer は、このマニュアルに含まれるいかなる間違いや不正確な記述についても、それを保証せず、責任を持ちません。 MAXON Computer、MAXON の ロ ゴ、CINEMA 4D、HyperNURBS、C.O.F.F.E.E. は、MAXON Computer GmbH お よ び MAXON Computer Inc. の登録商標です。Acrobat、Acrobat のロゴ、PostScript、Acrobat Reader、Photoshop、Illustrator は、米国とその 他の国々で有効なアドビ社の登録商標です。Apple、Apple Script、Apple Talk、Color Sync、Mac OS、QuickTime、QuickTime の ロゴは、米国とその他の国々で有効な Apple コンピュータの登録商標です。Microsoft、Windows、Windows NT は、米国とその他の国々 で有効なマイクロソフト社の登録商標です。UNIX は X/Open Company Ltd だけにライセンスされている登録商標です。また、このマニュ アルに表示されているその他すべての商標や製品名も、それを所有する会社の商標または登録商標であることをここに明記します。 マクソンコンピュータ エンドユーザ 使用許諾契約書 本製品を購入された皆様へ 本製品 THINKING PARTICLES(以下ソフトウエアと略します)をインストールすると、お客様(以下ユーザと略します)とドイツ・フレー ドリヒスドルフ所在の法人 MAXON Computer GmbH(以下ライセンサと略します)との間に以下の契約が成立します。 このソフトウエアを使用するためにコンピュータにインストールした場合、ユーザはこの使用許諾契約書に記載されている全ての条項に同 意したことになります。もしこの使用許諾契約書に同意できない場合、ユーザはこのソフトウエアをインストールすることは認められませ ん。 この使用許諾契約書に同意しない場合は、このソフトウエアと付属文書一式を、MAXON Computer 、または購入元へご返送ください。 1. 全般 この使用許諾契約書にしたがって、ライセンサは、このソフトウェアおよびマニュアルを使用するための非独占的なライセンスを、ユーザ に付与します。ソフトウェア自身、およびその複製、および本契約にしたがって認められているその他の全ての複製は、ライセンサの資 産であり続けます。 2. ソフトウェアの使用 (1)ユーザは、ソフトウェアを使うために必要とされる範囲内で、ソフトウェアをコピーすることが認められています。必要とされる範 囲とは、プログラムをオリジナルの CD-ROM から、コンピュータに搭載されている大容量ストレージデバイス(ハードディスクなど)に インストールすること、およびプログラムを RAM に読み込むことです。 (2)また、ユーザは CD-ROM のバックアップコピーを作成できます。ただし、作成、保管が認められるバックアップコピーは1部だけです。 そしてバックアップコピーには、これがライセンスされたソフトウェアのバックアップコピーであることを明示しておく必要があります。 (3)これ以上のコピーは一切認められません。この中には、プログラムコードをプリンタで印刷することや、あらゆる形態でのマニュア ルのコピーも含まれます。 3. 複数台のマシン、およびネットワーク上での使用 (1)ユーザはこのソフトウエアを任意のハードウェアにインストールして使用できます。ただしハードウェアを変更する場合、それまでに 使用していたハードウェアの大容量ストレージデバイスからソフトウェアを削除する義務があります。複数のハードウェアに同時にインス トールすること、およびそれを使用することは認められません。 (2)同時に複数の人間がこのソフトウェアを使用する可能性が生じる場合、ネットワーク経由、または一般的なクライアントサーバシス テム上でこのソフトウェアを使用することはできません。ネットワーク経由、またはクライアントサーバシステム上でこのソフトウェアを使 用する場合、一度に複数の人間が使用できないようなアクセス権を設定するか、あるいは特別なネットワークライセンス料金(金額は同 時に使用可能な人数によって決まります)をライセンサに支払う必要があります。 (3)このネットワークライセンス料金は、同時使用を希望するユーザの人数を書面にて提示後、直ちにライセンサからユーザに通知され ます。ライセンサの連絡先住所は、マニュアルおよび本契約書末尾に記載されています。ネットワーク上での使用は、このネットワークラ イセンス料金を支払った後に開始できます。 4. 譲渡 (1)ソフトウェアおよびマニュアルに関して、貸与、賃貸、サブライセンス、借用を禁じます。ただし、ユーザがこの契約書、ソフトウ エア、その全てのコピー、アップデートの権利、アップデート前の古いバージョンのパッケージ、マニュアルを含む全てを他の個人や法人 に引き渡し、同時にユーザのコンピュータにインストールされた全てのコピーを破棄し、また引き継ぐ人間がこの使用許諾契約に同意し、 その意志をライセンサに書面で通知するならば、このソフトウエアを使用するための全ての権利を新しいユーザに譲渡できます。 (2)ユーザには使用許諾契約書の条項を厳重に保管する義務があります。ソフトウェアの譲渡に先立って、ユーザは使用許諾契約書の 条項を新しいユーザに知らせる必要があります。ソフトウェアを譲渡する時点で、新しいユーザが手元にこの使用許諾契約書を所持して いなかった場合、新しいユーザはライセンサに契約書の再発行を要請する義務があり、その経費は新しいユーザが負担しなければなりま せん。 (3)このライセンスが新しいユーザに譲渡された後、古いユーザがこのソフトウエアを使うことはできません。 5. アップデート もしユーザの使用しているソフトウエアが、古いバージョンをアップデートしたものである場合、アップデートしたソフトウエアを使うため には、古いバージョンに関してもライセンスを所有し続けなければなりません。この古いバージョンは、新しいバージョンに移行する際の 補助として、またアップデータをインストールする目的にのみ使うことが可能です。そしてアップデータを受け取ってから 90 日後に、古い バージョンを使用するためのライセンスは失効し、それ以降アップデータをインストールする目的以外で古いバージョンを使用することは できません。 6. ソフトウェアの再コンパイルと変更 (1)ユーザが、供給されたプログラムのコードを再コンパイルしたり、ソフトウェアを改ざんしたり、ソフトウェア製作のさまざまな段階 におけるリバースエンジニアリングを行うことは、その種類に関係なく一切認められていません。 (2)コピーに対するセキュリティを解除したり、同様の保護システムを削除することが許可されるのは、そのセキュリティがソフトウェア の動作不良の原因となっていたり、正常な動作を妨害している場合に限ります。ただしこの場合、ユーザにはそのセキュリティーがプロ グラムの動作不良の原因となっている、という事実を証明する義務があります。 (3)著作権告知情報、シリアル番号、その他のソフトウェア識別情報を削除したり変更することは禁じられています。ソフトウェアの所 有権はライセンサにあり、その構造、構成、コードはライセンサにとって価値のある企業秘密です。またソフトウェアは、米国著作権法 および国際条約によって保護されています。前述したような事態を除き、この契約はユーザに対して、このソフトウエアに関するいかなる 知的財産権も付与しません。 7. 保証の制限 (1)両者は、現時点において、どのような環境でも問題なく動作するようソフトウェアを開発、製造することは不可能であることに同意 するものとします。ライセンサは、このソフトウェアがマニュアルの記述に基づいて実用的に動作することを保証します。しかしライセン サは、このソフトウェアとマニュアルが、ある特定の条件、もしくは特定の使用目的に適合することや、ユーザが所有する他のソフトウェ アを起動した状態で正常に動作することを保証しません。ユーザは、製品を受け取った後直ちにソフトウェアとマニュアルを確認する義 務があり、明確な欠陥がある場合は、受け取った後 14 日以内にその旨を書面にてライセンサに報告する必要があります。潜在的な欠陥 を発見した場合も、直ちに上記と同様の方法で連絡する必要があります。それ以外の場合、ソフトウェアとマニュアルは欠陥がないもの とみなします。欠陥の内容、特に発生した現象はできる限り詳細に記述する必要があります。保証期間は、このソフトウェアがユーザの 手元に配達された日(納品書に記載された日付を配達日とします)から 6 か月間です。ライセンサは、報告された欠陥を無償で修理す るか、または欠陥のない製品と交換するか自由に選択できます。 (2)ライセンサおよび販売代理店は、このソフトウェアまたはマニュアルの使用によってユーザが得る成果とその品質を一切保証せず、 また保証できません。ライセンサまたはその販売代理店による保証不履行に対する唯一の救済方法は、前述の限定保証を除き、前述の 対処に限定されます。ライセンサおよびその販売代理店は、明示、暗示に関係なく、第三者の権利の不可侵、商品性、特定目的に対 する適合性を一切保証しません。いかなる場合においても、派生的、偶発的、特殊な損害に対して、収益または貯蓄資産の喪失も含め、 かかる損害の可能性または第三者からの請求がライセンサの代表者に予告されていた場合でも、ライセンサおよびその販売代理店は一切 責任を持ちません。 (3)州または司法管轄区によっては、偶発的、派生的、特殊な損害を除外したり、暗黙の保証を除外したり、暗黙の保証が継続する 期間を限定することを認めない場合もあるため、上記の限定事項がユーザに適用されない可能性があります。このような場合には、特 殊な限定保証書が別紙として添付され、この契約書の一部となります。保証範囲が拡張された場合でも、暗黙の保証の有効期間は 6 か 月間に限定されます。この保証は、ユーザに該当する法的権利を与えます。ユーザが居住する州または司法管轄区によっては、さらに他 の権利が発生する可能性もあります。この場合、ユーザの使用許諾契約書に特殊な保証条項は添付されませんので、保証内容の詳細に ついてはライセンサまでお問い合わせください。 ライセンサーは、ライセンサーが出荷を手配した全ての輸送について保険を付けているため、ユーザーが輸送中に生じた損傷を発見した 場合、そのユーザーは書面にて輸送業者に速やかに報告し、その報告書のコピーをライセンサに提出する義務があります。 8. 運送中の損傷 ライセンサは、ライセンサが出荷を手配した全ての輸送について保険を付けています。したがって、もしユーザが本製品に関して輸送中 に生じたと思われる損傷を発見した場合、ユーザは書面にて輸送業者に速やかに報告し、その報告書のコピーをライセンサに提出しなけ ればなりません。 9. 秘密 ユーザには、プログラムやマニュアル、特にシリアル番号が第三者に渡ることのないように厳重に管理する義務があります。ユーザはプロ グラムまたはマニュアルを複製または貸与することはできません。これらの義務は、ユーザが雇用している従業員、およびユーザがプロ グラムを操作するために契約している他の人間にも同等に適用されます。ユーザはこれらの義務を従業員や契約者に通知しなければなり ません。これらの義務が遂行されない状況下で生じた損害の責任は、いかなる場合においてもユーザが負うものとします。 10. 情報 ソフトウェアを新しいユーザに譲渡した場合、ユーザは、新しいユーザの氏名と住所をライセンサに書面で報告する義務があります。ライ センサの住所はマニュアルやこの契約書の末尾に記載されています。 11. データの保護 ユーザ を 登 録したり、 プ ログラム が 適 正 に使 用 さ れ るようにコントロ ールするため に、 ライセン サ はドイツの デ ー タ保 護 法 (Bundesdatenschutzgesetz) に基づいてユーザの個人情報を保管します。このデータは上記の目的にのみ使用され、第三者に利用され ることはありません。ライセンサはユーザから要求があれば、いつでもそのユーザに関する個人情報を知らせるものとします。 12. その他 (1)この使用許諾契約書には、両者の権利と義務が全て記述されています。他の契約書は存在しません。この契約書の内容の変更ま たは修正は、この契約に関する書面にて行われ、双方の署名が必要となるものとします。これは、書面形態の廃止に関する同意につい ても適用されます。 (2)この使用許諾契約書の準拠法はドイツ国法です。管轄裁判所はドイツのフランクフルト市の所管裁判所になります。この契約は、 国際商品販売に関する国連協定(United Nations Convention on Contracts for the International Sale of Goods)には準拠せず、協定 の適用外であることを明記します。 (3)この使用許諾契約のいずれかの部分が無効または行使不能であるとみなされた場合、この契約の他の部分の有効性には影響せず、 その条項に基づいて効果と効力を有し続けるものとします。 13. 失効 この使用許諾契約は、ユーザが契約書の条項に違反した場合、たとえ有効期間が残っていても自動的に失効します。契約が失効した場 合、前述の理由によりユーザはプログラムと全てのマニュアルをライセンサに返却しなければなりません。さらにライセンサから要求があっ た場合、ユーザはデータ記憶装置またはコンピュータ本体上にプログラムのコピーを一切保持していない旨を示す宣誓書を提出する必要 があります。 14. 問い合わせと通知 この使用許諾契約書に関する質問、またはその他の問い合わせ、および契約書に基づく MAXON Computer 社への通知は、下記住所ま で書面にてお願いします。 MAXON Computer GmbH Max-Planck-Str. 20 D-61381, Friedrichsdorf FGermany 北米・南米地域: MAXON Computer, Inc. 2640 Lavery Court Suite A Newbury Park, CA 91320 USA 英国: MAXON Computer Ltd The Old School, Greenfield Bedford MK45 5DE UK 日本: 東京都品川区上大崎 4-5-37 山京目黒ビル 409 号 マクソンコンピュータ東京オフィス ご連絡頂ければ、最寄りの販売代理店をご紹介します。 目次 はじめに ........................ 1 概要................................. 3 1 設定 ..................................................................................................... 5 一般タブ ........................ 7 チャンネルタブ .......... 10 パーティクルジオメトリオブジェクト .................................................................................................11 ネットワークでのレンダリング.............................................................................................................11 2 ノード ................................................................................................. 13 TP イニシエータグループ .......................................................................................................................15 PPass.................... 15 PPassAB .............. 16 TP コンディショングループ ...................................................................................................................19 PAge .................... 19 PLight .................. 20 TP ジェネレータグループ ...................................................................................................................... 23 PBlurp ................ 23 PBorn ................... 28 PDraw................. 30 PFragment ........ 33 PMatterWaves . 37 PStorm ................ 47 TP スタンダードグループ ........................................................................................................................52 PAlignment ....... 52 PDie..................... 54 PGroup ............... 55 PMass .................. 55 PRolling .............. 57 PScale................. 58 PSetData ........... 60 Pshape ................ 62 PSize ................... 64 PSpin ................... 65 TP ダイナミックグループ ....................................................................................................................... 68 PBubble ............. 68 PDeflector ......... 69 PFreeze .............. 73 PFriction ............. 74 PGravity.............. 76 PMotionInheriance .......................................................................................................................78 PPositionFollow ............................................................................................................................. 80 PRepulse&Bounce .........................................................................................................................82 PVelocity ............ 83 PWind ................. 85 TP ヘルパーグループ .............................................................................................................................. 88 PChronometer ............................................................................................................................... 88 PGetData .......... 89 PGroup .............. 90 PSpinConvert.. 90 PSurfacePosition ............................................................................................................................91 PTimer ................ 93 PVelocityConvert .......................................................................................................................... 95 PVolumePosition........................................................................................................................... 96 3 チュートリアル ...................................................................................99 はじめに ................... 101 Thinking Particles と XPresso を組み合わせる ........................................................................ 103 Thinking Particles を PyroCluster と組み合わせて使用する ................................................117 パーティクルを変形させる ................................................................................................................. 121 パーティクルグループによる作業 .................................................................................................... 123 索引 ..................................................................................................... 135 はじめに 1 THINKING PARTICLES はじめに パーティクルのひとつひとつをユーザー が 完 全 にコントロールし、 卓 越した パーティクル効果を作成できるノード ベースのパーティクルシステム、それが Thinking Particles です。 この度は、Thinking Particles をご購入いただきありがとうございます。CINEMA 4D のモジュー ルである Thinking Particles は、パーティクルモーションのありとあらゆる面をコントロールで きます。あらゆるポイント、エッジ、ポリゴンからのパーティクル放出が可能であり、オブジェ クトや他のパーティクルとの組み合わせも自由に行えます。これにより、パーティクルの質量 や大きさに加え、重力や風などの諸要因を考慮したリアルなモーションが得られます。またこ の他にも、パーティクルを多量に発生させたり逆に細分化するなど、数多くの効果が実現で きます。 本マニュアルは、チュートリアルとリファレンスのセクションに分けられています。Thinking Particles が持つノードの数は 30 以上にも及び、それぞれが高度な機能を持っているため、誰 でも即座に使いこなせるというわけにはいきません。そのため、まず Thinking Particles に慣 れていただくために、チュートリアルを順番に実行していき、その上で分かりにくい部分につい てはリファレンスを参照し、詳しい内容を確認するという手順をおすすめします。 とりあえず使ってみたいという場合は、まず最初にリファレンスの PStorm ノードに関するセク ションをご覧ください(21 ページ)。 Thinking Particles はノードベースのシステムであるため、最初は少々使いにくく感じられるか もしれませんが、まずは使ってみてください。しばらくすれば操作にも慣れ、スイスの時計職 人なみの精度でパーティクルを自由自在にコントロールできるようになるでしょう。 ユーザー登録 ご購入いただいた Thinking Particles モジュールは、必ずユーザー登録していただくようお願 いします。パッケージには期間限定のシリアル番号が同梱されていますが、これはモジュー ルをインストールしてから 3 か月経つと失効になります。正式なシリアル番号の取得にはユー ザー登録が必要です。できるだけ早く、ユーザー登録の申込フォームをご記入のうえご返送く ださい。 モジュールのユーザー登録が完了すると、電話やファクス、電子メールでのユーザーサポート が受けられるようになります。また、申込フォームの該当するボックスにチェックを入れていた だくと、弊社より最新の製品情報やお知らせをお送りいたします。 また、オンラインでのユーザー登録も受け付けています。register.maxon.net にアクセスして ください。 インストール Thinking Particles をインストールするには、インストーラを起動し画面の指示に従ってくだ さい。 インストーラでは、ユーザーのハードディスクにある「CINEMA 4D Module」フォルダ内 に「ThinkingPar ticles」フォルダを新たに作成し、このフォルダに CINEMA 4D Thinking Particles 関連の全ファイルを格納します。 THINKING PARTICLES 2 はじめに トレーニング Thinking Particles や、その他の MAXON 製品に関するトレーニングを実施しています。詳細 については弊社か、お近くの MAXON 製品販売代理店までお問い合わせください。 Web リソース Web 上に、オンラインチュートリアルや意見交換掲示板、テクスチャ、モデル、ギャラリー、 3D 関連書籍情報など、便利なリソースが豊富にそろっています。これらのサイトへのリンクは MAXON のホームページ、www.maxon.net にあります。 中 で も お 気 に 入り 登 録 を お す す め し た い の が、CINEMA 4D プ ラ グイ ン の ペ ー ジ、 www.plugincafe.com です。ここには、有償/無償でダウンロードできる便利なプラグインが 多数掲載されています。プラグインデベロッパの方にも、SDK などのリソースやチュートリアル、 無償サポートフォーラムが開かれています。 最後に、MAXON 社の Web サイトですが、前述のリンク集の他、MAXON 製品のオンライン ユーザー登録やアップデート版のダウンロード、MAXON への提案、ギャラリーの閲覧、オン ランチュートリアルなど様々な Web コンテンツを用意しています。 テクニカルサポート Thinking Particles に関する技術的な疑問、質問については、お気軽にお近くの MAXON 販 売代理店にお問い合わせください。喜んでお手伝いさせていただきます。弊社へ直接お問い 合わせいただいても結構です。 Thinking Particles モジュールのユーザー登録が完了したら、テクニカルサポートが受けられま す(ユーザー登録の項目を参照ください)。 THINKING PARTICLES 概要 Thinking Particles はルールベースの パーティクルシステムであり、高い機能 と自由度を兼ね備えています。ただし、 その使い方を習得するにはそれなりの 時間が必要となります。どのような作 業であれ、決まった考え方、決まった 進め方はありません。 概要 3 ここでは、Thinking Particles を使い始めるにあたっての概要を述べています。この文章に目 を通してから、チュートリアルに進むようにしてください。そうするだけの価値は充分にあり ます。 Thinking Particles はノードベースのシステムであり、ノードの作成や編集には CINEMA 4D の XPresso 編集を使います。そのため、先に進む前にくれぐれも XPresso の使い方をマスターし ておいてください。もうひとつ重要なのは、エミッタよりひとたび放出されたパーティクルにつ いては、エミッタ側ではいっさいコントロールできないということです。だからこそ、パーティ クルをグループ化することが重要なのです。グループ化することで、さらにルールや操作をグ ループに対して適用できます。 お分かりいただけたでしょうか?それでは、まず最初にパーティクルを作成してみましょう。こ の作業には PStorm か、または PBorn ノードを使います。PStorm は内蔵のパラメータを数多 く持っており、パーティクルの速さや大きさをそのまま設定できます。PStorm ノードを一度 作ってしまえば、ビューにパーティクルが見えるようになります。PBorn はより簡単であるた め、使用する前に、パーティクルにいくつかルールを適用しておく必要があります。同じことは、 例えば PSetData ノードでも行えます。 パーティクルに新規グループを作成(9 ページのパーティクルグループを参照)しない場合は、 パーティクルは All グループに置かれることになります(このグループは、グループというより はパーティクルツリーのルートにあたります)。 これで、自分のパーティクルグループに他のルール(ノード)を追加して、パーティクルに変 化を与えることができます。こうしたルールはそれぞれ、TP コンディション(有効期間などの コンディション関係)、TP スタンダード(パーティクルの形状、大きさ、質量など)、TP ダイ ナミック(重力や風といった効果)といった名前で分類されています。どのノードも、その入 力ポートに接続されたパーティクルストリームに変化を与えます。このことからも、パーティク ルのグループ化がどんなに重要かお分かりいただけるでしょう。 そのため、例えば PShape ノードを使って CINEMA 4D オブジェクトとパーティクルを関連づけ てパーティクルにシェイプを与えたり、 (パーティクルにウェイトを設定し、PGravity ノードを 使用して)パーティクルに重力を適用したり、 (PRepulse&Bounce ノードを使って)パーティ クル同士を衝突させたりといったことが簡単に行えるのです。ポート間にあるワイアを経由し て行う、ノード同士の接続については CINEMA 4D リファレンスマニュアルの XPresso セクショ ンに説明があります。 最後に、くれぐれもプランを先に立てて、いろいろと試してみてから、大規模かつ複雑なセッ トアップに取り掛かるようにしてください。また、パーティクルに形状を追加すれば、当然の ことながら、ビューの表示が遅くなってしまいます。そのため、パーティクルに形状を追加す る前に、いろいろと試してみましょう。 1 設定 設定 7 THINKING PARTICLES 設定 Thinking Particles の能力を最大限に 発揮するには、パーティクルグループ を頻繁に使う必要があります。ここで はグループの作成方法について説明し ます。その他、ビューにおけるグルー プのパーティクル表示を含め、グルー プのグローバル / ローカルでの設定に ついても扱います。 Thinking Particles の能力を最大限に発揮するために、あらゆる状況においてできるかぎりパー ティクルグループを使用してみてください。パーティクルグループを使用すれば、作成したパー ティクル効果を細かくコントロールできるようになります。 たとえば、1 つのエミッタから作った魚の群れが、一緒に泳いでいる映像を作成するとしましょ う。突然シーンに敵が登場して、群れが 2 つに分かれ、それぞれ反対方向に素早く逃げてい くという場面を付け加えたいという場合、パーティクルグループを使用すれば簡単に作成でき ます。 まず、魚群の半分を 1 つのパーティクルグループに、もう半分を別のパーティクルグループにそ れぞれ割り当てます。次に、これら 2 つのグループがそれぞれ反対方向に移動するようにしま す。これは、パーティクルグループの無数にある使用法のほんの一例にすぎません。特定の パーティクルを他と違うように動かしたい場合、たいていはパーティクルグループを使うことに なります。グループの作成は Thinking Particles の設定で行います。詳しくはパーティクルグルー プのセクションを参照してください(9 ページ)。 Thinking Particles の設定では、現在のフレームでの特定グループにあるパーティクル数など が確認できるほか、ビューでのパーティクル表示の変更なども可能です。 Thinking Particles の設定にアクセスする - メインメニューから、 「プラグイン -> Thinking Particles -> Thinking Particles 設定」を選 択します。 一般タブ ビューでのパーティクル表示方法や パーティクルとして使用しているオブ ジェクト表示のオン / オフを選択しま す。その他、一般タブでは現在のフ レームでのパーティクルの合計数やグ ループ別のパーティクル数が 表示されます 合計 現在のフレームにあるパーティクルの数です。すべてのグループに含まれるパーティクルの合 計数になります。 8 設定 THINKING PARTICLES ツリー パーティクルツリーの選択したブランチにあるパーティクルの数です。ブランチは、Thinking Par ticles のグループシステム内部における階層レベルの 1 つです。後述のパーティクルグルー プにある説明も参照してください。 グループ 選択したグループに現在属しているパーティクルの数です。後述のパーティクルグループの説明 を参照してください。 パーティクルの最大数 ここで、ThinkingParticles が生成するパーティクルの最大数を制限します。ThinkingParticles ではプログラムのミスによって予想に反した大量のパーティクルが突然生成され、コンピュー タがフリーズする場合があります。これはパーティクルの総量があなたのコンピュータで扱える 限界を超えたために起こる問題です。しかし、パーティクルの最大数を制限することでこの問 題を回避できます。 ビュータイプ このパラメータはグローバル設定で、ビューでのパーティクルの表示方法を決定します。パー ティクルはフレーク、ドット、ティック、ドロップ、ボックスのいずれかで表示するほか、表示 しないようにすることもできます。 ビュータイプの設定は、レンダリング後のパーティクルの表示に影響を及ぼすことはありませ ん。あくまでも、ビューでパーティクルを把握しやすくするための機能です。 ただし、パーティクルグループはそれぞれ固有の設定を持っており、そこで別のビュータイプ が指定されている場合、グローバル設定であるビュータイプ設定よりもそちらが優先されるこ とがあります。こうした設定の詳細については、後述のパーティクルグループを参照してくだ さい。 オブジェクトを表示 パーティクルのためのオブジェクトを既に使用していて、そのパーティクルオブジェクトをビュー で表示したい場合、このオプションをオンにします。ただし複雑なオブジェクトを数多く使用し ていると、ビューの画面書き替えが非常に遅くなることがあります。また、この値はグローバル 設定のため、各パーティクルグループの設定が優先される場合があるため注意が必要です。こ うしたローカル設定の詳細については、後述のパーティクルグループを参照してください。 この設定を強制適用する パーティクルグループは、それぞれ固有の表示設定を持っており、通常はすでに説明したように、 グローバル設定であるビュータイプやオブジェクトの表示設定より優先されます。ただし場合 によっては、こうしたグローバル設定をすべてのパーティクルグループに適用したほうが作業し やすいことがあります。 設定 9 THINKING PARTICLES 例えば、作成したシーンが 20 のパーティクルグループを持っており、各グループがローカルの オブジェクトの表示設定をオンにしている状態だとします(オブジェクトの表示などのローカル 設定は、パーティクルグループの設定を選択すれば設定が可能です。これについてはこの章で 後述します)。ビューの画面書き替え速さを上げる方法として、パーティクルオブジェクトの表 示をオフにする方法があります。パーティクルグループのそれぞれについてオブジェクトの表示 設定をオフにする方法もありますが、それよりもグローバルのオブジェクトの表示設定をオフ にして、この設定を強制適用するをオンにする方が手間がかかりません。これにより、すべて のグループにグローバルのオブジェクトの表示設定が強制的に適用されます。 パーティクルグループ Thinking Particles を効率よく使用するには、先にプランを立てておくことが重要です。作成 したパーティクル同士がどのような相互関係をもつかを決め、そして何より、パーティクルセッ トはそれぞれ異なるパーティクルグループに割り当てるようにしてください。こうしておけば、 後で変更したい場合にも作業時間が大幅に節約できます。 パーティクルグループペインでは、パーティクルグループの追加と削除、ソートとローカル設定 の変更が実行できます。All グループは常に自動生成されます。デフォルトでは、すべてのパー ティクルが All グループに割り当てられます。 グループはすべて階層構造になっており、CINEMA 4D の XPresso 編集マネージャと同じよう に機能します。こうした構造の利点としては、ユーザーがグループのツリー全体を作成できる 点があります。ツリーの一番上には、ブランチに属するグループすべてが含まれているため、 これらのグループが持つパーティクルもまた含まれることになります。 新規のパーティクルグループを追加するには、パーティクルグループペインの All グループ(他 のグループが存在する場合は、そのグループでも可)を、Windows なら右クリック、マウスボ タンが 1 つだけの Mac の場合は、Command - クリックします。続いて、表示されたコンテク ストメニューから追加を選択します。 新規のグループが作成され、コンテクストメニューを表示させた階層のグループの下に置かれ ます。新規のグループはグループの後に数字が続いた名前が付けられます。ここでグループの 名前を判別しやすく、他と混同しにくいものに変更することをおすすめします。グループの名前 を変更するには、名前のところをダブルクリックし、開かれたダイアログに新規の名前を入力 して OK をクリックしてください。 階層の配列を変えるには、グループをドラッグ&ドロップします。グループを削除するには、削 除したいグループ 1 つを選択(Windows では右クリック、マウスボタンが 1 つだけの Mac の 場合は、Command - クリック)し、続いて表示されるコンテクストメニューから削除を選択し ます (グループを追加する場合は Shift - クリック)。この際、選択したグループにあるサブグルー プもすべて削除されるので注意してください。また、削除されたグループに属していたパーティ クルは All グループに移されます。 10 設定 THINKING PARTICLES 設定 パーティクルグループはそれぞれグ ループのパーティクルのビューポイン トでの表示色やパーティクルオブジェ クトの表示のオン / オフを決定する ローカル設定を持っています パーティクルグループはそれぞれ設定を持っています。こうした設定にアクセスするには、パー ティクルグループペインから、希望するグループの名前を Windows の場合は右クリック、マ ウスボタンが 1 つだけの Mac の場合は、Command - クリックして、コンテクストメニュー から設定を選択します。 こうした設定では、ビュータイプやオブジェクトの表示設定のローカル値を設定できます。 この 2 つの値については、前述の「ビュータイプ」 「オブジェクトを表示」 「この設 定を 強制適用する」を参照してください。 さらに、グループの名前や、ビューでのパーティクルの表示色を変更することもできます。 いずれも複数のグループを使用している場合に便利です。グループ別に表示色を割り当てて おけば、各パーティクルがどのグループに属しているのか、ビューを見れば分かるようにな ります。表示色を変更するには、カラーをクリックして、表示されるカラーシステムダイアロ グを希望する色に設定します。この設定は、レンダリング後のパーティクルには一切影響し ません。 チャンネルタブ このタブでデータチャンネルが作成 できます。データチャンネルを作成 することにより、ユーザーは自分自 身の値を Thinking Particles のエク スプレッションに渡すことができます データチャンネルを経由することで、自分自身のデータを Thinking Particles の効果に渡すこ とができます。操作は、XPresso エクスプレッションのユーザーデータポートと同じように行 います。 設定 11 THINKING PARTICLES データチャンネルを、ポートとして PGetData ノードや PSetData ノードに追加することも可能 です。 使用できるデータタイプは、XPresso のものと同一です。データタイプの詳細については、お 手持ちの CINEMA 4D リファレンスマニュアルをご覧ください。リストからチャンネルを削除す るには、チャンネルを選択して削除をクリックします。 なお、ユーザー自身の値をエクスプレッションに渡すには、XPresso のユーザーデータポート が使用できます。 パーティクルジオメトリオブジェクト パーティクルジオメトリオブジェクトは、オブジェクトをパーティクルとして使用する場合に必 要となります。 パーティクルとして使用するオブジェクトは、必ずオブジェクトマネージャの階層でパーティク ルジオメトリオブジェクトより下に位置していなければなりません。パーティクルジオメトリオ ブジェクトの子であるか、または下の階層に位置していれば問題ありません。 パーティクルジオメトリオブジェクトを作成するには、メインメニューから プラグイン -> Thinking Particles -> パーティクルジオメトリ を選択します。 パーティクルとして使用するオブジェ クトは、オブジェクトマネージャで パーティクル ジオメトリオブジェクト の下に位置していなければなりません パーティクルジオメトリオブジェクトを選択すると、属性マネージャにその設定が表示されます (上図参照)。Thinking Particles の設定より希望するパーティクルグループの名前をドラッグし て、パーティクルグループボックスにドロップしてください。サブグループがオンになっていれば、 選択したオブジェクトのサブグループもあわせて指定のパーティクルグループに割り当てられま す。 ネットワークでのレンダリング オプションの CINEMA 4D NET Render モジュールを 使 用して、ネットワークを経由して Thinking Particles のシーンをレンダリングする場合には、1 台のコンピュータを使用した場合 よりもシーンのレンダリングに時間がかかることがありますので注意してください。 このような状況は、パーティクル間でのやりとりが複雑な場合に発生します。これは、パーティ クル間の完全なやりとりはフレームごとに計算する必要があるためです。このような場合、ネッ トワークに接続するコンピュータを増やすと、レンダリングの所要時間がさらに増加すること があります。これは、接続したコンピュータの速さにばらつきがある場合に顕著です。このよ うなシーンのレンダリングはネットワーク経由で実行しないようにしてください。 2 ノード ノード 15 THINKING PARTICLES ノード Thinking Particles で作成した効果を 構成しているブロック、それがノードで す。ノードはその機能に応じて、グルー プに配置されます。 Thinking Particles は CINEMA 4D の XPresso システムを使用しており、効果の作成と編集は XPresso 編集で行います。 ノードは、Thinking Par ticles で作成した効果を構成する、基礎となるブロックのことです。 ノードを作成するには、XPresso 編集で Windows では右クリック、マウスボタンが 1 つだけ の Mac の場合は Command - クリックし、新規ノード -> Thinking Particles から希望するノー ドを選択します。このメニューでは、ノードはその機能に応じていくつかのグループに配置さ れています。 この章では、Thinking Par ticles のノードを、グループおよびメニュー上で表示される順番で 個別に説明していきます。ノードと XPresso 編集の操作については、CINEMA 4D リファレン スマニュアルを参照してください。 TP イニシエータグループ PPass パーティクルに重力を加えるには、 パーティクルを 1 つのグループにまと め、続いて PPass を使って、そのグ ループを PGravity ノードに渡します このノードでは、パーティクルのグループを別のノードに渡すことができます。これは度々必 要となる作業です。PPass は、パーティクルグループに適用する効果の選択に使用します。 例えば、特定のパーティクルグループに重力を適用したいとします。この場合はまず最初に、 そのグループを PPassノードに割り当て、 次にPPassノードのパーティクルの出力を PGravityノー ドのパーティクル入力に接続します。 パーティクルグループの作成については、9 ページのパーティクルグループを参照するか、 あるいは本マニュアルの Thinking Particles チュートリアルを実行してください。 属性マネージャのパラメータ ノードが出力するパーティクル グループを選択します グループ ノードが出力するパーティクルグループを選択するには、Thinking Particles の設定(XPresso 編集で カスタム -> Thinking Particles -> 設定 を選択)から希望するグループをドラッグし、 このボックスにドロップします。 16 ノード THINKING PARTICLES 出力ポート 番号 このパーティクルが通過した番号の数を出力します。ショットモードでパーティクルを作成する 場合に使うと特に便利です。 例えばヌルオブジェクトと同じ位置に作 成されたパーティクルのうち、30 個目 のパーティクルの位置を設定するとしま す。ここで表示されているノードの設定 を使って、 「比較」ノードの比較演算子 で == を選択して「入力 2」に 30 と 入力してください。 パーティクル数 ノードが通過するパーティクルの合計数を出力します。 パーティクル このポートを、パーティクルグループを受けることになるノードのパーティクル入力ポートに接続 します。 PPassAB PPassAB を使って、2 つのグループにあ るパーティクルの位置を比較することが できます。この場合、PPassAB は 2 つ のパーティクルグループを PGetData に 渡します。PGetData ではこれらのパー ティクルの位置を取得し、次にいずれか 片方をもう一方から差し引きます このノードは PPass ノードと類似のものですが、別のノードに渡せるパーティクルグループの数 が 1 つだけでなく、2 つでも実行できるという点で異なります。これはとりわけ、異なるグルー プに属している複数のパーティクルを比較したい場合に有効です(上図参照)。同じことは PPass ノードを 2 つ使用すれば可能ですが、この方法の方が手軽に実行できます。PPassAB の使用は、PRepulse&Bounce モードをコントロールする場合には不可欠となります。 パーティクルグループの作成については、9 ページのパーティクルグループを参照するか、 あるいは本マニュアルの Thinking Particles チュートリアルを実行してください。 ノード 17 THINKING PARTICLES 属性マネージャのパラメータ ノードが出力する 2 つのパーティクル グループを選択します グループ A、グループ B このボックスでは、ノードが出力するパーティクルグループを定義します。Thinking Particles の設定を開き、そこからパーティクルグループ 1 つの名前をドラッグして、グループ A にドロッ プします。同様に、もう1 つのパーティクルグループをドラッグしてグループ B にドロップします。 距離のタイプ 「距離のタイプ」は、どのような条件においてパーティクルを 「パーティクル A」と 「パーティクル B」 ポートから出力させるかを指定します。 なし 「なし」に設定すると、パーティクル間の距離は計算されません。したがって全てのパーティ クルが出力されます。 内側、外側、距離 「内側」に設定すると、グループ A と B に属する二つのパーティクルが「距離」で指定した 値より近い場合にだけ出力されます。また「外側に」設定すると、距離で指定した値より遠 い場合にだけ出力されます。 出力ポート 距離 AB グループ A と B に属するパーティクル間の距離を出力します。 パーティクル数 A、パーティクル数 B パーティクル A、パーティクル B の現在の数をそれぞれ出力します。 パーティクル A、パーティクル B これら 2 つのポートをそれぞれ、パーティクルグループを受け取る 2 つのノードのパーティクル 入力ポートに接続します。 18 ノード THINKING PARTICLES 位置 A、位置 B グループ A と B に属するパーティクルの位置をそれぞれ出力します。 ベクトル AB グループ A と B に属するパーティクル間のベクトルを出力します(「位置 A」が始点、 「位置 B」 が終点となります)。 ノード 19 THINKING PARTICLES TP コンディショングループ PAge ここでは PAge を使って特定のパーティク ルだけを新規のパーティクルグループに 渡しています。例えば、絶対値を T1=30、 T2=45 として使用すると、有効期間が 30 から 45 フレームまでのパーティクルだ けが新規のグループに渡されます このノードでは、パーティクルの寿命や、生成されたばかりのノード、有効期間が終わったば かりのノード、グループを変更したばかりのノードが確認できます。通常このノードは、特定 の有効期間をもつパーティクルを新規のグループに移動させるのに使用します(上図参照)。 属性マネージャのパラメータ 確認したいイベントのタイプを選択しま す。例えば、生成されたばかりのパー ティクルがどれなのかを確認できます タイプ、相対 T1、相対 T2、絶対 T1、絶対 T2 実行したいチェックの種類に応じてタイプを設定します。 生成、消滅 これらの設定では、現在のフレームで生成された、あるいは有効期間の終わったパーティ クルを確認します。 グループに入る 現在のフレームで特定のグループに入れられたパーティクルを確認します。 相対 相対 T1 と相対 T2 によって定義された 2 つの期間内に有効期間のあるパーティクルを確認 します。こうした期間はパーセントで指定します。0% はパーティクルの生成時間と等しく、 100% であれば消滅時間と等しくなります。 絶対 絶対 T1 と絶対 T2 の 2 つの期間内に有効期間のあるパーティクルを確認します。いずれも フレームでの表示となります。 20 ノード THINKING PARTICLES その他の入力ポート アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただ し、ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可 能となります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である) 時間でなければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用され ます。 パーティクル このポートは、例えば PPass ノードや PStorm ノードのパーティクル出力ポートなど、チェック したいパーティクルストリームに接続します。 出力ポート オン このポートでは、各パーティクルのブール値を出力しチェックの結果を示します。チェックが正 であれば True、負であれば False となります。例えば、タイプが生成に設定されたとします。 現在のフレームで 3 つのパーティクルが生成され、そのフレームの前には 100 のパーティクル が既に存在していました。この場合ノードでは 100 の既存パーティクルには False を、3 つの 新規パーティクルには True を出力します。 オンポートの主な用途は、このポートを PGroup ノードのオン入力ポートに接続することです。 これにより、選択した有効期間にあてはまるパーティクルすべてが新規グループに置かれます。 PLight ここでは PLight ノードを、関連づけら れたライトオブジェクトが 90% を超える 赤に達した場合、ビューに立方体が表示 されるようになっています。この他にも PLight には有効な用途が数多くあります このモードを使用することで、光源の色や強度を使用した動作をコントロールしたり、3D 空 間の指定した位置で光の色や強度などをチェックできます。 属性マネージャのパラメータ ここで動作のきっかけとなる光の強度 や色を選択できます ライト ノードがテストするライトを選択するには、オブジェクトマネージャで希望するライトの名前を ドラッグし、このボックスにドロップします。 ノード 21 THINKING PARTICLES しきい値 この値を援用することで、ユーザーは PLight ノードを使って、3D 空間の特定の位置(位置 の値で定義)で光源の明るさに基づき動作をコントロールできるようになります。 このノードでは、3D 空間のこの位置で、ライトの強度がしきい値の値を超えたかどうかによ り、True または False のブール値を出力します。このノードのオンポートでは、ライトの明る さがしきい値の値と同じか、またはそれ以下である場合には False の値を、それ以上であれ ば True を出力します。しきい値の値が 1 の場合は、ライトの明るさ 100% に等しくなります。 例えば、PStorm ノードで、200、10、-50 の値に位置するワールドで、ライトの明るさが 50% を超えた場合にのみパーティクルを放出したいとします。この場合、PLight ノードを作成しラ イトの名前をライトまでドラッグして、位置の値を 200、10、-50 に、しきい値の値を 0.5(0.5 x 100 = 50%)にそれぞれ設定します。つぎに PLight ノードを PStorm ノードに、それぞれの オンポート経由で接続します。 カラーオン、カラー、カラーの範囲 3D 空間の特定の位置(位置の値により定義)で、光源の色に基づいて動作をコントロール するには、カラーオプションをオンにして、しきい値を 0 に設定します(しきい値を 0 にしな い場合、ライトの明るさも考慮されます)。 つぎにノードでは、ライトの色が 3D 空間のこの位置でのカラー設定で定義されている色と同 じもの(カラーの範囲の設定によって、類似のものにすることも可能)であるかどうかにより、 True または False のブール値を出力します。このノードのオンポートは、2 つの色が同一また は類似のものであれば True の値を、それ以外は False の値を出力します。 カラーの範囲設定では、True 値の出力に関して、ライトの色とカラー設定の類似度をパーセ ントで定義しています。例えば値が 0% であれば、True の出力を得るには 2 つの色が完全に 一致していなければなりません。同じ値が 100% であれば、どのような色の組み合わせであれ、 同じものとして扱われます。 ライトの色と明るさの両方に基づいて動作をコントロールしたい場合は、さらにしきい値の値 を希望する明るさに設定することになります。上記のしきい値を参照してください。続いて、 このノードのオンポートでは、ライトの明るさがしきい値の値を超え、なおかつライトの色がカ ラー設定にある色と同一または類似である場合にのみ True の値を出力します。 位置 この値では、ライトの値をチェックする位置を定義します。 法線 法線は 1 の長さをもつ方向ベクトルで、ポリゴンサーフェスのシェーディング計算でしばしば援 用されます。法線をこのポートに渡すことで、指定の位置でライトの明るさに影響を与えるこ とができます。 ベクトルが存在しない場合、光源に向けられた法線が自動的に生成されます。そのためライト は(正しい角度で)直交して、仮想のサーフェスに投げかけられます。またこれにより、強度は 最大となります。 22 ノード THINKING PARTICLES 注意しなければならないのは、ライトに向けられた法線は、ライトオブジェクトではなく自分 自身を照らしているということです。これはライトがサーフェスの裏を照らす原因となります。 そのため、ライトが指示どおりの位置を照らしていても、明るさが 0 になることがあります。 その他の入力ポート アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただ し、ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可 能となります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である) 時間でなければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用され ます。 出力ポート オン 3D 空間での特定の位置(位置の値により定義)で、光の明るさや色に応じて、True または False のブール値を出力します。前述のしきい値カラーオン、カラー、カラーの範囲を参照し てください。 明るさ 位置の値で指定された位置でのライトの明るさを浮動値で出力します。明るさの値が 0 であ れば明るさは 0% となり、値が 1 であれば明るさは 100% になります。 カラー 位置の値で定義された位置でのライトの RGB 色を出力します。 方向 ライトの位置と、位置の値で定義された位置の間での方向ベクトルを出力します。このベクト ルは手計算でも得られます。位置の値からライトの位置を差し引いてみてください。 ノード 23 THINKING PARTICLES TP ジェネレータグループ PBlurp この新規ノードはオブジェクトを断片化し、パスに沿ってその断片を動かして、もう一度組み 立て(モーフィングして)、全く新しいオブジェクト(ターゲットオブジェクト)を作成します。た とえば、3D テキスト「Thinking」を、別の 3D テキスト「Particles」にモーフィングすることが できます。 次の入力ポートを使用できます。 アニメーション位相 この入力ポートはモーフィング効果の進行状況をコントロールします。0% に設定すると、元の オブジェクトは全く手をつけられずそのままになります。100% に設定すると、モーフィングが 完了して、断片からターゲットオブジェクトが完全に形成されます。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく入力されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 オン オン入力ポートでは、ノードをオン (True)/オフ (False)にするブール値を受け取ります。このポー トを追加しない場合は、ノードは自動的にオンにされます。 次の出力ポートが利用できます。 断片パーティクル オブジェクト間を現在移動中の断片化したパーティクルを出力します。この出力ポートを使用し て、断片を個別のパーティクルグループや形状に割り当てることができます。 断片数 このノードで生成された断片数を出力します。 断片番号 現在生成されている断片パーティクルの内部番号を出力します。 残パーティクル数 オブジェクトは徐々に断片化されます。このポートはまだ作成されていない断片数を出力しま す。 24 ノード THINKING PARTICLES 残パーティクル番号 残りの断片パーティクル全ての内部番号を出力します。 残パーティクル まだ作成されていないため、次のオブジェクトに移動していない断片パーティクルを出力し ます。 属性マネージャに次のような PBlurp ノードの設定ページが表示されます。 オブジェクト オブジェクトマネージャで断片化するオブジェクト、あるいは断片から形成するオブジェクトを ドラッグし、属性マネージャのこのボックスにドロップします。このようなオブジェクトはポリ ゴンオブジェクトでなければなりません。プリミティブオブジェクトの場合は、このノードで使 用する前に、ポリゴンオブジェクトに変換してください。 2 つ以上のオブジェクトを使用できます。全く形状の異なるオブジェクトで、そのポリゴン数が 違っていても問題ありません。オブジェクトリストの最上位にあるオブジェクトから使用されま す。このオブジェクトはリスト内の 2 番目のオブジェクトに断片化され、モーフィングされます。 次にそのオブジェクトが 3 番目のオブジェクト(存在する場合)に断片化され、モーフィングさ れます。このように引き続き処理されます。 ノード 25 THINKING PARTICLES スプライン曲線はオブジェクト間のパスをコントロールします。各オブジェクトはこの曲線を調 整できる仮想接線を持っています。左側の接線、右側の接線のパラメータは各接線のハンドル の長さを定義します。スプライン曲線をさらにコントロールする方法があります。オブジェクト リストにヌルオブジェクトを追加するのです。このようなヌルオブジェクトを使用すると、2 つ のポリゴンオブジェクト間のスプラインのコースを調整できます(ヌルの位置で曲線の形状を 調整できます)。 その他のパラメータについて オブジェクトリストの各オブジェクトに関して、次のパラメータを個別に設定できます。パラメー タを編集したいオブジェクトを選択し、必要に応じてパラメータを調整してください。 ステイ デフォルトでは、オブジェクトの断片化に要する時間は、断片が次のオブジェクトを形成する 時間と同じです。ただし、ステイ値を 0% より高く設定すると、断片化が遅くなります。 100% はオブジェクトが別のオブジェクトに変化するために必要な時間に対応しています。従っ て、ステイ値を増やすとオブジェクトの断片化に要する時間が短くなります。言い換えると、こ の値を増やした場合、 (最初の遅延時間後に)オブジェクトはさらに早くパーティクルに変化す るようになります。 フラッグ 前述したように(「ステイ」参照)、デフォルトでは、オブジェクトが断片化する時間はその断片 から次のオブジェクトが形成される時間と同じです。ただし、フラッグ値を使用して、オブジェ クトが断片化する速さをコントロールできます。0% に設定するとオブジェクトは瞬時に断片化 します。一方、100% に設定すると利用可能な全時間を使って断片化します。 次 この値は断片が 2 つのオブジェクト間の移動に要する時間をコントロールします。0% に設定 すると断片は目的のオブジェクトの位置に瞬時に移動します。その際にオブジェクト間のスプ ライン曲線を無視します。その反対に、100%に設定すると利用可能な全時間を使って、断片 は目的のオブジェクトの位置に移動します。 イン接線、アウト接線 この 2 つの値はオブジェクトリストで現在選択されているオブジェクトの接線の長さをコント ロールします。0 に設定するとオブジェクト間のスプラインパスは直線になります。それより大 きな値に設定すると、パスは曲線になります。 開始 この設定はオブジェクトが断片化される方向をコントロールします。たとえば、-Y から +Y とい う設定は、オブジェクトがマイナスの Y 軸からプラスの Y 軸の方向へ断片化するという意味です。 オブジェクトの軸システムが使用されます。 26 ノード THINKING PARTICLES タイプ この設定では断片の形状と外観をコントロールできます。断片化したパーティクルポートを PShape ノードに接続して、自分で作成したオブジェクトを断片として使用できます。 次のモードの中から選択できます。 シングルフェイス オブジェクトの面がそれぞれ 1 つの断片になります。 スムーズと距離 このモードを選択すると、角度と半径の設定がオンになります。作成される断片の数はサー フェスの法線の方向に応じて変わります。似たような方向(角度値で定義された値)を指し ている隣接したサーフェスは、グループ化され、1 つの断片を形成します。半径値はこのよ うな断片の大きさを設定します。半径値はパーセントで表現され、100% はオブジェクト全 体のサイズを表します。従って 50% は断片化されているオブジェクトの半分の大きさという ことになります。 カウント このモードでカウントパラメータがオンになります。このパラメータでオブジェクトが断片化 する際の正確な断片数を指定できます。 角度 この設定はタイプがスムーズと距離に設定されている場合に利用できます。隣接したサーフェ スを 1 つの断片にする際に、その法線の角度差の最大値を定義します。 半径 この設定はタイプがスムーズと距離に設定されている場合に利用できます。この値はオブジェ クトの大きさに比例した断片のサイズを定義します。 カウント タイプがカウントに設定されると、オブジェクトが断片化する際の総断片数をここで設定でき ます。 厚み このパラメータは断片を押し出して厚みを与えます。押し出しの強度がパーセンテージで表現 されます。100% はオブジェクトの最大サイズに対応します。断片に厚みを加えるとは、さら にサーフェスを作成する必要が生じるという意味なので、必要な RAM サイズが増えることも覚 えておいてください。 断片なし このオプションは断片を隠します(作業によっては、断片を非表示にして、穴だけをオブジェク トに表示した方が便利な場合もあります)。 元オブジェクトのタイプ 断片が作成された後のオブジェクトの外観を定義します。 ノード 27 THINKING PARTICLES なし 断片が作成されるにつれて、元オブジェクトは完全に消滅します。 中空 断片が作成されるにつれて、穴がオブジェクトに作成されます。オブジェクトがその構成分 子に分解されていく効果を出すことができます。 固形 各断片が元のオブジェクトを塊で切り落としていきます。これはオレンジの皮を剥く作業に 相当します。中空モードとは異なり、オブジェクトは固形のままです。つまり穴はありません。 オブジェクトが部分的に塊でなくなっています。 厚み 前述した厚みの値とは対照的に、ここでは後に残るオブジェクトの厚みを定義します。元オブ ジェクトのタイプが中空に設定されている場合、オブジェクトの厚みを定義して、断片化が起 きた後も固形のまま表示させることができます。オブジェクトに厚みを加えるとは、さらにサー フェスを必要とするという意味なので、必要なメモリサイズが増えることも覚えておいてくださ い。最良の結果を得るには、両方の厚みパラメータを同じ値にしてください。 非表示の選択範囲にマテリアルを限定する PBlurp ノードは断片と残りの部分のために、表示されない選択範囲を自動的に作成します。こ の選択範囲に限定して、テクスチャを別のマテリアルに適用することができます。テクスチャタ グを選択し、属性マネージャの選択範囲に限定 ボックスに必要な非表示選択範囲の名称を入 力して設定します。この非表示選択範囲の名称(下記参照)は全て大文字で入力してください。 たとえば、テクスチャを断片のエッジに適用する場合、テクスチャタグの選択範囲に限定ボッ クスに FEDGE と入力してください。 FEDGE 断片のエッジ FBACK 断片の背面 FREDGE オブジェクトの残りの部分のエッジ FRBACK 断片の下にあるサーフェス。元オブジェクトのタイプが固形に設定されている場合、このサー フェスは表示されるようになります。元オブジェクトのタイプが中空に設定されている場合、 このサーフェスは残されるオブジェクトの内部を形成します。 PBlurp ノードを使用する PBlurp ノード使って、あるオブジェクトを別のオブジェクトにモーフィングする方法は以下のと おりです。 28 ノード THINKING PARTICLES - 属性マネージャの PBlurp ノードのオブジェクトリストに 2 つのオブジェクトをドラッグ&ド ロップします。この 2 つのオブジェクトの元オブジェクトのタイプを中空に設定します。ほと んどの場合、これらのオブジェクトは非表示にする必要があります。 - パーティクルジオメトリオブジェクトを作成します(プラグイン -> Thinking Particles -> パー ティクルジオメトリ)。 - PBlurp ノードのアニメーション位相パラメータをアニメートします。たとえばフレーム 0 で 0% のアニメーション位相を記録し、次にフレーム 60 で 100% のアニメーション位相を記録 します。 PBorn ここでは、円柱の最上部中央からパー ティクルを放出するものとします。その ため、ポリゴンノード(この円柱の最上 部フェイスにあるポリゴンの 1 つによっ て駆動される)を使用し、法線の方向 を最上部の面としています。これはまた、 PVelocityConvert ノードを(200 の速 さで)駆動するものでもあり、このノー ドではパーティクルの速度(速さと方向) を計算します。パーティクルストリームの 始まりをポイントノードに設定し、その ポイントを最上部面の中央に設定してい ます。 PBorn は PStorm ノードを簡略化したものです。このノードはパーティクルの作成は可能ですが、 使用できるパラメータは PStorm ノードより少なくなります。そのため、例えばパーティクルに 位置や速度を与える場合には PSetData モードを多用することになるでしょう。 このノードは、PSurfacePosition や PVolumePosition ノードとの組み合わせでよく使われます。 これが PBorn ノードの最もシンプルな セットアップです。これは表面に球体の パーティクルが生成されている例です。 ノード 29 THINKING PARTICLES 属性マネージャのパラメータ パーティクルの生成方法を選択します。カ ウントモードでは、1 度に存在できるパー ティクルの最大数を定義します。レート モードでは秒あたりのパーティクル数を、 ショットモードではフレームあたりのパー ティクル数をそれぞれ定義します 生成タイプ、カウント、レート、ショット パーティクルの作成には、カウント、レート、ショットの 3 つのモードがあります。生成タイプ を希望するモードに設定してください。 カウント このモードでは、カウント値はあらゆる時間で同時に存在できるパーティクルの最大限の数 を定義します。カウント値は有効期間の値と密接に連携しています。例えば、有効期間が 5 に、カウントが 100 パーティクルにそれぞれ設定されていれば、パーティクルは 100 個まで は増加していきます。パーティクルの消滅が始まると新規のパーティクルが放出され、パー ティクルの数が 100 に保たれるようになります。 レート レートモードでは、レート値ではアニメーションの秒あたりに生成されるパーティクルの数 を定義しています。そのため、パーティクルの総数はフレームレートの影響を受けることに なります。 ショット ショットモードでは、ショット値はアニメーションのフレームあたりに生成されるパーティク ルの数を定義します。 有効期間、有効期間の範囲 有効期間の値は、各パーティクルの有効期間をフレームで定義します。有効期間の範囲を使用 すれば、パーティクルの有効期間を変えられます。 ランダムシード(ノードの属性タブ) 同じ設定を持つ PStorm ノードを複数 使用している場合は、ストリームの重複 を防ぐため異なるランダムシード値を使 用します 同じ設定をもつ複数のパーティクルエミッタを使用する場合、そうしたエミッタでは同じパー ティクルストリームを複数生成することになります。これを防ぐには、エミッタにそれぞれ異な るランダムシード値を割り当てます。 その他の入力ポート オン True のブール値であれば、このノードがオンになります。値が False であればオフになります。 30 ノード THINKING PARTICLES アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 出力ポート パーティクル生成 ここで利用できるパーティクルストリームは、現在のフレーム内で生成されたパーティクルです。 そのため、このポートを別のノードのパーティクル入力ポートに接続すると、このノードはそれ 以降に生成されたパーティクルにのみ影響します。 そうではなく、PStorm が生成したパーティクルすべてに影響させたい場合には、このポートを PGroup ノードに接続してすべてのパーティクルを 1 つのグループにまとめ、それから PPass ノー ドを使用して、そのグループの内部にあるパーティクルすべてを渡します。これは特に有効な テクニックです。 生成数 現在のフレームの間で生成されたパーティクルの数を出力します。 生成番号 現在のフレームで生成された最後のパーティクルの番号を出力します(0 から開始)。通常は生 成数を 1 つ下回る値になります。 PDraw 仮想ブラシを使って、PDraw ノードで自由に 3D 空間にパーティクルを描画することができます。 パーティクルを描くと、このノードがその容器として動作します。 次の入力ポートが使用できます。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく入力されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 オン オン入力ポートでは、ノードをオン (True)/オフ (False)にするブール値を受け取ります。このポー トを追加しない場合は、ノードは自動的にオンにされます。 ノード 31 THINKING PARTICLES 次の出力ポートが使用できます。 パーティクル生成 現在のフレームで生成された最後のパーティクルの番号を出力します。 生成数 現在のフレームの間で生成された全パーティクルを出力します。新規に生成されたパーティク ルだけでなくすべてのパーティクルにアクセスしたい場合は、PPass ノードを使用してください。 生成番号 現在のフレームで生成されたパーティクルの番号を出力します。 次のパラメータが属性マネージャで使用できます。 タイプ このメニューからマウスポインタの位置に応じたパーティクルの描画位置を定義します。 ポイント パーティクルはマウスポインタと同じ位置に描画されます。半径とカウントの値はこのモー ドでは無視されます。 作成されるパーティクル数はマウスポインタを動かす速度と時間によっ て変わります。 球 パーティクルはマウスポインタを囲む架空の球の内部に描画されます。半径値はこの球のサ イズを定義し、カウント値は 1 回のマウスの動きで描かれるパーティクル数を定義します。 半径 タイプが球に設定されている場合、パーティクルはマウスポインタを囲む架空の球の内部に描 画されます。この設定ではこの架空の球のサイズを定義できます。また、ビューでインタラクティ ブに球のサイズを調整することもできます。後述の「パーティクルを描画する」を参照してくだ さい。 カウント 1 回のマウスの動きで描かれるパーティクル数を定義します。このパラメータはタイプがポイン トに設定されている場合は無効です(ポイントの場合は、1 回のマウスの動きで描かれるパー ティクルは 1 つです)。 描画位置 これらの座標を使って、パーティクルが描かれる幅を設定できます。例えば XZ 面でペイントす るとします。そして 「描画位置」の Y の値を 400 に設定すると、Y 座標において400 (タイプを 「球」、 半径を -400 ∼ +400 に設定)の位置で、パーティクルを描くことができます。 有効期間、有効期間の範囲 有効期間パラメータは消滅するまでのパーティクルの存続期間を定義します。パーティクルの 有効期間は有効期間の範囲値を使って変更できます。 32 ノード THINKING PARTICLES ランダムシード このノードはこの開始値に基づいてパーティクルの有効期間の範囲を計算します。設定が同じ PDraw ノードはランダムシード値を変えない限り、全く同じ変化を生成します。 削除 PDraw ノードの全パーティクルを削除する場合は、このボタンをクリックします。現在表示さ れているパーティクルだけでなく、ノードのパーティクルは全て削除されます。 パーティクルを描画する パーティクルをビューに描画するには: - PDraw ノードを選択します。 - プラグイン -> Thinking Particles -> TP ParticleDraw を選択します。 - タイムスライダをパーティクルを生成するフレームまで移動します。 - Ctrl - ドラッグしてパーティクルを描画します。 - タイプが球に設定されている場合、Shiftl - ドラッグしてパーティクルが描画される架空の球 のサイズを変更できます。 - このフレームのパーティクルの描画が終わったら、パーティクルを生成したい次のフレーム に移動します。この新規フレームにパーティクルを描画します。 ノード 33 THINKING PARTICLES PFragment この例では、パーティクルグループは ライトによって照らされた瞬間に グループが細分化されます このノードを使用して、パーティクルをいくつかの断片に分割することができます。断片のそれ ぞれを元のパーティクルとは異なる形状にすることも可能です。例としては花火があります。花 火では、個々のパーティクル(この場合は火の玉)が、さまざまな形状(例えば、花火であれ ば小さな星)へと分割されます。 属性マネージャのパラメータ ここにあるパラメータを使用して 作成される断片の半径や厚みなどを コントロールすることができます ウェイト グラデーション表示されているこのパラメータでは、断片のウェイトをコントロールします。グ ラデーションの左端にある強度は断片化の開始時点でのウェイトを、右端の強度は断片が消滅 する時点での断片のウェイトをそれぞれコントロールします。色が明るいほど、断片の有効期 間でのウェイトは増大します。ウェイトは断片と、風や重力のような力との相互作用において影 響を及ぼします。 しきい値、しきい値の範囲 しきい値の値は断片化の進行をコントロールします。値が 1 であれば断片化は実行されません。 値が 0 であれば、すべてのパーティクルが完全に断片化されます。しきい値を変更することで、 時間内での断片化の進行の度合いを変更できます。開始では、断片化の方向を設定します。 定形化されていない断片化を実行するには、範囲を使用してしきい値の値をランダムなものに します。 34 ノード THINKING PARTICLES 開始 断片化の進行をコントロールします。特に対象となるのは開始点であり、そのため方向も含ま れます。例えば、-Yという設定を +Y に変更すると、オブジェクトの断片化は負の Y 値より始まり、 Y 軸に沿って実行されます。各パーティクルの軸システムは、このような方向の決定に使われ ます。パーティクルの方向を回転を適用するなどして変更すると、回転はワールドやエミッタ軸 とは異なったものになります。この軸での断片化の進行は、しきい値によってコントロールさ れます。 タイプ、角度、半径、カウント タイプは断片化での形状をコントロールします。形状を設定するには、PShape ノードを生成 パーティクル出力ポートに接続する方法もあります。 タイプをシングルフェイスに設定すると、3 面のポリゴンが断片として使用されます。 タイプがスムーズと距離に設定されている場合、角度と半径パラメータが有効となります。こ の場合、断片化は法線の角度に影響されます。同じ法線の方向をもつ、連続した面が 1 つの 断片を形成します。この断片の大きさを決めるのが半径の値です。このパーセント値は、元と なるパーティクルの大きさおよび境界ボックスに関係しています。値が 50% であれば、断片の 大きさは元のパーティクルの半分になります。 タイプをカウントに設定すると、カウントパラメータが有効となります。このパラメータでは、 断片化される各パーティクルの断片の数を定義します。例えば、カウントが 5 に設定されており、 すべてのパーティクルが断片化される場合、各パーティクルは 5 つまでの断片を生成します。 厚み このパラメータを使用することにより、断片のサーフェスに押し出し加工を施すことができます。 押し出し部分は、元となるパーティクルオブジェクトの大きさとの相対で、パーセント値により コントロールされます。 例えば 100% に設定すると、 断片のそれぞれが元のパーティクルオブジェ クトの最大の大きさにまで押し出し加工されます。厚みを割り当てることは、計算し保持しな ければならないフェイスの数を増やすことになります。この処理には 2D のフェイスに比べかな り多くのメモリを必要とします。 断片なし このオプションでは、作成された断片を消去することで、パーティクルオブジェクトに穴を開け ることができます。 配置の補正 風のような力はパーティクルの方向に影響を与えるため、断片化の時点ではパーティクルの方 向を予測する簡単な方法はありません。このパラメータを使用すれば、断片の当初の方向を、 パーティクルオブジェクトの法線にそった形で設定できます。 ノード 35 THINKING PARTICLES ライフスパン、ライフスパンの範囲 この設定では、通常のパーティクルのライフスパンと同じように、各断片のライフスパンを定 義します。各パーティクルはライフスパンが過ぎると消滅します。範囲を使用すれば、各パーティ クルの有効期間を変更できます。 速さ、速さの範囲 各断片の速さを元となるパーティクルオブジェクトとの相対値で定義します。範囲を使用すれ ば、各パーティクルの速度を変更できます。 元オブジェクトのタイプ この設定では、断片化の後での元のパーティクルオブジェクトの表示を決定します。 なし 元のパーティクルオブジェクトを完全に消去します。 中空 元のパーティクルオブジェクトのサーフェスに穴を空けます。これにより、断片化された部分 が抜け落ちたようになります。1 つのオブジェクトがいくつかの断片に分割されたような効果 が得られます。 固形 断片のそれぞれが元のオブジェクトを大きく切り落としていきます。果物の皮を剥いている ような効果が得られます。 厚み この値は、残ったオブジェクトの厚みを設定し、そのオブジェクトが中空ではなく固体である ように見せます。この処理はフェイスの数を増やすほか、余分なメモリを必要とします。 断片化の後で消滅 断片がさらに断片化されることを防ぐオプションです。 その他の入力ポート オン True のブール値であれば、このノードがオンになります。値が False であればオフになります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、 内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 36 ノード THINKING PARTICLES パーティクル このポートを断片化するパーティクルストリームに接続します。接続先は例えば、PPass ノード のパーティクル出力ポートなどになります。 出力ポート 生成パーティクル ここで利用できるパーティクルストリームは、現在のフレーム内で生成されたパーティクルです。 そのため、このポートを別のノードのパーティクル入力ポートに接続すると、このノードはそれ 以降に生成されたパーティクルにのみ影響します。 そうではなく、PStorm が生成したパーティクルすべてに影響させたい場合には、このポートを PGroup ノードに接続してすべてのパーティクルを 1 つのグループにまとめ、それから PPass ノー ドを使用して、そのグループの内部にあるパーティクルすべてを渡します。これは特に有効な テクニックです。 パーティクル数 現在のフレームの間に断片化によって生成されたパーティクルの数を出力します。 パーティクル番号 現在のフレームで生成された最後のパーティクルの番号を出力します(0 から開始)。通常は生 成数を 1 つ下回る値になります。 PFragment ノードは、断片や元の部分に対する不可視の選択を実行します。こうした選択を 使用すれば、マテリアルを制限することができます。適用できるキーワードは次の通りです。 なお、これらのキーワードはアルファベットの大文字小文字の違いを区別するため、必ず大文 字を使用してください。 FEDGE 断片のエッジを定義します。 FBACK 断片の反対側より構成されます。 FREDGE 元の部分のエッジを定義します。 FRBACK 断片のフェイスより構成されます。固形モードでは、こうしたフェイスは分割していく側の断 片では可視になります。中空モードでは、この選択は残存するオブジェクトの内部サーフェ スより構成されます。 ノード 37 THINKING PARTICLES PMatterWaves このノードではライト、またはテクスチャ、あるいはその両方を使用して、オブジェクトのサーフェ スからのパーティクルの放出をコントロールできます。このノードがパーティクルに影響を与え られるのは生成時だけです。 PMatterWavesノードは主に属性マネージャでコントロールされます。 次のパラメータとオプショ ンが設定できます。 オブジェクト このボックスにパーティクルを放出するオブジェクトをドラッグします。この場合オブジェクト はポリゴンオブジェクトでなければなりません。プリミティブオブジェクトや NURBS オブジェク トを代わりに使用したい場合は、まずそのオブジェクトをポリゴンに変換してください。 選択範囲 この設定でパーティクルの放出を特定のポリゴンに制限できます。ポリゴン選択範囲タグを作 成し、その中にパーティクルを放出したいポリゴンの選択範囲を保存します。その選択範囲タ グをこのボックスにドラッグします。 UVW テクスチャを使用してパーティクルの放出をコントロールしたい場合、オブジェクトには UV W タグが必要になります。オブジェクトに UV W タグが 1 つしかない場合、このボックスを空にし ておいてもかまいません(そのたった 1 つの UV W タグが自動的に使用されます)。その反対に オブジェクトに複数の UW V タグがある場合は、使用したい UV W タグをこのボックスにドラッ グします。 UVW タイプ 固定する このモードでは、パーティクルは UV W マップで覆われたサーフェス部分からしか放出され ません。 固定しない このモードでは、イメージにはサーフェスの一部しか含まれていないとしても、パーティクル はオブジェクト上のどの部分からでも生成できます。 ライト ライトでパーティクルの放出をコントロールしたい場合は、オブジェクトマネージャからライトを ドラッグし、このボックスにドロップします。 38 ノード THINKING PARTICLES パーティクルを作成する ダイアログのこの部分では、放出されるパーティクルの数とその場所をコントロールできます。 生成タイプ、カウント、レート、ショット カウント このモードでは、カウント値がどの時点においても、存在できるパーティクルの最大数を定 義します。カウント値は有効期間値と共に動作します。たとえば、有効期間値が 5 に設定 されており、カウント値が 100 パーティクルの場合、パーティクルの数は着実に 100 まで増 えます。パーティクルが消滅するにつれて、新規のパーティクルが放出され、数は 100 に保 たれます。 レート レートモードでは、レート値でアニメーションの 1 秒ごとに生成されるパーティクルの数を 定義します。従って、パーティクルの合計数はフレームレートに左右されます。 ショット ショットモードでは、ショット値でアニメーションの 1 フレームごとに生成されるパーティク ル数を定義します。 生成タイプ 固定 パーティクルはオブジェクト上のどの場所からでも一定の割合で放出されます。 テクスチャ このモードではイメージや 2D シェーダを使ってパーティクルの放出をコントロールできます。 イメージを読み込むには、3 つのドット(...)がついたボタンをクリックし、表示されたダイ アログでイメージの場所を指定して読み込みます。2D シェーダを読み込むには、生成のテ クスチャボックスの隣にある矢印ボタンをクリックし、表示されたメニューから必要なシェー ダを選択します。放出率をコントロールするのはイメージやシェーダの明るさです。カラー は関係ないので、グレースケールイメージを使用することもできます。 イメージやシェーダは指定された UVW 座標を使ってオブジェクトのサーフェスに取り付けら れます。イメージやシェーダから白い色を受け取るサーフェス部分は、最大率でパーティクル を放出します。その反対に黒を受け取る部分は全くパーティクルを放出しません。 ノード 39 THINKING PARTICLES 生成のグラデーションでは、黒と白を両極とした明るさの値でパーティクルの生成がどのよ うに影響を受けるかをコントロールできます。グラデーションの左端はイメージやシェーダの 黒い部分を表します。その反対に、右端はイメージやシェーダの白い部分を表します。デフォ ルトのグラデーションでは、グレー値は明るさに比例した割合でパーティクルを放出します。 たとえば、グレー値が 70%の明るさの場合、パーティクルは最大値の 70% の割合で放出 されます。 グラデーションは、新規ノットを追加する、あるいは既存のノットを移動する、またはその 両方で調整できます。たとえば、黒のノットを右にある小さな白い帯域以外はすべてグラデー ションが黒になるまで右にドラッグした場合、パーティクルは白の最大色調値に限りなく近 いカラー値となるその領域でのみ放出されます。 黒から白へのグラデーションは、パーティクルの放出率がスムーズに増加することを表し ているのではありません。むしろ、生成のグラデーションと共に、単に全放出率のしき い値を定義しているだけなのです。 ライト このライトで完全に照らされているオブジェクトの部分は、最大率でパーティクルを放出しま すが、このライトでほとんど、あるいは全く照らされていない部分はパーティクルを放出し ません。テクスチャモードのように、グラデーションを使って中間の明るさが放出率にどの ように影響するかを調整できます。 テクスチャ&ライト このモードでは、ライトとイメージ、またはライトとシェーダを使って放出率をコントロール できます。サーフェスは、ライトで完全に照らされており、テクスチャやシェーダから白を受 け取った場合、最大率のパーティクルだけを放出します。 パーティクルの有効期間 有効期間 フレーム数でパーティクルが存在する期間を指定できます。 有効期間の範囲 この値で放出されるパーティクルの有効期間を変更できます (ノードの全範囲値はランダムシー ド値に基づいています)。 40 ノード THINKING PARTICLES 有効期間のタイプ 固定 パーティクルの有効期間はライトやテクスチャとは無関係になります。 テクスチャ このモードではイメージや 2D シェーダを使ってパーティクルの有効期間をコントロールでき ます。イメージを読み込むには、3 つのドット(...)がついたボタンをクリックし、表示され たダイアログでイメージの場所を指定して読み込みます。2D シェーダを読み込むには、有 効期間のテクスチャボックスの隣にある矢印ボタンをクリックし、表示されたメニューから 必要なシェーダを選択します。有効期間をコントロールするのはイメージやシェーダの明る さです。カラーは関係ないので、グレースケールイメージを使用することもできます。 イメージやシェーダは指定された UVW 座標を使ってオブジェクトのサーフェスに取り付けら れます。イメージやシェーダから白い色を受け取るサーフェス部分は、有効期間が最も長い パーティクルを放出します。その反対に黒を受け取る部分は瞬時に消滅するパーティクルを 放出します。 生成のグラデーションでは、黒と白を両極とした明るさの値でパーティクルの有効期間がど のように影響を受けるかをコントロールできます。グラデーションの左端はイメージやシェー ダの黒い部分を表します。その反対に、右端はイメージやシェーダの白い部分を表します。 デフォルトのグラデーションでは、グレー値は明るさに比例した有効期間をパーティクルに 与えます。 グラデーションは、新規ノットを追加する、あるいは既存のノットを移動する、またはその 両方で調整できます。たとえば、黒のノットを右にある小さな白い帯域以外はすべてグラデー ションが黒になるまで右にドラッグした場合、白の最大色調値に限りなく近いカラー値とな るその領域以外では、パーティクルはほぼ瞬時に消滅します。 ライト 複数の光源を使ってパーティクルの有効期間をコントロールできます。このライトで完全に 照らされているオブジェクトの部分は、有効期間が最も長いパーティクルを放出しますが、 このライトでほとんど、あるいは全く照らされていない部分は瞬時に消滅するパーティクル を放出します。テクスチャモードのように、グラデーションを使って中間の明るさが有効期 間にどのように影響するかを調整できます。 テクスチャ&ライト このモードでは、ライトとイメージ、またはライトとシェーダを使って有効期間をコントロー ルできます。サーフェスは、ライトで完全に照らされており、テクスチャやシェーダから白を 受け取った場合、有効期間が最長のパーティクルだけを放出します。 ノード 41 THINKING PARTICLES パーティクルの速さ 速さ パーティクルの速さを指定できます。 速さの範囲 この値で放出されるパーティクルの速さを変更できます(ノードの範囲値は全てランダムシード 値に基づいています)。 速さのタイプ 固定 パーティクルの速さはライトやテクスチャとは無関係になります。 テクスチャ このモードではイメージや 2D シェーダを使ってパーティクルの速さをコントロールできます。 イメージを読み込むには、3 つのドット(...)がついたボタンをクリックし、表示されたダイ アログでイメージの場所を指定して読み込みます。2D シェーダを読み込むには、速さのテ クスチャボックスの隣にある矢印ボタンをクリックし、表示されたメニューから必要なシェー ダを選択します。速さをコントロールするのはイメージやシェーダの明るさです。カラーは 関係ないので、グレースケールイメージを使用することもできます。 イメージやシェーダは指定された UVW 座標を使ってオブジェクトのサーフェスに取り付けら れます。イメージやシェーダの白い色を受け取るサーフェス部分は、最速で移動するパーティ クルを放出します。その反対に黒を受け取る部分は速度がゼロのパーティクルを放出します。 速さのグラデーションでは、黒と白を両極とした明るさの値でパーティクルの速さがどのよ うに影響を受けるかをコントロールできます。グラデーションの左端はイメージやシェーダの 黒い部分を表します。その反対に、右端はイメージやシェーダの白い部分を表します。デフォ ルトのグラデーションでは、グレー値は明るさに比例した速さをパーティクルに与えます。 グラデーションは、新規ノットを追加する、あるいは既存のノットを移動する、またはその 両方で調整できます。たとえば、黒のノットを右にある小さな白い帯域以外はすべてグラデー ションが黒になるまで右にドラッグした場合、白の最大色調値に限りなく近いカラー値とな るその領域以外では、放出されたパーティクルは速さがゼロになります。 42 ノード THINKING PARTICLES ライト 複数の光源を使ってパーティクルの速さをコントロールできます。このライトで完全に照らさ れているオブジェクトの部分は、最速のパーティクルを放出しますが、このライトでほとんど、 あるいは全く照らされていない部分は速さがゼロのパーティクルを放出します。テクスチャ モードのように、グラデーションを使って中間の明るさが速さにどのように影響するかを調 整できます。 テクスチャ&ライト このモードでは、ライトとイメージ、またはライトとシェーダを使って速さをコントロールで きます。サーフェスは、ライトで完全に照らされており、テクスチャやシェーダから白を受け 取った場合、最速で移動するパーティクルだけを放出します。 パーティクルの大きさ 大きさ パーティクルの大きさを定義します。 大きさの範囲 この値で放出されるパーティクルの大きさを変更できます(ノードの範囲値は全てランダムシー ド値に基づいています)。 大きさのタイプ 固定 パーティクルの大きさはライトやテクスチャとは無関係になります。 テクスチャ このモードではイメージや 2D シェーダを使ってパーティクルの大きさをコントロールできま す。イメージを読み込むには、3 つのドット(...)がついたボタンをクリックし、表示された ダイアログでイメージの場所を指定して読み込みます。2D シェーダを読み込むには、大き さのテクスチャボックスの隣にある矢印ボタンをクリックし、表示されたメニューから必要 なシェーダを選択します。大きさをコントロールするのはイメージやシェーダの明るさです。 カラーは関係ないので、グレースケールイメージを使用することもできます。 イメージやシェーダは指定された UVW 座標を使ってオブジェクトのサーフェスに取り付けら れます。イメージやシェーダから白い色を受け取るサーフェス部分は、最大のパーティクルを 放出します。その反対に黒を受け取る部分は大きさがゼロのパーティクルを放出します。 ノード 43 THINKING PARTICLES 大きさのグラデーションでは、黒と白を両極とした明るさの値でパーティクルの大きさがど のように影響を受けるかをコントロールできます。グラデーションの左端はイメージやシェー ダの黒い部分を表します。その反対に、右端はイメージやシェーダの白い部分を表します。 デフォルトのグラデーションでは、グレー値は明るさに比例した大きさをパーティクルに与 えます。 グラデーションは、新規ノットを追加する、あるいは既存のノットを移動する、またはその 両方で調整できます。たとえば、黒のノットを右にある小さな白い帯域以外はすべてグラデー ションが黒になるまで右にドラッグした場合、白の最大色調値に限りなく近いカラー値とな るその領域以外では、放出されるパーティクルは大きさがゼロになります。 ライト 複数の光源を使ってパーティクルの大きさをコントロールできます。このライトで完全に照ら されているオブジェクトの部分は、最大のパーティクルを放出しますが、このライトでほと んど、あるいは全く照らされていない部分は大きさがゼロのパーティクルを放出します。テ クスチャモードのように、グラデーションを使って中間の明るさが大きさにどのように影響 するかを調整できます。 テクスチャ&ライト このモードでは、ライトとイメージ、またはライトとシェーダを使って大きさをコントロール できます。サーフェスは、ライトで完全に照らされており、テクスチャやシェーダから白を受 け取った場合、最大の大きさのパーティクルだけを放出します。 オブジェクトからのパーティクルの距離 距離 オブジェクトのサーフェスからどのくらい離れた位置でパーティクルを生成するかを指定しま す。この距離はサーフェスの法線の方向で計測されます。 距離の範囲 この値でオブジェクトのサーフェスからパーティクルが生成される位置までの距離を変更でき ます(ノードの範囲値は全てランダムシード値に基づいています)。 距離のタイプ 固定 パーティクルが放出される位置までのサーフェスからの距離はライトやテクスチャとは無関 係になります。 44 ノード THINKING PARTICLES テクスチャ このモードではイメージや 2D シェーダを使ってオブジェクトからパーティクルまでの距離を コントロールできます。イメージを読み込むには、3 つのドット(...)がついたボタンをクリッ クし、表示されたダイアログでイメージの場所を指定して読み込みます。2D シェーダを読 み込むには、距離のテクスチャボックスの隣にある矢印ボタンをクリックし、表示されたメ ニューから必要なシェーダを選択します。距離をコントロールするのはイメージやシェーダ の明るさです。カラーは関係ないので、グレースケールイメージを使用することもできます。 イメージやシェーダは指定された UVW 座標を使ってオブジェクトのサーフェスに取り付けら れます。イメージやシェーダから白い色を受け取るサーフェス部分は、サーフェスから最も離 れた位置でパーティクルを放出します。その反対に黒を受け取る部分はサーフェスから直接 パーティクルを放出します。 距離のグラデーションでは、黒と白を両極とした明るさの値でオブジェクトからパーティク ルまでの距離がどのように影響を受けるかをコントロールできます。グラデーションの左端 はイメージやシェーダの黒い部分を表します。その反対に、右端はイメージやシェーダの白 い部分を表します。デフォルトのグラデーションでは、グレーの色調は両極間にある色調の 位置に比例した距離のパーティクルを放出します。 グラデーションは、新規ノットを追加する、あるいは既存のノットを移動する、またはその 両方で調整できます。たとえば、黒のノットを右にある小さな白い帯域以外はすべてグラデー ションが黒になるまで右にドラッグした場合、白の最大色調値に限りなく近いカラー値とな る領域から放出されるのであれば、パーティクルはサーフェスから適度な距離を持つように なります。他の領域から放出されるパーティクルはサーフェスの非常に近く、あるいは直接 サーフェスから放出されます。 ライト 複数の光源を使ってパーティクルの距離をコントロールできます。このライトで完全に照ら されているオブジェクトの部分は、サーフェスから最も離れたパーティクルを放出しますが、 このライトでほとんど、あるいは全く照らされていない部分はサーフェスから直接パーティク ルを放出します。テクスチャモードのように、グラデーションを使って中間の明るさが距離 にどのように影響するかを調整できます。 テクスチャ&ライト このモードでは、ライトとイメージ、またはライトとシェーダを使って距離をコントロールで きます。サーフェスは、ライトで完全に照らされており、テクスチャやシェーダの白を受け取っ た場合、最も離れた位置のパーティクルだけを放出します。 ノード 45 THINKING PARTICLES パーティクルの方向 方向 この値はテクスチャかライトを使って、オブジェクトのサーフェスから離れるときのパーティク ルの方向を定義する場合のみに使用されます。次に方向値はテクスチャやライトの影響を決定 するため、一種の乗数として使用されます。 方向の範囲 この値でパーティクルの方向を変更できます(ノードの範囲値は全てランダムシード値に基づい ています)。 方向のタイプ 法線 パーティクルの方向はライトやテクスチャとは無関係になります。パーティクルはサーフェス の法線の方向に移動します。 テクスチャ このモードではイメージや 2D シェーダを使ってパーティクルをコントロールできます。イメー ジを読み込むには、3 つのドット(...)がついたボタンをクリックし、表示されたダイアログ でイメージの場所を指定して読み込みます。2D シェーダを読み込むには、方向のテクスチャ ボックスの隣にある矢印ボタンをクリックし、表示されたメニューから必要なシェーダを選 択します。パーティクルをコントロールするのはイメージやシェーダの明るさです。カラーは 関係ないので、グレースケールイメージを使用することもできます。 イメージやシェーダは指定された UVW 座標を使ってオブジェクトのサーフェスに取り付けら れます。方向ベクトルの計算のため、それぞれの場合に考慮されている地点の周辺の明るさ の値が分析されます。これはバンプ効果の計算に使用されるプロセスに対応しています。従っ て、パーティクルの方向は、異なる明るさの値が隣り合っている場合に、法線の方向とのみ 違いが出ます。 方向のグラデーションでは、黒と白を両極とした明るさの値でパーティクルがどのように影 響を受けるかをコントロールできます。グラデーションの左端はイメージやシェーダの黒い部 分を表します。その反対に、右端はイメージやシェーダの白い部分を表します。 46 ノード THINKING PARTICLES ライトの方向 ライトの方向を使用してパーティクルをコントロールできます。使用したいライトをライトボッ クスにドラッグします。 ライトの反射 このモードでは、オブジェクトに反射するライトの方向が計算されます。ライトの方向モー ドのように、使用したいライトをライトボックスにドラッグします。 加えて、次の入力ポートが使用できます。 オン オン入力ポートでは、ノードをオン (True)/オフ (False)にするブール値を受け取ります。このポー トを追加しない場合は、ノードは自動的にオンにされます。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく入力されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 次の出力ポートが使用できます。 生成数 現在のフレームの間で生成された全パーティクルを出力します。新規に生成されたパーティク ルだけでなく全てのパーティクルにアクセスしたい場合は、PPass ノードを使用してください。 生成番号 現在のフレームで生成されたパーティクルの番号を出力します。 生成 UVW 生成された各パーティクルにベクトルとして使用される UVW 座標を出力します。 パーティクル生成 現在のフレームで生成された最後のパーティクルの番号を出力します。 ノード 47 THINKING PARTICLES PStorm この例では、パーティクルストリームを 特定のフレームの後から開始し、特定 の位置と方向(ヌルオブジェクト)で 放出するようコントロールする方法を 示しています このノードではパーティクルストリーム(いわゆるエミッタ)を作成します。エミッタの位置と方 向は、エミッタの位置とエミッタの配置入力ポートを使用してコントロールします。デフォルト では、エミッタの位置はワールドの始まりに設定されています。 属性マネージャのパラメータ ここでは、パーティクルの生成をコント ロールする方法を示しています。フレー ムごとに放出されるパーティクルの数、 各パーティクルのライフスパンなどの パラメータがあります タイプ 放出されるパーティクルの、不可視であるサーフェスの形状を選択します。長方形と円が選択 できます。 生成のタイプ、カウント、ショット パーティクルの作成にはカウント、レート、ショットの 3 つのモードがあります。生成のタイ プを希望するモードに設定してください。 48 ノード THINKING PARTICLES カウント このモードでは、カウント値はあらゆる時間で同時に存在できるパーティクルの最大限の 数を定義します。カウント値は有効期間の値と密接に連携しています。例えば、有効期間 が 5 に、カウントが 100 パーティクルにそれぞれ設定されていれば、パーティクルは 100 個までは増加していきます。パーティクルの消滅が始まると、新規のパーティクルが放出さ れ、パーティクルの数が 100 に保たれます。 レート 生成タイプがレートに指定されている場合、レート値ではアニメーションの秒あたりに生成 されるパーティクルの数を定義しています。これにより、パーティクルの総数はフレームレー トの影響を受けることになります。 ショット ショットモードでは、ショット値は、アニメーションのフレームごとに生成されるパーティク ルの数を定義します。 有効期間、有効期間の範囲 有効期間の値は、各パーティクルの有効期間をフレームで定義します。有効期間の範囲を使 用すれば、パーティクルの有効期間を変えられます。 速さ、速さの範囲 速さでは、秒あたりの単位で各パーティクルの初期速度を定義します。速さの範囲を使用す れば、各パーティクルの速度を変えられます。 大きさ、大きさの範囲 大きさの値は、パーティクルとして使用されるオブジェクトのスケール要素です。大きさの比 率を境界の半径(境界の半径の詳細については PShape ノードの項を参照)にすると、スケー ル要素は次のようになります:( 大きさ / 境界の半径 ) ×オブジェクトの大きさ = パーティクル オブジェクトの大きさ。そのため、パーティクルオブジェクトの大きさを元のオブジェクトと同 じにしておきたい場合は、大きさを境界の半径にあるものと同じ値に設定します。大きさの 範囲を使用すれば、各パーティクルの大きさを変えられます。 X Fov、Y Fov、X の大きさ、Y の大きさ これらの設定では、放出の角度と、放出するサーフェスの大きさを X 軸と Y 軸に沿ってコント ロールします。 ノード 49 THINKING PARTICLES 距離、距離の範囲 通常、パーティクルはエミッタの位置入力ポートを経由して、このノードに割り当てられた位 置から放出されます。たいていの場合、エミッタの位置入力ポートが、このエミッタを表すオ ブジェクトの始まりになります。距離パラメータを使用することで、ユーザーはこの位置から Z 軸にそってパーティクルの放出をオフセットにすることができます。これは特に、1 つのオブ ジェクトから複数のパーティクルストリームを放出する場合に有効となります。というのも、各 ストリームはそれぞれわずかに異なる位置から始まる必要があるためです。 距離の範囲は、エミッタがあるエリアの Z 軸上でばらつきをシミュレートし、不均衡なパーティ クルストリームを作成します。 回転、回転の範囲 回転では、各パーティクルがその軸で回転する速さを、パーティクルが完全に回転(360 度 の回転)するのに必要な時間を秒数で表したものを単位にして定義します。例えば、値が 2 であれば、各パーティクルは 1 回転するのに 2 秒かかることになります。そのため、値が大き いほど回転は遅くなります。回転の範囲パラメータを使用すれば、各パーティクルの回転速 度を変えられます。 回転のタイプ、回転軸 回転のタイプがランダムに指定されていれば、各パーティクルはランダムの軸で回転します。 回転のタイプが軸に指定されていれば、パーティクルは回転軸で定義された軸で回転します。 例えば、回転タイプが軸に設定されており、回転軸が(0;0;1)に設定されていた場合、パー ティクルは Z 軸(X=0、Y=0、Z=1)で回転することになります。 ランダムシード(ノードの属性タブ) 同じ設定をもつ PStorm ノードを複数 使用している場合は、ストリームの重 複を防ぐため、異なるランダムシード 値を使用します 同じ設定をもつ複数のパーティクルエミッタを使用する場合、エミッタは同じパーティクルスト リームを複数生成することになります。これを防ぐには、エミッタにそれぞれ異なるランダム シード値を割り当てます。 その他の入力ポート アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、 内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間で なければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 50 ノード THINKING PARTICLES オン True のブール値であれば、このノードがオンになります。値が False であればオフになります。 エミッタの配置、エミッタの位置 PStorm ノードとオブジェクトノード を接続し、エミッタをオブジェクト 経由でコントロールします これら 2 つのポートを使用して、エミッタの位置と回転をコントロールします。通常、これらの ポートはオブジェクトのオブジェクトノードに接続されます。それから、ビューでこのオブジェク トを移動したり回転させることにより、エミッタの移動や回転を行います。 この用途に関してはヌルオブジェクトを用いるようにしてください。そうすることにより、レン ダリングでは不可視になるため効果を邪魔することがなくなります。オブジェクトノードの絶対 位置とグローバルマトリックスの各ポートを PStorm ノードのエミッタの位置、エミッタの配置 の各入力ポートにそれぞれ接続します(上図参照)。 なお、エミッタの位置が使用するのはワールドの座標であり、ローカルの座標ではないことに 注意してください。 デフォルトでは、エミッタは Z 軸に沿ってパーティクルを放出します。 エミッタの速度 エミッタの位置をアニメーション処理する場合、例えばロケットの排気煙を作成する場合、連 続した流れではなく均一の間隔によるギャップがパーティクルストリームで表現されることにな ります。これは、パーティクルがフレーム間の位置ではなく、フレームの境界でエミッタの位 置からのみ放出されているためです。 よどみのない連続したパーティクルの流れを表現するには、速度(方向性のある速さ)をエミッ タの速度入力ポートに渡します。 速度を設定する方法としては、XPresso の定数ノードを(タイプはベクトルで)使用するか、 PGetData ノードの速度出力ポートを使用する(これによりパーティクルの速度を使う)か、 あるいはエミッタの位置がオブジェクトを使用することでコントロールされている場合は、オ ブジェクトノードの位置速度出力ポートを使用します(前述のエミッタの配置、エミッタの位 置を参照してください)。 また、現在と過去の位置の間でのベクトルを決定することでも、速度を計算することができ ます。 出力ポート パーティクル生成 ここで利用できるパーティクルストリームは、現在のフレーム内で生成されたパーティクルです。 そのため、このポートを別のノードのパーティクル入力ポートに接続すると、このノードはそれ 以降に生成されたパーティクルにのみ影響します。 ノード 51 THINKING PARTICLES そうではなく、PStorm が生成したパーティクルすべてに影響させたい場合には、このポートを PGroup ノードに接続してすべてのパーティクルを 1 つのグループにまとめ、それから PPass ノー ドを使用して、そのグループの内部にあるパーティクルすべてを渡します。これは特に有効な テクニックです。 生成数 現在のフレームの間で生成されたパーティクルの数を出力します。 生成番号 現在のフレームで生成された最後のパーティクルの番号を出力します(0 から開始)。通常は 生成数を 1 つ下回る値になります。 52 ノード THINKING PARTICLES TP スタンダードグループ PAlignment ここでは、パーティクルのあるグループ を例にとり、PGetData と万能:整数を 使用して、平均化された速度ベクトル(速 度と方向は同じだが、長さが 1 のベクト ル)で動かしています。次にこの方向を 使用して別のパーティクルグループの方 向に影響を与えています。そのため両方 のパーティクルグループは同じ方向に移 動します このノードを使用することにより、パーティクルが向かう方向をコントロールできます。例えば、 パーティクルストリームが鳥の群れであれば、すべての鳥は、当然ながら飛んでいる方向に向 いていることになります。 属性マネージャのパラメータ こうした設定を使用してパーティクルが 向かう方向をコントロールします。 たとえば、パーティクルを特定のワール ドの軸、または移動する方向と平行に 配置することができます 所要時間 パーティクルが新規の方向に完全に移行するのに必要となる時間を(秒で)コントロールしま す。この値が大きいほど、移行に時間がかかります。この設定は、変化を不自然なまでに唐突 ではなく、ゆっくりとしたものにしたい場合に有効です。 ソース、反転 ソース値は、パーティクルオブジェクトが参照として使用する軸を定義します。通常は Z 軸です が、パーティクルとして使用されるオブジェクトの性質により異なる場合があります。 反転オプションがオンになっている場合、選択された軸は、その負の方向へと反転されます。 例えば、このオプションがオンになっていて、ソースが Z に設定されていれば、負の Z 軸が参 照軸として使用されます。 X 回転、Y 回転、Z 回転 これらの値は、パーティクルが向けられている方向のオフセットを定義するものです。 タイプ パーティクルの配置をコントロールします。 ノード 53 THINKING PARTICLES なし パーティクルの配置は実行されません。 ランダム パーティクルはランダムに選ばれた目標に向かって配置されます。ランダムな配置は、パー ティクルに対して 1 度だけしか適用されません。生成された時か、またはノードによってラ ンダムな目標を割り当てされた時だけです。それからは、ランダムの目標はそのパーティク ルが存在する限り使用されます。つまり、パーティクルの配置は同一のまま保たれます。 移動の方向 パーティクルは、移動している方向と平行になるよう配置されます。鳥の群れの方向を設定 する場合には、これが正しい設定になります。これにより、鳥は常に、進行方向に向かって いることになります。 ワールド X、ワールド Y、ワールド Z パーティクルは、ユーザーの設定に応じて、ワールドの座標システムである X 軸、Y 軸、Z 軸のいずれかに平行になるよう配置されます。 ユーザーの方向 パーティクルは軸ボックスで設定されているベクトルに従って配置されます。 ユーザーの位置 パーティクルを配置することにより、 (上で設定された)指定の元の軸が軸ボックスでの設定 と同じ方向に向くようになります。 軸 このベクトルは、ユーザーの方向のための軸に関する情報や、ユーザーの位置に必要な位置情 報を提供します。希望する通りに設定してください。 範囲 このパラメータは、パーティクルのライフスパンを通じて適用されるユーザーの方向設定のた めのオフセットの角度を定義するために使用されます。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、 内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 54 ノード THINKING PARTICLES パーティクル このポートを、配列させたいパーティクルのストリーム(例えば PPass ノードのパーティクル出 力ポートなど)に接続します。 PDie PDie ではパーティクルを消去します。 ここでは、速さ(速度ベクトルの長さ) が充分ではないパーティクルを消去する 様子を示しています このノードでは、パーティクルが消滅する時間を設定します。 属性マネージャのパラメータ パーティクルが消去されるフレームを 選択します 時間、範囲 時間では、パーティクルが消去されるフレーム番号を設定します。範囲を使用することにより、 パーティクルの消去時間を変えられます。 その他の入力ポート オン True のブール値であれば、このノードはオンになります、False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、消滅する時間を変更したいパーティクルのストリーム(例えば PPass ノードのパー ティクル出力ポートなど)に接続します。 ノード 55 THINKING PARTICLES PGroup この PGroup ノードではパーティクル を生成時からグループ 2 に割り当てて います このノードでは、パーティクルをグループに割り当てます。パーティクルに関する概要について は、9 ページのパーティクルグループを参照してください。 デフォルトでは、パーティクルは All グループに送られます。このグループは、Thinking Particles の設定で自動的に作成されるものです。このノードを使ってパーティクルを他のグルー プに割り当てる前に、そのグループ自体を Thinking Particles の設定で作成しておかなければ なりません。作成の詳細については、9 ページのパーティクルグループを参照してください。 属性マネージャのパラメータ このページではパーティクルが割り当て られるグループを設定します パーティクルを割り当てるパーティクルグループの名前を Thinking Particles の設定でドラッグ し、このボックスにドロップします。 その他の入力ポート オン True のブール値であれば、このノードはオンになります、False の値であれば、ノードはオフ になります。 パーティクル このポートを、グループに割り当てたいと思っているパーティクルストリームに接続します。例 えば、このポートに PStorm を接続すれば、PStorm ノードより出力されたパーティクルすべて を収集できます。 PMass ここでは、あるパーティクルグループの 質量を、ワールドの始まりとパーティク ルとの間の距離に応じて変更しています。 また、PGravity ノードも準備しましたの で、少し作業を行うだけで、これを質量 依存の力場に変えることも可能です リアルなアニメーションを実現するため、PGravity、PWind、PFriction の各ノードでは、パー ティクルの質量を考慮しています。例えば、風の力の影響は軽いパーティクルほど強くなります。 PMass モードを使用することで、ユーザーはパーティクルの質量をコントロールできます。また、 時間の経過とともに、そうした質量を調節することも可能です。 56 ノード THINKING PARTICLES 属性マネージャのパラメータ ここでは、パーティクルの質量を設定 できます。またオプションとして、パー ティクルのライフスパンを通じてどのよ うに質量が変化するかを設定すること もできます 質量、範囲 質量とは、パーティクルに割り当てられるものです。この値が大きいほど、変化への耐性(惰 力 (inertia))が強くなります。範囲を使用すれば、質量を変えられます。 経年変化、年齢のグラデーション 経年変化がオンになっている場合、グラデーションを使用して、その年齢に応じてパーティク ルの大きさをコントロールできます。例えば、時間が経つにつれてパーティクルの質量を大き くすることができます。 グラデーションの左端は、パーティクルが生成された瞬間を、右端は消滅する瞬間をそれぞれ 示しています。そのため、グラデーションはパーティクルのライフスパンの全体をカバーするこ とになります。グラフ内の位置にある輝点は、質量の値の乗数として機能します。 ノットを作成するには、グラデーションの下にある空白の部分をクリックします、すると、その 位置に色のついたノットが生成されます。ノットの色を変更するには、ノットをダブルクリック して、システムのカラーダイアログより希望する色を選択します。ノットを削除するには、ドラッ グしてグラデーションの外でドロップしてください。グラデーションにある小さな菱形はバイア スハンドルで、側から側へと色のついたノットを内挿することにより、グラデーションの変更を コントロールしています。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、 内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、質量の値を変更したいパーティクルのストリーム(例えば PPass ノードのパーティ クル出力ポートなど)に接続します。 ノード 57 THINKING PARTICLES PRolling PRolling ノードの引き伸ばし入力は、 パーティクルをその進行する方向にそっ て引き伸ばします。ここでは、パーティ クルがその速さに応じてどれだけ引き 伸ばされるかが示されています このノードでは、2 種類の異なる効果が得られます。まず、パーティクルをサーフェスの表面で 転がすことができます(パーティクルが大きいほど、回転に時間がかかります)。もうひとつは、 パーティクルの大きさをその速さに応じて歪めることです。これにより、柔らかいボールのよう にオブジェクトを延びたり縮めたりするような効果や、動きによってぼやけているような効果が 得られます。 属性マネージャのパラメータ これらの設定では、パーティクルのサー フェス上での転がり方や、パーティクル の伸び縮みを定義します タイプ このノードではロールと移動の方向の2 種類のモードがあり、いずれもここで設定できます。ロー ルをオンにすれば、パーティクルはその大きさと速度に応じて転がります。軸の値は、転がり が生じた場合の軸を定義します。移動の方向をオンにすると、パーティクルは移動する方向に そって大きさが変わります。この場合、引き伸ばしの度合いについては引き伸ばしがコントロー ルします。 所要時間 パーティクルが新規の回転に完全に移行するのに必要となる時間を(秒で)コントロールしま す。この値が大きいほど、移行に時間がかかります。この設定は、変化を不自然なまでに唐突 なものでなく、ゆっくりとしたものにしたい場合に有効です。 軸 タイプがロールに設定されていれば、これら軸の値は、パーティクルの回転でその中心となる 軸を定義します。 ソース、反転 ソース値は、回転に使用される軸を定義します。反転オプションがオンになっている場合、選 択された軸は、その負の方向へと反転されます。例えば、このオプションがオンになっていてソー スが Z に設定されていれば、負の Z 軸が参照軸として使用されます。 58 ノード THINKING PARTICLES 引き伸ばし この値は、パーティクルが進行している方向に向かってのパーティクルの引き伸ばしを実行す る場合のファクターとして使用されます。この効果はパーティクルの速さに依存します。値が 0.1 であれば、パーティクルは通常の長さの 10 倍分引き伸ばされることになります。値が 0 であ れば変化は起こりません。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、回転させたいパーティクルのストリーム(例えば PPass ノードのパーティクル出 力ポートなど)に接続します。 PScale ランダムな大きさのパーティクルで隕 石フィールドを作成するには、PScale ノードの X、Y、Z の各入力にランダム の大きさを適用するだけで OK です このノードを使用することにより、パーティクルを伸ばしたり縮めたり、あるいは均等な形で大 きさを変更できます。また、スケールを 100% にすると、パーティクルは元の大きさに戻され ます。 ノード 59 THINKING PARTICLES 属性マネージャのパラメータ これらのパラメータを使って、パーティ クルを伸ばしたり縮めたりあるいは均 等な形にします。グラデーションでは、 パーティクルの年齢に応じて大きさを 変更できます スケール、範囲 パーティクルの 3 つある軸はすべて、この値によって測られます。これを使用すれば、パーティ クルの大きさを均等な形で変えられます。また大きさの度合いについても、範囲を使用するこ とで変えられます。 X のスケール、Y のスケール、Z のスケール パーティクルを均等ではない大きさにしたい場合は、これらの値を希望するものに設定します。 PAlignment ノードと併用することで、これらの値を、パーティクルの進行する方向に合わせる 形でパーティクルの大きさを変更することができます。これにより、パーティクルが速さによっ て延びているような効果が得られます。 経年変化、スケールのグラデーション 経年変化がオンになっている場合、グラデーションを使用して、そのスケールに応じてパーティ クルの大きさをコントロールできます。例えば、時間が経つにつれてパーティクルの大きさを 増すことができます。 グラデーションの左端は、パーティクルが生成された瞬間を、右端は消滅する瞬間をそれぞれ 示しています。そのため、グラデーションはパーティクルのライフスパンの全体をカバーするこ とになります。グラフ内の位置にある輝点は、スケール値の乗数として機能します。 ノットを作成するには、グラデーションの下にある空白の部分をクリックします。すると、その 位置に色のついたノットが生成されます。ノットの色を変更するには、ノットをダブルクリック してシステムのカラーダイアログより希望する色を選択します。ノットを削除するには、ドラッ グしてグラデーションの外へドロップしてください。グラデーションにある小さな菱形はバイア スハンドルで、側から側へと色のついたノットを内挿することにより、グラデーションの変更を コントロールしています。 その他の入力ポート オン True のブール値であれば、このノードはオンになります、False の値であれば、ノードはオフ になります。 60 ノード THINKING PARTICLES アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、 内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、スケールの値を変更したいパーティクルのストリーム(例えば PPass ノードのパー ティクル出力ポートなど)に接続します。 PSetData ここではパーティクルグループを PSetData に渡し、タイプをベクトルにし た定数ノードが、そのパーティクルの速度 (方向と速さの両方)をコントロールして います。より複雑なセットアップについて は PBorn の例を参照してください このノードでは、特定のパーティクルグループに属するパーティクルのパラメータを設定するこ とができます。例えば、1 つのグループにあるすべてのパーティクルの速度を特定の値に設定 できます。このノードは特に、特定のパーティクルグループをコントロールするのに有効です。 また、PBorn と共に使用することもできます。 編集したいパーティクルのあるパーティクルストリームを、パーティクル入力ポートに接続しま す。次に、これらのパーティクルに割り当てる値を、次に説明するような適切な入力ポートに渡 します。 入力ポート 位置 パーティクルのグローバル位置を設定します。 速度 パーティクルの方向と速さを定義します。ベクトルの長さは速さを、方向は動きの向きをそれ ぞれ設定します。 有効期間 パーティクルの新規のライフスパンをフレームで設定します。 年齢 パーティクルの年齢を設定します。 ノード 61 THINKING PARTICLES 大きさ 大きさの値は、パーティクルとして使用されるオブジェクトのスケール要素です。大きさの比 率を境界の半径(境界の半径の詳細については PShape ノードの項を参照)にすると、スケー ル要素は次のようになります:( 大きさ / 境界の半径)× オブジェクトの大きさ = パーティク ルオブジェクトの大きさ。そのため、パーティクルオブジェクトの大きさを元のオブジェクトと 同じにしておきたい場合は、大きさを境界の半径にあるものと同じ値に設定します。大きさ の範囲を使用すれば、各パーティクルの大きさを変えられます。 スケール 各パーティクルの軸に関するスケール値です。このパラメータを使用することにより、パーティ クルを伸ばしたり縮めたりすることができます。 質量 パーティクルの質量を実数値(つまり、データタイプ実数でなければならない値)として定義 します。この質量は、パーティクルが風のような動的な力に対する反応に影響を及ぼします。 質量が大きいほど、パーティクルがこうした力より受ける影響が少なくなります。 配置 各パーティクルの指向を設定するマトリックスです。パーティクルの移動する方向ではありま せん。 回転 このポートに PSpinConvert ノードを接続すると、パーティクルの回転をコントロールできます。 形状 パーティクルの形状として使用するオブジェクトを変更できます。このポートには直接 PShape ノードを接続できませんのでご注意ください。そのかわりに PGetData ノードを使って形状を 読み取らせて、それを PSetData ノードに渡すようにしてください。 グループ 例えば、PGetData ノードからアクセスできる「TP Group」データタイプを接続できます。つま り、ノードに入ってくるパーティクルを新規グループ(「グループ」入力ポートで定義されたグルー プ)に割り当てることができます。また、このポートには直接 PPass ノードを接続できません のでご注意ください。 DT ファクタ DT とはデルタ時間(Delta Time)を意味します。これは、パーティクルの時間値を内部計算 するための乗数です。デフォルト値は 1 で、これはパーティクル時間がアニメーション時間と 同等であることを意味します。この値が低いほど、パーティクル時間を遅くすることになりま す。高ければ、パーティクル時間は速くなります。これを使用することにより、パーティクル 効果を速めたり、スローモーションにすることが可能です。 62 ノード THINKING PARTICLES ランダム シード あらゆる範囲をランダムにする場合に基とする値です。値が同一であれば、パーティクルアニ メーションは再現可能なものになります。 オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 パーティクル このポートはパーティクルストリームに接続するためのものです。対象としては、PPass ノード の パーティクル出力ポートなどがありますが、その値は設定されていなければなりません。 Pshape ここでは、立方体がパーティクルジ オメトリオブジェクトに置かれており、 PShape 属性にドラッグされています。 そのため PPass によって渡されたパー ティクルグループは立方体の形状で 放出されます このノードでは、パーティクルの形状を割り当てます。つまり、このノードを使用すれば、オ ブジェクトがパーティクルとして定義できるようになります。 パーティクルジオメトリオブジェクト パーティクルジオメトリオブジェクトは、パーティクルをオブジェクトとして使用する場合に必 要となります。 パーティクルとして使用するオブジェクトはかならず、オブジェクトマネージャの階層でパーティ クルジオメトリオブジェクトより下に位置していなければなりません。パーティクルジオメトリオ ブジェクトの子であるか、または下の階層に位置していれば問題ありません。 パーティクルジオメトリオブジェクトを作成するには、メインメニューから プラグイン -> Thinking Particles -> パーティクルジオメトリ を選択します。 パーティクルとして使用したいオブジェ クトは、オブジェクトマネージャでパー ティクルジオメトリオブジェクトより下 に位置していなければなりません パーティクルジオメトリオブジェクトを選択すると、属性マネージャにその設定が表示されます。 Thinking Particles の設定より希望するパーティクルグループの名前をドラッグし、パーティク ルグループボックスにドロップします。サブグループがオンになっている場合、選択したオブジェ クトのサブグループも、このパーティクルグループに割り当てられます。 ノード 63 THINKING PARTICLES 属性マネージャのパラメータ これらの設定では、どのオブジェク トをパーティクルとして使用するかを 定義します オブジェクト オブジェクトマネージャで、そのパーティクルに割り当てる形状をもつオブジェクトの名前をド ラッグし、このボックスにドロップします。また、希望するオブジェクトの名前をドラッグして、 XPresso 編集の PShape ノードに直接ドロップしても構いません。 境界半径 パーティクルに設定されている大きさとの比率により、オブジェクトの大きさを設定します (PStorm および PSetData の項を参照)。大きさの比率を境界の半径にすると、スケール要 素は次のようになります:( 大きさ / 境界の半径 ) ×オブジェクトの大きさ = パーティクルオブ ジェクトの大きさ。そのため、パーティクルオブジェクトの大きさを元のオブジェクトと同じに しておきたい場合は、大きさを境界の半径と同じ値に設定します。 入力された値は、仮想上の境界の球の半径となります。 境界の半径が 0 の場合は、特殊なケースになります。この値であれば、パーティクルオブジェ クトは元のオブジェクトと同じ大きさになります。ただし、内部スケーリングがオフになるため、 大きさのパラメータで大きさを調整することができなくなります。 他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただ し、ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可 能となります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である) 時間でなければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用され ます。 パーティクル このポートを、パーティクルとして使用するオブジェクトのパーティクルストリーム(例えば PPass ノードのパーティクル出力ポートなど)に接続します。 64 ノード THINKING PARTICLES PSize この例では、パーティクルの大きさの 変更と、その大きさが速さ(速度ベクト ルの長さ)によって異なることを示して います。速度ベクトルより単一の値を取 得し、また速さを感知できる値にまで 落とすための計算モードが含まれてい ます このモードを使用することにより、パーティクルの大きさを設定できます。使用できるのは均 等スケールのみです。個々の軸にそってスケーリングすることはできません。例えば、このノー ドを使用してパーティクルを伸ばしたり縮めたりすることはできません。実行するには PScale ノードを使用してください。 属性マネージャのパラメータ このページでは、パーティクルの大き さを設定できます。さらにオプションと して、パーティクルのライフスパンを通 じてどのように大きさが変化するかも 設定できます 大きさ、範囲 大きさパラメータは、パーティクルの大きさのための乗数です。例えば、設定が 5 であれば、パー ティクルは 5 倍の大きさになります。範囲パラメータを使うことにより、パーティクルの大きさ を変更できます。 経年変化、年齢のグラデーション 経年変化がオンになっている場合、グラデーションの部分を使用して、その年齢に応じてパー ティクルの大きさをコントロールできます。例えば、時間が経つにつれて大きくなるパーティク ルを作りたいとします。年齢のグラデーションは、爆発や煙のような最初に広がって時間が経 つにつれて薄れていくような煙や流れのような効果にはとりわけ有効です。 グラデーションの左端は、パーティクルが生成された瞬間を、右端は消滅する瞬間をそれぞれ 示しています。そのため、グラデーションはパーティクルのライフスパンの全体をカバーするこ とになります。グラフ内の位置にある輝点は、大きさの値の乗数として機能します。 ノットを作成するには、グラデーションの下にある空白の部分をクリックします、すると、その 位置に色のついたノットが生成されます。ノットの色を変更するには、ノットをダブルクリック して、システムのカラーダイアログより希望する色を選択します。ノットを削除するには、ドラッ グしてグラデーションの外でドロップしてください。グラデーションにある小さな菱形はバイア スハンドルで、側から側へと色のついたノットを内挿することにより、グラデーションの変更を コントロールしています。 ノード 65 THINKING PARTICLES その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、大きさを再設定したいパーティクルのストリーム(例えば PPass ノードのパーティ クル出力ポートなど)に接続します。 PSpin このセットアップでは、比較ノードで 指定された特定の位置で、パーティク ルが回転を始めるようになっています。 属性マネージャで PSpin のパラメータ を設定することで、実際の回転レート などの設定が可能です このノードでは、それぞれの軸システムについて、パーティクルの回転に関する速さや方向を コントロールします。 属性マネージャのパラメータ これらの設定を使用することにより、 パーティクルの回転速度を、それぞれ の軸システムにそった形でコントロール できます。たとえば、パーティクルが 1 回転するのに要する時間などを設定 できます 66 ノード THINKING PARTICLES 移行期間 パーティクルが突然新規の回転値を使用すると、たいていの場合、モーションにおける変化 は唐突で不自然なものに見えます。このパラメータを使用すれば、回転を和らげることがで きるため、パーティクルは新規の値にまで徐々に上がっていきます。このパラメータでは、パー ティクルが新規の回転設定を完全に使用するまでに必要とするフレームの数を定義します。こ の値を増加することは、パーティクルが新規の回転に合わせる過程を引き伸ばすことを意味し ます。つまり、変化に時間がかかることになります。 時間、時間の範囲 この値では、パーティクルの回転速度を間接的に決定します。各パーティクルが 1 回転するま でに必要とする時間を(秒で)定義します。例えば、時間が 10 に設定されていれば、各パーティ クルは 10 秒かけて 1 回転します。範囲パラメータを使用すれば、回転速度を変えられます。 位相、位相の範囲 パーティクルが生成されると、通常は 0°の回転から始まります。これはエミッタ自体と同じ方 向になります。パーティクルをそれ以外の方向で生成したい場合には、ここで希望する位相の 角度を定義します。ただし、この角度は、パーティクルが生成される時点でのみ割り当てが可 能です。この開始時の角度は、範囲パラメータを使用することにより変えられます。 摩擦 摩擦値はパーティクルの回転を弱め、ついには完全に停止させてしまいます。そのためパーティ クルは回転しなくなります。この値が高いほど、回転の停止が早まります。 速さへの依存、大きさへの依存 これらの設定は特に、速度や大きさがまちまちな複数のパーティクルをリアルに回転させたい 場合に有効です。例えば、車が爆発するシーンを作成するとします。爆発による力では、小 さく軽い破片は大きく重い破片よりも激しく動くことになります。通常、大きなパーティクル は小さなものよりも回転が遅くなるため、各パーティクルの回転速度は大きさや速度による影 響を受けることになります。 速さへの依存の設定では、パーティクルの速さが、そのパーティクルの回転速度に影響を与え ます。値が 1.0 であれば、速度が 1.0 であるパーティクルの回転速度に変化はありません。値 がこれより低い場合は、回転は遅くなります。 大きさへの依存設定も同じような働きをします。違いとしては、回転速度が影響を受けるの がパーティクルの大きさだということだけです。値が 1.0 であれば、大きさが 1.0 であるパーティ クルの回転速度に変化はありません。値がこれより低い場合は、回転は速くなります。 軸のタイプ、軸、軸の範囲 ここでは、パーティクルの回転を、パーティクルの軸やランダムの軸、パーティクルが移動し ている方向との平行する形などに設定します。 ランダム パーティクルはランダムの軸で回転します。 ノード 67 THINKING PARTICLES 移動の方向 パーティクルは、移動する方向と平行になる軸を中心に回転します。範囲を使用することで、 回転軸を変えられます。 ユーザー定義 パーティクルは 3 種類の軸の値が定義する軸によって回転します。例えば、ベクトルが 0;0;1 であれば、パーティクルは Z 軸にそって回転します。範囲を使用することで、回転軸を変 えられます。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただ し、ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可 能となります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である) 時間でなければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用され ます。 パーティクル このポートを、回転させたいパーティクルのストリーム(例えば PPass ノードのパーティクル出 力ポートなど)に接続します。 68 ノード THINKING PARTICLES TP ダイナミックグループ PBubble フレーム出力を使用してパーティクル を上下に動かし、時間が経つにつれて その上下の振幅を増やしていく様子を 示しています。この設定をインタラク ティブに変更すると、新しく生成され たパーティクルのみ影響を受けます このモードは、パーティクルの動きにサイン波の関数を重ねるものです。これにより、パーティ クルは移動の方向に対し垂直方向で上下運動を行います。 属性マネージャのパラメータ パーティクルストリームの移動に使用 するサイン波の振幅と速さ、および 範囲を定義します 振幅、振幅の範囲 この実数値では、サイン波の振幅を設定します。パーティクルの移動進路からの、垂直幅の最 大値を定義します。範囲値を使用することで、振幅を変えられます。 速さ、速さの範囲 振動の速度はその頻度と等しくなります。この値が大きいほど、パーティクルの時間単位あた りの振動回数が増えます。移動方向での動きがこの値に影響を受けることはありません。範 囲パラメータを使用することで、速さの値を変えられます。 位相の範囲 この値が大きいほど、パーティクルストリームの動きが非定形的なものになります。パーティク ルの振動が、同じサイン波の異なった位置から始まるようになります。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 ノード 69 THINKING PARTICLES アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、振動させたいパーティクルのストリーム(例えば PPass ノードの パーティクル出 力ポートなど)に接続します。 PDeflector この例ではヌルオブジェクトよりパーティ クルストリームが放出されるところが示 されています。パーティクルは形状を与 えられ、グループに割り当てられます。 このグループにあるパーティクルは、次 にディレクタノードに渡されます。この ノードには、大きな球が割り当てられて います。そのため図にあるようにパーティ クルは球の上で跳ねることになります このノードを使用することにより、パーティクルはポリゴンオブジェクトのサーフェスに衝突す るようになります。 属性マネージャのパラメータ 属性マネージャのこのページには、パー ティクルの衝突判定に必要なパラメータ すべてが揃っています オブジェクト パーティクルを衝突させたいオブジェクトの名前をオブジェクトマネージャでドラッグし、この ボックスの上でドロップします。 70 ノード THINKING PARTICLES デフレクタタイプ、X の大きさ、Y の大きさ、Z の大きさ、半径 判定のモードは 4 種類から選択できます。オブジェクトモードでは、パーティクルは対象とな るオブジェクトがもつポリゴンのいずれにも衝突します。ただし、衝突判定を高速に行うために、 そのオブジェクトの形に近い直方体または球を使用したい場合もあります。そのような場合に は、判定のタイプを長方体または球体に設定します。衝突する長方体の大きさは、X の大きさ、 Y の大きさ、Z の大きさの各パラメータで設定します。半径では、衝突に使用する球体の大き さを設定します。ジオメトリモードにおいては、ジオメトリがパーティクルに割り当てられてい る場合に、衝突判定はポリゴンレベルになります。 衝突タイプ サーフェスにはそれぞれ、表と裏の 2 つの面があります。表とは、法線の表側のことです。 この設定では、パーティクルが衝突するのが、法線の表のみなのか、裏のみのなのか、ある いは両方なのかを決定します。 オフセットのタイプ、オフセット、オフセットの範囲 パーティクルのような大型のオブジェクトを使用する場合はとりわけ、サーフェスで衝突判定を 行う場所と、パーティクルがリバウンドする場所との距離をオフセットする必要があります。こ のオフセットのタイプでは、使用するオフセットの種類を定義します。 なし オフセットの計算を行いません。パーティクルは直接、サーフェスに衝突します。 移動でのパーティクルの大きさ (移動する方向での)パーティクルの大きさは衝突判定に使用されます。これはとりわけ、 パーティクルが移動する方向で引き伸ばされている場合に有効です。 パーティクルの大きさ X、パーティクルの大きさ Y、パーティクルの大きさ Z X 軸、Y 軸、Z 軸にそってのパーティクルの大きさは、ユーザーがこの 3 つのうちどれを選 択したかに応じて、衝突判定で使用されます。 ユーザー定義による移動 これは移動でのパーティクルの大きさとほぼ同じものですが、ただし、オフセットを使用し てオフセットを定義できる点で異なっています。さらに、範囲を使用することでオフセット を変えられます。 ユーザー定義の X、ユーザー定義の Y、ユーザー定義の Z これらの設定は、それぞれパーティクルの大きさ X、パーティクルの大きさ Y、パーティク ルの大きさ Z と同じ効果をもたらしますが、ただしオフセットを使ってオフセットを定義で きる点で異なっています。さらに、範囲を使用することでオフセットを変えられます。 バウンス、バウンスの範囲 衝突の後でパーティクルが保持するエネルギーの量を定義します。値が 0% であれば、パーティ クルはエネルギーを完全に失った状態になります。範囲を使用することでバウンスの値を変え られます。 ノード 71 THINKING PARTICLES サーフェス サーフェスとパーティクルの両方が硬い場合は、入射角は反射角と等しくなるのが普通です。 ただしこれは液体が介在すると異なるため、サーフェスの値を使用してこのふるまいを調整す ることができます。値が 0% であればパーティクルは通常どおり反射されますが、100% であ ればパーティクルは衝突したサーフェスと平行する角度で反射します。 エネルギー エネルギーの値が 0% であれば、すべてのパーティクルが同じようにリバウンドします。その場 合、各パーティクルのエネルギーは、それぞれの速さと質量に左右されます。エネルギーの値 が 0% より大きい場合、質量が大きく速さの遅いパーティクルの反射は、質量が小さく速さの はやいパーティクルに劣ることになります。値が 100% であれば、パーティクルの速さと質量を 考慮した、数学的に正しい動きになります。ただし、負の値を入力すれば効果は逆のものとな ります。 摩擦 (弱い角度、または高いサーフェス値などで)パーティクルがサーフェスに沿って移動してい る場合、その速さは摩擦により低下します。この値を 0% に設定するとパーティクルへの摩擦 がなくなるため、低下することもなくなります。 スピン 衝突時に、パーティクルにスピンを適用します。スピンの値は、スピンの角速度を定義します。 スピンの方向は、進行方向と衝突角度に基づいて、自動的に計算されます。 カオス カオス値は、サーフェス上に摩擦を不均等に配分します。これにより、パーティクルはサーフェ ス上をばらばらの方向に移っていきます。 速度の継承 衝突により、パーティクルがサーフェスより引き継ぐ速度の強さを決定します。動いている車 のバンパーにボールがぶつかった場合で考えてみてください。ボールは、それ自身の速度に加 えて、車の速度も引き継ぐことになります。 値が 0% であれば、サーフェスの速度がパーティクルに引き継がれることはありません。値が 100% であれば、速度は完全に引き継がれます。 イベントのみ このオプションがオンになっている場合、ノードは衝突を判定するだけで、パーティクルの速 度をノードが変えることはありません。これはとりわけ、パーティクルと特定のサーフェスとの 衝突をイベントトリガとしたい場合に有効です。 72 ノード THINKING PARTICLES その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、 内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間で なければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、サーフェスと衝突させたいパーティクルのストリーム(例えば PPass ノードの パー ティクル出力ポートなど)に接続します。 出力ポート イベント 現在のフレームの間でサーフェスと衝突したパーティクルそれぞれのブール値を出力します。 イベント位置 現在のフレームの間でサーフェスと衝突したパーティクルについて、ベクトルの値として位置を 出力します。 イベント法線 パーティクルがサーフェスと衝突した位置での、法線の方向を出力します。 イベントの反射 衝突後の各パーティクルの反射角を出力します。 ノード 73 THINKING PARTICLES PFreeze この例では、パーティクルストリームの 凍結と、それと同時に新規パーティクル の特定の世代をオフにするところを示し ています。ブール反転ノードを使用して、 パーティクルのある世代を止めているこ とに注意してください。つまり、PFreeze をオンにすることで、このパーティクルス トリームをオフにしたわけです この効果は、スローモーションの効果に似ています。パーティクルの動きをスローダウンする もので、完全に凍結することも可能です。 また、パーティクルを「ゆるめて」元の動きに戻すこともできます。これはとりわけ、時間をス ライスするような効果に有効です。つまり、動きを凍結してその効果の周囲にカメラを回らせ るような場合です。 属性マネージャのパラメータ 時間をスライスするような効果のために、 これらのパラメータを使用して動きをス ローダウンしたり、あるいは凍結するこ ともできます。またパーティクルを凍結 する前の動きに戻すこともできます フリーズ、範囲 このパラメータではフリーズ効果をコントロールします。値が 0 であれば、パーティクルへの影 響はありません。値が 100% であれば、パーティクルは完全に凍結され、直ちに停止します。 範囲パラメータを使用することで、フリーズの設定を変えられます。これにより、パーティクル のフリーズ効果が非定形的なものになります。 この効果はパーティクルごとにしか計算できません。そのため値を大きく設定すると、凍結する パーティクルと、制約を受けずに動きつづけるパーティクルが同時に表示されることがあります。 経年変化 これにより年齢のグラデーションがオンになります。これはパーティクルの有効期間に応じて フリーズの動作をコントロールするものです。 経年変化、年齢のグラデーション 経年変化がオンになっていると、グラデーションの部分を使用して、パーティクルの有効期間 に応じてフリーズをコントロールできます。例えば、時間が経つにつれパーティクルを凍結させ るようにできます。 グラデーションの左端はパーティクルが生成された瞬間を、右端は消滅する瞬間をそれぞれ示 しています。そのため、グラデーションはパーティクルのライフスパンの全体をカバーすること になります。グラフ内の位置にある輝点は、フリーズ値の乗数として機能します。 74 ノード THINKING PARTICLES ノットを作成するには、グラデーションの下にある空白の部分をクリックします。すると、その 位置に色のついたノットが生成されます。ノットの色を変更するには、ノットをダブルクリック して、システムのカラーダイアログより希望する色を選択します。ノットを削除するには、ドラッ グしてグラデーションの外へドロップしてください。グラデーションにある小さな菱形はバイア スハンドルで、側から側へと色のついたノットを内挿することにより、グラデーションの変更を コントロールしています。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、凍結したいパーティクルのストリームに接続します。 PFriction 摩擦では、リアルな感じを与えるために パーティクルを次第に遅くしていきます。 ここでは、時間ノードを PFriction ノー ドの摩擦ポートに接続することで、時間 の経過とともに摩擦を変化させるように しています。そのため、パーティクルは 次第にその速さを落としていきます このノードを使用して、パーティクルの動きに摩擦を加えることができます。 属性マネージャのパラメータ パーティクルが受ける摩擦の度合い を定義します ノード 75 THINKING PARTICLES 摩擦 パーティクルの動きに対する摩擦の強度を定義します。この値が大きいほど、パーティクルの 遅くなるペースが早まります。 回転の摩擦 回転の摩擦では、パーティクルの回転を遅くします。この値が大きいほど、パーティクルが回 転を止めるのが早まります。 質量への依存 この摩擦は、パーティクルの質量に応じて計算されます。この値が大きいほど、質量が摩擦に 与える影響が高まります。質量の大きなパーティクルは、質量の小さなものよりも摩擦による 影響は弱くなります。これは実際の摩擦を反映したものです。 大きさへの依存 この摩擦は、パーティクルの大きさに応じて計算されます。この値が大きいほど、パーティク ルの大きさが摩擦に与える影響が高まります。大きなパーティクルは小さなものよりも、早く 止まります。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、摩擦を適用したいパーティクルのストリーム(例えば PPass ノードのパーティク ル出力ポートなど)に接続します。 76 ノード THINKING PARTICLES PGravity ここでは、パーティクルストリームが重 力オブジェクトに近づくにつれて重力の 強さを変えることで、 実際の重力をシミュ レートしています。そのため、例えば小 さな隕石群が重い惑星の周りをそれてい くというようなことが可能です。マップ 変換ノードを使用すれば距離が重力の強 さに与える影響を調整できます このノードを使用して、パーティクルに対し重力や磁力のような力を働かせることが可能です。 パーティクルの質量と大きさも考慮できます。 属性マネージャのパラメータ 重力または磁力をシミュレートしていま す。パーティクルの大きさと質量を考慮 することも可能です オブジェクト 重力の位置と方向は、オブジェクトの軸システムを使用してコントロールします。重力の位置 と方向を示すオブジェクトの名前をオブジェクトマネージャよりドラッグし、このボックスにド ロップします。 タイプ 平面(2D)と球(3D)の、2 種類の力場が利用できます。 タイプを平面に設定すると、力はオブジェクトの XY 平面(Z 軸に沿う形)に垂直で適用され ます。ビューに表示されるアローヘッドは、力の方向を示しています。このアローヘッドの大 きさは、属性マネージャのノードページにあるアイコンサイズを使用することで調節できます。 タイプを球に設定すると、力はオブジェクトの始まりに向かって球状に適用されます。このモー ドはとりわけ、パーティクルを一緒にまとめたい場合に有効です。球状である重力が、ビュー に球として表示されます。その大きさは、属性マネージャのノードページにあるアイコンサイズ を使用することで調節できます。 ノード 77 THINKING PARTICLES 強度 これは重力の強さを表しています。この値が大きいほど、重力がパーティクルに与える力が強 くなります。パーティクルはその動く方向を変えるだけでなく、速さも上昇します。負の値を入 力することも可能で、その場合はパーティクルはオブジェクトの始まりから遠ざけられることに なります。 減衰 オブジェクトの始まりから遠ざかるにつれて起こる、重力の減衰をコントロールします。値が 0 であれば減衰は起こらず、重力がパーティクルに与える影響の強さは距離には無関係となりま す。値が大きいと外部からの影響は急激に増加します。パーティクルがオブジェクトの始まり から遠ざかるほど、パーティクルに対する力は弱まります。減衰値が大きいほど、重力がパーティ クルに対して影響を与えられる領域が狭まります。 質量への依存、大きさへの依存 これらの値は、パーティクルの質量と大きさを考慮に入れるものです。パーティクルの質量や 大きさが増加するほど、重力がパーティクルに与える影響は弱まります。 アイコンサイズ(ノードの属性タブ) アイコンサイズでは、アローヘッドや 球の大きさを設定します この設定は、属性マネージャのノードページにあり、ビューでの重力を表すアローヘッドや球の 大きさをコントロールします。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、重力に影響されるようにしたいパーティクルのストリーム(例えば PPass ノード のパーティクル出力ポートなど)に接続します。 78 ノード THINKING PARTICLES PMotionInheriance この例では、PMotionInheritance ノードの影響は、時間が経つにつれ 活発なものとなります このノードを使用することにより、パーティクルはオブジェクトの動きや回転に関する速さの影 響を受けるようになります。 属性マネージャのパラメータ オブジェクトの動きに基づいて、パー ティクルに影響を与えることができます オブジェクト その動きをパーティクルに影響させたいオブジェクトの名前をオブジェクトマネージャでドラッ グし、このボックスの上でドロップします。 継承、範囲 オブジェクトの位置変更がどれほどパーティクルの動きに影響を与えるのかを決定します。こ の値が大きいほど反応が正確になり、あたかもパーティクルがオブジェクトに付着しているよ うなものになります。ただし、オブジェクトが停止した瞬間に、パーティクルは再び自由に動く ようになります。範囲を使用することにより、継承の値を変更できます。 ノード 79 THINKING PARTICLES 回転の継承、回転の範囲 オブジェクトの回転がパーティクルの回転に与える影響の度合いを決定します。パーティクルは それ自身の軸にしたがって回転するようになります。範囲を使用することにより回転の継承値 を変更できます。 方向の範囲 パーティクルが動いている方向に範囲を追加し、動きをより自然な、均等なものにします。 タイプ、半径、円柱の軸、円柱の高さ タイプを使用することにより、オブジェクトの動きがパーティクルに与える影響を選択でき ます。 なし 3D 空間の位置に関係なく、すべてのパーティクルが同一の影響を受けます。 球体、円柱 仮想の球体または円柱を、選択したオブジェクトの始まりに置きます。その球または円柱の 内部にあるパーティクルだけが影響を受けます。 球体の大きさは半径値により定義されます。 円柱の配置に使われている軸は円柱の軸設定により決定されます。円柱の高さは円柱の高 さで設定します。 距離のグラデーションまたは円柱のグラデーションを使用することにより、バーチャルな球 または円柱の内部での、効果の変化による影響の度合いが定義できます。 距離のグラデーション、円柱のグラデーション タイプが球体に設定されている場合、距離のグラデーションは、パーティクルと球の中心との 距離に応じて、パーティクルの効果に与える影響を定義します。グラデーションの左端は球の 中心を、右端は球のサーフェスをそれぞれ表しています。グラデーションの明るさは、その効 果の乗数として機能します。 タイプが円柱に設定されている場合、円柱のグラデーションは円柱の長さにそって効果の影響 をコントロールします。グラデーションの左端は円柱の中心を、右端は円柱のキャップをそれ ぞれ表しています。そのため、この設定はミラーされます。グラデーションの明るさは、その 効果の乗数として機能します。 ノットを作成するには、グラデーションの下にある空白の部分をクリックします、すると、その 位置に色のついたノットが生成されます。ノットの色を変更するには、ノットをダブルクリック して、システムのカラーダイアログより希望する色を選択します。ノットを削除するには、ドラッ グしてグラデーションの外でドロップしてください。グラデーションにある小さな菱形はバイア スハンドルで、側から側へと色のついたノットを内挿することにより、グラデーションの変更を コントロールしています。 80 ノード THINKING PARTICLES スケールのグラデーション このグラデーションは、円柱の軸とパーティクルとの距離に応じて影響をコントロールします。 値が大きい(明るい)ほど、選択した軸にパーティクルを引きつける力が強まります。このパラ メータを使用すれば、簡単に渦を作成することができます。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、オブジェクトの動きに影響されるようにしたいパーティクルのストリーム(例え ば PPass ノードのパーティクル出力ポートなど)に接続します。 PPositionFollow このパーティクルストリームは、動きな がら球を追っています。これはパーティ クルグループをノードのパーティクル ポートに、球の位置をポートの目標位 置ポートにそれぞれ渡すことにより実現 しています このノードを使用することで、パーティクルを特定の位置まで、まるで磁石に引きつけられるよ うに、飛ばすことができます。この位置を動かすことで、パーティクルの動きをコントロールで きます。コントロールは、直接行うほかにも動かしているオブジェクトの位置と結びつけること でも可能です。 属性マネージャのパラメータ パーティクルが飛んでいく位置を選択 します ノード 81 THINKING PARTICLES タイプ、固定速度、変動速度 パーティクルの反応には固定速度と変動速度の 2 種類があり、タイプでいずれか希望するモー ドを設定します。 固定速度モードでは、固定速度値はパーティクルの速度を定義します。 変動モードでは、パーティクルの反応は弾力性のあるものになります。変動の値が高ければ 高いほど、パーティクルが目標の方向へと向かうのが速くなり、最終的には過剰になってしま います。この変動効果の強度は、変動速度入力ポートによりコントロールされています。値が 0% であればパーティクルには一切の効果はなく、100% であれば急速に加速するため、即座 に目標に到達してしまいます。 目標位置 パーティクルが向かうグローバルの位置です。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただ し、ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可 能となります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である) 時間でなければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用され ます。 パーティクル このポートを、特定の位置を追いかけるようにしたいパーティクルのストリーム(例えば PPass ノードのパーティクル出力ポートなど)に接続します。 82 ノード THINKING PARTICLES PRepulse&Bounce きわめて簡単に 2 つのパーティクルスト リームを作成し、それぞれをグループに 割り当てます。続いて、それらのグルー プを PRepulse&Bounce ノードに接続し これらのパーティクルストリームがリアル に相互反応するようにします このノードはとりわけ、複数のパーティクルがお互いにぶつかりあう場合に有効です。さらに、 引きつけたり追い払ったりと、パーティクルがまるで力場になったようなふるまいをさせること もできます。 属性マネージャのパラメータ この設定により、パーティクル同士がお 互いに衝突したり、あるいは力場のよ うに、引きつけたり追い払うことができ ます 反発 このパラメータは、パーティクル同士がお互いに遠ざかったり、あるいは値が負であればお互 いに引きつけたりする力をコントロールします。値が 100% であれば、あるパーティクルの速 さは完全に他のパーティクルに移されます。値が 100% を超えたり、-100% を下回ると、パー ティクルの速さが増加します。 バウンス バウンス値はパーティクル間の衝突のより物理的な面をコントロールします。反発とは逆に、 パーティクルの速度と質量が考慮されます。軽めのパーティクルは、さらに軽いパーティクル に影響を与えられます。自然な動きを得るには値を 100% にしてください(これによりパーティ クルの質量が正確に設定されます)。 100% を超える値は、衝突の総エネルギーを増加させるため、パーティクルを加速することに なります。リアリティは損なわれますが、視覚効果としては有効かもしれません。 反発係数 2 つの硬いビリヤードの球がぶつかる時、同じ速さでぶつかった 2 つの球は、全く異なる反応 を示します。これは、衝突で失われるエネルギーの量が球によって異なるからです。このパラメー タを使用すれば、このような異なるエネルギーの損失が得られます。 ノード 83 THINKING PARTICLES 値を 100% に設定すると、衝突は完全に弾性を保ったものになります。ただし、速度は再分 配され、エネルギーはそのまま残ります。0% に設定すると、衝突ですべてのエネルギーが失 われ、衝突したパーティクルは完全に止まります。オブジェクトのほとんどは、この 2 つの極 端な値の中間にあり、弾性を保持しつつ跳ねかえります。 質量への依存 リアルな衝突では質量は重要な役割を担っています。値が 100% であればパーティクルの質量 は完全に考慮され、0% であれば質量の影響はいっさい無くなります。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル A、パーティクル B 2 つのパーティクルストリームのための入力ポートです。ここで接続できるのは PPassAB ノード のパーティクルポートだけですが、これは 1 つのパーティクルストリームでは、2 つのパーティク ルストリームに同時に情報を供給することができないためです。 PVelocity ここでは、マップ変換ノードで定義し てあるように、時間が経つにつれパー ティクルの速さを上げています このノードでは、パーティクルの速度を設定します。速度はベクトルであり、 (ベクトルの長さ にあたる)速さと、 (ベクトルの向きである)方向を内包しています。そのため、このノード を使用することで、移動するパーティクルの速さと方向の両方を設定できます。 このノードは、速度への影響に関して他のノードよりも優先されています。つまり、パーティク ルが PVelocity ノードに接続されている間は、他のノードがそのパーティクルの速度を変える ことはできません。 84 ノード THINKING PARTICLES 属性マネージャのパラメータ パーティクルの速さと方向を定義 します 変更、方向、範囲、速さ 3 種類あるモードのいずれかを使用することで、パーティクルの速度を変更できます。 速さと距離 このモードでは、パーティクルの速さと距離の両方を変更できます。速さと距離の値を、パー ティクルの希望する速さと距離に設定します。範囲を使用することにより、速さと距離の値 を変更できます。 速さ 速さ(ベクトルの長さ)だけが変更されます。速さをパーティクルの希望する速さに設定 します。範囲を使用することで速度の値を変えられます。 方向 方向(ベクトルの向き)だけが変更されます。方向をパーティクルの希望する方向に設定 します。範囲を使用することで方向の値を変えられます。 評価のタイプ パーティクルが速さや方向、あるいはその両方から受ける影響を定義します。選択された設 定に応じて、パーティクルの現在の速さや方向、あるいはその両方が、ノードの速さや方向 の設定によって置き換えられたり、乗算や加算が実行されます。 秒あたり このオプションがオンになっている場合、ノードは秒ごとに 1 回評価を受けます。そうでなけ れば、フレームごとの評価となります。なお、このオプションをオンにしても、評価のタイプ を乗算または加算に設定している場合は、一切の効果がありませんので注意してください。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 ノード 85 THINKING PARTICLES アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただ し、ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可 能となります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である) 時間でなければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用され ます。 パーティクル このポートを、速度を変更したいパーティクルのストリーム(例えば PPass ノードのパーティク ル出力ポートなど)に接続します。 PWind 風は異なる質量をもつパーティクルに 異なる方法で影響を与えるため、煙 のようなタービュランスが得られます。 ここでは PWind ノードで作成できる 効果の面白さを分かっていただくため、 一連の設定により、パーティクルの質 量が始まりからの距離に応じて変化す るようにしてみました いくつかの点で、PWind ノードは PGravity ノードに似ているところがあります。例えば、いず れのノードも、生成する力は Z 軸の方向で適用されます。ただし、PGravity ノードとは異なり、 このノードでは非定形的な、渦をまく煙のようなタービュランスな力場を生成できます。 属性マネージャのパラメータ 風の効果では、パーティクルの質量や 大きさを考慮に入れることが可能であ り、小さく軽いオブジェクトが風に軽々 と運ばれるようにすることができます オブジェクト 風の位置と方向は、オブジェクトの軸システムを使用してコントロールします。風の位置と方 向を示すオブジェクトの名前をオブジェクトマネージャよりドラッグし、このボックスにドロップ します。 86 ノード THINKING PARTICLES タイプ 平面(2D)と球(3D)の、2 種類の風フィールドが利用できます。 タイプを平面に設定すると、力はオブジェクトの XY 平面(Z 軸に沿う形)に垂直で適用され ます。ビューに表示されるアローヘッドは、力の方向を示しています。このアローヘッドの大 きさは、属性マネージャのノードページにあるアイコンサイズを使用することで調節できます。 タイプを球に設定すると、力はオブジェクトの始まりより球状で適用されます。このモードは とりわけ、パーティクルを一緒にまとめたい場合に有効です。球状の風の力がビューに球とし て表示されます。その大きさは、属性マネージャのノードページにあるアイコンサイズを使用 することで調整できます。 強度 これは風力の強さを表しています。この値が大きいほど、パーティクルに与える力が強くなり ます。パーティクルはその動く方向を変更するだけでなく、速さも上昇します。負の値を入力 することも可能で、その場合パーティクルは逆の方向に動かされることになります。 減衰 オブジェクトの始まりから遠ざかるにつれて起こる、この力の減衰をコントロールします。値 が 0 であれば減衰は起こらず、風がパーティクルに与える影響の強さは距離には無関係となり ます。値が大きいと外部からの影響は急激に増加します。パーティクルがオブジェクトの始ま りから遠ざかるほど、パーティクルに対する力は弱まります。減衰値が大きいほど、風がパー ティクルに対し目にみえて影響を与えられる領域が狭まります。 質量への依存、大きさへの依存 これらの値は、パーティクルの質量と大きさを考慮に入れるものです。パーティクルの質量や 大きさが増加するほど、風力がパーティクルに与える影響は弱まります。 タービュランス、頻度、構造の大きさ 風にタービュランスを加える場合は、タービュランスの値を 0 より上に設定します。この値が 大きいほど、タービュランスがパーティクルに与える影響が大きくなります。この効果は強度 の値からは独立しており、たとえ強度が 0 に設定されていても、パーティクルへの影響は変 わりません。頻度は、タービュランスが起こす変化の速さを定義します。この値が大きいほど、 パーティクルに対するタービュランスの頻度が上がります。 タービュランスはいわば、騒音が 3 次元になったものと考えることもできます。この値が低け れば、変化の度合いもおとなしいものになります。あるいはタービュランスをプロペラのよう なものと考えてもいいでしょう。この場合、構造の大きさの値がプロペラの大きさを決めてい るわけです。 アイコンサイズ 風を表すアローヘッドや球の大きさを 調整することができます ノード 87 THINKING PARTICLES この設定は、属性マネージャのノードページにあり、ビューでの風力を表すアローヘッドや球の 大きさをコントロールします。 その他の入力ポート オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、 内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間で なければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートを、風力の影響を与えたいパーティクルのストリーム(例えば PPass ノードのパーティ クル出力ポートなど)に接続します。 88 ノード THINKING PARTICLES TP ヘルパーグループ PChronometer この例では、パーティクルはその有 効期間の初期のフレームの間で、し だいに増加するようになっています。 PChronometer ノードの時間の値は乗 算させるものとして使用されています このノードを使用して、ユーザーは独自の時間値を作成できます。これはとりわけ、時間を操 作したい場合に有効です。例えば、特定のノードだけを他のノードの倍の速さで実行している ように見せることが可能です。 PChronometer は、ストップウォッチのような働きをします。ストップウォッチをリスタートする 場合、ゼロから始めることも、前回止めたところから始めることもできますが、それと同じこ とができます。 属性マネージャのパラメータ このノードをリスタートする際に、毎回 0 から始めるかノードが前回にオフにされ たところから始めるかを決定できます タイプ この設定では、PChronometer の時間が、リスタートの際に毎回 0 にリセットされる(タイプ をリセットに設定)か、あるいはウォッチが前回に止まった時間から再開するかをコントロー ルします。 時間ファクタ、範囲 この値は、経過した時間を測定するスケール要素として働くものです。同じ時間間隔に異なる 測定要素を使用することで、時間の進みぐあいがノード別に異なっているように見せることが できます。例えば、時間ファクタを 200% にしておくと、100% でコントロールされているノー ドに比べ、時間の経過は 2 倍になります。 範囲を使用することで時間ファクタを変更できます。ただし、このノードにパーティクルストリー ムが接続されている場合は、パーティクルのそれぞれに対して時間の範囲が計算されることに なります。 ノード 89 THINKING PARTICLES その他の入力ポート アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく補間されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 オン True のブール値であれば、このノードはオンになります。False の値であれば、ノードはオフ になります。 パーティクル このポートはパーティクルストリームに接続するためのものです。これでパーティクルごとの時 間を保存できます。特定のパーティクルイベント (定義した位置にパーティクルが到達するなど) をタイミングのトリガとして働かせたい場合に、このポートを使用すると便利です。 入力ポート 時間 停止した時間を秒数で出力します。ノードがオフになった時点で、ウォッチが最後に止まった ときの時間の値を表示します。 PGetData 2 つのパーティクルストリームを対象にし て、いずれか 1 つのグループの配置(軸 の方向)をとり、それを使用して、もう 1 つのグループにあるパーティクルが同 じように配置されることを確実にします。 この作業はすべて PGetData で行います このノードは PSetData と対になるものです。これを使用することにより、各パーティクルの位 置など、パーティクルに関するあらゆるデータにアクセスできます。このノードの入力ポートを、 読み出したいデータのあるパーティクルストリーム(例えば、PPass ノードのパーティクル出力 ポートなど)に接続します。読み出したい値のために(赤い四角形の)出力メニューを使用 してポートを追加し、それらのポートを適切なノードに接続します。 90 ノード THINKING PARTICLES PGroup TP スタンダードグループの PGroup ノードとはまったく異なるノードです。 この例では、あるパーティクルストリー ムのグループ設定が、別のパーティク ルストリームのグループ設定に使用され ています このノードでは、パーティクルグループの出力に必要となるポートを提供します。これはとり わけ、グループ間でパーティクルを移動する場合に有効です。 属性マネージャのパラメータ このノードが出力するパーティクル グループを選択します PGroup ノードが出力するパーティクルグループの名前を Thinking Particles の設定よりドラッグし、こ のボックスにドロップします。 出力ポート PGroup このパーティクルグループに属しているパーティクルを出力します。 PSpinConvert ここではグループ 1 にあるパーティクル の回転を定数値に設定しています。回 転の速さは実数で、回転軸については ベクトルになっています。グループ 1 は 特定の年齢のパーティクルだけを保持 しています このノードでは、パーティクルの回転を簡単に設定できます。回転速度と回転軸を表す 2 つの 入力を使用しており、これらをタイプ PSpinConvert の回転値に変換します。続いて、変換し た値を PSetData ノードに接続し、パーティクルの回転を設定します。 ノード 91 THINKING PARTICLES 属性マネージャのパラメータ 速さの値は回転の速さを示すものです 速さ この値は回転の速度を表しており、1 秒あたりでの角度の変化で示されます。値はラジアンで 表示され、2*Pi ラジアンは 360°を意味します。そのため、ここでの 2*Pi という値の場合、1 秒間に 1 回転することになります。 その他の入力ポート 軸 パーティクルが回転する場合に中心として使用する軸を定義します。例えば、値が(0;0;1)で あれば、各パーティクルはそれぞれの Z 軸を中心に回転します。 出力ポート 回転 パーティクルの回転を出力します。これを PSetData ノードの回転ポートに接続して、パーティ クルの回転をコントロールします。 PSurfacePosition ここでは小さな球形のパーティクルを、よ り大きな球のサーフェスに置いています。 パーティクル ジオメトリオブジェクトを使 用して、オブジェクトがさらに小さな球の パーティクルを保持するようにし、あわせ て PShape ノードの境界の半径がその球 のパーティクルの大きさを考慮した値に 設定されていることに注目してください このノードを PBorn ノードと組み合わせて使用することにより、オブジェクトのサーフェスから 容易にパーティクルを放出することができます。計算によって、ポリゴンオブジェクトのポイン トやエッジ、ポリゴン上での位置をランダムに選択します。このポリゴンオブジェクトの形状を 崩すことも可能ですが、その場合でも位置の計算は正確に行われます。 92 ノード THINKING PARTICLES 属性マネージャのパラメータ オブジェクトを選択しパーティクルが放 出されるのがそのオブジェクトのポイン トなのか、エッジなのか、それともポリ ゴンなのかを選択します オブジェクト 希望するポリゴンオブジェクトの名前をオブジェクトマネージャよりドラッグし、このボックスに ドロップします。 タイプ、選択範囲 タイプを使用して、位置の生成をオブジェクトのポイントなのか、エッジなのか、あるいはポリ ゴンなのかを選択します(タイプをそれぞれフェイス、エッジ、頂点に設定) 。加えて、位置を 制限して選択を凍結することもできます(ポイント、エッジ、ポリゴンの選択タグなど) 。希望 する選択タグの名前を選択範囲ボックスに入力します。選択の凍結に関する詳細については、 CINEMA 4D リファレンスマニュアルにある「選択範囲を記録」コマンドの解説をご覧ください。 その他の入力ポート パーティクル このポートを、放出元にしたい、あるいはオブジェクトの上に置きたいパーティクルストリーム(例 えば PPass ノードのパーティクル出力ポートなど)に接続します。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 出力ポート 位置 オブジェクト上の、任意の位置を出力します。このポートを PSetData ノードの位置ポートに接 続することで、これらの値をパーティクルに割り当てることもできます。 法線 オブジェクト上の任意の位置の法線を出力します。この情報を使用することで、パーティクル がサーフェスに対して垂直方向に移動するように、それぞれのパーティクルの速度を設定でき ます。 配置 パーティクルの現在の配置をベクトルで出力します。 ノード 93 THINKING PARTICLES PTimer PTimer は、 (比較ノードで設定された) 特定の時間の後でオンになります。そ れからも属性マネージャの時間設定に 対してオンのままとなり、これによって パーティクルストリームは、その時間 において重力の影響を受けることにな ります。そのため、一時的な力場のよ うなものが形成されます このノードはタマゴをゆでる時に使う砂時計のようなもので、いつでもオンにでき、一定の時 間が経過すると自動的にオフになります。 属性マネージャのパラメータ タイマーの有効時間と、1 回きりの使 用なのか繰り返し使用するのかを定 義します 時間 この値では、このノードがオンになり有効になっている期間をフレームで定義します。 繰り返し このオプションがオンになっていれば、ノードはいったん終了した後も再び元の状態に戻りま す。このノードは、動く物を認識すると自動的に照明をつけるセンサーのように、時間をおい て実行させることが可能です。1 度だけの実行ではなく、トリガされるたびに実行することもで きます。 一度のみ このオプションがオンになっていれば、ノードは 1 度だけの実行となります。この設定では、1 度だけトリガが働くため、上記のセンサーのようにはなりません。実行後にセンサーが動くも のを認識しても、照明がつくことはありません。 94 ノード THINKING PARTICLES その他の入力ポート 開始 このポートに True のブール値を渡し、タイマーのトリガを起動します。つまり、ノードがオン になります。 アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、 内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 パーティクル このポートに、パーティクルストリームを接続できます。実行時間はパーティクルによって異な ります。例えば、このノードを使用して、外部のイベントに基づくパーティクルの断片化を開始 し、断片化のタイミングを調整することができます。 出力ポート オン タイマーの実行中に、True のブール値を出力します。それ以外は出力値は False となります。 時間 すでに実行中のタイマーに関する秒数を出力します。例えば、値が 5 であれば、タイマーは 5 秒間オンになっていることになります。 パーセント時間 タイマーのカウントダウンの経過をパーセントで出力します。例えば、時間入力ポートが 40 フ レームに設定されており、すでに 10 フレームが経過していれば、このポートでは 25% という 値を出力します。 パーティクル タイマーの影響を受けるパーティクルを出力します。このポートは、PPass ノード、または PPassAB ノードのパーティクル出力ポートと同じように使用できます。 ノード 95 THINKING PARTICLES PVelocityConvert この例では、2 つの方法でベクトルとス ケーラを別のベクトルに変換していると ころを示しています。この別のベクトル は元のベクトルと同じ方向を持ち、な おかつ元のスケーラの長さを持っていま す。これは既知の速さをもつ速度ベク トルを構築したい場合に有効です。下 の方にあるノードでは、同じ処理を PVelocityConvert を使わずに行ってい ます(まず元のベクトルを 1 の長さで正 規化し、次にそれを元のスケーラで積算 する)。その上では PVelocityConvert を使用し、同じ処理を少ない手順で行っ ていることが分かります このノードを使用すれば、速度の値を手軽に作成できます。速度は速さと方向の両方を備え ています。このノードに、希望する速さと方向を入力ポートを経由して渡すと、ノードではそ れに対応する速度を出力します。その出力結果を PSetData ノードに渡して、パーティクルの 速度を設定します。速度がベクトルデータタイプを使用していることに注意してください。 属性マネージャのパラメータ オプションとして、速度に変換される ような速さも入力できます 速さ 秒ごとに単位として測られる速度の値です。 その他の入力ポート 方向 この方向は、速度の方向を設定します。例えば、値が(0;0;1)であれば、パーティクルは その Z 軸の方向で動きます。ただし、このノードはパーティクルストリームとは直接に接続さ れないため、単にパーティクルの速度を設定するだけでなく、用途を問わずにこれを使用して 速度を計算できます。 出力ポート 速度 速さと軸の値を計算し、速度をベクトルとして出力します。この値を使用してパーティクルの 速度をコントロールしたい場合は、このポートを PSetData ノードの速度入力ポートに接続し ます。 96 ノード THINKING PARTICLES PVolumePosition PSurfacePosition の例とは反対に、ここ では小さな球のパーティクルをより大きな 球のボリュームの内部に作成しています。 パーティクル ジオメトリオブジェクトを使 用して、オブジェクトがさらに小さな球の パーティクルを保持するようにし、あわ せて PShape ノードの境界の半径を、そ の球のパーティクルの大きさを考慮した 値に設定しているのに注目してください このノードは PSurfacePosition ノードと似ていますが、ポリゴンオブジェクトのサーフェスでは なく、その内部または外部にある位置を計算している点で異なります。 属性マネージャのパラメータ オブジェクトを選択しパーティクルが放 出されるのが、そのオブジェクトの内側 なのか外側なのかを選択します オブジェクト 希望するポリゴンオブジェクトの名前をオブジェクトマネージャよりドラッグし、このボックス にドロップします。 タイプ、選択範囲 タイプを使用して、位置の生成をオブジェクトの内側なのか、あるいは外側なのかを選択し ます(タイプをそれぞれ内側、外側に設定)。効果を制限して選択を凍結することもできます。 希望する選択タグの名前を選択に入力します。選択の凍結に関する詳細については、CINEMA 4D リファレンスマニュアルにある「選択範囲を記録」コマンドの解説をご覧ください。 深さ この値は、計算が可能な位置にあるオブジェクトのサーフェスからの距離をコントロールしま す。これにより、位置をポリゴンプレーンのようなオープンサーフェスで計算できます。 その他の入力ポート パーティクル このポートをオブジェクトの内側、または外側から放出させたいパーティクルストリーム(例え ば PPass ノードのパーティクル出力ポートなど)に接続します。 ノード 97 THINKING PARTICLES アニメーション時間 ノードのパラメータはキーフレームでアニメーション表示が可能であり、値が正しく内挿されて いることを確認するため、内部ではデフォルトで CINEMA 4D 時間が使用されています。ただし、 ユーザー自身の時間値を使用したい場合は、自分の時間値をこのポートに渡すことで可能とな ります。この場合、時間値のデータタイプは(最も簡単に記述された実数値である)時間でな ければなりません。このポートに値が渡されない場合、CINEMA 4D 時間が使用されます。 出力ポート 位置 オブジェクトの内側、または外側にある任意の位置を出力します。このポートを PSetData ノー ドの位置ポートに接続することで、これらの値をパーティクルに割り当てることもできます。 法線 オブジェクト上の任意の位置の法線を出力します。この情報を使用することで、パーティクル がサーフェスに対して垂直方向に移動するように、それぞれのパーティクルの速度を設定でき ます。 配置 パーティクルの現在の配置をベクトルで出力します。 3 チュートリアル THINKING PARTICLES チュートリアル 101 はじめに Thinking Particles は、その卓越した コントロール機能により、リアルで視 聴者を惹きつけるような視覚効果を作 り出します。 大型のスクリーンで再生できる質を備えた高度なパーティクル効果の作成は、従来のパーティ クルシステムではほとんど不可能な作業でした。そのようなシステムでは、パーティクルに対す るコントロールがきわめて限られていたためです。Thinking Particles は、卓越したコントロー ル機能を備えており、パーティクルを個別に操作することも可能です。Thinking Particles を使 用することにより、従来望まれていたようなパーティクル効果を作成できるようになりました。 Thinking Par ticles はモジュラーベースのパーティクルシステムです。つまり、Thinking Par ticles では、ノードと呼ばれるブロックを構築して効果を作成しています。一見した感じで は、ノード自体はそれほどすばらしいと思われないかもしれませんが、ノードの真価は、ノー ド同士や、XPresso システムにある既存のノードとの自由な組み合わせができることにありま す。このようなモジュラーベースの考え方が Thinking Par ticles の中心であり、これにより真 に特別な特殊効果を操ることが可能となっているのです。 Thinking Particles は CINEMA 4D の XPresso システム上に構築されるものであるため、まず 最初に CINEMA 4D チュートリアルマニュアルの XPresso に関するチュートリアルをお読みくだ さい。 102 チュートリアル THINKING PARTICLES XPresso 編集で新規のノードを作成すると、デフォルトでは、そのノードはボックスとして表示 されます。そのボックスは、左側に入力ポート(青)が、右側には出力ポート(赤)が付い ています。この設定は、XPresso の設定で変更できます(編集 -> 一般設定 -> XPresso を選 択)。これにより、逆に右側に入力ポート、左側に出力ポートを置いたり、あるいは色を変 更することもできます。 本チュートリアルではデフォルトの設定を前提として説明します。 ノードによっては、デフォルトでは入力ポートや出力ポートの名前を持たないものもあります。 この場合、必要であればユーザーがポートを割り当てることになります。デフォルトのポート名 を設定するには、まずノードを選択し、次にそのノードのコンテクストメニューから ポート -> 名前の表示 を選択します。コンテキストメニューを表示するには、選択したノードを右クリック (マウスボタンが 1 つだけの Mac の場合は、Command - クリック)してください。本チュート リアルを通じて、この操作はいつ行っても構いません。 デフォルトのポート名を確認するには、 ノードを選択し、コンテクストメニュー で ポート -> 名前を表示 を選択します 名前を表示した PGroup ノード(左) と名前を表示していないノード(右) チュートリアル 103 THINKING PARTICLES Thinking Particles と XPresso を組み 合わせる Thinking Particles は XPresso システ ム上に構築されています。そのため、 ここではまず、両方のシステムを組み 合わせて使用する方法について、例を 挙げて説明します。 高度な効果を作成するにあたって、パーティクルを完全にコントロールするために、Thinking Particles のノードと XPresso のノードを組み合わせて使用することが頻繁にあります。たとえ ば、特定の期間に限ってパーティクルの放出を抑制する場合、XPresso の時間ノードの助けを 借ります。このノードはアニメーションの現在時間をレポートするものです。この章では最初に、 常に動いているパーティクルで出来た雲を作ります。雲をまとめるために、重力フィールドを 使用し、離れすぎそうなパーティクルを雲に引き戻します。また、重力フィールドの中央でパー ティクルが静止した状態になるのを防ぐために、重力が中央に近付きすぎたパーティクルを押 し戻すようにします。 ファイル -> 新規 を選択して、新規のシーンを作成します。 オブジェクト -> ヌルオブジェクト を選択して、ヌルオブジェクトを作成します。 オブジェクトマネージャで、ファイル -> CINEMA 4D タグ -> XPresso を選択して、新規のエク スプレッションを作成し、XPresso 編集を開きます。 XPresso エクスプレッションタグをヌル オブジェクトに追加して新規のエクスプ レッションを作成し、XPresso 編集を 開きます 新規のエクスプレッションと同じように、XPresso エクスプレッションタグをオブジェクトに割 り当てることで、新規の Thinking Particles 効果を作成します。 104 チュートリアル THINKING PARTICLES タグの追加は、どのようなタイプのオブジェクトに対しても可能ですが、最適なのはヌルオブ ジェクトです。レンダリングで不可視となるため、パーティクルの邪魔をすることがないためで す。ヌルオブジェクトにタグを追加すると、XPresso 編集が自動で開きます。ここでパーティ クル効果を作成することになります。方法としては通常の XPresso のエクスプレッションと同 様ですが、ここでは、パーティクル効果のための外部ノードを選択します。 XPresso 編集はいつでも自由に閉じることができます。再び開くには、オブジェクトマネージャ の XPresso エクスプレッションタグをダブルクリックします。 マウスボタンが 1 つだけの Mac の場合は Command - クリックします XPresso 編集で、ウィンドウを右クリックして XPresso 編集のコンテクストメニューを開き、 新規ノード -> XPresso -> 一般 -> 時間 を選択します。 これにより、XPresso 編集に時間ノードが作成されます。 時間ノードの赤い四角をクリックして出力メニューを開き、フレームを選択します。 これにより、ポートが作成されます。このポートは、アニメーションの現在の状態をフレーム で出力するものです。 XPresso 編集のコンテクストメニューで、新規ノード -> XPresso -> 論理 -> 比較 を選択しま す。 時間ノードと比較ノードをそれぞれ使用することで、PStorm ノードでのパーティクルの放出が コントロール可能になります。 属性マネージャのノードページで、データタイプを実数に、比較演算子を <= にそれぞれ設 定します。 この <= は、それ未満か、または等しいことを意味します。 属性マネージャのパラメータページで、入力 2 を 30 に設定します。 接続が完了すると、時間ノードではアニメーションの現在のフレーム番号を比較ノードに渡し ます。フレーム番号が 30 か、それ以下だった場合、比較ノードでは PStorm ノードのオンポー トに True の値を送り、これによりパーティクルが放出されます。フレーム番号が 30 を超える と、比較ノードは False 値を出力し、これにより PStorm ノードのパーティクルが止まります。 つまりここでは、PStorm ノードのパーティクル放出を 0 から 30 のフレームに制限したわけです。 そのため、30 以降のフレームではパーティクルの新規作成は行われません。 XPresso 編集で、時間ノードのフレームポートを、比較ノードの入力 1 ポートに接続します。 XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP ジェネレー タ -> PStorm を選択します。 PStorm ノードの入力メニュー(青い四角)をクリックして、エミッタの配置を選択します。 再び PStorm ノードの入力メニューをクリックして、オンを選択します。 チュートリアル 105 THINKING PARTICLES 比較ノードの出力ポートを PStorm ノードのオンポートに接続します。 比較ノードが出力するブール値により 0 から 30 までのフレームでエミッタがオ ンになります。31 以降のフレームでは、 新規のパーティクルは作成されません 0 から 30 のフレームだけでなく、50 以降のフレームでもパーティクルを放出させたいとしましょ う。どのようにしたらよいでしょうか。この場合は、2 つ目の比較ノードを追加します。この 比較ノードを、フレーム番号が 50 に等しいか、またはそれ以降になった場合に True 値を出 力するようにし、2 つの比較ノードをブールノードでまとめます。このブールノードの関数を、 OR に設定します。このブールノードを追加することで、PStorm ノードがパーティクルを放出 するのは、これらの比較ノードのいずれかが True を出力した場合になります。つまりフレーム が、0 から 30 まで、そして 50 以降になった場合です。 オブジェクトマネージャで、ヌルオブジェクトをドラッグし、XPresso 編集にドロップします。 オブジェクトにノードを作成するもっとも手軽な方法は、オブジェクトマネージャからオブジェ クトの名前をドラッグし、XPresso 編集にドロップすることです。 ヌルオブジェクトノードの出力メニューをクリックし、座標 -> 絶対位置 -> 絶対位置 を選択し ます。 XPresso 編集で、ヌルオブジェクトノードの出力メニュー(赤い四角)をクリックし、グロー バルマトリックスを選択します。 ヌルオブジェクトノードのグローバルマトリックスポートを PStorm ノードのエミッタの配置 ポートに接続します。 ヌルオブジェクトノードの絶対位置ポートを、PStorm ノードのエミッタの位置ポートに接続し ます。 ヌルオブジェクトノードの絶対位置とグ ローバルマトリックスポートを、PStorm ノードのエミッタの位置とエミッタの配 置ポートに接続します。これにより、エ ミッタはヌルオブジェクトの位置と回転 の値を使用します PStorm ノードはそれ自身の軸システムを持っていません。ただし、オブジェクトのノードを作 成し、そのグローバルマトリックスと絶対位置を PStorm ノードに渡すことにより、オブジェク トの位置と回転を割り当てることは可能です(ここではヌルオブジェクトを使用しています)。 これにより、ヌルオブジェクトを移動したり回転させることで、エミッタの移動や回転が行え ます。 106 チュートリアル THINKING PARTICLES パーティクル放出の方向もオブジェクトによってコントロールできます。パーティクルは、その オブジェクトの Z 軸の方向で放出されます。 ほとんどの場合、エミッタの位置と回転を表すためにオブジェクトを使用します。ただし、定 数ノードから PStorm ノードにベクトルとマトリックスを渡すことでも、同じように位置と回転 をコントロールできることに注意してください。 XPresso 編集で、PStorm ノードのタイトルバーをクリックして選択し、属性マネージャのパ ラメータページで、タイプを長方形に、生成のタイプをショットにそれぞれ設定します。 ショットを 1 に設定します。 ショットの値が 1 であれば、フレームあたりで新規のパーティクルが 1 つ生成されることを意 味します。PStorm ノードでは、パーティクルを 0 から 30 までのフレームに限ってパーティク ルを放出するため、合計で 31 のパーティクルが生成されます。 有効期間を 1000 に設定します。 これらのパーティクルは有効期間も長く、フレームが 30 を超えても消滅しません。 (PStorm ノードをオフにした場合、新規のパーティクル生成は止まりますが、既存のパーティクルはそ のまま存在しています)。 速さを 200 に設定します。 大きさを 30 に設定します。 大きさの値は、パーティクルのために球を使用する場合に重要となります。PStorm ノードの 大きさの値は、その球の大きさを決定します。ただし、大きさの値をそのままオブジェクト パーティクルの実際の大きさにすることも可能です。これを実行するには、 (PShape ノードで の)元になるオブジェクトの大きさの値と境界の半径の値をすべて希望するオブジェクトパー ティクルの値に設定する必要があります。このチュートリアルでは、パーティクルオブジェクト はすべて半径で 30 になるようにしているため、大きさ、境界の半径と、その球の半径をすべ て 30m に設定します。 (30 ユニットの大きさ ×(1 ÷ 30 単位の境界の半径)× 30 単位の 球の半径 = オブジェクトパーティクルのための 30 単位の半径) X Fov と Y Fov の両方を 360°に設定します。 パーティクルが全方向に放出されるよう、X Fov と Y Fov を、それぞれ最大値である 360°に 設定します。 チュートリアル 107 THINKING PARTICLES X の大きさと Y の大きさをそれぞれ 300 に設定します。 PStorm ノードのパラメータをこのよう な値に設定します アニメーションツールバーで再生ボタンをクリックします。 いよいよ、これまでの作業の成果を確認する時が来ました!ヌルオブジェクトの始まりよりパー ティクルが放射状に放出されている様子が見えているはずです。フレームが 30 を超えると、 パーティクルの新規生成が止まります。 アニメーションツールバーで停止ボタンをクリックします。 メインメニューより、プラグイン -> Thinking Particles -> Thinking Particles 設定 を選択し、 Thinking Particles 設定ダイアログを開きます。 108 チュートリアル マウスボタンが 1 つだけの Mac の場合は Command - クリックします THINKING PARTICLES Thinking Particles 設定ダイアログの下部にあるパーティクルグループペインで All という名 前を右クリックし、コンテクストメニューを開きます。このメニューから追加を選択し、新規 のパーティクルグループを作成します。 (Thinking Particles 設定ダイアログは、このチュート リアルを通じて使用しますので、ここで閉じないようにしてください) 使いやすい管理ツールであるグループ を作成します 高度なパーティクル効果を作成する場合、パーティクルをグループ分けする必要がしばしば起 こります。グループを複数のノードに渡すことにより、グループを個別にコントロールできるよ うになります。本チュートリアルは、パーティクルグループをいっさい使わずとも完了できます が、Thinking Particles ではグループは重要であり、有力な機能を備えているため、ここで使 い始めてみましょう。 Thinking Particles 設定ダイアログは、パーティクルグループを作成する場です。このダイアロ グでは、コンテクストメニューを通じて特定グループの設定にアクセスすることも可能です。そ のような設定を、ここで見てみましょう(ただし、変更は行いません)。Thinking Particles 設 定にあるグループ 1 という名前を、Windows であれば右クリックを、マウスボタンが 1 つだけ の Mac の場合は、Command - クリックし、コンテクストメニューより設定を選択します。すると、 グループ 1 の設定が表示されます。ここでは、グループの色や、名前まで変更できます。グルー プの名前を変更する場合は、他と重複する名前は使用できませんので注意してください。 グループにあるパーティクルの色を変えるのは、複数のエミッタやグループを使用している場 合には、とりわけ有効です。ビューポイントで表示されるパーティクルが属しているエミッタや グループが見分けられるためです。この色はビューでのみ適用されるもので、レンダリングで のパーティクルの色が影響されることはありません。この先に進む前に、グループ 1 を閉じて おいてください。 XPresso 編集で PStorm ノードの出力メニュー(赤い四角)をクリックし、パーティクル生 成を選択します。 XPresso 編集のコンテクストメニューより、新規ノード -> Thinking Particles -> TP スタンダー ド -> PGoup を選択します。 新規ノード -> Thinking Particles -> TP スタンダード -> PShape を選択します。 チュートリアル 109 THINKING PARTICLES XPresso 編集で、PGroup ノードのタイトルバーをクリックして選択します。 属性マネージャで、パラメータページが表示されていることを確認してください。 Thinking Particles 設定ダイアログでグループ 1 の名前をドラッグし、属性マネージャのパラ メータページにある PGroup ボックスにドロップします。 グループ 1を PGroup ボックスにドロッ プすることで、生成されるパーティク ルはグループ 1 に割り当てられること を宣言します XPresso 編集で、PStorm ノードのパーティクル生成ポートを PGroup ノードの入力ポートに 接続します。 PGroup ノードでは、パーティクルは 生成された時点でグループ 1 に割り 当てられます オブジェクト -> プリミティブ -> 球体 を選択します。 シーンに球体オブジェクトが作成されます。 属性マネージャのオブジェクトページで、球体の半径を 30 に設定します。 XPresso 編集で、PShape ノードのタイトルバーをクリックして選択します。 属性マネージャで、パラメータページが表示されていることを確認してください。 オブジェクトマネージャで、球体の名前をドラッグし、属性マネージャの PShape ノードのパ ラメータページにあるオブジェクトにドロップします。 球体の名前を PShape ノードのオブジェクトにドロップしましたので、これで球体をパーティク ルとして使用できるようになりました。 属性マネージャで、境界の半径を 30 に設定します。 プラグイン -> Thinking Particles -> パーティクルジオメトリ を選択します。 110 チュートリアル THINKING PARTICLES これにより、シーンにパーティクルジオメトリオブジェクトが配置されます。 属性マネージャで、オブジェクトページが表示されていることを確認してください。 Thinking Particles 設定ダイアログでグループ 1 の名前をドラッグし、属性マネージャのオブ ジェクトページにあるパーティクルグループにドロップします。 パーティクルジオメトリオブジェクトは あるパーティクルのグループを表してい ます。Thinking Particles 設定ダイア ログで、このグループの名前をドラッ グし、属性マネージャのオブジェクト ページにあるパーティクルグループに ドロップします XPresso 編集で、PStorm ノードのパーティクル生成ポートを PShape ノードの入力ポートに 接続します。 パーティクルジオメトリオブジェクトと PShape ノードを使用して、パーティク ルとして使うオブジェクト(この場合は、 球体オブジェクト)を選択します PShape ノードでは、パーティクルが生成された瞬間にパーティクルを受け取り、球体に変え ます(球体であるのは、PShape ノードのオブジェクトにその球体の名前をドロップしたため です)。 シーンに複数のパーティクルグループがあり、すべてのパーティクルにその球体を割り当てたい とします。その場合は、パーティクルジオメトリオブジェクトを選択し、Thinking Particles 設 定にある All グループを属性マネージャのパーティクルグループにドラッグします。また、サブ グループがオンになっていることを確認してください。 THINKING PARTICLES チュートリアル 111 XPresso 編集のコンテクストメニューより、新規ノード -> Thinking Particles -> TP イニシエー タ -> PPass を選択します。 パーティクルに重力を割り当てるため、PPass ノードと PGravity ノードを作成し、この 2 つを 接続します。PPass ノードは、作成したパーティクルグループを PGravity ノードに渡します。シー ンにはパーティクルグループが 1 つあるだけなので、重力はすべてのパーティクルに適用され ます。 なぜ PPass ノードを使用するのでしょう?単純に、PStorm ノードを PGravity ノードに接続す るだけではいけないのでしょうか?残念なことに、これではうまく行かないのです。というのも、 PStorm ノードのパーティクル生成ポートは、現在のフレームで生成されたパーティクルだけを 出力するためです。重力は、1 つのフレームにあるパーティクルにのみ適用されてしまいます。 PPass ノードであれば、グループにあるすべてのパーティクルを PGravity ノードに渡せるのです。 属性マネージャで、パラメータページが表示されていることを確認してください。 Thinking Particles 設定ダイアログでグループ 1 の名前をドラッグし、属性マネージャで、 PPass ノードのパラメータページにあるグループにドロップします。 ドラッグ&ドロップは、CINEMA 4D イ ンターフェースの多くの場所で使われる テクニックです。ここでは、PPass ノー ドのグループ設定に使用しています XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP ダイナミッ ク -> PGravity を選択します。 112 チュートリアル THINKING PARTICLES 属性マネージャで、パラメータページが表示されていることを確認してください。 オブジェクトマネージャでヌルオブジェクトの名前をドラッグし、属性マネージャの PGravity ノードでのパラメータページにあるオブジェクトにドロップします。 ドラッグ&ドロップを使えば、重力の 影響を受けるオブジェクトの選択が容 易に行えます ここでは、エミッタに対して行ったように、同じオブジェクトを使って重力の位置と回転を表 します。重力の中心はエミッタの中心にあり、全方向にわたって、エミッタからパーティクル を遠ざけています。 そのまま属性マネージャで、PGravity ノードのタイプを球に設定します。 XPresso 編集で、PPass ノードの出力ポートを PGravity ノードの入力ポートに接続します。 PPass ノードを使用してパーティクル を PGravity ノードに渡します。これで ようやく、重力がパーティクルに適用 されます チュートリアル 113 THINKING PARTICLES XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP ヘルパー -> PGetData を選択します。 PGetData ノードは、各パーティクルの位置を 1 つずつ、ベクトルとして出力します。後でこの 位置を使って、重力の効果を調節しますので、その準備としていくつかノードを付け加えてお きましょう。 PGetData ノードの出力メニューをクリックして位置を選択します。 オブジェクトマネージャでヌルオブジェクトをドラッグして XPresso 編集にドロップし、新規 のヌルオブジェクトノードを作成します。 XPresso 編集で、新規のヌルオブジェクトノードの出力メニューをクリックし、座標 -> 絶対 位置 -> 絶対位置 を選択します。 XPresso 編集のコンテクストメニューより、新規ノード -> XPresso -> 計算 -> 計算 を選択しま す。 では、なぜこのような作業をするのでしょう?各パーティクルのエミッタからの距離を計算する ために、計算ノードでは PGetData ノードより受け取った値をヌルオブジェクトの位置から差し 引きます。これらの距離はベクトルとして計算され、その長さが実際の距離になります。これ により、これらの値を他のノードに渡して、各パーティクルをエミッタとの距離に応じてコント ロールできるようになります。この距離を後で、パーティクルでできた雲を保持するのに使用 します。つまり、重力に引きつけられているパーティクルを確保しておくわけです。これらのパー ティクルは重力の影響を受けており、遠く離れているものは引きつけられ、重力の中心に近 づいたものについては遠ざけられます。 計算ノードが選択されていることを確認し、属性マネージャのノードページで、データタイプ を ベクトル に、演算を 減算に設定します。 XPresso 編集で、PPass ノードの出力ポートを PGetData ノードのパーティクル入力ポートに 接続します。 PGetData ノードの位置ポートを 計算:減算ノード の上部にある入力ポートに接続します。 114 チュートリアル THINKING PARTICLES ここで、ヌルオブジェクトノードの絶対位置ポートを 計算:減算ノード の下部にある入力ポー トに接続します。 新規ヌルオブジェクトノードの絶対位置 ポートを計算ノードの下の入力ポートに 接続すると、XPresso 編集のウィンド ウはここに示したような状態になります。 ここでは PGetData ノードを使って各 パーティクルの現在位置を出力してお り、それらの値を計算ノードに渡します。 計算ノードでは、ヌルオブジェクトの 位置を差し引いて、各パーティクルのエ ミッタからの距離を計算します XPresso 編集のコンテクストメニューから 新規ノード -> XPresso -> 計算 -> マップ変換 を選 択します。 このマップ変換ノードを使用して、エミッタから遠ざかろうとするパーティクルへの重力の働き かけを決定します。 属性マネージャのノードページで、データタイプを実数に設定します。また、スプラインを使 うがオンになっているのを確認してください。 属性マネージャのパラメータページで、入力の下限を 0 に、入力の上限を 200 にそれぞれ設 定します。 同じくパラメータページで、出力の下限を -600 に、出力の上限を 550 に設定します。 マップ変換ノードでは、0 から 200 までの距離入力値をマッピングしなおして、-600 から 500 までの範囲にある値を出力します。そのため、入力値が 0 の場合は -600 に、入力値が 200 の場合は 550 にそれぞれマッピングされます。グラフ上のカーブによって、変化のレートと、 正の入力値(重力の中心からのパーティクルの距離)が、正の出力値(引きつけること)か ら負の出力値(遠ざけること)にかわるポイントが表されています。 チュートリアル 115 THINKING PARTICLES (パラメータページの出力の上限の下にある)グラフをクリックし、4 つのポイントを作成します。 このグラフで描かれるカーブは、正の 値から負の値への変化をコントロール します 最初の 2 つのポイントはグラフの右端と左端に固定されています。3 つ目と 4 つ目のポイント はどこにでも置けます。今のところはどこに置いてもかまいません。まちがってポイントをたく さん置いてしまった場合は、余分なポイントをグラフの外にドラッグすれば削除できます。 グラフの左側にある、右向きの三角形をクリックして、さらに細かい設定に進みます。 いちばん左のポイントをクリックして選択し、グラフの下にある X と Y ボックスにその位置が 表示されるようにしてください。Y を 0 に設定します。 グラフの上にある、次のポイントを選択し、X を 0.49 に、Y を 0 にそれぞれ設定します。 さらに次のポイントを選択し、X を 0.51 に、Y を 1 にそれぞれ設定します。 いちばん右のポイントを選択し、Y を 1 に設定します。 張力スライダをドラッグして 20% に設定し、ポイント間の変化をなだらかなものにします。 マップ変換ノードは、距離ベクトルの それぞれをマッピングしなおし、-600 から 550 までの実数値にします。ここ では、縦軸は出力値を、横軸は入力 値をそれぞれ表しています ここで作成したスプラインは、正の値から負の値までの変化をコントロールします。作成した カーブでは、この変化は、グラフの中央で入力値が 100 ユニット近くになると、唐突に発生 します。そのため、重力の中心から離れているパーティクルの数が 100 を超えると、パーティ クルは急激に引き戻されます。それから重力の中心に近づくと、それまで引きつけていた力 が直ちに引き離すものへと変わり、パーティクルは重力オブジェクトの始まりから遠ざけられ ます。 116 チュートリアル THINKING PARTICLES XPresso 編集で、マップ変換ノードの入力ポートを 計算:減算ノード の出力ポートに接続しま す。 計算ノードではベクトルを出力しますが、マップ変換ノードとの接続によってベクトルは浮動小 数点の値へと変換されます。この浮動小数点の値はベクトルの長さ、つまりパーティクルと重 力の中心との距離のことです。この数値は出力の下限値と出力の上限値によって区切られてい ます。 PGravity ノードの入力メニューをクリックして、強度を選択します。 強度ノードのポートを、マップ変換ノードの出力ポートに接続します。 重力の強さは、パーティクルと重力 の中心との距離に従って、各パーティ クルにより調整されます。中心に近い パーティクルは遠ざけられ、中心から 離れているパーティクルは引き寄せら れます。これにより、パーティクルが 絶えず動いていても、雲はつねに形づ くられています アニメーションツールバーで、再生ボタンをクリックします。 これで当初は、エミッタより遠ざかるパーティクルが表示されるはずです。しばらくすると、パー ティクルはエミッタに引き寄せられ、はね返す力が働くと、また遠ざかっていきます。 アニメーションツールバーで、停止ボタンをクリックします。 ファイル -> 別名で保存 を選択し、ファイルに適切な名前を付けて、適切な場所に保存しま す。 次のセクションに進む前に、シーンを保存しておいてください。というのも、このシーンを 元にして、次の 2 つのセクションを進めていくためです。シーンを保存したら、しばらくの間、 設定をいろいろ変えて遊んでみるのもよいかもしれません。たとえば、2 つ目の比較ノード を追加して、パーティクルの放出を 50 以降のフレームで再開させるというのはどうでしょう か。 まとめ ここでは、基本的なエミッタの作成方法を学びました。このエミッタは、限られた期間内で のみパーティクルを放出するというものでした。またヌルオブジェクトを使用してエミッタの位 置をコントロールする方法や、重力の操作、また XPresso ノードを Thinking Particles のノー ドと組み合わせる方法についても学びました。 チュートリアル 117 THINKING PARTICLES Thinking Particles を PyroCluster と 組み合わせて使用 する Thinking Particles の素晴らしい点とし て、CINEMA 4D の他のパートと組み合 わせることができるという点があります。 ここでは、そうしたオプションモジュー ルである PycoCluster をとりあげます。 これまでのチュートリアルでは、パーティクルジオメトリオブジェクトを使用して、パーティク ルをオブジェクトとして用いる方法など、Thinking Particles について詳しく説明してきました。 パーティクルジオメトリには、それ以外にも用途がありますが、そのひとつが、PyroCluster のマテリアルをパーティクルグループ全体に割り当てるという作業です。 PyroCluster はパーティクルベースのボリュームシェーディングエンジンで、CINEMA 4D のオプ ションモジュールでもあります。PyroCluster は、爆発や雲、煙、滝や吹雪といった効果の 作成に優れています。 前回のチュートリアルの最後で保存したファイルを開きます。 オブジェクトマネージャでヌルオブジェクトの XPresso エクスプレッションタグをダブルクリッ クし、XPresso 編集を開きます。 XPresso 編集で PShape ノードを選択し、Backspace キーを押して削除します。 ここで PShape ノードを削除するのは、PyroCluster では一切、サーフェスを必要としないた めです。PShape ノードを残したままにしておくと、このノードはパーティクルを球体に変えて しまうため、そうした球体がレンダリングの邪魔になってしまいます。 118 チュートリアル THINKING PARTICLES オブジェクトマネージャで球体オブジェクトをクリックして、Backspace キーで削除します。 作成するシーンには球体は必要ありません。 マテリアルマネージャで、ファイル -> PyroCluster -> PyroCluster ー ボリュームトレーサ を 選択します。 マテリアルは PyroCluster のボリュームシェーディングエンジンを有効にして作成します。 そのままマテリアルマネージャで、ファイル -> PyroCluster -> PyroCluster を選択し、新規 マテリアルに「Fire」という名前を付けます。 これで、後に炎になるマテリアルが作成されます。 メインメニューより オブジェクト -> シーン -> 環境 を選択します。 シーンに環境オブジェクトが作成されます。 マテリアルマネージャで PyroCluster ー ボリュームトレーサプレビューアイコンをドラッグし、 オブジェクトマネージャの環境オブジェクトにドロップします。 ここで は、 ボリュームトレ ー サ の 素 材 をこの 環 境 に 割り当 て て いま す。 これ に より、 PyroCluster のボリュームシェーディングエンジンがオンになります。 マテリアルマネージャより Fire プレビューアイコンをドラッグし、オブジェクトマネージャのパー ティクルジオメトリオブジェクトにドロップします。 PyroCluster の Fire マテリアルをパーティクルに割り当てるため、このマテリアルをパーティク ルジオメトリオブジェクトに割り当てます。 Thinking Particles を PyroCluster と組み合わせて使用するには、 PyroCluster のマテリアル(ここでは 「Fire」という名前を付けています)を、 パーティクルを表しているパーティクル ジオメトリオブジェクトに割り当てます マテリアルマネージャで、Fire マテリアルを選択します。 これより Fire マテリアルの編集に移ります。これにより、適切な大きさの火の球が作成され ます。 チュートリアル 119 THINKING PARTICLES 属性マネージャの全体ページで設定ポップアップをクリックし、火球を選択します。確認のダ イアログが表示されます。 設定を変更すると、その確認を求める ダイアログが開かれます これにより、煙をたてる火のボリュームが作成されます。 属性マネージャの形状ページで、半径を 200 に設定します。 これは、振動する火の玉の雲を作成するには適切な大きさです。 Fire マテリアルを選択した状態で、属性マネージャの全体ページに移り、レンダリングモード をビデオポストに設定します。 作成した火の玉の雲は、その大きさのためにレンダリングには相当な時間がかかります。特 にアニメーションでは、かかる時間も多くなります。処理の速さを上げるため、ここでは PyroCluster のレンダリングオプションを使用することにします。PyroCluster はビデオポスト と大気という 2 つのレンダリングモードを持っています。後者はすべての反射や屈折を考慮す るため、必要な場合には、シーンで火にそうした効果を使うことができます。たとえば、窓や 水といっしょに火の効果を使う場合などです。ビデオポストレンダリングモードでは、反射や 屈折を考慮しませんので、レンダリングをより早く処理できます。これはたとえば、宇宙空間 での爆発などに適しています。 タイムスライダをフレーム 10 にドラッグし、レンダリングします。 これで、印象的な炎から発生する煙が現れます。 120 チュートリアル THINKING PARTICLES もうひとつの例として、大気レンダリングモードに戻り、火の形状の半径を 20 に減らします。 これにより、より短い時間でレンダリングが完了し、小さな火の玉が現れます。 まとめ Thinking Par ticles を PyroCluster と組み合わせて使用するのは簡単です。必要なのは、 PyroCluster の素材を、パーティクルを表しているパーティクルジオメトリオブジェクトに割り 当てることだけです。 チュートリアル 121 THINKING PARTICLES パーティクルを変形 させる シーンにパーティクルジオメトリオブ ジェクトをセットアップしたままで、た ちまちパーティクルの形を変形させる ことができます。 このチュートリアルは、これまでの作例を元にしています。Thinking Particles を XPresso と組み合わせて使用します。これまでのチュートリアルを完了してから、この章に進んで ください。 これまでのチュートリアルでは、様々なことに加え、パーティクルジオメトリオブジェクトによっ てオブジェクトをパーティクルとして使用したり、PyroCluster のマテリアルをパーティクルに割 り当てたりしてきました。ここではさらに、この特殊なオブジェクトの使用法を取り上げます。 それはつまり、パーティクルの形を変形させるというものです。 第 1 回のチュートリアルの最後で保存したファイルを開きます。 メインメニューで、オブジェクト -> デフォーマ -> 数式 を選択します。 シーンに数式デフォーマオブジェクトが作成されます。 オブジェクトマネージャで、数式という名前をドラッグし、パーティクルジオメトリという名前 にドロップします。 この例では、パーティクルを変形させ るために、数式デフォーマオブジェク トをパーティクルジオメトリオブジェク トの子としています 122 チュートリアル THINKING PARTICLES 数式オブジェクトが、パーティクルジオメトリオブジェクトの子となります。 アニメーションツールバーの再生ボタンをクリックします。 球はそれぞれ、動くたびにその形が変形して行きます。変形は球ごとに異なっており、球の 正確な位置によって決められています。ためしに膨張やツイストなど、他のデフォーマを使っ てみてください。 まとめ デフォーマオブジェクトをパーティクルに適用するには、 そのパーティクルを表しているパーティ クルジオメトリオブジェクトの子にデフォーマを適用するだけです。 チュートリアル 123 THINKING PARTICLES パーティクルグルー プによる作業 ここでは、より高度なパーティクル効 果を扱います。長くなりますので、まず 最初にコーヒーでも飲んで、ひと休み したほうがいいかもしれません! 高度なパーティクル処理には、パーティクルグループを使うことでのみ得られるものがたくさ んあります。複数のグループを使うことにより、グループのパーティクルを他のグループに所属 するものと異なる形でコントロールできるようになります。 この最後の Thinking Particles チュー トリアルでは、パーティクルグループを実際に使用してみるほか、いくつかの高度なテクニッ クを学ぶことになります。 ここでは、パーティクルをサーフェスにまき散らすことにします。バケツからこぼれた砂や、テー ブルにこぼれた塩のように、パーティクルが容器からこぼれたような感じを出してみましょう。 まず最初に、サーフェスにこぼれてそのままそこにとどまっているパーティクルを作り、その上 にパーティクルが重なっていく様子を作ることにします。 ファイル -> 新規 を選択し、新規のシーンを作成します。 オブジェクト -> ヌルオブジェクト を選択してヌルオブジェクトを作成し、 「Emitter」という 名前を付けます。 124 チュートリアル THINKING PARTICLES PStorm ノードの位置と回転を表すため、ヌルオブジェクトを使用することにします。このヌルを 移動させたり、回転させたりすることで、本物のパーティクルエミッタの移動や回転を行います。 オブジェクトマネージャで、ファイル -> CINEMA 4D タグ -> XPresso を選択します。 新規のエクスプレッションが作成され、XPresso 編集が開きます。 オブジェクトマネージャで Emitter の名前をドラッグし、XPresso 編集にドロップします。 Emitter ヌルオブジェクトのノードが作成されます。 XPresso 編集のレイアウトメニューで ワイア接続形式 -> 直線 を選択します。 ノード間にこのタイプの接続を使用することで、適切な状態を保つことができます。 Emitter ノードの出力メニュー(赤い四角)より、座標 -> 絶対位置 -> 絶対位置 を選択します。 グローバル座標での Emitter オブジェクトの位置を出力するポートが作成されます。 Emitter ノードの出力メニューでグローバルマトリックスを選択します。 ローカル座標に対するものとしてグローバル位置とグローバルマトリックスを使用すれば、後 で必要となった場合にも、Emitter オブジェクトをモデルの階層に移動することができます。 マウスボタンが 1 つだけの Mac の場合は Command - クリックします XPresso 編集の空白部分を右クリックして、コンテクストメニューより 新規ノード -> Thinking Particles -> TP ジェネレータ -> PStorm を選択します。 PStorm ノードの入力メニュー(青い四角)よりエミッタの配置を選択します。 PStorm ノードのエミッタの配置ポートを、Emitter ノードのグローバルマトリックスポートに 接続します。 PStorm ノードのエミッタの位置ポートを、Emitter ノードの絶対位置ポートに接続します。 移動や回転の可能なエミッタを作成す るには、オブジェクトのノード(この 場合は Emitter)を PStorm ノードに 接続します XPresso 編集のコンテクストメニューより、新規ノード -> XPresso -> 一般 -> 時間 を選択し ます。 時間ノードの出力メニューよりフレームを選択します。 XPresso 編集のコンテクストメニューより、新規ノード -> XPresso -> 論理 -> 比較 を選択し ます。 属性マネージャのノードの属性ページで、データタイプを実数に、比較演算子を < にそれぞ れ設定します。 この < は、未満を意味します。 チュートリアル 125 THINKING PARTICLES パラメータページで、入力 2 を 25 に設定します。 XPresso 編集で、PStorm ノードの入力メニューからオンを選択します。 時間ノードのフレームポートを、比較ノードの入力 1 ポートに接続します。 時間ノードのフレームポートは、アニメーションの現在のフレーム番号を出力します。 比較ノードの出力ポートを、PStorm ノードのオンポートに接続します。 比較ノードと時間ノードを使用して、 パーティクルの放出を特定の期間に 制限します 時間ノードより受け取ったフレーム番号が 25 を下回る場合、比較ノードでは、PStorm ノー ドのオンポートに True の値を渡します。これにより PStorm ノードがオンになり、パーティク ルが放出されます。ただし、フレーム番号が 25 に到達すると、比較ノードはオンポートに False の値を送り、PStorm ノードをオフにしてしまいます。これにより、新規のパーティクル の放出は止まります。結果として、パーティクルの放出は 0 から 24 のフレームに限って実行さ れます。これはアニメーションツールバーの再生ボタンをクリックすることで確認できます。 XPresso 編集のコンテクストメニューより、新規ノード -> XPresso -> 計算 -> マップ変換 を選 択します。 属性マネージャのノードの属性ページで、スプラインを使うオプションがオンになっているこ とを確認します。 パラメータページで、入力の下限を 0 に、入力の上限を 24 に設定します。 出力の下限を 1 に、出力の上限を 15 に設定します。 グラフの横にある小さな三角形をクリックして、さらに細かい設定に移ります。 グラフの 3 箇所をクリックして、ポイントを 3 つ作成します。 3 回クリックしてポイントを 3 つ作成し ます。これらのポイントは、すぐ後で 調整します 作成したポイントのうち、最初の 2 つはグラフの右端と左端にそれぞれ固定されています。3 つめのポイントは自由に置くことができます。ポイントを作りすぎた場合は、不要なポイント をグラフの外に置くことで消去できます。 126 チュートリアル THINKING PARTICLES 左端のポイントをクリックして選択し、グラフの下にある X と Y ボックスにその位置が表示さ れるようにしてください。Y を 0 に設定します。 グラフの次にあるポイントをクリックし、X の値を 0.5 に、Y の値を 1 にそれぞれ設定します。 いちばん右のポイントを選択し、Y を 0 に設定します。 この曲線は、砂がバケツからこぼれ 落ちる速さを示しています ここでしばらく時間をおいて、現実に容器から中身がこぼれ落ちた場合のことを考えてみてく ださい。たとえば、バケツから砂がこぼれたとします。最初にバケツを動かすと、砂が少し こぼれて落ちます。バケツをさらに動かすと、砂の落ちる量もそれにあわせて増えていきます。 動きを次第に止めていくと、落ちる砂の量も再び少なくなります。 砂の大半は、バケツを動かす動作の間で落ちていきます。最初と最後では、ほんの少量が落 ちるだけです。この次第に高まり収まる現象を、マップ変換ノードと PStorm ノードのショット ポートを使用してシミュレートしてみます。 XPresso 編集で、時間ノードのフレームポートを、マップ変換の入力ポートに接続します。 PStorm ノードの入力メニューをクリックし、ショットを選択します。 ショットポートは、現在のフレームで放出(生成)される新規パーティクルの数をコントロー ルします。 ショットポートをマップ変換の出力ポートに接続します。 マップ変換ノードでは、1 から 15 までの値に関して、フレーム番号を再マッピングし、その値 をショットポートに渡します。その結果、アニメーションが開始された時点では、フレームあ たりに生成されるパーティクルは 1 つだけです。それから、しだいに放出量は増えてゆき、フ レーム 12 までにはフレームあたりの生成パーティクル数は 15 になり、これがピークとなります。 その後、生成されるパーティクル数は再び減少し、フレーム 24 に達する頃にはフレームあた り 1 パーティクルとなります。それからはエミッタがオフとなり、新規パーティクルの生成が止 まります。このように、簡単ですが実に有効なコントロールの仕組みがグラフによって実現さ れます。 チュートリアル 127 THINKING PARTICLES ショットの値では、フレームあたりの 放出パーティクル数を定義します。 時間ノードとマップ変換ノードを使用 すると、アニメーション中での放出量 を変えられます。これによりフレーム あたりでのパーティクルの数は変わる ことになります この時点でアニメーションを再生すると、フレームあたりにパーティクルが 1 つ生成される ことがなく、ショット値がうまく反映されていないことに気付かれると思います。これは、 PStorm ノードの生成タイプをショットに設定していないためです。その設定を実行するまでは、 PStorm ノード ではショットの値を無視します。 XPresso 編集のコンテクストメニューで、新規ノード -> XPresso -> 計算 -> 計算を選択しま す。 これにより、放出レートが下がると、それにあわせて放出されるパーティクルの数も減少しま す。 (既に放出の速さをコントロールしている)マップ変換ノードの出力を使用して、それを 5 倍し、その結果を使用してエミッタの大きさをコントロールします。これはつまり、エミッタ の大きさは放出の速さの上昇 / 下降にあわせて変わるということです。 たとえば、ショット値が 1 の場合、エミッタの大きさは 5 x 5 単位となります。そして、フレー ム 12 でショット値がピークである 15 に達すると、エミッタの大きさもその最大である 75 x 75 単位となります。よりリアルな効果のために、エミッタの大きさを変えることで、ストリーム の幅を様々に変えてゆくことができます。 属性マネージャのノードの属性ページで、データタイプを実数に、演算を乗算にそれぞれ設 定します。 パラメータページで、入力[2]を 5 に設定します。 XPresso 編集で、PStorm ノードの入力メニューから X の大きさを選択します。 PStorm ノードの入力メニューから Y の大きさを選択します。 マップ変換ノードの出力ポートを、計算:乗算ノードの上の入力ポートに接続します。 計算:乗算ノードの出力ポートを、PStorm ノードの X の大きさポートに接続します。 128 チュートリアル THINKING PARTICLES 計算:乗算ノードの出力ポートを、PStorm ノードの Y の大きさポートに接続します。 マップ変換ノードの出力を使用して、 エミッタの大きさと放出の速さをコント ロールします。マップ変換と PStorm ノードの間に計算:乗算ノードを置くこ とで、マップ変換の出力値を Emitter に適切な大きさにまで増加させます PStorm ノードのタイトルバーをクリックし、属性マネージャのパラメータページで、タイプ を円に、生成のタイプをショットにそれぞれ設定します。 Emitter の生成タイプをショットに設定 します。これで初めて、マップの変換ノー ドより渡されるショット値を Emitter が 使用するようになります すでに説明したように、PStorm ノードでは、PStorm ノードの生成タイプが ショット に設定 されている場合にのみショットの値を使用します。 XPresso 編集で、PStorm ノードの出力メニューよりパーティクル生成 を選択します。 メインメニューより、プラグイン -> Thinking Particles -> Thinking Particles 設定 を選択し ます。 Thinking Particles 設定ダイアログが開きます。 マウスボタンが 1 つだけの Mac の場合は Command - クリックします Thinking Particles 設定ダイアログで、All という名前(パーティクルグループ枠内)を右クリッ クし、コンテクストメニューより 追加 を選択します。 グループ 1 という名前の新規パーティクルグループが作成されます。 チュートリアル 129 THINKING PARTICLES 再度、All のコンテクストメニューで 追加 を選択します。 グループを 2 つ作成することにより、 パーティクルは 1 つ目のグループに割 り当て、それから 2 つ目のグループに 移すことができます。 グループ 2 という名前の新規パーティクルグループが作成されます。 そのまま Thinking Particles 設定で、グループ 2 のコンテクストメニューより 設定 を選択し ます。 グループ 2 の設定ダイアログで、色を 赤に設定します。これにより、ビュー での 2 つのグループが判別しやすく なります グループ 2 パーティクルグループの設定ダイアログが開きます。 PGroup ダイアログで、カラーボックスをクリックして、システムのカラーセレクタを開きます。 赤い色を選択し、PGroup ウィンドウを閉じます。 このチュートリアルを通じて使用しますので、Thinking Particles 設定ウィンドウは開いたま まにしておいてください。 130 チュートリアル THINKING PARTICLES XPresso 編集のコンテクストメニューから、新規ノード -> Thinking Particles -> TP スタンダー ド -> PGroup を選択します。 PGroup ノードの目的は、各パーティクルが生成された時点でグループ 1 に割り当てることにあ ります。その結果、全てのパーティクルは最初からグループ 1 に割り当てられます。その後で、 これらのパーティクルをグループ 2 に移します。 属性マネージャで、PGroup ノードのパラメータページが選択できる状態にあることを確認し てください。 Thinking Particles 設定ダイアログで、グループ 1 の名前をドラッグし、属性マネージャの PGroup ボックスにドロップします。 ここでは、各パーティクルをグループ 1 に割り当てています XPresso 編集で、PStorm ノードのパーティクル生成ポートを、PGroup ノードのグループ 1 ポー トに接続します。 PGroup ノードを使用して、各パーティ クルが最初からグループ 1 に割り当て られるようにします チュートリアル 131 THINKING PARTICLES オブジェクトマネージャで、Emitter オブジェクトが選択されていることを確認し、座標マネー ジャで、位置の値を X = 90、Y = 90、Z = 0 にそれぞれ設定します。 バケツの適切な開始位置が設定されます。 アニメーションツールバーで、タイムスライダがフレーム 0 にあることを確認し、Emitter オ ブジェクトの位置のためのキーフレームを記録します。 ここでは Emitter の位置だけを記録すればよいので、アニメーションツールバーにある、回転 (角度)やスケールの記録表示はオフにして構いません。 タイムスライダをフレーム 25 に移します。 座標マネージャで、Emitter オブジェクトの位置の値を X = 0、Y = 90、Z= -100 にそれぞれ 設定します。 バケツが動き、砂がそこからこぼれて行きます。 再び、Emitter オブジェクトの位置に関するキーフレームを記録します。 2 つのキーフレームグループを記録 することにより、エミッタの位置を 動かします メインメニューから オブジェクト -> ヌルオブジェクト を選択します。 シーンにヌルオブジェクトが作成されます。これを使用して、重力を発生させます。 属性マネージャの基本ページで、ヌルオブジェクトの名前を「Gravity」と変更します。 この方法でもオブジェクトに名前を付けることができます。 座標マネージャで、Gravity オブジェクトの P 値を -90°に設定します。 これにより、Gravity オブジェクトの Z 軸が下を向くようになります。なお、Gravity オブジェ クトの向きは、座標マネージャでも、属性マネージャの座標ページでも設定できます。 132 チュートリアル THINKING PARTICLES メインメニューより、オブジェクト -> プリミティブ -> 平面 を選択します。 パーティクルを撒き散らす床を表す平 面オブジェクトを作成します この平面オブジェクトは、シーンの床を表すものです。まもなく、この平面オブジェクトにパー ティクルを撒き散らすことになります。また平面にパーティクルを落とすために重力を使いま す。重力ヌルオブジェクトの Z 軸を下向きに設定したのは、これによって重力の方向をコント ロールするためで、当然ながら、重力を使ってパーティクルが下に落ちるようにしたいためです。 さらに、Emitter の位置を動かして、パーティクルが散らばる様子を作ります。これについては、 バケツから砂が均一的にこぼれ落ちるよう、バケツを持っている手を動かすことを考えてみれ ばよいでしょう。 では、グループ 1 にある一連のパーティクルが、重力に影響されるようにしてみましょう。 XPresso 編集のコンテクストメニューから、新規ノード -> Thinking Particles -> TP イニシエー タ -> PPass を選択します。 属性マネージャで、パラメータページが表示された状態であることを確認してください。 Thinking Particles 設定ダイアログで、グループ 1 の名前をドラッグし、属性マネージャの グループボックスにドロップします。 XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP ダイナミッ ク -> PGravity を選択します。 属性マネージャでパラメータページが表示されているのを確認してください。 オブジェクトマネージャで Gravity という名前をドラッグし、属性マネージャのオブジェクト ボックスにドロップします。 属性マネージャで、タイプを平面に、強度を 1000 にそれぞれ設定します。 属性マネージャで、Gravity ヌルオブ ジェクトを PGravity ノードに割り当 てます THINKING PARTICLES チュートリアル 133 XPresso 編集で、PPass ノードのグループ 1 ポートを PGravity ノードの Gravity ポートに接 続します。 PGravity ノードと PPass ノードを使用し て、パーティクルに重力を適用します グループ 1 にあるパーティクルは、PPass ノードから PGravity ノードに送られます。これに より、パーティクルに重力が適用されます。 PStorm ノードと同じように、PGravity ノードにはそれ自体の軸システムを持っていないため、 (Gravity という名前の)ヌルオブジェクトを使用して、ノードの位置と回転をコントロールし ます。Gravity ヌルオブジェクトの正の Z 軸の方向が、重力の位置をコントロールします。こ の軸は現在、下向きになっているため、重力フィールドは下向きとなり、現実世界と同じように、 パーティクルを床へと押し当てます。 パーティクルの軌跡をさらに弓状にしたい場合は、マップ変換ノードを使用して、パーティク ルと平面との距離に応じて、パーティクルあたりの重力の強度を調節するようにします。ただ し、このチュートリアルでは、軌跡が線状であっても問題ありません。必要なのはパーティク ルの Y 位置を知ることで、これさえあればパーティクルが床を突き抜けることがないためです。 これからいくつかの手順でこの設定を行います。 XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP イニシエー タ -> PPass を選択します。 これにより新規の PPass ノードが作成されます。このチュートリアルで既に、PPass ノードが 特定グループにあるパーティクルを出力することを説明しました。ここでは PPass ノードは、 グループ 1 にある各パーティクルの現在の位置をベクトルで出力します。 属性マネージャで、PPass ノードのパラメータページが表示されていることを確認してくだ さい。 Thinking Particles 設定ダイアログで、グループ 1 の名前をドラッグし、属性マネージャの グループボックスにドロップします。 XPresso 編集のコンテクストメニューで 新規ノード -> Thinking Particles -> TP ヘルパー -> PGetData を選択し、ノードの以降の長さを設定しなおします。 134 チュートリアル THINKING PARTICLES PGetData ノードの出力メニューより位置を選択します。 XPresso 編集のコンテクストメニューで、新規ノード -> XPresso -> 変換 -> ベクトル -> 実数 を選択します。 PPass ノードが出力する、これらのベクトルは、ベクトル -> 実数ノード に渡されます。このノー ドでは、各ベクトルを X、Y、Z の位置の値で分離します。それから、Y 値を使用して各パーティ クルの平面からの距離を確認し、パーティクルが平面を突き抜けることがないようにします。 PGetData ノードの位置ポートを、ベクトル -> 実数ノード の入力ポートに接続します。 新規の PPass ノードのグループ 1 ポートを、PGetData ノードのパーティクルポートに接続し ます。 PPass ノードと PGetData ノードを使用 して、グループ 1 にある各パーティクル の位置をベクトルで出力します。続い て、これらのベクトルを ベクトル -> 実 数 ノードに渡して、それぞれ個別の位 置情報を分離します オブジェクトマネージャで、平面の名前をドラッグして、XPresso 編集にドロップします。 平面オブジェクトのためのノードが作成されます。 XPresso 編集で、平面ノードの出力メニューから 座標 -> 絶対位置 -> 絶対位置 .Y を選択し ます。 平面オブジェクトは現在、グローバルの XZ 平面上に、Y が 0 の座標に置かれた状態となって います。パーティクルの効果を柔軟なものに保っておくため、これを構築することで、平面が 上または下に動いても、問題なく働くようになります。このために、平面の Y 位置の出力にグ ローバル座標システムを使用しているわけです。 XPresso 編集のコンテクストメニューで、新規ノード -> XPresso -> 計算 -> 計算を選択しま す。 チュートリアル 135 THINKING PARTICLES 属性マネージャのノードの属性ページで、データタイプを実数に、演算を加算にそれぞれ設定 します。 パラメータページで、入力[2]を 10 に設定します。 計算:加算ノード を経由して Y 位置に 10 を追加することで、パーティクルが停止させられる 高さを定義します。この時点では、これは単なる値であり、パーティクルは停止しません。こ れを実現するには、さらにいくつかのノードが必要になります。 XPresso 編集で、平面ノードの絶対位置 .Y ポートを、新規の計算:加算ノード の上の入力ポー トに接続します。 計算:加算ノードを使って、平面の Y 位置に 10 単位を追加することで、平面 の上でパーティクルが止められる位置を 定義します。後で、この高さより下に 来たパーティクルを止めるようにして、 パーティクルが平面を突き抜けることの ないようにします XPresso 編集のコンテクストメニューで、新規ノード -> XPresso -> 論理 -> 比較 を選択し ます。 属性マネージャのノードの属性ページで、データタイプを 実数 に、比較演算子を < にそれ ぞれ設定します。 考えとしては、グループ 1 にあるパーティクルが、平面より 10 単位未満にあった場合、グルー プ 2 に移されるというものです。とりあえずはどうなるか見てみましょう。後で、この変更を ビューで直接見ることができます。グループ 2 に属するパーティクルは赤になります。これは 先程グループ 2 の設定で指定した色です。 XPresso 編集で、ベクトル -> 実数 ノードの Y ポートを、比較ノードの入力 1 ポートに接続し ます。 計算:加算ノードの出力ポートを比較ノードの入力 2 ポートに接続します。 136 チュートリアル THINKING PARTICLES XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP スタンダー ド -> PGroup を選択します。 属性マネージャで、パラメータページが表示されていることを確認してください。 Thinking Particles 設定ダイアログで、グループ 2 の名前をドラッグし、属性マネージャの PGroup ボックスにドロップします。 PGroup ノードのグループ 2 ポートを PPass ノードのグループ 1 ポートに接続します。 XPresso 編集で、PGroup ノードの入力メニューからオンを選択します。 PGroup ノードのオンポートを比較ノードの出力ポートに接続します。 グループ 1 にあるパーティクルは、平 面の上から 10 単位未満の距離になると、 グループ 2 に移されます XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP イニシエー タ -> PPassAB を選択します。 これから先は、2 つのグループにあるパーティクルの位置を比較します。手順がかなり多くな ります。 属性マネージャで、パラメータページが表示されていることを確認してください。 Thinking Particles 設定ダイアログで、グループ 1 の名前をドラッグし、属性マネージャの グループ A ボックスにドロップします。 Thinking Particles 設定ダイアログで、グループ 2 の名前をドラッグし、属性マネージャの グループ B ボックスにドロップします。 2 つのグループを属性マネージャにド ロップします。これにより比較ができる ようになります XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP ヘルパー -> PGetData を選択します。 グループ 1 パーティクルに使用する、PGetData ノードが作成されます。 PGetData ノードの出力メニューより 位置 を選択します。 チュートリアル 137 THINKING PARTICLES コピー&ペーストで、PGetData ノードをもう 1 つ作成します。 これはグループ 2 のパーティクル用です。 PPassAB ノードの上の出力ポートを、いずれか 1 つの新規 PGetData ノードのパーティクルポー トに接続します。 PPassAB ノードの下の出力ポートを、残りの新規 PGetData ノードのパーティクルポートに接 続します。 XPresso 編集のコンテクストメニューから、新規ノード -> XPresso -> 計算 -> 計算を選択しま す。 属性マネージャのノードの属性ページで、データタイプを実数に、演算を減算にそれぞれ設 定します。 XPresso 編集で、計算:減算ノードの上部入力ポートを、いずれか 1 つの新規 PGetData ノー ドの位置ポートに接続します。 計算:減算ノードの下部入力ポードを、残りの新規 PGetData ノードの位置ポートに接続し ます。 PPassAB ノードを援用して、グループ 1 とグループ 2 にあるパーティクルの位置 を比較します PGetData ノードを使用して、パーティクルの位置を出力する方法については、既に説明しま した。ここでは、2 つの PGetData ノードを PPassAB ノードと組み合わせることで、2 つのパー ティクルグループにあるパーティクルの位置を出力します。計算:減算ノードでは、これらの 値を差し引くことで、グループ 1 のパーティクルとグループ 2 にあるパーティクルの間の距離ベ クトルを計算します。 XPresso 編集のコンテクストメニューで、新規ノード -> XPresso -> 論理 -> 比較 を選択します。 新規の比較ノードが作成されます。 属性マネージャのノードの属性ページで、データタイプを実数に、比較演算子を < にそれぞ れ設定します。 パラメータページで、入力[2]を 2 に設定します。 XPresso 編集で、計算:減算ノードの出力ポートを、新規の比較ノードの入力 1 ポートに接 続します。 XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP スタンダー ド -> PGroup を選択します。 属性マネージャで、パラメータページが表示されていることを確認してください。 138 チュートリアル THINKING PARTICLES Thinking Particles 設定ダイアログで、グループ 2 の名前をドラッグし、属性マネージャの PGroup ボックスにドロップします。 新規 PGroup ノードのグループ 2 ポートを、PPassAB ノードの(上の)グループ 1 ポートに 接続します。 XPresso 編集で、新規 PGroup ノードの入力メニューよりオンを選択します。 新規 PGroup ノードのオンポートを、新規の比較ノードの出力ポートに接続します。 グループ 2 のパーティクルとの距離が 2 単位未満であるグループ 1 のパーティ クルは、グループ 2 に移されます 原則としては、グループの最初の変更と同じことがここでも起こります。ただし、今回はグルー プ 1 パーティクルは、 (平面ではなく)グループ 2 のパーティクルとの距離が 2 単位未満になっ た場合に、グループ 1 からグループ 2 へと移されます。 再び、比較ノードを使って距離を確認します。この場合は、計算:減算ノードを比較ノードに 接続することで、距離ベクトルは自動で浮動に変換されます。ベクトルは自動で、その長さま で減らされます。この長さ(グループ 1 パーティクルとグループ 2 パーティクルとの距離)が 2 単位未満になると、グループ 1 のパーティクルはグループ 2 に移されます。つまり、平面に既 にパーティクルがある場合、その上に、それ以降にやってくるパーティクルが重なるということ です。 ただし、そのようなことはまだ起こりません。というのも、平面に最初に触れるパーティクル を止めるように、まだしていないからです。 XPresso 編集のコンテクストメニューから、新規ノード -> Thinking Particles -> TP イニシエー タ -> PPass を選択します。 属性マネージャで、パラメータページが表示されていることを確認してください。 Thinking Particles 設定ダイアログで、グループ 2 の名前をドラッグし、属性マネージャの グループボックスにドロップします。 XPresso 編集のコンテクストメニューで、新規ノード -> XPresso -> 一般 -> 定数 を選択し ます。 属性マネージャのノードの属性ページで、データタイプをベクトルに設定します。 チュートリアル 139 THINKING PARTICLES XPresso 編集のコンテクストメニューで、新規ノード -> Thinking Particles -> TP スタンダー ド -> PSetData を選択します。 PSetData ノードの入力メニューより速度を選択します。 PSetData ノードの速度ポートを、定数ノードのベクトルポートに接続します。 PSetData ノードのパーティクルポートを、新規 PPass ノードのグループ 2 ポートに接続し ます。 PSetData ノードを使って、平面や他の パーティクルと衝突するノードをすべて 停止します アニメーションツールバーで、再生ボタンをクリックします。 PSetData ノードでは、グループ 2 に属するパーティクルすべての速度を(0,0,0)に設定し、こ れらのパーティクルが即座に止まるようにします。アニメーションを再生すると、平面に到達し た最初のパーティクルはそのまま平面にとどまり(平面との距離は 10 単位未満)、それ以降に 到達したパーティクルは、既に到達しているパーティクルの上に重なっていきます(グループ 2 のパーティクルとの距離が 10 単位未満)。 2 つ目の PStorm ノードを追加して、そのパーティクルを発生した時点でグループ 1 に所属する ようにしてみてください。PStorm ノードがいくつあっても、パーティクルグループはそのパーティ クルを含むことができます。 まとめ 高度なパーティクル効果を作成するには、複数のパーティクルグループを使い、それぞれのパー ティクルグループに固有のノードを渡すことで、それぞれ個別に扱う必要があります。元とな る PStorm ノードが同一であっても、あるいは異なっていても、それとは関係なく、グループ 間でのパーティクルの移動が可能です。 索引 索引 137 THINKING PARTICLES アルファベット あ PAge 17 PAlignment 37 PBlurp 75 PBorn 29 PBubble 54 PChronometer 70 PDeflector 47 PDie 44 PDraw 80 PFragment 25 PFreeze 62 PFriction 51 PGetData 66 PGravity 58 PGroup 39, 67 PLight 18 PMass 41 PMatterWaves 82 PMotionInheriance 56 PPass 15 PPassAB 16 PPositionFollow 50 PRepulse&Bounce 64 PRolling 45 PScale 42 PSetData 31 Pshape 33 PSize 40 PSpin 34 PSpinConvert 66 PStorm 21 PSurfacePosition 71 PTimer 69 PVelocity 53 PVelocityConvert 68 PVolumePosition 73 PWind 60 TP イニシエータグループ 15 TP コンディショングループ 17 TP ジェネレータグループ 21 TP スタンダードグループ 31 TP ダイナミックグループ 47 TP ヘルパーグループ 66 XPresso ノードと Thinking Particles 15 一般 タブ設定 7 インストール 1 動き パーティクルに影響するオブジェクトの動き 56 エミッタ 24, 26 PStorm とエミッタ 21 大きさ パーティクルの 40 オブジェクト オブジェクトをパーティクルとして使用 10‒ 11 パーティクルジオメトリ 10‒11 パーティクルに影響するオブジェクトの動き 56 パーティクルを放出 71 ビューに表示されるパーティクルオブジェク ト 8 か 回転 パーティクルに影響するオブジェクトの回転 56 パーティクルの 34 パーティクルの回転、設定 66 風 風とパーティクル 60 強制適用 グローバル設定 8 グループ. パーティクルグループ 参照 PPass を使って渡す 15 グループ間でパーティクルを移動 67 パーティクル数 8 パーティクルを割り当てる 39 グローバル 表示設定を強制適用 8 形状 パーティクルの 33 さ サーフェス パーティクルを放出 71 作成 パーティクルグループ 9‒11 サポート 2 質量 パーティクルの質量 41 重力 ノード 58 パーティクルと重力 58 寿命 パーティクルの 17 消去 パーティクルを 44 衝突 パーティクル間の 64 パーティクルとポリゴンの 47 消滅 44 シリアル番号 正式な 1 新規 パーティクルグループ 9‒11 振動 パーティクルの 54 スケール パーティクルの 42 ストップウォッチ 70 スローモーション 62 正式なシリアル番号 1 設定 Thinking Particles 7 一般タブ 7 チャンネルタブ 10 パーティクルグループ 9 速度 パーティクルの 53, 68 た タイプ パーティクル、表示 8 タイマー 69 断片 パーティクルの 25 チャンネル 設定タブ 10 ツリー パーティクル数 8 データ パーティクルのデータ、アクセス 66 テクニカルサポート 2 凍結 パーティクルの 62 トレーニング 2 138 索引 な ネットワークでのレンダリング 11 ノード 15‒92 は パーティクル エミッタ 21, 26, 30 大きさ 40 オブジェクト、ビューに表示 8 オブジェクトに影響を受ける 56 オブジェクトのサーフェスから放出 71 回転 34 回転、設定 66 風 60 グループ 15 グループ間の移動 67 グループに割り当てる 39 形状 33 質量 41 重力 58 寿命 17 消滅 44 新規グループの作成 9 振動 54 スケール 42 スローモーション 62 生成 23 速度 53, 68 断片化 25 データにアクセス 66 パーティクル同士の衝突 64 パーティクルとライト 18 パーティクルのタイプ、表示 8 配置 37 パラメータ、PSetData で設定 31 ポリゴンとの衝突 47 摩擦 51 目標位置 51 ロールする 45 パーティクルグループ 9 ツリー 8 パーティクル数 8 割り当てる 39 パーティクルジオメトリオブジェクト 10 ジオメトリオブジェクト 10 配置 パーティクルの 37 THINKING PARTICLES パラメータ パーティクルのパラメータ、PSetData で設 定 31 表示 この設定を強制適用する 8 パーティクルによる表示タイプ 8 複数台マシンでの使用 iii 方向 パーティクルの 37 ポリゴン パーティクルとの衝突 47 ま 摩擦 49 目標 位置、パーティクル 51 や ユーザー登録 1 歪める 速さに応じたパーティクルの歪み 45 ら ライト パーティクルとライトを使用する 18 レンダリング ネットワークでの 11 ロール パーティクルの 45 わ 割り当てる パーティクルをグループに 39