{"id":6441,"date":"2021-06-22T21:29:56","date_gmt":"2021-06-22T21:29:56","guid":{"rendered":"http:\/\/desres20.netornot.at\/?p=6441"},"modified":"2021-06-22T21:29:56","modified_gmt":"2021-06-22T21:29:56","slug":"wwise-implementierung-in-unity-teil-5-aklistener-akgameobj-akenvironment","status":"publish","type":"post","link":"http:\/\/desres20.netornot.at\/?p=6441","title":{"rendered":"Wwise Implementierung in Unity (Teil 5: AkListener, AkGameObj &#038; AkEnvironment)"},"content":{"rendered":"\n<p><a href=\"http:\/\/desres20.netornot.at\/?p=6337\">In meinem letzten Blogeintrag<\/a> habe ich das grundlegende Prinzip der Soundengine von Unity, die auf der Verwendung von <em>Audio Listenern<\/em> und <em>Audio Sources<\/em> basiert, vorgestellt. Die Wwise-Soundengine arbeitet auf dem selben Prinzip und hat standardm\u00e4\u00dfig bereits vorhandene Skripte mit welchen die selben System realsiert werden k\u00f6nnen. Diese Skripte hei\u00dfen <em>AkAudioListener<\/em> und <em>AkGameObj<\/em>. <em>AkAudioListener<\/em> ist der Wwise-Ersatz f\u00fcr den <em>Audio Listener<\/em> von Unity.<\/p>\n\n\n\n<p>Ist die Position und Blickrichtung eines <em>GameObjects<\/em> notwendig, was bei den meisten diegetischen Kl\u00e4nge einer dreidimensionalen Spielwelt der Fall ist, muss dieses <em>GameObject<\/em> auch als ein solches in Wwise registriert werden. Daf\u00fcr gibt es das <em>AkGameObj<\/em>-Skript, das auf alle <em>GameObjects<\/em> gelegt wird.<\/p>\n\n\n\n<p>Das <em>GameObject<\/em>, das als <em>Main Camera<\/em> dient und auf welchem das <em>AkAudioListener<\/em>-Skript liegt, muss ebenfalls mit einem <em>AkGameObj<\/em>-Skript versehen werden, weil auch dessen Position und Blickrichtung notwendig ist, um den Abstand und die Richtung zu anderen <em>GameObjects<\/em> berechnen zu k\u00f6nnen. In Wwise kann das Verhalten des Richtungsh\u00f6rens und auch des Pegelabfalls bei steigernder Distanz von <em>Audio Listener<\/em> zu klangerzeugenden <em>GameObject<\/em> (<a href=\"http:\/\/desres20.netornot.at\/?p=6337\">wie der Rolloff in Unity<\/a>) konfiguriert werden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"353\" height=\"466\" src=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/3DPositionWwise.jpg\" alt=\"\" class=\"wp-image-6467\" srcset=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/3DPositionWwise.jpg 353w, http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/3DPositionWwise-227x300.jpg 227w\" sizes=\"(max-width: 353px) 100vw, 353px\" \/><figcaption><em>Konfiguration des Klangverhaltens von Objekten in einer dreidimensionalen Spielwelt<\/em><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"915\" height=\"635\" src=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/AttenuationWwise.jpg\" alt=\"\" class=\"wp-image-6468\" srcset=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/AttenuationWwise.jpg 915w, http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/AttenuationWwise-300x208.jpg 300w, http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/AttenuationWwise-768x533.jpg 768w\" sizes=\"(max-width: 915px) 100vw, 915px\" \/><figcaption><em>Pegelabfallverhalten abh\u00e4ngig von der Distanz des Audio Listeners zum GameObject<\/em><\/figcaption><\/figure>\n\n\n\n<p>Das <em>AkGameObj<\/em>-Skript kann zus\u00e4tzlich auch noch andere Parameter aus dem Spiel \u00fcbermitteln, wie Switches, RTPCs oder Umgebungsinformationen. <\/p>\n\n\n\n<p><em>Reverb Zones<\/em> werden Wwise mithilfe von Aux-Bussen realisiert, mit welchen innerhalb von Wwise ein Hall-Effekt zum Direktsignal hinzugemischt wird. Tats\u00e4chlich k\u00f6nnen auch andere Effekte statt Hall-Effekte verwendet werden. Das hierf\u00fcr ben\u00f6tigte Skript ist das <em>AkEnvironment<\/em>-Skript, welches auf einen Collider gelegt wird. Im Inspector des Collider-<em>GameObjects<\/em> kann ausgew\u00e4hlt werden, welcher Aux-Bus aktiviert werden soll, sobald der Collider betreten wird.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"466\" height=\"136\" src=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/AkEnvironment.jpg\" alt=\"\" class=\"wp-image-6466\" srcset=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/AkEnvironment.jpg 466w, http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/AkEnvironment-300x88.jpg 300w\" sizes=\"(max-width: 466px) 100vw, 466px\" \/><figcaption><em>AkEnvironment Skript, welches den &#8220;Testreverb&#8221; aktiviert<\/em><\/figcaption><\/figure>\n\n\n\n<p>Dabei ist wichtig, dass das <em>GameObject<\/em>, wie z.B. der <em>Audio Listener<\/em> (also die <em>Main Camera<\/em>) im <em>AkGameObj<\/em> so konfiguriert wird, dass diese auf <em>AkEnvironment<\/em>-Skripte reagieren und damit ein Signal an den jeweiligen Aux-Bus senden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"465\" height=\"194\" src=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/EnvironmentAware.jpg\" alt=\"\" class=\"wp-image-6469\" srcset=\"http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/EnvironmentAware.jpg 465w, http:\/\/desres20.netornot.at\/wp-content\/uploads\/2021\/06\/EnvironmentAware-300x125.jpg 300w\" sizes=\"(max-width: 465px) 100vw, 465px\" \/><figcaption><em>Dieses GameObj ist Hall-f\u00e4hig konfiguriert<\/em><\/figcaption><\/figure>\n\n\n\n<p><br><\/p>\n\n\n\n<p>Quellen:<\/p>\n\n\n\n<p>[1] https:\/\/www.audiokinetic.com\/courses\/wwise301\/?source=wwise301&amp;id=Audio_Listener<\/p>\n\n\n\n<p>[2] https:\/\/www.audiokinetic.com\/library\/edge\/?source=Unity&amp;id=class_ak_audio_listener.html<\/p>\n\n\n\n<p>[3] https:\/\/www.audiokinetic.com\/library\/edge\/?source=Unity&amp;id=pg__wwise_components.html<\/p>\n\n\n\n<p>[4] https:\/\/www.audiokinetic.com\/library\/edge\/?source=Unity&amp;id=class_ak_game_obj.html<\/p>\n\n\n\n<p>[5] https:\/\/www.audiokinetic.com\/library\/edge\/?source=Unity&amp;id=unity_use__ak_environment__ak_environment_portal.html<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In meinem letzten Blogeintrag habe ich das grundlegende Prinzip der Soundengine von Unity, die auf der Verwendung von Audio Listenern und Audio Sources basiert, vorgestellt. Die Wwise-Soundengine arbeitet auf dem selben Prinzip und hat standardm\u00e4\u00dfig bereits vorhandene Skripte mit welchen die selben System realsiert werden k\u00f6nnen. Diese Skripte hei\u00dfen AkAudioListener und AkGameObj. AkAudioListener ist der<\/p>\n<footer class=\"entry-footer index-entry\">\n<div class=\"post-social pull-left\"><a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=http%3A%2F%2Fdesres20.netornot.at%2F%3Fp%3D6441\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-facebook\" aria-hidden=\"true\"><\/i><\/a><a href=\"https:\/\/twitter.com\/home?status=http%3A%2F%2Fdesres20.netornot.at%2F%3Fp%3D6441\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-twitter\" aria-hidden=\"true\"><\/i><\/a><a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=true&#038;url=http%3A%2F%2Fdesres20.netornot.at%2F%3Fp%3D6441&#038;title=Wwise+Implementierung+in+Unity+%28Teil+5%3A+AkListener%2C+AkGameObj+%26%23038%3B+AkEnvironment%29\" target=\"_blank\" class=\"social-icons\"><i class=\"fa fa-linkedin\" aria-hidden=\"true\"><\/i><\/a><\/div>\n<p class=\"link-more\"><a href=\"http:\/\/desres20.netornot.at\/?p=6441\" class=\"more-link\">Continue reading <span class=\"meta-nav\">\u2192<\/span><\/a><\/p>\n<\/footer>\n","protected":false},"author":32,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[],"_links":{"self":[{"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/posts\/6441"}],"collection":[{"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/users\/32"}],"replies":[{"embeddable":true,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6441"}],"version-history":[{"count":2,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/posts\/6441\/revisions"}],"predecessor-version":[{"id":6470,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=\/wp\/v2\/posts\/6441\/revisions\/6470"}],"wp:attachment":[{"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6441"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=6441"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/desres20.netornot.at\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=6441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}