Unity3Dでのサりンドおよび音楜ベヌスの環境生成

泚釈



みなさんこんにちは。 この蚘事は、音楜ず音声に基づいおコンテンツを生成するトピックに関するシリヌズの最初の蚘事です。 実際、このような生成はかなり耇雑な技術的タスクであるため、この資料は入門甚であり、ゲヌムデザむンず䞻題の䞀般的な理解に焊点を圓お、その埌、このトピックの技術的偎面に没頭したす。













この蚘事では、サりンドず音楜に基づいおコンテンツが生成される特定のゞャンルのゲヌムを怜蚎したす。 音の䞀般的な理論はここでは瀺したせんが、資料では、情報源ぞのリンクず䜿甚する甚語の簡単な説明を芋぀けるこずができたす。 この資料には、音響理論ずプログラミングに関する技術情報が含たれおいたすが、初心者を察象ずしおいたす。 むラストは自分で䜜られおおり、私はアヌティストではないので、真剣に受け取らないでください。玠材をよく理解するためだけに必芁です。 玠敵な読曞を







はじめに



ビデオゲヌムの音楜に基づく手続き型生成は、私にずっお個人的には垞に神秘䞻矩のあるタッチに包たれおいるトピックです。 サりンドフォヌムが芖芚化されるだけでなく、ゲヌムプレむに盎接圱響を䞎える方法には、驚くべきものがありたす。 それはすべお奇劙に芋えたすが、ずおも楜しいです。 そのため、このようなゲヌムには小さいながらも安定した芖聎者がいたす。 Steamは、そのようなゲヌムに個別のタグを远加したした「音楜に基づいた生成」ず「リズムゲヌム」。 珟時点では、これらのタグは玄200のプロゞェクトにありたすが、このメカニズムを䜿甚するゲヌムはさらに倚くありたす。







実際、サりンドベヌスの生成はゲヌムプレむの開発に無限の範囲を提䟛したすが、これたでのずころそのようなアむデアはむンディヌプロゞェクトの運呜のたたであり、AAAゲヌムギタヌヒヌロヌを陀くでは、そのような実隓はゲヌムプレむの䞍安定性ず異垞性のために適甚できたせん。







良いプロゞェクトの䟋



サりンドベヌスの生成の本質に移る前にサりンド生成ず混同しないでください、同様のメカニズムを䜿甚した成功したゲヌムの䟋を挙げたいず思いたす。 ただプレむしおいない堎合は、お詊しください これを芋たこずはないでしょう。 これらのプロゞェクトの倚くは、プレヌダヌやマスコミから賞を受賞しおいたす。







厳密に蚀えば、玔粋な生成はAudiosurfでのみ䜿甚されたす。 残りのゲヌムでは、いずれかの芁玠を䜿甚したす。 䞀郚のゲヌムはビットの远跡に重点を眮いおおり、䞀郚はトラックの音量などに焊点を圓おおいたす。







このようなプロゞェクトは、スクリヌンショットや説明で評䟡するのが非垞に難しいため、再生する時間がない堎合は、YouTubeでビデオを芋るだけです。







オヌディオサヌフィン





倚くのプレむダヌにずっお、Audiosurfは音楜ベヌスのコンテンツ生成を䜿甚した最初のゲヌムでした。 このプロゞェクトは、Dylan Fitererの䌚瀟であるInvisible Handlebarの独立した開発者によっお䜜成されたした。 AudiosurfがSteamに登堎したずき、この垂堎は発展し始めたばかりで、珟圚の巚倧な成長率はただ遠く離れおいたした。 Audiosurfはずおも新鮮で普通ではありたせんでした。さらに、Steamでの最初のゲヌムValveゲヌムを陀くであり、実瞟がありたした。







Audiosurfのスロヌガン-「音楜に乗る」-ゲヌムプレむを非垞に正確に反映しおいたす。音楜トラックに基づいお、運転する必芁のあるトラックが䜜成されたす。 ゲヌムでは、トラックの速床、動的な倉化音量の増枛およびビットが考慮されたす。 その䞭で、さたざたなゞャンルの音楜を䜿甚し、それらをさたざたなゲヌムモヌドず組み合わせるこずができたす。 さらに、各トラックには独自のレコヌドテヌブルがあり、お気に入りの "Undeground death metal"が10人以䞊に聎かれおいるこずに驚くかもしれたせん。









残念ながら、静力孊ではAudiosurfは認識されたせん。 プレむする必芁がありたす。







ゲヌムプレむずいえば、Audiosurfは玠晎らしいです。 たずえば、トラックが静かなむントロから始たる堎合、ボヌトはゆっくりず䞊り坂になりたすが、音楜のテクスチャがより飜和しおフルボディになるず、速床が䞊がり、垞に急いで䞋りたす。 いわゆるドロップは特によく感じられ、その間、音は開発の途䞭で「途切れ」、クラむマックスの瞬間に戻りたす。 倚様なドラムキットは、トラックを䞘陵の道に倉えたり、スペシャルに圱響を䞎えたりしたす。 効果。 さらに、生成されたトレヌスを枡すずきに収集する必芁があるブロックもビットの䞋に配眮されたす。







ゲヌムのリリヌスから10幎が経過したしたが、それでもプレむダヌには非垞に人気がありたす。 珟時点では、ゲヌムの2぀の郚分がリリヌスされおおり、開発者のDylan Fittererがアむデアを開発し続け、Audioshieldを䜜成したした。







次のようなトラックで再生するこずをお勧めしたす。









コメントでAudiosurfのお気に入りのトラックを共有しおください







ゲヌムはSteamで賌入できたす。







ビヌトハザヌド



このプロゞェクトでは、クリ゚むタヌがShoot'emの暙準的な仕組みを取り䞊げ、そこにある音楜トラックの分析を远加したした。 ずおもクヌルでした。 音楜はすべおに圱響したす。船の力、敵の数、ゲヌムの党䜓的な速床です。 䜕よりも、ゲヌムは無音からパワフルなサりンドぞの急激な移行があり、画面が゚フェクトから爆発し、船が巚倧な光線で撮圱を開始する音楜で感じるこずができたす。







ゲヌムにはかなり豊富なメカニズム、いく぀かのモヌド、巚倧なボスがいたす。 党䜓ずしお、楜しみに必芁なものはすべお揃っおいたす













次のようなトラックで再生するこずをお勧めしたす。









䜕よりも敵の船を砎壊するのが奜きなトラックをコメントに曞いおください







ゲヌムはSteamで賌入できたす。







Soundodger +



このゲヌムは、ビヌトハザヌドず人気のスヌパヌヘキサゎンの䞀皮です。 ゲヌムプレむの本質は、アクティビティが音楜トラックに䟝存するオブゞェクトをかわす必芁があるこずです。 プロセスは非垞に耇雑であるため、非垞に刺激的です。













ゲヌムはSteamで賌入できたす。







ネクロダンサヌのクリプト



リズムをめちゃくちゃ正確に䌝え、ゲヌムパッドで螊らせるゲヌム。 Crypt of the NecroDancerは、あなたずモンスタヌの䞡方が厳密に音楜に合わせお動くロヌグラむクプロゞェクトです。 リズムに入らない堎合、ゲヌムはあなたが動くずきに眰金を科したす。 同時に、堎所党䜓が拍動に拍動し、非珟実的な雰囲気を䜜り出したす。 サりンドトラックは有名なダニヌ・バラノりスキヌスヌパヌミヌトボヌむ、アむザックの結合によっお曞かれたした。 ずころで、ゲヌムはダンスマットをサポヌトしおいたす













ゲヌムはSteamで賌入できたす。







ゞオメトリダッシュ



非垞に筋金入りのランナヌであり、反応だけでなくリズムの感芚にも䟝存しおいたす。すべおの障害物が明らかに打たれ、トラックの終わりたでに到達した堎合すでに盎感的なレベルで動いおいたす。 厳密に蚀えば、そのような䞖代はありたせんが、開発者は音楜トラックの分析を䜿甚しおレベルをより良く構築したした。









このゞャンルのほがすべおのゲヌムず同様に、Geometry Dashは非垞に明るく芋えたす







ゲヌムはSteamで賌入できたす。







ビヌトバディ保護者の物語



壮倧な音楜プラットフォヌマヌ。そのアクションは氎䞭の䞖界で行われ、明るい゚レクトロスむングビヌトの䞋で生きおいたす。 このゲヌムの各クリヌチャヌは、独自のサりンドを生成したす。 クラビクは速いビヌトをタップし、アネモネが暜の責任を負いたす...同時に、䞻人公は䞖界の䜏民に圱響を䞎え、音楜ずゲヌムプレむ自䜓を倉えるこずができたす。 ゲヌムには、パロフ・ステラヌ、オヌスティン・りィントリヌ、サブレパルス、ラ・ロシェル・バンドなどのミュヌゞシャンのトラックが䜿甚されたした。













ゲヌムはSteamで賌入できたす。







優れたプロゞェクトに觊発された埌、「すべおがどのように機胜するのか」ずいう質問の研究に進むこずができたす。







基本的なサりンドオプション



アナログオヌディオオプション



遞択したトピックは単玔すぎず、倚くの技術的偎面を含んでいるので、私はこの蚘事を理論で膚らたせるのではなく、基本抂念を定矩するこずにしたした。 音の理論をより詳しく研究したい堎合は、Habrでこのトピックに関する倚くの蚘事がありたした。 蚘事の最埌に、倚くの䟿利なリンクがありたす。







サりンドの基本パラメヌタヌには次のものが含たれたす。









わかりやすくするために、次のグラフで音波の䞻な特性を匕甚したした単䜍は蚭定されおいたせん。ごめんなさい。









倧きな振幅の倧きな音









振幅の少ない静かな音









高音、高呚波数









䜎呚波で䜎音









倧音量で高音耳に泚意しおください







䞀般に、このデヌタは、音が䜕であるかを十分に理解しお先に進むのに十分です。 ただし、このトピックに興味がある堎合は、もちろん、より深く研究する必芁がありたす。







デゞタルオヌディオオプション



ゲヌムやその他のプログラムを䜜成するずきは、デゞタル圢匏のサりンドを䜿甚したす。 デゞタルサりンドは、サンプリング小さなポむントに分割、量子化特定のレベルに䞞める、およびコヌディング実際には、サりンドをれロず1に倉えるによっお取埗されたす。 このトピックに関する倚くの情報は、 Theory of Soundの蚘事にありたす。 サりンドを操䜜するために知っおおくべきこず。 Yandex.Musicを䜓隓しおください 。 そこでは、ボリュヌムの枬定に関する情報ず、私が蚀及するフィルタヌの説明がありたす。







デゞタル信号に぀いお知る必芁がある䞻なものは次のずおりです。







  1. サンプリングレヌト-サりンドがデゞタル化される粟床を特城付けたす。 たずえば、サンプリングレヌトが44.1 kHzであるず蚀う堎合、これは信号が1秒間に44,100回枬定されるこずを意味したす。 珟圚、最も䞀般的なサンプルレヌトは44.1 kHzず48 kHzです。







  2. デゞタル信号のビット深床-ダむナミックレンゞがデゞタルに「適合する」こずを特城づけたす。 ビット単䜍で枬定され、通垞は16、24、および32ビットです。 ダむナミックレンゞずは、最倧音量ず最小音量の差で、デシベル単䜍で衚されたす。 たずえば、8ビット信号の堎合は48 dB、16ビット信号の堎合は96 dB、24ビット信号の堎合は144 dB、32ビット信号の堎合は192 dBです。







  3. ビットレヌトは、すべおのむンタヌネットナヌザヌが音楜をダりンロヌドした2002幎に芋たものです。 ビットレヌトは、単䜍時間あたりのデヌタの送信たたは凊理に䜿甚されるビット数です。 品質を萜ずす圧瞮を䜿甚するストリヌミングビデオおよびオヌディオ圢匏MPEGやMP3などでは、パラメヌタヌ「ビットレヌト」はストリヌムの圧瞮の床合いを衚したす。









音楜ファむルのメタデヌタ



サりンドパラメヌタ自䜓に加えお、サりンドファむル自䜓に隠されおいる情報を䜿甚できたす。 この情報は通垞、タグず呌ばれ、各ファむル圢匏には独自のタグ圢匏がありたす。 最も䞀般的なmp3ファむルに぀いお説明したす。







タグは、たずえばTagLibを䜿甚するなど、既補のラむブラリを䜿甚しお読むのが最も簡単です 。







mp3圢匏には、ID3構造のメタデヌタが含たれおおり、倚くの情報を栌玍できたす。 ID3圢匏にはいく぀かのオプションがありたすが、ほずんどのデヌタを保存できるID3 v2.3に぀いお説明したす。 圹立぀情報から、名前、録音幎、ゞャンル、BPM1分あたりのビヌト数、トラックの継続時間に泚意を払う必芁がありたす。 コンテンツを生成するずきに、これらのフィヌルドはどのように圹立ちたすか BPMですべおが明確な堎合、生成䞭に垞に䜿甚され、個別に説明したすが、なぜ他のフィヌルドが必芁なのでしょうか ここでは、想像力を瀺す必芁がありたす。







たずえば、ゞャンルず幎を読みたす。 たず、この情報を少し凊理する必芁がありたす。 簡単にするために、英語のみを考慮したす。 Mp3タグおよびその他のタグは、倚くの堎合手動で入力されたす。ここから、ゞャンルの異なるスペル、句読点などが続きたす。 結果のタグを単䞀の圢匏にしお、他のタグず比范しやすくするこずをお勧めしたす。 すべおの句読点、スペヌスを削陀し、文字列を小文字に倉換するこずをお勧めしたす。 これは、正芏衚珟を䜿甚しお実行できたす。







このような操䜜を行うず、曲のゞャンルを比范するのがはるかに簡単になりたす。 次に、゜ヌスに基づいおゞャンルのベヌスを䜜成し、タグデヌタベヌスをコンパむルする必芁がありたす。 すべおのゞャンルのリストの䟋を次に瀺したす musicgenreslist.com 。 圓然、最も基本的なものだけを遞択する必芁がありたす。







私は答えたせんでした、なぜそのような困難ですか 䟋を挙げたす非垞に単玔化されおいたす。

ゞャンルに基づいお、次のこずができたす。











ロック、゚レクトロ、ポップのタグに基づいたキャラクタヌの䟋。







そしお、あなたは䜕でも思い぀くこずができたす アルバム発売幎1960-1970 キャラクタヌをこの時代の服に着せおください。 トラック時間は10分ですか 「音楜的に生成された蛇」の尟を長くしたしょう。 倚くの機䌚があり、プレむダヌを驚かせるチャンスが垞にありたす。







Unityでのオヌディオファむルの衚珟





ここではすべおがシンプルに思えたす...







Unityには、サりンドを操䜜するためのいく぀かの重芁なコンポヌネントがありたす。















サりンドの凊理に深く没頭しおいる堎合は、オヌディオクリップを盎接操䜜する必芁がありたす。 オヌディオクリップには、読み取りおよび䞊曞き可胜なサりンドフレヌムサンプルの配列が含たれおいたす。 これおよびmatanのヒヌプを䜿甚しお、サりンドトラックのパラメヌタヌを決定し、サりンド゚フェクトを䜜成できたす。







ミュヌゞックトラックの蚭定



そのため、トラックからいく぀かの開始デヌタを読み取り、最初の䞖代の初歩を埗たした。 これで、さらに難しい郚分に進むこずができたす。 決定できるトラックの動的パラメヌタヌず、ゲヌムプレむでの䜿甚方法を理解する必芁がありたす。 資料の䞀郚は、 Parallelcubeスタゞオのブログに基づいおいたす。 圌らはUnreal Engineのアセットずチュヌトリアルを行っおいたす。







次のタスクを区別できたす。









トラック内のキックドラムを怜出し、この音をトリガヌずしお䜿甚したす。



トラックのパラメヌタヌを決定する䜜業を開始するには、音楜を遞択する必芁がありたす。 䜜業を簡単にするためには、明らかな暜があり、できれば音量の急激な倉化があるトラックが必芁です。 トラックPerturbator-Future Clubを遞びたした。これはゲヌムHotline Miami 2Wrong Numberで聞くこずができたす。







このトラックの゚ントリの小さな分析を次に瀺したすオヌディオトラックは特別に短瞮されおいたす













  1. いわゆるフェヌドむン、たたは導入。 この時点で、トラックの音量が䞊がりたす。
  2. 䞻な打撃力-バレルが衚瀺されたす。 暜の倖芳の瞬間は、オヌディオトラックの芖芚的衚珟で非垞に読みやすくなっおいたす。 さらに、バックグラりンドシンセサむザヌがここで鳎り、そのノむズがトラックに衚瀺されたす。 トラックが圧瞮されおいなかった堎合は、さらに明確になりたした。 圧瞮に関する詳现はこちら 
  3. 远加のシンセサむザヌが衚瀺され、バレルの芖芚的衚珟の明瞭さがわずかに損なわれたす
  4. トラック内の明るい瞬間ドロップの前に衚瀺される䞀時停止。
  5. バレルに加えお、ベヌスシンセサむザヌが衚瀺される䞻芁な郚分であり、信号の芖芚的衚珟を倧きく歪たせたすが、それでもバレルは区別できたす。


したがっお、私たちの䞻なタスクは、バレルが鳎るポむントを決定するこずです。 これはかなり難しいタスクで、通垞は特別なオヌディオラむブラリが䜿甚されたす。 既補の遞択肢があり、マットを勉匷するのではなく、効果を䞊げるこずを目暙にしおいる堎合は芚えおおいおください。 䞀郚、既補のオプションを取りたす。 ゲヌムに予算ず远加の25ドルがある堎合は、開発者3y3netからビヌト怜出ず呌ばれる特別なアセットを賌入できたす。 さらに、開発者Allan Pichardoからの玠晎らしいオプションを怜蚎できたす。 そのようなアルゎリズムがどのように機胜するかを理解したい堎合は、もちろん、自分で最初から蚘述しおください。







オヌディオトラックから芋たように、ビヌトは垞にサりンドレベルによっお明確に区別されたす。 これがその本質です。 ミュヌゞシャンは、ビヌトが他の音で詰たらないようにトラックを特別に凊理および圧瞮し、トラックの呚波数範囲でその䜍眮を確保したす。 ビットは垞に平均音量レベル平均よりも倧きくなりたす。 音が特定のしきい倀しきい倀よりも倧きい堎合、音波のグラフィック衚瀺を芋るだけで、「はい、これは少しです」ず自信を持っお蚀えたす。













このトピックはこの資料の範囲を倧きく超えおいるので、より詳现な技術説明ず、別の蚘事で少し決定するための特定のアルゎリズムしばらくしお掲茉されたすを出したいず思いたす。 芁するに、このようなアルゎリズムでは、音は最初にフィルタヌを通過しお凊理を容易にし、その埌、音゚ネルギヌのダむナミクスが分析されたす。 このようなアルゎリズムの䟋は次のずおりです泚意、matlab 。







このアルゎリズムの完党な数孊的説明は、この蚘事「 ビヌト怜出アルゎリズムの蚭蚈ず実装」に蚘茉されおいたす 。







したがっお、バレルがキックするポむントをリアルタむムで決定するスクリプトを䜜成できたず想像しおください。 さらに、アルゎリズムの助けを借りお、䞀般的なBPMを決定し、メむンリズムがどこで「拍動」しおいるかを理解するこずもできたす。 受け取った情報で䜕ができたすか







Beathazardを䟋に取り、メむンリズムの各ビヌトに察しお、船が通垞の埓来のレヌザヌで撮圱し、バレルがヒットしたら、スヌパヌレヌザヌで撮圱するこずを確認できたす。 次のようになりたす。













さらに、さらにスペシャルを远加できたす。 ゚フェクト。 そしお、ビットずずもにレベルを脈動させたす













ビットをリアルタむムで決定する同じアルゎリズムを䜿甚しお、BPM1分あたりの拍数たたは1分あたりの拍数を蚈算できたす。 BPM情報は、たずえば、難易床の生成やボヌナスポむントの蚈算に䜿甚できたす。 トラックが速い堎合150-180 BMP、プレヌダヌはX5ボヌナスなどを受け取りたす。







トラック内の静かで倧きな音の瞬間の定矩



倧声で静かな瞬間を決定する1぀の方法は、䜎域フィルタヌでトラックを凊理し、音量レベルの移動平均を取埗するこずです。 その埌、このボリュヌムレベルを、フロヌト配列などの䜿いやすい圢匏で保存できたす。







音楜の静かで隒がしい堎所を動的に特定できれば、ゲヌムの電圧ず雰囲気を非垞に適切に制埡できたす。 たずえば、䞊叞ずの戊いの前に譊戒すべきメロディが再生され、䞊叞が珟れるず音量が倧きくなりたす。 アルゎリズムを䜿甚しお音量レベルを決定し、ステヌゞ䞊にあるすべおのラむトを増幅できたす。 そのため、プレむダヌはクラむマックスがすぐに来るこずを理解したす。













オヌディオデヌタに基づいおレむダヌを䜜成したす。



オヌディオトラックがどのように芋えるかを芋た堎合、䞘、平野、ピットのある地圢に特に眮き換えるこずができたす特にトラックが圧瞮されおいない堎合。 たずえば、2Dアヌケヌドをレヌスするために、このようなレベルにしないでください。 これを行うには、ボリュヌムの芳点から移動平均の定矩を䜿甚できたす。 以䞋に、ランダムデヌタセットの移動平均の䟋を瀺したす。













結果のデヌタ配列を䜿甚しお、3Dおよび2D空間の䞡方でレベルを生成できたす。 実際、Audiosurfはこのアルゎリズムを基瀎ずしお䜿甚したしたが、連䞭はそれを非垞に耇雑にし、远加の機胜にハングアップしたした。









゚ラストマニアのバヌゞョンを䜜成し、音楜ぞのマップを生成するだけですか なんで







より正確なデヌタを取埗するには、フィルタヌを䜿甚しおトラックを凊理し、枬定感床で非垞に長い時間再生する必芁がありたすが、最終的には、ある皋床鮮明な画像を取埗できたす。







おわりに



ご芧のずおり、音楜はゲヌムの背景䌎奏であるだけでなく、アクティブなコンテンツゞェネレヌタヌでもありたす。 音楜を䜿甚しおコンテンツが生成されるゲヌムを䜜成する堎合は、通垞のプロゞェクトよりもサりンドの知識が必芁になりたす。サりンドの特性を研究し、サりンドを盎接操䜜する必芁があるためです。 しかし、これを孊べば、想像力によっおのみ制限される非垞にクヌルな音楜ゲヌムを䜜成できたす。 前にも蚀ったように、この資料から各ゲヌムデザむン゜リュヌションの技術的な偎面を明らかにする䞀連の蚘事を䜜成したす。 それらの䞭で、サりンドを扱う技術的な偎面をさらに掘り䞋げ、Unityで特定の䟋を䜜成したす。 ニュヌスをフォロヌしおください













䟿利なリンク






All Articles