UdonSoundAnalyzeの設定
プロパティ
Material_Beat : 音楽を解析したデータを送る指定先です。初期設定から変更しないようにして下さい。
Audio:解析したい音源が鳴るAudio Sourceを指定してください。
動画プレイヤーで使用しているAudio Sourceでも解析可能です。
Beat Minimum Volume:ここで設定した数値以上の音量になった時にBeatメーターが増加する。
Beat Increment Volume:フレーム毎のBeatメーター増加量
Cheak:チェックをオフにするとUSAが動作しません
Hi Spec:オン時は512分割 オフは 256分割 でオーディオを解析します。256分割の方がPCの処理が軽くなります
オーディオメータ
メーターは20分割されております
0~7 周波数毎のメーター
8 全体音量のメーター
また色でデータの種類が分かれています
Redの色が、音量のデータ
GreenとBlueでBeat用のデータになります
9以上は、拡張用です
確認用ボード(SoundGraphicalBoard)について
・プレビュー用ですので、ワールドに表示しておかなくても大丈夫です。
・人間が確認しやすいようにオーディオメーター風の表示にしております。
・プレビュー用の[SoundGraphicalBoard]は見やすいように
音量とBeatで視覚的に分けてます。
準備する音楽について
基本的にステレオで44.1kHzの音源を用意してください
48kHzでも大丈夫ではあります。
(解析される音域が多少ズレます)
[重要]Audio Sourceの設定について
USAにて音楽を解析する時は、Unityの仕様上
自分が聞こえている音量で、音楽を解析します。
(UnityEditor上だとMainCameraの位置での音量になります)
音量が明らかに小さいと解析処理が弱くなり、あまり良い結果になりません。
ただし、VRChat内SettingのWorld音量設定は解析に影響はありません。
ワールドの何処に居ても大体同じ音量で聞こえるように
設定した場合は大丈夫なのですが
距離で音量が大幅に減衰する場合は、特殊な対応が必要になるかと思います。
下記に思いつく対応を記載しておきます。
1,音楽が聞こえない時はUSAの処理をさせないようにする。
・音楽が聞こえるエリアに入ったら、USAのonの処理を渡すなど
2,聞こえる音量によって解析結果を一切変化させたくない場合
・解析用に再生するAudio Sourceを追加する。
・音楽を流すAudio Sourceを複製し、2D音声で減衰無しにし
Low Passを最小でかけて、音を聞こえないようにする。
(自分には聞こえませんが、処理をしてくれます)
配信用のAudio SourceではLowPassが効きません。
制作上での注意点
ワールドでポストエフェクトをかける時には
レイヤーで30番は適応しないようにしましょう。
Ver3.0では気にしなくて大丈夫です
補助Udonプログラム
プロパティの[Cheak]と[Hi Spec]をVRC内でONOFF出来るUdonプログラムも同梱されてます。
GoatCannery/UdonProgramSources 内にある[USA_OnOff_Switch][Udo_SpecToggle_Switch]がそれになります。
コライダーが入っているオブジェクトにコンポーネントをアタッチして
[Udon_SA]に"Udon_SoundAnalyze"を適応してください。
それで動作をします。
動作はローカルになります。
別に知らなくても良いUSAの仕様(ver3.0)
オーディオソースで鳴らしている音を
Udonを使って、一定の周波数毎に分割をして解析し、その音の強さを数値化しています。
その数値をシェーダーで受け取り、リアルタイムで色の情報にして
カスタムレンダーテクスチャに書き出しています。
同時にBeatの計算もカスタムレンダーテクスチャ内で行ってます。
AddonPack01の"踊るやつ"など、解析した数値を直接Udonに取り込んで
処理を行う場合も御座います。
音の強さについては、音の強さの最大値を記憶して、それとの対比にて計算をしております。
周波数毎にそれぞれ個別に計算をしておりますので、一部周波数で全体に比べたら弱い音が鳴っていても強い音として処理されます。
また最大値につきましては、曲ごとに音量が違う為
時間で減っていく計算方法にしています。
音の強さの分解度は1/512にて取得しております。
Ver2からVer3の移行の仕方
①Projectの[GoatCannery]フォルダ内の [Materials][Prefabs][Shaders][Texture][UdonProgramSources]を削除してください。
②シーン内の[SoundAnalyzeSystem]プレハブを削除してください。
③[UdonSoundAnalyzeSystem-ver3.unitypackage]をインポートしてください。
④[GoatCannery/Prefabs]フォルダ内の [SoundAnalyzeSystem_Ver3]プレハブをシーン内に配置してください。
⑤[Udon_SoundAnalyze]の{Audio}に解析する音を鳴らすAudio Sourceを入れて下さい。
⑥USRシェーダーで利用している[Reactive Texture]を [GoatCannery/CustomRenderTexures]内の[USA_CRT_Ver3]に変更をする
以上で、USAver3.0の導入が出来ます。