FC2ブログ

Entries

cocos2d パーティクルデザイナを使ってみた

iPhone 2D ゲームライブラリ cocos2d のデモプロジェクト内で、一番自分が興味を持ったのは、パーティクルでした。

例えば、みやちかんたろうの大冒険だと、ちかん君のヒゲの効果とかにこのパーティクルを使えば、すごくかっこいいヒゲカッターが実現できたと思うし、ヒゲがあたった時なんかもすごくかっこよくなるはずです。

雨や雪なんかもふらせるようですし、もう、期待は膨らむいっぽうです。

ということで、cocos2d プログラミングガイド「パーティクル」に出てきた、パーティクルデザイナを使ってみようと思います。

ダウンロード
まずは、パーティクルデザイナのウェブサイトへアクセスします。
201302180001_s.png

さすがにおしゃれですね。
右下に、Free Download というのがあるので、迷わずクリック。

201302180002.png
ダウンロードされて展開されました。

ParticleEmitterDemo っていうのは、Xcode の プロジェクトみたいです。後ほど、Xcode で開いてみたいと思います。

起動
ParticleDesigner.app をダブルタップして起動してみましょう。
201302180003.png

なんかすごいのが起動した。

Unregistered っておもいっきり書いてありますね。。。プログラミングガイドによると、登録しないと保存ができないらしいです。

後ろの一覧をポチポチすると、それぞれのパーティクルが手前の iPhone に表示されます。いや、ワクワクします。

Mega Jump とかみたいなのが、簡単に作れちゃいそうですね。っていうか、これを使ってるんでしょうね。(未確認)

すげー、下の方にスクロールしてみたけど、めちゃくちゃいっぱいある。なんだこれは。世の中には知らないことがまだいっぱいある。まだ死ねない。

買う、絶対買う。

201302180004.png
と思ったけど、1340円かぁ・・・。2011年頃の記事には7.9ドルって書いてあったのに・・・。円高!?衝動買いするにはちょっぴり高価ですね。

ということで購入前に、機能を調べてみることにします。

なんだかよくわかりませんが、右上の 「Emitter Config」っていうところを押してみます。

201302180005.png

ポチッとな。


201302180006.png
設定画面らしきものが出てきました。

きっとこのパラメータをいじると、いろんなパーティクルになるのでしょう。

ものはためし、いっこずつ、いじってみます。基にするのは、現在たまたま表示されている「water」にしたいと思います。


Max Particles(最大粒子)

パーティクルの最大数を制御するようです。

1000だとこれくらい。

201302180007.png


100だとこれくらい。

201302180008.png

ちなみに実際は、粒子が動いててとても綺麗ですから。ぜひともダウンロードしてみてくださいね。


Lifespan(生存期間)とLifespan Variance(生存期間のゆらぎ)
パーティクルの生存期間を指定するようです。Variance は分散って意味ですが、「ゆらぎ」っていったほうがぴったりくるような気がします。

XX Variance っていうのは、XX で設定した値からのゆらぎ、つまり、XX の値が 1 で Variance が 0.5 だったとしたら、XX は 1 〜 1.5 の範囲でゆらぐんだと思います。いや、0.5〜1.5かな?

その揺らぎ方は、Variance っていうくらいだから平方偏差に従うんでしょうかね。

まずわかりやすいように、Lifespan Variance を 0 にしてみました。

201302190001.png

ゆらぎがなくなったので、すべてのパーティクルが同じ生存期間で消えてしまうので、丸く見えるようになりました。この時の Lifespan の値は、0.461 です。

Lifespan の値を大きくすると、

201302190002.png

パーティクルの密度が低くなって、縦長になりました。存在するパーティクルの数は、Max Particles で指定したパーティクルの数で、生存期間が短いと、消えては発生するプロセスが短いスパンで行われるため、パーティクルの密度が高くなりますが、生存期間が長いと、消えるまでの時間が長くなり、発生点からより遠いところにいくまで消えないため、パーティクルの密度が低くなります。

ですので、高い密度で長いパーティクルを作りたい場合は、Max Particles の数を大きくし、Lifespan を大きくすればいいということですね。


開始サイズ(Start Size)とゆらぎ(Start Size Variance)
終了サイズ(Finish Size)とゆらぎ(Finish Size Variance)
パーティクルが発生したときのサイズと消えるときのサイズとそのゆらぎを指定するようです。

201302190003.png

上の画像は、
Start Size : 25
Start Size Variance : 0
Finish Size : 0
Finish Size Variance : 0

を指定した場合のパーティクルです。大きなパーティクルが最後にはとても小さくなって消えていく効果が作れます。

開始と終了の値を逆にしてみると、
Start Size : 0
Start Size Variance : 0
Finish Size : 25
Finish Size Variance : 0

201302190004.png

小さかったパーティクルが消滅の時は大きくなっているという効果が得られます。


放出角度(Particle Emit Angle)とゆらぎ(Particle Emit Angle Variance)
パーティクルが放出される際の角度を指定します。0 を指定すると、

201302190005.png

真右に向かって放出されます。Variance には 0 を指定しています。

次に、120 を指定してみると、

201302190006.png

左斜め上に放出されます。右から始まって、反時計回りに360まで指定できるようです。

次に、Variance に 90 を指定してみます。(見やすいように、Particle のサイズを調節しました。)

201302190007.png

上下に90度パーティクルが広がりました。 ±90度ゆらいでます。


回転開始(Rotation Start)とゆらぎ(Rotation Start Variance)
回転終了(Rotation End)とゆらぎ(Rotation End Variance)
これは、パーティクルの回転を指定するようです。

今使っているパーティクルは 丸 なので、回転されてもさっぱりわかりませんので、星の奴に変えてみました。
201302190008.png

201302190009.png

くるくる回ってます。静止画では伝わらないと思いますが・・・。


背景色(Background Color)
文字通り、背景色を変更します。特筆すべきことはありませぬ。


放出種別(Emit Type):重力(Gravity)
重力を表した動きでございます。

そうそう、そういえば昨日、リンゴの木を見ていたら、リンゴが木からぽとりと落ちるのを見ました。

リンゴが地面に落ちた時、リンゴがぱかりと2つに割れて、中からリンゴ太郎が出てきました。

その時ふと思ったのです。この男の子は、重力なんじゃないかって。

期間(Duration)
パーティクルを放出する期間です。-1 を指定すると永久に放出されるようです。プログラミングガイドの kCCParticleDurationInfinity が -1 なのでしょう。0.1 とかを指定すると、一瞬で放出が止まってしまいます。

静止画じゃ無理があるので、実際にやってみてください。


重力設定(Gravity Configuration)
Emitter Type を重力にした場合の設定です。

速さ(Speed)とゆらぎ(Speed Variance)
放出速度を指定するようです。50 を指定すると、こんな感じです。

201302190010.png

放出する際の速度が遅いため、重力に引っ張られています。自由落下で初速度を横向きにした場合の諸速度が小さい時をイメージすると分かりやすいかもしれません。

速度を大きくしてみると・・・

201302190011.png

300 に設定してみました。かなり広がりました。初速度が大きいので、その分横に広がります。


重力X(Gravity X)と重力Y(Gravity Y)

これは重力の向きですね。地球では重力は上から下へ向かっていますが、このデザイナでは重力の向きを操ることができるようです。

X:1000、Y:1000 を指定してみました。

201302190012.png

重力が、左下から右上の向きになりました。メテオチックですね。

放出加速度(Radial Acceleration)とゆらぎ(Variance)
放出の際のパーティクルの加速度を指定するようです。負の値の場合は減速するようです。

201302190013.png

-250 を指定してみました。確かに減速しています。


接線方向加速度(Tangential Acceleration)とゆらぎ(Variance)
これは接線方向の加速度を指定するようです。指定すると回転しているようにみえます。

201302200001.png

上記は、Tangential Acceleration を 1000、Gravity を両方 0 に設定した時です。

静止画では伝わりづらいですが、左回りにくるくる回りながら外向きに放出されています。

以上で、Gravity の設定は終わりです。


放出種別(Emit Type):半径(Radial)
Radial は直訳すると半径という意味です。
201302200002.png

Max Radius で指定した半径からパーティクルが内側に向かって放出されるようです。

最大半径(Max Radius)とゆらぎ(Max Radius Variance)
最小半径(Min Radius)
最大半径は、パーティクルを内向きに放出する開始地点の中心からの距離です。大きくすると、単純に円が大きくなります。小さくすると小さくなります。

最小半径は、パーティクルの到達地点の中心からの距離です。これを 0 以上に指定すると、ドーナツのようになります。最大半径から内向きに放出されて、最小半径で消滅するからです。

201302200003.png


角度毎秒(Deg. Per Second)とゆらぎ(Deg. Per Second Variance)
一秒間に回転する角度を指定するようです。

中心に向かって回転しながらパーティクルが進みます。

201302200004.png

上記は、Deg. Per Second を 100 に指定してみました。左回転をしながら中心に吸い込まれていっています。

以上で、Radius の設定は終わりです。


あとは、場所とか色とか、わかりやすい設定値ばっかりですね。

作ってみて実際に Xcode 上で動かしてみたいんですが、購入しないと保存できません。。

おさいふと相談してみます。


スポンサード リンク

コメント

コメントの投稿

コメントの投稿

管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://miyachikantaro.blog.fc2.com/tb.php/26-51ba555e
この記事にトラックバックする(FC2ブログユーザー)

Appendix

出演ゲーム

みやちかんたろうの大冒険

↑インストールはこちらから
予告編

21面デモ

ステージ作成

検索フォーム

訪問者

Apple製品紹介

Apple MacBook Air 1.6GHz 13.3インチ MB003J/A

中古価格
¥59,800から
(2013/1/24 06:45時点)

QRコード

QR

メールフォーム

名前:
メール:
件名:
本文:

Extra

プロフィール

みやちかんたろう

Author:みやちかんたろう
種別:きいろいねこ
年齢:10歳
性別:オス
趣味:昆虫採集
twitter:@gatsupport

※このサイトはリンクフリーです。ご自由にリンクしてください。相互リンクもじゃんじゃん募集中です!!

最新記事

最新コメント

最新トラックバック

月別アーカイブ