パーティクル?とは
指定したTextureを元に、GPUやCPUを使い粒子状のリアルタイムに変化する映像(パーティクル)をジェネレートする機能が、パーティクルエンジンです。
この機能を使うと映像メディアとは異なり、外部からセンサーなどでインタラクティブに変化するグラフィックをその場でリアルタイムに生成し、それらを他のメディアとコンポジットし、プロジェクターなどから照射することができます。
定型の動画や画像コンテンツと異なり、多数のパラメーターを操作し、GPUで生み出すデジタルグラフィックアートとも言えます。Modulo Kineticはこのパーティクルを使ったデジタルコンテンツの創造をKineticの機能として持ち、3D空間内にジェネレートすることができます。ジェネレートされたコンテンツは3Dカメラなどで切り取り、V-Nodeのリアル出力から出力することができます。
3DオブジェクトのMeshにパーティクルを作る
ここではパーティクルエンジンを使ったベーシックな例として3D空間内に置いたオブジェクトのメッシュにデフォルトのTextureによるパーティクルの作成をご紹介します。
パーティクルエンジンは3D空間で利用するため、3Dシーンのビューにメニューがあります。3Dシーンのタブ、ヒエラルキーの中でRootを右クリックするとParticlesystemが見つかります。このパーティクルシステムを追加し、3D空間にはあらかじめ、3Dオブジェクトを読み込んでおきます。
この例ではリアル空間に、3D空間にある彫像と同じものが存在し、この彫像に対してパーティクルがマップされるイメージで制作しています。
3Dシーンのヒエラルキーに追加したパーティクルシステムを右クリックするとCPU emitter、GPU emitter、Ribbon emitterが選択できます。ここではGPU emitterを選びます。
GPU emitterを追加すると、3Dビュー内に赤い帯状のパーティクルが表示されるのが分かります。表示されない場合は、GPU emitterを選択するとEditor内に表示されるGPUパーティクルのパラメーターでポジションを変更し、表示される位置へ移動します。
Meshポジションジェネレーター
GPU emitterを右クリックすると、さらにメニューが表示されます。このメニューリスト内からMeshポジションジェネレーターを選択します。追加したメッシュポジションジェネレーターを選択すると、エディター欄にパラメーター等が表示されます。Meshの欄に3D空間の彫像オブジェクトからMesh instanceをドラッグ&ドロップします。
GPUパーティクルエミッターパラメーター
パーティクルのパラメーターは数多くあり、これらパラメーターを操作してグラフィックデザインを行うことは、Notchに代表されるリアルタイムジェネレーティブコンテンツ制作のデザインワークになります。このパラメーター全てについての解説は困難なため、ここではいくつかのパラメーターを操作して発生する結果を参考にしていただければと思います。
エディターにおいてDisplay TabのPrimitiveをPointに変更、その下にあるパラメーターPoint sizeを3~4程度に変更します
タブをDisplayからGeneralに変えて、下記のパラメーターを操作します。
- Velocity Strength : 0.003
- Particle count : 50,000
- Emissin rate : 10,000
- Life : 3sec
Physics : Gravityパラメーター
Physicsタブ内にあるグラビティーのz方向への動きを与えます。0.3~0.4程度で風になびくような動きになります。
Display タブに移動し、カラーモードをパレットに変更すると単色からレインボーカラーに変化します。
Randomizeボタンを押すごとにカラーが変化し、好みの色に変更ができます。
カメラの追加 ( 2Dプレビューへの出力)
完成したパーティクルを実際の出力に映像として出力するには、3D空間にカメラを配置し、そのカメラをタイムラインにドラッグ&ドロップすることで、カメラのビューポイントを2Dプレビューにエンコードすることができます。
3DシーンにあるCameraタブを開いて、+キーでカメラを追加します。3Dビューを使ってカメラの位置調整をしたら、カメラをマウスでつかんで、タイムラインにドラッグします。
3Dカメラのポジションはレンダーサーフェースのポジションと一致させることで、3Dカメラのポイントオブビューはレンダーサーフェースを通してV-Nodeから出力することができます。