I am returning to making audio for the game. I am currently in the process of trying to find sounds that give evidence that the player is in water, but the water is still enough to not sound like its a stream. This is a pretty difficult specification but I found a gentle running water sound, and the sound of water lapping and I think I can combine them to create the desired effect.
I have also discovered that interactive media does not have a definite start and end point, so audio must be dynamic. This means that I need to create short sound clips that can be looped seamlessly.
I don't know much about sound, but I read online that you can find the 'zero-crossing' and if you loop a sound here, it is seamless. Audition has a built in function that lets you find these crossing. I did this myself, and it seems to work.
I have the audio running seamlessly in Audition, but whenever I export it, it adds a tiny section of silence both to the start and end of the clip. I can't seem to find any solution.
I started a new session, and this time it worked no problem. However, as soon as I added an effect, it created the silence again.
After a couple of dozen attempts, I discovered I can add the effects to the original track, then I can trim it to the zero crossovers in the multitrack mixdown and it'll export to the correct lenght.
The video below shows the general ambiance throughout the scene. I think it got a little bit distorted through the screen recording but it illustrates the general mood of it.
I am now considering how to apporach the final room (power). My mind is immediately drawn to tombs, as they are a sort of architectural expression of power. They tend to use elevation and scale to express this power, so I'm going to have a deeper look into how I can reappropriate the design of a tomb to fit into my ride.
I have looked into a couple of tomb designs and I realised the Taj Mahal is a tomb but I hadn't considered it as such. The design makes sense as a tomb, as it has a really imposing structure. It even has a path of water leading right up to the tomb.
I am thinking that I can strip away the walls and the ceiling, exposing the player to a skybox where they can really get a sense of the scale.
The water shader I made originally no longer fits the style of the rest of the expreience. It's too transparent and doesn't really look like water. I have decided to strip the shader back, and I am going to try and construct nicer looking water.
First, I removed the transparency, and changed the gradient noise to voronoi noise. I feel like the voronoi noise makes the water appear still instead of flowing. I also have mapped the colour to the y-height of each vertex.
I'm trying to change the alpga so that it is slightly transparent in the darker areas and opaque at the light areas.
I found a tutorial (embeded below) that shows how to create refraction in your water shader. I had come across this before, but I thought it completely unnecesary for my project.
However, I decided to give it a go and it looks way better. I thought I could get away with semi-transparent material to look like water but the refraction just completes it.
This shader looks great in my scene, but it requires a lot of texture to notice the refraction. This doesn't work so well in scenes that are dark and don't have so much texture.
I plugged my refraction calculations into the vertex displacement to give the water a gentle wave. This looks much better in dark rooms.
Today I cleaned up some of the wealth scene. I added a specific ambient noise for this scene, and I plan to have a different one for each room.
I also started designing the Mausoleum for the power room. I want it to be large, and have a sort of pyramid structure when the perspective acts on it.
The model is pretty basic, but I can easily make it more complex if I need to in the future. For now, I need to focus on adding the displays of power up either side, then I will have the minimum working product for the degree, giving me a decent amount of time to polish it up.
I also made a model of a cocktail for the wealth room. Tonight I am going to put together a quick powerpoint for the tutorial tomorrow.
I realise I need to make a raft for the player to sit in. I was thinking of a meaningful appearance of the raft but I realised the audience can't see the outside while they are sitting in it. I should therefore make it look like a normal ride so the audience realises this is a theme park ride.
I built a quick raft so I could test it for scale. I need the raft to always point forward during the experience however this raises issues. I can't use the rigidbody, as it's position is given by its parent, I also don't want to animate, as it will make it more difficult to make changes to the animation.
I realised I could subtract the previous position from the current position, then normalise it. This gives a vector that can be applied to the transform that will always point in the direction of movement. However, in practice this becomes jumpy. Instead, I will use an InvokeRepating to check every half a second or so, then lerp the rotation.
I have been caught up in writing my dissertation again as the hand-in is next Friday, 19th March. On another read, I have noticed I submitted the final draft with many strange mistakes but hopefully it is much more readable now.
I have moved my focus to the beginning of the game. I have gotten rid of the ticket barrier as it just doesn't seem to fit into the theme of the ride. I plan to make the entrance establish that this is in fact a theme park ride. I will add a queue, maybe some sculptures, posters, a control panel and all that nice stuff to introduce the themes. I would also like to draw attention to the image of the theme park ride as an image for internet media. I should feature some internet themed imagery too so the audience can draw the connection.
The image above shows the entrance scene in its current state. It is still hardly populated with any imagery, but I have the space for sculptures, posters and control panels. I also neatened up the animations and split them into their own individual rooms making it easier for me to edit them. There are also no more harsh changes in speed or direction.
The scene now starts upon looking at a floating glowing orb. I plan to use these as a sort of in-game UI system, where the interactable objects follow a consistent design.
Today I had a tutorial with Paul where we discussed where to move forward with this piece. We agreed that I should utilise the strength of an realtime 3D environment and push the interactivity. We discussed some quick ways to really deepen the experience of the scene like using the raycast from the camera to trigger events or using randomness to make the scene slightly different each time. The use of post processing volumes can be used to quickly change the atmosphere of a scene and it can be driven by procedural values.
Paul also suggested the use of instantiating many physics objects or using the raycast to bring emphasis to the object the audience looks at. I can use this to create a woozy feeling or just to bring attention to certain objects.
I have created a system that spawns cyptocurrency coins, and drops them to the floor where they make a sound and rise back up towards the ceiling. I am trying to adjust the 3D sound settings but nothing seems to make any changes. Apprently, you need to use an audio mixer within Unity, which is a feature I was totally unaware of until now. As I played around with the Audio Source settings, I realised that the logarithmic rolloff never reaches zero, so it never silences the sound. This can be fixed by pulling down one of the handles on the rolloff so it touches zero.
I am also going to add text to my interaction orbs. I have been using Mr Eaves Modern as my font for this project but since it is not saved on my computer I cannot access it through Maya. I can however, create an SVG of it in Illustrator then import that to Maya.
I plan to get to work on creating a short transition scene where the player can become the producer. I need to lay the groundwork for the second playthrough as a producer. It is going to be slighlty irritating, as I will need to use the same assets but slightly alter the code. I am not quite sure how to approach this yet so I will need to have a good think.
I have set up a system that allows the player to interact with green orbs to change their location.
The user begins at the first green orb, then moves to the one on the left which takes them inside a control room. From there they can press a button to start the ride.
Now that I have the functionality for movement using the green orbs, I can make a quick path that takes you to the end of the experience, and I can go back to adding assets to the scene.
I am finding this process really messy, as many objects have small enough differences between them that it warrants writing new scripts and creating new animators. I am also getting a weird null reference exception each time the player moves between orbs that I am going to need to fix. It doesn't seem to have affected the functionality but I feel like its going to cause problems later.
I fixed this error. A bit of code that should only run for one frame was running for several. I managed to fix it by having a different script call a public function that performed the same behaviour.
This new system is starting to make sense in my head now, before I found it really finicky its finally starting to make sense and I can iron out the issues with it.
I think I am going to make some body parts packaged up in cellophane for the love scene. I have started modelling a severed hand in Maya
The hand looks slightly odd but I am quite pleased with it. It's definitely the best sculpt I have done so far. However, it still has too many polygons so I'll need to retopologise it.
Now I can go into Substance Painter and bake the texture maps with the high poly hand and apply them to the material of the low poly hand. However, I seem to get some strange problem where seams appear at the edges of the faces, and it is not caused by the UV mapping or smoothing groups.
To fix this, you can give Substance Paiter another mesh called a 'cage'. This is a mesh slighlty larger than the low poly and high poly models. I am not sure exactly what it does, but I think it helps the software work out where to cast lightrays. Anyways, it turns out that I was using an old mesh that did not have smoothing groups in it and that's why I was getting this error. I still used the cage as it helped Painter compute the shading between the fingers.
I am struggling to get the lighting to look good as the ambient occlusion effect I have been using does not work well. I have applied a white leather material and it looks nice but its PBR shader that I cannot use in my scene.
I discovered there is a 'bake lighting' material built into substance painter. I have used it in the second image, and it gives pretty good results. It may look weird though if it is taken out of this context in Unity.
Today I have mostly been focussing on preparing my dissertation for the final submission, but towards the end of the day I created some packaging for the hand. I plan to have a variation of this where the packets are empty and I'll have some body parts strewn across the scene.
I thought I would give my dissertation one last look over before the hand-in on Friday but it ended up taking all day. However, I think it is ready to go this time and I am looking forward to being able to only focus on the project.
Today I am going to try and bring the quality of the love scene up a bit. I added eyes with randomly generated properties. They spawn at (semi) random times looking at the blow up doll. There is a 1/3 chance that they eye will dart about frantically, and an even smaller chance that it will spawn with a rigidbody.
I also considered creating a postprocessing volume that boosts the motion blur and bloom in the love room to create a whoozy effect. I need to scatter more body parts around this scene too, as I have only modelled a hand. Below is the torso I built in Maya and Substance Painter. You can see from the red lines that it is actually a relatively low poly model. I am getting much quicker with this workflow as this took just less than an hour to build.
Today was quite productive in populating the love scene. I am realising that this scene works with a total focus on the blow up doll and I don't want to add anything that takes away from that. There still is an empty space behind the blow up doll that feels off, so I will need to fill it with something- but preferably something that supports the blow up doll.
I am also considering how I should approach the power scene. I am thinking of placing it within a skybox looking down on a city, but I don't know how I would get my hands on it. I could always model a grid of streets and a couple of buildings. The idea would be like the dream of power as rising above common life, yet I want the harshness of poverty of living to be present in every scene. My modelling process has also been refined since I first created the blow up doll model, I'm thinking I should maybe go back and change it, or at least change the material.
I need to start considering what items should go into the power scene. I think my scene references mughal and arabian architecture (my knowledge of architecture is weak) so I already have ties to classic representations of power- usually through scale, purity (white) and a rigid structure. I need to link this to expressions of power within internet culture - this is the difficult bit.
One of my first thoughts are internet followings. Followers, friends and subscribers are a quantifiable measure of social status. This could be interesting to represent but I could easily fall into the realm of cliche. Cliche isn't necessarily bad, but I think there needs to be an acknowledgement that it is cliche, and I'm not entirely sure if my scene is over-the-top enought to convey this.
I think these expressions of power and status tie in to wealth and sex so nods to these subjects could be worthwhile. Occupation is an expression of power, but how does this differ on the internet to reality? - again it relates to a following. If these are the new powers, then who supports their reign- the followers. They contribute their labour of consumption, liking and sharing.
Maybe there is room to relate these influencers to godlike figures. A lone individual with a following of worshipers. This is already aluded to with the architecture, but it can go further- thankfully theres thousands of years of religious imagery to reference. The christian faith immediately comes to mind as it focuses on God as a single omnipotent being from which all else stems. But maybe this doesn't make us much sense, there are thousands of high-profile influencers. But each influencers is praised as an individual, in the same way god is praised as an individual.
Probably one of the most common themes in religous Western art is the 'Madonna and Child'. Perhaps there is room to reference this kind of work. Or maybe I can do something like Giotto's murals in Scrovegni Chapel. This is an interesting concept as he has achieved the effect that I am wanting to achieve digitally in real space centuries ago. I don't want to go down this rabbit hole in my journal here but there may be great capacity for referencing gothic cathedral storytelling in 3D virtual environments - but anyway, Scrovegni Chapel consists of several panels, each referncing a scene in the New Testament in the bible.
Scrovegni Chapel and Depections of the Life of Christ
Admittedly, I don't know the full depth of this subject in art and less about Christianity. I have found that in western art there are a couple of common depcitions: the life of Christ, the life of the Virgin Mary, and Christ in Majesty. Giotto painted 7 frescos concerning the life of christ; Adoration of the Magi, Presentation in the Temple, The Last Supper, Crucifixion, Deposition, Descent into Limbo, Pentecost.
Adoration of the Magi- Three kings bring gifts of gold, frankencense and Myrrh to the new born Christ.
Presentation in the Temple- Mary and Joseph take the newborn Jesus to a temple in Jerusalem. Two pigeons are sacrificed.
The Last Supper - Jesus and the disciples have final meal before crucifixion. Bread = body, wine = blood.
Deposition - Christ is taken down from the cross. John the Evangelist supports a fainting Mary.
Descent into Limbo- Christ is in hell (or just the realm of the dead) between his crucifixion and ressurection. He leads some towards the heaven. Some see it as Jesus conquering hell. In Giotto's depiction, he seems to offer salvation to a group of souls who are in limbo. Presumably leading them towards heaven.
Pentecost - The jewish celebration 50 days after Christ's crucifixion. Christ's followers are visited by the Holy Ghost.
It would be a bad idea to try and faithfully recreate each of these events, but I can pull out some imagery from them and allude to this story of christ. It may help to see how Giotto himself composed this story to see if I can build a stronger reference to it.
I found an excellent annotated model that lets you see Scrovegni Chapel with great detail. The layout is quite interesting and definitely unconventional by today. The story of christs life seems to flow from beginning to end starting at the front right of the chapel, then spiraling anti-clockwise. There are quite a few panels so I can probably strip it down to two or three on either side with Christ in Majesty being the Mausoleum at the end.
I'm thinking I can narrow it down to birth, last supper, crucifixion and resurrection with Christ Majesty being placed right at the end. Christ is swapped out by the influencer, how do I represent an influencer? An influencer is like an empty billboard, a vessel for advertising products and lifestyles.
I have been having trouble with my laptop the past couple of days after a Windows update. I postponed the update for weeks as I knew it would break something. The taskbar will just stop working while I am doing work, and it flashes for a couple of minutes after a sign in to the computer. I am currently backing up the project so I can repair windows 10.
After hours of troubleshooting, I discovered an app running on startup that would use my entire processing power. I found that this app is used for the Windows store to check its licenses on startup but something has clearly gone wrong with mine as its causing my computer to breakdown. After a quick google search, I found that you can disable this process via the registry editor; I did just that and now my computer is working again
Today I had a tutorial with Neil, I pretty much introduced him to my work and we discussed possible improvements to the scene like the lighting and how to approach the power scene. Neil mentioned that he specialises in sound in Unity, which is very handy since I know very little about it and will need help when I move on to it. Neil also mentioned that I should begin the process of getting this project onto the app stores as it can be a bit of painful process.
Today I added functionality to the raycast selection. Now when the player looks at an object of interest, the camera will slightly zoom in, and then zoom back out when the audience looks away.
I also managed to introduce lighting into my shader. I had been avoiding PBR shaders as I think it might become intensive on mobile. However, I can easily bring a phong shader to my scene, that would allow for certain areas to have dynamic lights etc. I will have to double check its behaviour in the android build.
I played around with the lighting and I discovered that it would not appear in my android build. I discovered that this can be changed by altering the quality settings. This did not affect performance on my device.
However, when I tried to open Maya, I would get an error about the temp location then it would crash. I changed my temp folder location and changed driver version and installed Maya 2022 but it made no difference. I found a YouTube video where a guy pastes a couple of lines of code into his Maya environment file and it works.
I got back to work in Maya, where I created a tilable city mesh. The mesh is relatively low poly, and it doesn't need to have good texture detail as it will be seen at a distance from above.
I just applied my plain unlit shader to the city. The z-depth fades the city to black as it gets further away from the camera.