Modular Vehicle Vol. 2


NOW AVAILABLE ON UE4 MARKETPLACE](Modular Vehicle Vol. 2 in Blueprints - UE Marketplace)

**Video Playlist: **…V2cmSgxSvapqeO

Following vehicles were used as references in order to make modules for this pack:

  • Bereg A-222 130mm coastal mobile artillery system
  • АА-60-160-01 Airport Crash Tender Vehicle
  • MAZ 543 cargo truck
  • Fighting vehicle for support combat duty missile system
  • 9K58 “Smerch”

Main features:

  • 5 vehicle presets with a lot of module combinations between them
  • Advanced customization system
  • Dynamic vehicle creation at runtime
  • Add your own modules/module types to extend existing capabilities
  • N-wheeled vehicle support
  • Different anti-stuck measures (savepoints, automatic and manual respawn, wheel jumpers)
  • AI for aircraft, character, vehicle
  • Health/Damage system
  • Various weapon and projectile blueprints
  • Showcase level with advanced landscape material setup and procedural grass and trees placement
  • Snow/Dirt trails with displacement support
  • Procedural Wet/Sand/Mud/Snow surface effects on the vehicle
  • Lots of built-in useful blueprints: teleporter, capture point, enemy spawner, etc.

Customization System features:

  • Change Materials
  • Edit selected module material
  • Edit all materials at once
  • Material layers support
  • Texture masks support
  • Custom skins support
  • Support for changing custom scalar, vector and texture parameters
  • Change Modules
  • Change Decals
  • Save/Load vehicle data
  • Pre-defined vehicle configurations
  • Weapons/accessories support via custom sockets
  • Module compatibility checks
  • Module installation checks
  • Take screenshots
  • Change environments
  • Customization level
  • Test all module actions

Vehicle weapons:

  • Artillery turret
  • Rocket launcher turret
  • Rocket pod
  • Gatling gun
  • Rotateable machine gun
  • Automatic AA turret

Module types:

  • Chassis
  • Main Module
  • Cabin
  • Side Bags
  • Back Stand
  • Stopper
  • Middle Section
  • Weapons
  • Accessories
  • Boosters
  • Engine
  • Brakes



**Full Dev Diary: **

Reserved post

Reserved post

Day 49

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

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.
I hope it It would be helpful in the future for those, who would want to add new models to the existing 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. I’m using Blender. 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.
  1. 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.

  2. 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.

  3. 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
  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. Export your bake meshes (2 meshes for each model - high poly and game ready for baking) and import them into Marmoset Toolbag.

  6. 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.

  7. 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).

  8. 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.

  9. Test that everything works and looks fine.

Day 54

Completed game ready version of 9K58 “Smerch
Artstation (video included):

MAZ 543 Cargo Truck - High Poly Version

АА-60-160-01 Airport Crash Tender Vehicle - High Poly Version

**A-222 Bereg 130mm coastal mobile artillery system - High Poly


**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.

Day 60

Very interested… definitely a buy for me as it would perfectly fit my project (see signature)

I have a few questions:

  • Do you plan on having a decal system as well ?

  • Do you plan to enable custom user textures (maybe though an optional C++ addon as I do not see it doable in a BP only project…) ?

Anyway keep up the good work !


I have such task (decals support) in my task list, but can’t guarantee at this moment that it will be done (maybe it will be moved to vol. 3).
Indeed, it’s a blueprint only project, so I limited in a lot of things. But if the project will be popular, it’s possible to create additional C++ addons for it.

Isn’t this possible by using TextureSampleParameter2D or TextureObjectParameter in Material Instances?

I think he meant to upload custom textures via OS file dialogue into the project at runtime. TextureSampleParameter2D allows you to change only already packed textures (maybe I’m wrong).

Oh, I get it… makes sense. Thanks!

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.