Provided that a certain knowledge of Wwise is required, these didactic videos by Bjørn Jacobsen are brilliant and I highly recommend them. The entire brief course is built around the idea of “making a game in a fictional Wwise environment to eventually have a project that will fully work without a game”. The chapter I’m focusing on is called Part 5: Complex footstep switching with simple RTPCs.
In a quest to teach how to think ahead, he creates a project that will allow the player to have proper footsteps sounds based on different surface materials, in different wetness conditions.
The Switch Group called GroundMaterialSwitch, under Game Syncs, contains 23 switches. They’re interconnected with another switch related to the wetness of the ground itself, GroundWetnessSwitch, and driven by an RTPC called RTPC_GroundWetness, under Game Parameters.
The Switch Container in Project Explorer, called PLYR_Footsteps_MaterialSwitch, reflects the same structure, so it contains 23 Switch Containers following the naming convention {material}_WetnessSwitch
. Therefore, for the material switch Dirt inside my Switch Group, I’ll have a Switch Container named Dirt_WetnessSwitch, and so on.
Bjørn gives an insight on how to manage audio assets in the filesystem: it’s a good idea to have a root folder called Originals
containing subfolders based on a structure consistent with the Wwise project:
📂 Originals
└─ 📂 SFX
├─ 📂 Locomotion
├──── 📂 Dirt
├──── 📂 Forest
├──── 📂 [etc]
└─ 📂 TestFiles
I suppose this shouldn’t be new to anyone who has worked with Audiokinetic’s middleware tool, especially if they’ve integrated REAPER with Wwise.
What I want to improve is the process of creating local folders that mirror the same structure of the Wwise project. In my current example with 23 Switch Containers, each one needs a local folder where to put sound assets that will be imported in Wwise. Instead of manually copy the switch names and use them to create 23 new folders in my filesystem, I devised a more efficient method.
Note — The following solution is based on macOS (10.14), using GNU bash version 5.2.15. I’m not sure whether it’s possible to replicate the same steps on Windows, maybe using WLS.
Switches
under the Wwise project directory.Default Work Unit.wwu
.<SwitchGroup Name="GroundMaterialSwitch" ID="{CE340E43-285B-4633-92EB-BA5E6B004F9D}">
.<ChildrenList>
item is copy-pasted in a new empty file called switches
saved on the Desktop.<Switch Name="Dirt" ID="{3840C5F2-2A61-446D-A0B3-DD17F244B85D}"/>
<Switch Name="Gravel" ID="{53E3F231-E68C-4289-A68D-1A67EB3051F8}"/>
<Switch Name="Sand" ID="{1338FA64-99D1-4A81-9AE8-3C07D6F99F02}"/>
<Switch Name="Forest" ID="{BF071261-27D6-4AE4-9746-3EA172654089}"/>
<Switch Name="Grass" ID="{C22E57E2-99C6-407A-871A-0785DF5D63B0}"/>
<Switch Name="Flowers" ID="{BB16ECA2-6508-4E8D-BB19-9D38C6F59226}"/>
<Switch Name="ForestPine" ID="{57E00A82-4C39-411E-9407-E2EDFAA593CC}"/>
<Switch Name="Ice" ID="{F54DD30B-78BB-4CCD-8847-62743F907974}"/>
<Switch Name="Leaves" ID="{E6E0F142-22A6-4E1F-8C66-7DF5E06B455C}"/>
<Switch Name="Marsh" ID="{C81CD7A9-9818-4A69-A1F0-7C5865907963}"/>
<Switch Name="PuddleDirt" ID="{C0304BF8-4E9E-45D7-B23A-249CE4A7429E}"/>
<Switch Name="PuddleGrass" ID="{018C0AB2-9433-461F-86E5-5AD41E403CDE}"/>
<Switch Name="Rock" ID="{9780F7CA-E4C3-48E4-A756-3D790CDD039A}"/>
<Switch Name="Snow" ID="{BA8C2AEC-2FAA-4610-A661-ADCCEC20A42E}"/>
<Switch Name="Stone" ID="{A85AE1E2-FA8E-46C9-97DF-D4BA3C74A8D1}"/>
<Switch Name="StoneFloor" ID="{3B3ABCDF-C621-4F43-A709-9E24C0C8DE78}"/>
<Switch Name="Swamp" ID="{36EA176C-9DCC-4CF3-B03B-FAE077C6006C}"/>
<Switch Name="Tiles" ID="{CED50554-A79C-4EEB-9F81-1AAE0B93EA08}"/>
<Switch Name="Water" ID="{4CEB20B8-827F-4A69-A4B2-C552BEA825C5}"/>
<Switch Name="WaterPuddle" ID="{928F79CB-5030-4A3B-97B1-BF78FFB536F4}"/>
<Switch Name="Wood" ID="{4C74D828-835C-421B-9D54-794B6A38196B}"/>
<Switch Name="WoodFloor" ID="{302E8991-2E81-4960-B744-9D5269BE0081}"/>
awk
in a Terminal session:
$ awk -F '"' '{print $2}' ~/Desktop/switches > ~/Desktop/switches_names.txt
The resulting switches_names.txt
content:
At this point, it is quick to create the folders based on the above list: open the root folder of the video game project in a Terminal window and type the following command, which will create a directory for each switch name:
$ xargs -tI % mkdir % < ~/Desktop/switches_names.txt
The Finder window that will contain the switches folders:
The Finder window after it’s been populated by the xargs
script:
The above process might look laborious, depending on the level of familiarity with a shell window, however:
Of course, the same procedure can be adopted for similar tasks, including for the aforementioned REAPER integration.
I strongly suggest to check his blog out, as it’s a goldmine of deep, authentic and interesting reflections. Matthew is yet another person that I’ve found through the decentralised web — which is how the internet was originally built.
When the algorithm is off, the lights come in.
The first track in particular reminds me of Pink Floyd’s The Wall, though in this album we are not asked to empathize with a self-isolating rock musician who uses drugs to cope with unresolved childhood trauma. Simone Silvestroni plays a mean bass, and unlike many albums his bass and piano don’t get buried in the mix.
Even if this wasn’t excellent music, I would still recommend it. As the horrors of the Second World War, the Holocaust, and the all-pervading existential terror of the Cold War fade from living memory, it falls to artists to keep that history alive for future generations lest it be repeated. Matthew Graybosch
17 January 1991 was a Thursday, pretty close to my twentieth birthday. Young people in my hometown decided unanimously to give up the school day, and gather in the city square to loudly protest the beginning of Operation Desert Storm, better known then as the Gulf War.
Lots of slogans were making the rounds, we were understandably outraged and scared: in the prime of our lives, that day represented the fateful moment where a real war unfurled in front of our eyes. Live on TV, no less. Despite sharing the feelings with the crowd, part of me was sceptical about how effective a group of screaming teenagers from a small town in a western province could be.
Around noon, a couple of classmates and I decided to leave, heading for the close seaside town of Rimini. We drove quietly for half an hour, greeted by a bright sun and a gentle breeze. While walking to a near bar, I was attracted by a record store on the opposite side. Apparently, that was all it took back then to turn my distraught teenager worries around: a captivating melody in the air, the smell of vinyl and a dusty carpet.
My two friends waited patiently on a bench outsde, while I turned my attention to a specific section. Still mourning their relatively recent split, I knew I would flick through The Smiths’ repertoire, indulging while reading through the sleeve credits. Of course everything was already familiar — how could I expect to find anything new from a band that didn’t exist anymore? Morrissey’s Viva Hate didn’t really placate my craving for their music: sorry, Stephen Street. I barely knew about his recent collection Bona Drag.
I waved at Luca through the shop window, signalling that I was about to join them, when I caught the grey cover of a 45 RPM single by Morrissey. I immediately picked it up and had a thorough look. It was titled Yes, I’m Blind — typical Morrissey! I’d never heard of that, so I asked the clerk. After his unsatisfactory explanation, I’d decided to buy it on a whim. Because yes, with certain things, I’m blind.
Couldn’t wait to go back home and listen to the song. I still remember how I immediately loved that single. The chord sequence, the minimalistic arrangement, the clean and thoughtful performance that framed perfectly Morrissey’s lovely whining. Of course I was stunned when I read the full credits: written by Andy Rourke.
Requiescat in pace, Andy. Forever and ever my favourite bass player.