Maxのパーティクルシステム その2: jit.p.shiva jit.p.vishnu jit.gen jit.gl.multiple #max6 #maxmsp #jitter #cycling74

※編集中 スクリーンショット 2014-07-07 21.25.02

Rotate planeの追加

パーティクルに回転処理を加えたいという事で、前回調べた結果パーティクルを格納するmatrixに対して、rotate の値を管理するplaneを実装する必要がありました。 plane数を6にして、6番目の要素をrotateとする事にします。ただし、受け付けられるplaneがjit.p.shiva は 5か8 jit.p.vishnuが5と限られているため、拡張したmatrixを単純にjit.p.vishnuに突っ込めないです。そのためにはjit.matrixのplane数を調整するために jit.unpack / jit.pack を駆使して、分割したMatrixに対して処理を書く必要があります。

jit.p.shivaの初期化タイミングを取得する

回転の初期化をするのも問題がありました。初めは回転の初期化をするタイミングをLifeの値を見ることで、取得しようとしました。

jit.p.shivaでパーティクルが生まれた瞬間Lifeの値が0以外の数値に埋められるのですが、この値が何故かmatrix row 1 の pre  の要素も初期値が入れられてしまって、preのnowの要素を比較してパーティクルが生まれた瞬間を取得できません。(クソい)

解決方法としては、jit.p.vishnuに指定するアトリビュートであるlifeを、回転処理をするjit.genにも与えて、lifeが最大値の時を初期化タイミングと見なして、回転の初期化をするようにしました。 そうしてめでたくRotateの初期値にバラつきをもった状態ができるようになりました。

Maxのパーティクルシステム面倒くさすぎて、貧弱すぎじゃないかと思ったり・・・。 スクリーンショット 2014-07-07 21.03.03 加えて前回のパッチでは、パーティクルの描画オブジェクトである jit.gl.multiple に matrix row 1 (row 1 には、パーティクルの1フレーム前の状態が含まれている)も与えていたため、2重に描画してしまっていました。今回は、jit.scissors により row 1 を切って row 0 のみ渡しておりパフォーマンスがUPしました。といっても1000パーティクルでフレームレートが30fps程度でした。

NC帝國によるシンリャク君ロゴ

スクリーンショット 2014-07-07 21.11.16

いきいきナードコア感謝祭’14

スクリーンショット 2014-07-07 21.09.59 VJで参加させて頂いた いきいきナードコア感謝祭’14 ナードコアの開祖・神々のプレーを拝めて、非常に興奮しました。コバルト爆弾αΩなんかは、とてもナードコアに影響を受けているので、今後の活動を考える上でも良かった。VJ的には、カッカのアニメVJにアニメ的なエフェクトを載せてみようということで集中線や♡等を散らしました。今後もうちょっと演出を詰めていくとアニメ的な演出を解体・再構築したようなVJが出来そうで、個人的に面白くなりそうでした。