Meet Stigxamo! Updating the camera, adding + animating a character, more tricks & development roadmap update: #UntitledDrivingGame Devlog #6
This devlog was originally posted on my website:
https://elocnat.com/blogs/untitleddrivinggame-devlog-6.html
š³ Picture Perfect - Updating the camera system
One of my early discoveries on the project was that a good camera system was going to be crucial to making #UntitledDrivingGame feel right. Making a fluid camera system for most games is hard enough, but then thereās added complexity from a fast paced third person game where the playerās position and view target is rapidly changing. Iāve never worked on tuning a camera system deeply besides tweaking a few lag values here and there. Despite playing games and watching videos on the subject I havenāt been able to fully articulate what I want out of the gameās camera, so Iāve just been experimenting a lot with different settings to see what feels best.
Before this set of tweaks, the camera system was just a basic spring arm with some lag added. Previously to do any kind of air movement you had to hold down the āAir Flipā button to enable it. This allowed me to turn down the spring arm rotational lag to an extremely low value when the button was held down which essentially froze the camera when in the air and flipping around. Fortunately this worked out well (during my playtesting at least) but I knew it wasnāt sustainable long term.
The current camera behavior is that directional lag will slowly increase with speed and rotational lag decreases to a much lower number when the vehicle isnāt grounded. When the rotational lag changes it gets set via a variable that then smoothly interpolates to the correct angle instead of giving a quick jarring switch back to the default position. While the rotational lag is using the default checkbox on the UE4 spring arm, I encountered some weird jittering issues with the default directional camera lag, so I ended up turning that off and finding/writing my own function to handle that beside the function that interps the rotational speed changes. The last small change is that the camera now flips around when reversing.
As a result of these changes the camera system does feel a lot smoother but there are still some issues to work out. For example, with the addition of character tricks itās hard to keep a good steady view of the current trick being performed while the vehicle is moving about in air. Iāve thought about ways to remedy this such as a character specific camera, switching to different camera(s) during tricks, or even adding some kind of additional viewing system (like PiP mode) but I havenāt made any decisions. The addition of spinning (more on that later) allows the player to see tricks more clearly which will work for the time being. Still, the camera will eventually need final another workover and final polishing to get it to truly feel right.
š³ Meet Stigxamo - Character animation workflow & implementation
Character tricks were inevitable in #UntitledDrivingGame; thereās only so many tricks you can do with just a vehicle by itself. I flirted with the idea back in devlog #3 but with smaller vehicles in a more comedic style. While I liked the idea, the style just didnāt feel right so I pocketed the concept until now. Meet the first character, Stigxamo: the Mixamo racer character that looks like The Stig according to @WoodleaGames!
I donāt have much experience when it comes to UE4 skeletal meshes or animation in general which is why I knew adding characters was going to be a tall task. The vehicle itself is currently setup using all static meshes: the wheels & body parts (doors/hood/trunk and body roll/lean etc.) are all separate and animated with interp functions in the vehicle blueprint. This wasnāt done for any particular reason other than itās how I started and I didnāt want to learn proper vehicle rigging when I started animating part movement. It works right now but this might change in the future (if nothing else Iād assume itās better to have one skeletal mesh with animations for optimization). The character is a skeletal mesh child of the vehicle.
I assume the āproperā way, if I was working directly with a single artist or knew what I was doing, would be to have every vehicle as a skeletal mesh and the character (skeleton) animated directly with the vehicle (or maybe this cements how little I know about traditional animation workflows). My first run workflow consists of importing the base vehicle (Iām only modeling the sedan tricks currently) into a fresh Blender file and then importing the Mixamo skeletal mesh on top of that. From there I made a base driving animation (read: looping pose) to build off of and then started making separate animations for each of the tricks. I then export only the Mixamo character from Blender and import the FBX into UE4, add the vars and code in the vehicle blueprint to trigger the trick, and then plug the animations into the animation blueprint.
Iām awful at Blender so the animations are currently terrible, but theyāll work until I can get some original characters and/or hire an animator. Use your imagination and envision the characters moving around and/or yelling things during the various tricks until then! My goal is to have a set of vehicles & characters with the same set of base tricks but different special or vehicle specific tricks available. I want any character to be able to be paired with any vehicle but allow slightly different experiences and visuals with each so thereās a reason to explore them all beyond any stat differences. Characters should share the same skeleton but may have different special moves or emotes for instance. Vehicles will have the same basic set of parts (wheels, left & right door(s), hood, trunk/tailgate/back door(s), etc.) but will have tweaked animations where necessary. A truck will open the tailgate instead of the trunk and eventually there could even be vehicles with suicide or scissor door variations for example.
š³ Tens of Tricks - Solidifying the initial trick list
From the start of #UntitledDrivingGame Iāve had a basic set of tricks but never written down a full comprehensive list. I started a document that includes a full list of the initial tricks I plan on implementing and have been working down that list. This has also allowed me to try and figure out the best default control schemes for both controller & keyboard; thereās a lot of different buttons in use and Iām not even sure the game is fully playable right now with a keyboard and all the new tricks. Iāve separated the list into character and vehicle specific tricks with sections for ground, air, and special/variation tricks.
One of the things Iām considering when working on tricks is the ability to have the same/nearly identical trick lists between vehicles regardless of the type. It would have been easiest to make all the cars convertibles or ensure they all have at least sunroofs/t-tops, but that wasnāt my vision for the game. Trucks, cars, vans, sedans, coupes, convertibles, and anything else should all have the same base functionality even though they may act/look different. This means generally ignoring things like the backseat or sometimes even standing on the roof and instead focusing on tricks that revolve around the driver being in/around the front doors & hood area for the most part. All vehicles should have some sort of body parts to open on the sides and front/rear of the vehicle. Special tricks per vehicle could utilize their specific styles (IE for a truck you could jump into the bed).
On top of the current vehicle ground and air tricks, there are now 8 character tricks & 8 vehicle body part tricks to pull off. There are also a few new ways to grind including sideways and backwards. The character tricks include less outrageous tricks like āThe Passengerā, a trick where the driver moves to the passenger seat and hangs out the window screaming, to more outrageous tricks like āHanging Onā, a Superman trick hanging out of the driverās door, and āYee Hawā, my favorite trick so far where the driver sits on the roof/windshield and rides the vehicle like a bull. I really like the character tricks and will keep them in, but some of them Iāve created are pushing the envelope on what feels realistic even for this crazy game. āHang Gliderā and āHood Ornamentā are fun tricks but they look absolutely ridiculous: I havenāt decided if thatās a good or a bad thing yet.
If you imagine the character tricks are akin to grab tricks in THPS then I imagine the body part tricks to be more like flip tricks. Theyāre less āimpressiveā but a solid foundation for combos and useful in tighter situations. Thereās 8 body part tricks, the four diagonal triggers being variations of the normal trunk/doors/hood opening. Currently both body part & character trick buttons are held, but that might change in the future. Iāve also been considering what other tricks I could realistically add in: the vehicle has a horn that can trigger a trick but other than that I havenāt implemented any other vehicle specific tricks. I think flicking on & off lights could be a possibility, but thereās currently too many buttons as is. Right now I think thereās a big enough trick list to keep things interesting but of course Iāll be building upon it down the road.
š³ Whatās Next? - Development timeline update
Letās update the roadmap for #UntitledDrivingGame I introduced in the last devlog:
Rework the vehicle controller to make it feel more like a real vehicleAdd characters to vehiclesAdd more tricks & trick modifiers (opening doors, flashing lights, hanging out windows, etc.)Rework physics/controls to be tighter & more accurateBetter models & animations- Realistic vehicle audio
Develop updated camera system with better dynamic movement for tricks- Refactor the project for multiplayer
- Have a single multiplayer mode to demonstrate capability
- Work on the projectās overall sound design
- Create two original vehicles/characters that offer slightly different stats/trick sets
- Finish designing & building the first level (LATC)
- Implement a better performing traffic controller
- Implement destructibles in the environment
- Have a set of playable missions for the single player campaign
- Implement basic AI vehicles
Itās rough around the edges and needs more fine tuning, but the base vehicle, sans multiplayer and better audio, is nearly complete. Iāve worked a little bit on updating the audio but Iām going to postpone that until I start taking on the overall sound design for the project. I still have not started to test multiplayer but Iām planning on starting that implementation very soon. The base vehicle has better animations and I have a model with doors and a character, but I will eventually need to commission 2 original vehicle models and at least 1 more original character (Iād prefer to not use Mixamo characters exclusively) before I can say the initial vehicle work is ādoneā.
Iāve started implementing some basic hittables and testing destructibles in the environment. The problem Iām running into is that the vehicle just runs right over smaller physics objects, including destruction debris, so it throws off the driving flow. Iāve tried adding fake bumpers and creating blueprint actors that give a custom impulse up and out when overlapped to prevent anything going under the vehicle, but so far nothing has really worked. Iāll continue to figure out the best way to implement those while Iām starting to focus a little bit more on level design. Level design is going to be another crucial element to making the game work and Iām going to start focusing on filling in all the level blocks for LATC. I want to build a strong network of lines for the player to follow and ensure they are constantly kept moving in a flow state. By the time next devlog rolls around I plan to have tested basic multiplayer functionality and have a much more comprehensive blockout for LATC.
Thanks for reading and following the development of #UntitledDrivingGame!
Since youāve made it this far, hereās an insider tip: Iāve finally decided on a name for the game!
Tristan Cole's Pro Driver
I think itās pretty obvious where the name draws inspiration from. I agonized over the gameās name for a long time and have a few documents/scratch pads with various candidates, but nothing ever stuck. If it tells you anything, the couple I liked were āTricky Tires/Sticky Tiresā & āPSI 720Ā°/720Ā° PSIā (ref to 720Ā°), neither of which were good. The TCPD name also follows the āPut Your Name on Your Gameā mantra by Bennet Foddy and Zach Gage, as well as pretty clearly gives an idea of what the game is about (IMO).
What do you think about the name? Are the character tricks too crazy or not crazy enough?
Let me know!
Follow me on Twitter & subscribe on YouTube for the latest news on Tristan Coleās Pro Driver!
New build out soon with updated traction & new character tricks!
Get Tristan Cole's Pro Driver
Tristan Cole's Pro Driver
Imagine Crazy Taxi & THPS had a baby...
Status | In development |
Author | elocnat |
Genre | Racing, Action, Sports |
Tags | Arcade, Driving, Fast-Paced, Multiplayer, Music, Skating, Unreal Engine |
Languages | English |
Accessibility | Interactive tutorial |
More posts
- Wallriding - TCPD Patch Build (#11.1)!Nov 08, 2023
- Glowing burnouts - TCPD Update #11!Oct 25, 2023
- Districts - TCPD Update #10!Sep 12, 2023
- #IndieRacersFestival 2023 build is live!Sep 01, 2023
- Checkpoint - TCPD Update #9!Jul 31, 2023
- What's new, what's next? - TCPD Update #8!Jun 11, 2023
- Sliding into the alpha phase - TCPD Update #7!Sep 06, 2022
- #IndieRacersFestival build is live!Aug 26, 2022
- TCPD Pre-Alpha Update #6! Grinding & driving upgrades + level changes!Sep 28, 2021
- Marketing considerations & a repaved roadmap -- Devlog #10!Sep 20, 2021
Leave a comment
Log in with itch.io to leave a comment.