Advanced Merger Toolkit

Advanced Merger Toolkit


A powerful, easy to use, non-destructive Mesh and Material Merger Tool.

This tool makes it possible to combine groups of objects into a single or small groups of objects in order to improve the performance of your games without sacrificing your workflow.
It also allows for the creation of merged LODs by re-using already existing LODs from the original objects, and controlling the percentage of objects included in each LOD and minimum size each object needs to have for each LOD.

– Merge groups of objects with the same materials into one single object;
– Merge groups of objects with different materials into a single object with a single material;
– Non-destructive workflow (easily go back and forth between the original and merged objects, for a single or multiple Merger groups in the scene)
– LOD Generation with control over percentage of meshes and minimum size per object per LOD;
– Include/exclude specific materials from LODs;
– Material merge specific groups of objects with specific materials into their own merged object (e.g. Separate objects for Standard Opaque and Standard Cut-Off);
– Share merged materials between different LODs;
– Easy and powerful texture and material setup for Material Merger with scriptable objects;
– Re-use already baked lightmaps used by the original objects for the new merged objects;
– Re-position UV2 Lightmap UVs so they do not overlap (for use with baked lightmaps);
– No coding required when using in the Editor;
– Run-time support;
– Generate cloned colliders from original objects;
– Perform Merger to every Merger group in the scene with one click;
– Switch between the originals and merged objects of all Merger groups in the scene with one click;
– Prefab creation and save all merged meshes/materials/textures inside a given project folder;
– Preview merged statistic results before performing merge generation.
– Full source code.

– GameObjects with or without LODGroup component (Will use original object’s LODs for the merged LODs);
– Tiled/Offset/Scaled Materials;
– Multiple Materials per object;
– Substances (Unity 2017, Editor only, not at run-time );
– Color multipliers in materials can be applied to textures in merged materials;
– Unity 2017/2018 (Tested all version from 2017.1 to 2018.2);
– Default Renderer, HDRP and LWRP;
– Any Shader. Keywords can be enabled when using Material Merger.

– Massive draw call reduction;
– Reduced number of shadow casters;
– Improved performance on both the CPU and GPU;
– Improved realtime lightmap results (especially for modular scenes);
– LODs are treated for the group as a whole instead of per object;
– Easy to work with and to change objects even after merging them.
– Slightly higher memory usage due to extra meshes and textures;

Current Limitations (Will be resolved in future updates):
– No Substance support for Unity 2018;
– No Run-time Substance support (Works just in editor);
– No support for UVs outside of [0,1] space;
– No skinned meshes support.

– Merge groups of objects using a grid (Great for large modular zones);
– Share same merged material across multiple Merger groups (Even less draw calls);
– Support for UVs outside of [0,1] space;
– Include custom components;
– Skinned meshes;
– Run-time Substance support.
– Substance support in Unity 2018+;
– Keep raw GameObjects active with their renderers and LODGroups disabled in order to keep custom components.

Possible features for future versions:
– Automatic Mesh polycount reduction;
– Add objects to already merged objects efficiently at run-time;

Video Demonstration (missing some of the latest features):

PBR Game-Ready Furniture Pack – Desks



Furniture Pack containing:
– 10 Desks
– 2 Drawers
– 1 Chair

Assets are game-ready, containing 3 LODs per asset.

All assets contain PBR materials. Textures included:
– Albedo,
– MetallicSmoothness,
– Normal.

All textures are 2048×2048.


Object Construction Kit


Asset Store Link:

Create detailed and efficient scenes in minutes!

Object Construction Kit is designed to allow developers to quickly and efficiently create detailed scenes with ease.

After the scene, or part of a scene, is ready, the OCKit generates combined objects with levels of detail for greater performance.

This asset also includes an Atlas Tool, that allows creating, editing and managing several atlases at the same time.

– Focused on fast and easy workflow for artists and level designers
– Randomize position, scale, rotation, UV placement, image, sprite for each single object
– Support for pre-made mesh LODs
– Generate combined objects with the same material
– Automatic LOD generation with user defined attributes
– Automatic prefab creation and generated meshes are saved on the project folder
– Support for combining objects, with LODs, even if they are not used by the Object Construction Kit
– Extra Atlas Tool for creating, editing and managing several atlases at the same time
– Automatically assign each generated atlas to each property of a specific material
– Projection component that automatically projects groups of objects onto surfaces
– One-Button Randomization
– Full Source Code

All assets in the videos and images are included with Object Construction Kit.

For more information, feedback and feature requests, visit the official thread on the Unity Forums:

First Person View 2.1

First Person View 2.1



First Person View is an asset that allows you to have a First Person Perspective where first person objects do not clip through the environment, have a separate field of view from the environment and can receive shadows from the environment.


Game Features

  • ­ First Person View models don’t clip through the environment
  • ­ First Person View models receive shadows from the environment
  • ­ Independent Field-of-View between First Person View and the World View

Script Features

  • ­ Ability to automatically change between World View + First Person View and World View only. (useful when the player interacts with the environment)
  • ­ Ability to assign and remove objects to/from the First Person View perspective
  • ­ Automatic Layer assignment for First Person Objects. It preserves original layers when changing the objects back to World View
  • Transform a point and/or direction from First Person View to World View

First Person View 2.1 Update

  • Added partial support for temporal camera effects (TAA for example)
  • Fixed how the Depth Normals Texture is rendered for FPV objects
  • Added support for FPV objects to cast correct shadows onto the environment
  • Added support for Forward Shaders and Forward Rendering


  • Removed First Person View Layer requirement. It’s no longer needed and should be done on a per project basis.
  • Removed FPV V1 solution (Multi-Camera solution), because it does not work with Unity anymore. V2 is a superior version and much more efficient.

Known Issues

As of now, the only limitations of this system are:

  • ­Shadows/light are still stretched on FPV objects
  • Motion Vectors are partially supported. It “resets” the buffer, but in my tests i don’t see any issue. Contact me if any issues occur.

Get First Person View 2.1

Check the forums for feedback and questions:

No Heroes – Development Blog #7

Welcome back to a new development blog!

Gameplay Improvements

This week i got a lot of feedback after testing No Heroes with a few more people.

For starters, i was able to remove any signs of mouse smoothing that there was in the player input. This was caused by how the system was setup with the networking middleware i’m using.

Now, the player input is very responsive and much better to control.

In addition, i also improved aiming down sights speed and movement consistency.

Game Options

I also added two options for mouse sensitivity and aiming sensitivity. These options are now in the same menu as the video options, but will later be put into another menu.


I also made a second pass at the graphics options and post processing settings, and updated what each option affects and how the option affects it. The game is now more consistent and performs better with lower graphic settings than before.

Sound and Visual Effects

Improved the footstep system by being able to play more sounds per surface. Every surface also received completely new sounds, about 5 new sounds per surface.

I also improved all firing effects, hitmarks effects and sounds of weapons, which can be seen in the video in the next section.

Improved Body Awareness

To add more realism, the character no longer rotates under their feet. Instead, the feet stay in the same position until the player rotates enough, that an animation is triggered and moves the feet to their original place.

This makes the full body awareness feel more immersive:

Lighting Improvements

To better improve the visuals, i spent some time tweaking the lighting and tonemapping by better using HDR. Now the colors and light feel much more consistent, and the transition between light and shadow look much better.


Terrain and Foliage Improvements

I also tried some new techniques to better improve the overall terrain on slopes and some parts of the map that looked ugly.

More types of grass, new rocks and new plants were added to the map.

This slideshow requires JavaScript.

I also made a timelapse gif of the day/night cycle, which can be seen in this tweet:

Performance Improvement

Made a new pass on assets and map performance by reducing some textures resolution where the change has insignificant visual results, but saves on VRAM usage. Plus, i reduced many spec/metallic texture resolution, since these are really not noticeable. With this, i saved around 50-100 MB of VRAM and saved some milliseconds.

Improved SpeedTree performance by unchecking some costly properties and improving their LODs distances.

Some player algorithms were also improved, along with more intelligent remote networking updates and client-side prediction corrections.

Noticed around 20FPS improvement on my machine with these changes. There are still a lot of places to improve performance that will be worked on next.


The remote player was also improved, with smoother movement, more consistent events (vaulting, climbing) and the same lower body mechanism described earlier.

Now, when a player kills another one, their weapon also drops to the floor and can be picked up by other players.


As miscellaneous updates, i spent some time re-organizing the project folder with a more practical hierarchy, and also removed many unused assets to decrease project size.

Since i have have the server play in a window, i had to set it up in a way that it doesn’t consume many resources, so i improved the server performance a lot by reducing plenty of unneeded computations, graphics, frame-rate, and more. It’s now very light in comparison to what it was before.

And, as always, many bugs were fixed, but probably many are still hidden in between the cracks of the code.

Plans for Future Updates

To end this development blog, here’s what i will be working on for the next development blogs before the Development Update #46:

  • Fix persistent client-side prediction inconsistency
  • Improve general gun feel and control
  • Improve map and art assets performance
  • Improve costly algorithms performance
  • More consistent visual looks


Well, this was a big development blog 🙂

Thanks for reading and for the amazing support!


No Heroes – Development Blog #6


Lag Compensated Hit Detection

Starting this blog with something major, i added lag compensated hit detection on the server.

This makes it possible for when players hit a player or some other thing, that action is also correctly performed on the authoritative server.

To easily test this, i implemented a target system where the target moves in a line back and forward in a similar way the player movement works. This allows for accurate hit detection testing.

To see if everything works, when the target gets hit on the server, the red light turns on and it rotates backwards. If it’s hit on the client, the green light turns on, but doesn’t rotate backwards.

Here’s a simple video demonstration of this in action:

You can see that without lag compensation, if the player hits the end of the target, in the opposite motion, the hit never happens on the server. And if the player shoots in front of the target in motion, the hit happens on the server.

Aiming Down Sights Consistency

This time i also fixed the problems about the aiming down sights. For some reason it was behaving frame-rate dependent, even though its algorithm wasn’t frame-rate dependent.

I was able to fix this issue, plus the smoothness of turning it on and off. One other issue i was having with this, was that with long-range scopes, the scopes were stuttering when the player moved or rotated.

Now all these issues are fixed and working properly. You can see this in the video above.

Deferred Projected Decals

This was actually partially added in the last blog (which i forgot to include), but now, i added more types of these decals to the bullet holes with better lighting, and decals around the map.



Two more things were fixed/added to the game.

Now, at the end of the game, the match winner is displayed, and i also improved the spawning system of Deathmatch game mode by choosing the spawnpoint that has the biggest average distance to all the enemies.

This works pretty well for deathmatch.

Trello and Development Update #46 Planning

A couple of weeks ago, i announced that i defined the last ToDo tasks that need to be done before the next Video Development Update #46.

I had to add just a couple of important new ones, which were already completed.

I also updated the whole Trello board with a more organized look. Now it’s much easier to see the tasks , and which ones are the priority.


That’s it for this development blog!

Thanks for reading and for the amazing support!


No Heroes – Development Blog #5

Welcome to the new Development Blog #5!

I’m going to make this update a bit short so i don’t spoil too much for the upcoming Development Update #46 (No ETA though)

Authoritative Movement

So, i thought i got this fixed, but turned out it wasn’t. It was working properly, but when i tried debugging the movement with induced lag, it started behaving very weirdly. Moving, jumping, falling were full of micro stutters, vaulting and climbing were not behaving correctly, and so on.

As everyone that works with networking will say, networking problems are the worst.

With that, i was able to fix the issue, and now the player controller is very smooth and better than before.

Now, all testing is done with induced lag, so i can test how the game plays in reality.

Props, Props and more Props

For this update, i decided to replace a lot of the old objects i was using in the map with new and better quality objects. In total, there were more than 30 new objects that were added.

I used Blender for 3D modelling, and Substance Painter 2 for textures.

Map Improvement

With these new props, the map now looks and feels much better and detailed. You can compare these images with ones from previous blogs, and you’ll see a very big difference in quality.

Here are a few screenshots:

Cloth Physics

If you follow me on Twitter ( @Tiago11F ), you might see some posts that i make showing new things in the game. These are usually small stuff, so i just post these on my Twitter page instead of other platforms.

Here’s a preview of the improved wind shader:

And here, i show a simple way of creating cloth objects:

Editor Smart Placement Tool

I also made a new tool that greatly improved item placement. This tool projects each individual part of a single mesh onto the terrain, so nothing is left in the air or inside the ground.

First Person View 2.1

Regarding the next version of FPV2, i fixed some inconsistencies with first person shadows, and also fixed the weird things that i was getting with this setup on the editor scene camera and other cameras.

This new update is still work in progress, so i don’t have an ETA for it yet.

Development Update #46

With all these updates, i should probably talk a bit about the next video development update.

Things are progressing well, and i feel like the next update is almost on the way.

I wanted this update to feel like a new game and feel a lot different in comparison with Update #44. There’s been so much work done that it really does feel like a new game.

You can see how No Heroes was back then:

(Very different! and not just the looks.)

I was thinking of making a small video for this Development Blog to show the improved character movement, animations, sounds, map, etc, but i decided not to spoil too much until the next update, so it can feel fresh.


That’s it for this development blog. A lot more work has been done on other things, but don’t feel like those should be included in these blogs.

Thanks for reading and for your awesome support!


No Heroes – Development Blog #4

Welcome back to a new development blog of No Heroes!

First Person View 2.1 Preview

Starting things off with First Person View, i decided to figure out how to fix the shadowing issues and lighting due to how this system works (very short z-buffer for first person objects with custom projection matrix (independent FOV)). Because of that, shadows were almost an on/off effect, and lighting was also on/off.

I was able to improve this, and give real depth to the player character. There are still some things that need to be improved and optimized for easier setup, but it’s looking much better as you can see in the following screenshots (light is exaggerated on purpose for easier shadowing visualization):

Remember, first person objects don’t clip through the environment and have a separate field of view, much like any modern shooter. This allows changing the field of view without distorting the player models. To my knowledge, i haven’t seen this achieved in any Unity made game yet.

I was also able to add player shadows onto the environment, making the player feel a part of the world:

Improved Terrain

Jumping onto the terrain, i switched a few textures to new ones that give a much better quality to the terrain. The new grass and dirt textures make the grass feel like it’s part of the terrain.

Overall quality also increased, with higher resolution textures and new speedtrees placed on the environment.

Game and Controller Predicted Movement

One thing i noticed when testing the game, was that the movement wasn’t always fluid. This was due to the movement and smoothing being made on the fixed-update methods (constant slower frame-rate), due to the networked controller predicted movement. Now, a smoothing algorithm is performed on the Update method, that smooths out the players movement in relation to the actual frame-rate of the game, making everything feel much smoother.

Until this update, when a player died, the ragdoll would remain in the game until the end. Now, each client is allowed only one ragdoll during the game.

Wind Shader Experiment

Just yesterday, i was messing around the environment, and one thing i noticed the most was that, except for the grass and trees, it was too static.

Using the asset ShaderForge, i made a shader that simulates low level wind on the objects. The effect runs on the GPU, so it’s not very expensive. It still has some improvements to give a more natural wind effect, but by adding wind effects to certain objects on the environment will make it feels much more real.

This effect already has the option for exclusion mask, wind texture, wind speed and deformation amount.


Last but not least, i was able to improve certain sounds in the game.

I added the ability to have more than one footstep sound per surface and fixed the loud noises it was causing.

New footstep sounds were also added, plus new gun sounds for firing and handling it. At the moment only the pistol has new sounds, but more will be added to other guns.

Unity 5.5

In addition, I ugraded the Unity version to their latest Unity 5.5. Performance improvements and general looks improved by making this update.

Many other things were worked on, like improved networking performance, bug fixing, player movement, classes structures, textures, and more.


Well, that’s it for this development blog.

Thanks for reading it and hope you’re liking the progress!

Don’t forget that you can see what is being worked on No Heroes and what’s left to do on the official Trello board:

Also, take into account that this is a hobby project of mine, and i don’t work full-time on it, so it’s not unusual for updates to take some time.

Thanks again!


No Heroes – Development Blog #3

Welcome back to a new development blog!


First of all, this blog was delayed a couple of weeks because i had to prepare and defend my masters thesis, which i passed 🙂 . Because of that, i wasn’t able to spend much time on the game and make a development blog.

With that done, here’s what has been worked on No Heroes since last development blog!

For this weeks blog, i focused on two things: Improving the map and fixing an important issue with slow player spawning.

Map and Visuals

Starting with the map and visuals, as you remember from some old images and from last blog, there were some odd and ugly buildings in this section of the map. To improve it, i made a few new ones with better materials.



New objects, small walls, grass, and trees were placed around the map.

Faster Player Spawning

This was one tough thing to fix.

The spawning of a new player, with weapons, attachments, animations, etc, was so heavy that there was a close to 1 second lag when a new player spawned.

I was able to decrease that cost to something that isn’t noticeable, which is fantastic, but will still need to be reduced even more.

Might not seem like a big deal, spawning a player, but with all the systems implemented in the game, it is proving to be a more difficult task than previously thought.

Dynamic Movement

The dynamic movement of the weapon was also changed. It wasn’t very natural, and was hard to aim when rotating the player around.

So, my goal was to make a better dynamic movement with fluid and consistent movement. The following video compares the old with the new (wip):

Out of Bounds

A very straight forward thing that exists in every game is the out of bounds. Like was explained in last blog, an out of bounds effect was implemented, and now the server actually kills the player after a few seconds of being out of the game zone.

Game Consistency

Making everything consistent in a multiplayer game is probably the most difficult thing to achieve.

For this development blog, i also spent a lot of time trying to make the game more consistent, like gamemode setup, destruction state synchronization, weapon/attachment assignment, bug fixes, etc.


It’s still awaiting approval, but No Heroes will soon be up on the MadeWithUnity official page! It will be a huge honor to have No Heroes next to all the awesome games made with Unity 🙂

You will be able to access the page through the following link when it’s approved: #MadeWithUnity No Heroes



That’s it for this development blog!

Thanks for reading and for the support!


No Heroes – Development Blog #2

Hello everyone!

A lot of things have been done and improved since last blog. From better AI that shoots at players to optimized and consistent player spawning, initial work on screen-space health effects, improved visuals and details on the environment and a lot more!

Screen-Space health effect and hit feedback

Until now, there was no visual feedback that a player has been hit, so i implemented a few effects based on the health the player has and if the player has been hit by a bullet.

The effect based on the health changes the screen to black and white and the corners of the screen imitate an heart beat indicating the player is low on health.

The hit feedback can also be seen on the video, where the gun flicks when the player is hit.

One thing i didn’t include in the video is the out of borders effect. It gradually increases the bloom effect and adds a grain effect to indicate the player is out of bounds of the play area.

AI Players

Last blog i implemented AI controllers, but they only walked around the map doing nothing.

This time, the AI players can walk/run around the map, and if they spot a player, they will shoot at them. To be able to easily test things, i made them shoot only once a second. That way i can see if everything is working right. The whole AI controller is also more consistent than before.

The AI can be seen in the video above.


Before making the next video update of No Heroes, i also wanted to improve the visuals, 3D objects, textures and a few other things. Not too much but enough to look much better.

For the sky system, i’m using uSky. It gives very high quality results with really good performance. Day and night got a lot better.

I also modified many colors, mainly on the terrain, but also on a few models. Added more details like small/big rocks, trees, and others.

The grass was also pretty bad looking, so i decided to improve it. Watched a few videos to see how to do better grass, and tried out a few things. I was able to greatly improve the quality of the terrain by modifying the grass as it can be seen in the images below.



One other thing that impacted the visuals quite a lot was cloud shadows. By adding a cloud texture to the directional light cookie slot, it simulates cloud shadows. it’s not entirely correct with the sky, but it’s not very noticeable.

No Cloud Shadows

With Cloud Shadows

And that’s it for the second development blog.

There were a lot of other things worked on like behind the scenes stuff, consistency issues resolved, performance optimizations, new 3D objects, textures, etc.

Thanks for reading and thanks for the support!