Started work on some Ghosts to fly around East Ley. I want them to be transparent, which means either culling overlapping triangles at the material level, or going into the mesh and deleting any polys that might overlap & welding the new edges. I thought the first option would be easier -- by rendering into custom depth and then doing a pixel depth comparison in the shader you can ignore overlapping pixels -- but it turned out to be a rabbit hole. Custom depth appears to be broken in 4.26, and it’s at the engine’s shader level. Fortunately, a solution popped up after a quick Google.
See this checkin: Match output of scene texture lookup to default textures
With the fix in place, and all shaders re-compiled, I was able to get the basics in done. I have a rough thing modelled, skinned, with material and VFX done to a first pass.
The join at the legs is a bit ropier than I want, but I’m hoping you won’t notice too much when it’s moving. (Narrator voice: you can if you're looking for it...Oh well. )
Today was all about movement.
I used the splines, again, this time to make little roller coaster tracks for the ghost to follow. It’s possible to get the transform of any point along the path, which makes it super easy to sit in the editor and “draw” the banks and curves that I want the ghost to follow as these get applied at run-time. After some playing around, it turns out that less spline points makes for a smoother path. All told I managed to add 6 paths, all with the same ghost.
Did a couple of simple animations for in-flight, and a push anim, cos I think it’d be kinda cool if they pushed the player over – occasionally – if they’re directly in the flight path. Other than that, they’ll be harmless.
Spent the evening putting together an audio bed; creaking wood, wind, owls, critters, and flappy wings. Usual spooky tropes. Ironically, I ended up doing this in FMOD studio as I only had a few samples. Using FMODs modulators and random playback meant I was able to stretch it all out into a couple of minutes of atmosphere, which I could then render out to WAV for inclusion in the game. Sure, I could have done this in-engine, but it’s super subtle, so why waste the CPU time?
Also added some audio to the ghosts. They’ll moan as they go past you. UE4’s Air Absorption is really lovely when it comes to fading out stuff like that. Was far nicer than relaying on attenuation alone. I think the end result will do nicely…
Spent the day environment dressing. I’ve now got three interiors done for the houses in East Ley. Nice and grubby!
Didn’t want to bite off anything major, today, so I went on a bug hunt. Found and fixed a load:
I’ve been playing the game on my big TV the last couple of weeks (an LG OLED) and it’s made me change direction a little. I was going to go HDR, if supported, but after a few hours with the game I’ve decided against it. The way I’ve been using the emissive and bloom just doesn’t work the same way in HDR. In fact, most of my textures are off, so it’d be a lot of work to rebalance everything. I should have been working in HDR from the start, which er, wasn’t really possible because I’ve been working on this for so long… But anyway.
That said, I went through all the post and tweaked the colour correction so I’m no longer over-driving the gain & saturation, and I’ve removed aberration entirely. Vignette’s been increased in the darker areas, and nearly removed from Henge End and The Henge. Things are a smidge flatter on my monitor, but I much prefer the final image on the OLED, which is all I really care about…