11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SceneKitのパーティクルシステムの使い方

Last updated at Posted at 2018-12-21

3D体験をよりリッチにしてくれる、パーティクルシステムについて紹介します。

パーティクルシステムとは

パーティクル・システム(英: particle system)はコンピュータグラフィック技術のひとつで、運動する粒子により構成される事象を表現するために使われる。

一般にパーティクル・システムを用いて模擬される事象の例としては、炎、爆発、煙、流水、火花、落葉、雲、霧、雪、埃、流星、毛髪、毛皮、草地、あるいは光跡や呪文の視覚効果などが挙げられる。
https://ja.wikipedia.org/wiki/%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%82%AF%E3%83%AB%E3%83%BB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0

SceneKitデフォルトのパーティクルシステム

デフォルトでこんなに用意されています。これらのパラメータを調整したり、粒の色、形、画像を変えたりして様々な表現が可能です。

bokeh confetti fire rain reactor smoke star

パーティクルを作ろう

ファイルの作成

パーティクルシステムのファイルは、NewFile -> SceneKit Particle System Fileの順に選択し、作成します。

2018-12-20 10 13 55

先に紹介したデフォルトのパーティクルの中からテンプレートを選択します。

2018-12-20 10 14 09

右側のタブからBirth RateやSpeed, Shapeなど色々調整できます。

2018-12-21 22 47 35

具体的な調整方法は無限大なので今記事では割愛します。

コード

空間のrootNodeにパーティクルシステムを発生させる場合、以下のように、SCNNodeを作成しaddParticleSystemするだけです。

物体からパーティクルシステムを発生させたい場合は物体のNodeに対してaddParticleSystemしましょう。

let particle = SCNParticleSystem(named: particle.rawValue + ".scnp", inDirectory: "art.scnassets")
let particleNode = SCNNode()
particleNode.addParticleSystem(particle!)
sceneView.scene.rootNode.addChildNode(particleNode)

ペチャバトの必殺技にもパーティクル

私の現在開発しているペチャバトでも、炎、雷、煙などがパーティクルシステムによって作られています。

サンプルコード

https://github.com/kboy-silvergym/ARKit-Emperor のParticleにあります!

11
6
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
11
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?