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:パーティクルの色のみを使用
表示時は以下のようなコードで表示ができる。
NSString *path = [[NSBundle mainBundle] pathForResource:@"ファイル名" ofType:@"sks"];
SKEmitterNode *node = [NSKeyedUnarchiver unarchiveObjectWithFile:path];
node.position = CGPointMake(x位置, y位置);
[self addChild:node];
※ソースコード上で呼び出す際のメソッドも追記
上記のほかにも、インスタンスから直接呼び出せるパラメータもあるので
それらは随時追記。
(この辺を使って、cocos2d-xで読み込めるファイルへのコンバータとか作ってみようかな・・・という妄想中。