Close
Type at least 1 character to search
Back to top

ゼロからはじめるUnityでVJ | 音に反応するパーティクルをVisual Effect Graphでつくる

※2020年時点での検証内容になるので、情報が古い可能性があります。

ここでは、Unity 2018.3からの新機能(プレビュー版)の「Visual Effect Graph」を活用したオーディオリアクティブなパーティクル芸について触れておきたいと思います。

※ Visual Effect Graph(以下、VFX Graph)については、他サイトでも色々と概要が載っているのでここでは触れません。ご参考までに以下の2サイトを載せさせていただきます。

Visual Effect Graph × LASPという選択

次の動画は実際にVFX Graphを活用して作ってみた映像となります。

学生時代にProcessingで似たようなこと頑張っていた記憶が蘇りますが、VFX GraphはノードベースのGPUパーティクルシステムなのでサクッと美しいパーティクル芸ができるのがとても魅力的と言えるでしょう。

音に反応する映像とかをつくる際に前提として必須となるのが、映像と音の間の遅延が無いことでしょう。

が、実際にUnityの標準機能のみではどうしても遅延が気になってしまいます。

この課題に対して、Keijiro 氏が github で公開している低レイテンシのオーディオ入力を処理できるライブラリ LASP を活用するのが最も良い選択肢と言えます。

LASPを試してみたい方は、先程のリンクの github から git clone して実際にまずは脳死で動かしてみると良いかと思います。

どうやっているのか

Keijiro 氏の 他のレポジトリを参考にしてたのですが、私の場合は LASP の “AudioLevelTracker.cs” をアタッチして使う方法ではなく VFXGraph をコントロールするスクリプトを別途作成して、”VisualEffect.SetFloat(”音に応じて反応させたいVFXのパラメータ名”, LASPで処理した正規化済のオーディオレベル)”で音に応じたエフェクト操作をするようにしています。

※現在は、変数のバインダーが標準で用意されており↑を準備しなくても大丈夫そうです。

“音に応じて反応させたいVFXのパラメータ名”は、今回のテストの場合には、VFX Graph内でパラメータとして定義しておき、Remapを介してSpawnノードの”Rate”、Update内の乱気流制御で”Intensity”、”Force”にそれぞれインプットするようにしています。

今後も「Visual Effect Graph × LASP」の合せ技は色々と使えそうです。

Reference

Post a Comment

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください