2014/01/24

SpriteKitのSKEmitterNodeを使ってliquidFunのパーティクルを水っぽく表現してみる

前回の記事「liquidFunとSpriteKitで流体を使う」でLiquidFunのパーティクルを使ってみました。

今回はそのパーティクルの見せる処理をちょっと変えてみます。

前回はパーティクルの表示に使っていたSKShapeNodeの代わりに、SKEmitterNodeというSpriteKitのパーティクルを出すノードがありますので、これを利用して、より水っぽく見せてみます。

SpriteKitパーティクルの生成

まず、パーティクルを作ります。

それには、File → New → File… からResource → SpriteKit Particle Fileを選択します。

続いて、作成するパーティクルのテンプレートを指定します。今回はSparkを選択。

ファイル名はwater.sksにして保存したあと、Project Navigatorからこのwater.sksを開くと、次のようなパーティクルエディタが起動します。

今回は右のパラメータを調整して、こんな風にしました。左にぼやっと見えているだけです。これだけだと非常に地味ですが、これを何個も生成するのでそれっぽく見えてきます。

あとは、前回パーティクル生成時にSKShapeNodeを使っていた個所を次のコードに書きかえるだけです。

SKEmitterNode* node = [NSKeyedUnarchiver unarchiveObjectWithFile:[NSBundle.mainBundle pathForResource:@"water" ofType:@"sks"]];

以上で、コンパイルするとSKEmitterNodeが使われて見ためが変わっているはずです。

例えば、前回のwaterは次のようになります。

また、前回のelasticは次のようになります。よりスライムっぽくてなんだか気持ちわるいですね。

おわりに

パーティクルのパラメータを変えることで、いろいろな見ためが表現できたりするみたいなので、いろいろ変えてみるとよいかもしれません。

また、今回のソースをGitHubに上げていますので、そちらも参照ください。

以上で、今回のliquidfunシリーズは一旦終了です。

関連リンク

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。