Hatena::ブログ(Diary)

自堕落なぺぇじ Twitter

2011-12-04

ParticleDesignerの使い方について

はじめましての方はこれからよろしくお願いします。

こんな場末のブログではそういった方の方が多いと思いますが。


この記事は、cocos2d Advent Calendar 2011 4日目です。

Cocos2dは夏ごろに触ったきりなのですが、そういえばその際にいまひとつ

分からないことがあったなぁと思ったのでそちらの解説を書こうかと。


前日 : cocos2d Advent Calendar 2011 -3日目 波紋のアニメーションやてみた。オッパイぷるるんもあるんだよ!

f:id:corrupt:20111201190325p:image

対象は、以前にも以下のエントリで紹介したParticleDesigner

エフェクト制作後の組み込み方などもこちらのエントリを参考にしてください。

(ParticleDesignerを使ってみた - 自堕落なぺぇじ)


簡単にエフェクトなどをいじることは出来るのですが、エフェクトなどを

専門に使っている人でもなければ各種パラメータの意味など分かりません。


適当に触っていてもそれなりにいじれるのですが、

やはり「知っている」のと知らないのでは全く違いますので

簡単にそちらの解説をしていきたいと思います。


ParticleDesignerは有料ですが、1,000円もしないものに迷って

無料の出来が悪いアプリを探すよりはさっさと買った方が時間の節約になります。


※本エントリでは、以下の書籍を大きく参考にさせて頂きました。

こちらでは各パラメータをいじった結果、「どうなるか」が

フルカラーの図解付きで紹介もされています。 初心者の方におすすめです。

cocos2d for iPhoneレッスンノート
加藤寛人 佐藤伸吾
ラトルズ
売り上げランキング: 44781


ParticleDesignerの各種パラメータ解説

f:id:corrupt:20111201105151p:image

取りあえず、適当にExplosionなんかを選択して「Emitter Config」を押すか

ダブルクリックでもして設定画面を呼び出しましょう。

f:id:corrupt:20111201105252p:image


Particle Configuration

左端の「Particle Configuration」から行きましょうか。

項目名意味
Max Particles生成するパーティクルの総数。多すぎるとパフォーマンスに影響するので注意
Lifespan各パーティクルが表示されてから消滅するまでの時間間隔
Lifespan VarianceLifespanのぶれ幅。この値分だけ±変化する
Start Sizeパーティクルが生成される際のサイズ
Start Size VarianceStartSizeのぶれ幅
Finish Sizeプロパティで言うendSize。 パーティクル消滅時のサイズ
Finish Size VarianceFinishSizeのぶれ幅
Particle Emit Angleパーティクルの移動角度。
Particle Emit Angle Variance角度のぶれ幅。両方に360などを指定すると、全方位に散ったり
Rotation Startパーティクル誕生時のテクスチャの回転角度。 「0」を入れてる場合が多い
Rotation Start VarianceRotationStartのぶれ幅
Rotation Endバーティ来る消滅時のテクスチャの回転角度。こちらだけに値を入れることが多い
Rotation End VarianceRotationEndのぶれ幅

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 VarianceMax Radiusのぶれ幅
Min Radius(多分)endRadiusにあたると思うけど、Varianceが無い
Deg. Per SecondrotatePerSecondにあたると思う。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はちなみに透明度です。

項目名意味
StartstartColorに相当する。パーティクル誕生時の色
Start Variance色のぶれ幅。これによって虹色などを作り出す
FinishendColorに相当する。パーティクル消滅時の色
Finish Variance色のぶれ幅

Blend Function

背景画像とパーティクルの合成方法に関する設定。

アルファ、加法混色、減法混色などがあります。

良く分からなければ、デフォルトのままGL_SRC_ALPHAを使っておけばよいかと。

項目名意味
Source元画像の色。デフォルトはGL_SRC_ALPHA
Destination描画先画像(画面バッファ)の色。デフォルトはGL_ONE

計算式や意味については、以下のサイトなどを参考にしてください。

もしくは自分でglBlendFunc関数について調べるとか。

私はこの辺専門じゃないんで全然分かりません。

ブレンディング::計算式の設定


次のカレンダー

5日目、@Seasonsさんの記事はこちらになります。

cocos2dで非同期画像読み込みを超絶簡単に実装するCCResourceAsyncLoaderの紹介

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/corrupt/20111204/1322927748
リンク元
Connection: close