Introducing EasyMapper for Unreal Engine 5 - Bilingual Subtitles

EasyMapper is a master material set up the combined world-aligned triplanar mapping with
nanite displacement and advanced vertex painting to blend up to three materials together,
all in one convenient package helping you create entire environment, like this one, fully textured without even needing UVs on any of your models.
Full disclosure, this tutorial video is sponsored by Capturing Reality.
To give you something to work with,
I've added five materials,
and soon I'll be adding an additional tileable material made with the latest version of Reality Capture using their new mosaic
base texturing tools which gives you way sharper results.
For while capturing battlety is sponsoring this tutorial, they are not affiliated with EasyMapper.
Every setting in a material instance here is clearly laid out for easy art directing,
giving you full control over the tiling, texture adjustments, displacement intensity, and vertex blend which gives you complete control over the look you're going for.
Now I've made EasyMapper as user-friendly as possible and it is
immensely helpful when it comes to texturing environments or assets where you just need to put things together quickly without sacrificing quality.
Or you can use it to add character and additional detail to your existing models.
I built a tool out of necessity for my own project because sometimes dealing with nasty
UV seams and having to manually author your own textures in another program like Substance Painter can be a huge pain in the butt,
hampering your creative process, EasyMapper fixes that problem.
EasyMapper is available on the Epic Market please, you'll find the link in the description.
below the like button.
Having shown you what EasyMapper is and what you can do with it,
let's jump into Unreal so I can show you everything you need to know to get Now,
first things first, when you download EasyMapper on the Epic Marketplace, you'll notice that it's a full project.
The reason for this is because in order for a texture-driven nanitesolation displacement to work,
you need two console variables to be enabled in your Unreal Project's config files.
You can't just add those console variables in your editor,
it's not going to So,
by default,
Easy Mapper's project is already set up correctly,
everything is going to work out of the box,
but if you want to migrate Easy Mapper into your existing project in Unreal,
I'm going to show you right now which console variables you need to add and where in order for that to work.
So you need to navigate to wherever your project is on disk.
We're going to go to the config folder here.
here, and then we want to open default engine right here.
Open it up with Notepad, it's fine.
You'll see here, we need the following two console variables for that to work.
r.nanite.allow tessellation equals one, and r.nanite.tessellation equals one.
When you've added these two console variables in your project, under the renderer setting, bracket here, make sure you save it.
And when you launch your project, displacement should work.
EasyMapper would develop on Unreal Engine 5.3.
But in the future, let's say in Unreal Engine 5.4, you may not need this console variable anymore.
So if this changes in the future, be sure to keep yourself updated on how to set up Nanite tessellation in your Unreal Engine project.
But for now, variables are a must.
So with that done, let's jump into Unreal Engine 5.
When you open the EasyMapper project for the first time, this here is what you're going to see.
You've got a brief explanation of how it works.
I'm going to show you how simple EasyMapper is to use in any environment.
environment.
So I'm going to go ahead and open the level demo scene right here because this is where EasyMapper really gets showcased well.
So everything in this environment uses one single master material only split up with material instances.
So in the content browser, let's navigate to the material folder, let's go to masters and you'll see we've got the EasyMapper underscore.
material.
This is not the material you want to work with.
You want to just apply this to your models like this,
because when you start editing things, this is what you're going to have to work with, and it gets a little bit overwhelming.
It's not very clear, it's not very user friendly.
What we want to do is right click on the material and and click Create Material Instance.
We're going to call this one Demo Example.
Hit Save, and we're going to apply this new material here to our sphere.
and you'll see right now okay cool we've got our default material default textures that are
provided with your purchase so let's open up right here and you'll see the material instance is way
easier to use way less complex everything it's clearly laid out and very clearly explained
and should be fairly easy for you to use after the box but i'm still going to go through all
of the settings with you one by one i'm going to move this over here here.
So starting off with the general setting, you've got use displacement, use world-aligned materials, enable vertex blending.
If you mouse over any of the settings here,
there is a tool tip that explains what each setting does, so it should be fairly simple for you to figure things out.
For now, we're not going to enable vertex blending.
That's going to come a little bit later.
but we're definitely going to keep use displacement and use world-aligned materials.
And let's start off by replacing this ugly gray texture with some bricks.
So again, provided with EasyMapper are a variety of different materials and more may come in future versions of EasyMapper.
So I'm going to go ahead and check these three.
I'm going to add this one here.
here, the ARD map, and the normal map.
EasyMapper uses the same texturing template as Megascans does.
So you'll notice when you download Megascans surfaces, you have the ARD map, which is ambient occlusion, roughness, and displacement all packed into one texture.
That is what the ARD map is.
So your displacement map is included in the ARD.
So now we've got our brick texture applied to our sphere.
Now the beauty of world-aligned texture is that, note what happened when I moved my sphere.
The texture stays...
As the sphere moves around, if I rotate my sphere, notice how the bricks are not changing.
That means you can quickly apply easy-mapper materials to any model regardless of whether or not they have UVs,
and you know they will be nicely projected straight.
This works extremely well for caves, tri-planar mapping is used all the time in film due to how fast it allows you to texture.
That is the beauty of a world-aligned texture because then I don't need to worry about getting UVs.
There's no seams anywhere There's no like straight harsh lines.
There's no artifacts like that.
It allows me to get a nice Seamless look across my model.
Now, let's go through some of the other settings in material area If you need it, metallic maps for whatever reason, you can enable those here, we've got
Texture Offset and Texture Scales.
So I unfold these, you'll see I can adjust the offset of each individual axis.
I can change the offset like this, and the top, and the side individually, like that.
I'm not saying you want to do this, but it's really great to have that level of control over each axis of projection.
The same thing can be done with the texture scale right here.
If I want to make it really small on one side and really large on the top, we can do that.
Full control over the scaling of each axis.
Now if you want a more global adjustment, you don't need to go ahead and have the same values here.
We've got global scale right here.
If I want to tile the bricks a little bit more, we can set this to two.
If I want it to tile a little bit less, I can set it to 10.
You get the idea.
And you'll notice we've got full displacement of our sphere here thanks to Nanite tessellation.
Now one thing you might notice is we get this odd blending here and that's just because
of the
world-aligned transition but we can control the sharpness of that fall off here by clicking on the tri-planar transition contrast right here.
I can increase that you'll notice that we can get a really hard transition here or we can really soften it.
So for something like bricks like this, we might want a harder transition.
It might just feel a little bit more natural than a feathered transition, right?
But again, that is up to you.
Now, let's say I want to make some adjustment to the textures or the level of displacement here.
We can also do that by going to the texture adjustment section here.
We're going to enable use material a adjustments.
And right here we're gonna have a whole bunch more control over the texture here
So now we've got like albedo controls change the saturation or the brightness or the contrast of of the texture of the albedo itself.
This based on the Megascans materials, so if you're familiar with how those work, this works the same way.
Same thing, we can add a tint, we have ambient occlusion controls, displacement, contrast, and and this is where things get interesting.
If we want to reduce or increase the level of displacement, we can do that right here.
We can also increase the contrast of the displacement as well.
that intensity of the bricks here.
Same thing with normal intensity and roughness contrast and intensity here.
So this is what really allows you to finesse the look of your materials.
In order for displacement to work, you need to make sure that the model you want to displace is a nannite mesh.
So in order to convert a model to nannite,
go to that model in the content browser, right-click, and make sure that nannite is enabled.
Otherwise, you're not gonna get displacement at all.
If for whatever reason you don't want to have this kind of world-aligned texture,
let's say you have a model that has existing UVs and you want to use those UVs,
you can totally do that by unchecking new world-aligned materials in the generator.
Now we have the default UV mapping of the sphere, but you'll see dudes in the way that this sphere here is unwrapped.
We're getting these really weird bent bricks and that's exactly where world-aligned mapping comes in really handy.
It can make things look a lot more believable this way.
Now this hard transition there is a bit fake looking but you get the idea.
We can adjust that and have aligned that by adjusting the texture scale on a per axis basis.
So could maybe do something like this and maybe adjust the offset like that.
And that way we can fake a natural theme just by adjusting the scale and offset of the brick texture,
and suddenly this looks a lot more believable, right?
Like said, total control over the look of your model.
and the projection of the world line textures.
Now, what happens if we want to blend an additional material?
As of now, we can blend up the three different materials.
We have material A, material B, and material C here.
So I'm gonna go ahead and change the texture from material B.
I'm gonna go into the texture folder that is provided for free, and I'm gonna do break one here.
Gonna add this kind of damaged floor texture here in material B.
But you'll notice that, well, nothing happened.
The reason nothing happened is because we need to assign vertex colors to this model.
And way to do that is a little bit different than it used to be in Unreal Engine 4.
We need to make sure we enable vertex painting, right?
Up here in the description.
And when you do that, you may think, well, what just happened?
We just lost our break and this is back to the default material.
This is not what we want, right?
We need to go ahead and enable the modeling tools in Unreal Engine 5 by going to the settings, plugins, and enable modeling.
These two plugins need to be enabled, otherwise you won't be able to vertex paint.
In the easy-mapper project that you'll download, this is already set up by default.
You don't need to worry about it.
So we're going to go press shift F5 to get to the modeling tool,
or you can just click up here and get to modeling there.
We're going to select our sphere, go to attributes here, and then paint for tech colors.
And depending on how your project is set up or what your defaults are,
you may not see this, you may see This or something, it doesn't matter.
Let's just leave it a lit vertex color for now.
This affects the visualization of your vertex colors.
And what we need to do is we need to just do fill black.
Because I think by default, most models will have pure white vertex colors across all channels.
So, That's what fill black does.
We're black across all the channel filters here, and now we can get started.
So I'm going to go ahead and switch this back to original material, which we can see in our brick texture.
I'm going to uncheck GNB because we only want to paint the red channel.
is black.
There's no vertex color.
Material B is going to be the red channel, and Material C is going to be the green channel.
Sound but don't worry, I'm going to go through this with you.
So with our check right here,
we're going to make sure that the erase color is black, and make sure your paint color is just pure white.
Now we can go ahead and paint on our sphere here and we got that other
brick texture that I added in the material B slot.
With that done we can hit accept and there you have it.
We are blending two materials together.
So going back into my material.
In material B,
I'm going to go ahead and check the material B adjustments, and you'll see I don't really like how strong material B's displacement is here.
So in material B, I'm going to reduce the displacement intensity.
I'm going to bring it back down a little bit, something like that, to make it a bit more even in displacement.
I don't want it to pop still.
much.
Material B and C can be controlled exactly the same way as you controlled Material A, so I'm not going to go through that again.
Now how do we paint Material C?
I'm going to go ahead and add a plaster texture here that we have included for free when you download EasyMapper,
and then when we've assigned our We're going to go back to the modeling tools here,
make sure our sphere is selected,
hit paint for text colors,
make sure that channel filter is not R,
we want it to be G this time, the green channel, because that's what's going to paint material C.
And you'll see we're painting our plaster texture.
on our sphere right now.
You'll notice that we have a bit of a layering thing going on here.
The plaster is painting over the gray brick and the gray brick is being painted over the orange bricks.
The layering system works as follows.
It's material A that the base layer, material B is the mid layer and material C is the top layer.
So it's always A, B, C.
If you forget which one it is just mouse over enable vertex painting here and you'll see right here material A is base layer,
B is mid C is top.
I hope that's clear.
I'm gonna hit accept and then you'll see we've got our blend.
Now again I'm just going to reduce the displacement intensity of the plaster because it's a bit overkill.
Adjustments and adjust the displacement intensity of C to reduce that like that But now you'll notice,
you know,
the blend here is not very convincing at the very soft smooth very game-looking trend but we can control that with what we call advanced
perfect blending.
Advanced perfect blending is not a new thing at all.
This goes way back to the Unreal Engine three days to it's nothing new, but it's a great old school trick.
What we're gonna do is we're gonna go up here in the general settings.
When you see we've got material A, B blend controls and material C blend controls.
We're gonna click on this here.
Because you'll notice here that the brick walls have this awesome blending.
very convincing looking blend between the plaster and the brick.
The blend settings here are how you control that.
So I'm going to set the expand and contract setting to 0.1.
You'll see not much changed.
I'm going to set the blend contrast to like 10 to really sharpen up that transition.
And lastly, the mix slider is where things get really interesting.
So attention right here.
If I start sliding this this way, you'll notice the plaster starts bleeding into the cracks of our brick across the entire surface.
If I go the opposite direction, it's going to appear more like a snow building up on top of the surface.
So you have full art direction over the control and look of this blend.
For now, it's going to leave it something like that.
That's pretty cool.
But now we're not quite getting the same result that we're getting over here, right?
And there are several different ways of controlling this.
So the mix here.
take displacement into account.
So if I scroll down to material C and adjust the displacement amount,
you'll notice that as I increase it the plaster is kind of taking over the brick.
And I reduce it the opposite happens where it only starts to build up in the the lesser deeper cracks.
So not only takes displacement into account, it also takes vertex color intensity into account and let me demonstrate this right here.
I'm going to go ahead and paint on my brick wall over here to give you a better idea.
I'm going to select my brick wall, paint vertex colors, reduce the size here, and notice what happened if I just start painting like this.
You'll see at the very harsh...
Very harsh transition.
We're not getting that same kind of soft, cool, stippled kind of blend here.
This not the same look at all.
The way to do that,
to get that kind of look that we have over here, is by decreasing the flow to a very low level.
And now, since our erase color is black, by holding the Shift key, we can kind of erase what we painted.
And notice what's happening now.
Notice that I am slowly painting and eroding away that plaster look and revealing the brick below.
That is how we can get a more Convincing look just by reducing the flow now by reducing the flow.
I can paint it back So notice right up here for example,
but there's no plaster at all I'm slowly revealing the plaster and covering up the brick Very cool technique very convincing old school,
but it now works even better thanks to nanite displacement Now one thing to keep in mind though when you're using vertex color on a mesh
Unfortunately, you cannot paint per instant.
You only paint per mesh because these pillars here are all the same mesh They're all they're all this one SM pillar here
Pay attention to what happens if I'm going to vertex paint on this pillar.
Okay, if gonna go ahead and paint this here and I'm going to fill white to really just give it material C.
If hit accept now, that change will be propagated to all of the pillars.
Notice now all the pillars have material C on them.
So I'm going to hit undo,
but now you know if you cannot vertex paint per instance,
if you want each pillar to have a different vertex paint,
you're going to need to right click and duplicate it, place that in the level.
one.
I hope that makes sense.
So kind of blending is perfect.
If you really want to add some kind of snow or sand building up on the floor of your environment,
that vertex blend and mixing is the best possible way to do that.
So if you want to know how to get this kind of result that we just saw in the previous shot earlier,
there is nothing here you haven't learned how to do already.
So opening up the material here, you'll see I've got two materials.
I've got the Roman Stone floor, and the dry sand texture.
These two mega-scan surfaces that I got off the Quixel Bridge.
So what I've done is I've vertical painted on the ground where I wanted the sand to be,
and from there we just use the mix settings up here.
To really get that kind of control and blend that we want and lastly we're going to go down to material C here
Which is where I assigned the try sand textures from mega scans and by adjusting the displacement intensity here.
I Can either make it completely sandy or
Completely stony like this you have full control over the looks you want with simply adjusting one
Getting this kind of control is exactly why I developed EasyMapper and why I am making it available to all of you.
It's just such a fun tool to use and gives you that kind of creative control over the look that you want in your environment.
Now let's say you have a mega scan model or your own custom model that already had its own textures and its own new V's and everything and you just want to use EasyMapper in order
to blend some additional like moss or snow or something on your mesh, you can absolutely do that.
All you need to do is go ahead in the in the material instance.
You're going to go ahead and add your mega-scan or your custom texture in Material A.
You want to make sure you disable world-aligned materials and then using Vertex Painting with Material B and C,
you can go ahead and paint Moss or Snow or whatever you want on your existing mega-scan or custom meshes.
You don't need to use world-aligned materials if you don't need it.
This gives you a ton of flexibility as an artist and gives you a level of control that would have been difficult to do.
previously, everything from displacement to vertex blending, it all packed up into one neat little package.
While we're here, I'm just going to quickly segue into how we can make our own tileable textures.
Creating high-quality textures like the ones found in the Megascans library can be done with a combination of tools.
Most importantly, go?
Photogrammetry, which scanning a surface of your choice with the help of reality capture.
No matter what you are scanning, the basics are largely the same.
Shoot enough photos and get enough coverage with enough overlap between photo to get a clean.
If you're interested in dedicated tutorials about photogrammetry as a whole, I recommend watching the following tutorials I've made on the topic so far.
You'll learn everything you need to know to get started in reality capture and creating your own models and textures.
After you scanned your subject and generated your model in RealityCapture,
you can export that model from RealityCapture and into ZBrush where we can clean up the mesh,
polish it up a little bit and make the low poly as a form of read apology.
This plane is what we're going to use to bake the tileable texture too.
Then you export the models,
both the high resolution reality capture scan and your low poly plane that you made in ZBrush into something designer,
where you can not only transfer the color texture you get from reality capture,
but also the other necessary textures, the normal map, AO, displacement, all of the good stuff.
Once those textures are baked, we can export them into something painted.
You'll notice that if we offset the texture here, there is a nasty seam.
Unfortunately, you can tediously paint away those seams across all of the channels,
albedo, metalness, roughness, normals, and height in order to make that texture tileable.
You really just clone stamp that seam away.
Making tileable textures is a very tricky process to get right, so I have to give a shout out to the Megascans team.
They do absolutely phenomenal work.
And now jumping back to ease to use it.
Now that segues into the troubleshooting aspect of this video.
I'm going to show you an issue that may come up in your levels,
and that is really nasty seams that we have here that may happen on some of your models when you're using displacement, right?
So opening up this material here, if I uncheck displacement here, you'll see everything gets fixed.
There's no more problem.
But when it turns this place.
You know,
we get this really nasty line here,
and the reason for that is because you need to make sure that everything has one smoothing group,
or at least you can split your smoothing groups,
but you're going to be getting a displacement gap or a seam here if there are two adjoining splits in your moving groups.
And again,
a quick way to fix all this is by going on your mesh and in the editor tools, we can click on the normals.
I'm going to set this to area weighted and maybe normal threshold and set this to 180 or something.
And you'll see the,
see the difference by setting this to 180, you're going to make sure that the whole ceiling is all one smoothing group.
And by hitting accept here, we've gotten rid of all of those gaps.
So if you're running into that issue, that is how you feel.
Now, it's possible that you may run into the following issue here.
If two objects of the same size may have different displacement intensities,
despite having the same material,
you might notice something like this,
or you may also notice that sometimes when the camera moves close, you get this weird culling like this, right?
The reason that is happening is because Nanite displacement and calculation takes the scale of your object into account.
So pay attention here, this sphere here has a scale of 0.48, and this one has a scale of 10.74.
And that is often the way the displacement works in most renderers.
It the actual scale of the object into account.
So the way to fix this is by resetting your transforms.
So we're going to do is we're going to click on the mesh here, we're going to go to X-form here and bake transform.
And when we do this...
You'll see the displacement has now returned to a more normal level.
That is the solution to this problem.
It's worth mentioning however that in order to get a good blend, you need to have enough vertices.
And what do I mean by this?
You'll notice on this wall here, right?
The blend is very easy.
If I click here, we can really paint wherever we want.
But on the ceiling here, there are not that many vertices.
If go to wireframe mode here, you'll see this wall is way more dense in vertices than the ceiling is here, right?
So if you don't have enough vertices, this kind of weird straight line thing can happen.
So if I'm going to go ahead and paint.
If I paint,
you'll see I'm painting on each vert and it's fine,
but we're getting a sharp line there that's just because there's not enough vertices in between the two.
So just be aware and you may need to add more vertices if you want to get a cleaner blend and more control over where you can
or can't blend.
This should kind of go without saying because you know it's vertex painting.
You need the vertices there to paint on,
but not everyone is familiar with this concept as it's a pretty old school trick, so I figured it's good to know about.
So there is one last issue that I am aware of.
That's when it comes to shadows and nanite displacement.
So pay attention here as I close to the pillar.
The shadow seemed to kind of pop a lot.
This seemed to be a very inconsistent issue.
Sometimes it shows up and sometimes it's totally fine.
It doesn't seem to be an easy map of related issue, but more a nanite tessellation and displacement related issues.
An immediate solution for this is if you select your lights and you set it to cast ray traced shadows.
then that problem largely goes away.
So that is an immediate band-aid solution,
but I really hope that Epic manages to fix it with virtual shadow maps in a future release of Unreal Engine.
So for full transparency,
I just wanted to let you know that I am completely aware of and pay attention to the pinned comment of this video down below.
That's where I'll keep you updated with no issues and feel free to ask your questions there.
And that is pretty much it when it comes to EasyMapper.
To use EasyMapper in your own project,
all you need to do is right-click on the EasyMapper folder and migrate it to your desired Unreal Engine project.
Right now,
like I said,
we can blend up to three different materials,
but if there's enough demand for it,
I plan on continuing I'm going to add the ability to add water puddles or an additional fourth material that you can blend in on your models
I also plan on creating a landscape version of this
Translation Language
Select

Unlock More Features

Install the Trancy extension to unlock more features, including AI subtitles, AI word definitions, AI grammar analysis, AI speaking, etc.

feature cover

Compatible with Major Video Platforms

Trancy not only provides bilingual subtitle support for platforms like YouTube, Netflix, Udemy, Disney+, TED, edX, Kehan, Coursera, but also offers AI word/sentence translation, full-text immersive translation, and other features for regular web pages. It is a true all-in-one language learning assistant.

Supports All Platform Browsers

Trancy supports all platform browsers, including iOS Safari browser extension.

Multiple Viewing Modes

Supports theater, reading, mixed, and other viewing modes for a comprehensive bilingual experience.

Multiple Practice Modes

Supports sentence dictation, oral evaluation, multiple-choice, dictation, and other practice modes.

AI Video Summary

Use OpenAI to summarize videos and quickly grasp key content.

AI Subtitles

Generate accurate and fast YouTube AI subtitles in just 3-5 minutes.

AI Word Definitions

Tap on words in the subtitles to look up definitions, with AI-powered definitions.

AI Grammar Analysis

Analyze sentence grammar to quickly understand sentence meanings and master difficult grammar points.

More Web Features

In addition to bilingual video subtitles, Trancy also provides word translation and full-text translation for web pages.

Ready for get started

Try out Trancy today and experience its unique features for yourself

Download