Ok, so the idea for all this fog is to prevent the player getting to the maps’ dungeon until they’ve picked up the Wand. The fog will close in around the player and eventually warp them off to a safe location. Typical Zelda.
The difference in my game is that my fog’s a bit more dynamic. Mine’s going to collide with the player…
To get this going I added a custom physics type, and collider, to the player, making sure it can only collide with simulating objects. I also added volumetric particles to the forest. The particles detect the new collision object type and kill themselves when they hit it, leaving a clear space around the player. If the collider’s turned off, the particles eventually engulf the player…
The rest of the day was spent adding the wand and doing some encumbered movement animations.
The animations caused a problem. All the unencumbered movement anims were done in Modo, on the old skeleton, so I don’t have them in Blender to work off. I poked around the options for retargeting in Blender, but nothing really worked. Even AutoRigPro’s remap left a mess, and I didn’t want to do any clean-up. So, I went the other direction…
Once I reinstalled Modo I was able to take the old walk anim, adjust it for the wand, import into UE, and then use UE’s retargeting stuff to get it onto the Blender rig. Few more steps, but zero errors, thankfully.
The walk anim needs some work.
I’ve stolen something from Pokemon: they used a low pass filter in the foggy forest, at the start of the game, and it sounded lush, so yoink.
Took me a while to work out how to do it in UE4, but it ended up being fairly simple: the sound mix class has an EQ built in, so I can pop out the normal master mix, and pop a new one onto the stack. It was fortunate that I went in to do this; turned out that I was never clearing overrides, or popping mixes off the stack. That’s, er, probably bad, cos every change of the volume via the UI would have added a bunch of overrides and pushed...
The end result sounds pretty good, but I’ll need to hear it on some big speakers to be sure.
Rest of the day was spent tweaking colours, densities, shadows, particles, oh, and I redid all the movement animations for the wand. Much nicer.
Added some new cheats: one to give the wand out, and a new toggle so I can start the game in the OpenWorld part of the timeline. Saves me a couple of clicks, but it all adds up.
Added some little glowing particles to the forest, kinda-like twinkly night-bugs. Gives a bit of extra depth and looks nice in the DoF. I also need to add some glowing bugs that you can catch, to power the wand (ahem, like Lumo) but I’ll come back to that later…
The last missing piece, for now, is having the screen edges lerp in as the fog encroaches. I want this to white out the entire screen, so I can warp the player out of the forest as a fail state. I already tweak Post Process materials in the dungeon, so I had a working reference. This time, instead of making new dynamic material instances, I used a Material Parameter Collection, referenced in the material. Can’t believe I’d not done this before, as it’s way less faff. Every day’s a school day.
Yesterday I noticed that alt-tabbing, while on the main menu, breaks. The game loses focus, and you can’t use the joypad (or mouse) to navigate the UI when you alt-tab back. It’s a game breaker. I’m not the only person to have hit it, either.
The solution, for me, was to create a new PlayerController for the front-end. It contains a function to check if the game is the foreground window.
My UI Blueprint already has a series of checks to see which button to highlight, and which animation to play. If all of these have failed (nothing has focus) but the game is the foreground window, I now reset everything, focus on the first button, and mouse and joypad then regain control. Bit fiddly, but it seems to solve the issue.
It might fix the problems I was seeing in-game… If I can detect the game’s not the foreground window, I can pause everything. Hmmm. Adds to TODO list
Slight detour, today. I want some vines that lie across paths, blocking the player’s progress. They’ll have a little nodule that, when hit, will cause the vine to creep back and clear the path. UE’s got some built-in spline stuff that I’ve never used before, but was reasonably sure would do the job.
Spent the morning messing about with this, and yeah, it seems to be able to do exactly what I need. Saves me writing my own spline class!
I’ve got it to the point where it can creep in and out, but I’m not yet reducing the mesh count to match the number of active points along the active length, hence the weird shapes in a few places.
Also captured a little vid, so you can see everything (except the vines) in action: