ParticleDesignerの使い方について
はじめましての方はこれからよろしくお願いします。
こんな場末のブログではそういった方の方が多いと思いますが。
この記事は、cocos2d Advent Calendar 2011 4日目です。
Cocos2dは夏ごろに触ったきりなのですが、そういえばその際にいまひとつ
分からないことがあったなぁと思ったのでそちらの解説を書こうかと。
前日 : cocos2d Advent Calendar 2011 -3日目 波紋のアニメーションやてみた。オッパイぷるるんもあるんだよ!
対象は、以前にも以下のエントリで紹介したParticleDesigner。
エフェクト制作後の組み込み方などもこちらのエントリを参考にしてください。
(ParticleDesignerを使ってみた - 自堕落なぺぇじ)
簡単にエフェクトなどをいじることは出来るのですが、エフェクトなどを
専門に使っている人でもなければ各種パラメータの意味など分かりません。
適当に触っていてもそれなりにいじれるのですが、
やはり「知っている」のと知らないのでは全く違いますので
簡単にそちらの解説をしていきたいと思います。
ParticleDesignerは有料ですが、1,000円もしないものに迷って
無料の出来が悪いアプリを探すよりはさっさと買った方が時間の節約になります。
※本エントリでは、以下の書籍を大きく参考にさせて頂きました。
こちらでは各パラメータをいじった結果、「どうなるか」が
フルカラーの図解付きで紹介もされています。 初心者の方におすすめです。
ParticleDesignerの各種パラメータ解説
取りあえず、適当にExplosionなんかを選択して「Emitter Config」を押すか
ダブルクリックでもして設定画面を呼び出しましょう。
Particle Configuration
左端の「Particle Configuration」から行きましょうか。項目名 | 意味 |
---|---|
Max Particles | 生成するパーティクルの総数。多すぎるとパフォーマンスに影響するので注意 |
Lifespan | 各パーティクルが表示されてから消滅するまでの時間間隔 |
Lifespan Variance | Lifespanのぶれ幅。この値分だけ±変化する |
Start Size | パーティクルが生成される際のサイズ |
Start Size Variance | StartSizeのぶれ幅 |
Finish Size | プロパティで言うendSize。 パーティクル消滅時のサイズ |
Finish Size Variance | FinishSizeのぶれ幅 |
Particle Emit Angle | パーティクルの移動角度。 |
Particle Emit Angle Variance | 角度のぶれ幅。両方に360などを指定すると、全方位に散ったり |
Rotation Start | パーティクル誕生時のテクスチャの回転角度。 「0」を入れてる場合が多い |
Rotation Start Variance | RotationStartのぶれ幅 |
Rotation End | バーティ来る消滅時のテクスチャの回転角度。こちらだけに値を入れることが多い |
Rotation End Variance | RotationEndのぶれ幅 |
Background Color
ここはいつもの三原色を指定することで、背景に対してエフェクトがマッチしているかを確認するだけですので省略。
パラメータは0〜1となっているため、
0〜255で表現している場合は255で割った数を指定しましょう。
Emitter Type
GravityまたはRadialを指定できる。指定したタイプで、直下にあるパラメータ指定エリアが変化する。
Gravityでは指定したポイントに重力が存在する形でエフェクトが行われて、
Radialではある点から放射状に広がるような形かな?
ちょっと調べてもいまいち情報が出てこないので、文献が欲しい。
duration
durationは、「パーティクルシステムとしての寿命」。
消滅させたくない場合はkCCParticleDurationInfinity(-1)を指定する。
Gravity Configuration
Emitter Typeで「Gravity」を選択した場合の設定項目項目名 | 意味 |
---|---|
Speed | パーティクルがエミッターから放出されたときの初期速度 |
Speed Variance | 速度のぶれ幅 |
Gravity x | 重力の存在する場所。CGPointのX値にあたる |
Gravity y | 重力の存在する場所。CGPointのY値にあたる |
Radial Acceleration | パーティクルの半径方向加速度 |
Radial Accl. Variance | 加速度のぶれ幅 |
Tangential Acceleration | パーティクルの接線加速度。放出された後の曲がり具合を指定する |
Tangential Accel. Variance | 接線加速度のぶれ幅 |
Radial Configuration
Emitter Typeで「Radial」を選択した場合の設定項目項目名 | 意味 |
---|---|
Max Radius | (多分)startRadiusにあたると思う。どこにも資料が無い。左記なら、誕生時のエミッターからの距離 |
Max Radius Variance | Max Radiusのぶれ幅 |
Min Radius | (多分)endRadiusにあたると思うけど、Varianceが無い |
Deg. Per Second | rotatePerSecondにあたると思う。1秒あたりのパーティクル回転角度 |
Deg. Per Second Variance | 上記のぶれ幅 |
Emitter Location
ちなみにEmitterって、エフェクトの開始位置とか中心オブジェクトみたいなもので理解しておけばよいかと。
項目名 | 意味 |
---|---|
Source Pos Y | エミッターの位置。CGPointのY値を指定 |
Variance | 上記のぶれ幅 |
Source Pos X | エミッターの位置。CGPointのX値を指定 |
Variance | 上記のぶれ幅 |
Particle Texture
特にグレースケールでないといけないわけじゃないですが、グレースケールにしていると色を反映させやすいですね。
通常のOpenGL用Textureのように2の倍数サイズの正方形であれば特に大きさの指定は。
ただし、大きすぎるとメモリを食うことになるので注意が必要。
Particle Color
色に関する指定。細かい項目については解説なんて必要ないと思うので大枠の部分だけ解説しておきます。
RedとかAlphaが何か、なんて不要ですよね。Alphaはちなみに透明度です。
項目名 | 意味 |
---|---|
Start | startColorに相当する。パーティクル誕生時の色 |
Start Variance | 色のぶれ幅。これによって虹色などを作り出す |
Finish | endColorに相当する。パーティクル消滅時の色 |
Finish Variance | 色のぶれ幅 |
Blend Function
背景画像とパーティクルの合成方法に関する設定。アルファ、加法混色、減法混色などがあります。
良く分からなければ、デフォルトのままGL_SRC_ALPHAを使っておけばよいかと。
項目名 | 意味 |
---|---|
Source | 元画像の色。デフォルトはGL_SRC_ALPHA |
Destination | 描画先画像(画面バッファ)の色。デフォルトはGL_ONE |
計算式や意味については、以下のサイトなどを参考にしてください。
もしくは自分でglBlendFunc関数について調べるとか。
私はこの辺専門じゃないんで全然分かりません。
◆ ブレンディング::計算式の設定
次のカレンダー
5日目、@Seasonsさんの記事はこちらになります。cocos2dで非同期画像読み込みを超絶簡単に実装するCCResourceAsyncLoaderの紹介