Wednesday, 24 February 2016

ADR discussion with Doc Kane


Doc Kane is described as a veteran ADR Mixer. This is due to his credits and how he knows his way around ADR and can tell you anything about it. I found an interesting video from SoundWorks about his work with Disney and how he got involved with ADR. In the video he goes to talk about how ADR (or looping) was done back in the older days of the ADR process and is glad he was not doing ADR back then. He goes on to talk about how they did ADR for the Disney film, The Little Mermaid. It is a very interesting watch and do recommend watching this if you want to get into ADR. The video can be found here - www.soundworkscollection.com/videos/veteran-adr-mixer-doc-kane-of-walt-disney-studios

Monday, 15 February 2016

Character activated sounds: Unreal 4 tutorial

Welcome to another tutorial for audio in unreal engine 4!

Today's blog is going to be about spot sounds for certain characters. This includes creating a collision box and giving it its own parameters through the project settings and via the blueprint editor.

For future examples I am going to be using a silent version of the strategy game level provided by the Epic Games Launcher.

To start of creating a spot sound for your level you first need to add a new collision parameter to the engine. You do this be going into the project settings for the level editor. In the pop up window there is a collision sub menu under "Engine". In here you need to create a new object channel and give it a suitable name for your audio trigger. The following example is named for the minion asset so I called it "MinionAudioTrig". The default response to this was set to overlap so the engine knows what to do with this new channel.


The next step is to apply the newly created parameter to the character you wish. to do this you must see the blueprint for the character through the Viewport window in the blueprint editor.


When this window is open you can see the character asset with its assigned collision boxes. This particular character model has two collision boxes. This is not a problem for what you want to do with the new collision parameter. You are going to want to click on the sphere collision box. You then find your way over to the collision properties on the right of the blueprint window. Then set a collision preset to "Pawn" This keeps all of the pawns game mechanics together along with your newly acquainted property which in this case is "MinionAudioTrig"


For this case I want to make sure that the outside collision box does not trigger any sounds when the blueprint is complete. When clicked on it will bring up the same parameters that were in the last collision box. Now however you are going to make a custom preset. To do this you need to select "custom" from the collision presets. After that you will need to select your object type, in this case it will be "MinionAudioTrig". After that you then need to select the collision response for the audio trigger which is located at the bottom of the check boxes. This should be set to ignore. Now there should only be one working audio trigger for the asset.


This is where the fun starts. Blueprints. To start off you are going to create an empty blueprint class. When you select this option from the blueprints drop box you need to choose a new actor. This will be your hit box for the collision action. When you select actor you need to give this new blueprint a reasonable name and location of save.


After that procedure is finished you will be presented with an actor ball which is the heart of the blueprint. You need to add a collision box to this. the collision box is used as the hit box for the minion sphere which we sorted before. The audio will play when these two boxes cross each others path. To do this you need to add a new component, which is located at the top left of the blueprint window. When you find the add component drop down window, search for "Box Collision". This will be the hit box.


After this has been created you need to add a new event whilst the collision box is still selected. This can be found in the "Details" panel on the right of the blueprint window. Scroll down this panel until you see events. You must select "On Component Begin Overlap" to start your blueprint code.



You will then be introduced with the start of your blueprint code. This is where everything is done in the game engine. The first thing you need to know is that most code in blueprints are dragged out from other pins in nodes. The first node you are going to want to drag out is a branch node. This is dragged out from the top pin in the start of your blueprint code. You click and drag this pin into empty space and you search for branch in the search bar. This search function is your best friend, never not use it! A branch node is then formed where you dragged the node to be placed.


This branch is so you can have flow in your code of true or false (also known as 0 -false and 1-true). On the pin beneath the pin shown above called "Other Actor" You need to link a "GetClass" function up to this pin. This is important as you will need to select the minion blueprint in this node to make sure the code knows what it is doing the following blueprint to. (Note: the GetClass you need to use is a utility! And the name has no spaces.)


From this node you need to drag out a return value. This is called an "Equal (Class)" This node will be reasonable for selecting the asset you want to apply the function to. This is shown from the drop down menu from the new Equal (Class) node. In This instance I will be selecting my Minion Class as that is going to be my character that is going to activate the audio trigger. This node should then be linked up with the branch which was created earlier, pinning into the "condition" pin. The following sequence of images will give you a visual guide to these actions.




This next step is to show you how to create a variable. This specific variable I will be showing you will be showing how you can make a sound happen only once and never again without having to create a brand new blueprint. Firstly you need to make another branch from the "True" pin on the previous branch. You then need to look at the "Variables" menu on the left of the window and press the plus button next to the name of the menu. This creates a variable for the code. Give this a name of "Do Once?" as this will be available to you in your parameters outside of the blueprint window. It is important to mention the properties of this variable which can be tweaked in the details panel. The variable type "boolean" is basically an on or off switch. Other variable types do different things which we will get to later. There is a box which will be at default unchecked which will be the "editable" check box. You want to tick this box as it makes the "Do Once" mechanic be available to you in the edit window.

After you have done this you want to drag the variable from the variables tab on the left of the screen into open space which will bring up a selection box with the options "get" and "set". These options do different things. The "Get" value just created the variable for you to place into the code and be able to link up to a condition so the blueprint will be able to get that value when active. The "Set" value lets you put a part of your code into the variable so you will be able to set some settings for the code at that specific point in time. For this "Do Once" feature you need to select "Get" and then when that is placed into the blueprint you must link that up with your second branch. The following image of sequences shall give you an idea what to expect to see in order.






After this code is complete it is important that you compile and save this so you do not lose it in the event of a crash. You now need to give this variable its function. To do this you need a new node from the true value peg on your second branch. Search for "DoOnce" and you will find the function for the do once mechanic.


Once the function is now active you need to attach the sound function to the code. From the DoOnce node, pull out a new node from the completed pin and search for "play sound at location" To add your own sound to this function from the edit window instead of the blueprint window you need to add a new variable. The type of variable this will be is a "SoundCue" variable. You can search for this where you would select boolean in the details section. It is always easier to use the search function for this. When this is created you need to drag the variable into the code and "Get" the variable. This is then linked to the "Sound" peg in the play sound node. To make this viewable in the edit window you need to make this editable from the details panel. Next you need to set a location for the sound. However because we want to use this blueprint for multiple sounds you will need to bring in your collision box variable from the variables tab. This is labelled with a blue 3D box. You need to get this variable to be able to link this up with the location pin on the play sound node. To do this you need to pull a new node from the box variable pin and search for "GetWorldLocation" and then link this node up with the location pin on the play sound node. Below is the sequence to the following instructions in order. (Remember to compile and save!)








Now is for the part of the code that always goes wrong, so follow these instructions carefully. This part of the code will make the audio trigger register a certain amount of minions to only play a sound once every certain number of minions pass through. To start this code you first need two new variables called "Number of minions"(NumMinions) and one for "Max Minions". These variables need to be set to the type "Interger" because the Interger variables deal with the numbers within this engine.


Now to start importing the variables, you are going to first drag in your number of minions value and "Get" the value of this variable. It is important in this stage to compile after every variable you import and edit in the code. This is so you can edit the value on the minions. The value of this variable should be set to zero so the maths of this code starts from zero and not one.


After this variable is set you need to drag out a new node from the number of minions pin. You need an "interger + interger" pin (In the search bar you can just put the plus icon (+) and you will find it in the first result).


In this new variable node you need to have the value in the node set to 1. This should be set as a default but always check if it is not. From this you need to have a "Set" variable in place. To do this you need to drag the number of minions variable into the blueprint and "Set" it.Then link up the interger + interger nodes so this completes the flow if the code. You also need to link up the set variable for the number of minions to the second branch in your code with the DoOnce variable attached to it. This will be linked up via the False pin to the left side of the Set variable.




Now from the Set variable you need to pull out a new branch function from the right pin of the variable.


Now you will need to get both of your interger variables. Grab these from the variables section (Number of minions and Max Minions) and put then between your new branch and your set value. When they have been imported, make sure you compile! This is so you can get the settings of the variables. When imported and compiled set the "Max Minions" value to how many minions you want to pass through before the sound plays again. This is found when the Max Minions variable is selected and in the details panel under "Default Value".



These variables now need to come and connect to each other. This is done be using an "Equal (Interger)" node. Drag one out from the number of minions variable and connect both of the variables to the Equal node as shown below.



You then need to link up the Equal node with the condition pin on the Branch you have set this up next to (near the "Set" variable for the number of minions).


This branch then connects to the play sound at location node at the end of the code.


We are almost done with the code now. The final action you have to do is reset the number of minions. To do this you need to "Set" the number of minions variable and place this at the end of your code (next to sound at location). The value of this should be set to zero so it will reset. This node should be linked with the out pin on the right of the play sound at location node. Once the variable is in place, compile and save the code again. The code is now done.


You can now place this blueprint into your game world and put attach sound cues to this in the "Default" section of the details panel. Do with this code as you wish. It can be adapted to with multiple codes however that is for you to figure out. 



Hope this blog has helped you out and happy coding! :D

Don't get to stressed now!

Wednesday, 10 February 2016

Creating A World With Sound



Hello to all!

Creating a world with sound is a lot more important than you can imagine. When you are working on a film and you are wandering why something does not sound right with the sound effects or your dialogue. None of that is going to sound right without the proper world to place these sounds into. Working with backgrounds could well be one of the most important jobs in sound design to be given, because you have to escape the image on screen that you are working with. When working with film this becomes step one for sound. Yes at first you will think you need massive impact sounds and fighting sounds but you must first ask yourself "where is this set in?" That is the main question that must be answered. You could be working with films like the hobbit for example and you decide to put a police siren in the background. That is not going to fit. Even when you are working with backgrounds and are only working with room ambience, as a sound designer you need to breakout and build a universe that is outside of a small room that the scene may be set in.

To make this point clear imagine a scene that is set in a living room. The first thing that comes to your mind will be a television, a clock ticking or anything that should be in a living room making sound. Then ask yourself "What is outside?" You suddenly have a bigger picture to work with such as wind, cars crossing the window, people talking outside as they walk past the house. You can take this even further as to describe sounds that would possibly be half a mile away such as a busy motorway in the distance, a near by airport, a heard of sheep running across the road. There is a whole word waiting for you to be made! Make the world your own. It can fit the scene easily by mixing it so the backgrounds are distant. Mixing is the key to make sure that you get the correct feel of the backgrounds and also towards making the scene a lot less quieter which is usually not good to have (unless you are working with horror).

To show an example of how to create a world you need to look at the sci-fi genre of film. To pinpoint further lets look at Avatar. The backgrounds in the film are astonishingly accurate to what they look like, you want to go deeper and explore the world of Pandora. When you see the floating rocks for the first time you get a good listen to what the world of Pandora really sounds like and it is so vivid that you feel like you are there when you are watching it. This is what you need to aim for when you are doing backgrounds. Get the feel of reality and breakout of the box!


Shannon Mills Avengers Endgame Audio interview

Hello fellow button pushers! After seeing Avengers Endgame I was in awe over how the entire production team made this gigantic scale of...