Help us understand the problem. What is going on with this article?

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

Raugh
iOS(Objective-Cが好き、Swiftも出来るがバージョンが変わるたびに文法が右往左往してるからなぁ・・・)の開発をしている。たまに、Cocos2d-XとUnityとかも? クライアント側大好きっこ。 サーバー何それおいしいの? ↑から、ちょっとサーバもできると便利よね~ と興味だけは出てきて挑戦? あ、興味だけなら、UnrealEngineとかも・・・
https://raugh.club
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした