今回はSpriteKitの4回目として、とりあえずこの話題もいったんまとめておきたいと考えています。SpriteKitの代表的な機能の中でまだ取り上げていなかったのは、前回の最後に予告したパーティクルエミッターです。この語の文字どおりの意味は「粒子を放射するもの」ということです。実際に動かしてみれば、確かにそういうものだと納得できる効果を発揮してくれるでしょう。
そのパーティクルエミッターと、これまでに紹介してきたSpriteKitの機能を見比べてみるとだいぶ趣が違うと思われるかもしれませんが、実はそうでもないのです。パーティクルエミッターは、SpriteKitの中の1つのノードとして扱えるようになっています。いったん作成してしまえば、そのあとの扱いは通常のスプライトとあまり変わりません。
今回は、2種類のパーティクルエミッターを使ってみることにしました。1つはどちらかというと静的なもので画面にずっと雨を降らせ続けます。もう1つは、ユーザーが画面にタッチした位置に火花が飛び散るような効果を表示するものです。そのまま指を動かすと火花の中心も移動し、画面から指を離せば火花は止まります。こんな劇的な効果も、SpriteKitを使えばあっけないほど簡単に実現できるのです。
パーティクルファイルを作成する
SpriteKitでパーティクルエミッターを利用する際には、その細かな設定を記録したパーティクルファイルを使うのが普通です。「普通」と書いたのは、それが必須ではないからです。ファイルを使わない場合には、パーティクルの性格を決めるパラメータを、プログラムで1つずつ設定していく必要があります。それでいいではないかと思われるかもしれませんが、その設定項目は数十個にもなります。パーティクルの設定にかなり慣れていて、パラメータの数字を見るとその効果が頭の中で想像できる人なら、それでもいいでしょう。そうでない人は、あちこちの設定をいろいろいじっても思ったような効果が得られず、途中で嫌になってしまうのがオチかもしれません。
そこで、今回は素直にパーティクルファイルを利用することにします。と言っても、それをどうやって作るかが問題です。実はXcodeを使えば、専用のテンプレートを選ぶだけで簡単にパーティクルファイルを作成することができます。
その際のテンプレートとしては、あらかじめ8種類が用意されています。今回はその中から、「Rain」と「Spark」の2種類を選んで、それぞれ別のパーティクルファイルとして生成しました。Xcodeが使える環境の人は、ほかのテンプレートを選んで自分で作ってみるのもいいでしょう。Xcodeが使えない人は、このサイトの最後にダウンロードリンクを張りましたので、パーティクルファイル(それぞれ「PGRain.sks」と「PGSpark.sks」という名前です)をダウンロードしてプレイグラウンドに追加してください。
ちなみにXcodeを使う場合には、いったん生成したパーティクルファイルの内容をその場で編集し、自由にカスタマイズすることも可能です。ただし今回は、パラメータは何も変更せず、デフォルトのまま使うことにします。
実は、パーティクルファイルのパラメータには「Texture」という項目があり、小さな画像ファイルが指定してあります。これは、個々のパーティクルの形状を表す画像です。今回作成した2種類のパーティクルファイルは、いずれも「spark.png」というテクスチャーを参照しています。これは周囲がボケた円形のテクスチャーです。そのファイルも合わせてプレイグラウンドに追加しておいてください。
この連載の記事
- 第100回 SceneKitの物理現象シミュレーションとアニメーションをARKitに持ち込む
- 第99回 「物理学体」と「物理学場」を設定して物理現象をシミュレーション
- 第98回 SceneKitのノードに動きを加えるプログラム
- 第97回 いろいろな形のノードをシーンの中に配置する
- 第96回 SceneKitの基礎シーンビュー、シーン、ノードを理解する
- 第95回 現実世界の床にボールや自動車のモデルを配置する
- 第94回 ARKitを使って非現実世界との融合に備える
- 第93回 ARKitが使えるiPadを識別するプログラム
- 第92回 Swift Playgrounds 2.1での問題点をまとめて解消する
- 第91回 iPadの内蔵カメラで撮影した写真を認識するプログラム
- この連載の一覧へ