SceneKitのパーティクルを個々にフェードアウトさせる

SpriteKitのパーティクルにはアルファの加速度を設定できるプロパティがあり、そこにマイナス値を設定すればアルファでフェードアウトすることになる。(しかし、減速しつつアルファ値はフェードインして、速度が0になったところからフェードアウト、みたいな制御はできない)

で、SceneKitのパーティクルSCNParticleSystem を使う場合には、そういうプロパティが見当たらない。パーティクル全体をSCNActionでフェードアウトさせる実装をやったがそれでは嫌だとクライアントは言う。

Animate Color

addModifier(forProperties:at:modifier:) か、 propertyControllers を使えばパーティクル個々の細かい制御ができそうだが、あまりサンプルも出てこないしパフォーマンス的に負荷が高そう。

なんかもっと簡単にできる方法はないか、と思っていたら、Particle Editorの[Animate color] を有効にするだけでできた。

上の[Color]にはホワイトを指定することで、画像のオリジナルのカラーを使う、という意味になるようだった(ドキュメント未確認)

アルファブレンドの問題

続きをみるには

残り 813字 / 1画像
文章やサンプルコードは多少荒削りかもしれませんが、ブログや書籍にはまだ書いていないことを日々大量に載せています。たったの400円で、すぐに購読解除してもその月は過去記事もさかのぼって読めるので、少しでも気になる内容がある方にはオトクかと思います。

技術的なメモやサンプルコード、思いついたアイデア、考えたこと、お金の話等々、頭をよぎった諸々を気軽に垂れ流しています。

最後まで読んでいただきありがとうございます!もし参考になる部分があれば、スキを押していただけると励みになります。 Twitterもフォローしていただけたら嬉しいです。 https://twitter.com/shu223/