LoginSignup
7
4

More than 5 years have passed since last update.

ARKitのパーティクル・システムをコードで書く

Posted at

はじめに

ARKitを勉強する上で、より表現の幅を広げるためにパーティクル・システムの使い方が必要だと思ったので、
今回はXcodeのインスペクタ設定ではなく、コードでの設定方法を調査しました。

ファイルの作成

パーティクル・システムのファイルを作成
XcodeでNewFile -> SceneKit Particle System Fileで.scnpファイルを新規に作成します。
テンプレートとしてbokeh、confetti、fire、rain、reactor、smoke、starが用意されているので、作成したいパーティクルに近いものを選択してパラメータを調整します。
今回はfireテンプレートを選択しました。
Screen Shot 2019-01-03 at 10.27.07.png
Screen Shot 2019-01-03 at 10.27.20.png

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

パーティクルの色

Screen Shot 2019-01-03 at 10.56.05.png
particlecolor

パーティクルの放出量

値が大きいほど放出される粒子の量が多くなる。
Screen Shot 2019-01-03 at 11.01.15.png
birthrate

パーティクルの全体形状 

emitterShapeに放出したい形状を設定すると、パーティクルの全体形状がプレート型、ボックス型に出力できる。
Screen Shot 2019-01-03 at 11.21.55.png
emittershape

パーティクルのサイズ

粒子のサイズを設定。デフォルト設定は1。
Screen Shot 2019-01-03 at 11.46.57.png

particlesize

新規パーティクルの生成期間

デフォルト設定は1秒。0秒の場合すべてのパーティクルが瞬時に出現する。
Screen Shot 2019-01-03 at 11.59.41.png

emissionduration

パーティクルを生成しない時間

生成しない時間を設定する。
Screen Shot 2019-01-03 at 13.31.52.png

idleduration

パーティクルの表示期間

パーティクルが生成されてから、消えるまでの時間。デフォルトが1秒。
Screen Shot 2019-01-03 at 13.41.47.png

particlelifespan

パーティクルの動作スピードを変更

デフォルト値1秒。値を大きくするとパーティクルの動きが早くなり。小さくすると動作が遅くなる。
Screen Shot 2019-01-03 at 13.55.02.png

speedfactor

パーティクルの引き伸ばし

移動方向に対してパーティクルを引き伸ばす。デフォルトは0。
Screen Shot 2019-01-03 at 14.03.23.png

stretchfactor

まとめ

他にもいろいろ設定はありますが、きりがないのでこのくらいにして、機会があれば別途調査したいと思います。
オブジェクトを配置しただけだと、視覚的にインパクトが欠ける場合や、アニメーションを加えることで表現の幅をもたせたい時に上手く使用できると武器になりそうです。

7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4