こんちにちはmorimori(@TatsunoriMorita)です。
ARの表現をより一層高めるために、パーティクル・システムを使用します。
今回はプログラムで設定を変更する方法をまとめました。
パーティクル・システムのファイルを作成
XcodeでNewFile -> SceneKit Particle System Fileで.scnpファイルを新規に作成します。
テンプレートとしてbokeh、confetti、fire、rain、reactor、smoke、starが用意されているので、作成したいパーティクルに近いものを選択してパラメータを調整します。
今回はfireテンプレートを選択しました。
今回はviewDidLoad内に、新規で作成したSCNNodeにパーティクル・システムを設定しています。
(ship.scn内のオブジェクトは削除してあります。)
パーティクルの色
particleColor - SCNParticleSystem | Apple Developer Documentation
パーティクルの色を変更#AR #ARKit #iOS #Xcode pic.twitter.com/vnEhaB10o9
— TatsunoriMorita (@king_of_morita) 2019年1月3日
パーティクルの放出量
値が大きいほど放出される粒子の量が多くなる。
birthRate - SCNParticleSystem | Apple Developer Documentation
パーティクルの放出量を変更#AR #ARKit #iOS #Xcode pic.twitter.com/OKp9Mp9HPN
— TatsunoriMorita (@king_of_morita) 2019年1月3日
パーティクルの全体形状
emitterShapeに放出したい形状を設定すると、パーティクルの全体形状がプレート型、ボックス型に出力できる。
emitterShape - SCNParticleSystem | Apple Developer Documentation
パーティクルの全体の形状を変更
— TatsunoriMorita (@king_of_morita) 2019年1月3日
(円筒)#AR #ARKit #iOS #Xcode pic.twitter.com/nveySbJ7po
パーティクルのサイズ
粒子のサイズを設定。デフォルト設定は1。
particleSize - SCNParticleSystem | Apple Developer Documentation
パーティクルサイズ変更
— TatsunoriMorita (@king_of_morita) 2019年1月3日
(デフォルトサイズ1)#AR #ARKit #iOS #Xcode pic.twitter.com/gdwQUFMErw
新規パーティクルの生成期間
デフォルト設定は1秒。0秒の場合すべてのパーティクルが瞬時に出現する。
emissionDuration - SCNParticleSystem | Apple Developer Documentation
新規パーティクルの生成時間変更
— TatsunoriMorita (@king_of_morita) 2019年1月3日
(5秒間隔)#AR #ARKit #iOS #Xcode pic.twitter.com/oSwMdTM1pR
パーティクルを生成しない時間
生成しない時間を設定する。
idleDuration - SCNParticleSystem | Apple Developer Documentation
パーティクルを1秒間隔で生成しないように設定#AR #ARKit #iOS #Xcode pic.twitter.com/wpuxaSpKwj
— TatsunoriMorita (@king_of_morita) 2019年1月3日
パーティクルの表示期間
パーティクルが生成されてから、消えるまでの時間。デフォルトが1秒。
particleLifeSpan - SCNParticleSystem | Apple Developer Documentation
パーティクルのライフサイクル設定
— TatsunoriMorita (@king_of_morita) 2019年1月3日
粒子の生成から消滅までの時間を0.5秒に設定#AR #ARKit #iOS #Xcode pic.twitter.com/f7sMinJq4W
パーティクルの動作スピードを変更
デフォルト値1秒。値を大きくするとパーティクルの動きが早くなり。小さくすると動作が遅くなる。
speedFactor - SCNParticleSystem | Apple Developer Documentation
パーティクルの動作スピードを0.1秒に設定#AR #ARKit #iOS #Xcode pic.twitter.com/9a0QebYCvA
— TatsunoriMorita (@king_of_morita) 2019年1月3日
パーティクルの引き伸ばし
移動方向に対してパーティクルを引き伸ばす。デフォルトは0。
stretchFactor - SCNParticleSystem | Apple Developer Documentation
パーティクルの引き伸ばし設定#AR #ARKit #iOS #Xcode pic.twitter.com/pITDpgNDpz
— TatsunoriMorita (@king_of_morita) 2019年1月3日
まとめ
他にもいろいろ設定はありますが、きりがないのでこのくらいにして、機会があれば別途調査したいと思います。
オブジェクトを配置しただけだと、視覚的にインパクトが欠ける場合や、アニメーションを加えることで表現の幅をもたせたい時に上手く使用できると武器になりそうです。