PopcornFXをOculus Riftで検証 PopcornFX Particle Effects Plugin #アセットアドカレ

この記事は Unity Assets Advent Calendar 2015 20日目の記事になります。

パーティクルエフェクトのミドルウェアPopcornFXで作成したエフェクトを、Unity上で使用可能にするランタイムプラグインPopcornFX Particle Effects Pluginについて、Oculus RiftGear VRGoogle CardboardなどのVRHMDで利用することを想定し、どれほどの表現力で、負荷はどれくらいなのか?全3回で各プラットフォームごとに検証していきます。

PopcornFX Particle Effects Plugin(Windows Mac Linux)

https://www.assetstore.unity3d.com/jp/#!/content/24455

 

PopcornFX Discovery Pack

フリーで試せるパッケージも用意されています。
インポートするだけで、あらかじめ用意されているサンプルシーンから半端ないクオリティのパーティクルが手軽に試せます。

https://www.assetstore.unity3d.com/jp/#!/content/26440

 

検証環境

  • Mac Pro late2013
    • GPU AMD D700(GTX970以下。今のミドルエンドくらいの性能。)
  • Windows10(Bootcamp )
  • Oculus Runtime0.8
  • Unity5.3.1f1

PopcornFXの使い方について

寺田ゾンビのテクスチャ作成で以前からお世話になっている榊原圭介さん@flashsky03 が大変わかりやすい導入の記事を書かれているので、まずはこちらをご一読ください。(一応職場閲覧注意)

>> PopcornFXの使い方 -Unity編- | TOFU SOFT http://tofu.yakan.net/c151117/

PopcornFXの概要から、パーティクルを作成するPopcornFX Editorの使い方、Unityに持ってくる手順について絵付きで丁寧に解説されています。

 

公式ドキュメントについては次のページが参考になります。

http://wiki.popcornfx.com/index.php/Unity

若干古いですが、日本語のドキュメントも

http://www.popcornfx.com/downloads/2014_11_28_HowToPopcornFXInUnity_REV_8_JAPANESE.pdf

 

PopcornFXのエフェクトをUnityまで持ってくる

詳細は榊原さんのBlog。一部我流で、Unityのプロジェクトにぶら下げる形でPopcornFXのプロジェクトを作っている。

※PopcornFXのプロジェクトを他のプロジェクトへもBakeして書き出す運用を行う場合は別の場所に作ってもよい。

  1. Unityのプロジェクトを作る。
  2. Assetsと同じレベルにPopcornFXフォルダを作る。
  3. PopcornFX Editorを開きProjectsをNew。先ほど作ったPopcornFXフォルダを指定。
  4. PopcornFX Editorで作成したProjectに対してSettingsでUnityと軸合わせと、PopcornFX Editorで作ったエフェクトの出力先を指定。

 

PopcornFXで出力したパーティクルエフェクトの使い方

プロジェクト設定

Player SettingsColor SpaceLinear

シーンのカメラに専用のコンポーネントをアタッチ

PopcornFXで作成したエフェクトを表示するために、MainCameraなどのカメラコンポーネントと一緒にPK Fx Rendering Pluginスクリプトコンポーネントのアタッチが必要になります。

参考サンプルシーン Sample_ElectricOrb.unity

 

エフェクトに音が設定されている場合

また、PopcornFXでエフェクトに音を付けた場合は、Audio ListenerコンポーネントがアタッチされたオブジェクトにPK Fx Sound Managerスクリプトコンポーネントのアタッチが必要になります。

パーティクルがコリジョンの影響を受ける場合

PKFXSceneMeshBuilderスクリプトコンポーネントをアタッチしたゲームオブジェクトをシーンに配置して、コリジョンがあるオブジェクトをGame Objects To Searchへ設定。Build meshes実行。

カメラにアタッチしているPK Fx Rendering PluginスクリプトコンポーネントShow Advanced Settings内にあるUse Scene MeshONにして、Scene Mesh Pkmm Pathの設定を合わせる

参考サンプルシーン

  • Sample_Lightning.unity ヴィーナスに雷エフェクトが追従するサンプル

  • Sample_Thruster.unity スペースキーと矢印キーでロケットを操作。コリジョンにあたるかクリックで盛大に爆発

 

音に反応するパーティクル

fuZeのような、Audio Sourceからの入力でエフェクトを操作することも可能です。

参考サンプルシーン Sample_AudioSampler.unity

 

サンプルをOculus Riftで試す

Player SettingsVirtual Reality SupportedをONへ。

Virtual Reality SupportedがONの時の注意点

Player SettingsVirtual Reality SupportedONにして実行すると画面が真っ黒になり何も映らなくなるようです。(PopcornFX Plugin 2.6)

対応としてはイメージエフェクトをOFFにすると解決。Main CameraにアタッチされているポストエフェクトのコンポーネントBloomなどをOFFにしましょう。

 

検証。PopcornFXはどれくらい軽いのか?

みんな大好き爆発エフェクトで試してみます。

Sample_Explosion.unity

注目はHierarchyに並ぶ大量の爆破エフェクトのインスタンス化されたプレハブ。なかなかFPSが落ちません。

 

パーティクルのワークフローをまるっとPopcornFXに置き換えることにはなるが、PC向けのPopcornFX Particle Effects Pluginを使うことにより、Oculus Riftで超綺麗なエフェクトをモリモリに盛っても軽いという驚異的な実力が分かる。

次回はAndroidを試します。

Unity Assets Advent Calendar 2015 記事一覧へ