はじめに
ARKitを勉強する上で、より表現の幅を広げるためにパーティクル・システムの使い方が必要だと思ったので、
今回はXcodeのインスペクタ設定ではなく、コードでの設定方法を調査しました。
ファイルの作成
パーティクル・システムのファイルを作成
XcodeでNewFile -> SceneKit Particle System Fileで.scnpファイルを新規に作成します。
テンプレートとしてbokeh、confetti、fire、rain、reactor、smoke、starが用意されているので、作成したいパーティクルに近いものを選択してパラメータを調整します。
今回はfireテンプレートを選択しました。

今回はviewDidLoad内に、新規で作成したSCNNodeにパーティクル・システムを設定しています。
(ship.scn内のオブジェクトは削除してあります。)

パーティクルの色
パーティクルの色を変更#AR #ARKit #iOS #Xcode pic.twitter.com/vnEhaB10o9
— TatsunoriMorita (@king_of_morita) 2019年1月3日
パーティクルの放出量
値が大きいほど放出される粒子の量が多くなる。

birthrate
パーティクルの放出量を変更#AR #ARKit #iOS #Xcode pic.twitter.com/OKp9Mp9HPN
— TatsunoriMorita (@king_of_morita) 2019年1月3日
パーティクルの全体形状
emitterShapeに放出したい形状を設定すると、パーティクルの全体形状がプレート型、ボックス型に出力できる。

emittershape
パーティクルの全体の形状を変更
— TatsunoriMorita (@king_of_morita) 2019年1月3日
(円筒)#AR #ARKit #iOS #Xcode pic.twitter.com/nveySbJ7po
パーティクルのサイズ
パーティクルサイズ変更
— TatsunoriMorita (@king_of_morita) 2019年1月3日
(デフォルトサイズ1)#AR #ARKit #iOS #Xcode pic.twitter.com/gdwQUFMErw
新規パーティクルの生成期間
デフォルト設定は1秒。0秒の場合すべてのパーティクルが瞬時に出現する。

新規パーティクルの生成時間変更
— TatsunoriMorita (@king_of_morita) 2019年1月3日
(5秒間隔)#AR #ARKit #iOS #Xcode pic.twitter.com/oSwMdTM1pR
パーティクルを生成しない時間
パーティクルを1秒間隔で生成しないように設定#AR #ARKit #iOS #Xcode pic.twitter.com/wpuxaSpKwj
— TatsunoriMorita (@king_of_morita) 2019年1月3日
パーティクルの表示期間
パーティクルが生成されてから、消えるまでの時間。デフォルトが1秒。

パーティクルのライフサイクル設定
— TatsunoriMorita (@king_of_morita) 2019年1月3日
粒子の生成から消滅までの時間を0.5秒に設定#AR #ARKit #iOS #Xcode pic.twitter.com/f7sMinJq4W
パーティクルの動作スピードを変更
デフォルト値1秒。値を大きくするとパーティクルの動きが早くなり。小さくすると動作が遅くなる。

パーティクルの動作スピードを0.1秒に設定#AR #ARKit #iOS #Xcode pic.twitter.com/9a0QebYCvA
— TatsunoriMorita (@king_of_morita) 2019年1月3日
パーティクルの引き伸ばし
移動方向に対してパーティクルを引き伸ばす。デフォルトは0。

パーティクルの引き伸ばし設定#AR #ARKit #iOS #Xcode pic.twitter.com/pITDpgNDpz
— TatsunoriMorita (@king_of_morita) 2019年1月3日
まとめ
他にもいろいろ設定はありますが、きりがないのでこのくらいにして、機会があれば別途調査したいと思います。
オブジェクトを配置しただけだと、視覚的にインパクトが欠ける場合や、アニメーションを加えることで表現の幅をもたせたい時に上手く使用できると武器になりそうです。