My name is Paul, i'm 35 and from Newcastle Upon Tyne in the North East of the UK. I started learning c# in my spare time about 3 year ago after initially getting into programming and scripting after creating some mods for Project Zomboid during its early alpha phase. I'm not an artist, to be honest I probably couldn't even draw a convincing stick man, nor am I a modeller, iv'e never used 3dsMax or Blender or anything else like them, I wouldn't know where to start. I initially picked up and started learning Unity about a year ago, but have started to invest a bit more time into learning all of its ins and outs in the past 6 months or so. Because of my lack of skills in art and modelling, I will be relying solely on the asset store, and possibly one or two other royalty free websites for this challenge. I will be taking on this challenge alone.
Why the Neon Challenge?
When I heard of the Neon Challenge I thought it would be a great way to focus my learning of Unity for the next 6 weeks, with the added advantage that I will be learning two systems I had not looked into at all yet (Cinemachine and Timeline). I, almost immediately, then watched some Unity tutorial videos on both Cinemachine and Timeline and got excited about what I could possibly achieve. So, I decided, why not take part, set myself a healthy goal and have some fun!
Over the past year I have accumulated a small number of assets from the Unity asset store. So I first decided to look through what I had and see if anything caught my eye in terms of "A New World" and "Sci Fi". I was in luck as I already had a very nice planet generator (Planet Generator Shader by Human Unit) and a nice looking interior space station asset pack (Space Base Pack by DLink) which I had not used yet. I seen this as a perfect starting point to start "sounding" out a diorama for this project.
Thanks for taking the time to check my submission out!
At this point I noticed an irregularity with my GI, the pipes under the floor in the large corridors were giving off an uneven light to one side of the prefab. It was easily noticeable where I had duplicated and rotated a corridor prefab to extend it to double length (see picture below)
Fixing this gave me a better understanding of how GI is applied to textures along with the UV charting controls on mesh renderers. Trying the different Realtime GI scene view options quickly led me to the Indirect and UV chart views, which easily allowed me to see how the floor mesh around the pipes had been optimised for UV charting. After lowering the max angle under the UV charting controls on the floor's mesh renderer, along with a little bit of trial and error (letting the GI re-bake after a change) I eventually got the indirect light from the emissive textures to be even.
With that little problem sorted it was time to dip my toes into the only two parts of my project I hadn't touched yet, Cinemachine and Timeline. I rewatched a couple of very helpful Unity tutorial videos on both Cinemachine and Timeline as a refresher on what could be achieved with each system and how to get a basic start with each one. I decided I would do some simple timeline stuff first. I placed one of the CGPitbll spaceships into the scene and added the timeline window near my project tab. I quickly had a prototype of a ship being animated across the sky using timeline. Then I added a particle effect for the engine thrusters, edited it to my liking and then duplicated it for each engine exhaust. I then had a second ship up and running with the same setup in a few minutes, both with their own timelines animating them across the scene, cool. Next up I decided to extend the range of the ships timelines, just to get me a little more comfortable for doing bigger things later, I added an activation layer to the timeline which allowed me to turn the ship objects off at the end of the animation, I kept this on one ship and then removed the activation layer from the other ship and set it to loop instead. Starting to get some cool ideas of how I can utilise this later.
With that small venture done and being happy with my basic results with timeline I decided to ease myself into Cinemachine by doing something cool I had seen in one of the tutorials. I started by removing the camera controller that came with the Invetcor Free Locomotion asset and creating a Cinemachine State Driven Camera. The next step was to create a "main camera" which I used a free look camera for, set up the follow override to be my character, the look at override to be my characters head and then the various height and radius settings for the 3 different height rigs. Once working how I wanted, I duplicated the camera and renamed the duplicate to RunningCamera, kept all of the settings the same apart from the FOV, which I upped from 65 to 80, and then set up the states and the blends on the State Driven Camera. This was as easy as pointing the state machine at the characters animator and selecting which animation triggered which camera, I was also easily able to add different blends going into the run camera than leaving the run camera. What I ended up with was a pretty cool looking transition that gave a feeling of increased or decreased speed when either starting to run or stopping running. I was running into a slight issue though were my cameras were "resetting" their position when becoming active again, for example, if I rotated the free look camera when walking and then I start running, the run camera would have a different value for the rotation, luckily this was easily fixed by ticking a box on the State Driven Camera labled "Enable all child cameras" which basically did what it said on the tin and allowed any/all rotation to be applied to both cameras whether they were "active" or not, meaning when I transitioned between cameras, the camera being "activated" already had the same rotation value as the camera I was coming from. I now had a really decent camera controller to test out some different close up angles around my scene as well as giving my camera a great natural movement like it's actually being held by someone following the player. I experimented a little further with creating a camera controller rig for my character with cinemachine and ended up with a strafe mode camera as well as my walking and running cameras, using a nested State Driven Camera within another State Driven Camera alongside side the strafe cam. I was really getting into Cinemachine but decided this was going above the scope of this project as I wouldn't be using this rig for the final scene anyway, so I ended my Cinemachine test there and got back to designing my scene for now while I let my imagination run wild with ideas for different camera's, angles and transitions.
I suppose this is a great time to segue into lighting. From the start of this project, whenever I had been bringing in a DLink space base prefab room/corridor, I had been removing the light probe groups that came pre-attatched. The reason was two-fold, the first is that I was wanting to use this challenge to learn more about Unity's lighting system, and secondly, I knew I was going to want to do my own lighting in the scene at some point anyway and thought it best to start from scratch rather than start by using what was currently a "box of magic".
The first thing I did when trying to get my fog to look right was to look through the renderer options of the particles, I noticed that it had the option for blending light probes and that I currently had no light probes in the scene, so I went about adding some light probe groups to my rooms and corridors as all of the nice coloring in my station was thanks to the precomputed realtime GI which currently wasn't affecting my non-static objects. I immediately noticed the much better lighting on my character I was using to run around with, but also noticed a slight issue with it that I will come to in a bit. More importantly though I noticed that my fog was still not being affected, even though they were using the new light probes with the blend option. It turned out that the standard Unity particle shader's don't like applying light to transparent particles, something the shader linked at the end of Update 3 was easily able to fix. However, in trying to improve my fog before implementing the beta shader I had been pausing the game during runtime and going back into the scene view and selecting the fog particles. This was a great help in understanding just how light probes worked as it showed a probe for the current objects light along with connections to all the other probes it was blending from.
It was seeing this in action that made me realise what was "wrong" with the GI that was now being applied to my character, each part of the character that has it's own mesh renderer will get its' own blend of light probes added to it, a quick hover over the mesh renderer lighting options revealed that the option "anchor override" was what I was looking for to "fix" (technically each body piece getting it's own value for lighting is correct, but it just didn't look right in game, the problem could have been alleviated by adding more light probes, which I tested, but using anchor overrides provided me with results that I preferred) this issue. I set all of the characters clothing and body pieces' anchor overrides to point to the characters chest and everything looked great.
This also led me to discover just what Light Probe Proxy Volumes are and how/why to use them. I set up my bar fog to use proxy volumes as it would dynamically light the fog from it's own set of light probes, meaning the top part of my lower fog layers would be tinted more blue and the bottom more green instead of the whole particle effect having a single blended light applied. It looked better but had a bit more of a performance hit than what I was happy with for the improvement, so I decided against proxy volumes for my fog and went back to what I had previously.
I decided to also add realtime point lights above the brighter rooms of the station so that I could have shadows on my character and any other characters or moving objects, this wasn't necessary for the corridors and club where it's either a bit darker and/or emissive. I also made sure to turn each spot lights indirect multiplier's to 0 as I didn't want them adding light to the scene twice (for the pre-computed GI and in real time). This probably wont end up as the final lighting for my scene but I think it's a pretty good starting going going forward.
Next up I decided to quickly prototype some NPC's for my scene using the Morph3d character system along with the clothing and props I owned for them. Using the animator controller that came with the Invector Free Character Controller and the starship crew costumes I quickly had a couple of idle-animated station staff populating one of the rooms. I then imported some free breakdance animations from Mixamo along with some of the other Morph3d male and female sci fi costumes and created a small group of dancers in the bar, the station was starting to feel alive. One thing I started to notice when I was running around in game testing all this is that the walls of the bar were looking a bit thin on detail, so I decided to repurpose the neon sign frames used in the dark corridor leading to the bar as futuristic neon picture frames containing the awesome concept art supplied by Georgi Simeonov, again the colours of the frame and attached lights were already almost perfect and I quickly had some nice decoration for my bar walls.
Update 5 coming soon.
With the basic look of the bar's dark corridor in place I then decided to give some attention to the ship salesroom. I originally decided on this room as I already owned a few CGPitbull space ships, the Imperial Corvette and the SF Fighter, both of which are free as well as the Sci Fi Fighters pack, which I had already decided I was going to use in the background outside the station. But I also had the idea to shrink them down, place them on pedestals and make them spin slowly, like a sci-fi car salesroom with mini ships. The room already had a nice blue glow thanks to the emissive textures on the walls and floor working together with the real-time GI, so I decided to re-purpose one of the PBR Bar Props tables, duplicating it's material and editing it to blue so as to not disturb the green versions in the bar, placed miniature versions of the ships floating above and created a quick script to slowly rotate them. In the back of the showroom I placed a full size smaller ship, like you would see in a car dealership showing off the latest model, as well as a couple of futuristic computer desks for the sales team. I'm still not 100% sold on whether i'll end up using this room in the final project so I left it there for now, but if I decide to use it then all it will need is a bit more detail and some small spot lights around the ship in the back to make it pop.
By this point, after upgrading the bar, it's dark corridor and the ship salesroom I had ran past my big common area window in game many times and was starting to feel like it wasn't really cutting the mustard anymore, it looked pretty, and I knew I still had space ships to put out there, but it felt like it needed more. So the space station became a lunar station, the DLink space base pack already came with an alien terrain texture and some props like rocks and craters etc, after a while of placing and moving assets and adding a few more particle effects I had what I considered to be a vast improvement on my outdoor scene, an alien moon with gas spewing geysers. I was back to staring out the window at every available walk by, so much so that I was a bit disappointed it was the only decent view to the outside in my whole scene. It was time to upgrade the bar again!
The bar was already feeling a bit small to be a main part of my scene but aside from the big window in the common area it was by far my favourite room, and deciding that I wanted another nice view of the outside was all the reason I needed to increase the size of the bar by 50% and add a new area with a nice big window for the view, but also for something else that I felt my scene was lacking in, verticality, a bit of height differential inside the station. So, as well as the window, came a mezzanine seating area, which I think really helped the bar area pop a bit more, especially since the mezzanine did such a good job of separating the green and blue between the lower and upper floors. There was only one thing still bothering me about the bar and that was the smoke effect, I realised the reason it looked "off" was because it was not receiving any lighting from the scene. After doing some looking around on the internet I came across a very helpful thread on the Unity forums ( https://forum.unity.com/threads/release-standard-particle-shader.461938 ) by a Unity developer who has been working on a beta standard particle shader. I downloaded and imported it, spent 30 minutes or so playing with the different settings and eventually achieved the smoke effect I was looking for, in essence, my smoke was now being lit by light probes which grabbed their data from the GI, awesome, so now my lower fog is being lit green and my upper fog is being lit blue.
Update 4 coming later today.
Seeing as I was now regularly running around the interior to check item placement and aesthetics I decided to set up the post processing stack to how I initially wanted it to be. I'm using Temporal Anti Aliasing as i'm also using Deferred Rendering (and linear colour space) so don't have access to Unity's MSAA, along with Ambient Occlusion, a little bit of DOF on the near plane, Bloom, Vignette and Colour Grading set to ACES. I'm still using these settings for now but may change over time. I also imported my humanoid character system of choice, Morph3d, i'm going to want some kind of humanoids in my final scene (not necessarily human) and Morph3d already has a huge library of clothes and props, as well as free versions of their male and female with some free sci-fi clothes, on top of all of this it also works using a great morphing system to easily create alien/fantasy/creature looking humanoids. I imported the Male and Female as well as all of the sci-fi prop packs I owned for them (female sci-fi bundle, Ida, Saboteur, star-ship crew, Male sci-fi bundle and the titan suit). I'm not sure what the protagonist's final look will be but I have a good amount of choice as well as a good amount of clothing and props for all the other characters in the scene.
I quickly got a decent start to a bar scene down using just the PBR bar props and editing their emissions slightly to get the look I desired and adding some coloured spot lights, but it all still felt a little flat. It was time for some particle effects to really start to make this (hopefully) look like a futuristic sci-fi bar. I already had Ultimate VFX V3.1 by Mirza Beig which has a ton of particle effects, some of which I felt would be perfect for this project. The first effect I found while browsing through the library was a firefly type effect with blue and yellow particles and lights, I edited the effect to match the blue and green theme the bar already had and they were good to go. Secondly were the lasers, I found a laserbeam effect which I used as a base, removing all the extra effects it had that didn't fit or I didn't need. They looked good but they were stationary, so I created a quick little script to do a little bit of back and forth rotation on the laser. Once I had one working the way I wanted I simply duplicated it and placed one in each corner of the dance floor.
The last effect I added to the bar scene was the smoke/fog/dry ice, I once again found a good effect to use as a base and edited it to my liking, once done I again duplicated this new effect I had made to fill out the bar area how I wanted.
Overall I now had a pretty decent looking start to a bar scene, but I thought the smoke effect could still look better (and it will in update 3), for now though I decided to do a little work on the corridor leading to the bar. With most of the rest of the station being rather bright I really wanted to have a bit of contrast, a dark neon lit corridor sprang to mind and seemed to fit well with the overall theme of the project as well as the bar itself. A perfect time to use Midaem's Sci Fi Neon Signs, the colours in the prefabs were almost a perfect match for what I was already using which was a nice bonus, all I needed to do was change the lights from area to point and edit their intensity and range and then place them in the scene. While doing this I realised the walls of the corridors, while pretty, were also pretty bare, so I found some pipe prefabs from the HD Sci Fi Level Kit by Hedgehog Team. They definitely added some much needed detail to the corridor walls but I think I will need to do at least a few more detail passes on the corridors before i'm happy with them.
Update 3 coming soon!
I started this project by importing Cinemachine, Post Processing Stack and Dlink's Space Base pack. I then started placing some of the space base prefabs in the scene and connecting them together to make a small space station. Once I had a decent sized station with various corridors and rooms I then started imagining the function of each room and the station as a whole. I cross referenced my ideas with assets from the asset store I already owned as well as affordable assets on the store that would fit the role and compliment the DLink Space Base pack that only came with a few, very nice and usable props.
I ended up with the beginnings of a good few room concepts, including a common area, a ship salesroom, a bar, a couple of office type station worker rooms and a couple of other sales rooms for ship modules, repairs and fuel. To help me realise these concepts I bought/imported Midaem's Sci Fi Neon Signs, Creepy Cat's 3d Sci Fi Kit Vol 2, Hedgehog Team's HD Sci Fi Level Kit and TirGame's PBR Bar Props. After lightly populating the rooms with relevant prefabs from the above kits, I decided it was time to see what it looked like in game. I just wanted a quick way to do this and would only need limited functionality so I imported Invector's 3rd Person Controller - Basic locomotion Free.
After running around in game for a while I had a list of small fixes, improvements and changes I wanted to make to the overall scene before I started adding more detail. The first change I made was to boil the station down to a more manageble size for the challenge, basically closing off the entire left wing of the station, and moving it's more interesting rooms to the side remaining, in the process removing the rooms from the right wing that I was not as fond of or I felt did not fit or look as good as the rooms from the left wing which replaced them.
The second change was to the common area, which was rather bland and boring, being boxed in on every side by corridors or rooms. I removed one of the corridors and instead duplicated a bit of glass from a window and scaled it up, now I had a nice looking conservatory style window looking out into space as the centerpeice for the common area.
Now I had a large window into space I was going to need to make it look pretty, so I imported Purple Space Nebula Skybox by TL Multimedia as well as Planet Generator Shader by Human Unit. I quickly had a very pleasing looking, Earth-like alien planet, complete with rings, atmosphere, clouds and Day/Night sides with city lights, with a lovely space skybox as the backdrop. Once I had these in I kept finding myself staring out of the window in game for minutes at a time every time I just dived in to quickly check any change I had made. It quickly occurred to me that I was still missing something when looking out of the window, the station itself. It would not have made sense to try and build a huge station exterior out of the Dlink pack as it's clearly meant for internal or top down views. I instead used the Modular Space Station Kit by Sector 3d to place a huge exterior space station prefab around my scene, basically faking it to look like my internal scene was connected to the larger station. At this point I also turned on Realtime GI and placed reflection probes on each room/corridor prefab.
After feeling happy with the results of adding an external scene to my diorama I decided to start adding more detail to the rooms of the station itself. Seeing as I had a full asset pack that would deal with the bar (TirGames PBR Bar Props), I decided to tackle that room first.