Edited at

SpriteKitで使用できるパーティクルのパラメータ一覧

More than 5 years have passed since last update.

iOS7から使用できるParticle Emitter Editorが

SpriteKitで使えるパーティクルをXcodeで確認しながら簡単に作れそうで、

便利そうだったので今のうちにまとめておく。

とりあえず、メモ程度に。

(気が向いたら、画像とかも使って書こうかな^^;

これを書いてる環境はXcode5.1.1なので、

Xcodeのバージョンが変わると、以下の表記も変わるかもしれないです。


パーティクルファイルの生成とParticleEmitterEditorの表示

パーティクル用のファイルは

「NewFile」>「Resource」>「SpriteKitParticleFile」>好きなテンプレート

これで「~.sks」というパーティクル用のファイルが作成される。

このパーティクル用のファイルを選択し、

Xcode右側に出てくる「Utilities」を開いて、

立方体みたいなボタン(?)を選択するとインスペクタが表示される。


Emitter Node


Background

シュミレータの背景色



PartuckeTexture

パーティクルで使用するテクスチャ(プロジェクト内に含まれている画像ファイルを選択可能)

SKEmitterNode.particleTexture



Particles

パーティクル発生パラメータ


Birthrate:パーティクルが作成される速度

SKEmitterNode.particleBirtshRate

Maximum:一度に表示可能な最大数(0の場合は、制限なし)

SKEmitterNode.numParticlesToEmit




Lifetime

パーティクルの寿命


Start:パーティクルを生成してから消えるまでの時間

SKEmitterNode.particleLifetime

Range:消えるまでの乱数範囲

SKEmitterNode.particleLifetimeRange




PositionRange

パーティクルが生成される座標の範囲

SKEmitterNode.particlePositionRange


X:x方向の範囲

Y:y方向の範囲



Angle

パーティクルが放射される向き(度)


Start:パーティクル作成時に放射される向き

SKEmitterNode.emissionAngle

Range:放射される向きの乱数範囲

SKEmitterNode.emissionAngleRange



Speed

パーティクルが放射されるスピード


Start:パーティクル作成時の放射スピード

SKEmitterNode.particleSpeed

Range:放射スピードの乱数範囲

SKEmitterNode.particleSpeedRange



Acceleration

パーティクルの加速値(重力係数など、すべてに一様に適用される)


X:x方向の加速

SKEmitterNode.xAcceleration

Y:y方向の加速

SKEmitterNode.yAcceleration




Alpha

パーティクルの透明度


Start:パーティクル作成時の透明度

SKEmitterNode.particleAlpha

Range:透明度の乱数範囲

SKEmitterNode.particleAlphaRange

Speed:透明度に加算されていく値

SKEmitterNode.particleAlphaSpeed




Scale

パーティクルの拡大率


Start:パーティクル作成時の拡大率

SKEmitterNode.particleScale

Range:拡大率の乱数範囲

SKEmitterNode.particleScaleRange

Speed:拡大率に加算されていく値

SKEmitterNode.particleScaleSpeed




Rotation

パーティクルの角度(度)


Start:パーティクル作成時の角度

SKEmitterNode.particleRotation

Range:角度の乱数範囲

SKEmitterNode.particleRotationRange

Speed:角度に加算されていく値

SKEmitterNode.particleRotationSpeed




ColorBlend

色の合成値


Factor:パーティクルの寿命までの「ColorRamp」の位置

SKEmitterNode.particleBlendFactor

Range:「Factor」の乱数範囲

SKEmitterNode.particleBlendFactorRange

Speed:色の合成値に加算されていく値

SKEmitterNode.particleBlendFactorSpeed




ColorRamp

色の度合い

パーティクル生成時に左端の色から開始し、

「ColorBlend」の「Factor」の割合まで色が変化する

バーをクリックで色を追加し、

色が追加された部分を下にドラッグすることで削除

SKEmitterNode.particleColorSequence



BlendMode

ブレンドモードの選択

SKEmitterNode.particleBlendMode



  • Alpha:透明度のみ

  • Add:色の加算(画像の黒い部分ほど、背景色が出る)

  • Subtract:色の減算(画像の白い部分ほど結果は黒くなる)

  • Multiply:色の乗算(一般的に暗くなる)

  • MultiplyX2:色の乗算(Multiplyよりも暗くなる)

  • Screen:スクリーン処理(一般的に明るくなる)

  • Replace:パーティクルの色のみを使用



表示時は以下のようなコードで表示ができる。


MyScene.m

NSString *path = [[NSBundle mainBundle] pathForResource:@"ファイル名" ofType:@"sks"];

SKEmitterNode *node = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
node.position = CGPointMake(x位置, y位置);
[self addChild:node];

※ソースコード上で呼び出す際のメソッドも追記

上記のほかにも、インスタンスから直接呼び出せるパラメータもあるので

それらは随時追記。

(この辺を使って、cocos2d-xで読み込めるファイルへのコンバータとか作ってみようかな・・・という妄想中。

参考:https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/xcode_guide-particle_emitter/xcode_guide-particle_emitter.pdf