[WIP] [UE4] Modular Vehicle Vol. 2

Try view layer > Set exclude after right click on collection:)

It works, thanks! With E/Alt+E hotkeys it even easier to use. Maybe if it would be named “Unload collection from memory”, it would be easier to find it for those who didn’t read the docs about each button.

Day 18

Again, a huge break from working on this project, during which I learned that getting fun in games is more important than any AAA graphics quality.

What’s new:

  • Better headlights

  • Full gamepad support

  • More normal details added to the vehicle

  • Camouflage support

What I should do next:

  • Multiplayer support

  • Vehicle customization system

  • Environment for Showcase level

  • New vehicle modules

  • Various material improvements

  • Projectiles. Lots of them.

  • SFX, VFX, Polishing


I’m writing this activity log mostly for myself to analyze my performance and quickly recall workflow in a case when I dived deeply in programming and need to shift to artist mode.

Day 35

Not dead yet. Still working on this project from time to time (amount of days in the title is an amount of actual days when I worked on this project).

What’s new:

  • Customization system is almost done (in-game materials and modules tweaking). This feature required to remake all internal architecture of the vehicle, so it took most of the time. The video will be soon.
  • Multiplayer support temporarily delayed due to vehicle movement replication bugs in UE4
  • New modules have been added. Still need to make around 10 modules at least.

Day 45

Customization System Test #1

1 Like

Impressive work and dedication :+1:

You may add a little description in first post, at least like : This is a game project using Blender + UE4.

At first looking only at the video it’s a bit difficult to guess the game part, 4mn without gameplay (even if this video isn’t for promotion).
People not tasting the quality work may stop before and miss the “Fire At Will” game side.

Good luck Colonel, keep it going !

PS : forget this whole post and put an armagedonexplosion at the beginning of the video :postal_horn: :dart: :fireworks: :sparkler: :metal:

1 Like


It’s not a game project, it’s more like a framework to make new vehicles faster in UE4. Just add new models and your part of a game, which requires vehicle will be completed. At least that’s the main idea.

Gameplay/Promo videos will be later. The main goal of this video is to show the current state of vehicle customization system (the final part of the video should show you that vehicle settings saved/loaded successfully) for those, who really searching similar system for their projects.

Day 47
Experimenting on Showcase Environment

I started to work on the Showcase level environment. Currently doing lots of research on landscape materials and vegetation. This screenshot was done during the research of some assets from Kite Demo. I don’t have a lot of experience in building open world environments, so things going slowly. Also working on new vehicle modules, one of them (fighting vehicle for support combat duty missile system) will be presented in the next update.

Day 49

Completed high poly version of fighting vehicle for support combat duty missile system.

1 Like

Day 50.

Game ready version is ready. Turret also working fine.

Day 52

Completed high poly version of 9K58 “Smerch”

In this short tip, I want to describe my workflow of making vehicles for this project.

  1. Decide what you want to make.
  2. Gather references. You need all sides of the vehicle, because they are mostly asymmetrical.
  3. Make high poly mesh by using reference images. Mostly I’m using the following modifiers: mirror, bevel, subdiv, triangulate, array, boolean, sometimes solidify and wireframe.
  4. When high poly is ready, it’s time to clean everything. Start from checking and applying Scale/Rotation.
  5. Then you need to check your modifiers:
    • Make sure that bevel has 4 segments to prevent issues with materials. I’m using Angle or Weigh Limit Mode. Sometimes it’s useful to use Clamp Overlap or set bevel weighs manually (I’m using HOps, so most of the weights are set automatically).
    • Make sure that your mirror modifier doesn’t have Bisect or Flip U/V checkboxes selected. One Flip U checked and you’re risking to redo a lot of o work due to UV overlapping after export, so check carefully.
    • Make sure that your meshes have triangulate modifier with Keep Normals on. It helps in a situation when you don’t have a good topology and don’t want any issues with UV later.
    • If you’re using subdiv, 2 subdivisions are enough for baking.
    • Apply boolean or solidify modifiers if you didn’t do this already.
    • If you have linked duplicates, which exists in multiple collections, make sure execute “Make single user” command with Object Data checkbox selected, so each collection have duplicates, related to their own collection and they not shared between collections.
  6. Apply materials to your meshes. If you have HOps, you can select multiple objects, press Alt+M and apply a material to all selected objects.
  7. Make UV for your meshes. Use Shift+L hotkey to select all objects with the same material to pack UV. For cylinders do UV manually, for box-like meshes Smart Unwrap mostly is enough. Apply Average Island Scale before packing your UV. Don’t forget to apply solidify modifier before doing UV.
  8. Create a rig for your meshes:
    • For armature set rotation X to -90 and scale to 0.01 for UE4
    • A vehicle for UE4 should be placed in X forward axis
    • Use 3D cursor and Shift-S hotkey to place bones in the exact location.
    • Use Ctrl+P -> With Empty Groups to bound meshes to an armature
    • Set vertex groups for your meshes.
    • Make sure that everything works fine in Pose mode
  9. Save everything and exit Blender. Then copy your .blend file and rename postfix from High Poly to Game Ready. Open a new file in Blender.
  10. For each mesh remove unnecessary (for low poly model) meshes, remove bevel and subdiv modifiers. Rename collection names postfix from High Poly to Game Ready.
  11. Save everything again and exit Blender. Then copy your .blend file and rename postfix from Game Ready to Bake. Open a new file in Blender.
  12. Append high poly collections into your bake file. Unhide all collections except current high poly and game ready for the selected model. Then by selecting similar meshes and moving them, explode model parts to get better baking results.
  13. Export your bake meshes (2 meshes for each model - high poly and game ready for baking) and import them into Marmoset Toolbag.
  14. Add baker, Set Multiple Texture Sets checkbox, select required materials, select all maps except Material ID, Set Fix Mirrored Tangents checkbox, Change output name, set samples to 16x, for Normal maps set Flip Y checkbox if you’re using UE4, set High Poly and Low Poly meshes, hide High Poly. Make test bake with normal map only to see if everything is ok. Then bake all other maps. Paint Scew/Offset if needed.
  15. Open Game Ready .blend file and export your game ready models with armatures (you can also export the combined mesh, which contains all models, to simplify the texturing process). Open Substance Painter 2, import your mesh and baked textures. Apply baked textures. Add custom channels (L8). Apply masks and export normal maps + masks + RGBAO maps (packed with Grime/Scratch/Dust/AO masks).
  16. Import your game ready meshes and created textures into UE4. For masks texture set compression settings to masks. Make Physics Assets for meshes. Apply non-customizable materials (like mirror material) to the meshes. Create blueprints for new modules.
  17. Test that everything works and looks fine.

Day 54

Completed game ready version of 9K58 “Smerch”
Artstation (video included): https://www.artstation.com/artwork/BmJQvm

Day 56

What’s new:

  • Vehicle got much stable driving behavior - no more sudden stops due to landscape irregularities or crazy spinning wheels when they in the air (now it’s a per tire check if wheels touching ground instead of a general check for all tires)
  • Lots of improvements and bug fixes, related to inter-module communications
  • Worked a little on customization level demo environments as well as on the ability to take screenshots

In-game customization level screenshot examples:

Day 58

Working on the landscape.

This time I’m trying to use Gaea instead of World Machine to make height and layer maps for landscape.
The hardest thing in creating an open-world environment is to make everything compatible with everything else. Grass color should match landscape color to prevent any visible borders between near and far landscape tiling. Same with trees, rocks and all other assets. The whole landscape should match to real-world references and at the same time to the story and gameplay. I mean it’s rather easy to make a good looking slice of open world for artwork, but pretty hard to make things work in real games, especially for such novices in this area, like me. On the other hand, the purpose of the Showcase level is to make the environment to test vehicles (with some basic quests and story), so I don’t need to make a lot of assets for this. But I still need to add rocks, trees, buildings, landmarks and make it all compatible with each other in 1-2 weeks maximum because there are tons of other tasks and time is running out. Hope I will do this somehow…

Day 60

Learning new things. Established basic tree creation workflow. Experimenting with rocks and debris (unsuccessfully, can’t make them compatible with landscape). Tweaking everything. Improving materials. Doing some other stuff. Nothing too exciting, but this is fine at this moment.

Here’s a little video of the current state of landscape:

1 Like

That’s some great work and dedication. But, the vehicle seems to be driving too fast and the fact that it turns so well without tipping over makes it feel less realistic.
Maybe you can tweak it’s mobility, since it looks very top heavy.

Ok, will try to change the center of mass a little bit. It was tweaked to the level when a common player can drive it without falling to the side on every turn if it drives fast. Initially, it was very easy to tip over this vehicle, so I tuned center of mass and some other parameters to the extent, where it feels heavy on start and controls well on high speed.

Day 62

What’s new:

  • Accessories support (hats for vehicles, yay!).

  • Boosters support (now you can use good old nitro to speed up the vehicle or use jumpers to make small jumps)

  • Pause menu.

  • Ability to change the camera in First Person Character blueprint - from first to third-person view. Body in the first-person view is also visible.

  • Installed modules now have text indicator to separate them from non-installed.

  • Now you can add infinite amount of module types with socket-based attachment. Previously only weapons can be installed in such way.

  • Modules now can execute multiple actions instead of single activate/deactivate events.

  • Documentation improvements

I also moved to Jira instead of just plain text document to manage tasks, because the number of tasks much more exceeded one hundred and keep growing so I felt that I need better tools to manage this project.

1 Like

Really nice work so far! :clap:
I like this MAZ so much - I own one of many variant as a paper model, but never built it:D
But I use it as reference for my 3D models (chassis, wheels, etc…) I wanna also create this specific version - in future:D