見出し画像

Shader Fes 2021でけのもががんばったこと

ハウディ!!!みんなShader Fes 2021 楽しんでますか!
クレジットにも記載されてましたが、サウンドディレクションという立場で関与しております。

Vketの方でも似たようなことやっとったやろがい!!という感じですが、Shader FesのほうはわりとUnity触ったりサウンド制作したり手を動かす部分メインでした。サウンドディレクションって何?

本記事では、具体的にこんなことやりました~というアピールに加え、こういうところにこだわってやりました!というところもそれなりに詳しくかけたらなぁと思っております。

わりと読み物な感じでダラーっと書くので暇なときにちょっとずつ読んでいくといいかと思います。

足音

リファレンス

足音についてはかな~り最初の段階から、るらさんと絶対やろう!って話してました。
アイデア元は、The AfterDark Arcadeというワールドだったと思います。
るらさんのUdonChipsおよび関連アセットが改造されたやつが置かれまくってるワールドです。ワールドのクォリティもとても高い!

海外技術勢のワールドに行くと、足音がついているワールドはちょいちょいあります。しかしThe After Dark Arcadeはかなり凝っていて、地面ごとに足音が変わったり、走ったり飛んだりするとちゃんと音が変わります。なんか最近壁キックとかもできるようになったっぽい。
その他ワールドの環境音とかもちゃんと設定されていたり、拡張メニュー的なやつのアイデアもとても参考になります。

足音とか環境音については、ゲームとかだとわりと当たり前です。しかし、VRSNSでそのまま使えるかどうかは実際にやってみないとわからないので、そういった意味ですでにワールドで実装されているのを体験できたのは良かったと思ってます。ありがとうThe After Dark Arcade!

その他ちょっと意識したのは、まぁせやなって感じではありますが、どうぶつの森ですね。(サウンド面以外でも結構参考にしてます)

あつ森サントラCDにくっついてるブックレットに、BGMのヒミツと題してあつ森のサウンドディレクションについて書いてるので超必見です。そこで書いてるのですが、あつ森は足音(とか雨の音とか)をしっかり聞かせるためにBGMやSEのアレンジを変えたり、帯域管理をめっちゃちゃんとやってて流石だなぁってなります。

Shader Fesでは正直あつ森ほど足音をガッツリ聞かせる想定ではなく、そういえば足音なってるねぐらいの音量で調整しています。なのでそこまで厳密には管理してないですが、中央エリア(ロビー)以外のBGMは足音のカツカツ感聞こえやすいように音数少なめなBGMにしてます。逆に言うと中央エリアのBGMは音かぶりまくってるので、あんまし聞こえないようになってます。

ギミック

ギミックは黒鳥さん制作です。数日であっという間に作ってくれました。スゴイ!

音を出す仕組みとしては比較的シンプルで、プレイヤーが移動しててかつ足が接地していれば音を鳴らすみたいな感じだったかと思います(細かくはわからん)
足の接地の瞬間と音の鳴る瞬間はまったく一致してないですが、VRだと足はあんま見えないのでヨシ!
また、パラメーターで足音の間隔はいじれるようになってます(こういう微調整できるパラメーター本当に大事)

地面ごとの音の種類の鳴らし分けは、コライダーごとにPhysic Materialを設定して、そのPhysic Materialごとに設定した音を鳴らすという仕様になっています。
なので、手すりとかの細かいところに音付けたりとか、逆に鳴らさないみたいな設定が結構簡単にできました。

Shader Fesでは、歩く速度で音が変わったり、着地の時の音が鳴ったりとかはやってないです。実装コスト面の問題もありますが、VRではこんな感じでシンプルな仕組みで鳴らすだけでもかなりそれっぽくエモくなるということはいい知見だったかなと思ってます。

音作り

音の種類は5種類で、種類ごとに数パターンの音をランダムに鳴らしています。容量の問題もありますが、そこまで細かく作っても違いがわからない・足音変わったなというところは気付いてほしかったので、結局5種類にしました。
具体的には以下の5種類です。全部気づいたかな?

・固めの石っぽい音(カツカツ)
・ちょっと柔らかめのコンクリっぽい音(コツコツ)
・固めの金属音(カンカン)
・ちょっと空洞感のある金属音(コンコン)
・厚めのガラスとかアクリルっぽい音(ボンボン)

ガラスのところの音はかなりうまくできたなーと思ってます。あつ森の博物館の魚展示してるところの床をかなり参考にしました。
本当にあつ森博物館はすごい。

音作りはGameSynthというソフトを使って作った音源をDAWでちょっと加工して作りました。

落下音

気づいている方もちらほらいらっしゃるかと思いますが、Alpha展示室から落下すると風切り音が聞こえます。
このギミックは超シンプルで、落下途中にあるTriggerを踏むと風切り音が再生されるというだけです。

シンプル

このギミックはるらさんが落ちる時の音ほしい!と急に言い出して勝手にるらさんがUdonでギミック作ったものです(後から自分が風切り音を作り直して差し替えた)

SDK3で舞空術(SDK2時代にあった滞空中にスティック入れると速度が0になる仕様)がなくて、落下時間が一定だからできた芸当です。
あと、飛行アバターとかで下から登ったりすると風切り音が鳴っちゃいます。仕様です(?)

BGM

作曲

会場で流れているBGMも全部わたしが作りました
Youtubeで公開もしてるので聞いてもらえると嬉しいです。

制作時に参考にしたジャンルはChillstepとかChillhop系です。

中央エリア(ロビー)の曲は前回2019のBGMを踏襲した感じで作りました。
Alphaは上層感出したかったので、ロビーの曲からベースとリズム帯を抜いたみたいな感じで作りました。
展示室の曲は、最初はロビーの曲と似たような感じにしようと思ったのですが、あえて雰囲気を変えてメロディ主体のキャッチーな感じにしました。
(ほんとうはRGBでちょっとアレンジ変えるとかやりたかったけど、時間と力量が足りんかった。)

ちなみに今回はできんかったですが、各展示室回るとちょっとずつBGMが豪華になってくみたいなインタラクティブなアイデアもありましたがまぁ~これむずかしいわねこういうのどうやって作ってんだよってかんじだ
ただまあ現状でも統一感はあって悪くはないかなという気はしてますので自分でも結構気に入ってます。やったぜ。

BGMの切り替わり

音の切り替わりはVRでもかなり効果的にエモくなるので、それなりにしっかり調整しました。
基本的にUdonは全く使用せずにAudioSourceポン置きでやってます。
たまたま円形で放射状にのびていくワールド仕様で、結果的に3D Sound Settingsで筋肉解決できてとても良かったと思います。

なんかすごい中央エリア(ロビー)のBGMの設定

ロビーの中央にAudioSourceが置いてあるのですが、ポイントとしては
・ロビーに入るとSpread&Spatial Blend(2D-3D)がほぼ2Dになる
→ロビーに入るまでは音の方向がガッツリ分かるようになってて、入ったら音の方向がわからなくなる

・離れてるとLowPassをかけて、ロビーに入ったらかからないようにする
→低音は離れてても低音だけ壁とか伝ってよく響くのでそれを再現

SpreadとLowpassはよくわからんくて使わないパターンも多いかもですが、
かなり聞こえ方が変わるので積極的に使ってみるとよいと思います。
むしろVolumeだけだとあんま違いが出せなくて微妙。

それ以外のBGMもだいたい同じような感じで設定してます。

ただ、2点ほど例外的に変わった実装をしてるところがあるので、裏話としてご紹介します。

1点目は展示室のBGMです。

展示室にもBGMが置いてあって、ちゃんとBGMがスーッと切り替わってるかと思いますが、かなりパワーな置き方をしています。

パワー

数学パズルかよって感じですね。
ただ上の画像だとGreenの部屋の置き方がおかしい!と思いますがちゃんとやってます

Greenのやつだけちょっと下げてる

完全に3D数学パズルでした本当にありがとうございます。

こういう置き方しているのもあって、減衰の具合は各展示室ごとに若干ばらつきがありますがまぁバレへんやろ!

ちなみにクソデカAudio Sourceを置いてる関係で、Alpha展示室に干渉してしまうという問題が発生しました。

クソデカAudio Source

なので、プレイヤーの頭の位置が高くなるにつれRedとBlueのクソデカAudioSourceの位置をConstraintで下げるという仕組みをナルさんが入れてくれました。天才!

2点目はエレベーター乗ってるときのBGMです。

すでにお気づきの方も多いと思うのでしれっと書いちゃいますが、エレベーターの仕組み上プレイヤーは起動時と終了時にちょっとテレポートするだけで、上下移動はしていません。
なので、エレベーター移動中はワールドのAudio Source側をまるっと上下移動させて、ギミックが終わると元に戻すというようにやってます。

結果、とくにギミックに合わせたBGM設定をすることなく(ここ本当に助かる)、BGMはスーッといい感じに切り替わります
結構力業感ありますが、シンプルで工数的にエコな作りでよかったかなと思ってます。エレベーター乗っているときにBGMがスーッと切り替わるのは絶対にやりたいポイントだったのでほんとうに黒鳥さんありがとうありがとう

ReverbZone

実は全部の部屋にAudio Reverb Zoneを入れています。
ただまあぶっちゃけReverbZoneはあんましかかり具合よくないし微調整もしづらいし、コスパ悪いなーという印象です
ひとまずShader Fesでは、広い空間と狭い空間の緩急付けぐらいの意味合いでいれてあります。
具体的には、中央エリア(ロビー)はクソ広いので強めに。
展示室では大きい展示室でもちょっと強めにしてます。
よく聞くと変わってるなーってのがわかるぐらいかなと思います。
まあ室内だしこんなもんでは?

うまい置き方ないのかなーって調べても全く情報ないので誰も使ってないのでは説が高い(なんかここら辺の事情詳しい人教えて)

環境音

入れてるところはそんな多くないですけど、一番凝っているのはワールドのエントランス部分かと思います。

エントランス部分の現実感をあえて強めにして緩急をつけたい意図があったので、エントランス部分はBGMなしの環境音オンリーにしてます。

見ての通り駅モチーフですが、2つの環境音を重ねています。
1つはhttps://taira-komori.jpn.org/index.htmlから持ってきたやつ
もう1つはみんな大好きGameAudioBundleから持ってきたやつ
をそれぞれDAWで加工して使ってます。

前者は空調音とか駅アナウンスとかがいい感じに入ってるやつです。
後者は電車が到着して出発するときの音で、無音地帯を長めにして書き出して、数分おきに聞こえるようにしてます。

あともう1つ、気づいてる方も多いかと思いますが、
視覚障碍者用の誘導音(ピーンポーンってやつ)も地味に重ねてます。
これは私がシンセで音作って打ち込んだものです。ちゃんとした音程で打ち込むとちょっと違う感がありましたが、3~40セントぐらいピッチ上げたら超それっぽくなりました。

ピーンポーンはここに置いてある

あとはそいつらをLowPass強めReverb強めに&定位感はあると不自然なのでSpreadと2D強めに、あとBGMと同じような感じでAudioSourceいじって置いて終了です。

エントランス以外では、エレベーター内とかR,G,B各展示室途中のShaderToy改変Shaderが置いてあるところ(オーロラとか火星のやつ)、みまもりちゃん(中央エリアの見てくるやつ)にも音を入れてます。

VRCでワールド作るときは環境音は絶対に入れたほうが良いです。というのも現実では完全なる無音の空間はほぼ存在しないので、無音のワールドはとっても気持ち悪く感じます。
無音の空間だとしても、うすーく聞こえるか聞こえないかぐらいの音量で空調音とかノイズ音とかを入れるとすごく実在感高まりますので、無音ワールド作っちゃってた方はぜひ試してみてください。

AudioLink

今回はAudioLinkを使った展示がそれなりに多くて面白かったですね!
Audio LinkとはAudioのLinkである!以下githubページです

Shader Fesでは、展示室のBGMに合わせてAudioLink対応シェーダーが反応するようにしました。

ただ制作中に1つ問題が発生しました。
それは、BGMの音圧低すぎてAudioLink対応シェーダーの反応がクソ悪い
という問題です。(AudioLink側でGainを上げても全然反応しなかった)
しかし全体のバランスもあってここだけBGMの音圧を変えるわけにもいかず困った。

いろいろ出展者Discordでワイワイ話し合った結果

音源は音圧そこそこ高めかつ波形ジャギジャギの音源ならばOKっぽい
→既存のBGMはそのまま流しつつ、AudioLink用のダミーAudioSourceを用意してそこに別途マスタリングしたジャギジャギ音源を入れて、LowPassで聞こえなくする

という対策をとって無事に解決しました。よかったよかった。

ひとまず今回は大丈夫でしたが、ダミーを用意する解決策は、BGMが単純にAudioSourceポン置きして流しっぱなしにしておく仕様だったから取れた策だったので、本物とダミー間で同期に問題がありそうな仕様では、ジャギジャギ音源を入れてVolume下げて調整するしかなさそうです。

AudioLinkのContributorのcnlohr氏、翻訳やらいろいろ検証やらやっていただいたxantoz氏、ダミー案を出していただいたskkn氏ありがとうございました。

その他

そのほか効果音はほぼ全部自分が作りました。実は一部るらさんが過去に作ったものをほぼそのまま使ってたりもしてます。

全体の音量バランスは、VRC側のSettingsでWorldのVolume70%想定でマスタリング&Unity上で微調整してます。
70%でもちょっと小さめぐらいのバランスにしてあります。

まとめ

長々と書きましたがこんな感じで頑張りました。
思いのほかUnityの基本機能メインゴリ押しで、大したことはしてないと分かると思います。

というのも、正直VRChatでは凝ったサウンド実装はやりづらいです。
ゲーム開発ではおそらくなにかしらのオーディオミドルウェアとか使うのが主流な気がしますが、VRCで使えるはずもなく。だからといってVRC側でそういったツールがあるわけでもない。
なので、Unityの基本機能でやれるだけのことをやりつつ、それ以上のことをやりたかったらUdonをバリバリ使うしかないです。
しかし、今回みたいにUdonを多用できない場合もあるし、ゼロから実装しなきゃいけないので手間もだいぶかかるし動作の安定性とかも考えるとなかなか難しいと思います。

あとAudio MixerがVRCでは使えない(内部で使ってるから設定がオーバーライドされちゃう)ので、Unity上で音をいじりにくく、Unity入れ込み前にある程度加工しておく必要もあったりで、ここも手間かかるポイントかと思います。

ただ、大したことないことをしっかりやるだけでそれなりにエモくなるというのは実感いただけたとは思うので、全ワークリ勢が気軽にオーディオ周りもいじっていく流れができればとても良いかと思います。

最後に

ここ最近は進行管理とかディレクション周りのお仕事が多かったので、久々にUnityをいじれてとても楽しかったし勉強になりました。
Prefab運用とかまじでメッチャ大変だった。

VRでの音周りの知見はまだまだ少ないので、これからも色々試していきたいです。
AudioLinkとかも色々遊べそうなので暇さえあればいじってみたいですね!
VRCでは使えないですがオーディオミドルウェアとかも暇があれば触ってみたい。

まあなんやかんやありますがマイペースに頑張っていきます。

ちなみにわたしはフリーランスなので、もし何か面白そうなお話があればお気軽にDMとかでご相談いただけると嬉しいです!!!オナシャス!!!
Twitterのフォローもお気軽にどうぞ!

TwitterDM(@Kenomo_Vworker)
Mail:ke_no_mo@outlook.jp


この記事が気に入ったらサポートをしてみませんか?