Studio Ghibli

Lately, I have been on a bit of a binge having re-watched some of Hayao Miyazaki’s Films. I’ve taken great interest in his films use of movement and detail, particularly in their environments. I went through movies like Princess Mononoke, when the wind rises, Porco Rosso and cut together moments of motion in its environment. this could be grass blowing in the wind, fire, water and other environments.

I had a go at following a couple tutorials to come up with some procedural grass texture using noise. this prevented a tiling effect but as from above and at a distance as the grass strands become less defined the texture of the noise becomes more defined. After watching a procedural rock texture tutorial I took its use of volanoid node that creates a more painterly pattern than the blurry noise did before it.

wave node adds wind effect by animating its phase offset. This is getting me closer to the look I am aiming to create. now to build it in unity or unreal and play around with game engine optimisation. Implementing view port culling and angle culling as well as an un-culling horizon and edge detection in order to maintain the grasses silhouettes on the horison

Here We Go Again.

Contextual & Theoretical Studies and Virtual Spaces

So after wrapping up are previous 2 projects and after a week break for reading and watching plenty of youtube. we now have 2 new projects to get on with.

Contextual & Theoretical Studies

For Contextual & Theoretical Studies we have started to look deeper into the state of the art and what is currently presently being adopted into the industry. by looking at papers and articles submitted on sites like ACM Digital Library & Research Gate. I will be writing an essay for this unit “A portfolio of writing that connects practise with theory and research and demonstrates a clear understanding of the key themes addressed in the unit lectures 1,600 words” as these last couple of weeks I had a number of ideas that I would love to write about in my essay these being.

  1. VR overlays and multiprogram communication in VR and VRm minigames/metagames
  2. Will the wider adoption of VR by the public lead to less effective VR in therapy How much experience with VR effects bias influence.
  3. Does increase detail in games lower the development of imagination
  4. Anonymity how it changes behaviour and if it differs in VR
  5. 2nd persons place in VR narrative and perspective position

I narrowed my decision down to idea 1 and 5 as the other seemed to be more objective research-based questions that would be better explored in technical papers. I leaning more towards writing about the 2nd person as I have already thought intensively about this beforehand after playing “Moss” about a year ago. as much as overlay games like Portable Farm interest me there aren’t many examples outside of that game and its a rather new concept that I would prefer to revisit later where I want to get 2nd person out of the way as there is a lot of variety in VR perspective.

Virtual Space

somethings I take seriously but rarely is it myself and my work. So I might have to work with a few loopholes when creating my serious VR interactive experience for my Virtual Spaces unit.

I started to surround myself with serious topics to try and spark some inspiration tracking creating the Padlet above to try to figure out my approach 1st watching some Vice documentaries on world affairs and issues. I then realised although it is imperative that these issues be explored, Billy Beeson aged 22 is not that person and even after just reading about these issues a smidge I’m already emotionally exhausted.

So looking elsewhere Wendover productions had a lot of inspiring videos on the world environment and economics. I had a brief time working as a bin guy over one summer an exuberance that has made me think about waste and where it ends up. however, coming up with a serious and engaging way to dispose of trash altho plausible seemed unlikely. It could be fun in an arcade genre where you cleaning up a beach or working a recycling plant conveyer belt in order to build up points multipliers to reach s new high score.

Then after looking into social and personal issues through the lens of Healthy Gamer. gg I tried a different approach looking at serious games and the kind of interactions I would like to create. In the hopes of using game design and mechanics to tell the story. Dwelling on things like the polarisation of thought and the enforcement of extreme opinion. It would be possible to address these through game mechanics alone and wouldn’t need to be heavy-handed in its message, where you could teach the player through the game mechanics alone where the goal is to balance two extremes and avoid the extremes of 2 outcomes. I like the idea of creating a game with only a loose state or a game the lends itself to speedrunning.

Perfect Holiday Destination: #5

I set my image sequence naming conventions up incorrectly and nether DaVinci resolve or ShotCut would recognise the sequence so I manually renamed each file and when that didn’t work I renamed all the files a second time. (I hope to find a automated method of doing this for the future)

I only rendered 25% of the frames because found this video interpolation software called Flow Frame. that fills in the missing frames using AI/ machine learning. However, due to the fast movement of the camera, the interpolation isn’t without the occasional visual bug. especially in the background. This probably wouldn’t pass for an absolute final render but for a project that I’m quickly running out of time on. cutting render times in half for a little visual weirdness when I’m already unable to get the fire particle volume to render its a no-brainer.

Sound found here

Perfect Holiday Destination: #4

A rant.

Frustration, Anger and Rage.

  • Tabs listed horizontally when there is far more vertical space,
  • nodes open ontop of each other in the shader graph when clicked to inspect.
  • Maya File browser,
  • tool settings resetting and forgetting placement.
  • Jungle of menus.
  • lack of up-to-date and helpfully concise online recourses.
  • created 2 faces in between 4 points while set as a quad
  • Maya fluid sim won’t work with GPU and so I now cant render the light with RT cores.
  • Maya fire rendering in Arnold
  • water shader being projected way off from its mesh

I found working with Maya incredibly frustrating infinitely so when compared to my time learning Unity. This was a large part due to the friction between running into unknown problems and the availability of recourse to get through those issues. If I had run into an issue in Unity I would be able to find a blog or video going over that specific issue and would take me 5 min to go over. sometimes I would have to go over a dozen recourses to find a solution that works for me but it felt like progress into the learning process. With Maya, you would be lucky if the resources weren’t using an out of date UI poor dictation and audio clarity, low resolution and with no crop. These online resources would go over basics for 10 min before getting to specifics then I would watch for another 30 min to find out that I need to keep digging because this did not solve or address my current issue.

I got so frustrated at one point I decided to watch a couple videos going over why Maya is “king” and used over programs like blender “in the industry”. Knowing that I was probably just being a baby and finding it hard starting from step 1 all over again. I listen to an ex Dreamworks employee talk about how great Maya is for lighting and animation but how he had never used it for modelled in Maya and used something called ZBrush instead.

This being said, I find it even more vital for me to power through and learn Maya, knowing that if an employer required me to use Maya at some point, I would struggle and I don’t want that kind of thing to limit me.

I don’t think this project is going to turn out in a way I’m happy with. In the future, I should plan production should start along with planning to help me to figure out my issues early and give myself time to learn from these follies. I didn’t balance out my time well while working parallel with the Introduction to Virtual Reality Unit and should have been putting in more work towards the project in the 2 weeks leading into that Units deadline. considering the headless I faced with a constantly Blue Screening computer leading to lost work and candled renders, living in a very remote part of Scotland over Christmas break and the huge hurdle we are all facing right now that come with the current pandemic.

Perfect Holiday Destination: #3

After applying myself in small ways to every part of the scene I realised I wouldn’t be motivated until to progress until I had the trees in my scene as they cover the majority of my location and block line of sight that would get me closer to being able to visualise the scenes final composition. I thought I would use the trees found in the “”_”” In theory, It would save me a lot of time however In the pursuit of knowledge I thought I’d make my own and although with a simple form hopefully this will save on render time, with the foresight knowing I will create my renders very close to submission day. ill also be able to block more line of sight with denser trees.

This, however, creates a lot of geometry and as I will be duplicating the tree throughout the island the rendering cost will grow exponentially. At this point I have a few alternative options I could procedurally Decimate and Boolean the leaves generated by Xgen ( this may be too advanced though), I could do that but with baked geometry instead of procedural or I could use a shader with something similar to a bubble noise texture as a normal map or bump map.

Music Video: Aqua #3

I am fond of Node-based programming and have dipped my toes into blenders shader nodes previously and have been eager to teach myself unity shader graph because of its potential interactivity and having seen its capabilities being used in VR chat.

I started to follow this tutorial on using the shader graph to create rain ripples but dropped it after my lecturer provided me material showing how to use unity particle system using a PNG and fading out a billboard with its lifetime. However, I wanting to use shader graph I figured that I would be able to use the particles lifetime as a control for the width of the ring and have it so as the ring grows in size, it thins until disappearing. But to get myself familiar with unity shader graph I decided to first use it to create an animated toon texture using this Wind Waker Water Tutorial as a guide.

I then realised that the Shader Graph doesn’t work without the Universal render package. but thankfully unlit shaders are very quick and easy to convert to URP shaders and can all be selected and changed at once.

After watching a tutorial on Custome Vertex Streams I figured out I could set a channel in the UV node to do just that by splitting the “B” channel of “RGB” also know as “Z” channel “XYZ”. That channel would carry the time value going from 0 to 1 as a decimal percentage of the particles lifetime. However, this ended up with the ring getting thicker as the decimal counts up leaving the ring with a thickness of 1 at the end. By using “(1-y=x)” this would flip the decimal percentage and give the intended outcome. I couldn’t figure out how to use shader colour however in tandem with partial colour so I couldn’t get the shader to fade as its lifetime ended, however, I know this to be possible however I moved on before figuring it out.

I wanted there to be a visual trigger for the ripples to create anticipation as It plays in time with the music. I first created a sphere that I scaled along the Y and gave it a version of the water shader with increased strength and decreased size. I liked the look of this droplet but due to its detail and busy nature in one hand, it felt out of place not fitting with my flat aesthetic and in the other using the same shader left if hard to read next to the water plane. Luckily I found a solution while watching rain tutorials and found this 2D Rain tutorial. I used this animated sprite billboard locked on an axis as my rain particle.

All that was left was to parent the Ripple to the Drop and set the Ripple as a collision emitter. For a while I had it set to the world so any collider including the player would trigger the ripple but the sprite’s hitbox is slightly larger than the image so the ripple would spawn about a foot above the water so I used a plane collider instead that’s slightly below the surface to align the ripple nicely with the water plane (this should also improve performance and eliminated variables in their behaviour).

I used two techniques to control where the particle would emit I had a single emitter trigger to the beat of the music I then created position keyframes that would move the emitter to where I wanted them. I had to set the particles relative to the world so the particles wouldn’t follow the emitter as it moved around. I then created a mesh with 7 vertexes in the locations where I wanted them to spawn and then triggered a burst with the timeline that spawns 7 drops 1 on each vertex at once. I created a second mesh emitter lower on the Water Plane as well, to trigger Ripples in the same spot just without the Rain Drop.

I showed a Flatmate my project and without missing a beat the 1st thing they said: “Could you make it prettier?”. I didn’t quite understand what she meant by that. I had set myself limits by using unlit shaders and I was very fond of the simple paper cut-out look it gave. So I started thinking about adding gradients to the materials or how I might create a “fake light”, a cone that would apply a hue over materials render behind it or perhaps use a stencil like I had used with the magic door. After asking her what she meant by suggesting it wasn’t pretty. she used Walkabout Mini Golf as a reference, as we had played it the night before. The awe she felt standing on the course looking up at the towering cliffs and down into the deepest depths.

I realised, for the most part, everything in my game felt flat and that from a design stance defeated one of the key joys of VR. So I simply duplicated the water plane and lowered it creating a sea bed I then created a copy of the material adding a vector to the alpha channel. the Top-Plane was made translucent and the Lower-Plane was made greyscale as to take on the top planes hue. Finishing it off by lowering the shaders scale vector to create the look of light refracting on the sand. This gave the added benefit of being able to simply lower the tadpoles below the water and having a variety of depths for them to occupy.

I now noticed that the water ripple particles where sometimes being drawn bellow the water and even more egregiously on top of the lily pads. By changing the LillyPad shader to Transparent with a 100% opacity fixing its Render Queue to 3000 and then shader graph allowed me to set the ripple and waters queue to 2999 and 2998 meaning that the LillyPad would always be on top of those materials no matter their transform.

Music Video: Asset Optimising #2

The Girl

Whilst looking for a model to use for my girl character I found these “MMD Vroid raincoat models” on Deviantart.com. MMD models are made for a piece of software called “MikuMikuDance” for the purpose of making CG fan dance videos. I have never used the software but MMD’s are widely used in the game “VRchat” as player Avatars. MMD and PMX files can be converted into FBX files with a Blender plugin “Give me all your cats” that comes with many useful features like quick material separation and automatic texture atlas.

The model was humanoid ready and only had to change the toes that had rigged themselves to the foot and the foot to the ankle. The model also came with bones weight painted to the “skirt” and hair that I let be for the time being as I plan to use the Dynamic Bones plugin that I purchased in the new year’s sale to add physics-driven swaying to them. In case, I don’t end up doing this I should remove the bones, as although having them their idle probably isn’t impacting performance greatly when it comes to optimising for mobile every little helps.

I modified the model to Simplify and optimise it for mobile VR cutting down from fifteen to five materials. Although I used only three material slots in unity but left two as to leave the option to use the model’s textured atlas in the event that I decide to change the visual style at a later point. I also decided to modify her clothes to align more with westerns abilities elongating her coat by scaling it along the Y-axis. I also made plans to add a hood similar to the one I sketched out in my Quill Maquet but decided that the character would probably read better if you could see her hair from behind.

I played around with different colour ideas originally believing I would use the Songs album cover as a direct colour reference and have the pink floor ripple to convey it as a liquid however this didn’t read as well as I would have liked. so regular blue water was what I ended up going with. and used Simple Sky, a gradient sky asset that covers up the solid sky that shared its colour with water plain, ging the appearance of an ongoing plain of water.

  • Double-sided “no cull” hair and clothes.
  • Unlit shaders { with GPU instancing turned on} gives me high-performance results that look good without lights present.

Room

I decided I want the girl to have a clear location rather than an indiscriminate void. So as I have been listening to a lot of Lo-Fi while making the “Game” I thought it would be cute to find the room used in a lot of the music playlist thumbnails. luckily there had been a challenge to recreate just that on Sketchfab and using there Blender plugin imported it into Blender to optimise the room for Unity. using Decimate, and creating and joining meshes. whilst creating a doorway with a separate material that I could attach a transparent portal shader to. Fully enclosing the model.

I created a version of the model with a box coming out the front to use as a transition point for the girl to switch her shaders however I discarded this version of the model as the box would reveal the wall around the portal as well as the girl.

I used the “Easy Combined” asset in unity to quickly join all the objects in the room into one mesh as to cut down on draw calls as seen in the Profiler.

I found a Toxic Frog asset on the unity store. however, this frogs skeleton isn’t humanoid so if I wanted It do imitate the girl’s animations I would need to convert the frog. I moved the frog into a standing upright position in Blender pose mode and weight painted the eyes to move with the head. I then tried using CATS fix rig fusion this gave me a humanoid rig with blend shapes for the eyes mouth and tough still intact but unfortunately Maximo wouldn’t work with this setup.

Ended up removing the rig entirely and keeping the Pose enforced by CATS on the mesh and importing the hollow mesh in Maximo where it generated a new simpler mesh that naturally would work perfectly with Maximo’s motion capture library. It wasn’t quite that simple as the jaw seemed to be independent of head turns so using blender again I edited the weight baiting on the Jaw and head bone and used sculpting tools to slim down his body. In unity, I swapped his materials for URP unlit shaders similar to everything else and created an animation controller that would blend humanoid animtaions together.