Transcripts
1. Introduction: Hello, everybody.
My name is Arash, and I'll be your instructor
in this tutorial. You want to learn how to
create environments so fast? With re using resources that you have while
getting a good quality, so I welcome you to next to it efficient environment
creation course. So in this course, we will start with
the references to get an idea of what
you're going to create, and then we will
create a blockout to make sure that the ideas
are going to work fine. The approach that we have for this course is kit based course. We will create kits, and using those kits, we will create a world, something called the
Blacksmith mentality. So we just start to
work like Blacksmith. We have the raw
material like wood, metal and things like that, and then we start to
create a world with them. And the good news is
that you do not need to recreate everything
from scratch. When you have the kids, you have the ability to reuse the kids in a reusable system to save a lot of time
during the production. Then in blender and real engine, we make sure that
we create systems to allow us for fast iteration. For example, using simple
geometry nodes in blender, and do not worry if you do not
know about geometry nodes. It is going to be very
easy to understand and we're not going that
complex on geometry nodes, something just to get the job done and create
variations so fast. And then in real engine, we use blueprints to create systems so fast
and try to iterate a lot and from a handful of kids creating a complete world. Well, if you're
interested enough in taking this course, join me. My name is Arash,
and I'm ready to teach you how to create
worlds efficiently. Okay. See you in the course.
2. Download Project Files: Hello, everybody, and this is the final finished
environment that we create. This tutorial ships
with the project files, and if you go for project files, you have the UE five project. If you open the project files, you are going to
get these files. And if you extract the archives, you're able to use this
file to open this project. And the level is final level. You can use. And we have some of these files that we use and we reference throughout
the tutorial, for example, some HDR images, some of these Z brush of
that we use in the process, and some of these useful links to brushes that you can use, and they will be referenced
in the tutorial later on. So this is the final product, and it chips with
the project files, and you can use them.
Save in the tutorial.
3. Planning And References: Okay, now we are going to start
creating and before that, it's really important to start the planning phase because
creating something without proper planning is just creating a house with no
foundation at all. So we are going to first discuss how the project
is going to be. And then we will discuss on
a few references that we have that they are going
to help us along the way. So here's the reference
board that I have gathered. It's a purchased reference pack that I cannot share with you. Unfortunately, because that
belongs to somebody else. I purchased the pack, so it's not available
for sharing with you. But you see, there's such a composition
that we are going for. We are going for an
old village with some boats and
basically the idea is going to be a small
village on an island. So just let's take a
look at this reference. This is what I'm talking
about. We need to create a very small
landscape, but of course, the landscape is not going
to be the main purpose of the tutorial because that is a small portion
of that tutorial. We are going to create
something like this in Gaia and then create houses. And, of course, you
see, because this is a current day village, and with some really
contemporary architecture and the way of building houses, I'm not going to
do the same thing. I need to make sure
that it looks older. We need to make sure
that the houses are made with wood so that it implies that the village that we are making is
going to be older. We are going to keep
such a composition. These are cool references. That we can take a look. But the houses are going
to be made up of wood. So let me bring some references. You see? This is mainly what
it's going to look like. Of course, the roofs and everything is
going to be different, but you get an idea of what the houses are
going to look like. They're going to be
made up of wood. And we might go for a
modular approach to create as many
variations as possible, but we might also create
unique buildings, for example, make such a building
just one piece, depends on what the
approach is going to be. So this is going to be our home or basically the system that we're going for
creating the houses. So let's just take a
look at references. The first thing is, of course, the composition. We are going to make a village that exists just beside a river. And the main job of the
people is to just sell fish. So they need boats. They need rafts to move in the water and just
take fish and sell them. So that is why I chose to create such environments
because I really liked how the houses are
going to be made up of. And then you see this
is the composition. We are going to then look
for building references. These are individual
buildings that we can take ideas from, for example, how they are built
on top of the river, how they have been placed alongside to create such
a compelling environment. And then we will take
a look to see how the individual buildings
are made and then take that idea and transform
it into something playable for games and environments or even
animation and movies. Okay, one of the main points of the environment is to create
a water shader to support the idea of our environment
because it's going to be just placed alongside
a small river. So the water shader is
going to be something important for the creation. And then a few props
that we are going to create include some rafts, and I'm going to make sure
that they look makeshift. And they have been created using just ordinary
everyday parts. To make the story
more compelling. Of course, we might
create some boats, but the main idea is
to create a shaft, something like this to just really tell the story
that the village is not so rich and they have been
creating things just with ordinary parts to just
catch fish and sell it. Okay, now you are seeing how the reference is
going to look like. Of course, the first thing
that we're going to create is a small landscape that we're going to create
in Gay future lessons, but you already take what
we are going to create. It's going to be an
island that leads to something like this sea or river or whatever
you can think of. And then we will build
houses and scatter them around for natural effect. And we might also decide to copy these houses
and flip them over to here so that we
create a pathway that leads for composition.
I'm thinking about that. For now, it's just an idea. So in the next lesson, we are going to create
such a landscape in Gaia. Of course, we are
not going to create a sophisticated
landscape because it's not an important
part of this tutorial. We are going to just create
something that holds the composition for our village. And then if needed, later, we will include some sculpts like stone or rock or
something if needed. So the next thing or the first thing
that we are going to create is the landscape, and then we will go for a
rough blockout really create some rough shapes
of these buildings to scatter around the village to see how the composition
is going to work. First, we will start the white boxing and then we will go to create
the village itself. First, it's important
to make the blackout, the white box because it
happens sometimes that you create really AA arts and then bring it to level to see
that if it's not working. So first, we create
the composition using the blackout
method so that we just use a little bit
of time to really think the ideas to go
for a fast iteration, and maybe if
something was wrong, you can clearly just fix it with just a few clicks because
nothing has been created. But if you go and first
create something like this and place it in the environment and
see it doesn't work, it's just going to be
something negative. So we're going to avoid that and start with rough blockout. So I'm going to pause
now and see you in the next one where
we go open Gaia, a free landscape creation tool, and then export that to
unveil Engine and test it to see how that
is going to work. Okay. See you in
the next one where we start the creation process.
4. Gaea Terrain Creation: Okay. Now we are Gaia free tool that you can use to
author to range. It has a lot of complexity. It has a lot of
flexibility and it's a great software to really
author your trains into. But we are going to use
community edition which is free, and you can download
for free and use limited one K to one KEport. Concerning that we're
going to create a very small landscape,
it should be fine. And the fact that this
community edition is free, and you can take and try to
create your landscape in. So here's the viewport of Gaia. You can pan around
using middle mouse click and to rotate around, you can hold down Alt and
using the left click, you're able to rotate
around your landscape. And when holding Alt and
right click Zoom in and out, you're able to zoom on
the landscape. Okay? Very easy. And this is the
three D viewport and one important is this
viewport resolution. This belongs to this viewport, and 0.5 is something
that I recommend you if you have a weaker machine or if you have some processes
running in background. But if you go and use one K or even two K and four K
depending on your resources, it's going to take
more to render. And this is for viewport only. And because I'm recording
at the same time, I'm keeping that on 0.5, it's the preview resolution viewport that
belongs to this one. Okay? And here's the three
D viewport only if you want to bring the two D
viewport for later usage. It's available in here, so I'm going to hide it now. And the majority of our
time is going to be spent in this graph and
this properties menu. So how Gaia is going to work is that you start
with maybe primitives or geo primitives and then start to manipulate the shapes
using these effects. And if you are happy
with landscape, then you go for
colorizing and then exporting that for external
software to be used. Okay? For example,
this mountain in here, if I bring that you
will see that it just shows something generated. And if I bring the
resolution up, you see it takes more to render, but we're going to take
more high quality version of that in the render. And if I bring that up
to two K or four K even, it's going to be heavier
for performance. Okay? When you create something, for example, this mountain, you are going to have some
properties in here that are specific to that node that
you have brought here. For example, we
have scale to see how how great or tiny the
mountain is going to be. And if you bring the scale down, you're going to get
bigger picks or just it gives you results based on the scale and how bulky it's going to be. And if you press bulky, it's going to really maximize the shapes for more
pronounced shapes. And then if you bring the height down to something
more reasonable, you're going to get
something like this. And you have some post process nodes in
here, for example, the level, the to level, which is going to do the same
thing as bulky, I believe. And then you have
clamp, for example, something like this to
define the mean and max. And you have these
nodes for usage. And then you have random seed, and then depending on which specific node you
have something to use. For example, let me
bring something that has more rugged shapes because
based on that landscape, I believe if you
have rugged shapes, it's going to be more natural. So let's go bring something
like this, ridges, okay? It's going to just create
some forms and you can also, if you want the landscape
to have some kind of low like a gradient, you can bring the gradient. It's self explanatory if your landscape is going
to be in such a way. Okay? I'm going to delete that now. And I'm going to
use this bridge. And of course, you can bring
something else, for example, Rocky is going to be different. But because we are going to
have some randomized shapes, I'm going to use this ridge. Of course, you can bring
Canyon, for example, if you want a different shape
or something like this, or you could bring this
whatever you want to. And of course, you can
bring Voronoi and try to manipulate the shapes and
get something different. But I'm going to start
with ridge because it creates a good landscape, and then we're going
to carve the C in it. Okay? Now, I'm just happy with the default shape
that we have here. You have these shapes, but let's go for
a different seed. So I click here and just
enter a very random value. Just get something
more different. Okay. Now it's a good one. And
later that we define erosion. It's going to erode
a lot of these areas and create maybe like
a pathway in here. It has some possibility for here to be just like a pathway. You see, you can already see the houses in here and
the river in here. So there's some
possibilities in here. Let's go and see what
we are going to create. So first, I'm going to
remove that mountain, and then let's bring
a bit of erosion, a very simple erosion to use. Okay? This is the erosion, but let's go for
something more different. If I bring the erosion, and now there are some
things to concern. First, if you want
the erosion to apply, if you change something, you see, it doesn't because erosion is one of the nodes
that take more to calculate. So you need to first
apply changes, or if you want to also apply, you need to click here so
that every time you change, it's going to be
changed right away. Okay? This is the erosion. It really gives the specific
shape that we need, but I'm not liking how it's
going to look like here. So we could use some of the erosions that maybe
create a river or something. So let's bring this wizard. It's erosion, just a
different type of erosion, and try to use that. And now, there's something. If you click here, you're
able to see the ridge, and if you click on the
wizard, you'll see that. If you want to log something on the
viewport, for example, you can right click
and you can just pin. So when you pin something, no matter where you click, you are always going to see that the node that
you have pinned. And now I can go to
this ridge and try to change something and see that
after applying that wizard. Okay? Now let's also
apply the wizard. Let's do something
Just let it calculate. But again, of course, I'm seeing that possibility in here. If we introduce C in here, it's going to be a
very good one and creating island in here. So let's try to see
which one works. This is too much and let's just try to calculate
and see what goes on. Okay? This is good. It gives that rugged shape that we need. We are seeing some
ups and downs. And then you can go for
different settings, for example, strength. And I'm just going to pause
and return back every time I change something because
it takes time to render. Okay, now you see it
erodes even more. So let's go back and you can play with different settings to see which one of them works. But I'm going for phase two. And in here, you can
see different settings. I'm going to go for a
river because it creates possibility for down the hill to create a river when
the erosion stops. Okay? Let it just calculate and then you can see that we
have some shapes in here. And let's go for a random seed, change it, for example, a very random number. And click and let's see
what the result is. Okay, now we have a mountain, let me take that
erosion and delete. Now we have a
mountain that we have something carved in
here for the river. So later that we
enter the river, it's going to be creating
some areas for the island. And later we will colorize
the landscape as well. So for now, I'm happy with it. Okay. For now, we have a very rough shape that
needs to be calculated. So there are a lot of nodes
that you can try to create. For example, these warp
nodes are amazing to create complex shapes
out of simple ones. So let's try to pin
because now you see this green circle that indicates that
the wizard is pinned. So if I just click
here and unpin that, now the pin functionality
is going to be disabled. But now you see that it turns this one
into something like this by warping the shapes
into different places. Okay? Now I'm just thinking about keeping this
one or removing that. So let's just see what happens. Now, instead of that, you have adjustment
nodes as well. And then these filters that you can use and even locked up notes are really awesome to give a very fast shape
to your landscape. Okay? Now, you really do not need to know every one of these if you want
to create something. But it's a good idea to just get familiar
with some of these. For example, these dev notes are awesome in giving a very fast
shape to your landscape. So let's try to like that here. And you see it just goes
for something like a valet. The name indicates if I bring in rugged and try to plug that. You see, it's just going to
go for different shapes. Let me also apply and try
to change the shapes. And you can already see that. If you just try to introduce more values,
it's going to change. And one of them is shatter. It will create some
details on the landscape. So let me just take that. And you see this from
these simple shapes, we go to something more
rugged, more in place. And it just looks like it's
more naturally created. So let's just use
shatter and you can see these blurry shapes
then convert it into something
more sophisticated and the settings are there. I'm not going to change
anything except for this random seed
because why not? So let's try to
change the shape. Okay? And right now you see some possible areas for
that river created in here. So this shatter node was awesome to create those possibilities. Okay? But I do not
want the landscape to look something like
this, like a mountain. I want that to be terraced, like that terracing effect. So there's a quick node. If you just search, just search for terrace and you will get the
terracing effect. So let me take a look. Okay, you see now that
terracing effect happening. This is it, and this is that terracing effect
creating that effect. And then there's another
terracing if you want to go for, and that is fractal terraces. Just let's see. And I believe that I'm liking
this one better. See, it creates a lot of
cool terracing effects. Of course, a lot of these
are not going to be seen because they're going to be hidden under the houses and the rivers and all of that functionalities
that we create there. But it's a good idea
to keep that in mind. So I'm going to go
using this one, and it can try to change the
settings to your liking. For example, okay? Now, this is going to
change that a lot. That I want some
of that roundness to be present in here. Okay? Mostly, I'm liking the
result. So let's go. And these octaves is the amount
of terraces that happen. If you bring that down, you see, we get lesser amounts. If you bring that
up, you see that terracing amount is getting
more and more present. So let's go for the default, which was 12, I
believe. No, it's ten. And let's see about
the intensity Okay, let's go for something half. This is too
mathematically created, and this is just
the shatter node without the fract alters. So let's go for something really in between to have
the best of both of them. So the shape, let's
go see which one we like the most Okay. I think I just like
the defaults one. And let's just change the random set to a
very random number just without actually doing
so much to the terrain. So make sure. Let's go for shape So this is raising
these. I don't want that. Let's just try to
raise the mountains instead and keep these just
the way that they are. Okay? Now, these notes
are or post processing. So for example, if I level, it's going to rank up
the value too much. Let's see for difference. Okay? Now I don't know
exactly why it happened, but it's the result
of that difference. Okay? Now this mint Now, let's keep the landscape
the way that it is. I like this terracing, but we also later, we will
introduce something more. So now the landscape is okay. We will add a C in here. But before that,
we need to create some details on the surface
of the landscape. You see? It's good, but it's not really
that quality that we want. So some of the nodes
on this look Dev, there's a node called surface. You see? Let me bring
that and try to plug it's trying to add some
really resolution to here. The whole purpose of
that is like that. Okay? Now, I think we have
created a good landscape. It has the island to
place the houses upon, and then it has a lower
area for placing the sea. Okay? Now, we have a node in the water
category that is called C, or you can use river and lakes, but I'm going to use C. Okay? Let's just plug that here, and you can see that it brings up the sea
level and creates some transition area between
the landscape and the sea. And this is where we are
going to place our houses. And the mountains themselves may be good for
something background. Okay? Now the level is too high, I need to bring that down. So let's just Go. This one looks right.
Let's go for 7%. And now you can see it has washed some of those
areas and we have some grounds in here
to place the houses. Okay? Based on the reference you see, we have these islands that
the houses are on top of, and then we have
a transition area where the houses are
going to be built, and then we have the river or sea or whatever
you can think of. So let's go for a
lot of variation. Okay? This variation
randomizes everything. And you can see in here as well, there's some possibility for
building those houses Okay? Let's go for maximum variation because that is a good idea. And then we have a shore size for these shore areas because
now they are too small. We need to have more transition. So let's go for more. Okay? It makes the
transition area even a lot more powerful. And now we need to lace these and create
something like that. Okay, now we are going for
removing some of that and create a shore areas
for placing the houses. So let's go for variation
and a bit of more details. And I think we have found the
place for our houses. Okay. Later, we will export that to Unreal Engine to see
what we have created. But in order to give it
a bit of more detail, I'm going to color
that so that we export with a color
to Unreal Engine. So for coloring, there are different category let
me go to that category. And here you have the color, which you can get set maps from. So these are amazing, really realistic combination
of colors that you can use. And if I just that here, you see that it applies in here. But you see, it's not
the quality that I want, and the colors are
not specifically good for the composition
that we need. We need the river to
be blue, of course. And then the mountains to
be something in between. Having some green and black
and white together mixed. So before using that SAT map, there's a node that you
can use is called texture. So let me bring that. Just search for texture. This is going to take the
satellite, excuse me, the It map that we have created and
apply some grunge to it. Okay? If I apply, you see now, it applies a bit
more color in here. So if I apply like that
to SAT map CC now, the color becomes a bit more sophisticated by
mixing these colors. If I go and apply that, you see, it's just
a random color, but that texture adds a bit
of more possibility for using different colors on
the landscape without actually adding something
to the color itself, the height itself, excuse me. So this is going to be
the color for our rock. Now let's go change
something about that. I'm going to of course, it needs that auto apply. So let's change something
this scale, I believe, introduces more tiling to that, but it doesn't have effect
on this area uptop. So we're not going
to do anything, and let's go for something
very random seed, a very very random number. So you see, it's only
affecting these areas, which by the way, is
going to be deleted. So I'm not going to do anything. Of course, you have
different possibilities. So this is the first set
map that we have created. Let's go see what option is
available in here for usage. So there are a lot of them. I just don't want
that color of course, we will later create a
good blue color in here. So I'm going to keep
that for now because it gave us a good color in here. Maybe we use it. So let's try to pin that and try to test different one of these. And it's really
dependent on you to see if this is a good one. It has the same
colors that we want. It has a bit of green. It has some black and white. Okay, I'm going to keep that. Of course, I can
invert that, as well. Invert the color scheme, but I'm going to
just use this one. And now we need to
go for the river. So let's bring that sat
map and bring that here. Okay, we lost that
color selection. Okay, it doesn't matter. I'm going to delete
that and then again, create another set of
these or creating the S. Okay? Let's go for texture, and then for sat map, we're going for another
category which is blue. So it depends on OstC
which blue color we need. And then later we will use a
technique to blend these to keep the mountain color and separate it from
the blue color. Okay, now let's go see which
one of them is working. I'm really liking a really light blue
color just like this. It looks like this
is a good one. Let's just try to find
something that works for us. Okay? This is good, but I want
color to be a bit lighter. So let's see if it has a
hue saturation already. But of course, this is just for a blackout because later we will create a water shader
and place it here. So this color selection is only for those
blackout purposes. So now let's do something. I'm going to make sure that this applies only on the sea level, not the actual rocks themselves. So let me bring a
combined node. Okay? This is the way that we
combine these together. So it needs outputs. So if I apply that, you see, based on the ratio, we are getting a
mix between those, but I do not want to
really mix those. I need to place the
ratio on 100 so that we see the 100 influence
on all of them. But I'm going to go to the sea and try to
create a mask from it. Okay? You can go for data. Let me bring that data in
here and you can try to bring some ones that are more
helpful to you, for example, based on a landscape, but the one that we are going to use is height because you see, we have a very small level
of height for the sea, and this is exactly having a
much more pronounced height, that we bring in
a height, and it needs our landscape
to be applied here. And then if I select that, you see this is a
black and white mask. So we need to make
sure that we select only these blue areas
or the sea area. So let's try to okay, now you are seeing what
we are talking about. Let's, this is
something more like it, but we need to subtract
these areas from it, okay? Then let's go for that mask. Now, you see, we have a mix. And now if I just select this combine and plug this
into the mask of that combine, we are separating that mountain from the C using a height. Okay? Now let's go
for auto level. Now, it's using the one ratio here and a bit of in between areas between the
mountain and the river. Okay? I feel like we have
created a good landscape. And I think if we go with that fractal terrace and
try to change you see, now it's procedural,
and it means that if you go back
and change something, it's going to go and affect everything you
have created so far. Okay? Using these few nodes, we were able to create
a very good landscape. Okay? I'm just trying to use some of these settings to create a transition area. Okay, I do not like that. Let me bring fractal
terrace. And this was ten. The default value was ten. And now this is the
landscape that we get, of course, here is a good idea. I'm just changing values to
get something more natural. Oh, let's go back. The settings between or before those changes. Okay? I'm liking this result, and this is going to be the area where we create our landscape. And the composition is going to be placed in here
or maybe in here. We don't know exactly. Here is a good option as well. We have some slope
to place the houses. And of course, a lot
of this is going to be hidden behind
the composition. So now I'm going to
save and this time, we are going to
export our texture. And export the height as well. So now the last change on
the height that we added is the C. So I'm going to
right click Mark for Export. And then after this combine, we could create an output node
and let's go for formats. And I'm going to
go for PNG. Okay. And then, of course,
we could create another output for this one. Let's create an output. And then format is going to be this one for usage
in Unreal Engine. I'm going to right click Mark
for Export and right click mark that so that this output and this one
are going to be exported. So we go to build setting, and now we have these outputs. So let's go for this one. For this output, I'm going
to rename that to texture, and this one is
going to be height. Okay. Now if we go to build, this has not been reflected
here. So it doesn't matter. For build, we need to bring
the resolution to one K, which we are going
to use this one because that is something
that Unreal Engine uses, and everything else
is going to be okay. So just define a folder, I'm going to save them here. Okay? And if you start build, it's going to build and
return the results to you. So I'm going to press Build and return back when it's done. So here's the build
data that we take. This is the height that we're going to import
to Unreal Engine, and this is the
texture that imported. It's going to be
fitting that one really well when we try to bring
that to Unreal engine. So I'm going to pause
now and in the next one, we will go import the training site real engine and test it to see if
everything is working right. Okay, see you there.
5. Testing The Composition: Okay. Now we have created
the terrain in Gaia. If you want to be exact in creating the exact same terrain, I've included the files
in the project file. If you open the project files, there's a terrain folder, and there you will
get the height plus the texture
that you will be able to use if you want to follow the exact same
direction that we're going. So now I'm going to
create a new level, and let's go for a basic Okay, it's just a simple plane with
a simple lighting setup. Okay? Now, for importing
the landscape, we need to go to selection
mode and go for landscape, and we need to import from file. And there's the height Map file that we need to place, okay? Here's the file, and it
just gives you a preview of how that is going to look
like a very simple preview, and all you need to do
is pressing Import, and that will import the
landscape just in a few seconds. So I'm pausing for the
calculations to be done, and I'll be back when it's done. Here's the landscape important, but because that is just a
bit off from the center, we need to bring it up so that it's not getting affected by the environmental effects
like the fog or something. So I'm going to go
to selection mode, go for one of the
orthographic views, okay? And this is the landscape. I'm going to bring that
right to the center. Okay. Now let's go
to perspective. And here you see the landscape, just like the one that
we created in Gaia. And here's the place that
we might be looking for. So in order to see that better, I'm going to create a
very simple material. So in the content folder, I'm going to create a folder that we place
everything there. So let's just call it village. And then I'm going to
create a new folder. Textures. I'm going to
create folder structure so that everything that
we import is going to be placed in the
respective folder. So this is going
to be for meshes. This is going to be
for the materials that we will be creating, and this one will be for
maps that we export. So control S, and then
I'm going to here. And because we are in
the blockout stage, I really I like to
start the naming of the files with numbers
because alphabetically, they appear up top of the list. And now, blockout A. And because I work
in iterations, sometimes I just when I
want to save a new file, I go for, for example, zero, zero, blockout B, whenever I go for a major
change and leave that alone so that if something went wrong and I wanted to
get back something from here, I'm able to go back
and see what I have available
there as an option. So here's the way that I work. Let's save that file. And now we need to
import that texture. So I'm going to create the utility bolder and
I'm going to import. So again to the direction
that we save that texture. And now let's call
it terrain texture. It's in SRGB as
well, which is okay. Now I'm going to create a very simple material for that to apply it on the landscape. Let's create a material. This is just for the
visualizing purposes. It's terrain. I'm going to
select my landscape and apply that terrain material
Landscape material. Let's go for terrain. And now it's not showing anything because there's
nothing in the matzaial. So again, I'm going for bringing that texture
here and just plug that base color and save and now the mapping should
be off because it's tiling the texture so much. You see? It's tiling
the texture by a lot. So in order to match
that to the landscape, we need to go to material, and there's a coordinate
node for landscape. Just search for landscape, and that is landscape
coordinate. So in here for mapping scale, we need to enter the exact number that
we exported from Guyon. So plug it into the UVs. And it should be good to go. Now, if I return back, you see now it's getting applied on the places
that we wanted. Now there's something off here, and that is because
when we imported that, it didn't import on 2010 25 resolution that
we imported from Goya. So let me go here and
let's go for imports. And if I just bring that, let me just save the scene
for now and test it here. I wanted to see what is
the actual resolution. So in here, it imported 1072. So we need to return
back to the map. And for the scale of that, we need to import 1072, save, now the
mapping is correct. Okay? The way that we expected and let's just add a very simple multiply to be able to darken
and lighten the color. So from parameter and
for the default value, I'm entering one so
that it doesn't affect. And for the roughness, because we need to
control the roughness. So let's set this
one to 0.5 as well. And name this one color. Now that we have exposed
these parameters, we can go create a
material instance, okay? And then in here
instead of terrain, I'm going to select
the terrain instance. And in here, we are able to control the
color and the roughness. So the roughness should be okay, but the color needs
to be darkened a bit. So let's go for 0.5. Now
it's a better number. So now we have the ability to start placing
a camera in here. And if you look, it's just
the same as we expected. We have a landscape behind, and there are a lot of
village houses in here. So for now, I'm going to create a camera in
here, cinematic camera. Okay. Now let me select that Right click
on pilot camera. This way you're able to
see the composition. So now let's go for the camera. I'm going to create
folders because that is a lot better for managing. So the first camera, we have some settings in here. Let's set that to 35 millimeters
and for crop setting, let's go for that. I want to keep this ratio here. Okay. Now, if you
just start to move, you see the camera moves
and we do not want it. We want the camera to stay
exactly in the same place. Okay? Now, let's do something. I'm going for transform
and lock the camera. Now, whatever I do, the camera is not going to move, and this is something to keep. And I'm going to keep a camera or later if I wanted to change something
about the camera. So I'm just going to bring a scale representor
a human scale so that we see how the scale of everything is
going to be comparing that. So you can download a lot of free human references from Net, but I'm going to bring
one that I have here. So I wanted to name this
one utility as well because I do not want it to
be where other measures are. So I'm going to import that. And here's the scale. If you just take a look at here, you see the dimensions. It's close to 2 meters, which is the actual
standard scale for height of a character. So if I just start
to place that here, I'm getting a sense of the actual scale of how
that is going to be. For example, if I just start to bring in a very simple cube, and I'm going to
scale that because that is 1 meter by
1 meter by 1 meter. So let's say that
we want to create a house that has a scale of 108 by eight, for example. Okay? And now, if I just
start to rotate that, here's the house and here's the character scale
based on that. Okay? It's important
to keep some of these characters here and there to see if you like the
composition or not. Okay. I'm just trying
to spread that here and there to see how great the environment is
going to be and how the scale of everything is matching based on the scale
of the actual character. So when you start to play
with that character, it's going to be important. So I'm just going to
place some of that there, and I'm going to
bring that here. Now, let's leave it at B. And now for now, I think, like, the composition that we are
getting is something okay. And later, when we finished
creating these houses, I will just bring some of them here to create another
row of houses, just like a street that
runs through the river. Okay? And it's important
to keep the scale just in the early stages. Because if you go and
create something that is not in actual great scales, you're going to have problems. Okay? I'm actually liking
the composition here, and there's a lot of
possibilities that we can go for. For example, trying to placing
buildings here and there, and we might go modular in terms of creation because
modularity allows you to create a lot of kits
and then use those kits in formation that you want and create something that is new that you haven't
thought before. Okay. Now I'm just
comparing the scale of the buildings to see if I
like that composition or not. Okay, let me bring that
just a bit closer. For example, make this
one a dock or something. And the house is
going to be in here. And then later that we
created the houses, we can try to redistribute
them just like so. Okay? Now, you see, by just trying to
place in some of these box, simple box, ideas, we're able to create a composition without actually
creating anything, okay? And this is the power of white boxing and blockout stage because without even
creating anything, you're able to check the scale. You're able to see if you like what you're
creating or not. Just suppose that you
go and in for example, you go create AA art and then return back to see
that you do not like that. So here we're trying to see what we create and what we like
and what we do not like. Just the blockout stage is very important for the composition
and for later usages. Okay, now I'm just selecting these cubes and select everything without the
landscape and at start. So I'm going to create
a boulder and I'm going to call lockout. Then I'm going to create
a new folder and call it Let's name this one lockout and then name this one mesh. Everything mesh related we create is going to
be placed here, and then we have
that lockout folder. So let me take everything and place them in that
blackout folder. So just with one click, we're able to activate or deactivate them
if you wanted to. Okay. And now let's
create a folder, I'm going to create another
folder just to place these extra data that we do
not really need to change. Everything extra will be
placed in that folder. Okay? Folder creation
is done and we have a solid understanding
of what we are going to achieve by the end
of the project. Okay? And here's going to be boats, some raft and the
water shader, as well. So if I bring that here, you can see that we can create that house and try to place those pillars created by
wood to support that. Okay? I'm just trying to see how storytelling could
help us achieve that. Okay. Now that we know that the landscape is okay and composition is
going to be right, we are going for
creation process. Of course, we can go for medium poly and see if
they are going to work. And for example, we
go and try to change these measures to something
that look more like a house, but I think it's going
to be a waste of time because they're not going to be seen in the final environment. So now we are going for
actual creation process. Of course, if you want, you can go try to bring some
references, for example, like here and start to create shapes like these
houses and so on, something that represents that. But I think it's not
going to be necessary. So for example, just create a simple mesh
that looks like this. But I think if we just skip this part and go for
straight mesh creation, it's going to be
saving a lot of time because this tutorial is
going to be a complex one, and I do not want to add to the extra time by bringing
those medium poly modeling. Okay? I'm going to
pause right now and see you in the
next lesson where we go start creating process. Okay? See you in
the next chapter.
6. Intro To Midpoly Modeling: H. Okay. We planned that. We wanted to go for
blockout creation using the low poly pieces and
setting up a modular workflow. But I noticed that because we have references that need to be manipulated in terms
of converting them into something that matches
the criteria that we want, for example, you see, we have these references, let me bring up the
building ones, okay? We have these ones that
are relatively new. The construction parts,
everything is new. We wanted to make
that a bit more like an old piece,
something like this. Oh, I wanted to skip the
mid poly creation process, but I noticed that it's
relatively important for this process
because we need to convert these into our ideas. If I wanted to just create
something like this, I would have skipped this part. Or if we had references that were just like the ones
that we want, for example, let me bring that up again, if we had references like this, I would have skipped
this part as well. But since we need
to translate all of these ideas into
something old, we need to keep
that in mind and go for medium poly
creation, excuse me, before going for low poly, because that gives us a
lot of more ideas and flexibility into creating
the environment. Okay? Now, let me just
shrink the scale. And I'm going to take a look at these references and create something that resembles
these buildings. You know, this
building has a scale of 10 meters by 8
meters by 8 meters. We're going to create
something like that in blender and import it. Of course, we just take
a look at the scale. And then decide if we want to change the scale of
this one or not. Okay? The first thing
that I'm going to create is the base for these buildings. For example, you see all of these buildings are
on the same level. I'm going to create
something like a deck that holds these
buildings together. And that is just
like a platform. For example, one in
here, one in here, to make sure that the buildings stay on top of that structure. That is going to be the structure that
we're going to make. We could go for that
or we could start by creating some buildings
and then create a deck. So I just decided to go
for the buildings first. So I'm going to open
a new blender scene. And now we have a scale setup. This is the human scale that we have been using
in Unreal Engine. I really suggest
you go and create or download a free one to use. So I'm starting by creating
some of the buildings. Let me references that we have. So just take a look at this. We have something like a house And if I just bring something to
start drawing my ideas, we see that we have
such a building. It has a rectangular
shape. Okay? And then we have this
rooftop that we see in here. And then you see
in here, we have that deck that we
wanted to create. It's a structure that holds the building together,
something like this. Of course, we might
create some kits, for example, a wood
kit to support that. And then we have these pillars that we are going
to create later on. But for now, we are only caring about that building
in here, this one. So I'm going to just
shrink the scale and start imagining how that would
be in 1,000 years ago. It would have been
made only with wood. And because my style of
creating environments is to make sure that everything
is just grounded and old, we need to make
sure that there's a lot of imperfection there. So now, let me start
the creation process. And I like to call this process the medium poly creation because we're not going to create low
polypieces right now. First, we create ideas, and then later we will create something and then decide to see if we want to make
that modular or not. Okay. Now let me bring that here and I'm going to
bring a simple cube. Now from now on, everything is just going to
be simple polygon modeling. Nothing too fancy. So the scale and dimensions of this cube
are two by two by two. So now, let me see if I
could go for 4 meters. And when you're
modeling these pieces, you need to take the dimensions for modular pieces
in mind as well. For example, now that we have or meter in here,
we know that later, we might need to create two by two modules
to cover that piece. For example, later, we will
create a modular piece, something like this one,
a two by two piece, and carve a door in it. For example, let
me separate that. Okay? Later, we will create a modular piece out of this one. For example, something like this and remove that to
create a door with it. Okay? You need to make
sure that you keep this scale in mind
for later modularity. So let me go back and weld
this together and remove that. Okay? Now, 4 meters maybe let's
convert that to 5 meters. Okay? And then scale in here because we know that it's going to
be something rectangular, we need to make sure that it's
more than 5 meters. Okay? Let's go for 8
meters, for example, no, not that much. Okay. Now let's go for the Z, and this one is going
to be the tallest one. So I'm going for 8
meters right now. Let's go for seven. And this one You know,
let's do something. Let's go for 6 meters in here, and then I'm going to duplicate that and bring it up top to be something like
this piece in here. Attic, I believe it's called. So I'm going to bring that
down to a 1 meter scale and then scale that scale these
to create that piece. Okay? So let me take that. Again, I'm going to bring this
down by 1 meter. So because we have a
snap mode activated, I'm going to set it to
increments and zoom back a bit so that it brings
it exactly 1 meter. And then I'm going to take that. And then take these two
and bring them closer to create something that
is more triangular. Okay, now we're just testing the ideas to see if
they work or not. Okay? And then I'm going to
carve a door in here. So let's decide to see how tall we want the
first floor to be. So let's me 2 meters
and 3 meters is okay. So I'm going to
bring one in here. And I'm going to set
it to be exactly on this line that represents
the perimeters line, okay? And then I just want to
place a door in here that later could be created when we go for the
full production. And just note that
these buildings are not going to be used in the final production because they're just prototype of what we're going to
do in the future. Okay. Now let me take that phase. And I believe that if
I press shift an H, it's going to hide
everything on that mesh except for that phase. Okay? Now, let me bring a door. So you see, we have the door in scale that the player can go in and explore in the building. So if you're going to
create that for a gameplay, this is going to be a good one. So let's see decide on how tall the door
frame is going to be. And I'm just going
to test it with the scale player and test
it to see if I like that. Then, yes. Okay. And then I'm going to separate this and do a bit of
polymodlling in here. A very simple polymodlling, just to make sure that we create illusion of a door
being placed in here. Let me take that phase. First, I'm going to create the vertical wood
planks and then go back and take this one and
create some horizontal ones. So it's not creating, so that is because of that
operation that we did. So now I'm going to
take the knife tool, and we are going to lock that and just try to carve
some pieces in here. Okay. And then I'm going to take these except for this one and this one and
press I for inset, I for once more so that we could just bring these in to create illusion
of a window piece. Okay? Now let's
bring these back. I'm going to take all of
these inset once more. And these are just very
simple modeling procedures that are not going to be
in the final process, just to create something that gives us a direction
for later usage. Okay? Now let's create something like a shadow catcher
for this building. So again, that's
going to be simple. I'm going to bring in a simple cube and
then bring it here. And I'm going to create
something like that. And let me bring
something to see. I'm going to create
something like this, but in older style. Something to prevent the
shadow from falling in here. You know, just imagine
the story telling and see what you come up
with in terms of creation. So I need to rescale
that locally. Now it's set to global. Let's go to local Okay. And now I'm going to create
a roof or this one as well. So it's again going to be simple polygon modeling,
very blocky shapes. I'm going to create an old roof. Okay, apply anything. And now I'm going to
apply some edges in here because we want to deform
that to create an old roof. Let's just scale that. Okay. And then I'm going
to go to modifiers, and that's going to be, I believe, it should
be in the deform tab. So it's going to be
simple deform here. Okay. First, let's rotate that
and apply the rotation. That's a bit tricky
sometimes you need to figure out to see
which one works. Now, apply the
rotation because I want to use the bend Okay. But it's not
going to be that much. Just a very simple bend. Okay. Now I'm going to
apply the modifier. And then for the roof itself, I'm going to use
shingles to create that. Now I'm going to place
a shingle and array that from here to here. So we know that it's
going to be 6 meters. So let's just bring in a cylinder Okay. And the scale, let's bring that eight vertices join and join and take this
part and remove that. Okay? Now I'm going to bring that to
here, rotate that. I think 45 degrees should
be enough for this one. And because we are set to local, it's just going for
a local direction. Okay. Now let's just apply everything in terms of
rotation and the scale. But the location is
not needed for now. It looks like we need to rescale that back to something like this because we're going to use a modifier that is
using the scale data. Let's apply the scale to make sure that everything
is set to one to one to one. I'm going to bring
the array modifier. Okay, it's going to be in Y. Just take that green one in Y. Let's set it to zero. Okay, it's going to
be in negative Y. And then apply this scale. Okay. This is the type of roof
that we're going to create. Oh. Let me just take that. And I'm going to just
duplicate it here. And I'm not really concerning
about how repetitive that looks because we're going to create a
full geometry later. This is just for blackout and to see how the environment is
going to look like. This is good. Now I'm going to duplicate and I'm going to
use it as a protector here. So let's just
rescale I'm going to rescale that negative
something like this. Okay. Now this is bent too much, so I'm going to go
and take some of these vertices and go for proportional editing and
just bring that to here. So this is not the
one that I want. You are fine to go with
the style that you want, but this is not something
that I'm looking for. So I'm going to just
create one in here. Okay. Now I'm going to scale
that in that direction. Again, scale And let me
mirror that as well. So I'm going to mirror
that to this side. So let's go bring in
the mirror modifier. Okay? We need to set the pivot to the
center of the world. So we know that this building has the pivot
in the center of the world. So I'm going to use that as
the mirror object, okay? Just take that and you
get what we wanted. Now let's duplicate,
and this time, it's going to be a long while. Okay, now it's
automatically done. So now I'm going to
take all of these. And we have modified
tools in here. You can go to preferences, and in here, just search
for modified tools. It allows some of the
functionalities, for example, apply or Tuggle stack to view them on
Viewport or something. So I'm going to set Apply. You see, it applied
on all of them. So Control J to join. And then I'm going to go for
a mirror modifier again. So this time again, I'm
going to use that as the object mirror object, and here we go. And in order to create a
bit of more storytelling, I'm going to create
some windows in here so that later we could create
modular pieces for them. So now, I'll g to
bring everything back. And then it looks like we
need to go for the knife, too, because it's not
a quad anymore, so Let me take that and remove. So a couple of them in here
and a couple of them in here. And then just join. And I'm going to take
this and bring that down. And just apply a bubble because I want that to catch
the light a bit better. Something like this. And because we have a window, let's bring that shadow catcher rotate and bring that here. But it's not going to be
like the previous one. It's going to be a bit smaller. You see, this is just for
storytelling purposes. You just think, you see what you need
for the environment, and then you go and apply
what you have created. Okay? Of course, everything
about these buildings later on is going
to be created using planks because I'm going to create an
environment that is so old that maybe the only thing possible to create was wood. Okay, let's create a pillar for the building to give it a bit of more
depth and dimension. Okay. Again, I'm going to use a mirror modifier this one as the mirror object again. Now it's going to be in
Y and apply all of them. Okay, now just take
these and bring them to here for a better silhouette. Okay, now let's bring everything back and try to hide this. Knife tool and just go
for an inset and create a very simple inset in here. So there are some
polygons missing there. Just go for a small
bubble. Okay. Now you see the building
is taking more shape, and later we will
create a lot of planks to place in these areas. Okay? Right now, I
don't think we need more to create for
this building. So I'm going to take
everything about it and join that in one mesh. Okay, looks like there's
a modifier in here, okay? Make sure that there's
no modifier or anything. Take that and let the pivot be in the center
of the world. Okay? Perfect, applied the scale, and everything go
check the normals. Okay. Everything
looks all right. I'm going to take this one
and call it static mesh, this building 01. Okay? Now I'm going to export this and using it in real engine to see where we
want to place it. And again, I'm telling
that this is not going to be used for
a final production. This is only for
testing purposes. Okay, let me create
a new collection. I'm going to call
it done and I place the buildings that I've
created and finished here. Okay. Now I'm going to use
a plugin called BTX, which is called
Batch FBX Export. You just export folder for it, and it's going to just
export it with one click. And a good thing is
that if later on, you will return back and change something about
it, the ring that. For example, you just go and change something
about that building. It's going to just with one click represent that change in real engine or in
the target software. So I'm going to decide on a folder wherever you
want that folder to be. And the important thing is that the name of the mesh and the
pivot should never change. So for example, when you change the pivot to
something like here, if later on you change the
pivot to something else, it's going to be offsetted
in the target software. So now for now, I'm going to just
apply all of them. Later on, we might
go and disable one material ID because
later on, for example, we might need to apply a couple
of materials on one mesh, it makes sense to uncheck that to apply all of
the materials on one mesh. Here we have no material, so I'm going to just create a new folder
and call it Mid poly. And now the center transform
is a great option, because, for example, let's say
that you have a building that is far from the
center of the world. If you apply that first, it's going to bring that to here to the center of the world, export it, and then bring that back to the
place that it was. Okay, applied transform
is great as well. If you have, for example, ugly rotation values in here, it's going to first
apply them and then export them to
the target software. It's going to be
Patx and then I've included the link to this
in the project files. If you just go to project files, you will get a link of
blender add ons there. You will be able to download these plugins for
free and use them. Okay? Now I'm going to
export and in Unreal Engine, I'm going to go to
my content folder. Let me find that meshes. And let's go to utility folder
and try to import that. Okay, here's my mesh.
I'm going to import. And I do not care if any
error or something happens here because this mesh is not going to be used
in my final project. So now let's bring that here. Okay. And let's just try to place that
with this building. So let's change that to local and I'm going
to place it here. So let's go to the cinematic Buport and I'm going to place
that here, okay? And then let me take that,
take that one and bring it here to be something like
a platform or later. For example, later that
we create a platform. This is going to
be a scale guide for the platform that
we need to create. Okay? We could create another building
for the neighboring of this one as well later, something like that
or maybe taller. So we will decide on that later. So for now, I'm happy with this. Let's try to place that here. And now you get a better
sense of scale on the buildings and relation of these characters
to the buildings. So let me bring a default
material and apply that here. So now I'm going to pause this lesson and in the next one, we will go and try to
create more buildings. We are going to create
residential buildings and some market buildings. Okay? And these dimensions
might change later. For example, we might need to change the scale of
building to something else. Okay, now I'm happy with it. And let's do something
about that Batex polygon. Batex add on, excuse me. Now, let's say that we
take this and change it. We set export and we have
not changed anything. The naming, the direction
and the pivot and all of them are the same.
So let's go here. I'm going to find
that in the content. Go right click and reimport and you're going
to get that change applied. Just give it just a second to calculate and you see the
change is reflected there. Now let me bring that back. Export once more, and then right click Rimport
and you see it's done. Okay, now I'm going to
pause this lesson and in the next, see you.
7. Finishing The Mid Poly Phase: Okay, in previous lesson, we created the first building, and now we have it here. And also in blender. Now for the next one, I'm going for just a
variation of this building. So let me just duplicate it, and I'm going to bring
the original one in here. And then I'm going to
make this one a bit taller, just like that. So let me take that building because it's
composed of many parts. I'm going to just
go in edit mode, pres P, and by loose parts, it's going to just convert
it into its creating pieces. So I'm going to take these
ones except for these. Now let me de select
what we have here. We have the selection here
and I'm going to just bring this one up by 1
meter in Z by one. Now it's going to
be easy just taking this building and bring
it up by 1 meter. Then these as well
are going to be just scaled a Okay, because later we will use the three meter
pieces for this one. We have a three meter
piece in here and a 3 meters in this one as well. One, two, three, this
is the first one, and one, two, three,
the second floor. Okay. Now, let me just change some
things on this building, for example, creating
a full one in here. And let me go for a mirror. The object is going
to be this one, okay? Just some variations
on the building. So then, for example, I could take these and bring
them to front by 1 meter. And these two as
well by 1 meter. And then what I need to do
is selecting a row of these. Let me select what you have. Okay. Now, delete these ones. Again, in here, it's
going to be the same. Let me isolate the
first building so that we can see what we're
doing right now. So three of them should
be enough and now deselect everything else and just duplicate these to here. And then this one as well, Okay. Now this is going to be a fast iteration because
later we could, for example, change a lot
of things about this. For example, changing the
building to here, for example, to create a door here, and now let me take
this, remove it. And then I'm going to
place the door here, for example, for a
quick variation. And then let me take
that and I'm going to just extrude one in here. And I'm not caring
about the geometry or if there's any
errors in the geometry, I just look for a cool
look on the building. Okay? Now I'm going
to take everything, Control J to join them, make sure the pivot
is in the center. Let's see about the
phases, apply everything. Okay? Now, this
one is going to be called test building 02. Okay. Now I'm going to export to the same location that I have
exported the previous one, and we are in real
engine as well. Let's go import
the same building. Import. We're not
going to go for a nante or something,
create the building. Okay? And then I'm going
to place that here. But before that, I
need to bring this down just a bit so that it
doesn't block that building. Of course, it does. So let's bring that
back by just a bit. Okay? Now we have visuals
on that building as well, and this one is going to be
let me bring that material. Okay? Of course, I could just
scale that negative one in X to bring the door in
here to create a bit of more visual and later, this is going to be a
platform that we're going to place this
building on top of. Okay. You see, by reusing what we have
already again and again, we're able to create
more variations easily. And let me bring that
character and place it here. So that we get a sense of a
scale on these buildings. And later, we could take that and just try
to bring it here, duplicate it and use it alongside with this one to
create a new variation. So who knows? Let me go here and try to see Okay. Doesn't look too bad. But of course, we will just take a look and see if we
like that or not. Now it's just about sketching to see if we
like the design or not. So now let's see
what we have here. We have a building
that is eight by ten, and I'm going to use that one
for something like a shop. It's going to have interiors
so just like this one, for example, you
see the building is wider and it has a
bit of interior. Okay? Now, let's try
to focus on that. And we're going to again, start with the fault cube. It's 2 meters by 2 meters. So I'm going for eight by ten. Of course, it's not so eight
in here and ten in here. Now, this one could be four, no. Okay? Doesn't look too bad. Let's already try to create
a bit of interior for that. So insets and just extrude. And these ones are going to be just like window or something. So let me see what
we're creating. And again, I'm going to
bring that shadow catcher. It's going to be a
very simple cube. Scaled and in here. So let's place the
pivot in here. So right now, nothing too fancy. It's only about creating meshes that look like what we're
going to create later. A Okay. Now, let's see what we have. It's 4 meters in here. So know. Let me take that
and bring that up by 3 meters or 4 meters. This is 3 meters,
okay, it's enough. And then let's bring that. I'm going to create
another window here. I said window. No, it's
a roof. Excuse me. It's going to be a
roof. And then mirror. Okay. Now, just create a couple of edges in here so that we could bring this up
to match this one. Okay, Apple then looks like it's a good one. So let's start to create some pillars
for the building for the sake of storytelling so that these are not
just standing on nowhere. Okay, another here. And in order to bring
more depth here, I'm going to use one in
here and just try to mirror based on this shift, and now let's change the
direction to something. Okay, now this is good. And now, again,
I'm going to bring that roof and create
a roof in here. An old type of roof, something like this
that has shingles, different shingles,
something like this that we have
been creating so far. Okay, again, it's going to be easy just bring in a cylinder eight and just join these so that we
have a symmetry line to cut the side and delete. So I'm going to just
duplicate this. So I'm going to just rename it to shingles and
then place it in the default collection
so that later we could just bring that back and save a bit
of creation time. So let's go back and take and just try to rotate to see what
we could create. Okay, now, again, we need
to bring in a ray modifier. It looks like we could
scale that a bit, apply everything and
bring that here. Okay? Now Looks like 20 is enough. And then I apply. And we already know
that we do not need to create this one for
the production. It's just for placeholders, so I'm not actually
creating a lot of good results in here, something for knowing which we are going to create and
what we're going to create. A Okay. Now, let's just take a couple of these and bring them here and use them on that roof. So it looks like
we need to remove some of these Okay. And now I'm taking all of them. And then we need to join select
one as the active object, and then mirror select this
as the mirror object apply. Okay? It's good. Now let's bring in the
same default cube. Okay. And then place it here. And for a quick bend, I'm just going to add a couple of edges in
here and just take these two and then de
select these ones. Okay? Correct. So let's just take a look to
see what we need. It looks like it's a good one. So I'm going to take
what we have here, Control J to join them, make sure the pivot is in
the center exactly Again, this is going to be test
building number three. Let's check for phase
normals or anything, apply everything to make sure
that it's working right. So the scale of this
building is going to be bigger than
what we created. This is going to be
something like a shop. So I'm going to take that again the direction
of the folder, and everything is going
to be there export. And in here, let me just find the right folder
and then import it's there. So I'm going to replace
that with this one. So first, let me duplicate
that platform here. I want this to be a bit
higher than that ground. So let me bring that and see
the rotation on this one. It's 40 degrees. No, it was location. Let me see 20 degrees, 20 and 20, okay? All of them are
rotated 20 degrees. Let's see. Okay. Now I can
take this one and remove it. Okay? The platform should take all of the building
in consideration. Now let's go for the camera
to see what is going on. And, of course, later, we will create the platform that
connects that to the sea. But I see like if we rotate
that to a certain degree, we will have a better
visual on that. Okay. I was just
taking a look at references and I saw this one
and I like the composition. You see, there's a
triangular roof in here and there's a supporting building
like something like a barn in front of it or just besides that,
just like this one. I'm going to create a
couple of variations. I have this one and
this one I'm going to duplicate and let
me bring them here. And what I'm going to do right now is to create a couple of variations with these because later that we create
the modular kits, it's going to be a lot faster. For example, just
add something in here because these two
are identically the same. We add a new extension to it, and that would be a lot
easier to manage and create. Okay? Now I'm going to create something like this
for this building. Let me find that first. Now I can just make one front variation and
one side variation. Oh, it's going to be easy. I'm just going to
take this one and let me looks like we need to bring in a vertice from
here to isolate this part of the building better
visualize I can take this, bring it up, and then take
these phases and extrude them. Again, it's going to be
incrementally correct. So let me again
activate increments and maybe a couple of
meters or 1 meter should be enough
for that building. So it looks like it's okay, but we need to just bring this to a more manageable state. And then to create
a roof like this, we need to just go for
something like this. Okay? Now, you see, we have a better and a new variation that could easily be
created using modular kits. Okay? Now, let me just grab
the roof meshes in here. Then I'm going to take what we have because I'm going to just create the
same thing here. So let me duplicate that. We will fix what we do not need. So it looks like we
do not need this one. I'm going to take
that and delete. And I'm just going
to make sure that this one matches our dimensions. But in here, you see, because
the degrees are different, you see this is going in
another direction here, and this is going in
another direction. And these two are going in the same direction.
I do not want that. Okay? Now, I'm going to
take this one as well. These two pillars,
we do not need them and remove, of course, for now and then grab these. And because I want
the pivot to be in here to be able to
rotate from here, let me separate by selection, and then I'm going to take these row of faces and
create the pivot in here. And for the pivot creation, I'm using the interactive tools. It has a function, which is called quick origin, and I have set a
shortcut for that. Every time I set that, for example, if I
select an edge, it's going to bring that to
the center of that edge. Look what happens. You see the pivot has gone from that center to the
center of this edge. Or if I select this
face and press that, it's going to bring the pivot
exactly to that center. So I have set a shortcut
for that, and of course, the link to download the plugin is in the
project folders, you can go and try
to download it. It's free and you do not
need to pay anything for it. Okay, let's go for Global. So and then it's all
about rescaling that. So let's just take
a look and you see a quick fast iteration, and I'm going to just take and join them so you see
the pivot is gone. So I'm going to take these and bring the pivot
here in the center. So let's bring everything back. But and I'm going
to take this one and export it as the
building number four. Again, with the same bat on
the same folder and export. And before that, let's check
for base orientation normals and things like that to see how they look and
it looks right. And then I'm going to import that just like the
previous ones. And I'm not caring
about any issues or things like that
because this is going to be temporarily mesh, and it's not going to be
in the final production. Okay. Let me just bring that. And you see just
buildings are the same, but they are not identical. This is a good thing
about the modularity. So let me apply a
very basic material, basic shape material,
I'm going to copy and then paste it here. And we have option to place it after this building
or place it here. So for testing, I'm going
to place that here. And it's a good addition to
the scene that we are making. And let's create a quick
platform for that as well. Okay, it's very good. And now let's go take
a look at the camera. And you see in here we have
a quick building created, and I could just bring it to here so that we have more room for the buildings that we're going
to create later. Okay. And now let's
create another one. But that part, that barn
that we created is going to be created in the front of the building instead of
side of the building. So I'm going to take the Okay. Shift D plus P by selection. I just need to grab that one. This is. And because we do
not need to use this part, I'm going to take that and
delete plus these ones. And then here we could
just create a phase. And then we have this
building that we could place, for example, right here. So it looks like we could create a center point in here to be the guiding line and then
try to match this with here. So because this is an
edge in the center, we need to go for edge and take this one and bring that
exactly to that center. So we need to set closest, or let's set it to center. Okay? Center is going to work better because it's going
to center that obviously. Okay? Now, I'm just testing
to see what happens. Let's deactivate a snap mode. And it looks like a good one. So I'm taking that
Control J to join them. Now this is going to be
building number five. And this is how fast you're able to iterate
with these buildings, although they are
basically not the same. They're actually the same. Because you see they
just tell the story that they belong
to the same area, they belong to the
same composition, but they are not
actually that the same. They are they have
their own identity. And later we will
add variations as well to make them
look more unique. And because we're going
to use modularity, we create kits and then
distribute them across all of these buildings and create
variations as well. So now let's export that. And again, I'm going
to import and test. So let me duplicate and bring it here and I'm going to
replace it with this one. No, I'm just taking a look. It looks like we need to
bring the platforms here to allow a pathway that
the player can travel too. And I'm just pausing
to see what happens. So let's click here and I'm going to pin that so that no matter what we select, we are seeing that
composition camera. Okay? Now, let me
duplicate that building. And then I could replace
that with something else. Okay, you are seeing that we
have added something there. And let's go see
what we have here. And because we are the
composition camera is here and we're not able
to see what far there, we could just duplicate the same buildings and
use them there. It's not going to
be a huge problem because we need to
fill the composition. And if we were to
create a lot of buildings just like so unique, it would have really taken a lot of time to
create those buildings. So we need to save time as well, because the time of the
tutorial is limited, but you have the freedom
to go and try to create the variations
that you want. Okay? Let me just rotate one in here. And I'm going for the
composition camera. And again, the same material. And then I could
just duplicate this, bring it here
instead of that one, to say that there's something there's actually more depth to
the building there. It's not going to be seen, but it's a good idea to
place that, for example, to tell that there's
some buildings there. You know, just storytelling. There are a lot of possibilities
that you can think of. And I'm purposefully not placing anything here
because I want to be able to see that piece of
mountain there to tell that this is
an island and this is an island village or
something like that. Of course, the sea material
is going to be added later. But here's why. So
let's do something. Just with the buildings
that we have, I'm going for quick past
duplicating of the buildings here and trying
the composition to see if we like that
composition or not. So let's select, and I'm
going to bring that up a bit. So let's bring here and maybe use one of these for a
quick fast variation. Although it might
not be that visible, but it's going to add
a bit of depth to the composition. Let
me just do something. I'm going to take these
and rotate them a bit. And then take a look.
Now this is better. I'm seeing more of
these houses and just creating a sense
of chaoticness in here. And to really break a lot of these flat lines of composition and breaking
something here. And let's just take this. And for testing, I'm
going to bring Okay? Looks like there's
something there. Okay. Now I'm going
to remove these ones. And for now, I'm happy
with the composition. So now the mid poly
creation process is done. Of course, we could go and
try to create these pillars, these ones right now, but it's not going to
be that important. Of course, we could
create blackout for a boat or for the raft that
we're going to create, but it's not going to be
that necessary because we need to have a sense of
scale and composition. So all of them later
could be created. So I'm going to pause right
now and in the next one, we are going for
creating a wood kit because wood is a very
important part of this one. We need to sculpt wood. We need to create a robust
kit and distribute that kit and create modular kits with
it. See you in the next one.
8. Intro To Kit Based Workflow: Okay. In previous lesson, we created the mid poly, and of course, there's more time for you if you want to
go for more variations. But since we are
limited in time, we need to go for
a limited amount just to keep the
tutorial time managed. But of course, you have
the time you can go for the amount that you want. So now we need to
create a lot of planks, beams, and a bit
of trunk meshes. So here's the reference
board that we have, and we have taken look
at that a lot of times. Now you see in
here, for example, let's say that we have
this building and this building has a
certain dimensions. So we need to convert
that to something old to ages that everything
was made with wood. So we have some references
in here to help us do that. So the main reference
that I have in mind for this type of look
is something like this. Of course, not so fresh, not so manufactured looking, but we're going to create
a lot of oldness to it. But the main idea is going
to be something like this. We need to create a
lot of planks and then distribute those planks
into the environment. For example, this is a
better example in terms of being old and
grounded and grimy. So we need to create planks, which are these ones. We need to create beams and
we need to create some barks, round ones like these. These are three types of measures that we
are going to create. For example, for creating plank, we might create four
or five variations. Of course, when sculpting
in zebush we will sculpt each side uniquely. Because if you take a plank, which is having different sides, for example, top side, bottom left and right, you will get as many
variations as you want. For example, from one plank, you get four variations. We need to have that
in mind by creating four planks and that
plank has maybe six sides top bottom
left and right. No, it should be four. So four times four means 16. And by sculpting four planks, we could get just 16
variations so easily. So for beams as well, it's
going to be the same thing. We need to create wood beams. And then we are going for bark. So the process is
going to be first creating the base mesh
in blender and then sculpting that in zebras using a lot of height
map and Alpha maps which help us get a better variation
more easily and faster. And again, the
quality is going to be a lot better than
manually trying to sculpting woods just
everything by hand. Then after creating the
high poly and Zbrush, we will decimate them and create the low poly
and the UV is going to be in lender and then texture
them in substance painter. For texturing, we are going for substance
three D painter. So here's going to
be our workflow. First, we create the
base mesh in blender, the main dimensions, and so on. And then we create a
high poly sculpt in Z brush and then convert that to relatively low poly mesh, but not that low poly because nanite and unreal engine could handle the
polygons a lot better. Then we will do
wrap on meshes and then match the high poly and low poly for baking
inside painter, and then texturing is going to be done in painter as well. We might do variation maps or those kinds of things
that I haven't decided yet. So far, we might create variations inside
painter by utilizing second UV or we might go for variations inside on real engine by using material Editor. So we will decide later. So now, here we are in blender, and the base scale for the wood planks that I have in mind is a height of 2 meters. So let me bring in
a default cube. So you see this default
cube is two meter by two meter by two
meter in every scale. So let me do the
preparations first. I'm going to set the Z to be
2 meters and then X and Y. Let's go for 10 centimeters. Okay? This is more like a beam that we might
need to create. So let's go and set
this one to two now 25 centimeters and 0.8, 0.08. So now, scales are in meters, so we need to have that in mind. So this plank is already 8 centimeters by 25
centimeters by 2 meters. So when we created that, we will create kits with it. For example, let me
go for a short demo. We will create kits. And then let's say that
we take this one and try to create the buildings with it. And then we have
different sides. For example, we go for
that side and then take bring them here, rotate. To get another variation and try to create the
building with it. So why are we using these modular meshes instead
of going for tiling texture? Because going for tiling
texture is a good one, but it doesn't go for the
quality bar that we needed. We need to have a bit
of silhouette read. For example, you see in
here that silhouette has a has an important role in
the creation of the mesh. We are seeing that
these shingles are actually contributing
to the silhouette. But if we go for
a tiling texture, it's going to be so flat. Again, nanite is going
to help us distribute the polygons and go for higher quality
polygons a lot better, and the geometry should
not be a concern. Of course, we will
optimize the meshes, but optimize them in a sense that we keep the
silhouette perfect. So now I'm going to save a
new file because I'm going to start creating the base meshes relative to
scale of these buildings. We will first create different
planks, and then later, we will use blenders
geometry nodes for distributing those planks on surfaces and create
modular kits. Do not worry if you are not familiar with the
geometry nodes, we will just go step by step and create simple graphs so that
everybody could follow. You do not need to
be a professional in geometry nodes to create
such results. Okay? Now, there's one more
thing for deciding the scale of the wood planks that we're going to create,
it's really up to you. We could create, for example, two meter planks and
array them or tile them, or you could create,
for example, a four meter plank because if I select this one and let me go. If I select this edge, you see the height
of that is 4 meters. So you could go create 14 meter apiece, for
example, like so, or you could go create two meter pieces and then try to rate them
or duplicate them. So it's really dependent on you on how you want to create. But for now, I have
three meter pieces and two meter pieces in mind
because if I create one, two meter piece,
I could duplicate it over Optop and
create new variations. Or I could simply scale that and use it as
a four meter piece. So let's start creating and I'm going to just take all of these and bring them back. And for the first one, I'm
going to create planks. Okay. Let's start by creating
the default cube. Okay? Now it's 2 meters. Let's bring the pivot up top. Now I'm going to make this
one or two meter piece, and let's go for 25. No, this is not a good plank. It's more like a beam. So let's go for 0.1. Okay? Now this is a good default
plank that we could use. But of course, we
could now let's go for 8 centimeters or 5 centimeters should
be okay for that lnk. Okay. Make sure the pivot is in the center on the ground line. Now, I just duplicate it and try to alter the variations
very easily. So let's go for 0.3 now let's
go for another variation. Later, when we go in Zi brush, we do not start to sculpt
all of them uniquely. For example, when I started to sculpt something on this
one and I liked it, I just duplicate it and
bring that over and try to rescale the proportions of this one in order to save
a bit of sculpting time. You know, reusing stuff is a great thing in
terms of creation. Okay? Now, let's go
for 0.1 on this. And 0.80 0.08 on this. I want to have different
variations of planks. Looks like four
plank is a good one. Now, this is a two meter kit, I'm going to duplicate them and scale them to be 3 meters. But I'm going to scale them proportionally so that
all of these scales, X Y and Z get scaled
at the same time. So I scale and roughly bring them to the boundaries
of 3 meters. Okay, let's go for three. Now we have three mid kids. For bigger buildings
like this one, these ones for smaller
buildings. Okay? As I said, later when
sculpting them in Z brush, we will take, for example, sculpt this to 50%
of completion, and then duplicate it, bring it over to
here, rescale it, and start sculpting
from there so that we reuse as much as possible
to save a bit of time. Okay, for creating beams, let me see I'm going to
take this and let's see, I'm going to select this edge, and the height of
this one is 7 meters. So I'm going to create
a default cube. Now, let's reuse this one. So this is going to be 7 meters, and then 0.25 0.25 on each
one or 0.3 0.3 on this one. Okay? Now one beam, and then let's duplicate
it for variations. And of course, we could create smaller beams for
these ones as well. Or we could just when
creating the geometry, when we use that seven
meter piece in here, we just cut that in half. So nobody's going to see
what is going on in here. So in order to create that, we will save a bit of sculpting. But in order to have
some variations, let's go for this one and go for a three meter
piece, like so. Then I'm going to
call these planks So let's go to edit and rename. And I'm going to set
the name to planks. Of course, now this
is the suffix. So let's go set it
to new and planks. So our planks are created. And now I'm going to take
this one and call it beams. This is good for later
reordering in Z brush. Okay? The next one that we
wanted to talk about is these cylindrical
ones that are so useful. So these ones that
we're going to use to tell the
curry that they have been cut off from a tree or something and have been used
in creating these kits. Okay? This one as well, is going to be created
from different variations. So I'm going for a cylinder
and for the sides, it doesn't matter because later we're going to
subdivide that in Zbrush. Anyway, so let's do something. I'm going to delete that. And let me bring the cylinder
and scale that to 128, okay, so that it has
enough subdivisions there. Okay? Now, two meter, let's go for 0.25 0.25. Okay, regular one. And now let's try to scale this one to reach the
boundaries of 3 meters. Okay. And now another
variation of this one. So now I'm going to
bring the all to here exactly to the
center of the world. Okay. Now I need to
rename these to bark. And we need to export this as OBJ because this one
has gun in here. So if we select OBJ, we are able to try
angulate that upon export because if you import
endguns to Z brush, it should have a bit of
problems loading them. Okay, I'm going
to export as OBJ. I have plugged them to
Quick favorites in here. So whatever you want to use in Quick favorite
menu, just go and, for example, export
OBJ. It's here. Right click. It should be
add to Quick favorite. For example, let me select this. It's add to Quick favorite so that every time you press Q, you're going to get them here. These two are for imports
and this one for export. Okay? Make sure you select only this should export only the meshes that
you have selected. And there's a triangulation
mesh, triangulate mesh. This is going to convert
them to triangles so that we could easily
import them to Zbrush. Okay? Export Oh, here
we are in Z brush. Your UI might be
different than mine because I have set up some of the regular brushes
and options that I use regularly in the viewport so that I can access
them very easily. Now, I'm going to import and bring the OBJ file
that we created previously. And bring them into
Viewport, go to edit. Now you're able to
start sculpting here, and this icon tells us that we are looking at
the front view. Here are the meshes. And you see, they are
imported as one mesh. So the one option that I use regularly is called
split two parts, okay? But this one exists
in the geometry, and it should be in a split menu and then
split two parts. This is going to split them to different measures
so that we could only focus on one of
them and try to sculpt. So if I press split to part, you see that it's going
to highlight here, and it means that the option
that is available here, I just drag that to here
so that I could use it regularly instead of going
to men and try to find them. So in order to just
change your UI, you need to go to
preference, Covic, and you should start
enable customization. Now, every time you
hover over a button, for example, let me go
for split two parts. You go Control, Alt, hover over a button. And if you want to remove it, just drag it to Viewport. And if you want to
bring that to Viewport, you bring that with the
same control Alt drag, bring it here, and you should
be able to use it like so. And for the brushes as well, they are regular brushes
that I bring in. For example, if they're
present in here, you could just take one and bring it here and
start to use it. Except for trim smooth border, which exists in the brush tab, and it's in trim and
trim smooth border. You could find it here
or you could go into Zbrush directory and
try to copy that trim smooth border and
ring it to startup brushes because it's not
included in the startup brushes. Now you go to Zbrush directory, and there should be Z brushes, and now in here, trim just like the folders
that you see there in Lightbx. And this is the
trim smooth border. If you want to use it, you
just copy and return back. You go to Z startup and
brushes. Brush presets. Okay, these are the
brushes that I have copied here so that
every time I press B, I'm able to see them here. So I have pasted the trim smooth border there and that's here
and you can see that. Okay? Now, every brush that is present in the default palette, when you press B, for example, let's say that I want to use the crumpled brush
and bring it here. Just select it and
from the brush menu, control all, bring it here, and you have that brush here. If you want to move it, just drag it into viewport
and it should be gone. Some of these ones, for example, back face mask or
in other areas. For example, back face mask exist on the brush
and auto masking, and then the back face mask
because when a mesh is, for example, like this one, so thin, if you try to sculpt, it's going to affect
the backside. We do not want that. So you activate backface mask so that it only starts to sculpt
on the side that you are seeing and completely
ignoring the back faces. We are trying to
explore all of these, but now let's go and
if you want to save the same config and use every time you want
to go to preference, Disable customization
and store config. And this one tells you that the config has been saved and
every time you load Zbrush, you're going to see
the same config. And if you want to save that to an external file so that
every time you lose it, you just want to load it, go to save I save it on a
hard disk or something, and every time you lost, you're able to load
that with one click. Okay? Now, let's go for
the same split two parts. And for example, let's go to this wood beam and the process that we're
going is so straight. We just take these meshes
and try to sculpt them. And one regular method
that I really like to use is using the
sculpting Alpha. And I have prepared
some Alpha brushes. I'm not the author of
the original image, but I extracted Alpha from
them for starting to sculpt. For example, let's try
to dynamite this, okay? The resolution
needs to be higher. Okay? Now you see
we have a bit of better subdivision on mission. It's quite a lot
subdivisions there. You want to go to drag,
rectangle, and Alpha, you want to go import and go to the folder where you have saved your alpha brushes. So now let's see about this one. As I said, I'm not the
original author of the image. I just download them, downloaded them
from free resources and extracted sculpting
alpha from them. Okay? Now, if I try to drag, you see, it starts to create something like a
wood pattern in here. But of course, it needs a lot of manipulations and
things like that. Let's try to use
that on this one. Okay, let's go for dynamesh. And if I try to sculpt
with that, you see, it tries to create a very rough wood
pattern that, of course, needs a lot of manual
work to look good. But you see, it
prevents a lot of the extra time that we need to put in creating a
lot of details. But you see when we try
to sculpt on this side, it's going to get
sculpted here as well. We do not want it. So the backface mask is
here to prevent that. If I try to sculpt now, if I take a look at here, you see it doesn't sculpt. And then I think it's enough
for this lesson in here. Let me go find this one as well. Now we're left with
the default meshes, and I'm going to
pause right now and see you in the next
lesson where we try to sculpt these and try
to reuse as much as possible from
the resources to be a bit faster on
the production. Okay. See you in the next
one. And do not worry. The brushes that we
use, the Alpha brushes, I'm going to include them
in the project files so that you can use them to
continue with the same lessons.
9. First Pass Of Wood Sculpt: Okay, now, finally, it's time
to go and start sculpting. But before anything, you said, these edges are too sharp. If I just take that and zoom, you see the edges are too sharp and they are not
actually well defined. So for creating a good
amount of wood planks, we need to first go for
a bit of edge variation. And then after that, we will
go for surface variation. Okay? Now, it looks like we need to go for a
better resolution, okay, something like this. Okay, I just set this resolution because
this mesh is a bit small, it's just going to keep the
resolution small as well. If you go on this resolution
on a bigger mesh, you're going to get a
lot of more polygons. And it's really
recommended to start with lower resolution if you
are starting to sculpt. Okay? Now I'm bringing
the trim smooth border, and in order to make
that a bit rougher, I'm going to bring that Alpha, and what I'm going to do
is trying to add a bit of edge variation
on these because these edges need to be
captured in normal map. So that way or this way we are able to add the
resolution that we want. You see, by just going for
a bit of edges sculpt, we are able to go for a better normal read later that we export them to Unreal Engine. Okay? And you don't
want to sculpt all of the edges and you don't
want to leave all of them. You just need to go for
something in between. You want to leave some
places unsculpted and sculpt other places because
if you sculpt everywhere, it's going to be noisy and it's going to be bad
for composition because nobody's going to focus
on where that detail is, and it's going to be too noisy. So for now, we are going for a small
resolution and just trying to sculpt on some of
these edges. Okay. And then because we need to
sculpt all of the sides, we need to take that in
consideration because later, we need to rotate these all around so that we get as much variation as
possible from each plank. Okay. Now you see we have done sculpted some of these here
and some of them lesser, and some of them we
just left them to be. And this is the way that we go. You don't want to over sculpt your measures because that is going to take a lot of time, and it's going to introduce a lot of noise into
your composition. So you want to keep that
in check if you want to have a good composition
and avoid a lot of noise. So for now, we only
go for edges and try to add a bit of edge
variation here and there. Some were stronger,
some were weaker, and some were not at all. Okay, now let's go and
check and you see, we have a good shape
in here. Okay? Now I'm going for this one. Let's bump up the resolution. And so we get more resolution in the same resolution because
this mesh is a bit bigger. And then it just adds the
resolution that we need. Okay? Wood is
something directional, so you want to keep your
scalp directional as well. And start with
lower resolution in the beginning stages to keep
the polygon amount managed. And this white alpha
square alpha will really help to make the
result more rugged and rough. No controls to go back. Okay. Just go for the edges
and try to sculpt. And whenever you dynamesh, it's going to add more polygons
so that the resolution gets bigger and the
quality gets a lot better. Okay? We haven't
sculpted it yet in here. And it really depends on you on how much detail you want to add because the wood is an essential part
of this environment. It's a good idea to spend
a bit more time sculpting these wood kits because that is going to be the bare
bone of the environment. Probably 80% of the environment is going to be made up of wood. So it's going to be a good
idea to sculpt a bit of wood and put a bit more time and
invest more time on them. Okay. Now let me take
this one as well, bump up the resolution. And then try to
sculpt these edges. Later when we bake normal Map, these edges are really going
to define the building. And in blender, also, we could add variations, for example, to cut the wood in half and create
another variation. We're not going to
do that in zebras because that is non
destructive in here. But in blender, we
could take one of these variations and try to add more variation to it without destroying
the original mesh. Okay. And to save a bit of time, I'm going to duplicate these measures and replace them with those bigger planks to save a bit of time because the tutorial time
is a bit limited. So if you want, you can dedicate more time to
sculpt those wood lengths. Okay. Now let's do something. I'm going to take these and I'm going to
take this one first, and I'm going to duplicate. Duplicate is in
the geometry tab, Subtool, excuse
me, and duplicate. Okay, I'm going to
duplicate and bring the move brush out left
click on the geometry, and I'm going to bring
that here and just try to scale to fit to the borders of this geometry
to save a bit of time. And also, we could add
more variations to them. Do not worry. So I'm taking
this one and delete. To save a bit of time
later we will return back and add more
details to these. Do not worry. So let me
take this one as well. I'm going to duplicate. Then again, use this brush out left click to bring
the pivot to here and then bring it to the center and
just try to change the mesh. Okay? This is good. And now I'm going to take
this one and delete. This process will help a
lot in optimizing the time. So now I duplicate this once more and bring that here and try to scale. And delete. And this is just to save more time
for other pieces. Let me just take that
and then re dyna mesh. And you see it adds more
resolution because now the mesh is a bit rescaled. And now I could take these
and try to add a bit of variation to the surface so that they're not
identical totally. And trim smooth border
is a Z sub brush, and it means that whenever
you're trying to sculpt, it's going to subtract
from the shape. But if you hold out, it's
going to add to the shape. If that is something
that you want, you really want to use that, and it's going to be helpful
in sculpting process. Okay, now, this one, just to add a bit of variation
so that they are not identical with those
other wood pieces. Okay. It's good for this one. And now let's take this
and go for another pass. Looks like we have
sculpted that one. We need to go for this instead. Okay, re dynamic to add
more resolution and try to hide everything else so that we can focus on
this one instead. Okay. Okay. Looks like there's a bit of possibility in here for sculpting the wood. Okay? Now it's good
for the first pass. Let's see. I'm happy with
what we have sculpted so far. Okay? Now I'm going
to sculpt on this. Let me bump up the
resolution, okay? And then we need to add a bit of edge variation
in here as well. Then we will duplicate that other so that we save a
bit of sculpting time. Okay? Because in the context, this is a wood that has been used as beam and
is old and rusty. So it provides a bit of space for us to sculpt
even more on this. If the story supports that, or if you want that
to be relatively new, you could just
sculpt less or with less intensity. Okay, now, and let's look from every side. Okay, it's good. But
now let's go for this one and start
to sculpt uniquely. I don't want to duplicate that. So let's hide everything else
and then try to sculpt on this because we have a couple of beams to be used
for a lot of situations. So it actually makes
a bit of sense to add maximum variation
to the surface. And now, these are
all raw sculpt. Later, we add Alpha brushes, it's going to look a lot
better and more natural. And even after the
texturing phase, it's going to be right. Okay, now let's do something. I'm going for these. And I'm not going
to sculpt on this because later we will
add Alpha brushes on these so let's just add a bit of edge variation so that
the edges are not too sharp. And the heavy hand
for these barks, these cylindrical pieces
is done using Alpha. So let's take this one as well. Just to add a bit of
surface variation. Okay, now that's one. Just a bit of edge variation, and the rest of it is going to be done
using Alpha brushes. And for sculpting,
we are going to use the big medium and
small mentality. First, we will add big details, the ones that are
readable from far away. And then after that, we
will go for medium details, the ones that are visible from medium distance to
complete those big shapes. And then after that,
we will go for smaller details like
really tiny wood fibers. Okay. Now let me
just take a look. And the first pass of
sculpting is done except for the sam which needs a
bit of edge variation. And this edge variation
is really important. If the edges are too sharp, it's going to look
not that great. Okay. Now, let's re
dynamish once more. And since dynamish has a blur, if you use the blur, which is the default of two, it's going to blur
your edges a bit. So if you want to prevent that, just set the blur
to zero so that it doesn't blur your result if that is something
that you want. Okay. Now the first pass
sculpting wood is done. And then in the next lesson, we are going to go for bringing alpha brushes to define
the surface of the wood. Okay. See you in the next one.
10. Mid Level Wood Sculpt: Okay. Now we are in the second
pass of wood sculpting. Now it's time to go and bring in alpha brushes to start
adding wood fibers. Okay? Again, I'm
starting with this one, and I'm going to standard brush, drag rectangle, and
I'm going to bring some alpha brushes that I extracted from free images
that I downloaded from Net. I didn't create those images. I just converted
them to height maps. And I'm going to share
them with you so that you can sculpt the
same thing if you want to. Okay, I'm going for import. And let's bring
something like this. And if I try to bring that, it tries to add wood
fibers, but it's too noisy. So the first thing is we need to disable the back face mask
so that when we bring that, it doesn't affect
the other side. And the next thing
is that we need to bring down the intensity. No, not like so. Okay, something like this. And then later we will
return back and try to add more details and try
to sculpt on that piece. So let's do something. I'm going to bump up the
resolution to four K. Okay, now we have more
resolution to work with. And you see now, it's more
well defined like so. Okay, now, It's like adding these details. And that in here as well. We could add the same brush. But you see in here, it causes
some of these to be buggy. So we need to prevent that So let's go back. Dynamesh once more. When I'm trying to drag
one of these again, I dynamesh to bring all of the polygons back
on their place, so let's disable the blur so that it doesn't
blur the result. Okay? So now we have a
wood plank that we could start sculpting on, okay? Let me bring the alpha again. And then you see there's
a lot of noise in here. We don't want that. We want
to laten some of that. Like so using the
trim smooth border to reveal the possibilities for the medium and small shapes. So let's do something. I'm going to just try to go directional on these because we don't want to
bring a lot of noise. We just want that
to be a bit subtler because later we're
going to texture that, that is going to be too
noisy for texturing because texturing itself is
going to add levels of noise. So you want to prevent over noise. Okay. You see? I'm just trying to
flatten some of these And then after that, we will try to bring
more details there. For example, I'm going to
bring the Dam standard brush. Let me bring the
trim smooth border. Shift, click on that so that
every time you press Shift, dam standard brush is
going to be there. So like creating
some wood fibers to connect this wood
in such a manner. So let's just try to sculpt. Then again, I'm bringing
that brush again. And then let's
dynamesh once more, make sure the blur
is deactivated so that we introduce
some wood links here. I just go and try to
flatten some of these. And we could also bring
some details in here. I just brought a damn
standard brush and tried to sculpt on this. And you don't want to
bring specific details. For example, you don't want
something like this all over your mesh because the mesh is going to be instanced a lot, and that makes that repeated. So we don't want the
repetition to happen. So make sure that you go
as generic as possible. Okay, Dyna Mahwce more. And now I feel like it's enough for this
pass on this wood. And let's just take a look. And you see, we have some great details
even from far away, we are able to read them. So let's go for this one. Again, I'm bringing
this standout brush and bump up the resolution. So I'm going to use another alpha brush
for more variations. So let's just take a look. And I see that this one
has a good potential. Okay, re dynamis every time to prevent that
work from happening. Okay, now we have a base that we could try to sculpt on and
reveal some of that shapes. I just don't want to
keep these shapes. I just want these to be
a base for our shape. Just try to flatten them Like, so, and you see how well
we have added that detail. And if you want to be faster, you could just increase the brush scale to bring
bigger strokes on your mesh. Okay, redna mesh once more. So let's do something
I'm going for import, and I'm going to use this one. So open and on a
lower intensity, just try to bring that. See it adds a lot of
good wood fibers. Rina mesh. Okay, now I'm bringing Trim Smooth border plus
the dam standard brush. So it looks like there's a bug. Just try to sculpt and
it should be right. And because wood is directional, you want to be sculpting
directional as well. Something like this is not
accepted in most cases. So let's see and
compare that with the other ones
Okay, that's great. And later we will add
more details as well. Do not worry, for now it's only about adding
medium details. Later, we'll return back
for small details as well, and we'll leave tiny details
for painter for texturing. So again, standard brush, set it to rectangle drag Import. So I'm using this one now, and let's hide everything else. Blur down, bump up
the resolution. Okay, I just dynameshed and now we have a good
resolution to work with. And let's bring the intensity down. This is a good
rough wood texture. Okay, we need to go back and reactivate the
back face mask. I was wrong, so we need
to activate once more. So in here as well. This is just for revealing
the potentials on this wood. So re dynamesh and just
try to flatten the result. Okay, flattening that will
reveal a lot of possibilities. And this is giving us a
direction to go with. We are removing some
of those noise. Okay. And all you need to do is going directionally,
sculpting this. And later we will
convert these to low poly for engine use. So this is repetitive. Let's remove that.
Okay, not too bad. Let's just compare.
Now, not bad. So now I'm going for these. Okay. Now I need to go for a dynamesh. Okay, let's hide
everything else. I'm going to bring a
new brush for this one. So import, and I'm
going to use this one. Now this is rougher. And later it's going to
be good for texturing and adding variations Okay? See how many details
it adds for free. So just try to flatten
some of these. I'm not going to add
extra wood fibers because it already
has some wood fibers. Okay. Down in here. Just try to go directino. And now it's okay. The first pass, excuse me, the second pass is done. Let's compare. It's okay. So now let's go for this one. And I'm going to bump up
the resolution and bring another alpha brush imports. And I'm going to use
this one for here. So see the wood fiber is
totally different than here. Okay, dyna mesh. And now we have a
terrible smooth excuse trim smooth border
for sculpting. You could go negative and additive in sculpting
if you want to. You could add or you could
subtract from the details. And let me bring the damn
standard brush, rescale. No, it was not okay. So here as well? It's a repetitive process, and it might be a bit boring, but since wood is an essential
part of the environment, we need to bear that. So just wait a
moment and then try to sculpt because that is an important part
of the whole tutorial. So let me take this one again and I'm going to use
one of the existing brushes. Okay. Now bump up
the resolution. And then on top of
that, I'm going to use another one to mix
between both of them. So that's too noisy, but we're going to use trim
smooth to smooth that. Okay, directional
and done so there's a heavy noise in here
which we need to flatten. Okay. And you see that I'm adding and subtracting
at the same time. And by mix of couple
of Alpha brushes, we were able to
create a good result. And you see we are
removing some of that, we leave some potential for later sculpting because
that's how we work. Okay, now let's see. It's done in here
for the second pass. So now it's time to
go for these beams and then the round
the cylindrical ones. Okay? Now, in order
to make that easier, I'm going to hide everything else and I
only focus on this one. And maybe if we
sculpted one of these, I duplicate it for
the other instances. Okay? I'm going to bring
another Alpha so I'm selecting this one
and we already need to go dynamesh even more. So now, it's going for
millions of polygons. Now it's time to again activate the backface mask
because I don't want to affect those other sites. So now, it's too strong. So let's bring the intensity do something more
controlled, not so much. Let's go for such a value, okay? I'm liking this
one because it has some really good
bumps here and there, which we could control
the silhouette with. Okay? It's bumpy, and now
you see because of the amount of height
map that we added. You see there's
some bugs in here. So it's really recommended to re dynamesh once more to bring
the polygons back together. Now you see it's a bit blurred, but the geometry is
controlled a lot more. But if you want to
prevent that from blurring, let me control Z. You see now unblur that, and it's going to
be a bit better. Okay? Now, let's do something. I'm going to bring the
trim smooth border. And this time, I'm going
to pick up this one. This is the ultimate square of that is sharper
than the other ones. It's more rough. Okay, let's just change the brush scale. And the more you
go into details, the smaller the brush
scale should be, because that way you're
controlling more and you need to really decrease
the brush scale to really focus on
those tiny details that make up the details. Okay? Again, wood is
something directional, so we need to go directional
on this one as well. So the key is to keep
that directional. And because that
belongs to an old age, we need to be rough when
sculpting these details. And you see, when I'm sculpting, I have the edges
in mind as well. And we have these ones in here. If you want, you can go
and try to sculpt them. But because they are hidden under the structure
when we place them, it's a bit of saving
time when it comes to not sculpting
those parts. Okay? A bit of sculpting in here. You see I'm adding and
subtracting at the same time by shifting out time
and time again. Okay, now let's do something. I'm going to take this. And in order to
save a bit of time, I'm going to duplicate
it for these ones. So I'm going to
duplicate and bring the transform gizmo and since these are
equal in X and Y, I'm going to scale that only in Z because if I scale
that uniformly, you see it's getting
out of control. So we need to scale
that only in Z. Of course, I believe Zbrush vectors might be a bit different than
we had in Blender. Okay? Now I'm going
to take the other one and deleted out
control on that. So let's hide this one. Take this and easily delete. So now, if I bring
that back, you see, we have something like
this, but we need to add more Alpha
maps to control it. So because now the
mesh is a scale, if I go on dynamesh, you see we get more polygons
because the mesh is just another scale format
bigger than the previous one. Now I'm going to bring another Alpha to add some
more details to this. Okay, Imports, and
I'm going to use this one that we have already
used for the previous ones. Hold Shift, click on this so that every
time you hold Shift, it brings up this
one, and then I'm going to select this one
for the standard brush. Every time I hold Shift, I'm bringing the standard
brush with Alpha. So we need to bring the intensity to
something more controlled. And this reusing of geometry
is really recommended. You see, if we go and
try to sculpt each and every one uniquely without reusing what we have
already achieved, it should take longer
to get a good result. Okay? It's a standard way of getting result plus
saving a bit of time. But if you want to,
you could just try to re sculpt everything manually and together
at the same time. But since we are a bit
limited on the time, and we need to get
a better result, and our focus is on
environment, not sculpting. There might be an
instance where you focus on improving your
sculpting abilities. That way, it might be advised to start sculpting
everything manually, sculpting everything uniquely. That way is recommended a bit. But for such an
instance where you have the environment in mind, not sculpting,
it's advised to go and reuse as much as
possible to manage the time. So I'm dynamiing to bring
the polygons back together. And then I'm trying
to sculpt and trying to remove some of that So now that I
have used that Alpha, I'm holding down shift and bringing the dam standard brush. So every time I hold shift, I'm bringing a dam
standard brush to introduce some
extra wood fibers. Okay, the sculpting
process might be a bit tedious and a bit
time consuming, but that is an important
part of the process. You know, it might be
especially a bit boring. But there's a good added value in this instance
where you can add. You know, without sculpting, all of this would be just some square polygons
here and there. But with the sculpting, you can take your
environment to a new level. So it's a time that you
invest on your project. Okay, I'm just focusing
on directional strokes. Later, we might
add the third pass of details or we
might leave that for substance painter
later for texturing phase. Of course, the tiny
details are always good to be added procedurally
inside painter. We have different levels of
details that we could add. There are big details
that we do in blender or there are big shapes. The better word. There are big shapes that we do in
blender and Zi brush, and there are medium details that we could also do
in blender and Zibush. But the small details are
good to be done in Zbrush, especially for these
natural props, like wood. But always tiny details
like scratches, and those texture details are good to be done in
painter because procedurally that shouldn't
take too much time. Okay, you see, I'm adding and subtracting
at the same time. By removing some of that noise, we're able to bring the
focus to the details. And if everything is detailed, nobody's going to
see that detail. You need to have some places where the
detail is not present. And because wood is
something directional, you see, I'm going
all directional. And because we're going to
use this in many instances, I'm not placing a lot of
really specific details. And I'm going generic because if I place something like this and
instance that a lot, the player is going
to notice that I reused one thing
again and again. So in order to keep that
a bit more under control, I'm not placing so
much details in here, so much specific details. Okay. Now let's go back. And compare and I'm
happy with the result. So let's do something. I'm
going to level that with this. It's it's not that crucial, but it's a good method for later if we apply the pivot, all of the pivot should
be in the center. So now we could do one thing. I could duplicate this
and bring this over to here and add details there. So copy that. Let me duplicate. And then I'm going
to bring that over here and then take
this one and delete. Let's bring that back. Now you see, it's
repetitive a bit, so we need to go and find those areas and delete.
Excuse me, edit. So I'm not fighting
those other ones because I need to see
what is going on here. Okay, let's change to that offer that we have
been using so far. And I'm just bringing some
detail. Do not worry later. I'm going to bring
another alpha, different Alpha to here to
hide those repetitive parts. And then after this process, I'm going to end this lesson. And in the next one, we
will go for other passes on the wood and especially
those cylindrical barks. So now I just focus on this one. Okay. Now we have a generic piece of wood that we could
add new details too. Okay? Now I'm going
for another Alpha. Let's reuse the same Alpha 01 that we have been using
for some of the other pieces. So you see now it's
getting some new details. Now, let's not make
that repetitive. I'm adding here and there, and I bring a new Alpha to
accompany these details. Okay. Now we see it has a
different wood texture. And now let's go bring some of the other ones to mix and
create new wood texture. Okay, now we see the
geometry is a bit buggy, so we need to dyname
before sculpting. And then after this, I go again, removing some of
those details and then this lesson because it's
just taking too much time, and we need to focus on other
points in the tutorial. Okay? Again, I'm going
for trim smooth border, a rough pass, of
course, after dynamesh. And then I'm using shift at the same time as well to bring some wood fibers here and there. Okay? See now, I'm going so directionally based on the Alpha strokes
that we have added. And because this is a tutorial, I'm a bit limited on time, you could spend just the amount of time that you need to
get a perfect result. And it's your
choice of workflow. You could just sculpt all
of that by hand in Zbrush, or you could leave
some of the details for painter when texturing. Okay. Now, I could call
this lesson done. Let's zoom out to see
what we have done so far. So there's a bit of repetition in here that we need to address. But I'm going to leave that for another lesson because
this is taking too long. Okay. See you in the next one
where we go for these bark, planks, and a bit of hiding details on these.
Okay, see you there.
11. Finishing Wood Sculpting: Okay. Now, in previous lesson, we sculpted the medium
details on these planks. Now it's time to go for these bark, these
cylindrical ones. But you see already
they are just like a manufactured
piece of geometry. So we need to just change
the silhouette a bit. So again, I'm going
for drag rectangle, and I'm going to bring Alpha. And just one quick disclaimer, I'm not the author of these four alpha maps that I'm including
in this tutorial. They are in no way
created by me. These ones, these were
downloaded free from net, and I just extracted
height maps from them. But these ones are just from free PBR textures
that I found online, and I'm sharing them with you. And I'm using them on
this project as well. So let me take this one. And you see if I
just bring that, it's going to go for a quick variation in the silhouette. But
let's do something. I'm going for a lower resolution because with a
smaller resolution, we're able to just
focus on big shapes. So I'm taking that and
see if I just bring it, it's just trying to just
change the silhouette a bit. So let's go for back
face mask as well. And if I just smooth, you see, it's just trying to change
the silhouette a bit. So I'm going to go for
better the intensity, like so, and I'm adding and
subtracting at the same time. I don't want that to be just
like a hard surface prop. Okay, re dynamic once more. It's going to change
the silhouette a bit and I'm happy with it. Because we have a
lower resolution, the shapes are not
getting changed a lot. I just wanted to
have a bark shape. I want it to be natural. And you can already compare that with other
pieces that we have, including these ones
and see the changes. And then I'm going
for the next ones. Let's just go for a
smaller resolution. Okay? It needs a
bit of smoothing. So you see I'm adding
and subtracting at the same time on the silhouette. And re dynamesh once
more. Take a closer look. Okay. Now, let's see. Let me go for a bit more detail. Because I believe this way, it would look a
lot better. Okay. Now, this one, I'm going
for a smaller resolution. Let's dynamesh. And you see I'm adding
and subtracting again. I just want the silhouette
to be stronger, not something like a
slender out of blender. Okay, now I'm happy with these. Let's re dynamesh once more. And now, again, I'm going
to reuse the same Alpha, but on a better resolution. So if I bring that, you see, it's just not
going for a good result. So first, we need to go
for a better resolution. Let's go for 1024 and
see what happens. Okay, we need to go
for four K already. Okay, close to 1
million polygons. And if I bring it, you see, it's good, but it's
not that great. So we need to bump
up the intensity. And you see it's going
for a good result. But we need to have
more separation for these individual borks. You know what I mean? Let me go for
changing the Alpha. I'm going for the modification, and in here, there should be an option for adding contrast. Okay. Now you see more
separation between those chunks, and it's great. So let's do something. I'm going for a more
controlled intensity. And you see now we are getting
a lot better of a result. And let's re dynamish to
bring the polygons back together because that is
a really strong Alpha, and it changes the
silhouette a lot. And you see, we are
getting good results here. But also, we need to go and change some of that
silhouette later, maybe but first let's deal with the silhouette itself. Later, we will go for details. Okay. Now, I'm happy with this. Let's do something. I'm going for Let's go for adding
details on these ones as well. Let's go for Dynamesh. And then I'm going to
bring the same Alpha. Now, let's go for
another one imports. And this time I'm
going for this one. Let's go here. And already, you see it has
good shapes there. And just make sure that you
do not get that repetitive because these alphas
or these alpha brushes are just tiling height maps
grabbed from resources. So you want to make sure that you do not get that
much of a repetition. Of course, there's a lot of sculpting that
needs to be done. But anyway, you already know. So now let's do something again. And we have an option.
We could use this one on here or we could
go for another one. Let's go for another one. Dynamiin and a I want to get different
silhouette on here, so I'm using another
Alpha, another excuse me, another completely
different mesh rather than duplicating these
meshes over and over again, just like those planks. But also, there's a lot of
variation that we need to add. And in order to add more
separation in between these, I'm going to add the
dam standard brush with a trim smooth border. Add those variations
that we needed. Okay? Now I'm happy with these, and you have these Alpha
brushes in your project files. And you can use them
for your advantage. Okay? Now, let's do
something because we have already reached four K in DynamishUm pressing Control D, the subdivided one level. You see from 1 million, we go to something like 4.5. So in here as well, we have the subdivision slider to change between the
subdivision levels. If you want to see
where they are, you want to go to Geometry tab. And in here, you see that
there's a subdivision level. And if you press Control D, it's going to divide that. So I have the divide in here and make sure that you press you activate the smooth. This is going to
smooth, and without it, it's going to just subdivide
it without a smooth, okay? And then you have the slider. If you want to optimize
your viewport, you could sculpt on
the first level, and then if you want it later, you could upress that
for export or something. Okay? This is a good thing
about that pressing Control D. And then now
let's do something. I'm going to press Shift, select a dam standard brush, and pick the trim smooth
border as my main brush. And then I'm going
for sculpting on these and I'm going to
separate these chunks. Okay. Just like the
planks that we sculpted. You could just try to
change these chunks. Okay? Now we are sculpting on 1
million polygons, and later, let's say that you're
happy with it, you bring the slider up and
get a better resolution. And it's your choice if you want to add these chunks
in the first place. If you don't want
and you want to just already exported like this, you're more than
welcome to do so. But I'm adding some chunks in here for a better readability. And also adding or removing
some noise from that chunk. Okay. And it's because we have
a lot of noise in here, we are removing some of that
or a better readability. And it might take a bit of time, but it's going to be worth it because when you zoom far out, these chunks are the one that give a good
readability to this result. So first, I'm going for
adding those chunks. These different chunks. And then later we will
return back and use the trim smooth border
to finalize those. And it should be maybe one of the last lessons in sculpting the wood because the wood is something important
in this course. So we want to make sure to include a good amount
of information in here because that is what all of the environment is dependent on because everything there
is going to be made of wood. So the wood is going to be a good a good place to even learn something and apply that on
the environment. Because maybe 80% of the
environment is made up of wood, and we're going to
use that later. So it makes sense if you invest a bit more
time on that wood. Now, I'm just adding and subtracting from these and see where there's possibility
for adding those chunks and then go and try to add them. Okay? Now I'm going with the trim smooth border trying to flatten out
some of these details. Because later we're going to add some of those details
using Z brush, excuse me, using painter. So we're flat we're flattening them to add a ground for those
details to be placed on. And later for when we go for decimating these measures to make them a bit
easier to unwrap, we might not decimate them to a very big percentage
because Nanite is going to handle that amount
of polygons and I'm not going to
decimate them too much for creating high poly. I'm just going to go for a
moderate amount of polygons. Okay. And we're not going
to import these directly inside reel engine. Because these are the high
polymhs and we're going to instance them a lot to
create the environment, so that way, it might be a
bit heavy for performance. But definitely, we're going
to reduce the polycunt, but we're not going
to reduce that much. We just keep it something controllable to
keep the silhouette and go for good results. Okay, let's pre dynamic to bring everything
back together. And then I'm going to add those wood fiber lines using dam standard. Okay, just like
so. And I'm going to keep every bark different. And I want each bark to
have a different identity. So this way, we could add the variation that we
need to the environment. Okay. Let's re dynamesh, and then I'm going to bring the trim smooth
border and try to flatten you see I'm adding and subtracting
at the same time. So we have press Control
D to add a subdivision, and then I'm bringing the
subdivision level down. And sculpting might
get tedious a bit if you spend a
lot of time on that, especially if there are
a lot of instances. But it's going to be
an important part because without a sculpting, you're you're not
getting perfect results. So these lines results of the dam standard
brush need a bit of latening because
they look smooth. Okay. Let's see. Okay, not so bad. Now let's go for this one. Because I want every woodbark to have a different identity, I'm going for a different
approach in here. So let's go for smaller chunks. I don't want that to be so pronounced like
the previous one. Something medium. And see where you have brought
those Alpha jokes, and then check for
possibilities. To see where you can bring
those alpha brushes. And I just said that
if you have more time, you can spend more time
on these. No problem. But since we are a bit
limited in the time, we need to keep it controlled
and not bring that much time into these because that is going to
make the tutorial go Something like 100 hours if you want to make
everything perfect. Okay? So generalized chunks. And if you just zoom, you see that these chunks
get better readability. Okay. Now I'm just trying to laten those later we will add those tiny details in painter because procedurally, they are going to get a better quality plus
taking less time to create. Okay, now, just try to flatten all of those and
leave some noise to be there. And whenever you see,
just add chunks. Okay. Now let's do something. Although the sculpting
could never end if you just go sculpt
whatever detail you want. But since we need to keep the tutorial managed and
you already have picked up the skills for sculpting
these planks and barks, I'm going to end the
sculpting right now. And from now on,
we're going to create low poly from these high
polymehes for a bake later. So the process is
going to be like so. We're taking these then duplicating and then creating a low polyversion
of the same meshes. And the low poly
creation is going to be dependent on your workflow and how you want to create that. For example, one way of creating Global is to go using
the decimation master. You just preprocess your mesh
to something that you want, okay? Let it calculate. And then you have the option to see how much
decimation you want. For example, on 20%, you're not getting any major
changes on the silhouette, and it's going to be perfect. But if you go on
the wireframe mesh. You see that it has
decimated quite much, and it has kept details
on places where we have the most details
and removing from the places that have
no detail at all. And you see in here,
that's so prominent. And you can already just
try to decimate to get a better low polymesh
based on your preferences. Okay? I just went back to
the scope that we had. Now, the option that we're
going to use maybe might be the ZR measure because it
just keeps the polygons quad, and it gives us quad mesh. So now let's do something. I'm going to just press the Zvi measure
and see the results. So now you see we
have a perfect quad mesh with a not so bad topology. And an important option here
is the target polygont. And if you bring it to
something like two, it's going to make it
even more optimized. So I'll let it calculate. And sometimes it might not give you the
result that you want, and that might be because of the sculpting and manipulating
polygons too much. So in that case, just go re dynamesh once more to bring everything
back together, and then go to ZR
measure for your sculpt. Okay? Now, see, we get
lesser amounts of polygons. But if you compare that to
the high poly, you see, it's very close and it's
going to bake perfectly. And because Unreal
Engine is going to handle these amount of polygons, we could keep these or let's
go back and go for one K. It's going to
calculate your mesh, and we're telling you
a smaller polycon. Okay? You see now it's
even getting better. So you could go, for example, to 0.5 as well to
half of that value. It's going to re topologize the mesh and
give you quart mesh. And here you see we get a quart mesh with lower
amounts of polygons. And if I just compare that, you see it's quite right. So the way that I'm going to create low poly is just like. And if you want to bring that even closer to
the high polymsh, there's an option which
is called project. So the project should be in here in the geometry
and project, here, and the options
that are usable are project and the distance and
the mean as well might be. And then you bring the high
poly and low poly visible, select the low poly, which is this one and this
one in the background, and then go project. It's going to bring
them close as it could. Okay, let me go back. So now I'm going to keep that. And I'm going to
take the meshes, duplicate so that I have a
backup version from everyone to create the low polypro
using the decimation or the ZR measure. Okay. And then the final one. Now we know which ones
we should select. Okay? This is the low poly
that we created. Now let's go for this
one which is visible. Again, without any changes, I'm going for Geometry, ZR measure, and go 40.5. And let it calculate and we
already get a good result. And I'm not going
to change anything. Okay? This way we're
going to create low poly very easily and
get a clean quart mesh. Okay? Now, just go for
0.5 Z remeasure. And there are
options, for example, if you want to separate
these edges to be retpologized, in another way, you could select
them, mask them, change different
polygroups and use the polygroup feature but we're not going to
use that because these are generic meshes that are going to
be instanced and not hero meshes that might
need some specific details. Okay? I'm just getting
every mesh 0.5, and then Z will measure until I get all of the low
polyphils that I wanted. Okay? This is the mesh that
we are getting after that. And you could also go for
something like 0.25 if you want to get a low
polymesh like this. Okay, it looks like 0.25
is okay for planks because the planks do not have that much change
in the silhouette, but a lower number
of polygons will do to capture all
of the details. Okay? Here's another one. Perfect. And even the low
polymshes have silhouette. And that's great for later, if you instance them and
make results with them, it's going to be
very high quality. So now let's go
for 0.25 Z remesh, and that is perfect. So these ones are easily remeshed because they
are not type of comp. They're not a
complicated geometry. They're very simple. In
terms of silhouette, I mean. Okay. And you see it keeps these silhouette
changes as well. So I'm going again
4.25 and Z remesh. Okay, this one is good as well, and 0.25 on this one, as well. And for these, I might
go for 0.5 first to see what we get because there's some complexity in
these silhouette parts, especially on the edges. So we want to
capture all of that. First, I just go for 0.5. And then if we liked,
we will keep it. But if it was too much, we could already just go and try to reduce the poly count. Okay? This one is good as well. And you see the
silhouette is great. Now let's do something. I'm going for this one. We could capture
all of the details using 0.25 because that is not a big mesh compared
to these beams. Okay. It's great. And now
let's select this one. And I'm going for 0.5 first. And if it was too much, will decimate it down to 0.25. But if it was okay,
we will use it. So it's good. Let's use this one. So again, I'm going
for 0.25 on this. Now, let's go for
0.5 and ZR mesh. Okay? Now the low
polycreation is done. We could now export
these or whatever. But then for hi poly as well, because now we have something like 17
millions of polygons. So if that is something that
you want, just go keep that. But if you want to change, you can go select low
poly that you want, hipoly which is this. And then you could decimate it to let me see. You
see this is the mesh. You could decimate it to 20% to decimate the mesh
while keeping the details. You see no major
change has happened. Again, I'm going for
these just trying to preprocess and decimate it on 20% to optimize them for later. And why am I doing
such a maneuver? That is because if we
import these to blender, it's going to be heavy,
even for baking. So I'm going to
optimize it later. But if you want, you
can just already use these meshes
without any problem. So just preprocess. And depending on
the complexity of the mesh and some other factors, it might take longer
or or faster. So decimate and just
preprocess decimate. That is all you need to do. And the Z brush is going to
take care of all of that. And then decimate. Okay? And even with iPoly we're not going further
than 5 million polygons. And if it's going to be
even more optimized. So decimate once more. And this one as well. So this one pre process depending on the
complexity of the mesh, it shouldn't take that much. And you see high poly and low poly are matching quite well, and that will bake perfectly. Okay, 1 million,
and it should be decimated to something like
0.25 or something like that. 0.25 thousand polygons. So decimate Okay. And here we go. So now you see high poly and
low poly and everything. They're all closer to
2,000,000.5 polygons. And we're going to
get perfect results when we bake them for texturing. So now I'm pausing right
now and in the next lesson, we will export the low poly to blender and wrap them there. And then we will import the
high poly as well so that we could bake the results in blender or in
painter, excuse me. Okay, see you there.
12. Unwrapping The Wood Meshes: Okay. Now, I just set up
two folders in here each with 12 sub
objects so that I could just separate and see
the high poly and low poly separately so that I can export them individually or manage. So now, while selecting
these ones, I mean, by changing the visibility
mode of these ones, we could go on Zip lug
in and then FBX export, select the export
visible option. Now we could export
the visible subtols. Now, one important thing is that because we have
set these to be quad by converting them
to zero measure mesh, you see they are all quads. So there's an option in here,
which is triangulation. We need to turn that off because we don't want
to triangulate these. Of course, it could be fixed and blender by just
press of one button, but we do not need
that extra hard work. So now I'm going to export
visible and export. And I'm just going to call it
wood sculpt low poly. Okay? Give it a bit of
time to calculate, and it's going to
calculate and export so fast because these measures do not have a lot of topology, so the exporting is fast. But for these, let me check the topology in here because you see there's a lot of topology
that is triangulated. We could set that
to triangulation. Because these meshes are
triangulated anyway. So now, while these are visible, I'm going to export. And let me just call it HiPoly. And this is going to take
a lot of time because these meshes are
relatively heavy, and I'm going to
pause and return back to you when the export is done. Okay, I was exported, and now the rest of the work is going to
be done in blender. So now here we are in blender. I'm going to import. And here it is the
locally leaded import. But there you see a bit of
scale mismatch in here. S the meshes are too small. So if you want to fix that, you could go to
Viewport Menu in here. Let me select one of
the measures, okay? And then you want to go to item, and you see in here the
scale is set to 0.0 ten, it means that the
scale is of a lot. So you want to select all of
them and change the scale to one by one by
one or all of them. So now you see one of them
is back to its scale. Or if you want to change all
of them at the same time, you could bring the search menu, and there should be a reset
scale or clear scale. It should be Okay, clear scale. Now, you see, they're all back to the scale that we wanted. Now I'm going to save, create a new collection. Just select and press
new collection. I'm going to name it low poly. Now we're going for unwrap, but for testing and seeing if everything is going
to import properly, I'm going to bring
the high poly as well and test it to see if
they are all overlapping. So it should take a
bit more to load. So I'm going to pause and return back when the
loading is done. Okay, now they're all imported, and now I'm going
to select and bring the search menu again
and reset scale, and I'm going to compare them against the low
poly that we have. Okay? You see they're all
overlapping and they read well, it means that we have done
a good job importing these. So I'm going to take the high poly and delete them for now because
I don't want to put extra pressure on blender when we
are unwrapping these. When we unwrap them, we will return back
and bring those. Okay, now I'm going to
create two materials, and I mean to texture sets. One is going to
be for the beams, whether they are these
cylindrical beams or these square beams, and one these plank pieces. So we're going to have two
textures created finally. So now I'm going to create
a new material for this. Let me call the material M
representing material beams. And then I'm going to select these ones and
create a material. I'm going to call it
rescue wood planks. Okay? Or let's select
these ones as well, and I'm going to
call it wood beams. It would be more descriptive. Okay? Now, because these
are imported from Zbrush, there should be a UV problem because we do not
have a UV channel. So I'm going to select all of them and
create the UV channel. It's not going to take that much to create a UV
channel for them. But you need to make
sure that the name of the UV is exactly the same across the ones that you want to make a unique texture with. So now I'm going to
start on wrapping and let's see the
topology, and it's right. So we could go bring the
face orientation menu, and you see everything is right. There should be no errors because everything is
facing the correct way, the normals are right, and everything is
ready for unwrapping. So now I'm going to start
with the most simple one. Let me select this
because that is the most straight one
when we are going to texture it.
Excuse me, unwrap. So now let me bring
an extra viewport. We are going to UV Edit. Then I'm going to take these one by one and start to unwrap. So now, you see, it's not unwrapped, actually. We need to separate it into different chunks so that when we texture that,
it's going to be correct. So our work is going
to be dividing the mesh into its sharp edges. Going to take those sharp
edges and convert them to seams so that we could separate them based
on the UV seams. So it's going to be just like, so we are going to select
the edges that are going to be sharp and
right click Mark Seam. It's going to convert them
to seams so that later we could unwrap them based on that. So now, let me take
for example, this one, and then we have an option
to control, select the way. So you see it selects all of the edges in between in
short path selection. Okay. Now, if I just try
to select from here, you see, it does a good job
in selecting those edges. But if this is not
what you want, you can Control Z, go back and select the
way that you want. Okay? Like so. And then
let's do something. Let's start from above from here and then
right click Mark SM. But because I use
this one a lot, I just set that to be
in Quik favorites. So it means that if you select something and right click
Add to Quick favorites, when you press Q, it's
going to be there. Okay. Now I'm going to select through here. And let's select
these two edges. Okay? No, looks like we could have a better
selection right here. Okay. Now I'm going to
select that Link selected, right click and on rap. So in UV edit, go to face mode, right, click, Unwrap, or you can press
tab to go to UV sync mode, right click again and unwrap. Okay? See, now we have an unwrap of this pace right there. Okay? It's going to be the same. We are going to select
these meshes and try to unwrap them the way
that we did for that phase. Okay, I'm going to
select one edge there and control
select one in here. Right click Mark SM. And then I'm going to select my way from here, see where your topology goes. And select the sharp
edges and Mark Sam. Okay? Now, Mark Sem I'm going to select this one
right click Unwrap. And then this one should be
a separate part as well. Okay? Do not worry
if the scale is off. We will return back
and fix the scale. So now we could go for that side. Okay, easy. And then from here, So let's mark Sam, but I'm going to select this
edge and this one join them, and mark Seam this
one as well. Okay? Now right click on rap. And now this one. Let me select this. Okay. And then select whatever
that needs selecting. Okay, now the wrap
in here is done. So now, we're going
to do this later. But for a demo, I'm going to bring the menu and we're
going to use UVPacker. The link is in the
project files. You can download and install it. So now, I'm going to press Pack, and you see it has packed
all of them according to their scale because we have set a scale to be let me go back. Scale is scale is
corrected, excuse me. And now you see they're all unwrapped based
on their scale. And because we have
a quad topology, it's done a good job in
straightening these. But you can go for UV square
and select one of them. Let's deactivate the UV sync, select one of them,
and you see it made that straight as possible. Select this one. Okay, so if this is
something you want to get more optimal UV for price of a bit of distortion,
it's going to be right. So now we're going
to test to see if the textile density is right. We're going to apply
a checker map, and you see we have squares
all over the place. Okay. We want these
to be a square. So for demo, I'm going
to select one of these. And let's say that I'm going to scale it non proportionally. So scale, you see, we don't want
something like this. We want all of them
to be a square, no matter how the
scale is. Okay? We are back, and now we're going for these extra ones in here. So the process is
going to be the same, and I know that the
unwrapping isn't the best part in the production, but
it's an important one. It makes sure that later, we apply the best possible
textures on the meshes. So although it might not be the best part of the protection, but
it's an important one. Okay? It's just like, so let me deselect this. No. Should deselect that one. And then Control,
select your way there. And because these meshes
are straight quad mesh, and with no actual change
in silhouette at all, wrapping is going to be so easy. Just select the edge meshes, edges, excuse me, and
you're good to go. So let's zoom back,
and it's perfect. Control click to select
your way through that part. And now let's do something. I'm going to select
everything wrap, and you see it's perfect. So let's apply a checker map, inspect the mesh to see if there are any
unwrapping errors. Okay. No errors exist. And now I'm going for these. And you see, because
we have used Z remesh, we have a good mesh topology. And the selecting is
not that difficult. So let's just select these and convert this one to a seam so that we could
select our way through there. So I'm just selecting
these meshes, and you could go and learn
techniques to better use the Z remeasure or re topology by creating curve lines and by using the polygroups feature to direct the topology
to go where you want it. You could reuse ZR measure. But since these measures are so generic ones and do not need that special topology,
we just love that. But if you want to create
a sophisticated wrap, you could really use the
Z we measure and use the guiding curves and invest a bit of time
to learn how it works to create a really
sophisticated wrap. Okay. Now I'm selecting everything
in here and on wrap, and it's right and perfect. So Let's select everything and it looks right. So now let's apply a
checker map to see to check and inspect to see if there's
any errors in here. So no. Okay, three meshes
have been unwrapped. Of course, later we
will return back and apply good material on these. You see the material has been changed to
checker material. Okay? Now, for these as well, the process is going
to be the same. And I know that the unwrapping
isn't the best part. But there's no way around
it if we are going to use this workflow. And of course, you could use world aligned materials if you want to skip the unwrapping. But that is going to have
its drawbacks as well. That way you could
apply a material to the world, not the object. So whenever you bring that
wrap ununwrapped mesh, a mesh that is not unwrapped, it's going to pick up that
texture from the world, but it's going to be heavy for performance and
not that optimal, especially for these parts. But that is a
possibility if you want to skip the unwrapping. Okay. Now this one is done as well, so easy on wrapping. And take a look and
everything is right. And later we will
return back and just mix all of these
into one UV shell. One UV texture, excuse me. The ones that we wanted
to separate them to be one mesh. Okay. Now, these wood pieces are barebne of our
environment creation, especially for the modular kits that we're going
to create later. We create these kits, and then later kit bash and create a lot of
things with them, including walls, doors,
and a lot of things. I'm not going to delete the hi poly Zbrush sculpt because later we're going to
reuse those as well. For example, if we
wanted to create something composed of wood, we're not going to re sculpt
that from the beginning. We reuse stuff as
much as possible. So that way, we save time in the production and spend
it on a wiser place. Okay. This one is done as well. Let's apply checker map. And one thing, if you
apply something like this, you might not see a lot of errors because that is small and you think that
is everything quad. If you want to really
stress test that, you could apply a smaller
checker map to see if there's any
errors or not. Okay? Now the final one in the
wood planks category, And all we are doing is control click to select
the shortest path between the edges Okay. Now, for example,
we could select these and select
these two edges, right click Clear S. That way it clears
that so that we could use another path. So let them select that
wrap, and the perfect. So it looks like we
have missed one edge, okay? It's in here. Mark Sem And want to unwrap. Okay? You see they are
separated. Let me see. Okay, one, two, three, looks like there's
still this one. Looks like we forgot
to unwrap that. No. We could select
another path. Now it should be perfect. Okay? It's perfect, and now we
have different UV islands, and everything is
looking all right. So now I'm going for the beams which are similar but in form of a square rather
than being rectangular. I mean, they are
rectangular as well, but, I mean, in their base, it's something like that. So again, our work is to
select the mesh edges, and then mark Seam Okay, we could select these
two, join and select from here because it
didn't have that edge. So I'm selecting again these corner edges. Because wood is
something directional later when we unwrap or
later when we pack the UVs, we make sure that the UV shells
are directional as well. We want all of them to
face the same direction, so that when we apply
textures later, it's going to be accepting
a directional texture. Okay? Let me select
and it's okay. Apply checker map, and you
see it's working all right. And let's select
this one. So there's a more automated way
for unwrapping this, and that would be selecting
based on sharp edges. Now you see it select based on the angle input and selecting
different sharp edges. But there are different
edges that you need to select and remove. And the more straight
the mesh is, the easier it is to
unwrap based on that. Okay. If this is something
that you want, you could use it, for example, if it was really
straightforward mesh like something like a cube, if we return back, go
to select sharp edges, it would have selected
the best possible way. But since these meshes have
a bit of irregularity, it might not be the best
option to use that. But that would give you
some options to work with. If that is something
that you like, you could clearly So One benefit of using So one benefit of
using Tsimation master and making a triangulated
mesh is that the edges are preserved more
for unwrapping. I mean, sometimes there
are problems when we unwrap a quat mesh from Zebush including some
edges going off. But if you go and try to triangulate it with
decimation master, you're going to get a better
result when comparing the edges because it
preserves the edges and the selection
becomes a bit easier. For example, you do not
have something like this. We might exactly I'm talking about this because that way the edge
is triangulated. It would have created
these lines as well so that we have
an easier selection. Okay. Um, Now, I believe we could
unwrap that easily. So let me select to see if they are unwrapped correctly. Yes. So apply a checker map. And, of course, for the
UV Packer UV Square, UV toolkit, Text tools, and Magic UV, I have placed the link to download them in
the project files. There are resources and you
do not need to pay anything. And just select the shading. The shading is going to help you to have a better selection. Okay. And now I will leave it should be
Let me select those, and then I'm selecting these to join so that I could select
based on that selection. So the result is a bit tricky. So finally, I believe it
should be the last selection. Okay? So now apply a checker map, check. Everything is right. So now
we are going for these ones. So there's something looks like there's some geometry
errors in here. So you see these floating
geometry pieces. I'm going to select my mesh control eye to invert the selection and
easily delete those. Okay? For unwrapping these, it's going to be
so easy as well. All you need to do is selecting the caps and one vertical line. Because if you do not
place that vertical line, it's not going to
unwrap properly. So let's see a demo. I'm going to select unwrap. And you see, because we do
not have a vertical seam, it's not going to
unwrap properly, but the caps are separated. So you can go and try to select one line and select
your way to top. And now if I select
these, you see, now the wrapping is a lot
better because we have one line in here to allow for
cutting these two chunks. So now let's apply a
checker map, and all right. Everything is perfect. So now I'm leaving
this for the end. I'm going for easier one. Just select the caps And for something like this, you could separate it into different chunks, but I'm
not going to do that. Okay. And then one vertical
line all the way to top unwrap and apply a checker map and everything
is looking upright. So for this, you could separate these chunks into different UVs, but I'm
not going to do that. I'm just going to select and
like it's a normal cylinder. O line here. And select this right,
click Clear SM. Okay. And check when everything
is looking all right. So now, all of them
have been unwrapped, and there's one more step, and that is combining these into different UV shells and
different UV textures, excuse me, and unwrap
pack them, excuse me. Unwrapping is done. We
have the packing to do. And because wood is something directional and it means that all of the wood fibers are
going in the same direction, we need to make sure that
the UV shells are going to be directional as
well when we pack them. So it's going to be done
in the next lesson. I'm going to pause right
now and in the next one, we will apply wood texture for testing and to make
sure that all of them are facing the same
way to avoid a lot of headaches down the road when
we texture them in painter. Okay? And the next one
is going to be packing and testing the bake in
painter. Okay, see you there.
13. Baking And Testing Textures: Okay, everybody, now we
unwrapped the wood meshes. Now it's time to pack them. Already know that
for packing these, we need to go to UV
Packer and Press Pack. But there's a problem, and that is some
of these measures are not aligning to the
direction that we want. So how do we fix this? First, let's talk about wood because wood is
something directional. So it means that whenever
you apply wood texture, it's going to be in
a certain direction. So you want to match all of the wood measures to go
in the same direction. But you see in here
that some of them are horizontal and some
of them are vertical. So in order to see and test, I'm going to apply a very
simple random wood texture. I'm going to apply a material, call it random wood. Okay? Now, just in the
material viewport, I'm going for base
color image texture open and bring wood
texture there. So now, you see some of
them are looking all right. For example, this one is looking all right
because you see the wood fibers are all in the same direction
that they should be. And here's the wood texture
that I have applied. But in here, you
see on this mesh, the wood is not rotating to the direction
that it should be. It's lipped, and it should
be rotated 90 degrees. So now let's select these
and compare the UV shells. For example, this one
particular you see, it's going in the same
direction that it should be. But for this one, it's rotating. But if we rotate
that 90 degrees, you see now these
are looking upright. So we want to make sure
that all of them are facing the way that it
should be logically. Okay. Now we want to pack all
of these into different UV, so I'm selecting all
of them scale by two so that we see the
tiling a bit better. Now I'm going to look
to see if there's any tiling issues or problems
or if the UVs are correct. Now, this one is correct. All of these are
facing the same way, except for this one. You see, in here, these are going in
opposite direction. So I need to select
this and rotate at 90 degrees so that you see these fibers are
continuous there. And for this one as well, we're going to rotate
that 90 degrees. Okay? This is just to make sure
that we see more texture. We could have tiled the
texture using the material, but I decided to rescale the UVs to see better
in the viewport. But later we will pack them all in the zero to one UV space. Okay? This is correct.
Let's hide it. And now let's look for this one. They are facing good direction, except for the caps. Okay? This one and this one
should be rotated 90 degrees. Okay? Perfect. Let's
height this one as well. And this one is okay, there's a problem in here. And that is because we need
to rotate this 90 degrees, and we already know
that this one should be faced or rotated 90
degrees to match that. Okay, let's height
this one as well. And that is easy just
select the meshes and see if they are rotated
in the correct direction. Okay? Only the caps need
to be rotated. And do not worry for
overlaps or the UV shells being outside of the UV
zero to one UV space. All we need to do is selecting
the correct direction, and later we will pack
them in a good way. So we already know that
these should be rotated 90 degrees as well so that the fibers are continuous. Okay? Now, this one is a bit tricky. So let's see all of them are So this one as
well. Plus these. Control T link, selected if you haven't
changed the shortcut. Okay, perfect. Now, let's
hide this one as well. Okay? These are all facing the correct direction.
Leave them B. And I'm going to hide. So these are all facing the
correct direction as well. So these are all
vertical as well. We already know that
they're looking all right. H so let's go for these. And you see these are already facing the
correct direction, and the caps as well are okay. So now, let me bring
everything back. And now we need
to make sure that we pack them accordingly. So we planned that we wanted these planks to be
in the same UV and the beams are whether they are square beams
or cylindrical ones. Okay? Now I'm going to select these and I'm going
to use the UV packer. But we want to make
sure that all of them are pacing the way
that they should be. We need to disable the free
rotate and press pack Now, the rotation is deactivated. So let's press the UV
rotation to zero as well. So the link is in the file, the project files, you can
download this and use it. Okay? Now you see they have been packed and the scale is correct and the
rotation, excuse me. But there's a bit
of wasted UV space. So, let's bring the padding to one and set it
to high quality. So it looks like this is
the best that it could do. Because it couldn't rotate
and use more of that. So let's select these. And I'm going to pack
with the same settings. I need to disable the
rotation and pack. Okay? They're all packed in the same UV shell in the
same UV texture, excuse me. So we could do something. Let me take all of them
and pack them once more. Okay? This way, we get
a more optimal texture. We get one UV texture, and we could apply a four K
texture to all of them so that they use only one texture rather than having two textures. Okay? This is a choice. You could separate them or you could use them all in
the same UV texture. So now, this is what I'm
going to do right now. It's a choice that we need to make so you see now we have this percentage
of the texture being used. The more towards the
hundred percent, the better it should be. So because we have
disabled the rescale UV, I'm going to scale them
a bit and pack once more to see if the
percentage improves. Okay, now you see we
want a couple of percent more luckily I had
that save pile, and I returned
back to 78% of UV. So there's, of course, one way to add more to
that and use more of that, and that is straightening these. You see, there's some jagged
edges here and there, and these are causing the
UV to be less optimal. So I'm going to select these. Okay, and looks like
we could select now. Okay? You see now,
it has selected all of these except
for the caps. I don't want the caps
to be straightened. So we need to go to UV
squares and press Okay, we need to deactivate that first deactivate
the UV sync mode. So let's do something. I'm going to select them. And only pick these
vertical ones without the caps because I don't want to straighten
the caps. Okay? Now, just see what happens. I'm going to apply
a checker map. Let's apply a two K checker map. Now I'm going for UV
squares and press SNAP. So you see now there's a bit distortion in the face of the wood textures, but it's not a problem
because it's wood texture and wood is expected to have
a bit of distortion. So, for example,
you see in here, we have a bit of distortion, but it's going to be better
for UV when we pack them. So let's select them. I'm going to select everything. UV packer pack once more. So let's go for efficient and let's reapply the same
random wood material. Looks like there's
something off. So let's select that. So it looks like there's
a bit of problem there. Okay? It didn't work. I'm going to control Z and
go back to where we were. And now I'm applying all of them into one texture and forget
what we did with that. Okay? Now, I'm using the same result. Okay? Now the packing is done, and let's select
everything to make sure that our UV is working right and we have no UV bleeding
at all. Okay? Not bad. Of course, you could place
them in different textures if you want to, but in order to make
that a bit more optimal, we're going to reuse or we're going to replace them
all in the same UV texture. Okay? Now you already know that these need to
be one texture. Okay? Apply a UV map. I'm going to apply
material wood tiling. Or would kit because it's not soiling it dependent
on the textures. Okay? Now we need to bring in the high polymshes as well and try to match them for baking. Okay? I'm going to hide
the low poly collection, and I'm going to
import the high poly. Oh, imported. And now we could bring the search menu and reuse the same clear scale and
create a new collection, call it Hi poly. Very easy. Okay? Now let's bring the low poly and you
see they are matching. But again, one more thing
that we need to match is that these are all using the same material
like the previous one. And it means that
we're going to use the wood kit material, and we need to make sure that
all of the hi poly and low poly are using the
same material, okay? This is wood kit,
and now let me bring the low poly and that is using the same wood
kit material as well. It makes sure that the baking
is going to be perfect. So now let's do something. I'm going to because you see, there's a bit of of course, there's not much distance
in between these meshes. And if we bring them to painter, we either need to
rename all of these, which is going to be a
time consuming process, or we could bring them and bring a bit of distance
between the UV shells, between the meshes, okay? So that they do not apply the ambient occlusion causing some of the meshes to get buggy. Of course, another workaround
is to rename the meshes, but since it's going
to take a lot of time, I'm just going to skip that. This is a lot easier. Okay? But you need to make sure that the low poly and high poly are all in the same place. Okay? Now, let's do something. I'm going to poly take all of the low
polymshes and I'm going to export them FBX. Let's create a folder. I'm going to select objects, and we do not need to triangulate measures because
these measures are correct. So would kit LP representing low poly export
deselect and bring these would kit Pipoly. Make sure you're limited
to select objects. And it's going to
take a bit more. I'm going to pause
and we'll turn back to you when
the export is done. Okay? They are exported, and now I'm going to
create a new project in painter and test the bake to see if they're working right. So just create a new project, import the low polyphyle
which is here. Okay, we don't want to
change any of these. Okay? Now, these are the low
polypils and we need to go import the high poly and test the bake to see if
everything is working. So import, here's our high poly. Let's calculate to
bring the meshes, okay. Now the cage could be
changed because you see, we don't want to get
an error like this. We don't want anything
except the blue color. But we don't want to
over extrude that because it might
cause some errors. And it's right. So now let's do something. I'm going to go for test
bake only the normal. So normal on two K.
With these settings, I'm going to see if that
is going to read all of the normal information on the high poly and
to the low poly. So bake and let's return, and you see all of the bake information
is done flawlessly. Of course, the
quality is not that good because we need to
bump up the textures. But you see already all of the hi poly is
baked flawlessly, and it's great. Okay? Now we know that it's
going to work right. So let's go to bake meshes. This time, we need to
bump up the texture to four k and bring
different textures. We need to activate
different texture bakes. Okay. And then let's go to
comment settings, and for anti aliasing, I'm going to bump up the
resolution and bake textures. And I'm going to
pause and return back to you when the
process is done. And after the
baking, we should be able to use smart
materials on this. Okay, I'm going to pause and return back to you when
the baking is done. Okay, now the baking is done and you see all of these
textures applied. Now, in order to test it, we're going to bring smart
material, something like wood. So you should read all
of the edge information. It should read cavities. Like so you see in these areas, it should collect dirt. Okay. And you see
it's working right. Of course, we're going to create our own texture,
not using these. And let's apply still material
which reads the edges, you see, and it means that
the bake is done perfectly. So now we have a couple
of ways to go about this. We could either texture this completely and then try
to kit path with it, or we could texture very simply and kit bath and later we turn
back and refine it. So this is what we're
going to choose to do. My current choice is to use some simple textures to represent the final idea
that we're going to apply, and then kit bash and create
some meshes and later return back with easy mind to
texture that completely. So now let's do something. I know that these are
going to be more of exposed wood and have
rougher texture. Let's apply there's
a K. Of course, there's this one,
which we later fix. Add a black mask, and we
need to go to mask setting. Use object so that we use
these for the same texture. We created a mask and masked out these parts that we want
to be using that texture. Okay, now let's bring that. I'm going to apply a
black mask to remove everything and go for
white mask, select these. Okay. And then a darker wood shade for these planks,
which is this one. So now, this is going
to be only for testing. Later, we will import
these to painter. And create sophisticated
textures for them. But for now, we need to apply a primary texture so that we test the idea and kid bash in painter while having
some colors to look at. Okay. Later we will return
back and try to fix this. But for now, this texture
is looking right, except for this one, which I think it should
use another color. Let's bring this. No, it was the same
Okay, it's better. So now right click add a
black mask and select these. Okay, I'm happy now. And we're going to export this. I'm going to use this
material painter in Blender, excuse me, when we
try to kit Bash these and make different
measures with it. Okay. See you there in painter, in Blender, excuse me,
when we try to Bash. But before that, we need to
export these textures to use. So you could go export textures and just fine the directory that you want to output these. Output format for now doesn't
matter because we only need the base color and normal
map and roughness. So format, let's set it to Targa Texture should be
four K and now exports. Here's our textures
that we're going to use in blender
for kit bashing. And later we will
return back and create sophisticated
materials for them. Okay, I'm going to
open base color for texture and then
select my base color. And you see we are getting the same color that
we got in blender. Okay? Now, let's go
for normal again. So let's leave that B. We're going to use only
the base color. Okay. I'm going to pause right
now and in the next lesson, we start to kit bash these and create modular
kits with them. These are our kits, which we're going to create
a lot of meshes with. And then later we
will return back and create a good texture
for them as well. This is only a primary texture for you in blender
when we kit Bash. Okay. See you there
in the next lesson.
14. Start With Modular Kits: Okay, everybody, now we are
going to create modular kits. So we have been creating these
wood kits for some time, and now it's time to use. Of course, we might later go for a tiling texture plus
the baked details. Or we might throw this
texture completely because this is
only for testing. And then later we will decide
what we're going to do. So for now, we have these kits, and it's time to start creating. Of course, we will add to
this kit something like, for example, rope or extra
kits that we decide later. But for now, you already
know that we have created some blockout buildings and placed them in the environment. So we're going to bring some of those blockout buildings and try to create messes that
tile across those buildings. So this is exactly
what we needed. And we're going to start
with the first one, and we're going to create
tiling measures that tile across these
buildings to create modular kits and then
later distribute them in nra and Geno
world build with them. So these shingles that we have not created are
going to be created later. But for now, we have the wood that we're going
to create kits with it. So I'm going to
copy this and paste it here so that we can try
to create kits with it. This is only for testing
and we're not going to use this mesh in
the final production. So now let's go for seeing how the dimensions
are on this building. So the building is
something like eight by eight by you already
see the dimensions. So now let's do something. I'm going to take these
edges, duplicate them, and I'm going to
take this edge Okay. Duplicate, separate by
selection to create a new mesh. Okay? Now the dimensions, you
see, it's 6 meters. So it means that this
building is 6 meters in Y, let me duplicate and
rotate 90 degrees. Okay. And you see that by creating meshes that
are three by three, we can try to tile and
create new buildings with. So now the base of
this is going to be a three by three mesh that
is going to be tiling. So let me just do a simple demo. I'm going to bring a plane, and let's change
the dimensions to three by three. Okay,
let's say that. This is a final mesh. I'm going to bring that here. And let's rotate that
90 degrees like so, and then we create a couple
of three meter meshes and then tie them to create
this building. Okay? Like so. Now we are going to create three by 3 meters
buildings, kitsc me, and then we are going to reuse this geometry as much as
we could to create kits. So now let me create
a new collection. I'm going to call this kit and let me delete these as well. Now we have this building. We are going to create
a three by three mesh. And I wanted to use
geometry nodes, but since we needed
more artistic freedom, I'm going to create manually. Okay? Now, we know that it's going to
be a three by three, so I'm going to create a
plane to define the borders. We do not want to go outside
of these borders. Okay? Let me rotate that. I'm going to bring
the pivot to here. Okay? And then I'm
going to bring these and then I'm
going to place them, so you already know
that the pivot is wrong because we exported
these meshes from Zebras you see the pivot
is all in the center. So I'm going to select all of them and bring the
pivot to the center. It's going to be found in interactive tools
and quick origin. So you want to make sure that
the pivot is in the center. So I'm going to duplicate,
bring to the center, and I'm going to just try
to kit bash these and fill this border that we have. Okay? The first one is going
to be the simplest one. Okay, now we could duplicate, try to rotate And then you already see that we
could bring this to here. And we could also
duplicate these. And I'm going to
rotate around Z by 180 degrees to get the other
variation from that side. And it looks like this one
could be rotated as well. Okay, now let's do something. I'm going to take one of these, bring it to the
center, and try to rescale it to match to here. Okay, now we have
created our first kit. Now we have this. I'm going to select all of
them except for this plane. Let me just deselect that. Okay. And then we have all of these. I'm going to press Control
J to join all of them. So we need an active object. So Control J. Now,
the pivot is wrong. You see the pivot is in here. I want the pivot to be in the center exactly
to the ground. So you already see
that our plane is just on a good pivot. So I'm going to copy
the pivot from there. So first, let me bring that to here because I want that to
be exactly on the border. And then in here looks like we have some geometry that
needs to be manipulated. So I'm going to select that and then rescale Okay. Now we have a kit created. Of course, later we will add
more complexity to these. For example, I might bring
another wood and try to randomly place other wood pieces on these buildings to make
them look more complicated. Okay. But for now, I'm going for bare
bone of the kit. Okay? Now I'm
selecting this one. Let's select the one that we
want to copy the pivot from. I'm going to bring the
origin to selected. And then I'm selecting
this pivot to cursor. Okay? Now you see we have pivot exactly centered around
here, which is okay. So now let's try to
kit bath with it. I'm going to shift the duplicate
and bring that to here. Let's rotate that. Okay. And then I
could easily bring that over to here and
call it a building. And if you wanted, we could
duplicate that even more and just create a whole
building with it. But I'm not going to do that. We're going to
create variations. So now I'm going to take this. I'm going to call
it as representing the static mesh and MOD
representing modular, and it's going to be building kit and then it's going to be 01 representing
the first kit. You see, this belongs to the first building
or let's call it B then it's going to be wall three by 301
number of variation. So this is the naming convention
that we're going to use, get used to it. We're
going to use that. So now I'm going to create another one this is
only for testing. This is the kit that we're going to export to Unreal Engine. This is a copy so that we
see what we're creating. Now I'm going to again
create a three by three. Let me take these meshes. I'm going to bring them to
center and then try to place them to create another three
by three building with it. And then these ones, let
me bring and I'm going to scale them so that we have
more variations with these. Okay. And this needs a bit of more scaling let's do something. I'm going to take
these and rotate them vertically because I wanted to create another type of wall. Scale in X. And again, I'm going to scale once more. Okay. Now let's do
something. I'm going to take all of these scaling Xs and bring them to here. Now, this is only your
imagination on what you do. Just try to use your
imagination and see the possibilities on how you could make
buildings with these kids. It's like a
Blacksmith mentality. You have kids and you can try to create new
identity with them. Pardon. Okay. And then I'm taking
some of these and rotating them around to use the other side
of the mesh to create more
variations with them. Okay. Now I'm going to copy
bring one in here just to convey a
message that they are held by these pillars. And let's rotate that. Okay, I'm going to go
back, copy this name. And then I'm going
to take all of these except for that plane, which was the border. Okay? And then select
this one Control J. And because the pivot
is exactly in here, I'm going to select and
bring the pivot to cursor. Okay? And then I'm
going to paste that name and call it wall
three by three variation two. Okay, now let's do something. I'm going to duplicate,
bring it over to here just for testing and seeing how we could create
buildings with these? This is how you
are able to create buildings so easy and so fast. So now, I'm going to create buildings in a way that the planks are
smaller because you see, there's not the amount
of planks that I wanted. So let me bring that to here
and bring this to center, and I'm going to scale
that in X by half, 0.5. Exactly. Okay. Now I could duplicate that, bring it to here,
rotate that 90 degrees. But this will create
a butterfly effect. It just looks like a symmetry. So let's try to scale
planks to a better number. Okay, this is better
and more convincing. And then I'm selecting a
couple of these planks randomly selecting all of them and try to place them here. But first, let's rotate. And the good thing about
wood is that because it's natural and a lot of these are accepted in
something like wood. Okay, now I could
easily replace that and see how well it goes
using this method. Let me duplicate that
and bring it to here. Okay. You see now more variation in terms of scale of the lengths. And this makes that
even more convincing. And later we're going
to add a lot of variations to these
kits. Do not worry. I see that there's
a window in here, and we could easily try
to carve that window. So let me bring that back, and I'm going to bring
another variation here. And then the window
could be carved easily. Let me go to Edit mode, P, and by loose parts. This is going to lit the
mesh to its existing parts. I'm going to bring the pivot to center and then try to scale that And let me just delete a couple
of these parts and then try to bring that. Now, I didn't like the composition because
that was repetitive. Okay? Now it's better. Let's take all of this and
that as the active object. Okay. Now, we could either
create the building with boolean or carve
with something else. Let's test the Boolean for now. Let's apply everything. Base orientation and
everything is right. So I'm going to bring a cube. Okay, and then I'm taking that plus this one,
control minus. So if that didn't work, it means that you need to change the mode to something else. Okay? Now you see we get a
convincing effect of that. So now I'm going to apply. And then we could go back
and try to bring these, for example, and try to place that here
for the building, for the window, excuse me. And because these are going to be converted to nanite it's
not going to be a problem, actually, if they are too high poly because nanite is going to handle that
amount of polygon for us. A, uh Okay. And then I could duplicate this, rotate 90 degrees and
try to place that here. And then let me
bring that as well. And this will make the buildings
a lot more convincing. You see, now I'm very happy with this building and how
it's going to look like. So let's scale that
in Y a bit. Okay. Later, we will decide to see what we're going
to add to that building. But for now, let's try to
create a very simple silhouette of that building. Okay. Later, we will
decide on how we're going to take care
of that building. Then I'm going to
take these measures, select this one active object. Okay. And then I'm going
to rename that to 03. And then I could easily
replace that with this. Let me bring this over to there. This is only for testing. 90 degrees, and
then I could bring that and you see it creates
a very convincing effect. Let me hide that. And you
can see how that helps in creating a very
convincing effect. Okay. Now we're left with this one, and we already know that
if we want to create, we need to cut this building, cut this kit because
it ends here, and then it's the roof. So let me take that and delete. And because these
are for testing, I'm just going to leave
them there to be. And then I'm going
to take the mesh that we're going
to use in engine. And you see now we
have three variations. Okay, now we could either create a couple
of kits for here, three meter kits
or we could create a three by six kit to
add even more variation. So I'm going to create that. We could duplicate to here, and then to here, and
then we could cut. But in order to add
more variation, I'm going to bring this here and let's bring that somewhere. Because I'm going to duplicate, bring that over to here. And then No, it should
be in this way. Okay? Now I'm going
to take these, bring them over to here, and then I'm going to
create a new kit with that. Okay? Let me just bring them over
to here because we needed to rescale these in X so that we could place more planks and add to the
complexity of the building. Okay. Then we could
easily bring these. Then I'm going to scale But these two
definitely need to be scaled to create
a better effect. Okay, now let's do something. I'm going to take
these duplicate And then again, I'm
going to duplicate once more and then duplicate here, to create that side. Okay. Now again, I'm going to bring the buildings,
bring the kits. H, and try to place them like so. Okay. Now this is why I
wanted to create a different variation only with this because now we could join them and try to create
a new window here. So let's take these, join, and then I'm
going to bring the pivot exactly to the
center cursor there, and I could bring a cube now two by two cube might be something that we want. So let's try to scale that. That would be better. Okay. Now, I'm using Boll tool, which could be activated
from preferences, add on, and then
search for Bolt. Okay? And then if you
press Control minus, it's going for difference. Now set the mode to fast Okay, and apply. So now I'm going to let's
see what we could do. We will cover these with kits. So now let's go back,
and I'm going to bring a couple of
these to the center. And I'm using these because
these are in shape of cube, and we could try to hide
all of these with it. Okay. And now, this
one is good as well. It could be definitely scaled. And then I could place them here to hide that one as well. Now I'm going to
select everything, this one active object, and join only this and
this one active object, join then I'm going to
copy to here and use that to test it to see if we
like the building or not. Okay, it's definitely worth it. And then later we will add a lot of different measures to make
that even more interesting. But for now, we
need to cut this. But we're not going to cut
on this because let me take the naming convention and this one should
be number four. I'm going to create
another variation and cut. Okay. Now, for testing, I'm going to bring that here rotate and I'm going to
bring that exactly to here. So let's scale. I'm testing different
possibilities to see if we want to cut from the top or do we want to cut or do we want to rescale
that to such a scale? So I'm going to use
the rescaled version. Okay, I'm going to use this one. But we need to apply the scale. And I'm going to call this. This one is going
to be three by 601. And this is going to be excuse me, six by 201. Okay. Now we have created four different kits that we
could use for production. Now I'm going to
pause this lesson, and in the next one, we're going to create more kits. And when we were happy
that we have one building, we start to kit Bash
that in real engine. Okay, and that is not going
to be something like this. We will add beams. We will add a lot of cool things to make that
even more interesting. Okay? It's not going to be Okay, something like this. We will add a lot
of cool geometry and additions to make that
even more interesting. Okay? I'm going to pause right now and see you in
the next one where we go and try to create more
kits. Okay. See you there.
15. Attic And More Kits: Okay, now we created
some modular kits, which are here and later, we will import UnreLEngine, export to UnreLEngine,
excuse me, and then we will use them there. But now it's time to create rest of the kits
for this building. And now we can reuse kits. So based on the references and you already see what
we have created here, we have a mesh that is going to contain a
doorway to the building. So now I'm going to
select these edges to see dimensions of the building, and I think it
should be 5 meters. So go to Edit mode. I'm going to select these edges shift to duplicate and then
separate by selection, and I'm going to select this. You see now the dimensions
are just 5 meters. So we know that we're
going to create a five meter kit to
be placed in here. So now I'm going to reuse from these geometry
kits that we have. So I'm going to
use from this one. Shift D, and I'm going to bring to the center
of the world. And let's take this one. Now it's going to
be five by three. Okay. Let me see. Okay? This is it. Now
I'm going to bring here, and you see there's a bit of geometry that needs
to be filled. So first, I'm going
to edit mode, P, and separate by loose parts. This is going to
separate all of them into basically the
creation parts. Okay? Now I'm going to select these except for that plane, and I'm going to bring the
pivot all to the center. Because you see whenever I'm
trying to just rotate these, they rotate around
their centers. Now I'm going to
just select these and just bring them over
here to that center, and I'm going to rotate around X by 180 degrees to get
that other variation, and then I'm going
to bring that and place it roughly
around that center. Okay? We know that we're
going to create a door that leads
to the building. So first, we know that because we have the
player in mind. We want to see the player to be able to enter
the building. So I'm going to
create a proxy mesh, which is 2 meters, and I'm
going to place it around here. Okay? We know that this is going to be the entrance of the building. So let me hide the wire frame. And I'm going to
bring these here. Okay. And then we have these meshes that are
not going to be useful. So let's bring them. We might
use them in another way. So now there's a two meter
buffer zone in here, which we're going to
later create our door. And for now, I'm not going
to create the door because later we will create
a special mesh for it because I'm not going to reuse that geometry that often because that takes
a bit repetitive, so we need to create a special geometry to
hide that repetition. So now let me bring
that to the center. Or let me take all of these, and I'm going to bring
them to the center, rotate to create a frame for the door. Okay, now done. So now I'm going to
bring that there. And let me see we have
another mesh in here, which I'm going to
copy right now. Okay, like this. Okay. I'm now going to
take all of these, join, and the pivot is
going to be corrected. So I'm going to take that
and then pivot to cursor, which is going to
bring the pivot there. And then let me just test and bring that here to see
if that is going to be a good geometry or not. I'm now roughly
going to test it. Okay? Now later, we will
create a door mesh which is going to be a special mesh
Okay. I'm happy with it. And later that we bring a lot of extra meshes like beams
and things like that. It's going to be very good. So now, let me take this
and I'm going to call it. Let me just copy the name from that
naming convention because that is important. Okay? It's going to be static mesh modular
building kit building 01 wall door Okay? Then it's going to be
a five by three mesh. Okay, I'm going to
bring that here. And then it's time to go and create this
building, this attic. So we have options in here. One option is to use
a mesh like this, bring it here and create
the attic itself. Or we could create
a special mesh that goes up to here and then
cut these extra parts. So in order to have
the usability in mind, I'm going to create
first this one in here, and then we will create a triangular mesh for
the attic itself. So now, in order to reuse
because we know that the scale of the attic is going to be the
same on this one. I'm going to take that mesh, bring that to the center, and then let me go for
correcting the name. It's going to be 02, because everything
is in the same, but it's another variation. Okay? Let me delete these
let's see what we do. It's going to be a
five by two mesh. Okay. First, let me change
that to five. In X or if you
have rotated that, for example, in here, yours might be Y. But because that is
rotated in this, I'm going to change that zone. So I'm going to rename
that to five by two, and it's going to
be variation 01. Okay. Now let me test it here to see if you
like it or not. Oh, I'm going to do one thing. I'm going to remove that window because that is repetitive here. And then we have one door
in here and one window, it gets a bit repetitive. So now I'm going to take
these measures and remove those and then let me explode the mesh to its
construction parts. Then I'm going to bring the
pivot to the center and let me change this to five by
two and bring that here. Okay? These are the boundaries. Now I'm going to
deselect that roughly, let me delete some
of these and try to place them like so. And then I'm going to
rotate that 90 degrees, rotate that in here as well. So that your repetition
gets hidden. Okay. We could remove some of those meshes and
then bring that to here. And it's good. So now, let me take all of them except for that plane and
let me test, okay? Perfect. Now, do not worry if all of the measures
are looking the same. I mean, in terms of
plane directionality, all of the planks are in the same direction.
Do not worry. Later, we will fix all of that. So I'm going to select
that active object. Let me join them with Control J, and then I'm going to bring
the pivot to that cursor. Okay? Now I'm going to test. Later, we will make
these measures a lot more complicated. M Okay, let me hide that
again and try to see. Okay, I'm happy with it. And you see, let me go to solid mode and you see
how detailed the mesh is. You see, even without any
texture and without anything, it looks right because we have
this blacksmith mentality. We have these meshes
created by different parts, and we're going to create
them like a blacksmith. Okay, now let me I'm going to take this one and let me create a new collection. And I'm going to call it done. Okay. And then I'm
going to place this one in the same
collection as well. Okay. And then now we have
this attic part, this triangular mesh that
we're going to create. Okay? Now we have options. We could make this
one horizontal. So let me just demonstrate
what we're going to create. We're going to take
these and place them like so and then cut
the extra parts like that. Okay? This is what I'm
going to do right now. So now, let me take
this and first, let me rotate that in this
direction because I want the starting pivot
to be here. Okay? And then go to Edit mode, separate by loose parts, bring the pivot to the center. Okay. Now I'm going to just take these and try to
place them like so. Okay. Now, let me just select
some of these measures. And I'm going to bring, like, so Okay, once more. Now let's do something.
I'm going to take all of these except for that plane. Let me deselect the plane. Okay. And then I'm
going to join these. We need an active
object control J. Okay, let me bring that to here. And then I'm going to bring
the mesh right about there. Okay. Now let me bring
the mesh to here. It's good. Okay. Now I'm going to cut this mesh using
something like that plane. Okay, I'm going to
duplicate that there. And let me just
extrude the faces, so and I'm going to
create a Boolean part. I'm going to remove these parts. So I'm going to take that. And I'm going to take this one
as well, extrude, like so. And then I'm going
to remove the part. Okay? And let me take this, create a new face
in here as well. Okay. Now, we need to make sure that all of the normals are
facing the correct way. Shift and recalculate
all of the normals. Okay? And then I'm going to take that and take this
one control minus, and we should be able
to change the mode. So fast, okay? I removes those parts. But again, we need to take that mesh to remove those parts. Okay, now I'm happy with it. Let's al a boolean, and then I'm going
to remove these, and I'm not going to do
anything for these parts because they're going to be hidden and nobody's
going to be seeing them. Okay. Now let me bring
the pivot to cursor. And then in order to test it, I'm going to bring
that around here. Okay. Now we need to copy geometry from that
part. I mean this one. Okay, I'm going to
take this one and this one shift D to duplicate
and separate by selection. I'm going to make a boolean part from these geometry pieces. Okay? Take all of the faces out E
to extrude along normals. Okay? And then no. Let's do something.
I'm going to take these edges and extrude to here. Now let's go for a boolean
to see what happens. Control minus, set it to fast. Let's apply to see. Looks like the order of
selection was wrong. So I'm going to go back and select this one and this
one as the active object. Okay, it needs to be inverted. So now what we're going to do is selecting this one that you see. I'm going to select
this plane, these ones. Shift N to recalculate the
normals to the other side. Now let's do something. I'm going to take
these faces and Alt E extrude along normals. And this one as well. Alt E extrude along normals. Okay, now looks like
that mesh is created. And I'm going to take that apply a modifier and looks like there's a bit of geometry
that needs to be fixed. Like these ones that
are expected basically. So I'm not sure why they're
not getting deleted. Let me select the Control L, and then control I to
invert the selection, excuse me, I'm going
to take all of these, Control L, and then control
I to invert the selection. Or I'm going to select these
P separate by selection. Now these are not part
of that geometry. Okay? Now you see this
has been created. Let me bring that back a bit. And, of course, we could
just take that and try to rescale and bring that to
here to hide those parts. Okay, something like this. Now I'm going to take that mesh, and it's going to be
building 01 attic 01. Okay. And then let
me place that in the the folder and
bring that to here. Okay? Another mesh created. Okay. Now, this looks right. Let's see what we
have done already. And later we will add a lot of cool geometry parts to these to make them
even more special. Okay. And these beams are going to be created as
well. Do not worry. We're going to reuse these
geometry parts to create that. Okay. Now, we have a shadow
catcher to create as well, which is going to be this part. So let's do something. I'm going to duplicate that to see the
dimensions of that. So it's going to be 3.5 worth of geometry
in this direction. Okay. Let me remove that and
bring that to here, and the pivot is
going to be here. Okay. Let me bring that back. Then I'm going to just create
geometry for this one. So now let's do something. I'm going to reuse all of these, shifty bring them to here. And let's see for the rotation, I'm going to match these to be rotated in
the same direction. Okay. Now I'm going to
just rescale these meshes. Let's rescale once more because I don't
want the meshes to be that different from
the mesh itself, okay? Let's go to local
instead of global and I'm going to scale
these locally. And local why? Just creates in a
way that it has the best variation. Okay, now. We have left some more
geometry in here to be laced. Okay, not too bad. Let's take these and bring them to there. And then I'm just going to select these measures and
bring them over to there. And make sure that you
make the most variations And let's rotate that as well. And you could even make
variations in the rotation. Okay, now it's done. So now let's take all of
these except for that plane. I'm going to join and the plane is going
to be the period. Okay, the cursor, which is going to bring that
to the center of the world. And let's do something. I'm going to test it here. So let's rename it. Course I should take
the name from here, take the naming convention, building 01, and
then it's going to be shadow catcher and
it's going to be 01. Okay? A Okay, I removed that by mistake. Okay, now I'm happy with this. And let's take this mesh
and remove it. Okay. You see, now we have
a shadow catcher. That we could place here
with some beam around there. And then let me bring that here, place it in the De boulder,
and it's all right. We could duplicate the
same one in here as well. Or we could just
bring that there. Let's see the dimensions
of this one by selection, and then it's going to be probably less than
2 meters of geometry. So let's do something.
I'm going to take these measures and this one is going to be 2 meters. Okay? And then these ones are going to be separated by loose parts. And it's done. Okay? Now,
let me take this mesh. I'm going to copy the name
from here and then take all of these Control J to join. Pivot should be here. And the naming convention
should be like that. And then if I bring
that to here, we could rotate and test it
to see if we like it or not. Okay, it's definitely
a good one. Okay, very good. And let's take this. Now, let's
leave it there. Later, when we wanted to
bring them to real Engine, we will create that
shadow catcher there with beams from these. Okay, let me place that. Okay. Now let me delete that. And then we have the side of the geometry we
created, do not worry, it's not going to be just
like this one because we're going to create
five different buildings. Now that we have one building created and we have kits
for that building, later, we could easily just
bring one building, for example, and try to reuse the geometry to
create that building. Let me explain,
here's one example. I'm going to copy this
and copy that to here. And you see, because we
have this building created, we could go and
try to reuse from the same geometry to
create that building. For example, I could take
this, bring it over to here. And then we could see the possibilities for modular creation with
this building, okay? And that could be
created so easily. So let's say that this building is bigger than the other ones. We could scale the kit a bit. So let's go for four
by four by 0.25. And then we could duplicate, bring it over to here,
create more variations, and make other
buildings with it. Okay? Because this
building is just the first one and we
are creating kits. The first kit creation
might take a bit of time, but the other ones are going to be easier because we're going to reuse and reuse and reuse
more to create what we need. Okay. And then later we will
create these parts as well. And now that we have
created that building, we could, for example,
take this one, bring it over to here, like
so, and then call it done. Very easy. This is
good about modularity because you could reuse from the same geometry
and create what you want. Okay. Now I'm going to
pause this lesson, and in the next one, we're going to
finish this building and bring other
buildings to create. Of course, without this roof
part. Okay, see you there.
16. Finish The First Building: Okay. Now we created these two
sides of the building. Now here's the cool part because now we could
take these two, and because they are created on the grid
and for modularity, we could easily bring them
back and reuse them here. So with no problem. And you see very easily we were able to create the side of
the building as well, and nobody's going to see that because when the player is here, they're not aware of
what is going on here. So the modularity helps to keep everything organized
and reusable. Now, you might wonder
why these kits are too flat and they have no
special effects on them. You see, later when we were happy with construction
and all of that, we will go and try to add
more details to these. For example, I take
this one as an example. Let me take this plank, select that completely, and then hide everything else. Okay? Now we have this plank. Let me take these vertices, and I'm going to bring
the proportional editing. Now, I could easily
bring some of that to deform the shape. Now you see, we
created something. Let me bring that back. You see now, we created a very easy variation
with no actual effort. Let me bring
everything back again. And then let's take this one
and hide everything else. And then we could, for example, take some of these
polygons and remove them. Let me go to polygon mode, and we could easily remove that and create a new variation. Okay? These are all going
to be left for later usage. You see, now, with
something like this, we easily able to create
a lot of variation. So now for the first iteration, we're going to focus on what actually makes
the environment. And then later we will go
and create more variations. Okay? This is about variations. And then here, I'm
happy with it. Let's bring that the front just a bit. Now, let's
bring that back. I want that to be hidden
under these wood planks. Okay? Now, for the rest
of the building in here, we could do one thing. I could easily take
this one and try to create a new variation
with it and place it here. Okay? Now let's do something. I'm going to look for
the original mesh, which is this one, copy, bring it to here, and then let me Rename, it's going to be wall by
three variation number two. Okay. Now, let's do something. I'm going to explode the mesh. So while selecting nothing, just go press P and
buy loose parts. Okay? I could easily delete these and bring the
pivot to the center. Okay. Let's go to material
preview so that we see what we are about to do. Okay. Then I could
easily let me go to edit mode and the activated
proportional editing. Okay. Now it's working alright. So now let's delete some of these darker planks because I believe we have
too many of them. And then I'm easily trying to recreate a wall with this kit. Okay. Now let me join everything and
bring the pivot to cursor, which is going to
be in here exactly. Okay, let me bring that to
D folder and place it here. So for testing, I'm going to bring that to the
scene collection so that it's not in that folder. And then easily, we're able
to create the side with it. And if you want, you can
bring horizontal planks, as well to help you create that. Okay, now, we are
left with this side, and that really
depends on you to see if you are going to reuse these meshes again for the side or create new
variations from them. So in order to keep
that more manageable, I'm going to reuse geometry, and you see very
easily this building gets completed because you see, using modularity, we're able
to create meshes so fast. Okay, and bring this one here to create a
bit of variation. Okay? Now let's look at
that without any materials, and you see it's working right. And for this part, it
really depends on you. If you want to create
interior for these buildings, you could easily
just create meshes. The way that we have been
creating modular kits so far. So now for the time being, I'm going to call
this building done. Let me create a new collection. I'm going to call
it building 01. This is going to be
for testing purposes. Later, we will create more sophisticated
meshes using these kits. Okay. Now, I'm going to leave
these B like that, and later we will return and create more
variations for these. That is going to be easy just
regular polygon modeling. And then the forming meshes, creating new
variations, and so on. Okay. Let me bring
that over to here. And then I'm just taking that medium polygon files
that we created previously. And then I'm taking
this one easily, just copy and paste it in here. So let's create a new
collection already. I'm just going to
call it building 02. Then here's going to be what we're going to create right now. So let's delete that Okay. Now you see the buildings
are identically the same because we are re using from each other to
create these buildings. So let me bring that here. But this building
is a bit different because the dimensions
are a bit different. You see? It's a bit taller.
Now let me compare that. If I take this
separate by selection, and it's 5 meters as well. So it's a five meter
building just like this one, but with taller geometry. And the door placement is a
bit different than this one. This is in the center, but this one is in the corner. And with these different
shadow catchers and a bit different roof, we could already try to reuse modular kits to create
that just like this one. So let's do something
for this building, let me take this one and
see the scale, okay? And the building is
six by five by eight. So we should know the dimensions when we are going to tackle different
environment pieces. And let's start with the front side and go
about all of the building. So now, we know that this
is going to be 5 meters, and this is going to be, again, the kit that we're going to use. And we're going to
reuse geometry. So let me take that. I'm going to bring that here and I'm going to reuse
the naming convention. So it's going to be building 02. Waldor five N three, excuse me, and variation 02. So let's keep the
name to building 01 because when we import
them in unreal engine, alphabetically, they are
appearing one after another. And when we wanted to
create new variations, it could be done
with a single click. So later we're going
to understand. So now, let me take that. I'm going to take all
of these Link selected. And first, let's bring something here to guess the dimensions. So it's going to
be five by three. And let me take these. And then we could
easily just take these ones and
bring them to here. Okay, so easily just
one variation created. So in order to make
even more variation in this particular one, I'm going to separate by loose parts and then bring the pivot of
these to the center, rotate and rotate in
this direction as well. Okay. And then just take some random planks and
rotate them 90 degrees. And do not worry later.
We'll return back and try to create more variations
with them as well. So now I'm going to take
all of these, Control J. Let's take this one as the active object so that
the pivot isn't here. I didn't change the pivot
of this particular mesh. So the name should be changed. Okay? Now, it should
be in done folder. Let me duplicate one mesh. I'm going to bring that
to the building 02. This is only for testing later. We will fix issues
if existed. Okay. And in here, we have 6 meters
worth of geometry that we're going to create.
So let me take that. I'm just going to bring it over to the side so that we know that this one is a
variation of this building. Okay? Now we have 6
meters worth of geometry. Let me just retest that. Okay, it's 6 meters. So we need to create couple of three by three meshes
for this part. And then the top
piece is going to be, I believe, 4 meters by 3 meters. So let me reuse from these
three by three meshes. Okay. I'm going to just take
that and try to duplicate. Let me rename that
to variation two. No. It's the fourth variation
from that building. Okay, and then let's
bring this one. It's going to be three by three. Okay? We could already
reuse this and place it here or we could make
some changes to. So let's explode the mesh
again by loose parts. And I'm going to take this one, bring that somewhere else, bring the pivot to the center. And then some of these could
be rotated 90 degrees. Okay, change a bit of
information in here. So now, these are
going to be joined. Let me bring that back to here, and then to cursor. So let me bring that to here. And then I could
easily just duplicate, bring it over to here, place it in the
building 02 folder, and rotate that along
Z by 90 degrees. Okay. One half of this building, the first floor is created. So now for the second one, we could easily just take
that, bring it over to here, and then just carve a window like we have
been carving already. So now let's rotate
that 90 degrees. Oh, let's decide on the
scale of the window. I'm just going to bring a
cube and place it here. Okay, looks like
this one is okay. Set it too fast so that it removes those problems and
then take that and remove. So now we could bring these meshes and let me re
scale them just like the same. And then we will rescale them
just like the same again. And then it's very easy to create so complicated measures that would have taken
so much time to create without the kid bashing. So this kid bashing part is so important in
creating good geometry. You see, without that,
if you wanted to create every building
just like special. It would take a lot of time. But using kit bashing, although it might take
a bit repetitive, but it's going to
be a good practice. And later that we finished
creating these buildings, we will go and try to add
variations to them as well. And that variation is so important in order to
make a believable result. Okay, let me scale that. And just a bit of shape change to make that
more varied and grounded. So this is going to
be the active object. And then let me see what
is the name of this. I'm just going to call
this wall window. Okay. Now it's going to be
the second variation. Let me just copy the name because I want
to bring that to here. Is going to be the
first variation. So let's make sure that
this is in that folder, bring it here, and
then I'm going to place this copy
in the building too, bring that to here, rotate
90 degrees and let's test In real engine, this is going to be
snapped to the grid. Right now we're not
using the snap mode, so it's going to take a bit
longer to just join these. But you already see that we're going to create
a good result. Okay? Now, for
this part as well, we could just take these two and rotate 90
degrees if you want it or you could just take this one and delete
reuse geometry from here, rotate 90 degrees to
use the other side, bring it here, and you see there is a bit
of butterfly effect. But it's not going to
be that noticeable. Okay? See how easily
we were able to create the first side
of the building. So now, looks like here
needs geometry as well. So we could take that and
easily try to reuse that here. But we could also just make variations that later
we're going to create. Okay? Now we're left with the
top part of the building, which we're going to
create in the next lesson. Okay, I'm going to pause and
see you in the next one.
17. Variation For Existing Kits: Okay, everybody. Now we are continuing to create meshes for
the second building. Now I'm going to
select some edges from this building to
gets the height of that. So let me separate by selection. It's 3 meters again. So we need to create
measures that have 3 meters of height plus
6 meters of length. Okay. Now, let's reuse from
what we have already created, I'm going to take these two, bring them to the center. And then I could easily just take this and
rotate it 90 degrees. And then for this plane, let's go for the same
dimensions and you see it's going to be right. Okay? Now, very easily, I'm just
going to explode these bring the pivot to the
center and then try to offset the meshes from each plank to make them look a bit more varied and not that repetitive looking. I could even create variations
in the height of the kits. For example, you could bring one here and just create different variations
in the height as well. Plus the variations that
we're going to create later when we import these to engine and see where
it needs to be changed. Now I'm going to take this one, Control J to join, and then the pivot
because the pivot is already in the center, let's bring that to cursor. And then I'm going
to rename this wall. And then let me just take that and test it to see what happens. Just take a copy. And then it's time
to place that here. And of course, we could
create a window as well. So let's carve that window
by creating one variation. Okay, you already know how
we are going to create that. We're going to bring in a cube. And then scale that cube to find the dimensions
that we like for the window to be carved
and then Holly and that. Fast, apply, let's bring some of these and I'm going to just
scale them so that they are more like cube
instead of rectangle, more like a square, excuse me. Okay. Now let's bring
another one as well. If you wanted to create
these meshes just uniquely, it would have taken
a lot of time. But since we have created kits, and these kits are
already great and fine we could just
take these kits, duplicate them around,
and create new geometry with Let's rotate that. Let's create a simple
frame for that as well. Let's apply everything and
check for face orientations. It's good now. So simple measures to carve that window. Okay? I'm taking everything, this
one as the active object, and this is going to be
the second variation. A and let me place that here. Okay. And then I'm going
to duplicate to test it. Of course, we could
use this one here. There's not actually a problem
if we use that one here. And then we could
bring this to here and Let me use that. Okay. Now you see, we have
created that part as well. So now there are
just a few meshes remaining from the
second building kit. And then after that, we will go for other buildings as well. And for texture, I believe we could go for something like more lighter and more
older basically. Okay? And then in
here, let me see. We have a five by three
mesh as well to be created. So a let me bring that to here. And you can see that
already we could use this one in here
with no problem. You see, there is no
repetition as well. If that was a repetition, you could rotate that and use the other site because
we have created them in a way that the other variation is
available as well. So let me bring that one here. And you see, it's the great thing about
modularity that you're able to create meshes so fast
using this technique. Okay. Now for this side, let me take that mesh. Ship the duplicate. And the dimensions are
five by three as well. So let me bring that to this
to here. This is the pivot. I'm going to bring
that there. And then we could reuse from
that geometry to here. So again, let's rotate that And then I'm going to just
place that, like here. Let me select all of
the faces and extrude. Okay. So again, I'm taking
these meshes, these pass, excuse me, and then out
E extrude by normals. But before that,
let's join these. Then I'm going to create
new mesh from this. Extrude, right click,
and then scale. It doesn't matter if that
is off because by the way, it's going to be deleted. Okay. And then I'm going
to take this part, remove, and just create faces here. Okay. Let's correct the normals. And let's go for Boolean
to see what happens. So this one needs a
bit of manipulation. So but before that,
these need to be joined. Just take and apply Okay, now the measures are the same. Okay? Now, take that mesh control minus and
set that to fast. Okay? It has created
a good result, but with a bit of cleanup
that we need to do, okay? Apply And then
this one, as well. Let's try to take
these and remove. And because the rest of the
geometry is going to be hidden behind the borders, we're not going to
care about that. Let's take the geometry, P separate by selection. Now this is going to be deleted. Okay. Let's bring
the pivot to cursor, which is in the
center of the world, and I'm going to test Okay. Okay, now you see
it's working right. And I could easily just
copy that to here. And now this building
is done as well. Easily and fast. Of course, without the roof that we are going
to create later. And whenever we create the roof, we duplicate them to here. Create another type of shadow catcher and it's not going to be like these
just using planks. I'm going to create them using these roof shingles that
we're going to create later. Let me take this
one and place it here let me take the
name from this one. It's going to be the
variation too. Perfect. Now they're okay, except for the variations that
we're going to create later. Okay? A couple of
buildings created. Now it's time to go bring the rest of the buildings
to create, basically. Now I'm going for the
rest of the buildings. I'm not going for the
third one because we're going to start with these that have similar geometry to these. And then when we
just created these, we will return back
for this one which has a different dimension
than these buildings. Okay, let me take this one copy and then paste it in here. So it's going to be
something like this, but with a bit of more variation
in creating extra barn. Oh, we are in material mode. Let's create a new
collection for this, and it's going to be building
04 because the building 03 is already skipped
for last stages. So that's going to be
building 05, excuse me. Now, now, the great advantage that we get from using
modularity is that, for example, this building is somehow a variation
of this building. So it means that
if we take these, I'm able to bring them
here and easily fit them into the blockout
of this building. And it means that it's
really easy to use the modularity to create
different buildings. But for now, we're
creating raw kits, and later we will return
and create a lot of variations for these so that the modularity doesn't
get repetitive, which is a major problem
when making modular kits. So now we have a barn in here, which we need to take care of. So now, let me take these faces. I'm going to copy
and then paste them, excuse me, separate
them by selection, and I'm going to
bring them here. So let's bring the
pivot to here again. Okay? Now we have
this geometry to fit. And we're going to reuse
the kits that we have been creating so
far to create that. So I'm going to bring this
one and maybe this one. I'm just going to copy
and bring them here. And then it's very easy. To reuse geometry. I'm just saying that this is
the first level of geometry. Later, we will go and create more sophisticated
geometry for these. This is only for the first
level of modularity. So again, I'm going to separate
them and bring the pivot to the center, now
deleting everything. Okay. Now, just select some of them rotate 180 degrees there. And let me take
this one as well. But I'm going to scale
this up because I want the lengths to be
the same scale. Okay? Let's go for three, and I'm not going
to create something for this because
it's going to attach to this building
and the walls of this building are going
to act like a wall, but I'm going to rotate
them and use them here. So Then I'm going to take these and separate by selection. And then the other side
of the wall is going to be using these Okay. Now there are some extra planks that we could easily delete. And then we're left with boolean delete the geometry that we do not want
from this. Okay? Let me select all of them Let me join these. Okay, now the pivot is in here, let's check for
face orientation. Perfect. And then I'm going to bring that and create
a Boolean mesh from this. First, let's make sure that
the vertices are welded, which they are Okay, I'm just going to copy these
separate by selection, and go back to where we were. Okay? This is it.
Now in edit mode, I'm going to make a
geometry from this. So let me select all of them. Okay. And then I'm selecting all of the pass extrude by normals. Let's go to the other direction. But I see that these need to be scaled in Z to flatten them because I don't want these
to be flattened. Scale Z. No, not. Like that, let's go for
a solidified modifier. See if that helps set
the mode to complex. Okay, this is better. Okay. Now, I could easily
take these and scale them So first, let me
select these faces. And then I could
just select these, remove. And then bridge. Go to Loop tools bridge
to create a mesh to cut. Here, okay? And if you do not
find loop tools, you want to go to
preferences, add ons. And then search for loop
tools and activate it. It's right click menu that
you can find and use. Okay, Loop Tools Bridge. So there's a problem. Let's see what is
causing that problem. There should be a
normal problem, no. So just extrude and
bring it to here. So let's activate
snap to vertex, okay? And then extrude to here. Perfect. Now we want to merge by distance and use this
one as the Boolean. So I'm selecting that plus
this one Control minus. Let it calculate fast.
Oh, let's do something. I'm going to remove everything and go for easier calculations so that we get a better boolean. So I'm going to select these runt meshes and
separate by selection, okay? Nowadays are separated. Now let's do something.
I'm going to take this edge and separate
by selection. I'm going to create
geometry from that. Okay. And then I'm
going to take this one, this face and these
as the active object. So let's set the faces to
face the other way around So let's do something. I'm going to take this face and extrude upwards. Okay. Now, you see the boolean
has been created easily. So let's set that exact. Okay. And then apply a boolean
and remove those parts. And there are some
parts that are left, which we could easily delete. So take these vertices
and dissolve them, and this should be good to go. Okay. Now, these easily
could be scaled. To create that part.
Okay, then join. Now these parts that
are problematic, they could easily be fixed when we place them here
because you see there's a roof in here that
nobody is going to see and nobody's going to see
what is going on in here. So let me delete that. And then I'm going to take the naming
convention from there. It's going to be born 01. And let's remove the scale. And I'm going to place it
in the finished folder. Duplicate one and use
on building five. Okay. You see how
easily we were able to create meshes using
this process. And for the rest of the kids, I'm not going to create anything for this building
because we could easily reuse these on this
building and get away with it. And, of course, we will create variations
for those kits as well. For example, we
might take this one and just go and create
some variation, including breaking the planks, maybe deforming the shapes because we have
quad mesh in here, and deformation is going to
be supported very easily. For example, let me
bring in simple deform. And you see because the squad is going to deform very well. And we have the possibility to have that deformation
applied to our messes. Okay? Now, I could call this
building finished, and let's bring that there. And it's time to bring
another building. And then here's
another building Okay. And you see this is more
or less similar to this. They are the same building, except for the fact that the barn has been
rotated to this side. So again, we could reuse the same barn or create
variations for it. Okay? This one is
going to be called done because later
we're going to reuse these geometry pieces
on these ones as well. And I just told you that
whenever you create some kits, for modularity later, it's going to be much easier to create variations
because you have kids, and then you can easily
just change them, make variations, and so on
to create more variation. Okay. Now it's time to bring
the building number three, which was the biggest building and this needs its own kit. It's different to
these four buildings that we have created
because it's different in dimensions
and it needs different scales of modularity. Okay, here they are. And let's check for the dimensions
of the building. B by selection, and
then This one as well. See, this one is 9 meters
worth of geometry in heights. Of course, for the
normal measures which are without the attic mesh
that we're going to add, it's going to be 7 meters. So it's going to be 7 meters
worth of geometry plus the attic mesh that we
are going to create and then 10 meters in here. So the dimensions
of this building are quite different to what we have already on
these four buildings. So I'm going to pause
and in the next lesson, we're going to tackle this
building. Okay? See you there.
18. Finishing The First Level: Okay, now we have the last building that
needs to be created, and we need to still
more once more check the dimensions
to see how they are. Okay? And then I'm
going to separate that. So it's going to be 7 meters tall and then 10 meters
and 8 meters in this side. Okay? Now, we could
reuse the same kits. Let me take one of the three by three pieces,
for example, this one. I'm going to take this, duplicate, bring
it over to here, and then I'm going to rename
the wall to four by four. And then we could simply take the dimensions or
let's do something. I'm going to three by
three by 0.50 0.05. So let's times this one by two. So it's not working
four by four. And then this one,
let's go for point No, let's go for 0.3. Okay. Now we could place that and then test it here to see if that is
working correctly or not. Okay, it's going to be rotated
along Z by 90 degrees. And then for
completing the part, we need another mesh. So let's do something. Instead of four by four, let's go five by five
or five by four. Okay. Now, if we go for
the same scale, we are able to create
a tiling mesh with that in 45 by four
mesh, excuse me. And then we could keep the
same four by four mesh as well because it's going to
be good for this area. Because in here, if we duplicate it and use
it here, you see, it's going to be a good result. Okay, I'm going to
bring this one back. And then I'm going to rename
this to four by five. And then this one
is going to be the four by four as well. Of course, later, we will
create variations as well. So let me duplicate
that and use it there. And let's use this one here. Okay. Now, let's do something. Here we have windows
that we need to tackle. So let me take these two. They should be in
the finished folder. And now let's go see
what we have here. So the scale of here is
exactly the same as this one. So it's going to
be eight by four. So we could create
one special mesh or we could create modular, for example, one in here, one in here, and one for Window. So I'm going to create a
special mesh for that part. You know, modularity is okay, but sometimes you
could just get away with using special
meshes as well. So because I'm going
to use that like so Let's just duplicate that. And then I'm going to join these two measures
first and then separate by loose
parts so that we get every chunk
individually placed. So now it's time to create
a bit of variation. Okay, something to
hide that repetition. Okay? I'm going to
take this one now, join because I didn't change
the pivot on this one. So let's do something first. I'm going to rename
this eight by four. And now if I duplicate it and
bring it to here, you see, we have a mesh that is correctly
getting placed in here. Okay? Now let's do something. I'm going to instead of
Shift D to duplicate it, I'm going to press Alt D
to create an instance. So now, just see what happens. If I change something
about the original mesh, for example, in this one, it's going to be represented
in here as well. If you just duplicate
with Alt D. Okay. Now, let's bring the
wire frame to see how we are working and I'm going to take the mesh and remove you see it gets
represented there as well. And now it's our
choice to see if we want these planks to be
vertical or horizontal. Let's bring them back. I'm going to remove these only. Okay. Now, it looks like I like
the planks to be vertical. Horizontal, excuse me. Okay. Now let's place them
exactly on the ground. And now if I take a couple of these measures,
duplicate and rotate, again rotate in
different directions to get the best
variation possible. I could bring it here. So it looks like there's
something wrong. So let's select everything. Okay, now the problem is fixed. And I'm taking these measures
randomly and placing them Like, so yes. Okay. Now we have
vertical, excuse me, horizontal geometry in
here and vertical in here. So it's going to be good
for variations as well. So now for carving the window, I'm going to bring in a cube. And you already
know the workflow, we're going to bring in a cube, apply all of the directions, and bring the same
one in here as well. So now let's join these. Okay. And then take these ones, Control minus, set
the mode to fast, and then apply Okay. Now we could take
that one and remove. So it looks like it hasn't
applied on the instance. So it doesn't matter. We're going to still
bring that here. And then let me bring some of these planks because I want to create the
frame for the door. Take these two, and this
one If I press Alt B, I'm able to instance
that and use that here. Okay? Now we have the frame
for the door as well. So we could also
create the frame for the window because
you see in here, there's a bit of
problematic result that we need to fix. Okay? Let me bring these and
I'm going to rescale them and then create something
like a window frame. And then it needs a
bit of rescaling. Let me copy that here as
well because that is the same in terms of
height and scale. So rotate Then I'm going to take these
two and rotate as well so that they don't
look repetitive at all. I'm going to take all
of these measures and this one active
object control J, and you see all of the changes have been
represented here. Perfect. Now, this one is going
to be wall eight by four. Now let me bring that back. And in here as well, we could simply duplicate
these meshes to here. Okay. Now for this part as well, we could create a
special mesh like so and create the window frames and those kinds of meshes that we have
been creating so far. Or we could do something. Let me do a bit of scaling. So if I scale now we have more room for
this part to be created. Okay? Now, looks like we need
five by three meshes. So now let's go search for those five by three meshes which we should have, okay? These are types of five by three meshes that
we have created already. And it means that if I take
this one, for example, and bring it here, rotate. And place it here. You see, we are able to not only create different
variations. But also, we're able
to save a lot of time and reuse what we have
been creating so far. And we will place a
window in here as well. Okay. Now let's do something. I'm going to keep that here. And let's scale this one
or let's rotate because if you scale if I scale
alongside Y by negative one, we're getting
duplication of that. But that is going to be a bit problematic because it's going to change the phase normals. If I apply scale, you see, the phase normals
are actually wrong. So you need to go and
reapply your phase normals. Okay? Now let's do something. I'm going to take the smsh and duplicate separate by selection and return back. And now we only need to
take these two and join. And then we could delete these So let's do something. I'm going to take
these and extrude a bit because I'm going to
keep that form and shape. So now we have created a
silhouette for that building. Let's do something. I'm going to bring the pivot in the center and let me bring that to the
center of the world again. Rotate that 90 degrees and I
want the pivot to be here. Okay? Now I'm going
to reuse from these meshes to
create our attic. Okay, let's just
bring that there. And I'm going to
rotate 90 degrees. Now, now let's do something. I'm going to expand the
borders of the Boolean mesh. Okay. That's it. So let's expand these sides as well. Scale by zero and extrude
these ones as well. So let's do something. I'm going to bring this one back, take everything extrude. Then I'm going to
take this one and this one as the Boolean object. Let's press fast, and
now I'm going to take these faces Let's bridge. Okay. Now we see if we
get that part back. It was a quick tip
to go for Boolean, extend the borders, and then remove what you do not
want from that boolean. So if I expand that So we could select these faces that
are not going to be used. Let me control Z go back, and I'm going to
remove that phase. And let's bring this
phase exactly to here. Okay? And then merge the vertices So let's now, you know what? This is going to be
too problematic. No, I'm going to apply a Boolean and then
take this one delete, and then these unnecessary geometry parts are
going to be deleted. Okay. Now let's do something. I'm going to test it here and see if that is
working or not. Okay, perfect. Now it's working. So now let
me bring the Pivot to here. And then let me see the name. It's going to be attic 03, I believe, it should be. Just rename test, attic
03 is going to be right. So let me place that in
the finished folder. And now we could
simply duplicate that there and reuse the
same geometry in here. Okay. Now the first part of
modular creation is done. After this, we're going to
import these to unreal engine, test them there, and
maybe if we need it, we go and create a lot of variations because
now the kids are raw. They are not actually
having a lot of variation. They're only created by the same woods and same
planks and basically, you know what it means. So we're going to create a lot of variations on
these to make sure that they have the maximum amount of variation. It's
going to be the same. You are going to go for
simple polygon modeling, simple maneuvers to create that, but it's going to be good one. Okay. See you in the next one where we export these and test them there and maybe create new kits as
well if we need it. Okay, see you there.
19. Export Modular Kits To Ue5: Okay, now we have created enough modular
kits to be able to start, keep pahing in the
Unreal engine itself. Now I'm going to use BTX. So here's the plugin
that we're going to use for exporting
directly to Unreal. The great thing
is that no matter where you place your
object in the world, if you activate the
Cena transform, first, it's going to bring that to the center of the
world, export it, and then just put it back
on its default location. And then apply transform
as well as going to be applying any
transform values. For example, if your
rotation is off or if your scale is
off by something, first, it's going
to apply them and then export them so that
you do not get any errors. And then another one, which might be disabled later is one material ID because these measures for now
have one material ID only. For example, the
underscore Wood kit. So this one later, for example, when we add rope material or
if we add something else, it's going to be good for disabling this one
because if you enable it, it's going to bake them all
into a single material, which is not going to be okay. So Batex I've provided
the link to download. It's free, and you can
find it in the blender add ons list And here it is BTX. All of these are free and you do not need to pay anything. You just download
it and installed, and it's just one click solution to export your
messages to Unreal engine. So now, one important note is to define one export folder for all of these because
that is important. Your location that you
export, plus your pivot, plus the naming convention, plus the material
needs to be the same. Because, for example, if
you just change the pivot to the center and re
export that back, it's going to change
the location in the world in the game engine. Okay? Now I'm going
to select a folder. There's a final folder there. I'm going to accept. And then it's important
to keep this folder, plus the pivot, plus
the naming convention, plus the material
the same. Okay? Now I'm going to select all
of them, and then export. So here's the results. We get all of these exported and you do not want
to change the name at all. Because now let's say that if I change something
about the mesh, for example, remove a plank or something or do any change. If I want to reflect the
change inside on real engine, we need to make sure that
the naming is the same. Because if the naming changes, for example, this is going
to export a new file. So we want to export on the same file to make
the process iterative. Okay? After a long time
back in Weal Engine, let me go to my meshes folder, and then in here,
I'm going to import. And here's my folder. I'm going to select
all of them open. Now for importing them, I want to make sure that they are converted to nanite because they are heavy on the amount
of polygons that they have. Let me bring statics. You see now, we have
lots of polygons. Even the kits themselves
are close to million. So we want to make sure
that they are naniteT make the geometry work with Nate. And then in here, there's one option that you want to disable because
we are going to use lumen. We want to disable
generate light map Ubis because by default, it generates a light
map UBI for you for baking or if you want
to bake your lighting. But since we're going to
use real time lighting, it's going to be better
to disable them. Plus later, we're
adding extra level of dirt and some other effects
on the measures we're going to create secondary UV maps in blender to generate dirt based
on the second UV channel. So we want to disable that. Okay. Other than
that, it's okay. Import all. Okay. Now
they're all imported. And depending on your workflow, if you want to have the
fault material setup, you can use it. Or if you want to
disable that material, you can as well by
bringing simple color, for example, a vector,
change that to white or whatever value that
you want, and then apply. But since we want to see a bit of the color applied
in the scene, I'm going to let the
material be there. Okay. Now, let's do something. We have options, for example, we could try to place
our results like this in the world
and try to hit bash with them. Okay, like this. But when way to work with
that is to use blueprints. And in those blueprints, we could manage buildings
a bit better because, for example, you see,
we have five buildings, and these buildings are
just like the following. If we create a blueprint and manage everything
in that blueprint, we can then later easily
just take that and copy that over into another location
in the world very easily. And one more added benefit
is that we could use instance measures in blueprint which helps optimization
a bit better. So now, let's start to work with Building 01. So
let's do something. I'm going to go to my meshes
folder, save everything, and then create a new
folder and I'm going to call it modular buildings. Okay. Now I'm going to create
a blueprint class. It's going to be a simple actor, and then I'm going to call it
BP underscore building 01. Or modular building 01. Now, let me open the blueprint. And in here, you
see we have nothing because we haven't
added anything. So now, in order to test to see what we
are talking about, I'm going to bring static
mesh and add the menu. And when you are
in the viewport, just go for static mesh. You see in here we
have static mesh, which is the normal static mesh. We have instanced static mesh, and we have hierarchical
static mesh. What is the difference and what is the
benefit of using each? Static mesh is the
normal static mesh, just like placing one
static mesh in the world. Stance static mesh is
a bit more optimized, especially for modular workflows when you have to copy one mesh hundreds of times or
tens of thousands of times in a single level. It causes druuhaols to
be dramatically reduced, and it will produce
better results. And hierarchical, static mesh
is for the same purpose. But if you have a huge
level when you want to reduce the quality of meshes when you are
far away from them, hierarchical and
static mesh is good. But since in here, the
level is relatively small, we are going to be good using
the instanced static mesh. So now let's go bring the
instanced static mesh. Now you see we do
not get anything because we haven't
spawned anything here. So for static mesh, let me go select the building 01 Okay, it's static Mach
test building 01, and we're not seeing
anything because we need to create
instances from that. So just scroll down until you see instances
and then click this plus icon and you see one instance of that
building being placed there. So you want to compile. So now I'm starting to
use this building here. So because we know that this
one is the test building 01, we're going to replace
this with this one. So we could right click on that, replace actor and replace
it with this one. Or if you are not seeing this one because we have
recently selected that, you could just search for
BP Let me copy the name. Okay. Just go select
this and right click. And it's going to
replace the same here. Now, if we go to outliner, we are seeing that we
have one static mesh. Unfortunately, it
didn't change the name. So let me take that name
and copy that name here. So now you see that we
have one building in here that is replaced exactly
on top of the previous one. And the benefit of this
one is that if we go to blueprint and add
something to this one. Let's say that we add let me
first take that instance, take that blueprint, and try to instance a couple of
times in the world. So if I go and add static mesh, let's add an estatic mesh here. Okay. Now, let me bring one of those static meshes
that we added. So I'm going to select this one static
modular building, or you can drag it there, and I'm going to add one
instance and make sure that your snap mode is
activate and set to 100 because these meshes
are created in meters. So you could go for okay. You could go for 50
centimeters or 1 meter. Both of them work. So now
if I go in the world, everywhere that I have the mesh, it's going to be
instanced in the world. And a great benefit is that
because it's instance meshed, it's going to be
much much easier to manage for optimizing. Okay. And another benefit is that
later we could duplicate this blueprint completely and create other variations
with it as well. Okay? Now I'm going to start
creating the blueprints, just like what we
did in Blender, and I'm going to constantly
switch forth between blender and unreal to see which measures we
need to place here. For example, in here, if I bring blender, we see that we need static mesh modular building
one wall, zero, three, 12. Okay? We need to find this name. Or you could simply rename that mesh and find it or
copy the name, excuse me. And then in unreal engine, just select and let's say
that we want to go here, paste the name Okay. That is because we need
to remove that naming. Okay? It's here. Okay, it looks like
there's a problem, and that is because I
think I didn't copy this. It should be five by three mesh. So let me compare them. Okay? These are the same mesh. Okay? Sometimes it happens. So I need to select this
mesh, copy the name. And then in Andrea engine, take that and replace it. Okay? Now you see we
have placed this here. If I compile and save
you see that has been instanced all over the world wherever
we have used data. And it's going to be
good because it keeps a collection that we
can edit at every time. And whenever we
add new measures, for example, in future, when we go try to
create these shingles, we will simply add those
shingles into this collection, and it's going to be instanced wherever we have used data. Okay? Now, I think there are more places
where we have used that. Let me find that it's
exactly the same thing. Shift E. Okay? I just selects every instance of that mesh that you
have in the scene. Okay, I'm going
to just go there, replace it with a static mesh with the blueprint that we have. And you see whenever
we change it, it's going to be there. And one more added benefit
is that if we select this mesh, I mean, the blueprint let me find the corresponding
blueprint for that. Okay? It's here. Now, we could go and expand that collection and
change something about this one without changing
anything about others. You see, now it's
stayed in place, this one, as well, but
this one has changed. And another great
benefit is that we could change one instance independent
on other instances. Okay? Now I'm going
to start kit bashing and so you see whenever we try to change
something about this building, it's going to be instanced at three times in the
building in the viewport. Excuse me. Okay? Now,
let's do something. I'm going to spawn the mesh
for this shadow catcher. Of course, it's a good practice to rename these in here as well, WaldorO this one would be
Let me place that there. Okay. Now let's call
this one pivot. So later when we were done with placing all
of these instances, we could simply go and try
to delete that instance. And then that mesh as
well, would be removed. But for now, we need that to be a placeholder so
that we know what we are going to place
on these areas. Okay, now let's do something. I'm going to we could
also duplicate this and try to place somewhere else. If we wanted to, for example, try to place it here
with no problem, and we could also replace it
with other meshes as well. So let's say that we want to replace it with
one of these meshes. Of course, this is
for another building, but we could also
try to rescale that, and use it like this. But I'm going to
work a bit cleaner. Okay. Now, let's bring
that shadow catcher. So the name should be
shadow catcher 01. Of course, we want to
remove this naming that is caused by repeating
too much in blender. You see if I now select this, you see it has changed
to 02. This is 01. So this is the naming
in blender that we need to remove to get our instance
correctly in blender. Okay? Again, I'm going to
add instanced static mesh, let me just paste
the name there. And then I'm going
to select that, and you see we need
to bring that here. So of course, we need
to add one instance. And then it's just like
creating lego pieces. Don't let me scale, but
it's going to be locally. Now, let's just leave that we. Later, if we want it, we could
return back and change it. Okay? Compile and save and you see that shadow catcher
has been applied as well. So this is a powerful method for creating modular buildings. It keeps the results
more manageable, and it can also create
a lot of changes there. So now let's create
this top side, and it's called
wall five by 201. So let's do something. I'm going to copy or duplicate that because it has already
created one instance, and we do not need to return
and activate one instance. Now let's rename it to the one that we wanted and remove that naming that
was caused by blender. And then I could easily
bring that up top. Okay. Now compile and save. First later, we will add much more complexity
in these meshes. Now we see it as
applied on all of them. So now let's talk about
this workflow a bit more, and that is, if I
take this mesh, I mean the mesh that
we have exported to blender to Unreal engine, excuse me, let me find it. Okay, it's in here. So now let's say that we changed something
about this mesh, like taking this plank
and rotating that a bid. Okay? Now we need to only
select that and export. And you only need to
find that instance in the content browser reimport and that is going to reflect that change on all
of the instances. And you see that plank being changed on all
of the instances. And this is another
benefit of this workflow. And now that I'm thinking, I'm not so happy with the
color of these wood planks. Later, we will go and create a tiling wood material to
be applied on all of these. Of course, we're going
to keep the Bake data, including the normal map
and things like that. Okay. Now we need
that attic mesh. So let me go in here and see
where that attic mesh is. So it's attic 01. So let me copy the name except for that extra naming that
was caused by blender. And then I'm going
to duplicate that, paste that name, and then
I'm going to find it here. And you see, it's going to be replaced there
completely perfectly. Compile and save, and you see that change being applied
on all over the world. Okay? You see now
this process is very powerful and creating
a lot of good results. And it's optimized as well. So let me expand the naming so that we see
that name a bit better. So now let's talk
about benefits. If I take this instance, you see that it's in
here, we duplicate it. Now we could easily try to bring that back here
and use it here. Okay? With no problem. Compile and save
and let's go see. Change is reflected all over. And of course, this
is not the end of it. Later, we will add a lot
of variations to this. Okay. Now let's go and add other modular
pieces here as well. So now we have these side
kits that we need to place. So let me find it and
just copy the name. And then easily
let me find Okay, let's duplicate this one. And then just paste the name because that is going
to be the best way. And we need to bring that, okay. Now we see we have
that kit ready to be placed Okay, 90 degrees. And now we have another kit that needs to be placed,
which is this one. And then I'm just removing that unnecessary
naming convention and then duplicate
this once more. And then in here from the kits. Okay, it looks like
we need another one. So I believe it should
be wall window. Okay, here's the kit. Of course later, we will fix these areas,
but do not worry. It's going to look right. So now let's see
what we have here. Now we have an entire kit
that covers this part. So let's go find
Okay. It's a wall. We just copied the name, and I'm going to duplicate that, paste the name here, and then easily just paste
the name here to bring that. Okay. And here is so fast
that we can try to bring in different meshes and
try to place them and try to world build
with these kits. Of course, later we
will add pillars, these shadow catchers,
and all kinds of results. Do not worry. So let's
see what we have here. On this side, again, we have
a duplicate of the same kit. And then we have these two kits that are placed interchangeably. So we do not need
to bring new kits. We only need to take
these and duplicate Okay. And now, these two as
well need to be duplicated. Bring one in here. And because these are created
using the grid, they're perfectly
snapping to the grid with no problem. Okay? Now this side of the
building is created as well. Now let's go for this side, which I think we could take
this and duplicate it over. So let me see. Again,
it's exactly that kit. So again, I'm going to duplicate that and try to use it here. So for this one as well, it looks like we need
another kit to be placed. So it's going to be
wall five by three. Okay? Let me duplicate this
then take the name five by three then easily try to bring that. So now, let's take a look and see it has been copied over to any instance that
we have in the world. And let's take a
look. And there's one more shadow catcher
let me copy the name. And then in that blueprint,
let's copy here. Duplicate shadow
catcher number two. Rotate 90 degrees and
that should be okay. So there's a rotation
that needs to be changed. Let's go for five.
Okay? Not bad. So now let's do something. Let's try to remove
that instance. And you see here's
our results. Perfect. And you see it resembles
the shape of the house. Of course, since it's
using only one color, it's not that great in representing the
shapes because later we will add a lot
of more details, so it's going to
look a lot better. So let's bring that pivot because I need that to
resemble these shapes. Okay. This was for the first
building that we created. In the next lessons,
we're going to create other buildings as well. And then after these, we will go for creating
the pathways and the deck and the connectors
using modularity as well. But for now, we need to create buildings to have a bare bone, and then on top of that, we will create a lot of details. Okay? See you in the next
lesson where we go for the second building and so
on. Okay? See you there.
20. Finishing Buildings In Ue5: Okay. Now we have the
first building created, and now it's time to go and start creating the
rest of the buildings. So let's take a look to see
what we have and here it is. So you see the
first building and the second building
that we're going to create are basically the same, but with a little
bit of difference. For example, this one, the Attic mesh is a bit
bigger than the previous one, and some minor
changes like having these shadow catchers that later we're going to create
by these shingles. We already know
that when we were creating this when we
created the first building, we took that as a base for our rest of the pieces
except for the smarket mesh. Okay? Now you see because these
are identically the same, I could easily just
duplicate the blueprint in real engine and just swap some of the meshes
so that we create it. For example, you see, in here, the first module that we used was Wall three
by three number one. But in here, the module that we used is Wall three by
three number four. So easily you could swap meshes by just one click using this
method for fast iteration. And later when we
wanted to try to create more variations for these kits, including,
for example, creating extra details and
meshes on these meshes, it would just easily be reflected in real
engine in just one click. So now, because we're
going to be a bit faster, I'm going to right click
and duplicate that. Okay. And then I'm just going
to call it building 02, which is already done. So now in Viewport, we are seeing the same building, but now I'm going to select that and from test Building 01, I'm going to select
test building 02, and you see it's working right, but we need to take
this one delete. This one is a lot easier than creating the
blueprint from scratch. Okay, now it looks like this one is not that useful again. So we need to swap
some of these measures so that they work
perfectly on our results. Okay. Now I'm going
to compile and save. Now let's do something.
I'm going to select all of the instances of
the second building. You say it's static
mesh test building 02, Shift E to select all of them, and you see they're
all represented here. So let me right
click Replace with selected and you see very
easily with one click, it's reflected there and
we're seeing those measures being changed on our result
with just one click. I just previously said that when you create
the first one, the other ones are going to
be so much easier to create. Okay? Now, just selecting some of these and
trying to swap them. So you see, we were using Wall
three by three number one, but now I'm going to change it to wall three by
three, number four. Okay, let me find it. And now you see this is Wall
three by three number four. That's very easy. So now we could select
these ones as well. Let's go to Blender and
see where that window is. It's the same
window as this one. These two are basically
the same measures, but no, it's not the same. Let me return back. This
is our test building two, and this is our other window. So now this is Window two, and this one is window wall. Let me find it. There
Okay, it's this one. Window wall three by
three number one. So I could easily just
select the name and try to find that
instance and replace it. Okay. And this will make
sense when we later try to replace these meshes
with other instances. It's going to be much,
much better to use this method because it's a lot easier for
creating variations. Okay? Again, blender. Let me find the mesh that
we wanted for the side. Okay? It's wall three
by three number four, and this one again, wall
three by three number four. But I think that we could let me take that well three
by three number four. Okay? And then we could take that one and let
me take the mesh, Control D to duplicate it. And I could rotate that 90 degrees and bring it
here for a bit of variation, so that it's not too identical because this is the same mesh. Okay? Now we want it to
swap this. Let's go see. Okay. We created an entire
new kit for that, and that is wall six by three. So Okay. Easily swapped and
in here as well. Let's see. It's another variation
of the same. So let me again select for that. Okay, now you see
we created that. But since the window is in here, I'm going to create a bit of
variation by just rotating that hundred and 90 degrees
and place that here. Okay. Let me compile and save, and the change is reflected
on all of the instances. So let's go and try to
change that attic mesh, and that is easy to find. Now it's replaced there and it could be
replaced here as well. So you see, creating
the second building was just using just a couple of clicks to create because we had the bare bone created
in the previous lessons, and now just creating the second building
was an easy task. So now let's go for the rest of the buildings because I
believe this one is finished, except for the attic mesh, the roof mesh, and these
shadow catchers plus the doors and some other
meshes that we create later. So now let's go for Blender and see where is the third building,
and that is this one. So I'm not going to change
this one yet because these are easier to create
because these are basically the variations
of the same building. Building number five
is a variation of building number one and building number four is a variation of
building number two, except for having
this extra barn mesh that we're going to replace. Then it's going to be very easy. I'm going to copy
the building 01 to create the building 05. Okay, let me duplicate, and then I'm going to
name that building 05. And then that's
going to be easy. All we need to do is
spawning the barn mesh here. So let me take that one, duplicate, and let me select the barn because
I need the name. And then I'm going to
paste that name here. Okay. Now, this one as well, is going to be created later. Now I could officially
call that done. Compile and save. Now, I could select building 05 Okay. It's this one, shift and E. And then easily I
could right click replace with building
number five. Okay? This is how easy able to create variations
using this method. Okay, for the building
number four, as well, we are going to copy and I'm going to just
bring the barn mesh here. Of course, later, we will
create variations with that. Now, okay, we need
only one barn mesh. We might create
variations later, but for now, it's okay. So now let's bring the barn And then
select and done. Copy and save. So I think like the
barn mesh on building number four is on the side instead of being
in front of the building. So just very easy manipulation. Just take the barn mesh. Rotate 90 degrees and done. Compile and save. Now select the number
four, shift E, right click and replace it
with building number five. Okay, now you see very easily it populated
the scene with that, and you see how easy and fast is this method for creating
different buildings. Okay? Now, I think, one of the best parts
of this environment is this one because it's totally different to all
of the buildings. It's rotated in
another direction. It's just not following
the same grid, and it has totally
different structure. So now, let me copy
building 01 and call it 03, which is already done. And then I'm going to spawn
building number three there. Now, it's totally different. So we could take all of these. Now, I'm going to
leave one of them and delete the others. Okay, because I need to
spawn meshes on this one, because that is static mesh, instanced static mesh, and that's going to make
our job a lot easier. So let's do something. I'm
going to take this one and replace it with
building 03, okay? Now again, it's time to take the meshes and
replace them here. So let's see what we have here. And here we have static mesh
building wall four by four. Okay, we have the same wall four by four duplicated
twice in here. So let me select this one, and I'm going to select
wall four by four. But before that, we need to copy the name so that we could easily find it with
just one click. Okay, now, And then let me duplicate that. Looks like this is a wrong mesh. Okay? This is not a
four by four mesh. It's a four by five, okay? Let's go find it. And
it's four by five. Okay? It's this. Rotate 180 degrees
and bring that here. And so because we are
working based on geometry, even without adding a
shader or something, it looks great because we are
supporting the silhouette. Not much change because
it's hidden here. Let's go and find the next one
a wall door five by three. Let me copy the name.
Then just duplicate that Pi Pi three, now let's find it here. So this is not what we wanted. This is the front mesh that
we're going to use later. Okay, this is it. And now let's do something because when I'm
looking at here, you see the window
is in the center. So I'm going to duplicate ones. Then but rotate and use here. You see, there's a bit
of buffer zone in here, which we're going to
later cover with beams. Do not worry. It's an easy fix. Some changes. And let's bring the
attic mesh as well. So it's going to be
let me find it here. Attic 03, I believe
it should be. So duplicate and paste the So I think the rotation
should be changed. So let's see. Then we need
to rotate that a bit. And later we will
create beams here to cover that distance. Okay. And then it's obvious that we need to place
this one here as well. So let me duplicate Okay, now let's have
a look on our result. And it looks like we need to create the front
mesh as well. So just duplicate. And I'm going to find the mesh. Let me see the name, okay? Wall eight by four. I rename it to be able
to be found more easily. Okay, compile, save, and let's go for
the rest of the building. So let me see what we have here. I think we could find a mesh to cover
that distance. So we have a couple of four
by four walls for that side. So for now, let me
take these two. Duplicate There should be another one in here as well. Okay, now I could duplicate these two for now or duplicate this one instead. So Control D and
then bring it here. Control D once more, and then all you need to do is offsetting that mesh
to the other side. Compile and save. Now there's one more in here that we could
create using these two. Duplicate there's one more in here as well. And because we're using grid, it's very easy to
find their place. Let's replace them with four by four walls because
these are four by five. Okay, compile, save, and
you see the result so fast. Okay, now that side of the building is not going to
be seen in the composition. So if you have time, you could easily just take that mesh and create
new ones for yourself. But since it's not
going to be seen, I'm not going to care
that much about it. So let's do something. I'm
going to take the same mesh. And it looks like by using the same mesh
a couple of times. Now, let's rotate
the mesh instead. Okay. Now could use
this variation instead. So duplicate, bring
it over to here. Now, we created the buildings. I mean, the structure
of the buildings. This is going to be a
bare bone so that we could later add
details that we want. So it looks like there's
this one as well, which we could change. So right click change
with that, okay? You see now we created
a good composition. The buildings are
here and there are bare bones of what we're
going to create later. We just needed to place
them here to test the composition and see if that is going to work all right. So now that we found out that they're going
to work all right, from now on, we're going to
go and create these meshes, the port meshes
and the connectors to the island and some
more meshes, as well. So I'm going to pause
and see you later.
21. Creating The Platform: Okay, now that we have placed the buildings where
they should be, it's time to go and create the platforms for
those buildings. And I mean the measures
that we have placed here. And there are two methods
to go about them. Let me just expand this so that we have a bit of more place. One way is to create kits
for this one, as well. And let's try to just show that by bringing
some of these. Okay? Let's say that we create meshes like this and try to expand our world
with these kids. Okay, using a modular
method like this. Okay? It's going to be valid. But it limits our ability to
create more special pieces, for example, having
random twists in the object or
creating better results. So now I'm going to
take these measures, and first, I'm going
to try to expand them, to have a better
representable shape because I want to create
not only the platforms, but also we're going to create ladders that
connect, for example, this one to here so that we have a connected city overall. Okay? Now, let me bring this. I'm going to rescale these
to a more agreeable scale. Okay, let me bring that. And then in here, we will create beams to connect
that to water and then create ladder to connect
this platform to this one. Okay, let's take a
look at this one here. I'm doing this
because I'm going to create a special meshes
for these instead of going modular like these ones because I'm going to take
the dimensions, for example, 40 meters by 18 meters and
then create a ground there in blender and let me take
these and bring them back because we no longer need
these for now at list. And now I will create a mesh
let's create something, for example, let's say that
we go create 14 by 18 meters. Now we have this
mesh to be filled. We will have a lot
of freedom to create a special mesh using
this method instead of going modular and try to
repeat kits one after another. This is because I'm
just taking these and then trying to see
where actual scales are and then try to represent them in blender and then try
to create kits there. This is going to connect
this to the ground, but also we're going
to create a ladder that connects this
platform to this one. Now let's do something. We have a platform here and I could take this and
try to offset it a bit. Let me find it in
the content browser. In the world layout, excuse me, that is this one. I'm going to bring that here
so that it's realistic, not just lying on the ground. Okay? And then this one, and then this one.
We'll bring them back. Okay, we create one platform
here and let's do something. I'm going to delete that, and I'm going to expand
this platform twice. To create a ground so that
we could host these as well. Okay. Let me go here and see
we have a layering effect. We have a platform here that
is going to be connected using ladders that we will
create using wood and rope. And then it connects to here.
And let's do something. I'm going to take the
mesh. Let me see. Okay. And then I could bring
this one up like 2 meters. Okay, now 4 meters. Now after that, we will create a platform to be connected
to here as well. So let me just bring that back to a more reasonable scale. Okay, I just want
to be realistic. That is why I'm focusing so much on
delivering such a result. And after that, we could
take the same platform, bring it up, and create a
letter that connects to here. Okay? Let me find it in the content browser or in the world layout,
excuse me again. Then we could bring that
back and try to see the composition and then this will connect to
the ground as well. So now let's do something. I'm going to take one of these or let's take one
of these, okay? Now I'm going to duplicate, bring it over there to tell the message that
there's something there. Okay. Very easy. And that is
because that is a blueprint, whatever change we reflect here, it's going to be
added there as well. Okay, now, let me again
take one of these meshes. Let's bring this one instead. You see that layering effect
is very heavy on this side, but I'm going to keep this side relatively simple
at least for now. Now you see if I take this one and rescale it back and then
bring this one to here, I'm able to create ladder
that connects here to here. So now let's see about here. Let me expand and try to see that in the composition view to see if we like the scale. Okay? This is good, and this one is okay as well. So now let's see about this one, I want to have something
like that here as well. Okay. So this is going
to be connected as well, using a ladder or something. All of these are going to be connected using
beams to the ground. Okay. Now we have the
scale of these platforms, and of course, for the height, I'm not going to make
them so pronounced. I use something like this
instead because these are planks and I do
not want to create something that is
like the concrete. Okay? Now we have these scales. It's time to create
these scales and use the previous kits
that we have created already in blender to
try to create platforms. Oh, in blender again, now we need to take this and re scale it to one of these kits that we already have. So let's start with this one. Now, this one is the
closest to background. So now let's go for 18
meters plus 14 meters. Okay. And now in blender, we need
to swap these 18 by 40, okay? And now I need to bring the
pivot in the center because I want to make the pivot centered. So that reusing would
be a lot easier just by taking the kit and try to
rotate them in the world. Okay? Of course, later, we will create
protectors as well. But for now, I only focus on creating the platform itself. Okay. Now in order to test, I'm going to bring
one in the center to see which direction
should we start from? I want to see this
one in here. Okay? Now I'm going to
take this and join. Now let's take this one
and join to that so that I don't want
material to be affected. So let's create a
different material for this one so
that when we join, it doesn't affect the material. I'm going to select this one and this one is active so that I inherit the pivot from
this that is centered. Okay? Now I'm going to call it static mesh platform 01. In Batexs as well, I'm going to disable one
material ID because we already have two
material IDs here and later we will
expand that as well. Now I'm going to
export and test, and if the direction
was correct, we will try to create. Of course, if the
direction was not correct, we could also rotate
that as well. The rotation is
there to help us. Let's do something
I'm going to import and Okay, it's going to be here. If you sort them by
the modification time, you will get the
latest measures there. Okay, I'm going to
convert that to nanite and disable the light map UVs. Okay. And now we
have that one here. And then we could create
a blueprint using that. So now let's do something. I'm going to create a new folder or let's try to create here blueprint actor and then call it BP Underscore platform 01. Okay. And then in here, I'm going to add
instanced static mesh. Platform 01, and then I'm going to bring that platform mesh. We need to apply one instance
so that it gets visible. I'm using blueprint because
later we will create more modular meshes and
bring them here and try to sort them around here. So now I'm selecting this and right click
Replace with platform. And now because
the scale is off, we need to set the scale to one. Okay, so that it returns
back to its correct scale. Okay? Now you see the
rotation is correct as well, and we are seeing
that plan here. So now let's start creating. And whatever we
create in blender, we then export it only with one click and reflect the change
in real engine. Okay? Let me just explode the
mesh to lose parts. Okay. And we need to
take this name and not change it because it's going to overwrite the previous mesh. Okay? Now let's do something. I'm going to reuse a lot of these meshes on here to
create the platform. So I'm going to
start with these. Okay. And of course, you could
take these measures and explode them and
change whatever you want. Okay. And then in order to
change something, randomly, I could
bring this one here. Okay. You see, now we have
some randomness here. And if I take that and join export and then
reimport the mesh. Let me find it in
the content browser. If you change the mesh, it's going to change
whatever you have imported. Okay, and you see
the changes being reflected everywhere you have instanced that mesh as well. But since we do not have correct material,
it's all shiny. Whenever we bring the materials, it's going to look a lot better. So now let's try to
think in construction. So I'm going to
duplicate these measures and then try to create
beams to support the real construction methods. Okay. It looks like they are
created with beams, and then these have
been replaced. Okay. And then I
just take these to create something logical and think like a constructor. So shift the Let me scale that. And then bring it here. I take all of the Mans one
active object, Control J, export, and I want to see the changes reflected
in Unreal Engine. Done and you see now it
has a supporter as well. And then we could
also take some of these and try to create an underlying
construction as well, so that when we remove
some of these planks, we see the construction
underneath these planks. That will make it a lot more realistic and a
lot more readable. So let me take
this and bring it. Okay. And then I could
bring these down. So let's activate the
wireframe mode for now. And then I take these two and
then try to duplicate it a couple of times here and there. Okay. Because that is not a mesh that is really crucial
to the composition. I'm not being that careful about the placement of the mesh. Okay, scale them in Y. Then duplicate once
more and remove the extra unneeded planks. Let's try to randomly remove
some of these as well. Of course, that is not
going to be visible. So again, we're not going to be that
careful about it. Okay? Again, I'm going
to take that and this one active because I want the name to be that one. Okay? Now export once more, and then re import
the mesh in unreal. And the change is reflected, but since it is hidden here, it's not going to
be that visible. Okay? Now because we have
the borders defined, I'm going to remove
that white plane. Okay? And then I re export once more, and that is going to
look a lot better thinking like a
construction worker, and then reusing the
existing material to create what we wanted. Okay, I'm going to replace the blueprint with this one as well to save a bit of time. So now let's do something. I'm going to take the
blueprint and select this one and replace
it with that. And we need to change these
back to one by one by one. So it looks like we
need to rescale No. Let's leave that bit later we will create this one as well. Or let's do something. I'm going to find my blueprint. Okay? It's this one.
Then I place it here. Very easy. And then I
remove that one Okay. And then the side of the building is going
to be shown here, and whatever we create here
that is going to be wasted because it's not
in the composition is going to be shown here, okay? It's like cutting
the work in half. Okay. And then I could take and in order to make that
a bit realistic, I'm going to bring that
back so that we have later, we will create beams to
connect to the ground. Okay. And now we have different hits that we could bring here
and try to connect. So now let's just take these. Shift the and bring them here. And then rescale them a bit. Let's bring them up a bit. And then I could easily
try to bring these here and try to create
the kits like Lego. Okay. And you see a lot
of irregularities have been created here,
which is very good. Okay, now I'm
selecting all of them. Now, let me deselect that. And then copy these so that later we could
use them a bit more. So now I select all of these and this one
as the active object. You see, it's in
orange, so Control J. Now the pivot is there,
and now it's correct. So reexport and
then we're going to reimport it back very easily. Now the changes are reflected, and it's time to go and create the rest of the kits as well. So again back to blender
Let's do something. I'm going to just
separate these so that I see what I'm separating
and placing here. And since it's
about kit bashing, I'm going to bring the pivot to the center of them so that it's easier to manipulate
them and use them. So let's bring them above
the ground just a bit. And then now it's time to
use it like a lego piece. And try to create
different variations with. And later we will add more
variations to these as well. Okay. Let's finish the borders. And then after
finishing the borders, it's a lot easier to build this with extra geometry, okay? Now this is going to be our
mesh re export once more, and then re import
once more. Okay? Now this is done as well. And in order to
save a bit of time, we could take these
and try to replace them with the same one as well. So let me bring that because
that is versatile enough, we could easily
just take them and reuse them on each
other's place. Without creating problems. Okay. Now, let's remove that. And you see now, this is
showing a lot better. Okay, and then
let's do something. I'm going to replace that
with these ones as well. And you say it's working
perfectly there. And the only downside is
that we use only one mesh, and repetition might
be just visible a bit. So let's find this mesh. Because I want that to be
exactly on the ground. So let's find the
neighboring mesh as well. And then later we
will create a lot of surface variations on these. We might break some of them. We might bend, twist
the form or whatever. And if you want,
you can just try to create more of
these deck platforms. But since we're going to
use or save a bit of time, we are using one. But you already know
how to use a couple of them or create a couple of them. And I'm going to
bring that here. Okay. And since here, we could duplicate it there
and try to remove that. There's a bit of
placement that we need to create Okay, and then we could take these two and bring them to this side. And then I could take one
of them and replace it with this top platform as well. Okay. Now let's go to our
composition view, and it looks a lot better. Course later, we will add
more variations as well. But now we have consistency and optimization and
reusing in mind. We created one mesh and
duplicated over a lot to create a versatile composition,
okay, return back. And later we will
explode this mesh and try to create a lot
of variations in it. But for now, So now it looks like there's some
missing geometry in here. So let's rotate that. And it's good that we
are seeing some of these geometries revealed
to tell the story that some of these planks are missing and they're
gone by some reason. M Okay. Now, this one is
the active object, Control J to join them. Now you see, we have a mesh
that is getting completed. So export, make sure that
the name doesn't change. Okay, and then re
import it back. The more complex the mesh gets, the more loading time
it's going to get. Oh, it's good. Now, we could easily bring
again some of these kits. And try to place them on the platform to code it. Now let's take this mesh. I'm going to explode, bring the pivot
to their centers. Then I could just easily
try to bring them here. Okay, you see that? This is very free form, and we're getting a
lot of good results. Okay. Now there's a bit
of geometry that we need to fill and
call the Swan Don. Okay. It's, it's just like
creating a lego piece. You get the geometry
and create what you want using those limited kits and create a lot of
special pieces using that. Okay. Now I'm going to bring some of these planks
and place them here. So now let's do something. I'm going to take all of
this and this one active. And let's go to
material preview. Okay? This is a preview of the material of the mesh that we created
with the material. Of course, only the base color. Okay. And now once more, control J, and I'm
going to export it. And then in here,
re import it back. Okay. Now the creation
of this is finished, and later we will
create variations, plus creating a modular kit to be used as beam
to connect to here. So I could take the
landscape as well and bring somewhere around here so that we have more possibility for
creating measures here. So let's do something. I'm going to take
these measures, take these blockout measures, and let's select one of
these modular buildings. Let's select this one. And
then I'm going to replace it. And, of course,
rescale the meshes. Okay, now let's take that. Let's rotate it to see. Okay, not too bad for now later, we will decide to see if we
need these to be there or not because there's a
bit of illusion in here. If you create the
platforms, excuse me, the beams that connect the
platforms to the water, it's going to then
be a lot better. So I'm going to
pause and see you in the next one where we go
for creating those beams. And in order to save more time, we could create one beam
that connects this one that is the tallest
one to the water, take distance and then
reuse it on this, and it's going to
be hidden here. So that is going to be one way to optimize the
results a bit more. Now I'm going to pause and
see when the next one.
22. Creating The Connections: Okay, everybody, now we
created the platforms, and now in order to make
that even more realistic, we're going to create base for these platforms because
these platforms, if you think of them, they're
not standing on the air. So we need to create base that whenever we create the water
mesh and the water material, it's going to just convey
the message that these are connected to the island and built on top of the water. So that is going to be very easy because we have
the kits already and the kit is so robust and
versatile to support our ideas. And for now, if all of the
measures are the same, do not worry because we are
going to add variations. For now, we are going
to build the idea. We need to make sure that
our ideas are working fine. Then later we will go and try to create a lot of variations. For example, we will brick
some of these planks, we will add variations. We will deform them. And so on. Okay? Now we're going to create the base that is connecting
the platforms to the ground, and we're going to create fences to avoid people
from falling into water. And then we're going to
create something that people use to get
on these platforms. So it's going to
be beams, fences, and then a bit of
empty space here to expand the platforms so that there's a bit of
extended geometry in here to allow
people to enter these. So now let's start with
the beams because they are the most
straightforward ones. So now we have options. We have this platform in here, and it's
working all right. But the problem is that if I
change something about this, it's going to be reflected
on all of these. So now, this is where
I'm going to duplicate this twice and maybe three times or so to allow for more variations
because the platform itself is going
to stay the same, but the fences and the beams might be different
according to each. Okay, now let's go to blender, and then here's our kit. Okay? Now we know that this
is going to be our platform, and now we have
some geometry left here that we didn't
use on this platform. So I'm going to rotate them
around Z by 90 degrees. Okay? And this is going to be kind of mesh to allow people to enter those
platforms, okay? Something like this to
extend the platform. And let's do something. This is what we're going to do later for some of the meshes, but I'm going to
introduce that right now. You could just search
for randomize, and then you could see
randomized transform. And this allows you to use these kits and add a
bit of randomization, including the location change. And you see it changes the
location and they're not correcting they're
not creating a line. They're not that simple. They're not creating
a simple line. So now let's just try
to add a bit Okay? This is what makes that
even more realistic. And then we need to
change the randomize a bit under rotation. No, not here. And because the pivot
is in the center, they support all of the movements that we
create here perfectly. And for scale, I'm not going
to do anything for now. Okay? You see now we created
not so bad platform. So now let's do something.
I'm going to take these, bring them back, and try
to use these beams here. So now, let me do something. I'm going to place one in
here, and then one in here. Okay. Now, let's bring
this one as well. So I'm rotating that 90 degrees because I want to
create something that wraps around these
woods to hold them together. You see, I'm thinking
just like constructor. And you should do as well
using this technique. And later, we will add
variations to these. Do not worry because it's
an iterative process. You should wait sometimes
to get the perfect result. It's like something like
time consuming process. Okay? Now I created that.
Let's do something. I'm going to take
that and duplicate it so that it could
support a better distance. So now I'm going to
take all of them, and let's make this one the
active object control J. Okay. And now let's call this one SM representing
static mesh. And then platform and 01 if we wanted to create
a variation or something. Now let me place it in
the finished folder, and then I'm going to export. I don't want to use one material
ID on this because later we might add rope or
something additional to that. So now here is where we're going to create variations
with blueprint. But before that, let me
go to my meshes folder and import this Okay. And then we could just easily try to bring that and
try to use it here. But I'm not going
to do something like this because that is going to be a bit
heavy for performance, and I'm going to use that as instant mesh to save
a bit of performance. And the problem is that
if I add that blueprint, let me just remove that from there and go to my
blueprints folder. And if I let me duplicate and then
bring that platform and the problem is
that if I bring that, it's going to affect all of the measures, and
we do not want it. And we want to have some
variations here and there. So this is why I'm going to create different
blueprints, okay? See, it has affected all
of them the same way. Okay. And now since these
are instanced, we could also take these and try to change
them in real time here. So that is one added benefit
of using instanced meshes. So I'm going to use that. Let me bring that here. And now that I'm taking a look, I see that this mesh
is a bit too much. Let me see the dimensions, okay? It's 4 meters in here.
So let's do something. I'm going to go for a two by two mesh because I believe that
should be better. So now let's go for
three by three. And then export and
because we have clear transform, excuse me, applied transform,
it's going to change those values and then export
them. So we do not need to. Okay? And then let me go to my meshes folder and then right
click and reimport. That is going to
rescale that on all of the instances, which is great. Okay. And now I think it's
going to be a lot better. And we could take
these instances and even delete
them if we want to. Let me find where that
is. This one is in here. I could rotate 180 degrees
and use that machine. So this is how versatile our
kids are using this method. And then I could use
this one as well. And now let's go to
our composition view and see what is going on. So this one could
be changed to here. Okay, so let's find
this one as well. I could rotate that 180
degrees and you could also try to create your
own meshes if you want to. You could create more
meshes than these ones. We could also create
the illusion that these are connected using
staircase or something. Let's take that
Okay. This is good. I'm happy with it. It looks like there's a staircase
or something going on. Okay. And now it's
time to create some beams for these
some real structures to hold these on
top of the island because they're not
going to be staying on top of the air. Okay? Now, if I take these and duplicate them
and bring them here. I could easily try to construct a beam
structure for this. Okay. Now let me take
this one as well. I think there's one
mesh left here. Okay, let's remove. And then we could try to use this mesh all
around our platform. And this time, I'm really going
to create some variations because it has been instanced
a lot in this here. So let me join these. Okay. And then I'm trying to
bring them here and use other variations like rotating them in different directions
to use different faces. And let's try to place them even rotate around Z by 90
degrees to use the other side. Okay. And now we need some vertical, excuse me, some horizontal
platforms as well. So horizontal beams. Okay? I'm then trying
to take that duplicate and use them here. Okay. You see? Because we are going to
create so much variation. Let's add a bit of
rotation to them as well. So now I'm going to
take all of these and this one Control J to join. And let me bring the
pivot to the center. And later we will add the
formation to this mesh. But for now, we need to just export these and see
how they work. Okay? Now, let's call it
static mesh platform. Connection, and this is going
to be 01. Let's export. And then I could
easily import here. We should convert to Nante and disable the generate
lightmap UVs. And then we could add to here. So let me add
instanced static mesh. Let's just call it connection. And from the naming here, I could select that, and we need to
apply one instance. So it's here, and then
we're seeing that perfect. Compile and save and you see it has applied
on all of them, but there are some changes
that we need to make and that includes just rescaling these in blender because I want
to see more of them, but they should be a bit tinier. Okay? So now before that,
let's do something. I'm going to find these two because I'm going to okay, open the composition a bit more. Because I want to have
a bit of space for the boats and
transformations here. Okay. So in blender,
let's do something. I'm going to go to Edit mode, and this way it changes
all of them at once. But if you go and change the
pivot to individual origins, if you try to scale, you see it tries to change each one based on
its center point. Okay. And this way, you're
able to change the dimensions and
scales in the edit mode. Okay, let's export and
reimport that once more. Again, I'm seeing that
they are scaled too much. So we need to change
the scale a bit more. So I'm taking these plus these. Okay. Now let's try to test. So now, it's a bit better. I could take these and try to scale them even more just a bit. Let me disable the snap Okay. And now that we have
a scale defined, we could add more of these. Okay, shift the rotate. And then these ones
could be removed. Let me export and then reimport. And now we could do something. Let me take this,
try to scale that. And this one could be deleted. I have something
in mind if I take this rescale I need to just create a bit of
changes in the composition. Okay. I'm seeing that this one has a bit of problem,
so it fixed. And there's one in here which
we could easily delete. I quickly changed something
about this level. I just went to outliner and just cleaned up some of the folders.
So let's see what we did. We have one folder in meshes, and that is if I remove it, we're going to remove everything in the
scene with one click, we're going to
disable all of them. And now we have a couple
of folders, one left, which corresponds for
the buildings on left. And then we have
one that controls the buildings on
the right so that we could control them
using one click. Okay, if you want to disable these or if you want
to disable these. Now I'm going to change
the composition a bit by trying to take
these buildings on the right and push them a bit to the edge of the
screen so that we have some space left in
here so that later we could bring some boats and
rafts and things like that. Okay, I'm going to select
all of the buildings here. And then let's see
what we could do. Okay. I'm going to bring them back a bit. And see the composition now. So it was not that great. So let's just bring them
back a bit, not that much. Okay? Now you see we
have more here left for future if we wanted to bring boats or
things like that here. Okay? Now it's time to create
more of these connections. Okay? Now let's do something.
I'm going to take these. But we already know that we
need to shrink these scales. But not that much. We're going to join these, bring the pivot to
the center and then join these as well and bring
the pivot to the center. Later, we will add
variations to these. It's only now about sketching and later we will create
variations for them. So let's rotate 90 degrees. Okay, not too bad. And then I'm going to rotate. So they're going to rotate
all around their pivot. Let's go to Bounding Box. Okay? This is going to be a bit
too procedural looking. All of the lines are
simple and flat. Later, we're going to change
it, but do not worry. So let me join all of them, bring the pivot to the center, and then let me see
the name from here. And this is going to
be connection 02. Okay, and then export
using bat eggs, and then simply reimport
and try to test it. Okay, let's see. And the mesh
should be nanate as well. So now, I'm going to
my Blueprints folder. And then I'm trying to add one
instance using this, okay? Just duplicate and from this mesh drop down easily
we could select that one. Compile and save. And that's looking too flat. You see the symbol
line being created. So let's do something. I'm going to just bring these back to break that
repetitive line. Let's bring this one
here. And this one here. Let's go to local Okay, not too bad. They're now looking a bit
better with removing some of those flat lines. But again, these
are flats a bit. We could change them just a bit to correct the
composition a bit more. So because that is a
fix that we need to do, let me just do something. I'm going to bring these two in the center of the world, disable the rotation. And then let's try to
hide everything else. And now I'm going
to take these two and apply rotation values. So it looks like
it's already done. So now let's do something. I'm going to bring something
that is called lattice. Okay? That is here, and I'm going to
rescale that lattice around the borders
of the geometry. So go to Edit mode, right click four by four, and now I'm going
to select the mesh, and in the modifiers drop down, I'm going to bring the
Lattice deform modifier. And select the lattice. And now if I select my lattice points and
try to change them, it just tries to break
the boundaries of the mesh so that it's not
that flat looking anymore. Okay? This will just make that a bit more realistic by just changing the silhouette
to something else. So now let's export at that
was the lattice number two. Excuse me the
connection number two. So that is it. Reimport. Now it gets a bit buggy because
we rotated the lattice. If I go to my platform, you see, it changes
here as well. So let's take and rotate
90 degrees and this should fix the issue because we rotated the lattice in
blunder by 90 degrees. So by changing the rotation
back to 90 degrees, we are able to fix
some of those issues. We shouldn't have rotated
90 degrees there. So it didn't fix, let me go back then in blender, I'm going to bring them back to their I'm just pressing
Control C to go back. Now these are on their
place and now if I take them and export them and
then re import both of them, it should fix the issue. We shouldn't change
the rotation at all. This was a problem and now
they're back to their place. And this was what we talked about previously
when we were talking about keeping the
pivot scale naming and all of that the same. Okay? Now I'm going to
apply my changes just here. I'm going to bring the
center of the world to this origin of the mesh, and then bring a
Lattice modifier. Okay. And four by four and
then take this mesh, add a lattice modifier
and select that lattice. And then we could change these lattice points to
add a bit of variation. Just go a bit freestyle
to see what you can do with these export, but do not change the rotation
values and the pivot. So it should be
Lattice number two, excuse me, the
connection number two. Now let's change something
about this one as well. So let's bring the origin
to selected and then Lattice right click
four by four. And then select the
Lattice modifier and select that lattice and just change the
lattice values. No, not that much. Okay, now export. And then let me find
the the connection, excuse me, I constantly
keep saying Lattice. Well, because some of
the lattice, excuse me, again, some of the connections
are hidden underground. They're not getting visited when we go to Composition View. So that's why we need to take the lattice and
change even more but to reflect the changes. Export and then re import. Now we are seeing some
of those changes, and we could also rotate these 180 degrees to
use the other sites. And let's take this. Because I'm going to
try to scale that Okay, that's a bit better. So now, some points
need a bit of changing. For example, here, I
could try to change a bit And now we could do something. Let me take these,
compile and save. I'm going to take this
connection and then duplicate and rotate 180 degrees and
use it on the other side. They just need a bit of
changing, compile and save. Oh, looks like there's some
changes that we could do. For example, no.
Let's keep them. So this is one platform
mesh that we created. But that's an artistic choice if you want to remove some of these connection
parts that we have created because if you
add too much of them, it would look like
that there are buildings that belong
to the current age, not so long ago. So that's why I'm going to
stop placing so much of these So let's go back. And I'm going to stop this lesson and think
a bit about it to see which direction
we need to go for. Okay. See you in the next one.
23. The Stairs And Variations: Okay, we created the connectors that connect these
modules to ground. But of course, they're going to be subject to change later. We are going to make them a bit more natural because
they now look like something manufactured
just like today. So this is not going to be something that
we are going to use. We will bring some of
those bark measures that are a bit more
freeform in shape, and then we will
change a lot of these. For example, you see, just take this one in mind that by just changing some relatively
simple transform values, we were able to create
something like this from these. Okay? All of these are going
to be subject to change. It's a matter of time to
get the perfect result. So now we are going to create stairs that connect these
platforms together. Okay? Let's start from here, and the workflow is that
I'm going to bring in cube. So you go to your create
panel and shape and cube. Okay? Just rotate that to match the dimensions
and see what you want. Okay? This is to define the
borders of that platform, of that ladder stair that
connects these platforms. Okay? Why am I doing
something like this? That is because
later we're going to export these and these files are going to be
exported to blender. Then in Blender, we have
the borders defined, and then we could
use that to use these dimensions as a guide to help us create
what we wanted. Okay? Let me just copy
that, bring it to here. So this one is going
to be a bit different. These are going to be used for the blockout and just
to define the borders. Okay. Let me just copy
and bring it here, and this is going to be
used in here as well. So it should be fine
if I just rescale And this is a great thing
about this workflow. You see, we are creating
this complete village just using some simple kits
that we created previously. And, of course,
if you have time, you can create a better kit to support a lot of more ideas. But you already get the idea. Okay? Now this is the third one. Now I think the last one
should be placed here. So let's go to Composition View. And instead of that, I have in mind to
create a bridge that connects this floor to this one. So let's do something.
I'm going to sketch that first to
define the borders. Okay? It's going to start
from here and face to this direction and it's
going to continue to there. So just copy your modules Okay, that is going to be something to connect that there as well. And then I'm going
to take this one and create a ladder
here as well. So because this is going to
be hidden partially here, whenever I created the
ladder for this one, the stair, I'm going to
bring it and copy that here. I'm not going to create
a special mesh for it. Okay? You see how we created a stair system that connects the
village together, and then I'm going
to take all of these meshes because I need
to export these to blender. Okay, let me just
see and it's okay. So go to your file and you
want to export selected. And then just name it something and save you want
to save as FBX. So we do not want
level of details to be exported, and it's okay. So now we are in blender
and let me import. And this is our sir blockout. And if I see them here, you see, they are offsetted
from the world, just like the way
that we created them. They're far from the
center of the world. But it's not a problem
because these are only for blockout purposes that
we're going to use. So now let's do something. I'm going to delete
these and I'm just going to remove these
as well and save this one as a neocnee. So let's delete these and these ones that we are
not going to use, okay? So let's do something. I'm going to reimport them back. Okay? And then something is
going to be removed. You see this is it's
written UCX and it means that it's
the collision file that we do not need, okay? Just remove that.
Whenever you see a UCX file, just remove it. It's the collision file that
has been exported with it. Okay. Now, so now in order to
keep these together, I'm going to take
these and join them. So first, select something
as active object, join let's take all of these, apply anything, bring the
period to the center, and then join I'm going
back a couple of steps. But whenever I try to
rotate them or join, whenever I try to join them, it's going to create some bugs. So instead of joining, let's go for parenting them. I'm going to select
all of these Shift P or control P to parent
object and keep transform. So now, whenever I
change this one, it's going to change all
of these with it as well, which does the same
job as we wanted. And let's disable the
rotation as well. And then this one
is a copy of this. So I'm going to remove that and bring these to the
center of the world, plus the Sabond rotation. Okay? Now I could take this one and
bring it here as well. And now we have the
borders that we can use as a guiding line to help us create our stairs
plus this bridge. So I'm going to
leave the bridge for a later lesson and
start to work on this. So now I'm going to bring
the pivot here Okay, and then bring it up top
so that we could start working on the grid on
the level of the ground. Okay? Now let's do something. These are some triangulated
faces that we do not want. Select and go to your face mode, right click and
triangles to quad. It's going to remove those plus these lines could be
removed so that we have no barriers to help
us see a bit better. So now let's start from here. Let's first bring the pivot to the center. Okay. This is going to be start, and this is going to be end. So I'm going to bring one here. Okay. Now we're going to fill
this area with planks, and that is going to be so easy. Okay? Just bring these here. A. And then try to create
your results with it. And you see the
methods that we're using are very easy and they do not require a
lot of knowledge to create levels like this. Okay. And then we test it in the level to see if
we like it or not. And if we liked it, we will just go and
reiterate on top of it. And if we didn't like that, we will return back and change. Okay. Now let's do something. This is cube, and it's the
first one that we created. So it means that we know that where this
is going to go for. So I'm going to select this one as active object to
take the pivot from there. And then it's going to be static mesh there's 01. Okay? And then I'm
going to export it and then test it
in Unreal engine. And if you like how it looks, we're going to return back and correct some of it by placing
beams and supporters. So here real engine, and I believe that
it's cube, okay? It's going to be placed here. So let me go to my
content browser import, and here's our final folder. Make sure that it's Nante and doesn't create light map UVs. Okay, then I'm going to
select that right click here. Okay. First, we need to
make sure that we change the scales to 01 and
because the pivot was off, it was off on the cube because it was in the
center of that cube. Okay. It's good now. Or we could hide one of the planks. Okay. Now let's go to our view and
you see it has been created, but we need to create beams and supporters for that as well. It's just going to make
that a bit more realistic. So we no longer need this one or let's keep it because we
want this to be the borders. So let's try to use these. First, let's scale them like so. So that they're all in the same direction. And
let's do something. I'm going to bring
the pivot here because I want to
be manipulating them from here, like so. So just select these and
bring the pivot there. And let's hide everything else. Okay. And whenever we
have these planks, I'm going to place one. So let's bring them to the side. And of course,
because these meshes are created in variations, we could rotate them to get
another variation of those. Okay. Now I'm going to use
a boolean on these. So let me just select that cube. Let's first join these
and then select the cube. And this one has the active object control minus if you have activated Bulltool
set it to fast. Looks like we need
to flip the normals. Okay. Now you say it
cuts the geometry. So let's do something. And on these ones as well, we're going to flip the normals. Now I'm going to
extract something from here and delete
this cube in here. So now, take these faces, create a new phase,
and you see now it created a cube up top
there to remove those. Okay? I'm going to apply, and then if we remove that cube, it's not going to
be any problems. So now let's scale this
one as well to match that. And then we could join these and try to use them on the side. Later, the variations are going to be created.
Do not worry. So let's go back. And then we need to bring
these beams and use them here. So first, they're
going to be scaled One of them is going
to be placed here. Okay. Now let's delete that one and bring this here and rotate
to use another variation. And again, rotate
in this direction. So now I'm going to select
all of these except for that, and then this one is going to be the active object to
take the name from that. Okay. Now let me export that once more and then
reimport to test it. So it could be scaled
a bit like so. So now let's change
the direction. First, I'm going to
explode the mesh. And I'm not going to
change this one because this is going to keep
the pivot and the name. Okay? And then let's
bring the pivot to here, and these are going to be just facing the way
that stair is actually. And then I'm going to remove these and join it.
And why is that? Because I'm going to create
a plane that faces here. So let's do something. I'm going to copy this plane, Shift D to duplicate it, and P to separate by selection. Okay? Now, this plane is
going to be our boolean. Okay. Okay, it's this one. So now I'm going to bring
that to center, expand, and then expand in
this direction while in local transformation mode. Okay. Now I'm going to create
a mesh from this Press E, then right click
to disable that, go to Global, bring that up. We created a Boolean
mesh from that. Let's see about the
face orientations and all of that. It's okay. So now I'm going to select this one and this one active
object control minus. And you see it cuts those
geometry into this very easily. So now let's take these
two and bring them up a bit to hide those errors. And then we could easily
just bring them back to here, and it's done. So now, let's take these, and I'm going to bring them as a foundation So
let's do something. I'm going to bring this pivot to here and this pivot
to here as well. And why is that Because
I'm going to bring them to here and then rotate them to match that. And why did I do
such a maneuver? And that is because we wanted
to bring this and use it as foundation for the rest
of the planks, as well. Just a bit of rotation, and you should be good to go. So I'm going to scale like so and then try to duplicate it a
couple of times here. So we created a simple stair, and this is going
to be our mesh. Let's join and export and then reimport it to see
what we have done already. So now it's a lot better, and it's much more natural as well. So let's do something. I'm going to take these
and then bring them here to act as a foundation
that connects to the ground. So let's export and
then re import. Then we need something to connect to this
platform as well. Let's do something.
I'm going to take these two, shifty rotate. It's all about storytelling. Like, our story
should be logical. It should have a
base in reality. Okay? And then We could use that like this to tell the story that it has been connected to
that using this mechanism. So let's reimport
once more. Okay? You see now, it's a
lot more natural. But there's one thing, and
I need to take these two. Scale them just a bit
and bring these here. So export once more
and then re import. Okay, now it's a lot better. So because we know
that this is going to be replaced here, I'm going to take this one right click and replace
with that stair. So scale should be changed
to one by one by one. And then there's a bit
of placement very easy. But there are some bugs here because it's clipping
through the building. So that is a choice that you have if you want to use
that building in that way. So let me rotate
that by 90 degrees. I have something in
mind to expand this. So let's see what we do.
So I'm not liking that. So let's take that and delete. Now we have more
stairs to be created. And now let's do something. I'm going to reuse
the same geometry, but scale that to other pieces. So now, this is going to be
scaled so let's do something. I'm going to create
a lattice modifier. And that lattice is going to
be around these proportions. So let me bring the
pivot to the center, and I'm going to bring
the world zero, zero, zero to the point to selected, and then I'm going to
spawn a lattice here. So now this lattice is going to be exactly on the
same directions. Okay. Four by four by four. And then I'm going to use this to match this one into
these directions. Plus, it gives us
some benefit to be using some free form shapes to help us get a better result. Okay, I'm going to
select that and go for a Lattice modifier
and select this. And now let's make
this one visible. We want to use these
Lattice mode to bring these into these borders, basically. So out. Let's see what we have. And then let's do
something. I'm going to bring another Lattice modifier. This one. I'm going to use
proportions like that, and then let's go four by four. I'm going to spawn another Lattice modifier, and this time, I'm going to select the Lattice number three
that we created. And using this lattice,
let me hide this. And using this lattice, we're able to change some
of these a bit better. So you see, just by using these, we're able to change the dimensions a bit more and use a bit of
more free form shape. Okay. Now, let's take this. Of course, we
should duplicate it and rename it to Lattice 02, excuse s02, export, and
then import and use it. Okay, I'm going to select
that right click here, replace actor and with that. So it's going to be
one by one by one. Us placing that the
way that it should be. Okay. No. Let's go here, and you see it's different. Although it's using
the same geometry, but since it's using
the Lattice modifier, it's going to look different. Of course, if you
have extra time, you can go and try to invest more time and create
other results. But since we're a
bit limited on time, we are reusing as much as
possible to get the results. So now it's time to
go for this one. It's the cube number three. So let's find it. Let's apply
the Lattice modifier here. And then remove
these and go back. This is the first one, and we do not need that
Lattice modifier there. So this is cube number three. So it's cube number two. We should have replaced
that with this one instead. So right click And then the rotation
should be fixed a bit. No. Let's go back, remove that. Let's replace Okay. We could use this
one in here as well. So Now we saved a bit of
time by not creating that. So we are left with this bridge now that
I'm taking a look, I see that we have
the possibility to create another bridge here as well in here that connects this platform to this one
because in terms of height, they have more contrast
than these two. These are probably
the same height, but these two have
more contrast and will create more possibilities
for creating a good bridge. So I'm going to create
a couple of bridges. I wanted to create
it in this lesson, but since they are
going to be two, I'm going to pause and
continue in the next one, of course, after creating the blockout for
the second bridge. So I just need to define the borders just like the
previous one, like so. Okay. And then the last one is
going to be placed in here. So we have some
area to be filled, and I'm going to create
something like arc, an arc shape while this one
being more straightforward. So let me define more of those borders I see that in the viewport. I wanted to have an arc shape. Something like this that
has curvature to it. Okay. Now I'm going to
select these. It's fine. Then export selected. And then I'm going to
name it bridge lockout, and we do not need
collision as well. Export. So then here
if I import that, it's here, bridge, lockout. Let's see where they
are. Okay, now, because we deactivated, the collision files are
not getting exported, so let's select all of these. Right click Transform to Quod and then all of these are going to be kept with the
first one as a parent. So if they go here, see now, we have the boundaries
defined for those bridges. One is going to be an arc going in this direction and one is going to be in this direction. So I'm going to pause
now and in the next one, we're going to create
those arc bridges. So see you in the next one.
24. Blockout The Bridge: Okay, now we have
placed the stairs here and there is the fences
that we wanted to create. They are remaining
plus the bridge. We are going to
create the bridge because we have
blockout set here, and then we will return
back and create fences. Ofurse, these measures are all subject to change because
later, for example, we are going to
create a rope kit as well and use that
in construction. For example, some
of these should be connected to each
other using rope. And that rope, as
well, is going to have some really dramatic shapes to break a lot of
these flat lines. So we are now not near the
end of the environment. We are going to create
different passes. Iteration on top of iteration. And you see, we started with blockout and then
went to meet Poly and then created real
blockout modular kits and then started to reiterate on top of
them, create kits. And then later
we're going to add variation to these kits
to hide the repetition. So now we're going to
create the bridges, and now I'm starting with the first bridge
that we have here. So we are in blender, and I'm going to use curve to deform my meshes
around that curve. So what do I mean by that? If I create a curve? Let's say we create a Bezier
curve and try to offset that looks like this is
activated. Let's deactivate. And we are going to
just call this a curve. You see in here, it's a curve
rather than being a mesh. So I bring this here. Let's bring somewhere
close to this mesh. I'm going to place the pivot here and I'm going
to use this curve and let's take this mesh and
add a curve modifier to it. So it's going to be
the form and curve. So we're going to
pick the curve, and we're going to change
the direction to see which one is going
to be responsible. Okay? You see based on that, let's go to negative Z.
I think it's negative Z, no, I was Z. So let me take that and apply the rotation and this
one rotation as well. If I take this, you see, it's trying to curve
the mesh based on that curve it's going to deform the mesh based on that curve. Now
let's do something. If I disable that and bring
another instance of this here and bring it
and connected here. So I'm going to take that and connect it to this control J. And then if I apply a modifier, you see the mesh is trying
to curve like that. But since the mesh is a bit problematic and
the curve is two, we're getting somewhere
like that, okay? This is trying to take the
curve and apply like that. So we're going to create first
the borders of that curve. So let me bring in
a simple plane. And using this
plane, I'm going to use what's called
the simulation. We're going to create a
mesh that has the borders. Okay, let me bring it
to here and I'm going to bring this one here as well. I'm going to create a mesh
that follows this curvature. So in order to do that,
let me apply everything, bring the pivot to the center, and I'm going to
subdivide this mesh first because we need to be able to change the mesh quite a lot. Okay? Let's keep it quad. I mean, let's keep it square. And then what I'm going to do is creating a curve
using these meshes. So let me take this curve and apply the proportional editing. Okay? You see now it's trying to match that using that curve. And you can change
the circle of radius, however you want to create
something like that. Okay? Now you see it has
that shape that we want. So now I'm going to even add more variation
to this curve. So I'm going to use
cloth modifier. If I go to physics, cloth modifier, it's going to apply physics
based on a cloth. Okay? This is not what I'm
going to do right now because we need to make sure that
this one stays at its place. So let me first apply
that to remove it. And now I'm going to take
these and bring them just a bit closer. Okay? This is going to be the
bottom of the bridge, and this is going to be
the top of the bridge. So let's just try to
add a bit of variation. Okay. Now I'm going to
add a cloth modifier. So the cloth modifier, if I bring that
physics and cloth, we need to make sure that
the ssh stays in the place. So I'm going to select
these vertices on top. And we need to tell Blender whenever it tries to
simulate to keep these in place so that it
just like a cloth hanging on a wire or something
to apply that effect. So for that, we need to go to our data properties
and we need to create a vertex data folder. Okay? Now, let's call it. Now, let's take this one. And call it 01, okay? Now, assign. Now whenever I select and the select, I'm
able to select this. Okay? Now, another thing that
we need to do is applying a subdivision modifier to
allow for a better deform. So first, if I try to
apply the modifier, you see it tries to
fall because it's not using the properties
that you want. So in order to make sure that
it stays in place and like a cloth on hanging on
a rope or something. So in the cloth modifier, Properties, there's a property
which is called shape. So if I bring that, it needs
a pin group so that it pins these so that they
do not change direction. So if I select vertices that we have selected already that we renamed to one, if I just press lay, it doesn't move, but it's not allowing to move
others as well. So we need to go for a bit of shrinking factor to
allow others to move. Okay? Now you see they
are changing direction, but in order to have a
better animation and physic, we need to have
more subdivision. So I'm going to generate
subdivision surface, but it's going to be
before cloth modifier. So it subdivides the mesh first. It's going to
subdivide the geometry first and then apply
the cloth modifier. But let's do something. So if we bring after that, it's going to first apply the cloth modifier and
then subdivide it. So we need to first apply
more geometry here. Okay, and then apply
the cloth modifier. So now, just see what it does. You see now the cloth modifier
has done a great job in applying a bit of
animation because we have more subdivision now. So let's go before and
reapply our animation so you see it creates something like a cloth
that we could take our curve from this and
try to manipulate that. So let's go and change the shrinking factor
a bit to allow for a more stronger animation,
something like this. Okay. Now I'm going to apply the subdivision
plus the cloth modifier. So what we're going to do
now is taking this row of vertices or edges Shift D to duplicate and then P to
separate by selection. And then this one as well is going to be selected Shift D, pusP to separate
based on selection, and we have this cloth, which could be saved for a
later usage or I don't know, but I'm going to create
a new collection. And call it extra. Okay. And now let's bite it. I field later wanted,
we could use it. Okay? Now you see we have some geometry that
looks like curve, but again, it's not
a curve. It's mesh. So in order to change
them to curve, so that we could
apply meshes on them, we could go to object,
convert to curve. Okay? You see how it
kept that to curve, and now we could go
and use a curve. Okay? This one as well is going
to be converted to curve. Since this one had a bit
of animation going on, I'm going to take some of these that have deformed a bit more
and remove those vertices. Okay? Let's take a look, and you see there's
some direction in here. So we need to select
scale based on Z, excuse me, and scale them
based on zero to flatten that. Okay? Let's see about this one. So because these were pinned, they haven't changed at all. Okay, we have now two
curves that we could use to deform our measures and be a guide for placing the bridge. So now let's do something. I'm going to go back and take
two of these beam meshes. I'm going to bring them
here and I'm going to create a mesh by
joining these two. Let's join once more
and rotate 180 degrees. And then join once more, apply everything, and then
this is going to be our pivot. So now let's bring it somewhere
around the center first, and then I'm going to
apply the curve modifier, which we have been using
so curve then on here. So let's see the direction
that it needs to go. Looks like Z is the direction. Hey, you see, negative
Z is working as well. But before that, let me
bring it somewhere close to beginning of the curve to help
with a better transition. Okay, let's apply everything, but again, we need to bring
the pivot back to here. So let's take this one as well. Apply the rotation
location and anything. So let me bring the curve
modifier, select that curve. Looks like it's
going to be in Z. So negative Z. And you see now perfectly
it's trying to follow that curve and create
the results for us. First, there's a bit
of offset in here which easily could
be fixed later. Now, I have something in mind because this curve modifier
is non destructive, and it means that
we could go take these measures and try to scale them a bit to
make a stronger beam. Now we see it has
applied that here. I'm going to duplicate use one let's select the pivot here. This is for testing. Okay, I'm going to use this and export it to Unreal engine to see if the bridge mesh is
going to work fine. Okay, now let's rename it
to static Mesh, bridge 01. Okay, I'm going to export
and import it here. So here's our boulder, and let's keep all
of the settings. And let's see where that is. Okay? It's in here, and
we need to bring it here. But you already know that we're going to
remove some of that. Oh, let's do something. I'm going to rotate a bit. If you hold down out and
middle mouse click here, you were able to bring the pivot for just one time manipulation, and it will just return
back to its original place. So now let's do something. I'm going to here and I see that it's a good one because that is far away and we need to
have that in composition. So it's a good idea to
make the shape stronger. So I'm liking the shape. So again, let's go back. I'm going to keep this. And then now I'm going to select
this one as a curve. So let's remove and then I'm going to select
this one as a curve. Okay. And then you could
take that curve and try to change and see if there's
something that you like or not. Okay. Now I'm going to duplicate
one and bring that here. And this is going to
be placed on top of the previous one to form
the base of our bridge. And then we could easily
just try to cut from here. So let's see where that is. Okay? I'm going to take
that and take this one and use proportional editing
so that we have this cap. And now let's take
this one, remove, and then I'm going to bring
this one as well and use it. Okay? Now, these
two are going to be joined and the pivot
is going to be here. So let's bring the pivot
here instead of that. This is going to offset
the mesh in Andrea engine, which we have set to prevent But it's necessary
move that we are going to do. Now export and then re
import that and test. You see now the mesh
has offset a bit Okay, but these ones
are a bit too much. So we need to bring these
two down just a bit. So let's do something. Let me
take these two. And remove. And because we
have kept this one as a backup and it's
non destructive, it means that we could go
take this geometry and try to change the silhouette
just a bit. Go for scale and then apply. Okay? Now you see
it's a better scale. And I'm going to shift to keep that backup and bring that here. Okay, but we need to bring
that to a closer distance. Okay. Now I'm going
to take this, I just brought the
mesh to this extent. Then I'm going to
bring that to here. And then one copy to here
and join them to our mesh, which is going to be this one. So export once more, and then we import that
back to see the results. Okay? Now it's a bit
better, but again, we need to bring
the top one down a bit. So let's do something. I'm going to take all of these, control T, select them, and then let's deactivate. That and call the Spana bridge. Plus later, we're
going to create links, but for now, we need to
look for a good silhouette. So right, click reimport. Okay, now it's a lot better. And later, we will
apply materials on them to really avoid being
too repetitive. And by the looks of
it, it's all right. And later, these
measures are going to be much more
complicated than these. We will create ropes. We will create planks, or we reuse the existing planks to make that a bit
more interesting. Okay, now let's go for the second bridge to create
the silhouette for it, and it's going to be
something arc shaped Okay. Now, let's bring this one. So it looks like
there's a bit of unnecessary geometry here,
which we could delete. And later that we re export the mesh, it's
going to be right. So now, this one is going
to be removed as well. And now for the second bridge, we're going to use
these bark meshes, these ones, these
round ones to make the silhouette a bit more interesting than
the previous one. So I'm going to bring that back. Let's bring this one here because later we are going
to apply some changes to it. So now I'm going
to take these two, and I'm going to place an
extra folder and remove them. So now, this one as well
is going to be hidden. Let's hide all of them. And now we're going to create
a silhouette for this one. So first, let's try to
create the silhouette and then instead of
creating that simulation, we could easily bring a curve. Let's bring a Bezier curve. Let's bring these
ones to the center and select our curve. Let me see where that is. Okay, now we need to rotate this to match our direction and rotate ones in here as well. And now this one has shapes to manipulate and to
extrude or to rotate. And then just like
normal meshes, you could use something
like this to create. This is going to be
the form of our rich, and I'm going to bring them
on this vertice in here. Let's see. Looks like on
some of these points we could remove to have
a better transition. Could scale them as well. Okay, looks like
it's a good one. So let's rotate that scale N. And then let me take this
one scale, excuse me, extra So now, it's a good shape. And then in here
as well, I'm going to take this one extrude, to create an end
and starting point. So now, let's do something. I'm going to bring
these to center. And then I'm going
to try to scale these somewhere
close to this one. So this one is a bit off.
So let's remove that. Then I'm going to take these two rotate in
multiple directions. A bit of variation in a scale is going to
be good as well. So now, let's take
all of these, join. And you see, we have
a qua topology. That's why it's
supporting a lot of those movements being curved. So now, I'm going
to bring this one here somewhere
close to our curve. Okay. And then I'm
going to bring again, the curve modifier,
select this curve, and I think it should be in Z. No. Let's apply the rotation
on this one as well. You see, when we applied rotation to change
the rotation values, you see if I apply
the rotation values, they get fixed and
we get a good one. So let's bring that. Let's go to negative Z. Okay,
now it's better. Because it's non destructive, we could take these measures and try to reuse them
again without any problem. Okay, now I'm going
to duplicate, apply that, and then I'm
going to bring this to here and test it to see if we
like the result or not. So let's bring the pivot
to somewhere around here and I'm going to call
it static mesh Ridge 02, and export, and
then I'm going to test it real engine
to see what happens. Okay, import, and here it is. And I'm going to
bring it to here, and it needs a bit
of rotation as well to look right, okay? Et's do something. I'm going to take this one and it
should be used like this. Okay? It's going to be a top
one. Let's do something. I'm going to shift D and then take this one and change the
silhouette just a bit. To see where that is. And I'm going to change the
curve just a bit. Let's first change
the silhouette. Then I'm taking the curve. So I just duplicated the
mesh a couple of times, and then I'm going
to take these and this one has the active
object control J. You see, it's static
mesh bridge two. And then re import see the changes reflected.
So it's too much. We need to bring this
one down just a bit for a better visualization on
these far away distances. Oh, it's just an easy task. Just bring export and re import. And especially, I'm not
liking this top part here. But, again, I just
brought it down a bit. Okay, it's better
now. Of course, because for the lack of material definition and
just looking like others, it's just getting
a bit repetitive. And later we will return back and try to
fix these issues. Okay, now we have the silhouette
created for the bridges. And in the next lesson, we're going to create the
length to connect them, plus these vertical
pillars. Okay? See when the next lesson.
25. Finishing The Bridge: Okay. Now we created these bridges,
but I did something. I didn't like the top one. If you take a look, you see there's a bit of
difference there. So if I right click and
commit and reimport, you see, it's going to
just follow the same one. These are two identical. I just remove the top one and replace the initial one there. And later that we
create materials. These are going to be very good. Now the second
thing that I didn't like is that this is too wide. So let me bring one
of these planks. You see, even though
this plank is 3 meters, it doesn't look like that. It's going to be a good one. So you see it's even
brother than 3 meters. So I'm going to keep
this as a guide, and let's do something. I'm going to take all of
this and remove Okay. And then I'm going to add a mirror modifier and
use this one as a guide. So it's going to be a long way. Okay? Now the difference is not the difference.
Excuse me. The distance is the same. And now if I take this one
and try to bring it closer, it brings both of them closer. Okay? Now it's better
Let's do something. I'm going to bring it
even closer because I don't want that
to be that much. Okay? Now it's good. So now, what do we do for
these rails and stairs? We're going to use
existing geometry. So now I'm going to bring this. Let me do something. I'm going to bring the pivot to here and bring it
somewhere around here. And then I'm going to create a curve that follows
this curvature. Okay, because I'm going
to use that curve to map this one around this so that it follows
the normal as well, so that it just does the
rotation for us as well. If we want to do manually, we have to just do rotations
and random stuff manually. So this way, it's going
to be a lot better. Now let's do something. I'm
going to bring in a curve, but this time,
instead of Bezier, I'm going to bring in a path. This one is a lot better, and it's much more manageable. So now, it's a flat line, but it has some shape to it. You see, it tries to
smooth that shape, although it's flat and it's looking flat,
but it's smooth. So let me rotate
that 90 degrees. Okay. And then I'm
going to bring it exactly here on
top of this point. Okay? Now, if I take this, you see now it's just trying to take a median of all of these points and
create the result for us. Okay, now I'm going to
take these points and try to press E to extrude, and I'm going to
follow the curvature. One here and one straight. Alongside X, I think, yes. Okay. But since we have a bit of rotation, let's do something. I'm going to apply the rotation because you
see it's rotated in Z. So if I apply the rotation,
it gets corrected. So now let's take this one and let me take this
as well and bring it here a bit closer to
here so that I can place this one and instance it
around using this curve. So I'm going to just change
some of these curves a bit because I want them to
be closer to that center. It's a lot better.
So now I'm going to take this one and bring
it close to here and I'm going to use
a curve modifier alongside with the
array modifier. So using the array modifier, we are able to let me from the generate
menu, array modifier. It's going to array that
alongside a certain value. So in here, it's going to be
alongside Z so let's first, we should apply the rotation. Now it's going to be a long way because the rotation was off. Okay? Now you see a long y, it's going to array that. But we're going to use the curve to array
this along that curve. So after array,
I'm going to bring in curve modifier again. And then let's take this. Okay? Now you see it's trying to follow the normals everywhere
it goes. So let's see. I think it should be a
long Z or something. Negative Y is going to be right, but we want them to be flipped over in the other direction. So let's do something.
I'm going to apply everything and keep
this one as pivot. Let me bring the
curve as well. Okay. And then let me apply all and let's see which one is going to be
better for our work. So let's go for negative Y, and then I'm going to take the geometry and
offset them like so. I could offset like so. And let's bring them
to here as well. And then now if I go bring the array modifier and
bring the numbers. You see, it's going
in positive Y, but we need to go in
negative Y instead. Okay. Now you see it's trying
to follow that curve. But again, we need
to bring that value down And start from here. Okay? We don't want
too much of them. Let's go and it looks
like eight is good. And now, because this
is non destructive, it means that if I
take this geometry and try to scale that a bit, all of these instances are
getting scaled as well. Okay. Now let's try to bring
that scale as well. No. For scaling, I'm going
to deactivate and scale from here so that
the ground stays the same, but the height changes. Okay, now apply and
apply once more. So let's take these
and I need to bring them down just a bit. So apply the scale. Okay. Not bad. I'm liking the result because it keeps connecting
these two together. Okay. And you see it follows exactly
with the same curvature, which we like, actually. And then later we will
bring them to here. So let me just delete that part which we are
going to copy later over. So let's bring that as a guide, and later we will mirror all of these there.
Do not worry. So now we need to create
a strong base for this so that the planks
get laced on top of that. Again, I'm going to reuse the same curve. So
let me take that. But this time, I'm
going to bring it somewhere around here. And then again, I'm going to bring these beams and use them. Okay. And then let me bring that here, and it should be somewhere
around that point. So pivot here and let's
bring it closer to this one. So let's apply the rotation and this one everything and this
one everything as well. Plus we need to bring
the pivot there. Okay? Now I don't need to bring the array modifier
because we do not need it. So let me just do something. I'm going to bring
a curve modifier and select this curve. Okay? I think it should be in Z. Okay. It's in Z, but we need to change the value a bit. Okay. Now, I'm just
changing that in X. And then if I just change in Z, I'm getting that movement. So now let's bring the
array modifier because we need one array to go up
based on that curve. So I'm going to bring
the array modifier, but it's going to be
placed before that. So it's going to be alongside
Z but in negative Z. Okay. Now that I'm happy
with this result, I need to bring in another
array modifier to array this until here to create a strong base for the
ladders to be placed. Okay? I'm going to
bring array modifier, but this time,
it's going to take all of this information
and array that in X. Okay? It's going to be
after the curve modifier. So let's bring another array. And you see it's going so looks like it's a good one. So let's go for four and
bring this one to two. Now we need to take
that curve again. I'm going to use this one to bring the planks on top of this. We need some planks in
here as well as a base. Let's do something.
I'm going to take this and try to scale
that just a bit. Okay? So that it connects all of them. And you can just think of it. Okay. And then I could
reuse this one as well. If I just take and try to
rotate that 90 degrees, and then use more of that, but we need to use
negative three, so that we could spawn
more of these here. And then I could take that and then try to make
the base a bit stronger. So no, not like that. I didn't like that, actually. So let's do something. I'm going to scale
this one a bit. But because we are
using relative, it's going to take that
relative distance. If we use constant,
no matter what we do, it's going to constantly place them based on
a certain distance. It's going to be in
Y in negative three. So negative. Okay. Now, you see, it's going
to be a bit better. But if I change that, no matter what we do, all of these is going
to be staying the same. And then on top of this,
we're going to place our planks which are
created like so. So I'm going to bring them to the center and make
sure that all of them are scaled just
like each other. And I'm going to create an
array of blanks using these. So let's apply everything. It's going to be rotated. And then let's
rotate them like so. Okay, let me bring them here. I'm going to start from here. So now what I'm going
to do is creating an array of these
planks like so. Okay, now let's go bring
the object randomizer. It's going to be randomized
transformation and try to change the
scale just a bit. We want to change
the scale in X. Of course, before that, we need to apply the rotation
and everything. So now the pivot
is in the center, let me bring the
randomized transform. Again, I'm going to add it to quick favorite menu so
that whenever I press Q, it just happens, okay? And a bit in Y. And a bit in X as well, plus a bit of rotation. Later, we might return back and try to create
more variations. But for now, this
is what we get. Okay, I'm going to take
all of these and join. So now, I'm going to bring
this one here, exactly here, and then apply the
rotation and everything, and the pivot is
going to be here. Okay? Now I'm going to again bring the array modifier
plus the curve modifier. Let's reuse the same thing. So now, let's take
these and try to make the planks a bit stronger,
appli the scale. And then I'm going to reuse
let me see what we have here. I'm going to reuse this curve, and I'm going to reuse that
curve from this. Okay? Let's do something. I'm
going to reuse this one. So I'm going to select this geometry and this
one as active object, Control L and copy modifier. So now, some changes
we need to make, and that is we need to correct a a scale to match with that. And then changing some of those values to get
that bridge working. Okay, and once more. And now let's try to bring
that closer to here. Okay, now I think our bridge is created,
of course, this one. And then we could easily
take that and remove it. And I think that we have
created a good bridge. So let's take all of these. I'm going to go to object
mode, convert to mesh. This one is going to wash
all of those modifiers. Okay. Now, let me
bring this one here. We need to take these and duplicate them over to
here. With no problem. And then looks like some of
these need to be removed. So let's take all of these. And I think let me see which one is the Sticch
bridge number two. I'm going to shift
and select it. Okay, this is it.
Now I'm going to select all of these
and then select this one as active object and pick the properties from that. Okay? Now it's a good bridge, and I'm liking the result. Okay? And then I'm going to export and then right click
and reimport it back. Okay, I'm liking the result, but there's something
that we could change. And because the
pivot is in here, we could go and try
to scale this a bit. So let's go for 0.9, 0.8, Okay, looks like
0.8 is a good value, and it's definitely usable. Okay, let's go to
composition view, and now the bridge isn't that annoying to
the composition. So let's go for 0.7, and then I could bring it to
front just a bit to make it smaller and a bit of rotation. And it's a good one. I'm
liking this one better. So now that I'm taking a look, I see that I'm actually
not liking this bridge. So what we could do is replacing that bridge
with this one. So let's do something. Let me go to composition
View and take that and replace it
with this bridge. Okay. Now, let's try to scale
that to 0.7 that we had. And then I'm going to try to rotate that so
that it doesn't actually match the look
of this one completely. So let me take all
of these and remove. And then I'm going
to just try to match this to here. So let's see. I'm actually liking that. But if you want, you
can go and try to create one extra platform there for the storytelling
to be correct. No, it's exactly
connecting to here, and it's a good one. I didn't expect that to happen. Okay. And now, it's
a very good one. Exactly, I didn't actually
expect this to happen. So let's see what we're going to do if we want to keep this one or if we want to
create one for here. So let me match that
to that platform. And then we could rotate that. Let's go for 0.7 or 0.5. And now, if I go to composition, you see that we have a layer
of bridges connecting these, and I'm actually
liking the effect. And you can go and try to create more bridges if you want to. So let's do something. I'm going to bring that bridge again here. You know, we're telling
the story that there's something on the other side
of the bridge as well. It keeps layering and
layering and layering. So let's go for 0.7. So I think like this
one is a bit too much. But this is something
that I like. And again, another choice is that I could take
that and remove it. But now we need to make sure that this
one connects correctly. Okay? Because I didn't want to make
the composition unreadable. Looks like one is enough. And we created a complex mesh using only the existing
kits that we had. So let's do something. I'm going to rotate this. And there's a bit
of rotation again. And let's go for 0.7 because
that is far from the camera, and we need to have
more visuals on that. Point Let's try to scale. Okay. Now let's do something because this is
only one material, and later we're going to create a different material because
I'm not liking the color. We could use more
desaturated colors for them, including, let me
bring in a multiply. Then I'm going to bring
in a vector color. And let's try to use a
desaturated color there. But before that, we need to
bring in a desaturation. So that it desaturates
our color, it gives us a gray scale value so that we could apply
some color on that. So let me convert this one to a parameter. Let me save. Of course, we need to
change the color to something else because
that is a parameter. Whenever I change the value, it's going to be representing exactly there. But overall, the colors are going to be a bit desaturated. So let's just plug the
base color for now. I'm going to bring my other textures and plug
them here to apply a bit of color and normal and
roughness information as well so that we get a bit
better better preview. So import. And then
here's our material. It's going to be those ones that we exported from painter. We're going to bring the
roughness and normal. And the normal is open GL, we need to p the green channel to
convert that to direct X. So it's gray scale,
let's convert that to mask and normal as well. We need to show all
advanced details and p the green
channel to convert that to direct X,
save everything. And this is just
temporarily changes, just to get a better
preview of what we're doing in our work. So this is going to be roughness and this is
going to be normal. You see, we get a
better preview of how the wood is looking, save. Now the colors are a
bit better and not that shiny and we have a bit
of normal read as well. You see, we get a bit of
change on the surface, which makes it a
bit more realistic. Okay. Now I'm happy with this so far. I'm going to pause,
and in the next one, we're going to create fences to prevent people from falling
into the sea, safety always. So see you in the next one.
26. Railings On The Platforms: Okay, everybody, now we
have the bridge in place, and it's time to go
and create fences. So because we are already
using just one platform here, if we bring the kits that we create and applo
them on this platform, they're going to be apploed on all of the instances as well. Of course, you might have some really basically more of
these platforms created, then you can just open those platforms as well and
lace your railing here. So let me just
close that for now. And here we are in blender, and this is the platform. I'm going to just take
a copy and I'm going to bring these out of the way. It looks like this one could be deleted because we
didn't use that. Let's leave it be. It's not something that we could
care about. Okay. Now you see the dimensions
of this platform are 80 meters by 40 meters. And it means that if
we create two meter by two meter platforms and
distribute them along, we are getting a good result. So let's do something. I'm going to bring in a mesh, and a plane, let me
bring the pivot here. Okay, let's bring the center of the world back to its origin. And then I'm bringing a plane. So let's bring the
pivot to here. And then let's say
that we rotate that 90 degrees just
like we want to. Okay? And then if I bring it here, for example,
something like this, let me go to increment because increment is going to use these grid
patterns for snapping. So if I just create 2
meters worth of geometry, we are getting something like this to finish that building by creating modular two by
two kits or not two by two, for example, two by one
or something like that. The same thing if I just
copy this one here. Then if I use that
two by two again, we are able to create
something like that. Okay? And it will cover
the surface of our kit. But we could also use
something like two by half or create a special kits. But I'm going for
a two by two kit. Okay? Let me bring in a
mesh, again, a plane. This is going to be
a pivot and let me bring it up 90 degrees, and I'm going to select these ones because we
haven't used these a lot. Okay, we already know that
it's going to be 2 meters, so 2 meters by one because I don't want
that to be too much. And then I want to
scale these as well, like so and create a base for our railing. So let's use this one instead. And let's say that
we take these and try to bring them here. Let me turn that off. I'm not going to create here because if we take
these and duplicate, it's going to be one
overlapping machine. I'm not going to just
create this one instead, I'm going to use one. One other And you could also just rotate them like so to
create your results. So let me duplicate that. And then we could
rotate it to that side, use as much variation
as you want. And let's say that
this is one, okay? Let me bring the pivot to here. I want the pivot to be
exactly on the base in here. Okay? Now, I'm going to bring this plane back and take these and join them to the
one that contains the pivot. That railing. And it could also create more variations
as well if you want. Let's create some variations. I'm going to
duplicate and then go to Edit mode and explode
the mesh by loose parts. And let's say that
we're going to create a couple of variations. Okay, let's remove that. Okay. And then we're
going to join this, and that would be just
another variation. You see, these are
quite different, although they are
basically the same, but they are a bit different. So let's remove that from here. And this one is one as well. Let's call this one
another variag. You see now we have
different variations. I'm going to call
this one static mesh, MOD representing modularity, and then it's going to be railing. Okay? Negative, excuse
me, underscore 01. I'm going to copy the name and then paste that name
in here as well. Number three and number four. Let me make sure that they
are in the finished folder. So let's go back and then let's see if we could use these
meshes for our purpose. So I'm going to go
to Bat x again on the same folder and export and
once again in UnreLEngine. So let me go to my meshes
folder and import them. Okay, here they are. And then we could also go to our modular buildings folder and bring this one and try
to use that railing here. Let's create a
railing system that goes around here to
cover that distance. Now, let's create an
instance static mesh, and I'm going to
call it railing and create that railing
mesh number one. Now we need to apply one
instance to be used there. Okay. Now, let me apply that and rotate 90 degrees. So let me for now disable
that to create our pivot, and then I apply that. So now, control the to duplicate
and bring that to here, and then we could
easily go and use the second one for a
very fast iteration. And then again,
Control D selected. And then, for example, we
could use number three, Control D, and use number
four, for example. Okay, let's take a look, compile and stave and see some railing happening
around here, which is good. Okay, now, I'm
just going to take these Hold on control to be able to select
multiple parts, Control D to duplicate them. So make sure that you grab these instances and we are going to bring
them to here because, I should have copied before. Now we have four instances.
Let me bring them here. And then if we could rotate them 90 degrees and use the
other variation here, it's going to be a good idea. And then control the once more. And we need to select our instances from
here because they have been copied just from here. Okay. Now compile and save. So you see that railing being applied on a lot of these parts. So it just takes a bit of time. So let me bring that here
and then rotate that. And then in order to create
a bit of more variation, I'm going to Control
D and use randomly. For example, now
that this one is rail two instead
of selecting rail, for example, I go for rail four to create more
variations on that. So let me take these
two and I'm going to disable That, okay. Just a quick fix. Control D, bring that
here, and, for example, use another one,
compile and save. So et's use, for example, number two, and
then duplicate them And one in here, compile and
save and see the result. C, it's getting even
more completed. And then later we will
go on the viewport on the game level and delete the instances
that we don't want. That's why I like to
work in blender for such tasks because that is a bit easier to
work with in blender. So let's go for number two. Then just one more instance
to conflate the side. And let's rotate that to here. We are seeing a bit
of symmetry in here. We could just leave it be
or use something else. Okay? You see the
railing on most of the parts. So control D. And then rotate 90 degrees
and you should be good to go. Okay now, this is number four. Let's create, for
example, number three. And here number one,
And I gain four. You just try to randomly bring them and use the
composition that you want. You could use procedural
methods as well. That is a valid
option that you have. Okay, we could take
this one, rotate. Okay, compile and save. And you see that railing happening on a lot
of these parts that we want. For example, this
one needs to get deleted because
it's storytellingly blocking the way
So we could take these because we have applied some rotation
on these instances, it's going to be like that. Okay? Just a bit
of offset and then this one and this
one it'd be deleted. This one could be deleted. Plus this one. Okay. Now I'm happy with this results. And if you want, you can
try to use more of them. So you see, there's too
much offset in here. Let me go and find this one, this particular
instance in the level. So I have created one
folder for the base. Let me find it.
Okay, this is it. You see that is a bit changed. And you see instances
are just a bit off. So I'm going to select that and in this viewport in
this content browser, I'm going to select
this one and then here, right click replace
with actor and then I'm going to select that
blueprint and now you see that is going to correct
some of those results. And if you have some problems, you can just always go back and use this method to bring your instances
where they should be. Okay. Now you see we get more
of those railings, and that is a lot better. It could also go for the
same one on these as well. For example, if you
didn't like that, you could replace while copying the properties and replace
with something else. Okay? This is going to correct some of those issues that
might have happened, but it's going to reset
that instance as well. This one isn't that much
in the composition. So, for example, you could
go for this one as well and change and that is going to
bring a lot of those back, especially if you
haven't already tried to level design and you
have some time left. You could use this method for bringing some of
them on their place. Especially, for example,
let me select this one. No, this one, right click
Replace and select it brings them back Okay, although there's a
bit of bug in here, because that is not
in the composition, I'm not going to care
for that that much, but you can also go and spend
a bit of time and fix that. So let's go for the right
composition as well. This one is okay.
I'm happy with it. For example, this one,
right click Replace, and you see it fixes
some of those issues. Okay, these bugs are expected. You can go and fix
them if you want. Create new geometry or just rotate them around and
you should be good to go. Now we have some really
more kits to be created. For example, the shingles for the roofs and a bit
of rope as well. These are going to get added to the composition and make that
a bit more a lot better. When we add those roof
shingles plus these beams, and we will remove those
placeholder measures from here. For example, this one is
going to get deleted and replaced with a beam
and the roof structure. Because that is going
to take a lot of time, I'm going to pause
this lesson right now and in the next lesson, we are going for creating
just some shingles. We're not going to
create, for example, if one roof is made up
of hundreds of shingles, we're not going to
create all of them. We just create just like these, we will create kits and
then distribute them around to create new variations, plus the beams that
we already have. Okay, I'm going to
pause and see you in the next one where
we go for creating a new kit composed of rope and shingles. Okay.
See you there.
27. Roof Shingles Kit Sculpting: Okay, everybody, now we have a very basic village created, and now we need to go and
create these roof shingles and using the same kit based workflow based
on kit bashing, repetitive shapes to
create new geometry. We are going to recreate that. Let's just take a look at references and here's
something that we aim for. You see, these are
half round shingles made from clay and there's
a lot of moss here. And you see the
placements so random, and it gives a really
cool silhouette change to these objects. So now let's take a look. You see we have
round ones and we have these flat ones
depending on the situation, we might use either of them, but I like using something like this, creating for example, three or four of these and let the variation maps
that we later create for the geometry to
decide for the color. You see, we have a lot of
moss gathered in here, which are going to
be represented, not in the initial
texture that we create, just like these wood
textures that we created. We are going to
create something that actually holds the
initial color, and then later we will add
variation maps to those. This is going to be
very easy to create. We only need to create a
couple of circles, excuse me, cylinders and then cut them to half and recreate our geometry. So in blender again
and now I'm going to take this one removed because we
already have this one. And then we are about to bring one of these and let me duplicate
this one, bring it here. I'm going to just see the scale of the cylinder that
we're going to create. Okay. Now, in terms of circle, it's okay. So let's set that to local because I want that to
be something like this. Okay? Looks like
this is good for the base cylinder that we're
going to distribute around, and the scale is okay. Okay. So now let's just try to bring
that up, apply everything, and now I'm going to bring
in an array modifier, just to test to see if we
like that result or not. Okay? And then another
array modifier, control the shift the in here. And then instead of X, we are going to be tiiling in why I believe Okay, it's going to be in negative Y. And then we could bring
in object offset. Let me bring in an empty. We're going to use this
one as our offset. Let's select that empty. Okay. And then if
we try to rotate. So this is not helping instead. Let's enter negative
zero in Z as well. Okay. And then we are going
to remove some of those. So negative 0.5 instead
and negative 0.5 as well. Okay, then you see, this is going to give
us a very good shape, and then later we're going to create variations
to those as well. But also let me go back and deactivate our
viewport modifiers. And then I'm going to
connect these two, which are the center
geometry parts there and here as well. And then I'm going to just try to delete these Okay, here we have the actual shape. And if I bring that, you see, we get something like that. But also, we need to add
a bit of volume to this because you see it's not using any volume or things like that. So before actually everything, I'm going to bring in
a solidify modifier so that we have a bit of
volume applied as well. So we don't want upset. Let me see how much of that
volume do we want, okay? And now because we are
using relative offset, it's going to take a look at the dimensions of the geometry. So it has already changed. No, it's not this one here
because the scale has changed, it's going to take a look
at the scale that we have. If you use constant upset, it's not going to take a
look at your instances. Scale. It's going to just
use that scaling Okay. Now you see using this method, we're able to generate a
lot of good roof shapes. And you see they are generating
a very good silhouette. And then later we could
also add randomness, try to rotate these, try to rescale them, maybe some of them missing. Okay? You get the idea. Now I'm going to delete those. And then let's delete
that empty apply, and let's bring the rotation
back to its original place. Okay, apply anything.
And this is good. Now let's do something. I'm going to go
for Shade Smooth. Irse, this is only
for a blender. Now let's do something. I'm
going to take these two, scale in Z by zero and bring them to here so that
they match the ground. Okay? Now I'm going to copy
maybe four of them is enough. And then also, we are going to apply a very simple UV map. So that later we
create polygroups based on those UV in
blender in Zbrush, excuse me, and that is
going to be helpful for repologizing and
unwrapping these meshes. And then we have the rope
mesh to be created as well. These are going to be joined to these kits to make our
kits a bit more versatile. So now, in order
to create a rope, I'm going to create
a geometry that is tiling either in
geometry and in texture. I'm not going to sculpt
that in the Zbrush because all of the details for that rope could be
generated in painter. We don't need to generate
any additional height map, we need a high poly to
be baked on low poly, which we will create eventually. But now, in order to
create that rope, again, we need curves. So let's bring in a circle. And, of course, we
could bring this to something like that. Okay. And then definitely
we need to scale that. So you already know
that the rope is composed of different
fibers being twisted. So the modifier that is going
to help us create that. Of course, I applied everything
is the screw modifier. So go to the form
and it should be No, it should be in generate,
Screw modifier. The scale is going
to be a long Z if I just bring that up to 2 meters because I want that
to be a tiling geometry. Okay, exactly 2 meters. So now let's take a
look at the scale, and you see by iteration, I'm able to tie it, but I'm not going to
tile that right now. I just want that one to be used. Okay? Now you see we have angle, and you see this is the angle because we have one of these, it's going to just
twist it around itself. But if we go into
our geometry mode and disable the UVs for now, I bring this one here, I'm in the edit mode. And if I press Shift D and bring one in here
and apply the modifier, you see now, it tries to
twist these like that. But again, if I just disable that once more and then try to bring one more in here, Okay. And apply my modifier. You see now the amount of ropes being generated
get a lot more. So now what we
need to do is just rescaling the shape a bit. Let me bring the pivot in the center and then
bring that here, and then I'm going to just rescale it to a
manageable scale. Okay, now you see, we have a two meter geometry
which is going to match. This portion in here is
going to match to this one, and it's going to make
that a tiling geometry. So now let's go here and instead of this degree which rotates once from here to here,
I'm going to double that. So this is going to
keep that tiling. But if you go to others,
for example, like this, you might have problems
rotating these geometry parts. So now, because we
have no problem in tiling and we have no
problem in using geometry, let's try to add more geometry so that we get better
rope like that. Okay? This is going to
be our initial shape. Now, let me just
write 72 times two, and that is going
to be this one. So again, we're going
to get that tiling. Why? Because if I
press iteration, it's going to just be tiling. And if I just take this one
as well and bring it up, You see now the geometry
is going to be tiling. Okay? And we're going
to make sure that the texture stays
tiling as well. So let's just try to
add more of those. Let's go for 100
because we don't have any problems with adding
those geometry parts. Okay? Now you see we created
a basic shape for our rope. Let's go to this shape as well. And let's see if I could
bring one in here and test. No, this is not
going to be okay. Let's apply everything and
bring the pivot to the center. Now it's a bit better. Now I deleted one of those, apply everything, bring
the pivot to center. And apply all of the geometry results and it's going to create
a basic rope shape. And later using the
curve modifier, we're able to create
a lot of ropes around these objects that we have created to create a
very convincing result. So our rope is going to be
like that. Let's go back. And I'm going to just take these and delete those vertices
and then see the results. Let's not use that. Let's go for the initial
scale times three. This one is going to create
a tiling mesh as well, but that is going
to be a bit better. You see now if I
try to tile this, you see the geometry
is continuous and later, it's
going to help us. This amount of rotation is
going to be a lot better. Now let's check the normals. You see now the
normals are flipped. So just flip those and
you're going to get okay. So now, this is going to
be our rope. Let me apply. Now you see we have
a tiling geometry that we could try to tile using the curve modifier
and because we have a lot of resolution in here, it's going to be very
great for those purposes. Then we have these ones as well, which are going to be
sculpted just a bit, not too much because if you take a look at the
composition in real engine, these are far away measures. These are on top
of the buildings, and the player might not be able to see a lot of those details. So this is valid, as well. Sometimes you need to just
save your time in something and invest it on other places where you
might get better result. Okay? Now, I'm going
to just take this. This is going to be our rope. Later, we're going
to unwrap that. Do not worry and unwrap is
going to be tiling, as well. We have a tiling geometry which is going to
tile because that is exactly 2 meters, okay, in Z. And then we are going to make sure that these tile
in texture as well, just like a seamless
texture that we create in designer
or something. Okay? And then we're going
to bring this here and try to create a very basic
unwrap for them. So the unwrap is going to
be based on sharp edges. Let's do something. I'm
going to go to UV Editor. And you see, we don't
have any unwrap here, and the unwrap is not
going to be that great. So let me just delete those. And then I'm going to go
while being in edge mode, I'm going to go to Select
and select sharp edges. Okay? Now you see it as
selected those sharp edges. I'm going to right
click and Mark C. Go to your polygon mode, select all of them, right click. Unwrap when you are
in polygon mode, it separates them
based on those parts. Let me see where we have selected or what
we have selected. I don't want this one to
be a seam right click Clear Sam once more unwrap. Now you see we have
this part in here. This one separated. This one is separated and this
one as well is separated. Of course, this one
is another one. So we don't want to have a very sophisticated
U before that. This is only for generating the polygroups in Z
brush, excuse me, okay? I'm going to copy twice, and then these are ready
to be exported to Zbrush, a very simple sculpt
and edge define. And then later, a lot of it is going to be
created in painter, because I said that these measures are
not primary meshes. They are going to be far away
and the player might not be able to see and for example, just see them from so
close of a distance. They're going to
be used far away. So it makes sense if we save
a bit of time on these. Okay, I'm going
to export as FBX, and I'm going to just
create a folder. And just call it base mesh
because that is what it is. We need to select or limit
the selected objects. And just to make sure that we
didn't create any geometry, you could triangulate phases, but I think the
geometries are fine. So now, Just call it shingles, and you should be fine. Export. I just created a Zbrush file and
imported this because that is very easy and there's
no learning value in that. So you see now, we have polygroups
that are just one. We need to create
different polygroups for later use in Z measure
or something like that. So I have the button placed in here,
autopolygroups with UV. Again, if you want,
you could go to your polygroups and then
to polygroup with UV is going to generate
polygroups wherever you have created UV in blender
or your three app. You see now, based on those UV islands in
Blender that we created, we are getting different
polygroups and they're going to stay there no matter what. Okay? And for example, sometimes you might do something to clear
the, for example, that might be going into decimate and preprocess
and decimate, you want to keep UVs. So let me just do
a demo if I pre process and then decimate that, you see the polygroups
are no longer there. And if I go here, you see the
ultopolygroup with UV is not activated anymore. So if I go back let
me go back again. You see now we have to
polygroup with UVs. If you press keep
UVs, pre process, decimate, still this option is there because it
has kept those UVs. So sometimes when for
these operations, you might need to keep the UVs
because that is important. Auto polygroup with UV
on all of them Okay. And that is going to help
you in your process, especially later for
creating unwrap and we topologizing this automatically
with Z we measure. Okay? Because we created
low poly result in blender, we are seeing that in here.
So there's no problem. We could use polish to
remove a lot of those. So in order to generate
a cleaner result, I'm going to dynamos on
percentage like that, and then you have polish, which is going to help you
polish these and then you can smoothe as well to get
that result, okay? It's going to help us get
some initial geometry, okay? Sculpt, and then the
polygroups are kept as well. So just make sure
that whatever you do, you shouldn't destroy
these polygroups. Especially if you
press Control W, it's going to unite all of the polygroups
and we don't want that. We want that to be separate. It's going to help us later. Okay, ready for sculpting, and these polish features
are just a bit different. You can find them in
the formation tab, and then these polish options, I just brought them here
because I use them so much. So this polish, the first
one is going to just polish everything and just
make something like plastic. If that is something that
you want, just go for it. The second, which is
polish by mesh features. It's going to keep
some of those features in the results and
generate based on those. First, you have a couple of options Okay, let me bring that. You have options. You could
use one or the other. Sometimes, for example, you
see this one is going to be a bit different and this one is going to be
something like that. Of course, this is
something very good. It's just making the result
just like we wanted. And then the next one that you could use is polished
by polygroups. It's going to keep your
polygroups in place. And then it adds
another option as well. By removing that, you are
getting such a result. Okay? You see now these
are similar let's deactivate that and polish by polygroups deactivate
that once more. Okay. See now, we
get polished result with sharp edges that we
could go and try to sculpt. But again, let me go for 2048 and then re
dynamise to distribute polygons a bit better and get a qua topology
to start to sculpt too. Okay? Dynamic it will bring the geometry to a
sculptable stage. Okay. And then now the last one. Okay. Now all of them are
ready to be sculpted. And we have Alpha
brushes as well. But first, we are going for edge pass and try to
sculpt the edges. Okay, let me hide all of them. Okay, we're left with this. And to help us sculpt better, I'm going to use some of these Alpha brushes that are generated from
free images from net. We are going to use
these for sculpting. Those shingles that might be a stone or clay or
something like that. So those Alpha brushes are shared with you as
well in the project files. Okay? You can use them
on your projects. So let's pick up an Alpha, and I'm going to again
bring that alpha. And then we are going to
just sculpt these edges. And because this is
shingle and it's going to have a sharp transition, we are going to go a bit more on sculpting on
these edges compared to wood because you see the edges of the clay or stone are different than the edges
that we have for wood. And that's why we are sculpting
these edges a bit more. First, it's going
to be sculpting these edges, dynamesh once more, and then we are going to bring those
Alpha brushes and generate a bit of
noise so that later that we bring these to painter, we have some details to start
to work with for baking. So let's try to work on edges. And I just said because
these are far away meshes, we are not going to spend a
lot of time sculpting these. And I found something that I might want to whenever
I try to sculpt this, I duplicate it and use
it on other places. And then for every iteration, I go for a more
distorted result. I mean, this is going
to be the healthiest, and then I duplicate it over to somewhere else and generate more damage so that
we save a bit of time instead of re sculpting
those shingles from scratch. Okay? This is going to be the healthiest
shingle on the kit, and then we're going
to duplicate it over to other places and
use them there. And the rope as
well is going to be just sculpted in painter. Sculpting and texturing is going to be done
in painter because there's not going to be a
silhouette change there. All we need to do is just
very small shape changes. Excuse me, very small
details, not shape. So because these are going
to be changed in shapes, we are sculpting them in
zebush to add details. And then you see,
because we are using those polygroups in here,
later for retapologizing, it's going to help us a lot with retapologizing and
creating the UVs. Okay. And a bit of sculpting. Okay, I will help us
with reading the shapes. Okay. And then I'm going to duplicate and I'm going to bring that here and use
it for this one instead. And then I could take
that one and delete. So now let me try
to sculpt here, and then I'm going to generate more damage for every
stone that I go. Okay? This is an iterative
process as well. Just try to sculpt these,
and you should be fine. And then when you sculpt it, do not forget to re dynamesh because we have changed
the topology a lot, and that will just generate some polygons might go too much far too far
from the center. So you want to just go and
keep your sculpt retpologize. Okay. And then let's
try to generate some surface sculpt as well. That will help us with generating noise
later in the process. Okay, then we'll duplicate this and generate even more
damage on that and then duplicate and
generate more damage. We create four of
these shingles. And using these four shingles, we're able to create basically a lot of roofs. Okay. Now let's do something. I'm going to bring that and try to just compare them and we need more
detail to be placed. Okay. Okay. Now let's re topologize once
more using dyna mesh, and that one will help us generate a better result to
be duplicated over to here. Okay? Let me duplicate once
more and bring that one here. And then this one could
easily be deleted. Okay? And now even
more damage here. Let me bring the clay
buildup and try to sculpt. But since these meshes
are a bit smaller, we could keep the back face mask on so that we don't sculpt
the other side, okay? Let's try to sculpt
here as well. And just activate the
back face mask so that you don't create any bugs. And you'll see that this one creates some silhouette
change as well. Okay, we apologize. And then I'm going to
duplicate it for this one. So duplicate bring here And then this one
can be deleted. Okay, now let's bring
the turbo smooth, excuse me, trim smooth border. And I'm going to just
start to work on this. See now it has a lot of noise. So let's try to
laten some of that. Because later we're going to
bring in the Alpha brushes, and that will help us generate
the results that we want. Read Dyna Ms once more. Okay, now we have four of
these shingles created. In the next lesson, we're
going to bring some of the Alpha brushes and go for a quick sculpting
pass on these. Okay. See you there.
28. Shingles Sculpt Finalized: Okay, everybody, we sculpted these shingles and we just
added some surface definition. Now it's time to go and add some really small details
for L of the stone. So you already know
that we're going to use Alpha brushes and let me activate the backface
mask already. And then we are going
to go for imports. And here are the brushes
that we are going to use. So let's start with
this one and you already know how we are
going to use this method. We are going to apply that to shift so that
whenever we press shift, we see that. Okay?
This is too much. Definitely, we need
to change the scale. And then we go with trim smooth border and try
to flatten some of that. Okay? Now, let's do something. I'm going to bring
this to four K and re dynamis then we are ready
to start sculpting. So let me bring the intensity to something
like that half of that value. Now we need to bring
it up even more. We have the back face mask activated and it's going to help us to prevent affecting
the other site. I mean, that whenever we
are trying to use that, these sites are not going
to get affected at all. So it looks like 21
is too much as well. Let's go for something,
not that much. And you already know
that because these are far away measures. We are not going to try
to sculpt a lot on them. So we might even finish them in just current lesson and
not go for other lessons. Okay. Now some directional
pieces here and there. And now let's do something. I'm going to bring
the blur to zero. And now we're not getting any
blur while dynamiing that. Okay? Now I'm going to bring the Alpha square Alpha and then try to smooth some
of those here and there, so that it's not too
repetitive and too noisy. We want to flatten some of that, so that later we add
those details in designer or painter or whatever texturing
app that you have. Okay. And then since these
are far away measures, we are not going to
add details that much because no matter how much
detail you add to these, a lot of that is
going to be unseen, so nobody is going to see that. So why wasting time on something that nobody is able
to see in games? Okay, let me activate
backface mask for this one as well and then try to
smooth some of these then try to flat
on some of these, and this is going to contribute to the silhouette as
well later that we are going to use ZR measure. These changes are
going to contribute to the silhouette as well. Okay. Now, let's go for this one
and bring the resolution up, re dynamie to get so much
resolution to work with. Now let me go bring another
Alpha. Let me bring this one. It has a lot of noise
and shape changes. You see, very good stone shape. Okay. That's good for now. And make sure that
you do not lose your polygroups because they are going to be needed or later. Okay? Now using
trim Smooth border, let me change that
to something else. Now I'm trying to
flatten some of that while sculpting additive and subtractive at the same time. Because this is going
to be far away mesh, I'm not going to remove
a lot of noise either because these noises are going to be visible
from far away, adding a bit to the complexity
of the final result. Later that we're going to
texture this in painter, you're going to understand. Just try to flatten these results and they
should be good to go. Okay. Now let's go for the third one which might
need to be polished a bit. So let's try to polish to
remove some of that noise. Okay, it's going
to be better now. Now let's go for K, re dynamesh. And then I'm going
to bring another Alpha Let's bring this one, and all of these are shared with you in the project files. Okay, very simple
because this one was supposed to be
the noisiest one. Okay, I'm just going to
remove some of that. Let's go to the default Rush. I mean, the trim smooth border to remove
some of that patterns, and then you should
be good to go. H. Okay, let's try to check and you see a bit of silhouette change is there as
well, which is a good one. Okay? Now, let's add just a
bit of polish or k dynamish. And then let's go for Alpha and bring this one
which is too noisy. Okay? This is just
surface noise, not changing the
details that much. The big shapes, I mean, Okay. And I just said that if
you have extra time, you could go and
try to sculpt more. But since these are far away, secondary measures,
we are not going to spend a lot of time on them. For those woods, you saw that except for
the texturing phase, which we postponed
to another time, we went and applied
a lot of details. But for something like this, which is not going
to be that much important for the
composition and only holding a bit
of silhouette, you could just go
and use a bit of saving and not to try to make
that that much complicated. Okay? I could call the sculpting
stage done for now. And now let's do something. I'm going to bring these and try to create
lo poly from them. So you already know that
we are going to keep the polygroups and
then we are going to use ZR measure to help us get
good lo poly or at least a good base for the locally
which is going to be improved in blender later on. Okay? Now I'm going to duplicate that mesh and while making
sure that this one is visible, I'm going to go for
a final dynamic, but this one is
going to be on 1024. Why? Because I'm going to reduce the amount of polygon and make it easier for Z measure
to apply the changes. And that is going to bring
the polygons back together. And if there's any errors
or things like that, it's going to keep
those as well. So you see it has kept
a very good silhouette, but bringing the amount of polygons to a more
controllable value. Okay. So we could go for 2048 instead. Okay. And now let's try to test to see what happens with
the Z R measure. So you already know that
we're going to keep the polygroups which is going to keep all of these and bring the calculations
based on these. And then another one is to detect let's go for ze borders, which is going to take
a look at borders and ZRemesh on one, which is going to stay close to one K as best as it could. Okay? Now, let's try to
test to see what happens. So definitely not what we want. So we need to disable
the freeze borders and use this one instead. I'm going to pause and return back when the
calculations are done. Now you see we get
something like that, which is close to one K, and it's going to be good for keeping the silhouette plus. It's good for low
poly unwrap as well. For now, let's go
back. I'm going to bring the adaptive
size to 100. This is going to keep the details where it's needed by bringing a lot of
smaller polygons. So now let's go
for Z, we measure. You see, because it
keeps those details, it's going to create
more polygons, but we don't want
that because these are just relatively not
that important measures. We are going to go for
a low poly result. So let's go for
that one instead. 4.5, which is going to
bring the polygon amount, to a more optimized level. Okay, now, this could be a bit better. So let's do something. I'm going to go back and
bring the adaptive size to one and Z remesh on the
same settings to see what happens because I don't
want to have a lot of those unnecessary details on places that there is
not needed to be. So let's see what happens. Okay, you see now we get
much more optimized results, but we get some errors
here and there. So let's go for that one. Okay, and you could go for decimation as well if you want. So we're going for ZR measure, and let's see with these
settings, what happens. Okay. Now let's compare that to the
high poly which is great. Now this is going to bake
wine without no problem. Of course, you could go and try to use decimate as well
to optimize it even more. But since Nant is
going to allow us to bring more polygons,
I'm going to keep that. Okay? Another option that
we're going to use right now is the unweld
based on polygroups. This is going to
separate these so that later we could add
UVs just right away. For example, when we import it, this is going to be a single
plane imported in blender. You're going to understand what it's going to do right now. So if you want to do
something like this, you want to go to your geometry, and it should be modified topology weld based
on polygroups. So this is going to make
each of these a single mesh, and it's going to
save us from all of that polygroupEcus
me, wrap in Blender. We just bring these single wrap, and it's going to be
done in just a second. And it's going to help us not to unwrap anymore
on these objects. And you're going to
understand just in a minute. So now this is high
poly and low poly. Let's go for here as well. I'm going to duplicate. And then on a resolution two K, re dyna mesh to remove
a lot of those details, and then we are going for ZR measure with
those same settings. Let's bring it to 0.5, detect edges and keep polygroups adaptive size to
50 and Z remesh. It's going to give
us a good mesh. Now we get something similar
to the previous one. Now let's compare that against the high poly it's going
to bake perfectly. So now, this one, again, we're going to
duplicate two K. Okay. And do you see there are
some problems in here? So let's see what happens. If Z remeasure was
able to remove that, we're going to just
go away and leave it. And if it didn't, we will
return back and maybe fix the topology of the hi poly. 0.5, detect H while keeping polygroups and on
the same settings, Z remesh. But looks like there's
a problem in here, which could be fixed
in blender so easily. I'm going to leave
that for blender. Okay, let's go for unworld
borders and this one as well. We could go for unworld
borders as well. If there was any problems, we will fix in blender. You see it as a good silhouette. It's not just a single
cylindrical detail. Now, this is the final one. Let's duplicate two K dynamesh. Then 0.5 detect H while
keeping polygroups ZR mesh, and it's going to be fine
after unwelding the borders. Okay, this one is good as well. Now let's do something. I'm
going to go unweld and later we will weld them in blenders
just with a single click. So now we have eight stop tools, and it means that we have four high poly
and four low poly. So although this is
a good high poly, we are going to decimate
these even more. And it's just fine if
we just use these. It's not going to be a problem, but it's going to be better
for getting faster results, especially if you bring them in blender because blender is a bit laggy when dealing
with a lot of polygons. But you see, let me
bring the decimation. We are going to preprocess
and the decimate on 20%. It's going to keep all
of these details plus reducing the topology to a
great number. So preprocess. Let it calculate. And then decimate and you see we want
to something like that, but we didn't get
any quality loss. But we lost the polygroups. You want to keep that in mind. It's going to ruin
the polygroups. So preprocess and this is the next hi poly then
decimate, very good. And now this is the next one. We're going to repeat
the same process. Okay, decimate and
now it's good. The last high poly and
now decimate, very good. Now we're going to
export the low polypils. So let me go and select all of the low polypils and you want to make sure
that they are visible. Okay. And then we
are going to use FBX export and import settings. If these are quad, it's better not to
triangulate them because quad mesh is going to be
better for unwrapping. It allows us to
create lat UV shells, which is going to keep
the UVs more optimized. Okay? We want to make sure that the visible subtols get exported and these settings are going to be activated
and I'm going to export. Okay, let's just
call it shingles LP, representing the low
poly and it's going to export all of those so fast because there wasn't
too much polygons. And now we are exporting the high poly piles exactly
with the same procedure, and then it's going to be HP
representing the high poly. And then all of these are
going to be matched in blender and be ready for baking and
texturing inside painter. No, it looks like
there's a problem. I just activated that
one accidentally. Again, I'm going to reexport
that to avoid those issues. Okay, a new blender file, and I'm going to bring in the FBX files that we have
exported from Zbrush. So here it is locally
and these are great. So let's just see
what we have done. If I bring the
polygons, you see, it's right, but then
there's a problem. There's not a problem. There's
actually a good feature. If you select this, you see that polygroup has been just
separated to one UV shell. And this is going to make the unwrapping process a lot easier. We don't no longer
need to go and define the borders
of the UV shells, and that is going
to be very good. Okay? Let's do something, and in the tea menu, you want to make sure that a scale and anything is correct. So that's why I brought one of those barn meshes to compare them with
this, and it's okay. Okay. Let's apply everything as the pivot is going to be in the center
of all of these. Okay. Let me create
a collection, and I'm going to name the LP. Okay? And now there are
some fixes that we need to create here, for
example, this plane. Let me select them. If I delete, there should
not be a huge problem. So let's select all of
these plus this one. If I press M and
collapse, you see, it's going to bring all of them to one point and
remove that problem. Okay. Now, let's do something. I'm going to bring in the hi polypils as well
and test to see if the scale and anything
matches with these. Okay? Hi poly. Okay. And they are matching. Perfect. So I deleted those
to keep that a bit more optimized. And
let's do something. I'm going to bring the
rope as well here. So here's my rope mesh. I'm going to copy, not
just paste it here. Okay? This is going
to be the high poly and low poly
at the same time. Okay, now I'm going
to select all of them and create a new
material for them, and let's call it underscore extra because these
are extra meshes. Contributing to the other ones. So let's bring this
one here as well. Then I'm going to create a high poly boulder while
duplicating that HP. Now, this is going to be high poly as well as the low poly. You see, no matter what we do, we have a rope mesh in high poly and low poly
at the same time. Let me just remove
the high poly. Okay. And now it's
time to unwrap these. So the unwrapping
feature is very easy for these because now
these are just unwrapped, the borders are defined. And now only thing
that we need to do is making sure that they have a UV map and make
sure that the UV map is just the same name
for all of them. So you want to make sure that
all of them are the same. And if I go and go to UV
Editor and select all of this, right click on wrap, you see, based on those borders, they are getting very good
on wrap because these are now simple borders and we do
not need to create UV maps. Okay? Now we could do one thing. If I select all of
them by distance, it's going to remove
all of those features, and now you see this
is now one mesh. Okay? This is a very
good shortcut in creating wraps using
blender and ZBrush, wrap, and it looks like
this one is buggy. So let's see I'm
going to select that. Okay? And it looks like there's a bit
of problem in here. So let's see what happens. Let's select them
once more wrap. Okay. And if you want, you could just fix these issues. Let me delete that. Now, let's leave it B. Or we could slide. Okay. And it's now time to choose. Do we want to fix this or
do we want to leave it B? And it depends on our situation. Because this is a faraway mesh, we are not going to do anything. It's going to just be fine. Okay? And if it was just you could
go using the same procedure, try to go back to Zebush
and try to fix that. So now while inspecting, I found that this
is the problem. Let me go to the high
poly and you see this is the version that
we didn't decimate. Now we have these
polygroups in place. Now, this is the low poly. I'm not going to
remove that for now. Let me duplicate and resolution, dynamis on two k. Okay. Now let's go for ZR measure and change some
settings to see what happens. Let's bring that to 0.5 again. I'm going to
activate polygroups, but I'm not going to detect
edges to see what happens. Now we get a cleaner
result already. Okay? And avoiding that
detect edge helped me. In some cases, you need to
go for different settings. Okay? I just went for separating these so
that the unwrapping is getting a bit easier
and automatically done, and we do not need to define the borders and
things like that. Okay, let me go here
with the same settings. I'm not going to triangulate
and let's export. Okay? And opal 01 and
in blender again, so it should be
replaced with this one. So sculpted. This is it. You see it gets replaced there, and this is the previous
one and this is this one. Let me remove that, but you
make sure that you bring the pivot here in the center, place it in the low
poly folder and apply that underscore extra
material, which is this one. So now, bring the excuse
me, UV map as well. Right click on Rap. Perfect. We fixed those issue. So now, this is done as well. And let's see what we could do. I'm going to select all of them, select all of these. So there's something that hasn't been unwrapped yet, okay? It's this one. So
right click Unwrap. Perfect. Now I'm going
to select all of these, right click and select
all of the vertices. M by distance, you see, it removed quite a lot
of those polygroups. Okay? Looks like we should. Before that, I should have
unwrapped this one as well. Okay. Now all of
them are unwrapped. Perfect. Now, select all of them merged by
distance, okay? It merged a lot of
those vertices, and now it's time to pack
them in a single folder. So we are going
to use UV packer. And I'm not going to
care for let's see if we could use rotation or not. First, let's go to Text
tools and U VMs to separate by smooth by UV Island. Okay, you see, it has created UVs islands wherever
the UVs are separated. It's going to be good unwrapping,
excuse me, for baking. So let me select all of them. And you see the sharp line
created is the result of that. Let me deactivate the rescale and set it to high
quality padding to one. And let's see, for example, about this if we
could try to Okay. You see it gets fixed, but some problems happen. So inspect to see if there's
any problem happening. You, you see, this
is problematic. But some of them
could get fixed. For example, this is not.
Okay. This will be okay. This one as well. So, this one is not. But this one could be right. It's going to not be that okay. So let's remove Okay. Now let's do something.
I'm going to go for UV packer and pack once more. Looks like this is the
best that it could do. Okay? Now, we are going to add
the rope as well and make sure that it's the high
poly that we are unwrapping. So because it already
has an open edge here, and here we no longer need to create seams for here because
these are already seams. But I'm going to select these
lines in the center, okay? Create a UV which we have
already created wrap. Looks like we could. We should
have marked these Seam. Okay? Unwrap? Perfect. But since these are perfect squares, we could go for
something like this, and now it's time to mix these. So let's do something.
I'm going to rotate these and pack, let me bring the
padding to zero. I don't want any rotation, okay? We want to make sure that
they start from here exactly from zero and
all the way to one, just like this one, because we want the texture to look tiling. But before that,
let's do something. I'm going to apply
everything including the scale and pack once more. Okay. Now I'm going to select
these and try to scale. But instead of scaling like
that because it's from here, I could go and scale based on to the
cursor, which is from here. So now, if I try to scale, it's trying to scale from here and no longer scaling
from the center. Okay? Let's try to scale, but it's going to be a
long X and make sure that it's just like a
seamless texture like so. This one is okay. And this one, let me try to scale in X. But since they have
no buffer zone, I'm going to select this one
and bring it up just a bit. It's going to be in Y, okay? To add a bit of distance here. Let's lock the movement to Y because we don't want
to have texture bleeding, and I'm going to bring
them up exactly to here. So we need to bring that here and a bit of scale just to make sure that they are
in the zero to one UV space. Okay? Now if we blend these, you see there's a
bit of overlapping. So now, I'm going to select all of these and select
all of them as well. Let's go to UVSync so that
we see what is going on. I'm going to select these and
try to scale them like so. Now let's pack these only let's add just a
bit of padding hack. And now we could again
try to scale here from the two de cursor so that it
scales all of them to here. Now, in order to save
a bit of UV space, we could bring these and manually try to place them
in a more optimized way. And Okay. This is good now. There's a bit of
waste that UV space because it's inevitable
using this method. We could have created one material for all
of them, for example, the rope being a
separate material or the shingles being
separate material, but it's not going to be
that good for optimization. So now, here they are. And now let me hide these, and I'm going to bring the high polypilsimport.
Okay, here they are. And let's place them
in high polyfolder. And we want to make sure
that we select all of them and apply that underscore extra
material to both high poly and low poly so that
it's good for baking glater. Okay? Now, here's our low poly and
here's our high poly vinyl. I'm going to take
these, export them, and let's just call it ingles LP representing
the hi poly. Make sure that you only select you only export the
selected object, and then it's time
for hi poly piles. HP representing the
high poly and export. Okay? Now I'm going to
pause and return back to you in the next lesson where we go for baking
and unwrapping, excuse me, texturing these in painter. Okay? See you there.
29. Bake And Texture Shingles: A Okay, everybody,
now we are in painter and I just imported
the low polypils and you see that the UVs and naming and placing and
all of that is correct. So we're going to do a taste bake and see
what is going on. So first, I'm going
for a normal map, and let me just select a high Poifolder and see if there's everything
working right or not. Okay? See it's
working perfectly, and the cages and everything and all of
that is working fine. But we need to bring this just a bit to
something more controlled. Okay? Just take a look
around to see if there's no points like this
in the result. So that way, you're going
to just expand the cage until the cages are no
too far, nor too close. Okay, in here as well. So that is because of
a geometry problem. And since it's a
very, very tiny, small polygon, we're not
going to do anything with it. Let's just let that
bake right away. Or you could go back
and try to fix. Okay. Now let's bake and see if the normal map is
baking perfectly, yes. But in here, there's
no normal map because we haven't
done anything yet. Okay? And we have the clay
information applied here, and this one also is going to be textured
fully in painter. So now that we know that
it's going to work right, I'm going to bump up
the texture to four K and let's go bring the samples up to get a
better high quality results. I don't want the ID because it's not useful here.
Ambient occlusion. You see, because these
messes are closed, it might be that ambient
occlusion affects each other. For example, these
areas which are close to be darker
than these areas. So you could go for especially
when you're creating kits, it's a good idea
to self occlusion. You could set only
by say mesh name, but since we don't have
that mesh name now, I'm not going to use that. Now curvature these ones
are okay by default, bake, and I'm going to return back and see you when it's done. Now let's start
texturing and let's take a look and you see it's
kind of a clay material. So there are clay materials in here to get us
started texturing. So let's see and this
one is the best one. Okay. But it's going
to affect all of them. So first, let me create
a folder and just call this one clay and let me
start to add a black mask, and then I'm going to
go for my polygon fill, and let's go for objects and try to select
that so that it only selects the
shingles, basically. So now let's try to change
some of those dry and ancient. No, this is not
going to be okay. Of course, that is very good, but we need to change
the clay color to something like something like
the ones that we have here. So let's pick up
something that isn't affected by the light that much. Now I'm going to bring the value down because I
want it to be a bit darker. And for the secondary color, let's pick up something
lighter from the same. And this way, let's bring
the saturation down. Okay? This one is a great
one to get us started. So it's a good one. So now we are going to add
layers on top of layers to make that look right
and good for our purpose. But definitely I like the
color to be a bit darker. And if I apply, for example, one edge has to all of
these, for example, let me bring smart mask
that has a bit of edge. Let's go for edge. Scratch, for example, it has some edge value Okay. But it's going to be like that for all of the instances.
So we have options. We have options, for example, to apply that edge here to make that a bit more distinguished
result or later that we could patch these and create new measures with them and
bring them to painter, apply edge pass there. So we have options. So I'm going for something in between. Let me just set that to
something like multiply. Or let's go for ten instead. Okay, and then I'm going to bring the color to
something more controlled. Okay, let's add just a couple
of layers on top of that. Let me add a black mask, and I'm going for
my procedurals, and let me bring
some colors Okay. This one is going to be good for adding secondary
shapes on the texture. So let's bring the balance to
something more controlled. Okay? And then for the color, let me go for the
color only and bring the reference and try to pick up something from these areas. So it's dust so it
could be darker. Okay, you see, it's trying to
add in more details there. So for roughness, it's
going to be rough. And for height, let
that be additive. So roughness of this one
could be up as well. I like this one to be darker, which is going to be decided
in Unreal Engine later. We have color controls there, and it's going to help us
to change the color even more. So let's go here. So let's remove that edge damage and bring something
more controlled. You said it has
some edge damage, but it's going to be adding dust pass as well,
which we do not want. So Okay, this is something okay. Global balance down with
just a bit of contrast. And let me pick up
a color from there. So it looks like something
carved just right away from the surface
of that color. And I don't want that to
look obvious right away. Okay, let's say that
we're happy with clay. Of course, there's
nothing stopping you from going and
adding more details. But now we are going
for that rope. So let's see. Let me
just search for fabric. And Okay. Now this is going
to help us better. So let's say that we're
happy with these textures, and now it's time to export these and try to
kit bash with them. These are not finalized
textures because they are going to be changed later. It's an iterative process. We changed something, and then
if we were happy with it, we will return back
and call it on. If it was not okay, we are going to change
that more, okay? Just to find a folder where your textures are
going to be exported, and then I'm going
to go for Targa, and it's going to be based on texture size, which
is actually two k. Okay? It's enough.
And now in Blender, I'm going to delete these
because these are the ones that are the base meshes.
We don't want these. Okay? Let me import okay this shingle low poly and then
add them to the kit folder. And then if I select one of
them and apply that color, it's going to be
applied on all of them. So base color image texture,
and I'm going to open. So here's my base color. And you see it has applied
that color on all of them. That is only color and no normal information
or things like that. But definitely, the
color combination is going to be a bit different. For example, later, we will add a good wood texture
and make these ones a bit darker because right now I'm not liking
the composition. I want the house to look like a bit desaturated and these
ones to be a bit darker. Okay. After this short lesson, we are going to pause, and in the next lesson, we're going to kit bash
the roof parts in here, which is going to be using geometry nodes for the first
time in this lesson because distributing so much shingles on a roof with randomization
using manual methods, it's going to take
too much time. So we're going to
use geometry nodes and create a tool that is versatile enough to
be helpful for all of these roof parts.
Okay? See you there.
30. Geometry Nodes For Rooftops: Okay. Now it's time to create the rooftops
for these buildings, and I'm going to just
create that using kit. And then whenever we brought
them to the blueprints, let me bring my meshes folder, and then the modular buildings, we're going to replace
them with that mesh in here so that it would
be repeated on all of the instances where we have these blueprints
duplicated. So now we are going to
create those rooftops, but the method that
we are going for is going to be a bit
different because so far, we have been creating
the meshes manually, trying to hand place details on wherever we want
to create these kits. But now I'm going to use the
geometry nodes to help us distribute those patterns
across the buildings. So now let's do something. I'm going to bring
the mesh that is corresponding for this rooftop, which is going to be
this one and this one, okay, I'm going to duplicate. Then this is going to be the
base for our sh creation. Okay? So I'm going to separate by selection and bring the pivot to center and let me bring
this one to the center. So let me place the pivot here. It might be more useful. Okay, we are going to use
the geometry nodes to scatter these meshes
around our patterns. So let me see the
dimensions of the meshes. They are half meter in
half meter probably. Okay? More or less they
are in the same category. So we are going to use
the geometry nodes, and what geometry node does
is that it allows us to create meshes and distribute
them around surfaces. So now let's do something. I'm going to select this mesh, go to my geometry nodes tab, go to material preview,
and click New. This is going to
create a geometry node set up on this plane. Okay? We have input, which is the geometry, and we have the output
which is going to be the final geometry that
we are going to output. This setup is going to
be so simple and without any prior knowledge of geometry nodes, you
are able to do that. The method is called instancing. So we take all of these
as one instance and distribute them along
these patterns. So how do we do that? Let me first do something. I'm going to take this and separate it so that we
work only on this one, and let me delete that, you can press this pin button so that whenever
you click anywhere you are getting the same setup, no matter what, and it's
pinned and it doesn't go away. So we need to select
these measures and distribute them
along the surface. So one way to do that is going
to be creating points on the surfaces to distribute
these around the surfaces. So let me do something. I'm going to take this because
we need to place these in one collection that is going to be more useful for
creating geometry notes. So I'm going to create
a new collection, and I'm going to call
it geometry nodes, 01 or whatever name that you might be it might
be helpful to you. Okay? Now I'm selecting these, which are in my geometry
nodes collection. Let me find them. Okay? They are here
and make sure that the pivot is in the center
or wherever you want. But the placement is better
to be in the center. Okay? We have all of
these in the center, and now we could try to rotate these as well because we want them to get
rotated in this direction. So now apply everything as
well as a scale and rotation. Okay, now we need to
take this geometry. This is this plane in here
that we have geometry. And if I remove that, you see we're no longer
able to see that. So this is the geometry. We need to sample points
on the surface to be able to distribute
these on the surface. So just search for points. And you see some geometry some results in here,
for example, points. This is going to randomly
create points around surfaces. We need to convert this
geometry to points. Okay. Just search
for points again, and now we have one operator
which is mesh to point. This is going to take that mesh, if I connect that here and then connect the output
to the geometry. You see, we should get a point. But now the point is
not getting shown because we need to set this
one to faces, for example. Okay. Now, in order to see that, let me go back to
the first 0.5. Okay. Now you see one point generated
on that surface randomly. It converted that
phase to one point. So now we have operator which
is called join Geometry. Okay, I'm going to
bring that here. Plug this one into geometry. You see everything disappeared, and I'm going to take
my initial geometry plus the points to be
able to visualize them. You see, in the
center of that phase, it has created one point. So why is that important? Because we are going to use this point to generate
geometry on top of that. It's available in the solid view but not in material view. Let's go to solid view
to be able to see that. A, we have one point in here, and now the result that we're going to use
is called instancing. So just search for
instance and you will get points to instances
or instances on point. Okay? Now connect the
points to points like that. And now instead of this point, I'm going to let me just the select that because I don't want to
be able to see the point. I'm going to be
seeing the instances. So it converted that
point to instance. So if I plug that here, let me plug that here as well. You see that we have
one point and instance. So what do we want to instance? We're going to instance
this collection. If I bring that and
separate children, reset, and go plug instance
to instance. Okay? Now you see it as instance one of these
shingles on that surface. And now, if we go and try
to bring more points, it's not going to be like that. We need to bring more points.
So how do we do that? You see now we have
converted that mesh to pass, and in the center of that phase, we have generated
one point. Okay. Now, what if I go for this mesh and try to manipulate that
mesh by bringing more faces? You see now it generates more
points on those surfaces. And now if I go to
material preview, you see that we are instancing those shingles
on the surfaces. So if I remove that, you see, we are getting these
on the surface. So there's one problem,
and that is we are seeing all of these
instances at the same time. You see, it's instancing all of these four
geometry in here. So if I go pick
instance, you see, it's going to pick
only one instance and create something like a
random pattern around here. So this is going to
be our workflow, and now, for example, you could go for rotation and try to rotate this
the way that you want. Of course, we are going
to change the rotation as well and change the scale in X, Y, and Z, which we are
going to change as well. But the main workflow is
going to be like that, creating points on the surfaces, the way that we want, and then generate data on those surfaces. Okay? Let me disable that. If I take this pace and try to rotate Okay, now
let's do something. Let's say that I'm going to
select this plane and apply geometry nodes to that and
select the geometry nodes. And from this drop down menu, let's say that I'm
going to select the same geometry node. Okay, you see now, if I unpin
this one and select this, you see we are able to see
what is going on there. Let me select something,
for example, this. Now if I select this one, you see the node, the same geometry node has
been applied to all of this. And if I go and
bring more points, you see now we are able to generate our results
in the geometry. So it's reusable as well, and it's going to
be a perfect case for generating the rooftops. Okay? Now I'm going to
delete this plus this one. Now, let me delete the
geometry nodes from that. Okay? Because I'm going to create a plane that is
just like this one, but I'm not going to reset
its rotation values. So I'm going to
duplicate that and try to rotate that to the ground let's do something. I'm going to go back, okay? And let me This is
just for testing. You could already go
and create a plane. Let me snap that to vertex active bring that snap
it to here, okay? And now if I go rotate, I'm able to rotate
just like this one. Okay? Let's go to solid mode to see if they are aligning
perfectly or not. Okay, they are somehow closed. So now, let me create a
plane that is similar to this one and let me go to local to be able to
rescale around here. I want to get a plane like that. I'm going to take
the other plane and remove it and use
this plane instead. But I'm going to
apply the scale. Let me apply the scale, but I'm not going to
change the rotation. Let me go to material preview
and add a geometry notes, click plus icon, and we have the geometry
notes created here. That is why now you see the rotation has
been applied here. Now, let me bring these
and bring them up just a bit and then
apply the location. Now you see it brought
them up a bit. Whatever you do is going to
be then applied to here. Now, let me go select this one, go to my geometry nodes, and I'm going to create random
distribution around here. I'm going to create
pass so that I see one that it's similar to
the scale of this one. Now let me bring Okay. Now we see very simple
rooftop created, but we're going to
change that even more. We have the same
setup and in order to explain it a bit better, I'm going to again
hide that or remove everything and start from
scratch. We have this mesh. You see, this is the wire frame, and we're going to convert
all of these faces to points so that we
could load points, instances on those points. I'm going to bring in what
is called mesh to point. Okay. Then if you
bring it to here, you see the green line becomes white and it means that
it's going to be connected. Okay? Now, what do you
want to convert to mesh? I mean, do you want
to create points on vertices or
edges or on faces? We are going for faces. Because we want to generate them on the center of the pass. But also, you could go
for other ones as well, for example, corners
or whatever. We are going to faces. Okay? Now, we are going to
bring in instances on points. This is going to generate
instances on those points. If you connect that,
you need instances. So we're going to
grab this collection, bring it here, and apply. Let me apply that here. You see now all
of them are here, but you see they are
getting overlapped. Okay? You need to
separate instance with children and pick instance. It's going to pick one
instance for each point, and we're going to randomize that even more as
well, do not worry. So now, in this setup, you see that it's
just very normal and it doesn't have
any randomness at all. So now, one way to add
a bit of randomness is to distribute the
geometry itself. For example, if you take one of these points and
bring that back, you see it's trying to offset those which is what
we're going to do. And then another one is to change the rotation
and the scale. You see now by
changing the rotation, it's rotating them all at
the same time or by scale. We want to be able to first
pick up random instances. You see now all of these are
the same, plus this one. You see every row is the same. We want to be able to randomly generate from these four
shingles on these points. So now you see in here, we have instance index. This is going to be an index index
number that you can manipulate to generate
random results. Okay? Let me just search for index, and you
see it's here. So this index is the number, for example, in this case, it's going to be the
number of instances. So we are going to
randomize that. If I bring in random value let me just search
for random value. We have ID. We could connect index to that
and then connect it here to instance index. Okay? Now you see all of them are the same because we
don't have any value. We could up this
value, for example, instead of float
let's use integer, and you could change the
seed let me connect that. Okay, now you see we get randomized instances
where we want them, and you could change
the random seed to get different blocks for each point, which is going to add
to the randomization, so fast and so easy. Okay. You could just change the seed to get
something different. Okay? Now for rotation, instead of rotating them
all at the same time, I'm going to bring something to rotate each instance
individually. So there's a node which is
called align Euler to vector. Vctor is a three
point number and it means that these are
going to be the same. Now you see they are all getting rotated around a single
number like that. You see now they're
rotated in Z. We could rotate in
Y or in X as well. Okay. But we're going
to first change that Z because we're going
to change them along Z. Then let me just zero this one and we're going to
use a random value again, Shift D to duplicate that. But instead of using
random integer, I'm going to use
a random vector, which has X, Y, and Z, mini and max. If I apply that here to the vector you see now all of
these get random rotation. So now, we don't want
that to be so chaotic. So we leave this one to be zero, but the max value
should be changed. For example, let me
go to 0.1, 0.1 Okay. And now you could just
try to change these. Okay? You see how it changes the rotation
of them randomly. Okay. And you could change the random seat as
well to see which you like. This is what we're going
to do for instances later. Okay? Now we have one
scale value as well, which is going to decide for
the scale of these points. So again, I'm going to
bring in a random value. Again, it's going
to be a vector, which is going to
hold an X Y Z value. And if I put that here, you see, we should set them meant
to one and this one to, for example, 1.5, 1.5. You see now it's trying to change these with
something like that. But again, let me just go for
0.8 0.8 0.8 here so that we get change between the bigger
planks and smaller planks. Okay. Now we created very simple geometry node set up to distribute these
shingles on that surface. Now, we could also
go, for example, change the geometry if I
change the geometry itself, and let's say that I
take all of these, right click and stop divide. You see now we get
something more randomized. It's not going to be so
natural, but if we go, for example, change
the max to 1.3. Let me go for 1.3
on all of them. Or let's go for 1.2
or let's go for one. Or if it didn't, you could
just take these and try to change and change the scale. It's going to change
these as well. So now, another layer of
additional change is that we could try to randomize
these points to be able to change the
placement of these shingles. Okay? Just go for
your search menu. That search menu,
just search for mesh, transform and randomize. Okay, I already added a
bit of randomization, and let's see the
result in here, and you see the amount of randomization that
we add is going to directly contribute to the randomization
that we add there. Okay. And then
random seed as well. We could generate a lot of results just using this method. And now, if I go and
try to, for example, change the scale
from 0.5 to one, we get something like
this, which is not the roof shape that we wanted. We don't want so
much randomization. So it should be controlled.
Let's do something. Let me go to here and deselect the first row of vertices No, the key is to
deselect these edges. Because, for example,
sometimes you want to keep the edge because, for example, when you're going to generate a modular result, for example, that is going to connect
from edge to edge, you want the edges to
stay in their place. So let me bring the search menu again and there here's
the randomized and you see now we get randomization only on
these center vertices. And if I add you see now we get something like this. Now let's do something. We have the same setup, and it looks like that
we could export it using the old method using BTX and
use it in unreal engine. But there's a problem
to this method. Let me just explain with all of the same settings
I'm going to export, let's do a test import here. So our final folder and
you see, of course, the mesh is quite
heavy because we have many instances and a lot of polygons, it's not
going to work. Because they're still instances and they haven't been
converted to real mesh. So that is going
to be an easy fix. After your
calculations are done, go and search for realized
instances and connect it here. So now you see all of these have been
converted to meshes, and if you apply this, you see that you're able to go and manipulate
these measures. And of course, if you keep
the geometry nodes as well, it's going to work the same. Okay? Let me export and again, test you see now the scale of the mesh has
been changed dramatically, and it means that it's
working fine now. Okay? Now you see
the mesh has been imported just like we expected. And now let me just
try to test it here. So because these meshes
are rotated 20 degrees, I'm going to rotate this 120 degrees as
well to match that. And you see it works perfect. And later that we
add the variations, we change the color, and let me just change that color a bit because I
want the color to look darker. So let me go for
something like 0.5 Okay. Now you see they
look a lot better. And if I bring that
and try to test, let me go to something
around that and if I place, you see, are able to create
very convincing results. Now that we have the geometry, of course, it looks
like that much randomization is not needed. So we want to control that. Okay? We just created a geometry nodes setup so that we could use it
to create the rooftops. We are going to create
the rooftops in the next lesson because this lesson is taking
just too long, and I don't want that
to be like that. Okay? In the next lesson, we're going to
create the rooftops. Of course, we will
create randomization and all of that. Okay? See you
31. Rooftops Continued: Okay, everybody, now we just
created something like this, and now it's time to go and
continue creating that. But if you take a look, you see the roof
already has two sites. So that depends on us to see
how we want to create that. Do we want to go for
a perfect mirror? I mean, duplicating and
getting away with it? The first method is
going to be actually after applying the
realized instances, we could apply the geometry and try to duplicate the
measures, bring them here. Just go for a very
basic duplication or even we could
use mirror as well. This is the first
and simplest method. The next one, let
me just go back. The next one is to create a system inside the geometry
nodes to allow us to do. Okay. And we have
different levels that we could apply
the same formul. So for example, we could
apply that in this level. I mean, whenever we take that geometry and
convert that to points, we could take those points
and duplicate them to here. So let me just show a method. Let's go to solid view so that we could see
what is going on here. So if I just that here, so for now, it's not showing,
so it doesn't matter. Okay? That is not showing because we have
deactivated data. We need to first alight a modifier to be
able to see that. Okay? Now, these are the
points that are generated. We could take these
and duplicate them and bring them here
so that we could use them. For example, let me
just go for search, and there should be a
duplicate elements. Okay? That is here. Now,
we could do something. Let me bring that here,
and now I'm going to plug this geometry in here and
then the geometry to here. So what it does is that it's going to take
whatever we have from this geometry and convert them or duplicate
them on their place. So this geometry doesn't
have any points. If you apply that after that, it's going to make sense, but we are going to go for pass. You see now it has applied duplication for
now, but the amount is one. You see in here, we
have 220 instances, excuse me, point in here. But if I go, you see now, if I plug that, nothing happens. But if I bring the amount up, you see now we get
exactly double of that. And now on these points, we have on every point we
have to point to point. Now we need to take these points and bring
them to the side. So now we need two levels. We need join geometry. And let me remove that, and then we need to
just plug this in here. So why am I doing that? Because we need first geometry in the level in its own level, and then this one is going
to be then transformed. Okay? Let me bring in
a transformed geometry And then if I just try to visualize this one Okay, let me just log that here. You see now? See the amount of
pass being generated, it's exactly double of that. So now if I bring this, you see now we have
double the amount, and if I bring that down, you see now we do not
have any duplication. So now if I duplicate once, you see it's going to bring more faces here,
exactly the double. Now, let's say that we
are going to rotate this. For example, it's
going to be a long Z. Okay? Let me go for
rotation, 180 degrees. And you see now the
geometry is here, it takes a bit of transformation and moving around to bring. Okay, let's do something
because the pivot is in here, it's going to just
move from this side. So now let's do something. I'm going to bring the pivot exactly to the
center of the world. So that is going to be
easy pivot to cursor. Okay. Now see after
bringing that, it's going to line up
this geometry in here, and we just randomly scale that so we get a
duplication of here, we get a duplication here. And then if we just
convert these to points and then plug
the geometry here, you see we get
something like this. But there's one or two problems. One is the rotation of these and another one is the
fact that every time I go and try to change something from this
original geometry, for example, let me take some of these and bring them to
something like this. It's going to be applied
in here as well. It's going to be
totally symmetrical. So this method Aldo
is a good one, but it's not going to be
that great for our purpose. You could do
something like this, but I suggest if you want
to have a better setup, just continue with
the next ones. Okay, back to our previous
setup, and let's take a look. Okay. Now the rotation is
off. Let me see. Let's go for the rotation. O So it looks like we
have applied by accident, we applied that rotation. So now that information is gone. So you saw that in
previous lessons, we just brought it here, and the rotation was not
applied so that it knew the rotation and it knew that it should rotate
these with that degree. So now the rotation is gone and time to learn something new. So let's do something. After these instances, I'm
going to bring something. Let's go for rotate
instances, okay? We have an instance
rotation. It's a value. It's something that you can take the information
from. We do not want that. We want rotate instances. And there's a rotate
geometry as well, which is not going to be
useful for us right now. Okay? We are going to bring
that before realize instances because after that
it's going to be geometry. So now let's go and see how
we want the rotation to be. So we want to first, let's go that is in Z, so Okay. Now, you see, with that, we are able to apply
the rotation here. So let's go for
negative 25. Okay. See now we have rotated those
exactly along that surface. And with those random
values as well, we are getting something great
Now, here's for rotation. And if you want to duplicate
them over to the side, you could either
use the old method of grabbing the instances
and bringing them over, or you could just take
this one Control Shift D, duplicate to keep all
of the connections. And if you do not
have that shortcut, you want to go to
edit preferences, add ons and just
enable node wrangler. This is going to
bring some shortcuts that are helpful
for your workflow. So now, let me bring that here. And then again, we need to
bring one join geometry. Okay, now we have
these instances in place and duplication
of them here as well. So again, we could go bring
transformed geometry see now, we have transformed geometry and we have
transformed instances. Transform instance
is going to take individual instances and
just do manipulations. But if you go for
transform geometry, it's going to take them like a pack and transform
all of them together. So let me bring
connection like so. Connect the geometry in here, and then bring
instances to here. So now let me connect that here, and you see the number
of instances is 440. If I just plug this one, you see that's half
of that value. So after that, we have
something like this. Okay? So then we
could go and try to rotate that 180 degrees,
to get something like this. Okay? Again, let me take
a look from the top. It's going to be something
like duplicate. Okay. And then using
transform geometry, it's going to take all of them and just transform
them like a pack. And you see the
pivots in the center. If the pivot was off, we would have
problems doing that. For example, let me
bring the pivot to the place that it
was previously. Okay. Now you see we
have some problems, but I brought the pivot to
the center of the world. Okay, now you see the result. Okay? After such result,
you could again, bring the transform
instances rotate. And then let's just
try to rotate. And you see it's
rotating them like this. Okay? And this way, you get something that looks
all right for both of them. But again, there's a problem
because I believe if you take the and just you see
now, it's just symmetrical. If you want that
symmetrical to be absent, you want to go for
another method. So this is another method. But if you want to
go for another one, just bear with me. We're
going to explain that. So I'm going to take
all of these and delete them and now this one is more customized and it's
going to better for our workflow because we
could take each one and, for example, bring a
full geometry and try to just apply any
instances that we want. So let's say that, I'm going to bring
a full geometry. So let me just wrap that. This is the building number one. And let me just take all of these Okay, I just selected one of these that are separate
from the geometry. You could go to select and
I'm in the phase mode. Select, select by similar.
So let's go to area. Okay? Now, we need to just
bring the value up Okay. So, just by bringing
the value up, we were able to select
that and delete them. Okay, because I don't
want them to be there. So let's do something. I'm going to bring
that to the center, but I don't want to upset
this from the original place. So I'm going to bring that using old D instead of
Shift D because now, whenever I change
something in here, it's going to be applied on the original instance as well. So let me bring that
here and try to just place it in a way that we could see the placement of our
instances on this building. Okay? Now here's our plane, and I'm going to
duplicate to this side. And let's just try to change some things
about these geometries. For example, I could try to
go to local mode or normal. Okay? Try to flatten these, bring them up so that you do not see some of those really
dramatic changes here. Okay? Now I'm going to
join these two together. So this one is the
one that we need to take the name Okay, this one is going to
be joined to this one. And now if I bring the geometry, you see, instances
have been applied, but there's a problem Again, the rotation is off. Okay? Let me apply everything, and let's go to the geometry
nodes and see the results. See, it's good on the building, but the problem is that the rotation of some
of these are off. So how do we select these? We are going to use index. So by bringing index, we're able to select the different instances
that we want. So you see the number
of instances is set to zero because we have realized those instances to geometry. So if I bring that to
here, you see now, we have 440 instances in here. So let's say that
every one of these is an instance and every one
of them has a number. So we want to select every instance that
is bigger than 220, which is the half
number of that. Because on every side, we have 220 shingles, and that index number is going to be helpful
for selecting. So let me bring rotate
instances again. It should be here and let
me bring that like so, and I'm going to connect
that to here as well. So now, if I try to rotate, you see, it's going to
rotate all of the instances. It's rotating all of the
instances at the same time. But in here, we have
selection input as well. So this is going
to help us select different instances
that we want to grab. So if I just grab
a node right away, you see that the first
one should be an index. So we have an index in here, but it's not going
to do anything because index is a number. You see now every
one of these has an index number starting from zero all the way to 439, which equals to 440. Okay, we are going to
compare this index number to a certain number that
we want to tell that, for example, whenever
index number is above 220, rotate that. So how do we do that? We are going to bring in
a compare node. So let me bring that here
and set that to integer. Index is going to be A. Now, whatever value
from these that is above one is going
to get rotated. So now, you see if I bring that, it's going to just try to
take these from the instances and try to bring that
go for that number, which was the half
number you see now here has been excluded
from the rotation. But the ones that are above
that are getting rotated, so you see these are not changing at all
because we are grabbing the index number and we are telling that if
the index number is greater than 2,220, rotate that. We could tell, for example, if index number
is less or equal, it's going to just rotate this. Okay. But we want to go for
greater and try to rotate these to match the
direction that we want. You could apply different
rotation values. And then one more
change that you could do is going into this
random value in here, and then we have
a factor in here. You see now after applying the factor to one only to zero, we're not changing
any random numbers. But if we bring that to one, we get too much variation. So let's go somewhere
between both of them So let's go
for 0.5 right now. And now the great thing is that we have special
geometry in here, and it means that if
I take, for example, this and try to change
something from here, it's going to be only applied on this instance and
not the other ones. Then we get perfect duplicate
geometry to that side. And you see there's a bit
of up and down in here, creating a bit of a story. And in here as well, we get what we wanted here
is not changed at all. So now, if I go and try
to realize instances, you see now we get
exported to Unreal Engine. So now let me take that. And then let's name
it Static mesh, modular, MOD for modular, and then building 01, and then it's going to be Rooftop under score 01,
the variation number. Okay. Now, let me go to Batex and we are going to
export that and test it. Of course, we are going to bring some changes, for example, bringing some wood and
creating some structure here like the staircases that we created to look a
bit more natural, but it's going to be
for testing right now. So export, we have the
realized instances as well. And then let's try
to bring that here. Okay. The first one, and
we're going to convert that to nanite in the meanwhile, let me take this and for now, I'm going to remove this. And you see, it should be reflected on the first
building as well. So I'm going to take
that one export as well. And the geometry is here. Okay. You see now the
rooftop mesh is great and later that we apply the material and all
of those changes, it's going to be a lot better. So it's just for testing. So let me grab the building 01, reimport, and it should. So it's not getting
reflected here. So let's go for import. And this is the test building. I believe that it
should replace that. Okay, now you see the
changes being reflected here and in the
geometry as well. So now, We are going for our blueprints and in here as well
in the blueprint, you see that it has
been reflected. So again, we're going to
bring an instanced geometry. Okay. Then from this menu, just ring and we need
one instance plus one and there's this mesh that is working perfectly
with the building. And with the later
changes that we apply, it's going to be a lot better. So compile and save and see on every instance of that building that
has been applied. But of course, the
color composition is going to be
something different. I want this one to look darker. I want the rooftops to look darker than the
buildings themselves. Later, we will create
textures that are lighter, and this one is going to be darker when we
create the material, and all of those changes. Do not worry. So now
that we have the setup, we could create
something like a tool to apply on any geometry
and get the same result. So that it's going
to be a bit faster. So there's a node in here, an output node that
could be applied on any number that you
want to randomize. For example, now that we know that later that
we are going to apply other geometry
parts that might be different than this one
and have different phases, we could try to randomize the selection so that every time we apply this
one on a geometry, we just change the
selection number and it's going to work right. So just plug that number. Instead of for selection, you want to plug that to one
that you want to randomize. So now you see it
has been randomized, and now we could try to
select that and change with one slider so that
all of this works in our advantage only
using one slider. So let me go to interface
menu and in here, you want to change the name. I just changed the name
to instance number for rotation so that we see
something like this. Okay, let's say that we
are happy with this, and let's say that
we're going to apply the same thing
on another geometry. Okay? Let me bring that. Let me hide it for now. And let's say that
I'm going to create a new geometry and bring
some vertices in here. Okay? Now I go and apply it
at geometry nodes, and from the selection menu, I'm able to select the original geometry
nodes that we had. Okay? Now, let's
make that special. And you see, for example, in here, we need to go and
change some more values. For example, the
number of instances in here should be 30. So I'm going for
half of that value. So now you see it
rotates some of them. Of course, this
problem in here is because we are seeing
that geometry, but it's not going to
give us a bad result. Okay? This is the geometry. And if I go and try
to take the mesh and duplicate it twice and try
to subdivide it once, okay? You see now we get the same rotation now you could see that we are able to change the rotation
using that value, okay? Using this slider, we are able to create many
changes that we want. While the original geometry
node hasn't been changed. Okay? This is the original one. This is how you could go
and create more results. So now, I'm going to bring other roof parts and
see what we could do using this formula and just
generate rooftops so fast. Okay, now here's
the second building that we need to take
in consideration. So we know the boundaries
and how well they are for the composition. Again, I'm going to select. And then while in phase mode, I'm going for select select similar and
if you go for area, you're able to basically
take these and remove them. Now, to compensate for that, I'm going to just
take these two, shifty and then I'm
going to scale them, but not along the normal. Let's go along the
global vectors. Now I'm going to
separate these and then bring this
one to the center. Okay? And then I could just
take this and delete. Okay. Let me export this one. So that later we will bring
that into Unreal Engine. But now I need to
create a copy from that old D. Then I'm going to bring that
to the center, okay? Now let's place it exactly
the way that it should be. And I'm going to take that geometry and
try to align it with this so that we could see
what we are creating. Okay, let's go back. And then here's the results
that we are going for. So let me apply
everything so that the geometry brings
back to the center. And now I'm going to take this. Let me take this one because I need to wrap
the name from that. And then it's going to
be roofed up number two. Let me just bring this one to the collection done, okay? Now I could hide it for now, and let's try to work on this. So you see the dimensions are there. Everything is perfect. Now we could go at
geometry nodes, modifier, and press new, and then let's select the
geometry nodes that we have. Okay. Let's just create a special one, okay, so that we do not
change the previous ones. And now let's see what
we are about to do. So the first problem is
that we need to take our lane and just divide it
into a lot of chunks, okay? Now, let's go for more. And if we apply, you see, we are getting those exactly
the way that we wanted. So let's go back. And now let's try to subdivide. Okay? Now we will try to rescale these the way
that we want. Okay? For this one in here, we do not have the amount of
subdivision that we have. Okay? Let's go for this one. We could go for a
similar number. Okay. And if we apply, we are
getting what we wanted. So let's go to solid mode for now and see what
is going on there. Okay? Scale needs to be changed. We could scale them here
or using or I could take those original kits and
scale them as well. I mean, these geometry
parts, let me go back. If I take these geometry parts and try to rescale
them and apply scale, these are going to be scaled. But I think it's going to be bad for the previous ones because they are already
using the same formula. Okay? You see now these have been scaled as well,
which we do not want. Okay. Let us go back. And if I bring
that now, you see, it's a lot better because we
do not want to scale these. Or if you want, you could create a new collection and
create new kits, which we are not
going to do for now. So the scale should
not be changed. Okay? Now, let's see
what we're going to do. We need to grab our kits. Then the problem
is that we need to scale these and rotate them. So let me see how many
instances we have. Let me bring that before. So we have something similar
to the previous one, okay? And then we could easily enter that number so that these
instances get rotated. Now you see it's inverted. So we will go and try to
rotate those as well. So the rotation
for these is okay. And now, let me
go for the scale. And now instead of 0.8, we could go for 0.1 0.1 0.1. And for example, here, let it be 1.2. Okay? Now you see they are
filling that gap a lot better. But there's not much
variation that we wanted. All of them are lining
up exactly the same. I don't want to be like that. Okay? Now we could go for this factor in here and
try to add more variation. And then for rotation. Let me see. This is
not changing at all. Okay, excuse me, I was just
calculating that wrong. In here, totally we
have 224 instances. And that means that in
order to take that to work, we need to use half
of that value. I was just miscalculating. Let me bring the previous
rooftop. Okay, this is it. Let me just select that. S in here, we have 400 and for the instances which the half of that
value would be 220. Okay? Now, we have
half of that value. So instead of that,
we could go for 110. No, not this one.
Let me height this. We need to go for
this one instead. Okay? Now, if I go for 110. Now the rotation, I
think should be applied. Okay? Now, if I
bring that value, it's not working because half of the value that
we have, I mean, these ones, the index number
should be greater than 110. Okay? Now, let me see if we could try to rotate
that a bit better. And there are couple that
need to be picked up as well. Okay. Now, we could use this or we could add
a bit of more randomness. Let me take that. I'm going
to select all of the faces, right click and subdivide. Now we have a really
chaotic rooftop, which actually we
might not want. Okay. We could take some of
these and subdivide, it's not working as well. Let's see what happens. Let's try to test that on real engine
to see what happens. Okay? We have to realize
instances applied, and let's go to bat X.
I'm going to export that. And then we're going
to test that here. So let me see if the building
02 gets updated or not. So it doesn't. Okay, we're going to
import that manually. So this is the updated building, and it just updated on all of the blueprint
instances as well. So let me go back. On my meshes folder
and I'm going to import this one to see
if you like it or not. So here's our building. I don't think that
we like this result. So that's too uniform. It definitely needs
to be changed. Okay, let us go to blueprints and now Blueprints number two. Let me create an
instanced static mesh, and I just called it rooftop. Let's search for the mesh
that we want and create. Let's go to Viewport. We do not see that
because we need to create one instance. Okay? Now, if I bring that up, it's working, but
the composition is just, like, too mathematical. Okay, now it has applied
on these parts as well. Let me see if I like
that result or not. So definitely we could go
with something different. At least we could add a
bit of randomness in here. So let me take all of them
except for these ones, go to Vertex mode and just
delete the edge vertices. I mean, do not delete deselect. I mean, so let's just
add a bit of randomize. Okay? This is at least
something that we could do in order to randomize
our result a bit better. Okay. Now let's do something. I'm going to select all
of them, subdivide. I'm just taking a
look and we could go, for example, in the scale, we could go for 0.5 until one. And now this is because
we have subdivided doubled the amount of instances, so we need to double
this one as well. So times two. Now, let's go another times two. Let us see how many
instances we have. So we have something
close to 900. So let's go for
half of that value. No, I don't like
that composition. So this one should go for 1.1 or 1.25. Okay. Now, just a bit
of randomization, especially in the center. Okay. And now let's
do something. I'm going to take every
other instance of edges. Just hold down all shift and try to select your way through. And then if I bring that if I just separate that. Now if I join them again, that's going to be
another part of geometry. So let me take that and join
it to the previous one. Okay? Now, let us
select by loose parts. Select By loose geometry,
which it shouldn't. Okay, let's go try
to manually select these And if you just change that somewhere
around here and apply No, that's
not going to work. Okay, let's leave
that be like that. Later, if we need it, we will change the value. But definitely we need to change the rotation. So let me see. This is going to
rotate all of them. So let's correct
the rotation here, and then this is going
to compensate for these. Okay, export. Then if I find it and re import, it should be applied on
all of the instances. This is the second rooftop,
so reimport. Okay? It's not allowing
us to do because I believe we should have
realized the geometry, okay? That was causing the pile
to be corrupted, okay? You always need to
realize the geometry. Okay? If I now go and
reimport, it should be fixed. Okay, done. Okay, now changed. And now I know that
these buildings, I mean, this one and this one are iterations
of the same building. These two buildings are
iteration of the same. They are the same scale
and these ones as well. So the building 01 and 05
could use the same geometry. Okay. Let me go to our modular
buildings and building 05. You see? Again, let me create an instanced static
mesh rooftop. And then we could select
the rooftop number one because these two buildings were created using the
same base and value. Okay, do not worry later, we will create variations, maybe on different sites. Okay, compile, save.
This one is okay. So let's go for the
building number four. And instanced static
mesh rooftop. And it should bring the
rooftop number too because building two and four are using the same scale. Okay, fine. Now if I compile and save
all of the buildings except for that center one in here
are using the same geometry. And it's okay. So there's
a problem in here. Let me take a look. Okay. This
is standing out too much. Let's do something. I'm
going to just right click. Let me see if I try
to scale that by 0.5 No, again, I didn't like that. So let's do something. I could replace it
with something else. Let me promote the
selected elements. Okay? Now I have the ability to take and bring another
one and use that one. So we need more
rotation in here. I need them to get rotated
around the ground a bit. So I'm going to pause and this
lesson is taking too much. In the next one, we are
going to fix these issues and create this one as
well. Okay. See you there.
32. Procedural Shadow Catchers: Okay, everybody. Now, the rooftop in
here is just off. We need to change the scale, and that is going to
be very we're going to let me deactivate that. We're going to take every edge
loop and edge ring. Okay. Let me go for select select ring, select loops. We're going to select
edge loop or edge ring. Okay? It's selected all of them. If I remove them, we're
left with a couple of piss. Okay? If I bring that,
you see now we are getting just one. Okay? Now, let us bring
more of those here. So let's go for 30. And in here, let us bring five. And let's test to
see what happens. Now, let's go back. Bring seven. Okay. But again, definitely,
we need to change those. So again, let us go for 30 in here and seven in here. Okay, we have now vertices, excuse me, instances, let
us divide that by two. Then we could just try to create
something like this. Let us add just a bit of scaling Then for this one, let us compensate just a bit so that they're facing like so. Later we will remove from this as well, so
I'm happy with it. I'm happy with the scale. Let us go for 0.9 by 1.2. Now we're going to
test that to see if we like it or not export. And then here we should be
able to just select that mesh. And reimport it so fast. Okay, now I'm happy
with the scale, but the rotation needs
to be corrected. Let me see if I take and try
to rotate that 180 degrees. I might leave us with
a better result. Okay? I'm now liking
this one a bit better. Later that we bring
the constructions and beams and all of that, I will look a lot better. Now let's go to the
material that we have the material extra
and let's do something. I'm going to bring
contrast cheap contrast. We need to bring
cheap contrast RGB because that one was grayscale. That here, and then
this one to base color, and it needs a value. So let's convert that to a parameter because this one
adds just a bit of contrast. If we go for contrast of one, it's going to create
something like a burnt wood, which
we do not want. So let's go for 0.5. Again, we need to go for a
more controlled value 0.1. Okay, now they are
too saturated. Let's go for 0.05. Looks like this
is default value. Let's go for something
in between 0.0 75. Now the color is
liber if I bring the multiply and try to multiply this by
another parameter, let me call this one
parameter or zero, zero. This is going to make
the result so dark. Let us save and you see
the color is so dark, we don't want that
to be too dark. Because this is a parameter, if I just take that and try to change the
value, let's go for 0.1. If you just desaturate
the color a bit, I think we will get a better result because I don't want that to be
something like this. Later we will create a material
that applies all of this. But for now, we need something so quick to tell us
about the composition. If we go for one, it
totally desaturates. Let's go for half of that 0.5. And then we could go for 0.25 to make the
colors a bit lighter. Okay? Now they are
getting a bit better. They're not that much annoying. So here's the result
that we have, and then I'm going
to take this one, bring it over to here. Let me place that Now, you see we have two rooftops cate it with the same
formula with these. Now, let me ring this. If I select that and then we know that we
need to extrude these. So let me select one of these and then
select similar area. Let's select these for now. Okay. And then these two
need to be separated. Or let's go back.
Instead of separation, I'm going to instead
of duplicate, I'm going to just separate
without duplicate, so that the rooftop
gets removed. Okay. Now let me bring that to
the center of the world, and I'm going to just
take this export. Now if we just reimport that, I believe it should be updated.
Let me see what happens. It didn't, so let's go
bring that manually. It was building number three. By accident, I was remporting
building number five. Building number three, Okay, it's not doing any favor, so let's bring that manually. Okay? Done. Now here we are. We need to create the
roof for this one. So let us upload geometry nodes. Let's create a special one. Okay, let's apply everything, bring the pivot to center, and all of the results should be corrected and we
could do something. Okay? Initial rotation should be changed because this one, you see, it's rotating this way, but these ones were rotating
in other directions. So let us create a vector in this rotation
in this initial rotation. Okay, Victor is a
number in here. We should apply that one first. So they should be rotated along Z by this value. Okay, now, let us bring this one and it looks like this one is
a solid piece of geometry. So let us separate first. This one will be
the correct one. So I'm going to join that. Now, if you just take that one, you see now they are
different parts of geometry. So now, let me bring the
amount that we want. Okay, looks like 21 is
good because I want this building to be different from the rest of the buildings. Okay. And now let's go for the same value
in here as well. Here should be 20. Okay.
Now, let's see what we need. So we need this instance
number to be divided by two. Okay? Now the rotation
is actually correct. So using these values, your values might be
different than mine. Okay. Now, let us apply that and select the select
the edges because I want to create a bit of
randomness on the results. Randomize No, not that much. Let's go for half meters, 0.25 should be okay to add
just a bit of randomness. Okay. This one is getting
chaotic, which is good. Okay. Now, let me just
take the name and copy. That is going to be rooftop 03, and we're going to export and test to see if we like
the result or not. So here we are. Let us import, because that is the heaviest mesh that we have been
creating so far, it might take a bit of
time, but do not worry. It's going to convert
that to nanite. It's good except
for some bugs in here which we might fix later. So again, we're going for
the blueprint number three. And then we're going to
bring instanced static mesh. Again, roofed up number three, and it's going to be
only one instance. Compile and save. It applied on all of
those instances and now I'm totally happy with what
we have been creating so far. Of course, the work is
iteration by iteration. We will change these
and we will iterate and see what should be changed and later that we
bring the materials, they are going to
be a lot better. Okay. Now for the time being, let me just desaturate
the rooftops a bit more. Of course, do not worry later. We're going to create a lot of variation maps to make
this look a lot better. So it looks like the final
one is the desaturation, it has been desaturated
just by half. So let me go for complete one. Okay. This is something
that I really like, but let's just bring that to
something more controlled. Okay? 0.7 looks like
the good value. And let me just go
to the correct one. I mean, the wood kid
material as well. And I'm going to just desaturate the material in here a bit more. Okay? Let me just
bring in a parameter. Okay, desaturation of zero
means no desaturation. I'm going to just
desaturate the wood a bit. And for the wood
and for everything in here later we're going to
create lots of variations. If we go for 0.1, it's
too much 0.5, again, too much 0.2 If you
go for negative one, for example, it gets saturated. Let me go for 0.1 or 0.2. Let's go for 0.15 something
between both of them. Now this is too much. 0.1 or 0.05 Okay. Looks like 0.1 is
a good value for now because I didn't want
that to look too saturated. Okay? Now we have some
of these parts like these shadow catchers and things like that that
we need to create. So that is going to be easy. Just we need to take the
mesh in blender and divide it and place our shingles
there. Okay, here we are. And let me go find what we have. Okay. Let's start with static
m01, which is this one. We do not have any shingles here except for the rooftop which we have already created. And in here,
building number two, we need to create
a shingle rooftop. Okay? These are going to really make the
building a lot better. So again, I'm going
to press Alt to take an instance and bring that
to the center of the world. Okay, let me just take this one and bring it over to here, and I'm just going
to wrap this one and this one separate by selection, and for now, let's hide this so that we could
start working on these ones. Let me just separate them
press P and by loose parts. Now these are separate
parts of geometry. We do not worry later,
we will bring them to the center of the
world and export them. Let us subdivide these Okay, let's start with this one. If we didn't like it, we will return back
and try to create more shingles there
just by subdividing. So let me apply everything and bring the
pivot to the center. And then geometry nodes. Let us bring the
first geometry node, and then we will just click
here to make that special. Okay, definitely, we need
to subdivide that once. Just take these,
subdivide, and okay. So now let's go to our
geometry nodes setup. Okay, perfect. And then it looks like we could try
to correct these. So, I mean, we're
going for the scale. So let's go for 0.5 here
and 0.8 here so that the shingles get a bit
more correct in the scale. And later when we converted
these to geometry, we will return back
and, for example, maybe delete some shingles
and things like that. Again, we're going to add
just a bit of randomization. So we're going to remove the edges because we don't
want them to get randomized. Okay? Just bring
the optimized menu. Okay. This is good. This is really looking great. And I want all of these to face the same way because these are not
just like these ones, and they have only one side. Okay? Now, let me
convert this one. To a geometry nodes. And then I'm going to take
that one, make that special. Now we need to
rotate the base in here because it has been
rotated 90 degrees. So let's go in here
that rotation, we need to bring a vector to define initial rotation that everything is going
to be based upon, just like this one that we have. We have a vector, and I'm
going to bring another vector. So we could rotate that Something like 90 degrees. Okay, this one looks right. So now we need to take the
mesh and try to subdivide it. Now, this looks too uniform. And it's good because you see the scale of shingles in
here and here are different. But let me go back and
add more of the shingles. Okay, this is good. Now, I'm going to Gale on 0.5, and this one is going to be 0.8, for example, or 0.7. And again, a bit
of randomization. Okay, let's use the
same value just like this one so that we get
a lot of randomization. Okay. Then all of them have
been realized into instances. And now let me bring the
building that we had. It was the static mesh
building number two. So let me find it here, okay? This is static mesh, and you see they
are working right. So let me go to the estatic
mesh that we have here. And we need to take these
two length and delete. Then I'm going to export because we need to see
that in real engine. We need to reflect
that change there. Now I'm going to name this
something like these ones. So let me just grab the name, and this is going to be static
Mesh Modular building 02. Then Shadow catcher 01. And let me rename
this 102, as well. Okay, Export and then export. Make sure that the instances
have been realized. So back to unreal engine, let us see let me see if by just importing
that the changes are reflected and now
we need to import our measures and place them here to compensate for
the composition. That is going to be very
easy. Grab these two. Make sure that they
are converted to nanite and we don't want
to generate light map UVs. Just let it calculate and start using them
in the blueprint. Okay. Let me see here they are. And let us go to
the Building 02, and we know that
the building 02 is affecting the
building 04 as well. And you see every
variation that we have on 04 has been removed as well. So we need to take these
together and edit them. So first, let us see
what we have here. We need one shadow catcher
here and one in here. So just like always
instanced static mesh. And I just called
it shadow catcher. Okay, here they are. This is the first one. Okay? It's this one that
we need to place here. So Okay. We could, of course, try
to rescale that just a bit to match with
proportions of the building. Okay, I'm going to just
duplicate and this time, I'm going to bring
the other one, which is this one which we
need to place just here. Okay, compile and save. Now you see it has
been applied on all of these instances
that we have around. So because we know that building
02 and 04 are the same, we need to place one
shadow catcher here. Let me see what we have here. This is the building
number four. Okay? We have one shadow
catcher here, one here, and this one which we're
going to create specially. Okay? Let me create again instanced
Day mesh, no, not this one. Shadow catcher and
then bring that. And then we will just
try to instance that Okay. Now we need to duplicate and
replace it with this one. So this one already has a
rotation that we wanted. Compile and save. Now we see that
shadow catcher being applied on all of
those instances, except for these ones that have the shadow catcher
from the wood kit. Okay? Now we have this shadow catcher for here that we need to create. And when I take a look at here, we see that the final
three shadow catchers that we need to
create are this one, which we saw earlier, this one for the
top of that born, then the final one for here, which are going to be created. We're going to create
them just now, and in the next lesson, we might finalize them or start finalizing these modular
kits because we need to export them to
painter and create variation maps and create
textures for the wood. I mean, this main texture, we're going to create it for
both wood and the beams and the texture for this one for the extra kits like the one that we see
here, these rooftops. Then create variation maps. We need to finalize the
measures before that. Let's start again, and we're going to start
with this one. So let me just take these and then select
similar in area. It should be fine. And now, I'm going to take these two because I need to create a bridge between
them to create the faces. Okay, shift two, shift D, and then P, separate by selection
so that this one, okay? Let me remove what is there, and we need to take these
two right click and to create a new phase and
we're going to delete this. Okay? Let's check for
the phase orientation. I definitely needs
to be changed. Take that phase, shift and
to recalculate and okay. So now, this is the
boundary that we need to spawn those measures on. And then let's export
this one as well. Building number five so
that it gets updated. Okay, it is not, so we need to import
that like so. Okay, now building
number five gets updated with correct
information. Now we need to create
the geometry here. So let me just bring
everything back, and I'm going to take
the name from the Okay. Building number five
and shadow catcher 01. Okay? It's going to be great. So now, let me see we have building number
four as well here. Subway gain, we're going to select one of these completely and select similar area remove, and we're going to just repeat the same operation
to create a base for here. Separate by selection,
then these two, let me clear that edge
because we do not need it. Right click N to
create a new phase. So these two need to be deleted. This one shift then N to
recalculate the normals. And then I'm just going
to copy the name here. So it's going to be building
zero or shadow catcher one. And the pivot should be in
the center, like this one. And then I'm going to export this. Again, this one as well. Select similar area removed. And then we already
have a phase in here. So let me control I to
invert the selection. No, I inverts all
of that building. Okay? We need only for this one. So deselect that,
remove the remove that mesh because we need only this base to be the center. So P separate by selection, and then I'm going
to opy the name. It's going to be
building number three. Okay, Shadow catcher one. Let me bring the pivot here, and then this one as well, is going to be exported. So before applying anything, we need to see if these
buildings are getting updated. So right away, let me import, and they should be corrected. Okay? You see building 03 being updated and building 05 as well. No, creating these would
be simple as well. All we need to do is spawning geometry
nodes on the meshes, and it would be right. So Geometry nodes, let
me select the first one. Let's correct that and then we need to bring a rotation because this needs
to get rotated. Now, this one is okay. We need to rotate
that in maybe Y. Y is good. Y plus a bit of X. I think. Okay. Now let's randomize our results a bit using the same settings. And it could be
0.5 to 0.8. Okay. Let's right click subdivide. Now that is too much. So the subdivision
needs to be corrected. And then in here, 0.4 to 0.8. And then the randomization
could be done as well because we removed
that randomization. And because we have
many instances in here, we need all of them to get
rotated at the same time. So here, I'm going to just set that zero
so that all of these get rotated in
the same direction. Export. And then
this one as well. Let us subdivide a lot and
then bring the geometry nodes. The first one. Let's
make that special. We need to rotate these. Let's set it to zero
because we want all of these to get
rotated at the same time, at the same direction. Bring a vector and They could be
rotated in Z. Okay. Now let's go for the
initial rotation. We want them to rotate like so. And then the randomization. All of the vertices
and then randomize. Okay, this scale
could be a gain from 4.4, excuse me, 20.5. No, let's go for 0.7. Okay, let me export
this one as well. Make sure that
everything is correct. And now, finally, this one, no not this one again.
Okay, it's this one. I'm going to just let these be a bit more pronounced because they are
far away from the camera. We need to see what
is going on here. So geometry nodes 01, so let me subdivide that. Okay. Now we need to
again bring a vector. Add that our rotation and look like they could be
rotated like so. Okay. Just add a bit of randomization and they
should be good to go. Okay, let's export
this one as well. And then finally, we
could import them here. So these three imports. Okay, here they
are and completed, and we need to just
correct them here. So let's start with building 03, and it needs to be placed here. So Let's call it shadow catcher and it belongs to
Building 03. Okay? Now, only we need to place that instance here
and then call it done. Compile and save, okay? Now building number four, we already have shadow catchers, so let me duplicate. And then building 04. Okay? Now, it needs to be placed here. Compile, save. And now building number five, we already have shadow
catchers in here, so we do not So this one belongs to building 05 and it should
be replaced here. It looks like there's a
bug in here we need to remove because the space
building belongs to Building 01. And we placed this so that if we wanted to
create a door for it, we could just create a door
and explore using the born. Okay, let me bring one
instance from that then it could be placed here. Compiled save. And you see these
results being applied. So let's go correct the rotation of the building zero
for shadow catcher. The rotation is too randomized. Okay, that is here. We see why is that. Okay, perfect. Report. And
let me just take these, and they should be
in the D folder. Let me bring them here because later we need to
export them to painter and let me see what is causing that
problem, okay? This is it. By accident, I selected
this one. Okay. Let me find the actual mesh, and it should be the last step that we go for in this lesson. Okay, shadow catcher, number
four, it should be fixed. Okay? Now, that's right. Let's take a look from
the composition camera. Everything is looking right. So this lesson has
finished and we created the rooftops
in just a few lessons, just creating geometry
nodes that is flexible enough to create different rooftops
and shadow catchers. And you already get that
how using that system, we were able to create different geometries that
are identically the same, but they are varied. Okay. In the next lessons, we are going to finish these. For example, if
this shadow catcher needs to have beams
and things like that, we're going to create
and just randomize and create final variations for these measures because we need to go for
material creation. We're going to create
the first material pass. We need to make sure
that all of these get finished before creating
materials. Okay. See you in the next lesson.
33. Variation In Modular Kits: Okay, everybody. Now we have placed the building
with just a single kit. We just used a single kit for all of the building and
created what we wanted. Now everything is looking
all right and we have a great base for our secondary
details to be there. Now we are going to
create variations. For example, for this
building in here, we might need to go
create, for example, one continuous module that goes from here to here and
having some variations. For example, the wood
might be broken. There might be bits
of variations. We're going to add
history to these kits. For example, like the first
building that we went and created just a bit
of a variation in here. We might go and create variations in kits
later in blender. And then, of course,
the creation in painter as well is
going to be there because we're going to utilize the second UV map technique and try to create variations
with that as well. And after these, the kits
are going to look verified. Okay. Now what we're going to
do is creating variations. For example, I take this one in blender and try to
create variations with it. But then there's something for the blueprint side as well. For example, let me find
the blueprint corresponding to this one Okay, here it is. And then we need
to do something in the blueprint to be able to
select the kit and change it. For example, we tell blueprint
to create a variation in the editor and allow us to change it
with another mesh. That is going to be so easy. Okay? So first, let's create a variation in
some of these kits. And then we will go
and try to create a demo to really show how
this is going to look like. Okay, here we are in
the blender file, and let's try to
just grab some of these to add a bit of variation. Example, this generic wall is a good case because that has
been used and seen a lot. Okay? When you're going
to create variations, you want to make sure that never the pivot is going to change. The pivot, the material, and the naming
convention is going to be the same as
well as placing that in the world if you do
not have that Bt x because bat X first brings that to
the center of the world. Clear and transform
and export it. But if you do not have Bat X, you want to make sure that
it's centered in the world, and then you export it and you do not change the
location as well. But Bt x is going
to help us with it. Okay? Now, let's say that we're going to create a
variation from this. I'm going to bring this one
back, create a variation, and I'm going to just underscore A to tell that this is the
first variation of this kit. Okay, we're not going to
change this one at all because it's going to be used in the scene and
I'm happy with it. Let's say that we're going to change something about this. We go and explode to loose
parts and whatever you change, make sure that you do not change the first one and the last one because these are the
ones that are going to be snapped to other meshes. You never should change the
first one and the last one, you could leave it to
be in its own place. I'm going to grab these
and let's say that. I'm just going to bring
the randomized transform, which we have already set
to be in Quake favorites. So if you want to find it, you just go and search for
randomized transform here, and this one just
right click and add to Quake favorite menu
so that whenever you press Q, you're
going to get that. Okay? Randomized transform, and let's try to just
add a bit of randomness. Now, just a bit of
randomized location. And then a lot of them
are going to be done in this one and a
bit of rotation. Okay, now you see how these
have been placed and they are not so procedurally
placed on the same level. Okay? Now, let's say that
we're happy with this. We are going to take
all of them and this one active object
Control J to join, and then we're going to export this and then bring it
here and then import, and that should be
in our final folder. This is it. And I'm
going to bring that, make sure that it doesn't
generate the light map UVs, and it has been
converted to nanite. So let's take a look
Okay. Here it is. And you see, it's just having
a bit of randomization. Of course, we could add
more randomization, but let's leave
that before now and see what we could do in order to change that in
some of these blueprints. For example, I think that it's this one that
has been used here. You see, it's Wall three
by three number four. Let me find a blueprint that
has wall three by three, number one, because that was the one that we created
the variation from. Okay, this is it. No, this is it. Okay? It's wall three by three, and you see this
is the variation. Okay, we are going to do something to be able to
change that in real time without needing to
go back to blueprint and redo the same thing
over and over again. So for that, we're going to
use the construction script. This is very easy and there's nothing
complicated about it. We just create some
formula in here to allow us to change static mesh in
real time with blueprint. And whenever we go select a blueprint that we
want, for example, this one, it allows us to swap the static mesh in here
just with one click. Okay? We need to wire something in here
to allow us to do. So let's say that we
are going to change it with this aestatic mesh.
I'm going to bring this. And this is going to represent the same static mesh in here
that we have been using. Or if you want to bring
the rooftop, it's in here. Just go and see wherever
you have used that there. And for example,
this one as well, it's the same static mesh. We could bring that to construction script and try
to swap this one as well. So we are going to
change this one. Just whatever you're going to create needs to get
a wire from this. This is going to
start everything. So it's going to be easy. Just go for set static mesh. Okay, we're not going
to use any of these. There's a set estatic
mesh that allows us to see or to get any static
mesh that we want. Okay? Now, let's
take that from here. Just go for set static
mesh. Okay, it's in here. This set estatic
mesh is going to set estatic mesh
in the viewport. So first, it needs executable
that we're going to drag here and that the
target is going to be this one wall three
by three, number one. Okay? And then it
needs a new mesh. First, we could place one
in here, compile, and save. And then it should it
should reflect the changes. Okay? You see, it has placed that geometry that we
have placed there, and we're no longer seeing that wall here. So
we don't want that. We want that to be able to
be changed in real time. So I'm going to right click
Research to default value, compile save now we are also not seeing
anything because we need to change that. So first, we could promote
this one to variable. It's going to set this to
new mesh, compile, and save. Now you see if I
select that blueprint, we're not seeing
anything in here. So in order to see
that in real time, we need to promote that you need to activate it so that you are able to
see that in real time. Okay? Now you see a new
mesh has been set here, and we could go, for example, search for that mesh
three by three A, and let's say that
we select that mesh. So here we need to compile
and save and see that. Okay? This is going to
take a bit of time. We need that to be faster. So just going over and selecting
the mesh is a good idea, but it's going to be a bit slow. So I'm going to bring
that, remove it, and I'm going to use a slider, just like an index value
that we used in blender. We create an array. For example, we
bring three meshes and tell real Engine to
select from those meshes, from those preexisting
sets of geometry. So let me just select this. And first, I'm going
to make array. Okay? This is going to allow us to create different variations. Okay? And then this array is not going to be connected
to here. Why? Because we need to tell it to use one of
these at that time. So if you grab, you just get a copy. Okay? This is going
to now get one of these at one time
depending on this value. You see now the index
number is zero. It's going to always
return you this one. If you set it to one, it's going to return
you this one. And if you set it to two, it's
going to return this one. So if I take this one
and plug it here, you see now we are
able to select different meshes
and to be able to select with it
using this slider. So now for testing, I'm going to bring that three by three wall,
which is this one. And then some of these
three by three meshes. And you want to make
sure that the pivot is the same in all of them. Now we have three by three, three by three meshes. If I compile and save, nothing has changed and we are still seeing in here
because we need to go in here in variables and delete this and create
a new variable. But this time it's
going to be here. It's this integer that we
need to promote to variable, and let me just call it
three by three wall. Okay. And then you want to make that visible in the engine
to be able to see that. Okay? Let me compile and save. Now you see if I just create
a duplicate from this wall, we have in here, a slider. So now, it's zero, and it means that it's
going to use this one. And if I bring it to one,
it's going to use this one, and if I bring it to two,
it's going to use that one. So if I try to drag it to one, it's going to now
change it with this. If I bring two, it's going
to change it with this, although they are
partially the same. So let me change
it with something else so that we're able
to see what is going on. Compile and save. Okay, now we see this sphere. And if I go back, we
shouldn't see anything because that mesh
let it compile. Okay, it was not a great mesh. So let's use this one,
compile and save. Okay. Now you see that
being spawned here. And if I go to zero, we see that we get
static mesh in here. Okay? This is the method that we're going for for the
meshes that you want. And this allows us
to, for example, take these blueprints
and change the meshes in real time without
needing to go back to blueprint and create
other variations. Okay? Now, let's try to remove and start from
the first one. Okay. Now, here's our result. And let's go create another
variation in Blender. And to explain this
one even further, I'm going to take this
and just duplicate. Let me ring that and then it's going to be under square B. This the first one,
the first variation and the second variation. Now let's say that we'd go and remove one of the instances completely and just take
this, hide everything else. And let's try to remove
some of these planks. Okay? Now let's say that
we're happy with this. Of course, you can go and
try to connect these. But let's say that
we're happy with it. It's just for testing. Okay? Then I'm going
to import that. Here it is the second
variation import. And then we have
the mesh in here. Okay? One of the
instances is missing, and then one of these
have been broken. So let's try to just
create a variation. So in here, I'm going to go
for three by three mesh. Okay, let's go and
try to find them from here from the content
folder that we have. Okay? Now, I just take this and bring it
to here and done. It has been replaced, and that
is a lot easier than going and searching just without knowing what we're going to do. So let me bring the
content folder again. And then the first variation
is going to be this one. The second is going
to be this one, and the third is
going to be this one. Okay? All set up and now
compile and save. Okay. Now you see, we are getting that with broken variation
and a missing one. If we go to variation zero,
which is the default one, if we go for variation one, it's going to expon this, and
if we go to variation two, it's going to expawn this one. Okay? It allows
us to really make each individual building
a lot more customizable. So, this is the
three by three wall. Let me just call it
three by three wall, A, because that is
the first variation and the second one is this one. So how do we change
this without needing to creating a lot
of these again? Just like the previous one
just go for set static mesh. It's going to
create that for us, and then all we need to do is placing this executable here, and then this new mesh in here, we are going to reuse the
same array mesh. Okay? Let me just call it. And
it doesn't allow us to do. So I'm going to get from
the copy from here. And then just let me double click to create a re route node. Now it's going to use the
same set of array measures. But again, now
let's do something. I'm going to create a new get a copy because we need a different variation
than this one. I'm going to plug this array to here then I'm going to right
click promote to variable, and then I'm going to
grab the name from here. And this is going to be B. Okay. Make that visible and then
plug that to this new mesh. Now you see on this atatic mesh, as well, we're able to
spawn these three meshes. And you can go and try to create different variations
for yourself as well. So now we have the first
one and the second one. And if I go here, I'm able to swap that with this one creating
lots of variations. And that is just
in here as well. For example, you see that we
have changed on this one, but this instance has
been staying the same, and this is the power of that. If we need to change that, we could go in here and try
to change to our liking. For example, if I bring that to one or if I bring that to two, every instance is the
unique variation. This is the powerful
method that we're going to use the create
variations on all of the buildings with a very simple construction
script setup, and just simple
viewport setup as well, we are able to change
that to whatever we like. Of course, we haven't
changed anything yet. These variations are going to be subject to more
change if we want it. So I just created a better folder structure
in here so that we could select the
blueprints a lot easier. So I just went and, for example, for all of these, I just named them accordingly
to the blueprints. For example, on this, if you wanted to
change something about this blueprint modular 01 now, because we have named
that accordingly, if I just go and search let me just copy the name from here. And if I go to Outliner
and search for it, you will see that we have
different variations of the same blueprint being
adjusted accordingly. Now, for example, if
I select all of them, I'm able to switch between the different
sliders very easily. Okay, now this one
is outside here, and this one is here and
another one is here. Now, if I wanted to go, for example, for building 02, I'm able to select
different variations in the scene so that
whenever we wanted, we could just bring them
and using one slider, we are able to change and see what is going
on in the scene without needing to look for them and
select each individually. Now we have renamed them. It was crucial, and now the
process is much easier. So you see, we have
parts that are visible to the camera and the parts that are
not that visible. For example, this one that we already tested isn't that
much visible to the camera. So because the tutorial
time is a bit limited, we're focusing on things that are more visible to the camera. For example, this
one is so close to the camera that we are able to see what is going on there. So now, for the time being, let's start to work
on the ones that are visible to the camera
when we take a look at them. And you have time
and you can go for other places that might
not be visible to camera, for example, such areas that are not so
visible to camera. We focus first on
something that we see. And then if we had time, we will go for other places. So let's start to
work with this one, and I believe that it should
be one of the platform two. Let me see it belongs to the right folder and
one of the Okay, it is BP Modular
building number four. Okay? Now let's go
here number four, and let's just go to Viewport and see what
we are going to do. Okay? The first one that we wanted to change was this one. Okay? We see that the name is static mesh wall I B
two, the variation one. So we're going to
bring that and start to add a bit of variation. You know we could do something. We could just take
these two and create one hero mesh instead of
creating a modular kit. So let's start to
work on this one. So I'm going to
just copy the name. If you copy from here, and now if I paste
here, for example, let me just take this one for testing if I
just paste the name, you see, it brings the direction
that the mesh is from. You see, it just copies the name of those folders.
We do not want them. One way to copy the name would be to just use this
drop down menu. And in here, when you
select that mesh, press F two and copy. It's going to just copy the
name without needing to go to content and trying
to rename that. Okay. Now if I go
here and try to take, I want the one that is in the
De folder because these are the ones that we used for
kit pahing these around. Okay? This is what we need. This is the exact same geometry. For the time being, I'm going to just take these,
bring them here. Let me take this one. I'm going to create a copy. And then this one,
I'm just going to add underscore B after that. Okay. Now first, let's just try to add a bit
of randomization to this. So again, I'm going to
bring the kit that we had. Looks like the kit
has been removed. So let me just bring these
over and I'm going to import. And this is the kit low poly. Okay? You already are familiar with this. So this is wrong. We need one that
has the material. It looks like we already
have them, okay? We have the kit folder.
If I bring them, okay, we have all of these kits
here, textured and ready. Okay? Now, let me just bring this one here and
this one to here as well. So I'm going to add just a
bit of variation to this. So we already know how we
are going to go for it. We go for separate
by loose parts, and we're not going to change
this one and this one. Okay? Let me select all
of them except for this. Then I'm going to add just a bit of randomized
transformation. Okay. We need to bring the
pivot to the center of these. Okay. Let me bring the
pivot to the center, and now looks like there's a bit of randomization going there. So let's go back. First let me bring the pivot
to the center. And then again, I'm going
for the same randomization. Okay. And let's just
try to add a bit of scale randomization as well. And then it looks
like we could go and try to delete some of these. So this has been already
randomized too much. So let's try to
correct some of them. Okay. And now let me just
test to see what happens. I'm going to press Control J for this one so that it
keeps the pivot export. And then here I'm going to
just take this mesh Okay. And use the same
construction script with it. Okay? You can bring
that from here, and then that
thaticmshEecutable. And then this one is
going to be an array. So let me see if I can copy the code from the previous one. Okay. Now we have the code here. So let me delete
these for this mesh, I'm going to replace
it with this one, target, Okay, this is
going to be removed, and then this one is going to be replaced with another one. So let me just
delete that for now. And now we need to bring
some meshes for here. You could create the
amount that you want. And of course, let me delete this so that we could
create a variable in here. From out to variable, and I'm going to just
call it wall by by two. And let's make that visible. And then in here, I'm
going to select some of the meshes to be used here. So let me delete these ones as well because it's better
to work that way. I'm going to import the mesh, which is this one import. And now let's create another
variation I'm going to, looks like the mesh
has been divided. So let's select all of them, and this should be
the pivot, okay. Now I'm going to copy
and bring that here. And then let's try to
separate by loose parts, and this one is going
to be the pivot. And let me select all of
them except for this one, pivot to the center, and I'm going to add just a
bit of randomization. So this is going to be too much let's try to remove
some of these links. And then this one is
going to be the pivot. Export. Of course, this one should be named underscore B or, I just renamed that
to underscore B, and now I'm going to
import that one as well. So this one should be deleted
because that was a bug. Import. Then from here, the first one is
going to be the same. The first one is going to be the one that is
already the default. So let me bring the variation. Okay. Now this is going
to be the first one. This is going to
be the second one, and this is going to
be the third one. Okay. Everything is set up. Let me compile and save. Now and here we should be able to add variations that we want. Okay. Now you see how
easily we're able to swap and change
whatever we want. Now let me see, for example, if I just search for the
building number two. Okay? Let's go for
different variations. For example, this
one. So, excuse me, it was building
number four. Okay? Now, this one isn't
visible. This one as well. So here, for example,
if I change it to variation two, it would change. And now, this is the one
that we are using here. So let's try to add
a bit of randomness because you see if
we remove this, we're not going to see anything. So let me bring a
bit of change here. So now we're going
to use the kits. Let me take this one
and bring it here. And now it's again
time for kid bashing. We will take these and try to just change the measures
the way that we wanted. And this will just make the
result a lot more natural. Okay, looks like that there's
something wrong here and they have been trying
to fix with extra kits. Okay. Now let me
select all of them, and this one should be the
active Object Control J. Now the name is correct, pivot and all of them Export. And then let me go
to content here. And now it was variation C, right click reimport and looks like we could go for
here and it was variation two. Now you see we get
those changes, but we could of course, try to rotate this just a bit. So let me take that. We could try to even let
me see if we could scale that if we scale it in
negative Y in negative one, we're able to see
the other side. Of course, we could rotate that and try to bring it here as well
to use the other side. Okay? This is how easy it is to use these kits and try to
create variations with them. Okay, now let's try to add
a bit of more changes. I'm going to bring. This one. And I'm going to just scale it so that it creates
such a result. And this one will make
the result even richer. Just a bit of randomness. Okay. Now you see using these kits, we're able to create really sophisticated
results in no time. So export. And then let me go to our
content, right click reimport. Okay, now you see it's here, and if we just delete that, you see, it's very rich. And we are creating
results that are varied, and we could create more
variations wherever we wanted. So now let's go for here. I believe that we are
using the same mesh here. So again, it's wall five by two, and it should be the building
number one, I believe. Okay, it should be
building number five. No, it's building number
two, excuse me, again. Okay. Now, because that
is the same instance, if I just bring the
construction script, I'm able to take that array without needing to
create that once more. So let me copy and
bring that here. Okay? Now you see we have
the same no it's ball. Okay, it's here. It's
wall five by two now. I'm going to take these two, Control C and Control
V to bring that here. Then let me see which we are
going to change. It's here. And now we have selected that. Let's go to Construction script. We're going to bring that
and then set static mesh. Executable. And then in here, let me select that and then
right click promote to variable and let me call
it wall buy by two. Okay? Now it's using the
same array to change that. So let's go here and try to see if I select
building number two. Okay, we're not seeing that. Let's see why is that. We need to make that visible. Okay? Now it's here and
if I go to number two, we are seeing that changed, and you can go and try to
create more variations. So now let's go try to
change this one a bit. Okay? Let me bring that here so that we know that these are the
same variation. Okay? Now I'm going to bring
this here and I'm going to use this one again. Like a vertical, excuse me, horizontal wood to keep
all of this together. Okay, now let me take
these add just a bit of randomization,
not in location. Okay. And try to create as much
variation as you want. Okay? This is it. Let's export. And
now upon the import, it should be fixed, okay? It's this one. Let me re import, and now we should
see the change here in no time. Okay? Very good. I'm happy with it. You see, we're able to create
storytelling a lot. And this technique
is so powerful that allows you to create
lots of variations. So let me go back for now for
the time being because it really adds to the storytelling
part of the environment. So now let's go for this
one, this attic, okay? It's attic number two. So let me just bring
these over to one side. Okay, let's search for attic number two,
which is this one. I'm going to bring that
to the center. Okay. Now let's try to add
just some variations. Let's call this
one under score B. Okay. And now I could just
randomly select some of these and try to remove them. No, not like that one. Okay. And let me take this one, for example, hide
everything else. And now we could
bring the knife tool. Let me press K. And
for this workflow, you want to make sure
that you press C before committing the cut because you see C
is cut through. You see, because if
you do not press C, and if you apply a cut, it's going to be just one cut on the surface that you
are staying already. But we want the cut to be
applied on all of the mesh. So before that, you want
to press C to apply a cut, and then just go with something
that looks like a wood. So now you want to press
instead of pressing Okay, enter, you want to
press space bar. Because pressing a
space bar is going to select the cut as well. You see, because if
you press Enter, it's going to just
commit the cut. But if you just
press C before it, and whenever you
are done with it, click and press a
spacebar I've done wrong. Let me bring the knife to again, press C, cut spacebar first,
let me go to edge mode. I was in phase mode, so you want to make sure
that you are in edge mode or vertex mode. It
works better there. So apply a cut, make sure that you press C, and then press a space
bar, select that. And now all you need
to do is going to make sure that it's
going to go around, and now press V, it's going to cut the
geometry from there. Okay, now select this one. And Control plus to
select and you see it deselect and creates a knife cut here the way that we expect it. Now let's go and try to
create another cut in here. For example, let's
go to cut mode. Go to edge mode, bring the
knife tool, press C, cut, press a space bar, and then, it's going to
divide the geometry in half and then select that. Okay? Now, it's a good one. So for now for the time being, let me export it and in here, I should be able to take
that ethic mesh and import. Okay? If you see some
of these problems, it doesn't matter because
of the cuts that we created and caused some errors, but since they are not
going to be visible, we're not going to
care that much. Okay? Now, I'm going to
go to my building 02. Or if we want to go
for changing this, we will go for building 04. Now, again, I need to go to my viewport and
take this one, and you see that it has
already selected that. And then let's go to
Construction script, bring that. And then we want to go for
set static mesh and then connect this here so that
it's a continuation of that. And then we need to create
another array. Okay. Let me just bring that
to another place that we have a bit of control over and then double
click here to create a re route so that
the node is a bit visible. Okay. Now I'm going to
create make array Okay. And then if I grab a copy because we need to
select from different meshes. Okay? Now, let's create
a couple of pins, and I'm going to bring the
geometry from here, okay? So let's bring this, okay? Now accept the estatic mesh now. So let me bring this it needs a static mesh. So first, let's
connect that here. Now the array let's go
the other way around. I'm going to bring a copy. Okay. Now if I
connect that here, it will activate
the static mesh. It knows that it's going
to be a static mesh. Now, let me create a make array. Now you see these are accepting
static mesh right now. The first one should
be the attic 01, which is the default one,
let's create another one. We're going to add
this and let's go for another variation that we
are going to add later. So let me just
promote to variable, and this one is
going to be visible. And let's call this attic. Compile and save. Okay, now we're looking
for building number four, and that should be
this one. Okay, attic. Now if I go for the
second one you see, it's going to add the new
mesh here, which is great. And we're going to add the rest of them in
the next lesson. Okay. See you there in the
next one where we're going to create more variations.
Okay. See you there.
34. More Variation For Building: A, Okay. And now we created some really small but effective
variations and created a system that will allow
us to swap between different kits to add fast
variation in modules. Okay? Now we were just creating variations
for the rooftop, excuse me, for the
attic in here. And now let's go to
blender and try to continue with kit variation
because variation is the key. We have a good system in here, but adding variations will really take the environment
to the next level. Because one of the drawbacks
of modularity is repetition. So by bringing a lot
of kit variations, we really defeat that problem. So here we are in blender, and now instead of recreating
the same horizontal kit, we could go and create a kit that is vertical. So
let's do something. I'm going to grab one of
these that has lots of woods. Okay, for example, this one. Let me copy, bring it here. And then we're going to cut this using the geometry or using a boolean or something to create a vertical wood system as well. So let's do something. I'm
going to create geometry that let me bring this back
and use the correct geometry. I'm just going to create a simple geometry,
and if you want, you can go to preferences
and search for extra and activate extra objects
and extra mesh and curves. Now it's going to add a
single vertex in here. So it's going to add it to the center and make
sure that you exit from the edit mode because it already spawns that in the edit mode, so you want to
make sure that you exit from the edit mode. So now we have that vertex. Let's go to Edit Mode, select, and I'm going to just try to create a rough bounding
box around this. Just try to extrude. Okay. And now let's see. I'm going to take this
one and this one. Let's try to create vertex. Now we have double
vertices in here, so we need to join them. So merge by distance,
okay? Joined that. So now we have a
bounding box that we could use for a
boolean or something. Let me grab all of
the vertices and try to extrude and
from here as well. Now let's go back. I'm going to use on this one to
create a boolean. We're going to cut
these extra parts. So because we want to
keep these in here, I'm going to take this
and close the borders. Okay. This way, of course, it's going to be the
other way around. Let me see for the
phase orientations. Okay? We need to go
and correct them. Just select in phase
mode, shift N, and it's going to
recalculate the normals. Okay? If we go for Boolean
and set it to fast, it's going to be the exact
opposite of what we wanted. So now let's do something. I'm going to take these and
all E extrude along normals. This is going to
remove those parts, and then we simply
could go and take these two removed. And if we go back. Let's see. And now I'm going to remove
that and that. Let's try to extrude
along normals. Now it's going to remove those parts and leave
this one to be. This is the geometry, if
you want to see that. We should close
these inside borders that I didn't in the
previous iteration. Let me take this except and now we could
delete that there's a problem in here which we could really simply remove that. Now let me take the
name from here. It's attic, and this is attic B and this one
is going to be attic C. Underline attic number two C. Now this is good. Let's create another
variation for this one. So who hates lots of variations? Let's first rename that attic C. And then just like always, I'm going to just explode
the mesh to loose parts, and I'm not going to
change this at all. So it looks like these have been joined try to add a bit of distance between them. Okay. And now, separate
by loose parts, so it doesn't looks like there's a vertex in here
that needs to be deleted. Sometimes it happens. That's the problem with
the Boolean sometimes. Okay, now let's see what
is preventing these. So let's do something.
I'm going to just take them and separate by selection. Okay. And now I'm going to
select all of them except for this one and this one.
No, it's not working. Let's go back. Even before
adding the Boolean. Okay. Now instead of fast, let's go for exact. Now let's go for fast again
and let's do something. If I take this and go
and flip the normals. Now if you take a look, you see, these are the normals. Let's see what happens. I apply and let me separate
by loose parts. It's again the same thing. So let's go back again. But this time, without
applying the boolean, I'm going to first
separate them. So let me separate
by loose parts. Now we get these and now
we have modified tools. If I apply and select
all of them and apply. You see now they get applied individually and they are not getting
connected at all. So this way, you're
able to change it. So if you do not have
that modifier tool, you can go to your preferences and just search for modifier. This modifier tool
allows us to activate or deactivate different
modifiers at the same time. Apply all. Now if you delete
that, now we have different instances
in their place. Just a quick work
around and then I'm not going to change the
first and the last one. Let's bring the pivot
to those centers. We're going to keep
this one to be. Okay. Now, let's do
something. Let's go back. Okay? Now, this is the first variation that
we didn't need to change. So let's take all of them and
take this one, Control J, and then I'm going to rename
that attic Number two, variation C. Now we're going
to bring that back and bring this one to center and try to add a bit
of variation to this. Okay? Now, if I just go and
separate by loose parts, it's going to work right. Now we have different instances. So now let's select all
of them except for the first and the last and then try to bring the
pivot to the center, and I'm going to bring
the randomized transfer. So it looks like we
have two instances. Let's select all of them. So it was a problem. Now fixed. Okay? Now let's bring the
randomized transform again, which I have added
to quick fabrics. 0.2. Now that is too much, 0.1. This way, we were able to
create a very good variation. So it looks like we didn't correct the pivot on this one, so it
doesn't matter. So now if I select
all of them and this one as the main
object control J, and then let's name
this one D. Okay. And then I'm going to
take these two and export and test to see what happens. No, it wasn't. I
should take these two. Variation C and variation
D. So here we are. Let's go and try to import them. So here it is,
variation C and D, and then we're going
to import them. And now let's go to our blueprints Okay, let me first find this one. And then we will copy the
code to the other ones. Okay? Now, let's go to blueprint
and we're going for this one, which is attic number one. So we already have that here. So we already have
the variation. So now we have two more
variations to be added here. So just add a couple of pins
and then bring your content and try to ring one and one. We could delete this one as
well, and compile, save. And now if I go to Attic select, the zero is going to
be the first one. It's going to be default. One, two, which is going to
be that vertical wood system. And then this one is
going to be the one that has a bit of
variation, okay? So it looks like we could
go for the previous one. Let me select that.
Let's go for number two. Okay. Now, what we
could do is selecting this array and copy that
in the Module 02 as well. So let me find one of the module two and just select the
wire and connect it here. It's going to create
the same thing. Okay? Now, this is
the wall five by two. Looks like we have
gone for wrong one. So let me bring that. And let's see which one
we were working on okay? This is not as well. Let's go for number five, which actually so
we could go and create the same one for the building number two as well because it
doesn't have that one. So let's go and try to create. Okay, I'm going
to bring this and let's grab and set static mesh, were this one, and then I'm
going to paste that array, and let's grab a copy
for each instance, right click, promote
to variable, and I'm going to
call this attic. Make that visible and
then connect that here. Compile and save. Now if I select, let me select from
the outliner 02. So let's grab the name
from here and just paste. Okay? First variation,
we have the attic. Let's try to select another one, a broken one, a vertical one, and a vertical with
a bit of variations. So it looks like this
is working for here because it has a lot of contrast and some of that
contrast is going to be washed by the distance. So that contrast was not so
prominent like this one. So let's try to select Okay,
this one doesn't matter. Because that is far away. Okay? Now, this one Okay, let's see what happens
if I delete that. Okay, this is very good. Later, this is going
to be so great. Okay, let's use this one. So now, we have some
of these applied. Now, I think, like
we could go and apply some of them to the
building number one as well. So before that, let's bring the building number four and see what we can see
in the composition. Okay? It's that one, and let's bring the last
attic, which would be this. Okay. Just because we
have limited time, we cannot focus on what
really is so far away. So we are just focusing on the parts that are
visible the most. Okay? For example, this one. So let me just delete that base, okay? This is good. But something for just noticing, and that is we have so much variation
between these colors. You see, it's just like
stylized coloring palette. Later, we're going to just Texture these a bit
more naturally because you see having so much
color variation makes the color a bit stylized and we're going for
something realistic. The colors could be in the same tone or at
least a similar tone. Now, let me bring
the building 01. So these are here and looks
like the building 01, it's already using
the wall variation, but let's go and create
a bit of more variation. For example, creating
the roof variation or attic or these ones. So now we already have
the wall five by two. So let's go here
wall five by two, which is this one
wall five by two. I'm going to grab that
array and paste it here. So let's go to our view port, and this is building
number one, okay? This is it. So let me Okay, now let's go to our Viewport, our construction script
and bring that here. Okay. Now we have that as well. Let's go for set static Mesh. This wire should be connected, and we should grab
a copy each time with a index that is going
to be promoted to variable. Let's make that visible
and name it just wall five by two.
Compile and save. Of course, before
that, we should connect, compile and save. Now let me see what we have. Let's start to work
and if I bring that, we are seeing wall
five by two variation. So let's hide this
for the time being. So for now, because
these are similar, I'm not going to use
that, of course, we could go and create
more variations. So let's go for the default. So use that slider
to bring that back, and then let's go for the attic. So the attic is
different in here. Because the attic is
attic number one, but the attic in here was
number two and was a bit different in the
style and the scale. Okay? Now, building number
one, at least for now, we could leave that B because you see we have too
much variation in here. If we add lots of
variation and broken, the broken is going to
be the default again, and nobody's going
to notice that. So we need a mixture of them. We need something to contrast. Okay? Now, I think we could go for building
number three in here. So let me delete all of
those or excuse me, close. And this is number three, and we could add a
bit of variation. Let's see which parts are
here, this one in here, and the front part and this part are going
to be visible the most. These ones. So we
could take this one, delete, and okay, now
we have a four by four. We could go and create a four by eight special piece of geometry that is going
to be used only once. And for this one as well, it's a four by five wall that we could go and
try to vary like that. Okay. Let's try to create let's try to create some variation
for these walls. Okay. Let's go back. This is wall four by four. Okay. Now let me
take all of these. Bring them back, and there
should be a wall four by four. Okay? This is five by five, and this is four by four, four by five and five by four. Okay. Let me bring them here. And then I'm going to create a copy from
this one and this one. So let's go for renaming
to underscore B, and this one is going to
be underscore B as well. So these ones are going
to be the default ones, so I'm not going to change them. So for this one, let's already try to separate
by loose parts. You already know
what we're going to do and deselect that, bring the pivot to the center,
and randomize transform. And we could remove one of
them as well and take that, Control J, to join them. And now let me export
this one as well. Except for the
swan and the swan. So let's bring the
pivot to the center, randomized transform, and I'm not going to
randomize too much in Y. Okay, now let's try to
bring a couple of these. Tell that, for example,
they have added these wood parts
to connect them. Okay, let's select all of them. Control J. That's one
as well, and Export. So let's see. I'm going to import this four by
four and five by four. Okay, now let's go here and I'm taking this
four by four wall. Okay. And now set static mesh. So let's go make a ray So get a copy from here so that
it knows what to pick. Now it needs static mesh. So let's try to grab
those static mesh parts. Okay? This one. Okay, this is four by four. We need four by
four here as well. So let's remove that because I need the
default one to be there. So let's reset to default. And now let's go for four by four and add another one and
add this one for variation. So right click promote
variable and call it four by four wall A because
that was the first one. We have a couple of
four by four walls. Okay. Let's select building 03, and the main one is here. So you need to make that
visible. Compile and save. Okay, now it has added that would Okay. You see it adds a lot of cool repetition here.
So let's do something. I'm going to grab
one of these again, shift it to duplicate
and bring that export. Let's find it, right click, reimport and it should add
a bit of more variation. So it looks like the
meshes need to be rotated. And let's see if I delete that. Okay. You see, it's
working really great. But I can take that rotate by 180 degrees
and bring that here. Let's activate the
snap for the grid. Okay. And now if I delete that, it's really adding a lot of cool changes to the silhouette
of the building. Okay? Now let's go for the next one, which is going to be this one. So let's add to construction
script once more, and we are going for setTgmsh and now for the mesh, I'm going to use the same. But let's bring
that get copy here. I'm going to get a copy right now and create
another variation. Now it's going to be
four by four wall B. Let's make that visible
and connect it to here. I'm going to reuse the same to have a bit
of optimization. Okay? Now let's go here. Okay. Now let's try to remove that. And you see, it's really great. And now let's go for
this wall five by four. Okay? It's here and
here. These two. Okay, let's go to
construction script. I'm going to bring them and
that static mesh select that. And this one set a
static mesh again. So it's going to be similar
to the previous one. But we're going to
create another array. So make array. Get a copy, connect
that to here, so that it knows that it should connect a specific type
of data which we need. Promote variable visible first or by five wall A. Okay. For the default one, we need a four by five here and now this
is the variation. Now for this one, again, I'm going to grab
another, get a copy. Connect that here and
connect to new mesh and promote this to variable very
easily or by five wall B. Make visible, compile, save. Now let's select that and now we have
different variations. Okay. Now because
that is far away, we're not able to see
that much change, but you see that definitely we have a bit of change in here. And later that we add the
beams and all kinds of new meshes is going to
really create a great mesh. So let's see this one, I think it's building
number four. Yes. So let's see, we have a viewport, and no, I don't think that adding too much variation
is a good idea. Okay. Now at this time, this lesson is now finished. We added more variation
to these kits, and you already have the time. You can go and try to create your variations the
way that you want. Okay, let's go for the building number two
because we could add a bit of variation. So let's see No, that's one. This is too visible. Okay, now it's good. So you already have the variations, and
you have the time. You can go and try to create the amount of
variation that you want. And in the next lesson, we're going to create
variations for the rooftops, and we're going to call it done. And maybe after that, we go for creating base texture
for these parts. So we have the roof
parts to be created, and then we have
the beams as well. And then after that, we
will create texture that looks great for both wood and rooftops and
the beams, okay? See you there.
35. Rooftop Variations: Okay, everybody. Now we
are reaching to the point that we are happy with the buildings that
we are creating. Now it's a bit more
variation creation. We are going for just creating a bit of variation
in the rooftops, okay? Just like always,
we are going to have the main rooftop here and create more damaged
variation of that rooftop. And now there's something to consider because, for example, let's take that we are visiting the world
from such a view. You see, we're not able to guess what is up here too much. You see, even if you
zoom on the object, it's going to be good if we go and try to optimize
these measures a bit more. Of course, you can just
use these like they are, but you can also try to
optimize them as well. So now, let's try to
create the rooftops first. We are going to complete these
by adding the mesh that is going to hold these together and creating the beam structures
and things like that, and then create a variation
that is damaged. Okay? Now, here we are in blender, but before that,
let's do something. When I take a look
at this platform, of course, it's a very good one. But when I take a
look, you see there's a very flat line around it. So let me just bring it here. And let's see what
we could do without these flat lines in here. Of course, I'm going
to keep the structure. I'm not going to change that, but let's let me select these outside pieces and
then the default shortcut, if you haven't changed,
should be controlled, okay? Now, let me separate
by selection. And now let's take, okay? Now, it has a bit of more
characteristics to it. So let me export. And it looks like
if we go and try to add a bit of
variation in the edges, it's going to be a lot better. And it means that we go and
try to make sure that all of these we have measures
that face this way, okay? Let me first test that in Andrea engine to
see what happens. And then it should be very easy. So let me bring the contents, and it's here, okay? Imports. Okay, now you see that there's a lot more
variation in these edges, and the result is
much more realistic. But let's say that, for example, in this far away, and here, for example, I like that to have that edge because I want that to be
readable from distance. It was helping us to read that. So let's create the ability
to have a choice to see either we want that
edge to be there or if we do not want it. So now, let me just return back, and I'm going to copy
the name platform 01, and let's just paste
that name here and let's call it
platform edge. Okay. Now, with all of the same
pivots and all of that, we're going to export that and reuse it in Unreal
engine in the blueprint, so that whenever we
wanted to deactivate that war for one of the
platforms, we are able to. And if we didn't want, we just disable that. Okay. Let's again bring up the content and
import. Here it is. Okay. Now we have
that edge here. So let me bring up the
blueprints. Okay, here it is. And now let's take a look, and I'm going to add
instanced static mesh, just like always and
let's call it edge. And let's see. Okay, here it is. And let's bring
just one instance. Okay, here's going to
be the default one now. If I just save. Now you see it has been
applied on all of them. And you see on these
far away measures, it's going to look like a lot better because it defines and adds a bit of color variation
and support for the story. So we know that
this is the edge, and now we're going to create
a construction script, and we're going to create construction script code to allow us to disable that
instance in Viewport. So let's go to
Construction script and bring this static mesh. And if you just
search for instance, you have something
like remove instances. Okay. Now it's going to just take this one and then right click here,
promote a variable, and this is going to make
sure that whenever we change that value or set a certain
value in the viewport, it's going to remove
these instances. So let me compile and save. And now let me go and select one of these
blueprints. Okay? For example, it should be one of the Okay, let's
start from here. So instances to remove, just click a plus icon, it's going to remove because we have already selected that. Okay. And that is so easy. And if you change that number, it's going to bring that back. Zibo means we do not have any one is we are
going to bring that. Okay? Now, so easily, you're able to remove certain instances from
the calculations. Okay? We want that to be. And now let's go here. I want to remove that, okay? And this one as
well, let me see. Actually, this is better. So now, And these
far away meshes, I'm going to make
sure that the edge is there because I want that
to be defined a bit more. So now let's just try to
change the mesh itself a bit. First, let me take
this and bring Okay, let me disable snapping. Okay? Now it's closer, and now if I compile and save, okay, let's just bring
that to here, okay? And this one as well. And now let's do something. I'm going to take this and I'm going to try to
explode the mesh. Okay? Just take the
meshes from here and select I'm going to select the top ones. Okay? I just selected, and now let's separate by selection so that we have
this mesh only to work with. And we're not changing
the structure. Okay? Now I'm going to explode
the mesh by loose parts. And now we have the
ability to take these edges and let's first select the edges and bring
the pivot to the center so that it's easier for
us to manipulate them. So we're going to add a bit of randomization especially
on the Y coordinate. So let's try to randomize and I'm going to
randomize the scale around Y. Okay. Now you see we
get more broken edges. First one. Then if
we change the edge, you see now, it has much more characteristics
than the previous ones. And now let's select these. I'm going to just repeat the same process until
we're happy with it. So let me select all of them and repeat the same process
and see what happens. And now let's try to randomize
the transform a bit more. For these areas
which are like this, you could try to borrow meshes from other places
and bring them here. Let's go select some
of these meshes, bring the pivot to the center, and try to duplicate to here. So that would create a bit
of edge variation as well. Now for testing, I'm going
to join and let's return back and try to join the meshes. Okay. Platform one and Export, and now I'm going to
import that so easy Okay. Now we have more
variation in the edges. So we could change this one to here to have some of
these edges more visible. So that is a design choice. Okay, now you see we get more variation and broken
edges here and there. Perfect. And now I'm
going to take both of these measures
and bring them back and start to work
on the rooftops. And before that,
let's do something. I'm going to just bring them back and try to work
on these edges a bit more. So this is the edge that we are seeing in
here and in here as well. So in here, I'm
going to just create some more edge variation.
Okay? It should be here. So I'm going to borrow
the geometry from here. And bring them to
the spot right here. Now try to add more
variation because I want to break those flat lines. Okay, Report once more. And then we're going to
reimport that again. Okay? Now you see more
edge variations here. And the lines are
not so flat anymore. Okay? Now, because the
rooftops themselves need a bit of more
work to be finished, we are going to finish
the rooftops first, including creating
the base for them. And then creating the
destroyed one. Okay? Now we're going to
start with this one because that is the
rooftop number one. Let me just duplicate
one so that we work on the
duplicate instead. We have this one here,
and now let's say that we're happy with the geometry notes. I'm going to apply that. But if you do not have
the realized instances, it's going to just
prevents from applying. You want to make sure that
you have realized instances after your instances to
convert them to geometry. And if you do not have that one, it's not allowing you to
do because there's not appropriate geometry to
allow you to do the work. Okay? Now, let me select this, and I'm going to start
creating a simple base for it. We're going to use these wood planks and try
to kit bash the pieces. Okay? Now, let's make
sure that all of them are the same scale. Okay, there should
be one of them. Okay, now apply anything and now we're going to just rotate
these like so and then rotate, Hey, that was the one
that we needed to select. Okay, here it is. And
now we apply once more. Now we should duplicate these around to create base for them. That is for storytelling, so that they're not lying
just randomly on the air. Okay, let's go for normal and try to
rescale them like so, because I want to be able to see these planks. Okay. Now for the time being, let me create a wire
frame for that. And then try to take
these measures and bring them just randomly here and there to create the
variations that we want. Okay, now just randomly try
to scale here and there. And let's see what happens if I bring the wire
frame and you see. It just looks like that some of these
planks have been broken, and you can tell this story
already. What is that? Okay. But for now, I'm going to make
sure that this one is just a healthy variation. So let's go to Global again. So we need to go
for bounding box because the previous one
was individual origins, just trying to rotate them
all at the same time. So let's select all
of these except for that geometry now
let's do something. I'm going to take this one
removed and take this, bring it here because I
want to be able to change the rotation to match the
direction of these planks. Okay? Now, let's go to solid view so that
we're able to see the rotation without
any distractions like the color or
things like that. Then select this. Make sure
that it's special, okay? So now let's go for
the rotation and make sure that these are
facing just like these ones. And now we should compensate
for these ones like so. Okay. Now let's go to layout mode and see
what else we could create. Let's bring one of these and use a piece of wood that is going
to hold these together. Okay, now let's go to Material view and
try to take a look. Okay? It's looking great. So this is going to be
the first variation. Let me apply the geometry nodes and try to take all of these, and this is going to be
the mesh that we're going to get for the pivot. Control J. Now all of them
are the same geometry. And now I'm going to take
the name from there, and let's call this
one rooftop 02. No, let's call that roof up 01 variation Or instead, let's call it variation
A because this is the healthy one that is
going to be the default. And you want to make
sure that the pivot and things like that match. Okay? Now let's export and now we should be able to import that without any problem. So here it is. And we're going to import,
convert to nanite. And there's a choice that you have while that is
importing our mesh. Let me bring something,
for example, these ones that are using the kits, something
like this one. So let me duplicate
that just for testing. Okay? Let me apply
the geometry nodes, and you're seeing that this has more than a something close to million and
a half polygons. And if you're not seeing
that, you want to go to this drop down menu
and activate the statistics. Okay? Now, let's say that you're happy with
this. But let's say that. Let's check to see
what happens if we just apply a bit
of optimization, because this is
something far away. Taking the fact that this is not going to be seen from
upclose. So let's say that. What happens if we apply
decimate modifier. Okay, decimate and collapse because this is the best
for such scenario. Okay? Let's say that. What happens
if I bring that to 0.5? Okay. Now you see no
visible change at all. Everything is working all right, but polygon, excuse me, polygon numbers drop down
significantly to half. Let's say that we go for 0.25. Again, the same thing, but polygon numbers drop
down significantly. We have less triangles, something like a
quarter of that. So this is a possibility
that you can imagine. Later, we might go and try to optimize these a bit
using this workflow. Going to be faster for
software to calculate. Okay. Let me take
this one and remove. Okay? The same thing can
happen for this one. We could try to
reduce the amount. But you want to make
sure that the pivot and things like
that stay the same. Okay? Now, it exported
like a single mesh. And while it's right, I wanted that to
replace this mesh, which is the rooftop 01. Okay. But since we
changed the name, it's going to create
a separate mesh. But since we change the
rotations and things like that, I'm just thinking about
taking that mesh, and let me see. We could go to the
blueprint the first one. And let me go here and
I'm going to select this and replace it with the rooftop
A that we just created. Compile and save. Okay? Now you see it has been replaced on all
of the instances. And now we could do something. Let me bring the variation
number five, as well, because that is using
the same geometry. So it's rooftop number one. So let's bring that,
okay, compile and save. And it has applied on
all of those instances. And now let's do something. I'm going to bring the
rooftop number one. And because that is not getting used at all, I'm
going to remove that. Okay. Now let's go for
the next variation, which is this one, and I'm going to reuse the
same geometry here. So let me do something. So now, let me select the
measures that I want. Okay? Looks like they have
been already selected. So I'm going to shift the and press P by selection
to separate them. They already have that pivot. So let me bring them here. And now if I go back, I'm seeing that they're
working all right. Okay? Now again, we need to change that rotation value to be according to these
planks direction. Okay. And now let's
compensate for these. Okay. Now, let's say
that we're happy with that, but
let's do something. I'm going to manipulate
the base geometry a bit. For example, let me
take these vertices, and I'm going to select both of the vertices at both measures, Okay, and I'm going
to change that. But this is going to
create a sharp transition. So I'm going to use the
proportional editing. So the proportional
editing is here. So if you press O and just try to change the
circle of radiation, you are able to change the
direction of the geometry. So let's try to change
that a bit more. And now if I bring those
instances, you see, now the rooftop has a
bit of shape, okay? So I'm happy with the
variation that we have. And now I'm going to
apply the geometry nodes. But let's do something
because we want to see that direction
change here. I'm going to go
to geometry mode. Okay. Let's try to I want to
just change that geometry, but there's a
problem, and I think it's because of the geometry
nodes that we applied. You see, we have something
like 40,000 polygons. But if you go to Edit mode, you see that there are a lot of edges here, a lot of vertices. So you see the amount of
vertices is too much. So one way to delete
them would be to select the measures that we want
and invert the selection. Selecting those would be too
difficult in vertex mode. So we are going to edge mode or face mode,
select all of them, make sure that
everything is selected, and now go to your vertex mode. Now you see these
have been selected without those bug vertices. So Control I, it's going
to select all of them, delete vertices, and now it has returned
back to its default place. Okay. You see, it was because of this that
we applied. Okay? Now let's do something.
I'm going to take this geometry and try to take these parts and using
the proportional editing. I'm going to make sure that
I follow the same shape. Okay. Now let's do something. I'm going to take
these and I'm going to select some of them. Control L. I'm going to
randomly select some of these. Now control L to select
and make sure that you go to normal because
if you go to SM, I think it's going to
select based on SMs. Okay? Now try to remove
those instances And now let's try to just
randomly select Control L and remove some of
those instances. Okay. Let's, for
example, on these parts, select more of those
Control L to select linked. I'm just going to
randomly select from this so that it's natural. So, let's go back and they say it's supporting that perfectly. So it looks like we could try to remove from here as
well a bit more. And remove. So let's try to
remove even more. So Okay. Now this is the mesh that
has the naming convention. So I'm going to select this and join with the correct one. Okay? This is variation A, and now this is going to be
variation B. Now export. So again, let us try
to import variation B. Okay, it has been imported, and now let's go here and we have already
selected the rooftop. We're going for
construction script. Stat static mesh. Get a copy, so that it
knows what to select. If you do not know, just
go the other way around. Make a array, and now
this is going to select. Okay? Now the first variation is going to be the default one, which is going to be this one. And now let's add
another variation which is going to be this one. Okay, Index number,
promote to variable. And just call it rooftop,
compile and save. So the default one is here. If I bring the blueprint
to allow us to change. Okay. Now, the rooftop, let me change that to the
variation number two. So let's see what what happened. So, okay, it's not a continuation from the
construction script. So we need to plug that here
so that it works right. Okay? The variation changed, and now we have a more
destroyed variation. Okay? Now, if you want
more variation as well, you could go here and try to rotate that to use
the other mesh. Okay, to use the other
side of the mesh. So it looks like
this one is okay. Now let's go try to remove some of those again a bit more. So I'm just going to try
to select the randomly, especially on these
edges that we haven't selected any of them. So Control L, remove. And because we have too
many instances here, even that one shouldn't
be that visible. Okay. And then let me reimport, the variation
imported, and now you see there's more of
those being removed. Okay, now let's repeat the same process for building
number five as well. So let's go for
construction script. This is the first one here. And then that static mesh and make sure that
we're using that. And I'm going to bring
the array from here. So just select the array. Okay. And get a copy and
then plug that here. Okay, we need to create a variable rooftop and then compile and save. And let's go for ue
print number five. So let's copy the name from here and search the name in outliner. I'm going to just first, make sure that it's visible. Now, if we change that, we go to the other
variation that has a bit of different look. This is not visible at all,
but let's change that. So this as well. So let's do something. This is one of the far away measures, and it's the
building number one. Okay? We could definitely
use the other variation. Okay? Now that is a more
destroyed variation. And I'm going to call this
lesson finished for now. In the next one, we're going
to finish the rooftops. And then we will go for creating the beams. Okay. See you there.
36. Finishing The Rooftops: M Okay. In previous lesson, we started to create
variations for the rooftops, and now we're going to
continue with the same process and just take in consideration that we have shadow
catchers as well, which we're not going
to create variation for because they're already okay. So this one, this one, this one, and this one
are going to be excluded. So we're going to create
variation only for the rooftop two and three. So now let's bring
this and again, I'm going to just take the
planks from this geometry. Okay, Control L. Then I'm going to duplicate
and separate by selection. Okay, it's here, and now it doesn't have the bugs
that we had previously. So let's try to continue using this Okay. Join, and then I'm going to
remove the unneeded geometry. Okay. Now, let's just copy and bring it here and I'm
going to make sure that the geometry
note is special, and it doesn't change
the previous one. Okay? Now let's do something. I'm going to let me
see where we are. Let's try to rotate them to face the
direction of the planks. Okay. But So this is okay. Now, let's just
instead of trying to manually remove
from the instances, let's create something in geometry nodes to be
able to remove that. So you already know that
instances are going to be placed instead of points. So you create points
on the geometry. We created points for each polygon in here and then applied one
instance on each point. So let's say that what
happens if we try to remove these points
before the calculations? So how we could do
such a calculation. In here, we have a selection
number, which is Boolean. So you know that
Boolean is on end off. So we are going to use that selection and based
on again the index number. Every point here has
an index number. So let me starch and
bring an index number. So now if we plug it here, nothing is going to happen
because we need to again add a randomized number here to be able to tell which
index number we want to cut using the selection
because that is a selection, and if we select some
of the index files, we're able to remove them or exclude them
from the selection. So again, we're
going to bring in a random value and
plug that here, okay? Of course, this index number
should be connected to ID. Now, instead of float, we're going to use integer. So now let's plug
that to selection, and nothing is happening
because we need to bring the Mint and max
to a certain value. So now if I bring that to one, you see now we are removing
or adding to the instance. So by manipulating this number, you're able to change the value. For example, if you bring the
men up, the threshold up, and now you could go negative to try to remove the
instances that you want. Just create a threshold and
it's going to be right. So now if I just connect
this back again, you see we have index correctly
removing the instances, but there's a
problem and that is the rotation number
is gone again. You see that rotation number because we had something like 500 instances we brought
this value to here to divide that to half because the
right and left bolts had the same amount
of instances. But now if I go here, you see now we
have 142 instances and that divided by two. Is 71. So now we see it just doesn't work because you need to flip the value to see
what is going on. But this is one way to do if you do not have a
certain rotation value. But let's say that we don't want to apply that before
the calculations. Let's say that we're going to use exactly after
the calculations. So let me bring this here. And now let's do something. I'm going to reset
these values again, and now I'm going to bring delete geometry in calculations. So here, just search
for the lead Geometry. Okay, now we're going to plug
this instance here and then geometry here to the
realized instances. Okay, now you see we do not have anything because the
selection is deactivated. If I plug the same here, you see that we have
all of the instances, and now if I bring this
up and try to work with the threshold Okay. Now you see it's removing
from the points. Okay? Let's go and try to
remove from instances instead. Okay? Now you see it's
trying to remove and it's not going to change
the rotation because it's going to appear
after these calculations. So let's go for zero, and you can now create a threshold and easily
try to remove instances. And the great thing
is that it's going to stay in place for future use. So now if we go back and
to material preview, you see that it's working great. So it looks like we
have gone too far. Let's try to change
the value just a bit. Okay. Now let's say that
we're happy with this. And there are some
problematic ones in here, and it could be fixed if
we go to geometry nodes. And the point that we created
variation for the rotation, we could bring
that value to 0.5. Okay? Now, they're going to be more towards the
value that we wanted. Okay, now let's do something. Again, I'm going to
bring this time, let's bring this, and we're going to rotate that by 90 degrees and try
to place it here. Okay. Now I'm going to select this one and keep that because later we're
going to use that. So let me make that special then connect
these geometry parts. Of course, before that, let's
apply the geometry nodes so that it doesn't create any
bugs or things like that. So first, again, let's join and you want to make sure that the pivot is taken from this
geometry in here. So it's rooftop number two. And if I just export that, it should replace
the previous one. So export. But this time, I believe a change
should happen. Let me bring the roof
up variation to, and it has only
one material here. But this one in here,
you should disable the one material ID because
it has a couple of materials, one wood kit and one extra. So if I reimport that again, it should be asking us
to change the materials. Okay? It says that it has
one extra material ID, set reset to FBX, so that it reads
the material from the currently created FBX file. Okay? Now you are seeing that
that change has happened. And now we could go
for the next one, and then try to
create variation for this. So let's do something. Again, I'm going to because now it's
selecting these shingles, I'm going to right
click, excuse me, control I to invert that P
by selection to separate. And now, this is here. If I bring that here, we could go to geometry
nodes and try to remove lesser from those
instances, like SOP. Let's go to negative five. Okay, only some
of the instances. Not that much. So let me
apply the geometry nodes. And then we should
be able to take these join and let's
call it rooftop, number two, variation B. Now let's do something.
I'm going to go to edit mode and take some of
these vertices and try to manipulate the placement using the proportional editing. Okay. Now, I think it's a good
one. We should export. And now the variation
B is there, and we need to go and create a utility
to be able to change that in modular building
number two and four because they are from
the same variation. So let's go to our viewports. Here's the one that
we're going to change. That static mesh. Just like always get a copy and then we're going to create
an array of measures. Static measures, we're
going to create two. The first one is going
to be this one and the second one is
going to be this one. Roofed up two and
roofed up two variation B. I'm going to just rename that the rooftop change. And let's go to the blueprint. This is variation number four. So let's just paste the name here and let's see
which are in the viewport. Okay, this one and this one. Okay? Rooftop change. If we go to this variation, we're going to get something
like this, which is okay. So now let's go for
Rooftop number two. Now, let's pick this. Set static mesh. And now let's bring
the array from here. Get a copy and then
just promote a variable visible And now let's go search for the
variation number two, and it starts from here. So let's pick up one of these destroyed variations.
This is far away. And this one, let's
go for the variation. And this one Now you see we have more varied
rooftops here and there. Now let's do something
for the variation of the building number three. I'm not going to do
anything because that is far away and nobody's
going to really see that. I'm not going to
change anything. So let's do something. I'm going to hide those.
But for this one, let me bring that to center. We could try to create
a base for it only. So let's pick up from one of these control to link selected or select a link then it should be
rotate at 90 degrees. Let's do something. I'm
going to explode the mesh. I'm going to make sure
that these are facing the correct direction.'s going for a good scale. Okay. And then we could easily
take this and remove And it's okay. So it's
already looking all right. Only we need a beam
to be placed here. Let's select all of them, and we should apply
the geometry nodes. Select all of these, join now it's perfect. Of course, these should
be joined as well. Okay. And now export. And we only need
to reimport that, which is this one. So right click reimport. But, again, it's
asking us to apply the material changes because
we added the wood kit. And now it's looking
a lot better. So let's do something because I need this one to
be so pronounced, like I wanted that beam to
be a bit more pronounced. So let's do something.
I'm going to take this one and then try
to rescale just a bit. Okay. Now if I reimport
that once more, it should be taking this place. Now it's something similar and
later that we remove that. It's going to be
visible like that. So let's again try to change
and I'm just going to bring export and then reimport Okay, now it's on a good scale. Okay. Now we are finished
with the rooftops. Of course, if you have time, you can go and try
to create more. But now we are going
to stop this lesson, and in the next lesson, we're going to create the beams. Okay? And then after that, we're going to remove
the base measures here. So the beam creation is
going to be important. I'm going to pause
and see you in the next lesson where we
are going to create beams. Okay. See you there.
37. Create The Building Frames: Okay, everybody. Now we
have reached to a point that we are ready to go and
try to create the beams. And after that, we're going to remove the base mesh
from these so that the final look of our buildings takes place
after a lot of effort. So it's going to be, again, a simple process. We're going to just take those measures
that we have and try to kit bash and see what we
can add to the buildings. And because the building number two and
four are the same, we're going to create
one base for them, and maybe for
building number four, we add something to
support this barn. Okay, but the building
is going to be the same. It only needs one extra
geometry. We will copy that. So for building number
one and five as well, it's going to be the same thing except again for the barn, which we're going to
create a base for, and then the building
number three. Okay? We're going to have three separate parts that we're going to create
and two instances. So again, let us start
with building number one. And now, because we have
so many changes in here, we're going to export
these measures again. So I'm going to take
these measures, take the blueprint and
export it as FBX so that we could import it to
Blender and try to work there. So let us go to
building number one. Okay, it's here and we're
going to start with this one. So now that we have
selected this, we could go to File
and Export Selected. So let us just call it
building 01. And save. So now we have options
here and we want to disable the collision because we don't want the collision
to be exported. We don't want level of details. We want the mesh
itself, and now export. So now let's go and
try to import that. It's here and now if I import, it should be placed somewhere
around in the world based on how far away it's from
the center of the world. So this is the center of
the world in Unreal Engine. So I'm going to just
reset the locations. So it's going to
not be that great. So let's select this one
and join everything. Okay? Now, if I bring that
to the center of the world, it's not working. So, it went to the center of the world and let's deactivate
the rotation as well. So now we have our
mesh to start working. So now let's try to
remove the base. Okay, because the base is
composed of many meshes, I'm going to let's go back to a part that we have
separated geometry parts. Okay? These are modular ones, and I'm going to take
this one like a base. Okay, here it is. And then I'm going to select everything press
Shift P or press P. I those Control P and parent to object while
keeping the transform. Let me take that and remove
and reimport that once more. Okay. And then I'm going
to select this one. Let me select everything and
this one, the active object. Control P. Look, let's do something. I'm going to select all of them, press P, the clear parents. Okay? Now, it has
scaled too much, but before that, you see that
it has scaled dramatically. Let's try to select
the base again and then try to parent with it. Control P, keep object
and transform, okay? Now we should try to
scale that I believe if I scale it by 0.1 no, that's a scale that by 0.01. Okay? Now, that was
the correct scale. And now I bring this and try to test to see it's
working all right. Let me bring the building
number one. Okay. It's working great. So
now we could take this and hide it for the time being, and now here we are
left with the building. And now we're ready
to try to place these around the building
to create a base for it. Okay, we're going to use
these and let's do something. I'm going to I'm just
going to solid view, so that I'm not distracted
by the material. So let's apply a
simple material. Okay? Now we are ready
to start kit bashing. Oh, let us start with these And that is just a simple kit
patching process. And it's going to
be easy as well. So let's remove that
for the time being. I'm going to take these and then separate the mesh. He. And now let's place
the pivot here because I want the
base to be here. And now let's select
this one as well, okay? Now it's a lot easier
to manage from here and try to rescale to
a point that we want. So now, let's try to bring
this to here and then try to rescale that to match
the directions. Later that we add the
separate material, it's going to look a lot better. So let's just copy and then we're going to duplicate
them to the other side. Very easy. Okay, it
looks like we didn't copy. No, it's there. Don't just try to think, like how this building
is going to be created. It's a storytelling part. And later that we were
finished with the mesh, we could take the mesh that
we have here and remove, and now we're left
with base only, okay? Let's just create a base for
here as well for the attic. Okay. Let's go for 90 degrees. Now I'm going to create beams for the center
part as well. But I don't want that
to be too prominent. I just want to see that
in the construction. Let's duplicate here, rotate 90 degrees to see
the other variation. Okay. Now let's take these 50, bring them here, to use
for the site as well. So again, I'm going to take this to the center
and create a base for the attic as well. Yeah. Let's try to rotate
that. Like so. And this is a part that depends on you on how you want
to create these measures. Nope. I wasn't okay there. Okay, now let's do something. I'm going to hide these for now. And by deleting the hierarchy, we're able to delete that. Okay. Now I'm going to take
all of these, join them. But the pivot needs
to be in here because we brought
the previous mesh and placed the pivot in
the center of the world. So let's bring the
pivot to origin. No pivot to cursor. Okay. Now we have a frame
that we could use to see what we have done so
far. Let's call this one. Let's pick up the
name from here. Now, let's pick up from here. Static Mash Building 01, and then it's going to be frame. Okay, let's place that in the De folder and
I'm going to export. And now we're going to test
it to see what has happened. So import our final folder. And now let's go ring here. And finally, we could
take this and delete. This is a test
building or we could try to replace it
with another mesh. So let me add instance, static mesh and call it frame. Okay? Now, for the frame, let's just search for it. Static mesh frame zero, one, and we need one instance. Okay? Now, you see that
it's working all right. Now let me bring this up so that this one
is now the pivot. So now we could take this one and then try to remove it. Okay. Now if I compile and save, you see now, it has applied
that geometry here. But of course, the color
combination is a bit annoying. Later, we will create something
that looks a lot better. Okay? Now, the same
thing could be used for building number five as well with just a
simple variation. So now let me select building
number five from here. Okay. Now I'm going to export and then just
call it building 05. Okay? Export. And now let me create a variation and bring
this one over to here. Now what we spawn should
be placed in here exactly. Building number five.
Let's see what happens. First, we need to
create the parenting. Let's select all of
them, P, clear parents. Now again, I'm going to
select that base here, Control P, and keep the parent. Now again, we need to
scale that by 0.01. Now you see it has been spawned exactly on
the place that we wanted. So that is going to be easy. Let me bring that. And let's try to separate the mesh
and create a base for here. Oh, let's rotate that. Like so. Okay. Now, of course, we could bring
some planks and place them here which you could create. But for now, I'm not
actually interested in that. Well, let me take this, and this one is the parent. So we need to delete
hierarchy to delete that. Okay, now let's
take this one and this one is the parent Control
J. The pivot is in here. Now it's going to be
building number five Frame. So export. Okay, here's
building number five. And let us import it here. Okay. And then we could easily
try to spawn that here. Search for frame
and replace it with here, compile and save. Okay. Building number five
is corrected as well. And if you want, you can
go and try to create more variations and
create more changes. But since we're limited on time, I'm just happy with what
we have created already. So now let's go for building
number four and two. So I'm going to
work on number two and create variation
for number four. So let me find number two. And again, export,
let's just call it number two with
the same settings. And now let's go for number
four as well and export that. Eventually, we will try to
work on that variation. Number four, with
the same settings and let's go for
number three as well. Okay. And then export. And let's call it number three. The same settings.
And now let's take this and I'm going to import
the building number two. Let's zoom. First, we need to unparent that out P clear parent and then make sure that
you select the base, which is going to
be the pivot and then Control B and parent that then try to
scale that by 0.01. Okay. Now the scales are
great, and we can work. And then after creating this, we could duplicate the variation in number four and call it done. Now, let me select the
frame and hide it for now. And I'm going to
just copy these. Let's create a folder and call
it 02 for the time being. Let's select all of
these and 02, okay? Now, we're ready to start
the creation process. First, let us
correct the pivots. Then this one, as
well. If we bring it here and return back, we're able to get back
here and try to work a. Okay. The work is
going to be easy. Just keep bashing the meshes
and the powerful work of this method is just taking the meshes and rotate them here and there
to create variations. Okay, let's just
use the other side and add just a bit of variation so that they're not
totally identical. Okay. Now let me take this one
copy, bring it here. And here as well. Let's rotate that 90 degrees to create a horizontal
base for here as well. Okay. Okay. Now let's try to
create something for here. You know, there's not that
much learning value in this lesson except
for kid dashing, which we have been
creating a lot. Okay? So we can take
your time and try to create more variations
the way that you want. Okay. Now let's
call this one done. And let me see if I go to the collection number two that we already created. Okay, now we're left with a structure for
building number two. It was just duplicating
some measures around, okay? Control J and make
sure the pivot is in the center Okay. Now let me call it
building number two frame. And then I'm going to
export and bring it here. Okay? Our final folder. Okay. Just like
the previous one, I went and replaced that
with the previous mesh. Okay, it was this,
and I just went and replaced it with frame
mesh, which is this one. Okay? Frame number
two, compile save. Here you see the result. And now let's go
for number four, which is another variation
of this building. Okay? Let me bring
the building number four and create
duplicate of this. Okay, building number four. Now it's parented. So let's unparent everything. Make sure that this is the base, selected so that it's in
light colour Control P, keep the parent and now
you should scale that 2.01 and you see now
it's working correct. So now let's take
this and try to hide. Of course, we should
hide it, not delete. Now, let me take one of these. And I'm going to just create a simple base put this part in here. So let's rotate that 90 degrees to use the other
variation and rotate this 180 degrees to use the
other variation as well. Okay. Now, let me select this, delete hierarchy,
and it removed. Now let's try to
select Control J. Select this one, Control J. Now the pivot is correct. And now let's call this building number four frame and export and then try
to reimport it here. Building number
four, then select the pivot compile and save. Okay? But of course, we need to change the
color composition a bit. We want that to be
something like this, a neutral color rather than being something like
these sharp colors. Okay, now we're left with
only building number three. Now let's do something
because that color was too sharp and just creating
lots of contrast. I'm going to select
that, create a filter, and let's bring a hue
saturation lightness and try to just change the color
to something like that, a bit of desaturated wood
and with a darker tone. Of course, later we're going to create a good texture for them, but this is now
just for testing. Okay, again, export. And then here, let's just try to find the textures reimport. Now it's more of a desaturated
more just better texture. It's reading with
these a lot better. So let's see if we
could change the hue to match with these a bit more. Now, let's add filter
and then contrast. Contrast and luminosity, after
adding a bit of contrast, it should read with
these a bit better. Again, export and
once more re import. Okay now, color combination
is a lot better. It needs to be improved, but it's a bit better
than the previous ones. So now let's go for
the building 03, which is this one. Just like always let's
remove any parents. And then this is
going to be our base. And then rescale that by 0.01 for whatever value that
it tells you to do. So let's place them in two folder los Ds Okay, now let's hide everything
else, including the base. Again, we're going to correct
the pivot one last time. So just try to place your beams
on a place that you want. Okay, we want one
here because you see, there's lots of contrast
on these wood planks. Okay, I'm just trying to
create a good result here. Et's go to normal or local. Both of them should
work properly. Okay. All you need to do is just following
the shape and see how you can create
a base for this one. So let's try to rescale that. Now, let's see what happens. Okay, we need these
to be duplicated. Okay. And this one as well. To the side. So now, I think, like, it should be enough. So now let's just try to
select everything Control J, and let's bring the
pivot to the center. Now, let's call this
frame number three. Okay, and exports. And now let's place all of
these in the De folder. Okay? And just like
the previous ones, I went and replaced
that with the pivot. And now we see that our
environment is taking shape. Now all of those base meshes and those temporary meshes
are out of the way, and we have now created the modular meshes
that we needed. So the next lesson is going
to be either going for correcting the textures or maybe correcting geometry parts that
we have forgotten already. So I'm going to pause and
see you in the next lesson.
38. Wood Texture Completed: Okay. Now finally,
we are going for creating texture
for the wood kits. And you see probably
more than 90% of the tutorial or the environment is composed of
that wood texture. So that is going to be an
important ext to create. So you already see
that we have created a very simple material with the textures that we
already created in painter, and we didn't create a really
sophisticated texture. It was just for
testing the results. And now I see that we just
desaturated the results a bit. Let me plug this
here because I want the texture to look all right because if you go
and update the texture, then it's going to be
desaturated first and then processed and
then we could see it. So using this we're able to see the texture itself
and nothing else. Okay? And because we're using this wood kit material
for all of these, if I go and try to just update the texture and then export
it and then reimport, it's going to affect
the whole world of the environment
that we're creating. So here's our painter file. Let me just do a demo. And, of course, I just
created a simple board to place some textures
here to help us pick colors from to see which
direction we want to go. And just note that these
textures are PBR calibrated, and it means that they're not affected by the light at all. Okay? If you just bring a color that is
affected by the light, you're going to get
problems in the colors because colors are either
too dark or too bright. But these ones have been processed and are
PBR calibrated, and you can download re images that are PBR calibrated
and pick colors from. Okay? Let's go and try to pick a color from these
tones to replace that. It's only affecting
the wood plank. So now let's use a technique which is called
gradient mapping. I'm going to bring in a color because I only want
to change the color. Oh, instead of creating only one simple tone and using a color or to
pick colors like this, I'm going to bring in
procedural texture. So let's go here to
procedural textures, and I'm going to bring something
that has lots of range. So let me find something. For example, let's bring
this one to base color. Okay? You see now we are
getting something like this. If I go and set that or let's bring the tiling
up to something like two. Okay? Now, if I
bring in a filter and here bring in
a gradient map. It's going to look at the color composition here
that we have and go 0-1. In here, we tell that, for example, we
want five colors, and it tells that wherever in this black and white texture, it's black, replace it
with a certain color. Or if it's, for example, something else, just replace
it in that range. Okay? And let's set this one to 0.2 0.4 And do not worry if that looks like this. If we change the colors, it's going to look a lot better. And for one as well, let's leave that to be
something like that. Okay? That is wood and
to be directional. Let's go and go to the
black and white texture, and let's try to exert that like it's
something directional. Okay. Now let's go
to our gradients, and I'm going to pick
from these ranges. Okay? Just color pick Okay. It's going to change the color. And then we will
return back and try to change these values. Okay? Now you see we have
something like this. Of course, it's not
a great result. And you can see that we can get different results
based on our needs. So now let's say that we're happy with this
color composition. And the great thing about using reference like this is that
we get color consistency all across because this color has consistent colors
and it doesn't have value jumps like the ones
that are not PBR calibrated. So now I'm going to
export this texture, and it's going to be replaced
with the previous one. Okay. And now if I go and select these three textures
and re import, you see now the look of the environment
changed completely. And why is that because we changed that color to
something like that? Of course, this is not
something that we want. But here's the powerful
workflow of this method. If you change something
because we have instance that across the world, it's going to
affect all of them. Of course, later, we're going to create shader material that, for example, we tell that, for example, for each plank, do a bit of color variation so that they are not
just a simple color. If we go here now, you see, it's a simple color
being repeated all over, but later we're going to
create a better result. So now we are going to re export this and
then re import again. It's going to return back
to its previous look. So from time to time, I'm going to bring
real engine and test the result to see if
we like the result or not. Okay? And then we're going to texture three types of wood. One is this one, which we might use an exposed
color just like this, but with a better texture. And is this one, which
is the main one which is being used a
lot in the scene, and this is just for first shape that has been used
in the scene, okay? Now I'm going to remove
what we have here so far. And let's try to create folders. Let's call 101, and just bring a very
simple texture here. So just to identify, let's change the color to
something that we can see. And then we can go
here add a black mask. Okay? And then using this polygon fill
going to object mode, we are able to pick
up this color. Okay? Now we have created
a folder and later, whatever change we
want to go for, this one is going to
happen in this folder. So let's bring another one. Let's call this 102, bring another fill and
now let's go here, add a black mask. And then I'm going to
pick up these three. Of course, it's not visible because default color is white, but here you can see the idea. Okay. Now another folder, let's call that 03. Okay. And then I'm going
to pick up these three. Okay, now the folder
structure is there. Whatever we are going to
do is now it's going to be through these folders. Okay. Now let us start
with the texture creation, and we're going to start
with the plank because that is the most used
one in the scene. So let's call this
one base wood. We could start with a
simple value or we could go and use one of these
procedural textures. Well, let us start
with these procedural. And I think that the best one to start with is the wood rough. Okay? Let's replace that. So we could delete that one completely and replace
it with this one. Okay, now you see, because of the rotation and the way
that we created the UVs, all of these should be rotated. You see, these are getting rotated the way
that they should, but the rotation of the
texture is different. So let's go for rotation
and set it to 90. So now you see all
of them are getting rotated the way
that they should. Okay, now we are
seeing that there's a good amount of wood
information in here, but definitely we
need to change that. So it depends on us if you want to introduce
lots of noise in just this beginning
stage or start with less noise and
add noise later on. And, of course, because this
is a generic modular kit, we're not going to add
lots of special details. For example, we're not
going to add something like this because if we instance
that in the scene, it's going to be revealed that
it's a repetitive detail. Rather later we
create variation maps to add variations there and just remove a lot
of that repetition. Now, let me delete that
then start to work on this wood rough and
see what we could do. Okay? Now this is good. You see, I don't want a lot of distortion in those
beginning wood fibers. Just I said that because it's going to be too noisy
in the beginning. So for the wood color I like to bring a
color like this. Okay? And then let me
bring another color, and this is going to
be the variation. Okay, I'm just going to
rename these layers and you do not have to watch
the renaming process. So let me bring one of these, and I'm going to pick up one of these values that we like Okay. And now let's try to change
the blending modes to see which one is the best
one for our use case. Looks like this is good to start because I want them to be a bit
desaturated color. No, here's the base color
updated in on real Engine. And I think that it's a good
color because we could add variations on top of it
to look a lot better. And if you see that, there's
this knowing color change. Later that we fix the results. It's going to be a lot better. Okay. Now let's try to add
just a bit of color variation. I'm going to copy this and let's name it color variation 02, and let's go for a darker color. Let's add a filter,
and then I'm going for hue saturation lightness and bring the lightness
down just a bit. Okay. And now I'm going to
add a black mask here. So instead of selecting
different colors here, I'm going for procedural. So let's go to our procedurals, and I'm going to bring
something directional. Okay. Now if we go here, you see that there's a
bit of color variation. So let me see if the
direction is okay. If we tie it by four, it's a good variation. And now we can go to material and change
its properties a bit, including roughness. So we could bring a lot of roughness because
wood is something rough, and let's see the
roughness Okay. Now this is a good
color variation, and let's go add
another layer. Okay. Now let's try to
bring something else. And this time,
let's try to bring the gradients mapping technique that we have been talking about. Okay? Now, you already know that we're going to bring
only color, okay? And then on the base color, instead of using something
like, for example, a single tone, we
are going to bring something procedural
that has lots of range. Okay? This concrete looks good. Let me see if we could fix the tiling a bit by three, okay? Let's see if the rotation
is going to help. Okay, now that is
something directional. Okay, now, let's try
to add a filter, and I'm going to bring
in a sharpen to sharpen the result because I want to
have a bit of contrast here. Okay. Now we're going to
convert this to color data. We are going to select that
and bring in a filter, and then we're going
for gradients. Now this is going to help
us pick colors from. So let's bring lots
of colors so that we could really bring something rich in terms of
color variations. So again, we're going to use this one because it
has lots of good colors, and I'm going to try to pick up from dark to bright colors. So let's bring that to
something like here, okay? Now, This is taking too much later. We're going to bring that back. But the color is going
to a good direction. First, we pick the
colors that we like, and then we will change the composition by
changing the color here. Let's pick something light. That was similar to
what we already had. Okay. Now, let's try to change these colour sliders so that we get the
results that we want. This color composition
is so great. Now, I'm telling you
that, for example, whenever the color
is in a point of 00.3 in the black
and white color because the color is 0-1. For example, whenever the
range of the color is 0.03, just go and place that color. Okay. Now let me bring
this to here and this dark color Okay. Just go and see which
color composition you want to be in
certain places. Okay, now we create a really sophisticated
texture like base color. Okay? Now, let's see how we could lend that with
previous color information. Looks like darken is a good one. Overlay is good as well, but that's going to be too dark. Okay. I like the pin lights. I believe it should be, okay? It's a lot better. So let's go see this is the
color that we have. And now I'm going to create
a mask based on that because I don't want that
to be all over our texture. So let me add a black
mask and then add a fill so that we could use some of these procedures
to help us with that. So let's go for a wood texture. So these are the baked
ones that we already had. No, I didn't like any of them. So let's go for
something directional. So let us start with
the directional color, and we need to rotate that 90 degrees first so that it matches the
direction of our color. And then let's go for a
tiling of four, for example. Okay? And then let
me add filter, and I'm going to sharpen that because we need
lots of ranges here. So whenever it's black, it's going to show
the previous layers and whenever it's white, it's going to show
the current layer. Now I'm going to bring
another fill to the mask and let's bring some of these procedures and
try to use them. Let's tile that by four, and I'm going to use Max Lighten to add to
that color composition. Let's try to bring something directional and
with a bit of contrast. So let's go to the normal
mode. Let's go to normal. Okay? Now, of course, we need to bring more
white textures to here because I want to see
more of our wood color. So just try to use these colors that have
lots of white colours. Okay, Max Leighton,
but that was too much. Okay. Now we're
seeing that we are getting some of that
color variation here. Now you see the color is getting the darker tone that we wanted. So let's do something. I'm going to bring to multiply. Now, let's see which one is
going to be the best one. Okay, I tested and found that that pin light
is a good color. But again, after that gradients, we could bring in a level. Now, let's bring in a filter and use a bit of
contrast on our texture. Okay? This we'll try to
differentiate between color textures.
And that is okay. So if this was a single prop or something
that didn't get repetitive, I would have added details. But since that is something procedural and it's going
to be instanced a lot, I'm not going to
change that much, and I'm not going to add
so much special details. Oh, let's add another variation. And, of course, let's go
here to the previous layer and go for roughness and change the color
to something else. Let's go for roughness. And of course, we could
bring the height as well to something more visible. So it adds just a bit of surface color surface
undulation, excuse me. We just don't want to have a lot of ranges so far for now. Now let's go for
the next variation. And now let's use some of these height changes that we have based on what
we sculpted in Zbrush. So let me add a black mask
and I'm going to add a fill. So we're going to go
for the Bake mesh maps. So let's pick up ambient
occlusion and you see, no, ambient occlusion
isn't a good one because some of these are
darker than the others. Let's go for something
else. Let's search. If you have baked
the height map, it should be good for now. Okay? You see now it
has the height map. Let me see if we could use Auto level o know the height
map isn't good as well. Let's see about curvature. Okay, curvature is okay. Sound out because I want
to be able to pick up these areas which
have been sculpted. We need to burst at a level, use Auto level and
then invert that. Okay? Now we're using these areas which are basically opposite of
the curvature map. And if we go here, we need to add levels
and try to limit that. And here we are able to pick up certain areas of the color. Okay. Now let me use
gradient mapping again. So first, let's bring something
that has lots of ranges. So this one is okay. Let's go for base color. Okay. And let's try to
add lots of tiling. Okay. Now, let's add filter
and gradient mapping. And I'm not going to
add lots of colors. So I'm going to pick up darker
colors to differentiate these areas which have
been sculpted in Zbrush. So let us pick up from
these darker tones. Okay, this is the result
like dirt collecting in these areas. Okay. Now you see these areas
are more pronounced. If I go back, you see, we have more variation
in these areas. Let's go for roughness
as well because those areas where the
dirt is going to collect. It's going to be so rough. Here's the roughness, excuse me. Okay? We want them to be rough. So we want these
areas to be rough. So now let's see what
we could add here. If we add a bit of edge damage, these edges as well
would really shine. Because now if you
look from far away, you're not able to
guess the distance. So by adding a bit of edge, we're able to focus the
composition on these areas. Okay. And now let's
do something. This one, instead
of using normal, let's go for pass through. And what pass
through does is that it's going to capture
colored radiation, excuse me, color information
from the layers before it. So let's do something.
I'm going to bring in paint layer instead
of fill layer. So let's set it to pass through. And you see it takes a screenshot from the
layers before it. So why am I doing that? Because if we bring
an edge mask. Let's say that, for
example, we apply that edge you see that it's distributing only
one color on these areas. But I'm going to use
the previous one and use the colors themselves
to blend with themselves. So let me add filter first. I'm going to bring hue
saturation lightness and try to bring the
saturation up a bit and try to bring the
lightness up so that instead of using only one monotone
color on the edges, we're able to use the color
from the previous layers. So let me now bring that So let's bring something. I want to be able to
pick up the edges. Okay. This is good, but we need
to focus more on the edges. Okay, that's fine. Let's add a bit of contrast. And now, if we go to here and
try to bring up the color, we're able to tell
where the edges are. So let's zoom far away.
So let's do something. Let's go back. I believe
this wood layer, okay? You see? It just
distorts those edges. We don't want that
to look like that. Let us go to roughness. Let's go on this effect, and I'm going to add a fill. This fill is going to add
a bit of information here. I'm not going to use color, neither metallic roughness or I'm going to only
use the roughness. So let's go to our
roughness value and we could bring that to something like this so
that the edges shine a bit more because the light catches
better in those areas. Okay? Now, so far, I'm happy with the changes
that we have created. Now let's add a bit of
mesh related changes. So I'm going to bring only
color and try to see what these masks offer and
use them in the color. So let's bring the
ambience oclusion effect because I don't want
ambient occlusion here. Okay, this is going to
use a darker color. Okay. And let's go set to multiply and bring it to
something more controlled. So let's add another layer. And I'm going to test. No, this isn't right. Let's go for other areas. So this paint is good. Later, we might use for colored radiation that
we create using shaders. Okay. This one is not bad. Let's pick up the dark color. And we could go bring
the global balance up. And we don't want that to be something like a paint layer. We want that to be
something like a dust. So let's go bring
lots of roughness. Oh, here's the result so far. Now let's do something
because we have already set up a material here. I'm going to right click and
create a smart material. This is going to create a reusable material that
we could, for example, place in this folder and use here with a bit
of color changes. So of course, we could have removed the
color first, okay? Now, for example, we could add a paint layer on
top of everything. I'm just testing to see
if we like the result, we will go and use it and
if we didn't like it, we will just texture
these from scratch. So, let's set that
to pass through, and then I'm going
to bring in a filter and use a bit of
contrast on the color. Okay, and looks like
this little layer. So let's see it would be a
good idea if we remove it. Okay? Oh, here's the result. Of course, we are seeing
lots of value jumps. If we go here, I want
them to look similar. So let's try to bring the contrast to
something more controlled. Okay, and then add a filter and use
saturation lightness here. Okay, it's a good one. And let us add the same
folder to here as well. And then we're going to change the tone to something else. Let's bring another hue
saturation, lightness. I want this to look more desaturated and a
bit darker. Okay. Now let's do something because
the result here is okay, but I want that to have a
bit of brown toll already. So I just create a fill layer, excuse me, a paint layer. Let's set it to pass
through so that it captures all of the
information from these layers. And then I'm going to bring
in a filter and let's go for el saturation lightness, and I'm going to just change the hue of these colors
to something like brown. M No, this isn't working. Let's add a filter and
add contrast instead. Okay, now I'm liking
the results more. And later that we
add the variations, for example,
separate each plank. It's going to look a lot better. So let me pause the lesson
now and in the next lesson, we're going to create material. We're going to create
a material that is reusable across the project, and we're going to
create something to control what we want
from the texture. For example, if we want to change the base
color to what we need, if we want to add extra normals or if we want to control
the roughness and so on. And then when we make sure
that the material is okay, we will go and create the
variation maps and add secondary UV channel to these for variation maps.
Okay. See you there.
39. Master Material Creation: Okay, everybody,
now we have created a very basic texture that fits
for all of the buildings. Now we are going to
create a material, and that material system
allows us to create variations per instance
in Andrea engine. So we are going to add specific detail
types that we want. For example, we go
and create something to change materials per building
using these blueprints. For example, so that we
have different colors of wood so that they don't
look exactly the same. Okay? In the first lesson, we're going to create a
master material that is going to be used for most
of the props in the scene, including these modular ones. Okay. And then we're going to create variations in
that as well so that we get the most
amount of variations from these specific
details. Okay? Now, let me go to our boulders, and in the materials, I'm going to create material. Okay. Let's call this
one, zero, zero, so that it appears alphabetically in the
beginning of the list. And then it's going to be MM representing the
master material. And then let's call it modular because it's going to be used on our
modular pieces. Then we're going
to take instances from this for the
pieces that we want. Now one thing is that
we're not going to use this material attribute
the way that it is. The first thing
that you want to do is use material attributes. Now, this gives us more control and we
go here, for example, create one material and
then plug it here to avoid a lot of noisy macaroni type of material because some
of the materials that we create might have a lot of wires connected
here and there, so we don't want
a lot of overlap. So this one helps
us achieve that. Of course, these blending
modes are important as well. But this one works because we're going
to use for surface, and it's opaque
because we're not going to be seeing
what's behind it. Okay. Now, here's
our wood material. I'm going to export it so that we could create the
material based on that. We're going to export the base color normal plus the roughness, metallic and ambient occlusion. Right now we do not have any metallic information,
but anyways, we're going to create something that is reusable for later. If later you create
texture that has metallic, it's going to use
that one as well. So now Control Shift E
to bring that again. Now, the format is going to be Targa and the resolution
let it be four K. Of course, we could have
used the tiling textures. This one will do as well. So we're going to
create a system that allows us to export the base color normal
and the act texture, which is going to be an
RGB channels separated, each one for specific use. For example, instead
of exporting only roughness to one texture, just like the one that we
have here. Let me bring that. Okay, here you see, we have exported the roughness
channel to only one texture. So this is not going
to be that optimized. So we're going to pack those black and white
textures into one texture. So we have some plates in here that we could
go and try to use. So default one is the
unreal engine packed. So it already has
everything that you want, but we're going to duplicate
and try to change it. Okay? Right click duplicate, and now let me just
call it UI packed. So now, in here, you see the first one is
going to be the base color. Okay? We're not going to export an Alpha channel
with it because Alpha channel is going to make the texture
more expensive. So we could click
and clear channel. Okay. Now the next
one that we have is, you see, it has created
RGB separately. The base color has RGB
all in the same texture, and it creates a color texture, just like the base color
that we have here. And here we have the
RG and B separated. So now the next thing
that we want to do is separating excuse me, setting the format to be Targa. So let's change targo
for all of them. Okay. Now the last one
you see in here is ESV. We do not have an
emissive channel. So let's just remove. And in here, you
see we have normal. So it has an RGB. So you see that it's
normal direct X. Of course, Unreal
Engine exports, excuse me, reads the
normal indirect X format. But since I'm used
to work in OpenGL, I bring the OpenGL map from
here and plug it here. Okay. And then later, we will just convert
that to direct X in real engine with one click. Now, or something like this, which is our pack texture, you can just click here and it will bring
something like this, and you can just try to use the same naming convention
to whatever you want. For example, bring that. And for naming convention,
you could click here. And for example, first, you tell that first place the name of the
mesh, something like this. And then it will place the name of the texture
set and things like that. Just like this, you can create the variation
that you want. For example, here, first, it would bring the
name of the mesh, and then it would bring the
name of the texture set, and they have been
separated using an underscore then name of the texture and
things like that, if you want to create
something like this. So we already have a
pattern and now let's use. So the R channel is using
mixed AO which is using the ambient oclusion from the bake and the ones
that we have applied. So we haven't applied any
ambient occlusion results. But since sometimes
you might have applied something,
let's keep it. But I'm going to
bring the mixed A O. Instead of R, I'm going
to bring it to B. Okay? Now, in the green
channel, we have roughness. I want that to be metallic. So from these inputs, you can search for metallic, it's in here and bring it here. And then for R, I want the roughness channel
to be the R. Okay? From here, you can
search for roughness. And now we have created a
texture that has roughness, metallic, and ambient
occlusion in here. Of course, if you're not using ambient occlusion, you
could, for example, bring a missive to one of these channels if it's only
a mask or if it's color, you can create a
separate texture for it. So for now, we have
the template setup, and in the settings, you just want to go here and go for UEFive packed
that we created. File type, it's already
set to Targa. It's okay. So now we're going
to export Okay. Now you see it as
exported three textures, and now if I take a look,
this is the base color. This is normal, and this
is the ambient occlusion, roughness and metallic.
So here they are. And now this one is a channel texture that we're going to separate
in on real engine. And now for a naming convention, I want to add T underscore before the name to tell
that it's a texture. Okay. Later, if
you want to find, for example, textures
in your project, you could search T underscore
and get faster results. Okay? Now let's go
to our textures, and I'm going to import.
And here they are. So import. Now we need to change some
settings for these textures. So the first one is this
channel pack texture. You want to go
compression settings. Instead of default, we
want to set to mask. So using mask, we are preventing those value
changes in the texture. So now we have R channel, which is the roughness. We have green channel, which is metallic, so we
don't have any. And then B is the
ambient occlusion, which is the baked
ambient occlusion and the ambient occlusion that we added in the texturing phase, which we didn't actually. So here's the default ambient
occlusion in that texture. Okay, now we have a normal, and this normal is OpenGL. So to change it, you
want to go here, all advanced details, and then you have slip
green channel. So you click and save, and it's converted to direct X, and we have the base
color which is good, and format is set to default
direct X, and it's okay. Now we're going to create a master material to
use these textures. But make sure that you do
not use these textures in the master material itself because you see this texture
is a four K texture. And if you use it in
the master material, every time that you
instance that material, this texture is going to
be instanced as well. So it's going to be
heavy for performance. So we're going to use
placeholder textures that are so smaller in scale and are
better for performance. So now let's try to create, and for the first one, we're going to create
as color, basically. So first, I'm going to
cross T and click here. It brings a texture. So we have no way to
connect this texture to that material because that is a totally different
type of data. So for our workflow, we need to create material
attributes ourselves. So search, make
material attributes. Now, this will bring the
inputs that we wanted. For example, if I bring
the base color to here, and then I could connect this
one here, and that works. Okay. Let me find our material. Okay, now we have a
system that works, although we need to
create textures, but you see that it works. And I'm not going
to use something like this because we need to
create different controls, and I don't want to really
overcomplicate the project. We create what we
want and then create a reroute node and relate
to the inputs that we want. Okay. Now, let's say that
we have a base color, and this sampler type is
very important as well. And the next one that is
important is sampler source. You want to set it to
shared wrap so that if you use lots of
textures in one material, you don't get any errors. So now, let me bring one
of the default textures. Just search for the default, and there should be a
default diffuse that is small and not
consuming so much space. Okay? I think this is. So let me bring that
default texture. And you see, this is only a
color that is 128 by 1228. And it's a lot lighter
than a four K texture being duplicated multiple
times in different instances. And you want to make sure
that this sampler type is set to color as well. So now for changing this one in the viewport in the
material instances, we need to convert
this to parameter, just like the parameters
that we created for changing the color in the
viewport in real time. Okay? Let me just call it Andres 01 to tell that this
is the base color from the material 01 and
then base color. Okay. Later, if you wanted
to create spright material, for example, a paint material to be painted on
top of these materials, you could duplicate the
same you could duplicate the same things
that we create here and just change the name to 02, and you're going to be fine. Okay? Now, let's do something. In the beginning, we're going to set the sort priority
to negative one. Why is that I want the base color textures
to appear on top. So let's not do that. We will later just explain. But for this one, I'm going to set it
to material 01, okay? It creates a folder
and brings all of the textures parameters that
belong to the same material. So we're going to create a system that
allows us just like a substance painter system that we used for
changing the hue, saturation and lightness,
we're going to create that and then the ability to add contrast to
the texture as well. So here's our base color. And then for the UVs, because these are baked UVs, we're not going to
change the UVs at all because if you tie the UVs, you're going to get
errors in textures. But since we do not have
a tiling UV right now, we're not going to
use the UVs for here. Okay? Now, just plug the RGB, and the first control
that we're going to use is the ability to be able to change the hue change
the saturation, excuse me, because first we desaturate the texture from the
green to something, for example, like a
gray scale texture, and then apply color
after that if you wanted. Or if you didn't want, we
just could simply avoid that. So let's bring the
desaturation, okay? Color. And then it
needs a constant here. So a fast way and quick way
to create is exactly what you want is right clicking in here and right click on the node, and it should be
promotive parameter. Okay, it creates a parameter, and then let's call it, 01 underscore
representing the material that we are working on. And then EC representing
the base color. And then it's going
to be desaturation. Okay? Now, for the desaturation,
the default value, we want that to be zero because desaturation of zero means
the default texture. And if you just set it to one, it's going to desaturate
it completely. Just right click here, start previewing and you see it has converted that to
a gray scale texture. But if you set that to zero, you get the default texture. So we're not going to
change that at all because we want that to be the
default without any change. So let's stop reviewing. And then the next
control that we want to add is the ability
to add a hue. To change the texture color. So let me bring multiply. And there are multiple
ways that you can add hue, one is multiply, one is overlay. Okay. Both of them could
bring a good result. So let me bring in vector. It's three channels vector, and let me convert that
to parameter because these all want vector three. And if you apply one vector,
it's going to, for example, if you bring one vector
constant or vector one, it's going to multiply all of these three channels
into the same value. So that is why we're going
to bring a vector so that these are separated. Now, let me call it. Let me just take the naming
convention from here. And then it's going to
be base color Okay? Now, let look like
that here and here. Just start previewing. And because we have multiplied
everything by zero, we're not getting anything. So the default should be white. Okay? Now, let's
say that we change the hue to something
like blue color. Okay? This is using multiply, and now let's start previewing this one. This is another one. So both of them probably
give you something, but the multiply
because multiply, you need to have a value that is bigger than one
to lighten the texture. And here you see
we have all values that are lesser than one, for example, in here, it's going to darken the green channels. But overlay does not have that, and it's going to
be a bit lighter. So it depends on you. If you want to
have the multiply, multiply is going to
darken the texture a bit unless you go and
exaggerate the value. For example, if you go for 1.25, say it tries to
lighten the texture. If you go for two,
four, ten, okay? But if you want overlay,
you could use overlay. So let's try to use overlay instead and stop
reviewing the node, and it's going to
be our texture. So let's set the default
value to one. Okay? Both. Now, it's ten. So let's go for one. Okay, one, one, one in
here, and it's good. So now, the next one
that we're going to use the ability to darken
or lighten the texture. So we already know that the multiply is a very
good one for here. So it's going to
use only constant, and that constant is
going to be multiplied on all of these
channels, RG and B. Right click promote
to parameter, and then I'm going to apply
the same naming convention, and this one is going
to be lightness. Okay. Now we are
previewing that because we have been multiplying
that by zero. So every value multiplied by
zero means one, excuse me, means zero, and by 0.5, it's going to
darken the texture, and 0.1 is going to be the
default value of our texture. So let's stop previewing that. And then we created a very
basic control for base color. And now let's go bring
contrast as well. Let's bring the
cheap contrast RGB. And then let's start previewing that so this is the default and the
default value is zero. So it means that we
don't want any contrast. So now, if I promote that to variable now, let
me rename that. So I just renamed
that to contrast and now contrast of zero
means no contrast. Contrast of one is really
going to contrast the texture, contrast of ten, you see,
you're getting very, very unwanted results and
contrast of negative one, negative ten, you see, you get different contrasts
based on the values. Okay, now we created a very basic control
for our base color. And now instead of
plugging that here just like so I'm going to create what is called a reroute node. So add named re route. And then this is a container. It's going to contain all of this information and
then pass that to here. So let me just name that to 01, Base Color, okay? And now, if we right click here from
these named reroutes, select the unrece base
color, plug it here, it means that all of
these informations are going to be kept here
and then passed here. Okay? This is just like if you have worked with
substance designer, the order is from
left to right. Okay? And then the last node, for example, if you change
something from here, it's going to again
go and recalculate them and then pass
the data to here. Okay? This is only
container of information. Now, I'm going to instead of again creating a wire
to connect that here, I'm going to create a
named reroute Okay, add a named reroute, and then I'm going to
change that to material 01. Okay? Now, this in here, we're going to right click
from these named reroutes. We are going to bring
the material 01. Okay? Plug that here, and you see our texture
is working fine. You see, it's taking the
information from here, exactly, bring that
to this container. And then this container is going to be plugged
here to base color, and then this material is going to be converted
to this container. Then this container
is going to be here. Later, if you want to blend
the materials, for example, blend two materials instead
of creating lots of wires to make the readability
a lot more difficult, it's going to be just
something like this. We bring different material attributes and blend
them together. Just very easy and convincing. Okay. Now, let's see what
we have created already. So let's go and try to
create a material instance. So this is our master material, and I'm going to create
a material instance. Let's call it MI representing
the material instance. And now let's call it Wood kit. Okay, here you see
we have parameters. Of course, we need to
create a better order. So you see we have
these controls here. We have a base color hue, and then we have the
base color itself. But you see the folder
creation is not okay. The only thing that is okay is the space color which
is in the material 01. So let's go here and
try to select these. And then from this one, we're going to
select the material. So let's save. And you see now, they have
been applied to material 01. Now, the desaturation, okay, we missed this one. Let's plug. Now you see, they're all
in the same category. But then I want them to be in the order that we created
them here so that it's easier for us to find and basically create
the results that we want. So now I want the texture
to be appeared on top. So here, it's a matter of
changing the sort priority. So now, this has been set to
32 and all of these as well. So I want this one
to be negative one. So negative one means
that, for example, if the number is smaller, it's going to appear
always on top. For example, it's going to
be from zero to infinity, for example, zero, one, two, and three, and they're
going to be in the line. But if you set this
number to negative one, it makes sure that it
always appears on top because negative one
is smaller than zero. So I'm going to set
this one to be one, and then this one to two, and then this one to three. Okay. Now we miss this one. So let's name this 12. This one is going to be three and this one is
going to be four. Okay? Now just see the
changes that happen. Okay? You see desaturation
is the first one, we get hue, then
we get lightness, and then we get contrast. And then this texture
is on top as well. So let's just bring the
fault mesh from here. So let's go to our meshes and bring one that is
using the wood kit. Okay? Like this one
and use this one for our testing. Okay. Now I'm going to just select the material MI
underscore W kit. Okay? Now you see it
has been applied here, but then we need to go and
find our values and set. Okay? For the base color, I'm going to find it in
our content textures, and now let's plug it here. So you see we are
getting that perfect. So let's try to see
what our values do. So desaturation, if
you set it to one, it's going to
completely desaturate. And then we could go and try to, for example, change
a different hue. For example, if you want
a darker brown texture, which we want for this, okay, you see, now it's more like the texture
tone that we want. We created this and we
left this to be like this. I wanted to change the
texture in painter, but I just left it
to be for engine. So we could go and try to
apply different tones. So now if I bring the
desaturation to zero, you see how the color
changes. Why is that? Because that is now taking this color information
and applying that hue. Okay? Now this is the
color information, and it's applying that hue. But if you desaturate it, it's going to get black
and white texture and apply that, okay? It depends on you on which
one of them you want. I want a bit of the color information that we created in painter
to be applied there. Okay? Now then we
have the lightness. If you set zero,
you get nothing. If you go negative one, again, you get nothing.
One is the default. 0.5 is half, one, two, three, ten, and basically to whatever
value that you want. Okay? And then we
have the contrast as well. Let's go for 0.25. You see, it's very, very sensitive to values. You want to keep that every
way we control, for example, 0.25, 0.1, okay, it
adds a bit of contrast. These values are correct. And then using this, you can revert back
to the default value. Okay? Now this is
our base color, and later if we wanted, we could bring a tiling
base color on top of the base color that we
have to up the resolution. So let's see what we could do. Of course, you want to have the optimization in mind as well. So now we created the
controls for the base color. Now let's go for
the normal, okay? And then the normal
is going to be just bringing a normal
and I'm going to apply a tiling normal on top of that to be
a detail normal. And that will up the
resolution as well. If you look at close up, it will bring the details. So let me bring a default again. So I'm going to place
To because we have a texture selected here,
it will bring that. But now if you bring,
it's nothing there. Okay, search for the fault, and now we should be able to find default normal,
okay? It's here. Let me find the one that is
lighter than the others. Okay. Now you see
this is 124 by 124. You can go and try to
change the resolution. So bring the all
advanced details, and there should be
a resolution Okay, it's maximum texture size. So let's set that to 128, and now you see the file that is in the disk is still available there,
and we could find it. But now the display
is 128 by 128, and that is being
used here as well. So now I'm going to convert this one to
a parameter as well, and then let's
call it 01 normal. Okay. Now, let's already place that in the
materials folder, and the sort priority
is going to be negative one as well to appear
on top in the list. Okay? The only control
that we want for normal is to be able to change
the normal intensity. So there's a node, which is called
flats and normal. Okay. Now this flattened
normal is value. Zero means the normal itself, and one means normal flatten. Basically, it's flatness. The more you increase the value, the later the normal
is going to be. Okay? Let's try to promote
that to a variable, and then I'm going to
set this one to be five because the latest one
that we changed was four. Okay? Now it should be in
the material 04 as well. And now let's call it zero, one, strength. Okay? Why I did call it
strength instead of flatness, that is because I want
to invert that value because the way that I used to work is that I like to see, for example, if I change
this value to two to see my normal be more stronger. So let me just connect
that here to normal. Save, and this is
for testing only. We will later return
back and correct it. Now you see this is our
normal texture, and again, let me bring that from here, and you see our normal is
being shown here as well. Without it, with it. Okay, now we have the normal flatness. If I set it to one, you see, it's just like the
texture without normal. And if I bring
values close to one, it's going to be strength. So if I go for negative one, you see it tries to even strengthen the value.
So I don't want that. I want that to be inverted. So that when I go above one, we get stronger normal. So one way is to
bring one minus node. This is just like
an invert value. For example, you see, one becomes negative one,
zero becomes one. It takes just a black
and white texture and invert that, that is easy. So now you see our
normal has been changed because negative
one is now one. No, it's not one. It's
just flipping the normal. Okay, now zero means no normals, and one means the
default normal. Okay? Now this is
good for the default, and let's set the default
value here as well to one. So that later when we
changed the value, it's going to be
staying the default. Okay? Now, in order to add a bit of resolution
to our texture, we could bring a tiling
normal on top of this that adds a bit to the
resolution of the texture, but it's going to be
performance heavy. So we want to create a switch to be able
to see if we want the normal to be using
a tiling texture for resolution or do we want
to use the same normal? Okay. Now, let me just I just disconnected that to create
our detail normal as well. So we're going to repeat
the same process here. But again, I'm going
to take this and change it to detail normal. Okay, so that it doesn't
get mistake with this. Okay? And then this
one is going to be detail normal strength. Okay? And then to add the ability to tile this texture because
we want to tile it, we are going to bring
texture coordinate, press U and click. It will bring that
texture coordinate, and it's going to be for UVs. Okay? Zero means the default UV. We are going to
multiply that. Okay. And then it depends on you if you want to have
proportional tiling, for example, to
tile all of them at the same time or
tile, for example, if you want to have a
tiling of two for X and Y, something like that,
you could bring different values and
try to append them. But since we're going to use
only one value for all of it to tile U and V or X
and Y at the same time, we're just going to
use one constant, and it's going to be
applied on both of them. So let me just take
the name from that. I'm going to convert
that it's already a parameter, details
normal tiling. Okay? Now, if I apply that here, we have details normal setup, but we need to add
to the calculations. So before that, let's try to
change the numbers, okay? First, this is the number five, and now we want to
have the ability to change the tiling first. So let's set the value to be one because the tiling of zero means no tiling and we get
error. We don't get error. We just get wrong display. Okay? Now it's tiling of one and it means
the default tiling. And then this one
let's call it seven, ok. And now we're
going to blend these. So there's a blend
No, not blender. It's going to be angle correct blend angle
correct normals. No, not this one. It's going to accept a base normal
and additional normal. Now, if I plug that here, again, let me plug that to the normal, which we're going to fix later. Let's do something.
I'm going to bring that material instance
for detail normal, let's go and pick up something that is tiling
from the contents. Let's go to our texture folder, and let's bring something
that has lots of range. For example, this detail rock is going to be applied here. So you see it brings
a bit of detail, but it's going to be too strong because the default
value is set to one. And the tiling, as well. I I bring that up, let's go for a tiling
of two because these textures tile a lot on
the surface of the texture. Okay. And we could bring
that to 0.5 or 0.1. This will add just a bit of additional normal detail on
top of the texture to make the texture more look more high resolution
in the close up. But in far away, it's not
going to be that important. So if that is going to
be used in close up, you can just create
something like that. Okay? But let's say that. We don't want that to be applied on all of our textures because it's going to be heavy
for performance. So we're going to create
a switch to allow us to use the false normal
or the corrected normal. So let's bring a static switch. Okay, this is a static bull. We want that to be. And
let's bring a static switch. Okay? Now, we have a true
or false condition here, and this value is going
to be connected here. So the default value, we could set it to be false to use this one or we could
set it to be true. Okay. Let's set it to be false or the default
for optimization. So I'm going to
plug the result to here so we get error because
it needs to be applied. So let's first rename this let's bring the
static switch parameter because that is going to
be changed in real time. So static bull parameter, this is the same thing, but with ability to be changed
in real time. So let me just set it to let's rename to
add detailed normals. Okay, the default value is going to be false
because we don't want the normal to be applied
in the beginning. We don't want the
additional normal. So for sort priority, let's set that to negative too, so that it appears
on top of the list. Let me bring the
material instance, okay, so that it appears
on top of everything. So let's flag that here.
This is the value. We don't want the normal or mix of both
normals to be applied. So this is going to be false, and it means that
for the default, it's going to take this normal. So this is going to be true. So now, whenever we
set that to be true, it's going to use this normal, corrected and with
detailed normal. And whenever we set
that to be false, it's going to use
this one, okay? True is going to
use this and false, it's going to use this. So let's just create
a reroute for a better readability Okay. Now, let's save, and now you see now we don't
get the detail normal here. Why is that because the
switch is deactivated? So if I bring that and activate you see now
we get detail normal. And then we get all of these detailed tiling normals
and the normal strength. But if I disable that, we don't and that is going to be good for
optimization as well. So just take a look at the instruction numbers the moment that you activate
the detailed normals. This is it. This is the
number of instructions. Now if I enable, see if we get an increase in
the number of instructions, which makes the
shader a bit heavier. Let's take a look at the
shader complexity as well. So it should be optimization
and shader complexity, okay? The more towards this, the better it's going to be. So you see, it's
somewhere around here. Okay? Now, let's just bring
this and deactivate Okay? It's not a huge save, but it's something
to consider, okay? Because that is a small
number of instructions, but you have in mind the
optimization as well. So let's just create a comments box around
these by pressing C. So this is going
to be base color. Okay? And then here's
going to be our normal. So let's create the
named re route as well. So it's going to be
01 dra square normal. Okay. Now, let's disconnect and then right click from
this name the reroute, I'm going to bring the normal. Okay? Fine. And now let's create a common box around this
and call it normals. Apply and save and we see no change because
everything is working all right. Because this lesson
is taking too long, I'm going to pause here. In the next lesson, we will go and create the
packed texture that has the roughness metallic
and information about the ambient
occlusion there. Then we will see the possibility
to create variations for each kit. See you there.
40. Material Instances: Okay, everybody, now we created the very basic information for
the base color and normal, and I see that there's a
change that we need to do. Let's go to our unlit mode
so that we see the colors. So you see these are
both the same texture. But this one appears
a bit lighter. And in here, you see
it's a bit lighter, and that is because of the
overlay that we set up here. So if you want you can bring the multiply
back and plug here, and then this one plug here, and then replace it, remove the overlay
and if I apply, you see, with the same settings, we get the color back, and now let's go here. And if you take a look, you see, we have the same tone
without any change, okay? Overlay was a bit too bright. Of course, you could
have kept overlay, but with a darker value, but let's save that headache
for something else, okay? Now we're going to bring the
packed texture that holds the roughness metallic and
ambience occlusion texture. So let me bring a texture, and let's go for the defaults, and I'm going to bring
one that has masks. You see, now the compression
setting should be masked because we want to bring
in an RGB texture. So we need to separate
all of these. So right click,
convert to parameter, and I'm going to just rename
that to 01 rescore masked. Or let's call it packed texture. Okay? We could directly use default RGB or we
could use this separately. So let's create a named reroute and call it act roughness. Okay? And let's call this one, create a named reroute. I'm going to call
this packed metallic. And then this one,
let's call it Act AO. And I just added the 01 before them so that
we see what is going on. So let's call this
one act texture. And then let's start
with the roughness. Okay. Let's bring
the pack roughness. Okay, it's in here. And then it's going to take the roughness from this texture, and then we're
going to have a bit of calculations
for the roughness. And we actually don't want
to add lots of values. So we are going to
add a multiply, and this multiply
is going to control how intense our roughness
is going to be. And then we're going
to bring in a power, and this power is
good for contrast. It's just like a
contrast for this one. So let me right click
here and let me just take that name and
we need it for renaming. So let's promote
that to a parameter. And now I'm just
calling that underscore 01 roughness intensity, okay? And you already know that the
default value for multiply should be one if you want
to not change anything. So now for contrast, let's right click
from O to parameter, and then I'm going to just
rename that contrast. Okay? The default
value for this, I think, should be one. So let's start previewing that. Okay? It's going to
take this information. We should be able to
see the R channel, which is this one, just
like this in the material. Now, if I set the
default value to one, you see we get that R
channel completely there. Zero is going to be this and two is going to
add more contrast. Okay? The default value
is going to be one. So let's stop previewing that. And then this is going
to be our roughness. So let's call it 01 roughness. And we don't need to add
lots of changes because the roughness is something that we create in
painter or a designer, and most of the time, it's going to stay the same. So let's bring that Okay, roughness and plug here. Let's create a comments
box roughness, so that it's easier to
find just like that, okay? Now we're going for
metallic and metallic is straightforward as well. We don't need to
change lots of things. We need contrast and
intensity, okay? Let's do a bit of more
optimization as well. Let's, for example, this texture that we're using this material doesn't
have a metallic at all. So why calculating
results for metallic? We could create a switch to use either black and white
value for the metallic. So zero is going to
be non metallic, which is this one and one
is going to be metallic. Okay. In the first level, we decide to see
if we want to use these values for
metallic or not. Because, for example, now
that this is non metallic, we could just switch a very simple value like
zero to the metallic. So that would be a lot more optimized and better
for workflow. But sometimes the
material might be full iron or
something like that. So that way you might as one. But sometimes you might have a customized map, for example, you have a texture and you have a knife that part of
that knife is fresh and new and some part of that knife might
be old and rusty. So you want to use something in between
or a customized map. So now we either decide to use these values or if later we created something that
had more complexity, we will use the special map. So first, let's create
a static switch Okay. Now this is going to be
our first metallic layer. So let's plug this one to false, and let's plug this one to true. Okay? First, we decide to see if we want our texture to be
metallic or if we do not want. So let's create a
static pool parameter and let's just call it metallic. And then the default value
is going to be zero, which is going to
use this one false. Okay? Now, let's plug this
one here to see what happens. So let's bring our material, and later we will correct that. But first, we need to
bring our packed texture. So let's see it's here,
okay? Packed texture. And now let's bring our
texture Okay. L here. And now, if I go to one of the buffer visualization modes and go to roughness, you see now the
roughness map is there. Now by using intensity, I'm able to bump up
the roughness to be rougher and bring that
to something like this. For example, to be
something shiny. For example, if it's connected to water or
something like that, it would be shiny, okay? Let me create a light here and that would
be more obvious. You see this highlight in here tells that it's not rough
at all. Let's bring that. Now we have a packed texture and let's go to our metallic. It should be a parameter switch. Okay, it's here metallic. And now if I apply
and apply metallic, you see now, it renders
like it's a metallic part. You see the color
changes because now it's considering that a metallic object like a metal or
something like that. Now, this is the first one which is either metallic or not. And then after
that, we will bring the calculations
based on the map. Now let me disconnect that and then let's bring the
calculations based on the map, and then I'm going to
reuse the same in here. Let's call this one metallic. And then these are
going to be okay. Then let me bring
the packed metallic. Okay this is taking
information from the green channel of our packed
texture and plug it here. Okay? This way, we're able to
customize our metallic map. Okay? Now, if I
plug that here to our metallic again, Okay. Now you see, we are
plugging the same one here, so it creates a loop. So we wanted to bring acted
metallic, not that metallic. Okay? Now it's taking the
information from here. Okay? Now, save. And now here, you see, because we don't have
any metallic information, it's just calculating
that like this, we have no metallic
information and it's calculating based on zero, and that means nothing. So again, we need to change
this one to metallic. Now we should be
able to see here. I just renamed those. Okay? Now we see the
metallic being here. And now let's go to
our visualization mode and bring the metallic. Okay? You see now it's zero in here because we don't have
any metallic information, and no matter how
much we apply or we don't get any
metallic information because there's no
metallic information here. But if I bring that, you see, now it's a metallic information
based on this and you see it brings the contrast
and then the intensity. Now it's completely metallic.
Just something like that. But if I bring that Okay, excuse me, I'm just
changing the roughness. So this is the metallic and now this is the
metallic intensity. So again, let me bring the
metallic from here, okay? Now, Okay, excuse me,
something is wrong. By mistake, I renamed the
metallic to roughness. So you want to
keep that in mind. So let's bring the roughness
intensity like that here so that I can bring
the metallic plug here. And then this is going to be roughness and this is
going to be metallic. So I just needed to change
these. Now, let's save. And now if I change
the metallic, you see now, it's non metallic, now completely
metallic, and then we can just change the
intensity and things like that. Okay. Now, this is using
this metallic value. Let's bring our texture and use this because it's
not metallic at all. So because this texture doesn't have any
metallic value at all, it doesn't actually it's not a good idea to use
lots of calculations. We could just use a
simple metallic value. So again, I'm going to
bring in a static switch. Let's bring a static
switch parameter. And let's call it, use
metallic map or value. So if you're going to use metallic map, it's
going to be true, and if we're going to use metallic value only
it's going to be false. So the default value is
going to be false as well. Let's log that, save. And then let's see if that has been brought to material
instance as well. So you see now, because the default
value is false, we're using that metallic
either yes or no. So if I activate, we see that we could bring the
metallic controls as well. So if I unplug that, you see the metallic controls go away and we're able to
use a simple control. So that would be a lot more
easier for optimization. Okay, now let's disconnect
that and create a named reroute 01 metallic. Okay, of course,
we have one here, so let's plug this one true and bring this one
here and remove that. Now I'm taking the same metallic make sure that you
bring the metallic, not the packed because the
packed belongs to the texture, and now we have the
controls for us. So the first one is obvious. We don't need metallic, so yes or no. Or if we want to have controls, you see the number
of instructions go up and the shader
complexity as well. So by removing that, we're able to save a
bit of instructions. So now, let me call or
let me bring these. And I'm going to just call it metallic, with optimizations, and now it's time to create
a cleaner result here. So let me see. The last one that we
created was seven. Okay. Now here, it's going to be eight Okay, let's set this one to be eight, this one, and the folder
should be set to material 01. And this one is
already material 01, negative one, so that
it appears on top. Okay? And then for metallic, let's set this one
to be the first one. So it should be ten. And the material 01. First, we ask, No, let's not set that to be ten. Let's change it to
something else. First, let's set
this one to be ten. First, we ask, do we want
the metallic map or values? Okay? It's going to be
ten and material 01. And then this one here
is going to be 11. Let's save Okay, let's
see the changes. Now, we have the question, do we want metallic map or value value means we're
going to use this one, the metallic either yes or no. Then if we want to have
these values used. It's working all right. And now let's sort priority. Let's correct the sort priority. Then all of these should
be in material 01, Okay. And now let's see the
final result in here, which is working right. We have these textures, and now if we apply
the detailed normal, excuse me, it's going to
be available as well. And then we have these controls. Do we want metallic, okay? And then these will appear. So now it's going to be, again, exact same calculations
for ambience occlusion. So let me just copy
and paste here. Then let's just call AO
instead of metallic. Okay? And then this one
is going to be a O. And do we want Ao map or value. Okay? Now in here, let's set the default
value to be one because Ao of zero means
everything should be dark, but one is going to be the default value so that not everything is dark if you're using an screen space
ambience occlusion or baked lighting
instead of lumen. This is going to
be the default and we want ambient
occlusion to be one. So now we're going to
use packed AO instead of this, Okay, packed AO. Let's plug that here. And then this is going
to be AO intensity, and it's very important to
change the name first and then change the order and sort priority because if
you do not change that, you're going to change
these that you have copied. Okay, excuse me.
Again, I went and changed the wrong order. Okay? It's metallic AO, okay? I was just again, doing the same mistake. Okay? Now, let's bring
the packed AO here. No, not this one. Let's
bring the packed AO here. And then this one is
going to be a intensity, and this one is going
to be Ao contrast. Okay? Now everything is set up. Let's bring the results of that and plug that
to ambience occlusion. And then let's go
for sort priority. This one, let me see the last one this one
is going to be okay. And then it's going
to be this one. And then this one. And then this one. Okay, let's save. And now everything
should be working right. So do we want ambient occlusion to be applied map or value. So by default, it's
going to use this one, which is using AO
instead of using a zero value which is going
to darken everything, okay? We want that to be activated. And then if we want to use
the ambient occlusion, it's going to bring
no this is metallic. So this is ambient occlusion. So do we want ambient occlusion
map to be there? Okay? Yes, it's going to
have the intensity. Okay? Now the
calculations are done. And we created a very
basic master material that could be used for
lots of situations. Okay? Now let's try to create a comment box around all of them and call this
one material 01. In case you had
something to create, you just copy and paste and
then change the values, the names, and things like that. Okay? Let's save. And then let's try to see
the changes on this one. Mi underscore with Kit.
It's going to be all right. And we created the
material instance as well, which could be applied on
any instance that we want. It's not going to be used
on these because these are luprint instances which need another way to be
changed in real time. It uses on static measures,
just like this one. You say static mesh components, but these are luprint instances that we later create, okay? Now let's create
something for this one as well for the extra material. So let's go here. I'm going to create an instance from here
and make sure that you create a good parent
and child system here. For example, if I go and
create an instance from this and only change the base
color, let me bring that. Let me just explain. Okay? Let's say that. We only
bring the base color here. Okay? And let's say that
we're happy with this. And that is going to
be our extra material. But whenever we go, if you just select
that instance, you see, the parent is
MI underscore Wood kit, and it's this Wood kit material. It's here. Now, it means that if we go and change
something in here, it's going to be reflected
on these as well. So make sure that
whenever you're going to create material instances, just create instances carefully because if you
change the parent, it's going to change
the child as well. So let's try to take from
the master material, I'm going to call it
MI underscore extra. Okay. Now we need
those textures. So let's go to
Painter and export that texture with the
correct information. Okay, this is it. And now
we need to export that. Okay, we already
have that template. Let's go and bring our UE five packed and for the resolution, I really don't want that
to be four K because these are the measures that
are far away from the camera. So a two K texture
would be right. And then it's going to export
the textures correctly, just like the previous ones
with the packed textures. So we exported them. Let's just change the name. Though I'm going to use
that naming convention, it's going to be the
underscore extra Okay. Now let's import them and use. Import, it's going to be T
underscore extra and these. Now let's go for calculations. We need to set this
one to be mask. This one is okay, and then this one needs to get
converted to direct X. Okay, now let's bring our extra material instance
and apply our textures. So base color, normal, and the pack texture. And let's bring static mash
that is using this one. So this is it. Let's bring that. It's using the wood kit. So let's go for MI
underscore Wood kit to use that Wood kit material. Okay. And then for this one, let's go for MI underscore
extra because that is using those calculations from
Lander that we exported. So now this is the
material from Unreal. You see these and they no longer look shiny,
just like this, and the color is changed back to the look that
we had in painter, but you see the default is again the materials that we
imported from Blender. Okay? If you want to
change that completely, you can change it here, and that will change every
instance in the world. But now we have used
only on one instance. Okay, it doesn't
matter. Let's see what we have changed here. We have just used a
contrast of 0.75. We have darkened that to 0.25
and a desaturation of 0.7. So let's use the
same calculations here to change that look
to something darker. So let's bring the
material instance, and then I'm going to reuse
the same calculation. So for contrast,
let's go for 0.75. Okay, we're using the wood
kit material. Excuse me. Let's go back and bring the extra material.
Okay? It's here. And now, the contrast should be 0.75, no, 0.0 75. Okay? It's here exactly. So the lightness should
be 0.25 if we want. Okay? And then desaturation should be set to 0.7 as well.
We look that way. So they're too dark now because now we have the roughness
and things like that set up. So let's bring the contrast
to a certain value. And let's change the color. Let's first desaturate on
0.5 and the lightness, as well, we could bring
that to control value. Okay? Se they're darker, but let's go for 0.2. Okay, it should be all right. And for hue as well, we could bring
something like green to tell that there's a bit of moss applied on these buildings. Okay? Now, what we
could do to reflect these changes is to apply the material on all of
these static measures. So for example, if
I bring this here, I could bring the MI
underscore Wokit material, apply, and it's now using
the color information, roughness information and
everything from that. And if I go change that
material, for example, if I go and try to so if I go now and try to change the lightness to 0.5,
for example, you see, it tries to darken the texture, and we could change
the hue to something like a brown color. So let's see what
this one we'll do. Let's keep this and I'm going to use this one on all of
the instances and later, we will create
special for example, you see now the
bridge is different from the static
measures in here. So we will make
sure that we create enough variations to make
them look different. So for now, we could bring
all of these and try to apply the material to those
static measures so that it appears and changes
on all of the environment. Okay. This is extra. So first, let's bring the ones that use with kit material. So you could copy
and paste here. So you see, it
gets a bit darker. And just later we will create something in blueprint
to change the material. But since I'm going to
see how that looks, I'm going to bring all of these static measures
and apply the material. Okay, now we see some of
these have been changed. Okay, now this is the
material applied. And now we could go and try to remove what we do not
need, including these, okay? Static mesh bridge
zero, one, okay? I didn't change So let
me see static Bridge 01, which is this, okay? Now, if I take these
and try to remove, there's nothing stopping
us from removing those. Okay? Now, if I
bring the material, now we could try to
manipulate the changes. If I bring too much saturation,
it's going to be very, very it's not going
to be that realistic. So let's try to add a bit
of desaturation as well. And then the lightness. Okay, and we could bring a
bit of contrast as well. Okay, that's Okay, I just changed the texture, but I really wanted
a warmer color. Okay, let's remove
the desaturation, and let's leave that be for now. And here's our extra
texture as well. Okay. Now, this one is good. So, this is something in
between both of them. Now we are using good value. So let's try to remove
the hue for now. Instead, let's go for
a bit of contrast. This will bring the
colors to a better range. Okay. Now, for example, later, we could try to create
a variation from this, and let's try to bring the contrast zero to lighten the texture and
we could apply that, for example, on this bridge so that the color changes. Okay? Here's what we're going to
do in the future lessons. But we're going to use blueprint to make the process
a bit easier. Okay. See you in the next
lesson where we are going to create the second UV map for detailing and create maps
for textures to apply dirt, moss, paint or
things like that on certain parts of the environment.
Okay? See you there.
41. Second Uv Channel Explained: Okay, everybody, now we created a master material and
applied it here and changed it to better color in terms of contrast
and everything. So now, in order to
add special details, we are going to create
secondary UVs for this. You see, in the first
UV let me bring that. You see, for example,
take this bridge, and it already has a UV channel. Okay? You said this is the UV. And because it's using kits, you see, there's a
lot of UV overlap. So we're going to
create a second UV, and that second UV is going
to be responsible for generating new data
on these measures. For example, we go and bake
this and get more details. For example, we
separate the edges, we separate the areas which
are occluded like these, and we just generate
new data based on black and white data to
generate new details on this, including dirt, moss,
or dust or whatever. To add special details. For example, for these
planks themselves, we are going to create a map that allows us to
change the color of each plank just a
bit so that it's not a single color of plank on
all of the environments. So now, this is why I just
went ahead and removed everything except for
the measures that we have and the ones that
are already in the scene. So I'm going to
create four UV maps. One is going to be
for the modular kits. I'm going to create
UVs for all of these. And because there are a lot of instances we might
increase the resolution of the RGB map that
we create for these. And then the next one is
going to be for the rooftops, and then the third one is going to be for
these structural ones, the frames and this here. And the fourth and the
last one is going to be for these extra ones. Okay? And the reason that
I'm not placing all of them in the single UV and in the single texture is that there are a lot of
instances that we have created. For example, you see,
there are many planks just creating this piece here. So we're going to unwrap them, and that unwrap is
going to be special, not something like the
current unwrap that we have. Let me bring that. Okay, you see now, no matter how special that is, it's just the same planks repeated over and over
again to create this piece. Okay? Now we're going to create a secondary UV map
for these meshes, and that mesh is going to be responsible for
generating new data. For example, on these
areas which might occlude or on
surfaces or on edges, we will go and place details in painter based on
the masks, okay? Now before anything
because some of these meshes are off
in scale and rotation, you see the scale is off here. The rotation might be
wrong on some of them. I'm going to select
all of them and apply the rotation plus the scale. Okay. Now the next thing, let me make sure that
everything is all right, okay? Now, the next thing that
we're going to create is the secondary UB for each and
every individual mesh here. Okay? Let me select, and all we need to do is going into data and in
here in this mesh, we want to create
a secondary UB. So you see it's UV Map 0.001. The naming doesn't matter. The only thing that
matters is that this naming convention is the same across all of the meshes. Because for example,
with the first UV, you saw that we generated
polar data on these planks. Now, we are going to create a secondary UV so
that we tell that, for example, on every
part, we need data. We're going to just create
secondary UV for all of them and I will return back
when the creation is done. Okay. Now I just created a
second UV map for all of them. Now let's try to demonstrate by showing one of the examples. You see that we created a
second UV map, and by default, it's going to copy
the content from the first UV map
to second UV map. And if you just change the
render to one of them, it's not going to matter that much because
they're both the same. Okay? Now, let me visualize the content of the
first UV map and you see they are stacked UV shells that create
this object. Okay? Now, if I go and
visualize the content of the second UV map,
it's no different. But what we're going to
do now is trying to pack them so that we get these
stacked UV shells individual. So you can just use
blender packing, or you can use the UV packer. So you see, it just packs all of these UV shells into
their different locations. So now you see this is
just another type of UV, but the first one
is still in place. The first one is responsible for generating the color on generating the material
on the object, and the second one is for generating black and white data so that we could use
that for our purposes, including, for example,
telling where to place moss or dust on the mesh. Okay. Now, it's just
the same process, but we're going to, for example, place multiple measures
in the same UV. Okay? Now that's why we need to select for now, of course, we need to select the
measures and just activate the render
mode for the second UV. Okay? You see now this is different because we
already mapped that. Okay? Now I just
selected all of them and activated the second UV map. Okay? Now I'm going
to as you know, I'm going to just separate
them into four UV maps. First, these ones
are going to be one UV and the ones are going
to be one UV these ones, and these modular kits. Okay? Now let's start
with the modular kits. I'm going to select all of
them and go to the UV map. Okay, and just make sure
that you are viewing them from the second UV map
that we have created. Okay? Let me go into object mode and you see
all of them are stacked, except for this one that
we already unwrapped. So now I'm going to
select all of them, and we do not need to
unwrap anything or we don't need any special
maneuver to be done. All you need to do is go into UV Packer and make sure
that it's high quality, bring the padding to one and just press pack because there's
lots of information here. It might take a
couple of minutes, but it's going to be right. So press pack. Okay. Now there's a bug in here. You see, it's just not
the way that we want it. So first, let's go remove the map so that we
could see a bit better. Okay, you see there
now it's an edge caused by the Boolean operation. So you can delete
that easily Okay. Now, this one as well. Now press pack once more. Okay. Now, after a
couple of minutes unwrapped and you see now
everything is working right, and all of these UV shells
have been separated into their own unique location. Okay. Now, let me go back, and now it's time for
these extra objects here. So you can just select them and make sure that the active object
is one of these. And then I'm going to
bring the UV editor. And because we are changing
the secondary UV maps, it's going to be right. So with the same settings, just rest pack and wait for the packing to be done and to see if there's
any errors or not. Okay. Now, if I take a look, you see this one
is packed as well. So these are packed
individually and these ones. So let's go for
these extra meshes. So let's select one of them
like the active object, and then select, ok? You see, it's all packed UV. So we're going to pack all of them in the
same UV channel. So it's going to be
a bit of waiting, and then it's going
to be packed, okay? So now, this one
is done as well. Perfect. And now this should be the most complicated
because these have the most triangles
of the environment. So this is going to
take a bit more. So let me go to edit mode, and there are lots
of instances here, and all of these shingles
are going to be calculated. And each shingle here is composed of
different TUV shells, so it's going to take a bit. Select everything and make
sure that everything is selected and go and press
pack it should take a bit, and I'm going to pause and
return back when it's done. Okay, now this one has
been unwrapped, as well. So you see the most
complex UV map is here because it has a lot of UV shells and lots of instances from
those shingles. And now we are going to
bake those maps in painter. But because Painter doesn't support the second
UV channel for now, there's a work around. And that is we are going to
duplicate these meshes and use them only for
unwrapping purposes. Excuse me, only for
baking purposes. So that we then use those
information on these meshes. So what we're going to do now is duplicating these meshes, and then we're going to remove the first UV map so that
the second UV map becomes the primary UV map because substance painter
for now doesn't support the second UV map. And then use those meshes only for baking details
and then remove them. They're not going to be used in final production or
things like that. They're only for baking in painter and
accepting the results so that we could
return those results to these primary meshes. So I just called
the folder primary, and I'm going to duplicate
all of them shift the Okay, now right click to paste
them in their own place, and then I'm going to
create a new collection, and I'm going to just call it temporary because these
are going to be deleted, and they're not going to be
used in the final production. So let me take the primary
folder and hide Okay. Now we're only working
with the temporary meshes. And what we're going to do now is selecting the
meshes and removing the first UV channel so
that this one becomes the active UV channel and the only UV
channel that we have. Okay? Just go and remove and I'm going to return back when
the process is done. Okay? Now, I just remove
the first TV map, and you just note that
these are temporary meshes, and the primary meshes
that we had are here. Okay? The first TV map is there. This is only for
baking purposes. So now, one more thing
that we're going to do is creating separate
material for these. You see, because, for example, some of these meshes
have two material IDs. Including this one, for example, if you just select and use the material editor to
visualize the materials, you see it has two material IDs. And you already know that if
you export this to painter, you are going to
get separate files. So we don't want that. We want all of them that belong
to the same UVSL to have the individual material so that the final export is going
to be on a single file, not on multiple files. And it's going to be
more optimized as well. So let's go create a material I'm going to call
it second UV Extra. No, it was second UV foundation because this is the foundation to the rest of the modular kids. And now I'm going to call
these the second UV extra. Okay? I'm going to select and make sure that nothing is left. And let's apply a
material second UV extra. Okay? Now, let's call these second UV modular because this belongs
to the modular kits. And let's call this 1
second UV rooftops. Okay. But you have to keep in mind that we have the
primary measures here. We're not going to delete them. We just need to work on
these temporary measures, and the result is going to be directly transferred
to the primary measures. Okay? Now I'm going to export all of these into
a single FBX file, which should take a bit of time. So let me go export on FPX. Make sure that limit
to selected object is selected because we don't want to export our primary measures. We only want to export these. So export. So it exported, and now I'm going
to select these again and I'm going to
duplicate once more. Okay? And let me create
a new collection, and I'm going to call it ID. So why am I calling that ID? Because we're going to use
this one only for baking the ID map in Blender
in painter, excuse me. So for baking the ID map, we need to explode
all of the measures to their kids, okay? All you need to do is selecting the mesh going into Edit mode, press P and separate
by loose parts. So now you see it
just converts that to the existing measures that
compose this geometry. Later, we're going to
use this for generating an ID map so that it
would be used for variation map that we talked
about in previous lessons to add different color to all of these different
measures if you want it. So now let's go back Okay. Now instead of just
selecting meshes one by one, I'm going to select different
meshes and use that way. All you need to do is
separating by loose parts, and then it's going to extract
different meshes for you. Okay? Now let's select these and then separate
by loose parts again. Okay? It was easy
And then these ones. And now you see each of these
planks are different UV, excuse me, different mesh. And we don't want to
change anything for them. So now let's select these ones which are the complex ones. So Now these are separated
by loose parts as well. Now you see each individual
shingle is different mesh. Right now we should
have lots of meshes. You see more than 4,000 meshes, which is going to
help us generate the ID map later in painter. I'm going to select and export. Let's just call it second UV ID. Again, we're going to
export and make sure that the selected object
is activated. Okay, everybody,
here's our painter and all of the files have
been inorted correctly. So you see, we have four
texture sets in here. One is the extra, one is the foundation. One is the modular kits, and then the last
one is the rooftops. So now we're ready to start
baking these results. So we are going to bake
these with the same file, and it means that
we're going to use the high poly as the
low poly as well. So let's try to demo. Let's bring the modular kits. And in here, you see we
have resolution slider, which might need to be
changed for some of them. So now we go to
texture set settings, and we're going to bring
the bake mesh maps. Okay, now let me hide
this for now as well. And I'm going to
bring the same pile to be used on painter
for hypoi as well. Or you could check
this one as well. So I'm going to
bring the same pile. I'm not going to
bring the ID for now. Okay? Now, it has loaded, but we need to change the
cage file just a bit. Okay. Here, because it's
going to be hidden. It's not going to be seen. We're not going to do
anything because you see, this is a one phase caused by that Boolean
operation, and it's okay. So now, it's good. And we can now try to bake that. So let's go for four K. I'm
going to bake all of these. And now here, instead
of baking all of them, I'm going to bake
for the modular one. Okay? Now, the modular, I just by mistake, I'm working on the foundation. So we're working on the
foundation, excuse me. Now let's go for
the modular, okay? And then if we go just select the texture set that you are going to work. And with the same settings, make sure that you bring the sampling up and the
resolution to four K, and let's go for a
test bake and bake. Okay, you see it tries
to bake those results, and I'm going to pause and return back when
the baking is done. Okay? Now the baking is done, let's go to paint mode. And if we go to our bake maps, here's the normal, here's
the world space ID, of course, we're going
to fix that later, ambience occlusion, curvature. And these are the maps. Okay? Now, let's just demo
what we're going to do. We are going to create
black and white masks. For example, we create
a black and white mask just like so and then tell
to apply a white color, for example, on the edges. Okay? Let's go to our
smart masks and from here, let's try to use an edge
that has lots of noise. Okay? Now you see it creates a black and white
mask on top of this, and this is going to
be used for later. For example, we
tell real engine to apply a certain color
on these white areas. And then these black
areas are not going to be affected and anything in between is going to be the
mix of both of them. So we could try to
up the resolution, okay, to get a better result. And using this way, we're able to create masks. And use them in real engine, but it's going to
be a bit different. The workflow is going
to be a bit different. So, for example, one
of them that we're going to use is the paint. So let me bring one. Now, you see, because
this is using a grunge, we need to go and
change that as well. So let's go for a
tiling, like so. And then this one is
going to be used for painting the results
on the buildings. For example, on
these white areas, we add paint on the buildings. So for example, we
could set that to UV projection so
that it has a bit of more changes based on the UVs. Okay, we're going to create black and white
masks. This is it. It's going to be
a bit different, technically, but it's going
to be the same process. Okay, let's go to our material and bring all of these, okay? And we're going to go to
our texture set settings. And because the baking
is going to be right, we are going to
activate all of these, and the baking is going
to be done except for the ID which we are going
to bake after this. Okay? I'm going to
bake all of them, and I will return back
when the baking is done. Okay? Now the baking is done, and if we go to our baked maps, we see that everything
is working right. Okay, here's the
normal road space ID which we're going to fix
later, ambient occlusion. Curvature, and all of
the maps are okay. So now the next step
is to bake the ID map. So now I'm going to
disable all of them. And here, I'm going
to remove that. And now I'm going to
load the ID file. Okay, now it's working right. So we need to go to our
ID and for color source, we're going to set that mesh ID. So that is why we separated those meshes in blender
so that now every mesh, you see that we
separate it has an ID, and for that ID, it's
going to apply a color. Whether it's going to
be a huge shift or whether it's going
to be grayscale. So I'm going to use
gray scale because I'm going to use
gradient mapping, just like we used gradients mapping in
painter for texturing, I'm going to use gradient
mapping in rela engine as well. So I'm going to use this
gray scale so that it applies a range 0-1
on all of these. Okay. So now let's bake. We should deactivate
on all of them. Let me go for ID. And here, again, we need to set to mesh ID and then
set to gray scale. You should repeat on
the other as well. So you need to disable all of them except
for the ID and then set the color starts
to mesh ID and then gray scale. Okay, now. Okay, now everything
is working right. So let's go for bake. Okay? Now the bake is done,
but there's a problem. And that is you see some of these meshes have
the same color. Why is that? That is
because of the blender. First, we wanted to force
every mesh to have its own ID. So just take a look at here, for example, here's the
blender, and just take a look. You see, we have the
difficult to material. We have different
IDs on all of them. So you see the ID is the same here and it's another one here. So we need to go and make
sure that it changes them. So you need to go to this
material tab and click here. So it will make that a special. And if you want
to search for it, it's make single user copy. So you want to select
all of them and then bring the search
menu and then search for make single user and
use Object plus material. Okay. Now, if you select, every one of them has
been converted into its own data, object
and material. So again, we're going to
reexport that and just test it. Okay, Export. Now it
should fix the issue. So again, let's go
to bake mesh Maps. And then instead of this, we're going to bring the
other one, which is this one. Okay, now let's try to bake. I'm going to bake
for all of them. ID, make sure that all
of them are deselected and bake Okay, baking is done. Now, there's an error. Of course, not an error
because instead of file ID, we needed to set that
to mesh ID. Excuse me. So again, let's go bake. Okay, baking is done, and now the gray scale as well, is not delivering the
result that we wanted. So let's go to bake. And instead of gray scale, let's go set that to random. This is going to
make a random color. Then we are going
to convert that to either black and white texture or use it for color variations. So let's try to bake, and this time, it
should work right. So you see for each
individual plank, it's going to apply an individual color which
later is going to be used for variation
on planks in unreal. We either convert that to black and white texture and
use a contrast, for example, to make sure that each plank is not having a different value, but to make sure that
some of the planks that have same value in gray
scale should be neighbor. So we will decide for
it in unreal engine. So let's try to take a
look for each plank, you see, we get a
different color. Okay, now it's done,
and it's okay. Perfect. So now we're ready
to start the process. But because it's taking
too much this lesson, I'm going to pause and see you in the next lesson
where we go and try to create our GB maps that we will apply the data to.
Okay. See you there.
42. Second Uv Channel And Id: H Okay, everybody, now the baking is done and we're ready
to start the process. So I'm going to start
by the modular kits, and you see the ID
map is present there. If I go to ID, you
see the ID is fine, and we're going to use this one for one of the channels in that texture because
we're going to create an RGB channel packed texture. That, for example,
one of them is for variation map based on
ID, which we created. One of them is for paint, and one of them might
be, for example, for moss or something like that. Okay? Now, you already know that we need to
create an RGB map. So we're going to have
three distinctive colors, red, green, and blue. And then in Unreal engine, we separate the blue colors, we separate the green colors, and then we separate
the red colors so that we could apply, for example, we tell that wherever it's green,
apply something. Whatever it's blue,
apply something. We're going to do
something like that, but it's not going to be
just creating a color, setting the color to
blue, for example, okay? And and creating
something like that, and then creating one
that has, for example, the green color and creating
a mask or things like that. Okay? You see, it's going
to create an RGB texture, but it's not going to work
that alright because we need to create channels
instead of colors. So let me explain. We're going to go to
texture set settings. And here in our channels, we need to go create
three channels, okay? From these user channels, just go for user zero User two, and then user one. So let me remove that. We're going for user one. User two. So now, for each of these, we're
going to apply one color. And you see, it's just like the roughness that we exported, black and white texture that we already have in Andrea
engine that we exported, that R channel was
for roughness, green channel was for metallic and blue channel
was for ambience occlusion. Now we are going to do
something like that, but it's going to
be, for example, R channel to apply dirt, for example, G channel to bring
paint and the second one, for example, for
ambience occlusion, data or things like that, okay? Now, let me call this
one R, G, and B. Okay? Now I'm going to
bring a paint layer. And in here, you
see, we have R Okay, let me apply the name. Okay? We have RG and B. Okay? Now, for example, we go and tell that apply a certain color when
it's using R channel. So here as well, we could go and select that. For example, R. You see
now it's totally white. So we need to have a channel
that is totally zero, okay? Let me bring that because if you do not create
something like that, it's going to have a
transparent layer. So let me create zero channel. Okay. Now I'm going
to bring one, and you see now we're
looking at R channel. So let me call it R
and disable everything except for R. So now we go
here and apply that paint, and you see on R channel, we see that we get this mask. We are creating mask, not color. So now if we go to our material, we see nothing because that has been applied on channels,
not the colors. But if you want, you
can bring a color, for example, and now
that we are using R, you can just go to RGB, bring the green and blue here so that you see
what is going on there, just a representation of what is going to be
there in real Engine, but we're not going to export
the paste color because that is going to be wrong because all of them
are going to be mixed. But we're going to
use channels instead. And the final one that is going to be exported
is this channel. Okay, now let's go and try
to see what we could do. Let's go for UV projection, and now let's set the tiiling to be something more. Okay. And then we could change the balance in here
or in Unreal engine. So we will let Unreal
Engine decide. Later, we will create
intensity and contrast and those things like that to
create the result for us. Okay? Now this is the R channel. Now let's create one. Let's call that
G. And then we're going to remove everything
except for that channel. Now let's go for G, and let's go for color
and apply a green color. It's going to be on the green. Okay, just to represent
what we're doing. So you see now we see that. So let's go for an edge strong. So you see now it
has been applied. Let's go to our mask. Okay. Now, it's right
except for we need to bring wear level down and
not that much contrast. Okay, this one. Let's go for 32. This will make the resolution of the grunge map a bit better. Okay, this is good now. So now if we go to color, you see now we are not
getting exactly that color, the R color because that
has been mixed with that. But it's going to keep the
R channel perfectly there. So this is R channel. You see, if I remove
that or leave it, it's not going to
change this one at all. So that preserve data for us. So now let's go here and
then create another channel. I'm going to bring B. Let's go bring the blue color. Okay, this is just
for visualization. So B. So now let's bring
something like dust. Or moss for ambience
occlusion data. So let me bring the moss and let's go
visualize the blue channel. So you see, it's mainly working in these areas
that are occluded. Okay? You said this is a bit intense because these two
meshes are a bit closer, and that is causing
ambient occlusion, but it's going to be right. So I'm happy with it, and let's call it done. So let's create a new folder. I'm going to call it RGB masks. Okay. And now we could re use the same folder structure
wherever we want it. But before that, you need
to go set up the channels. So here, use 01 and two. So they're going to
be R G, and then B. Now if I go here, select that and go to my extra folder that
we have set up here, if I paste that folder, you see, we get
something like that. If we go, this is the R channel. This is green channel, and this is the blue channel. Okay, perfect. Of course, you can create smart material from that so that you can use that in your other
project as well. Okay. You just need
to right click, create a smart material, and you see this is RGB mask. So now if I bring
the foundation, I just apply that here, and with just one click, we see the color, but we
need to go and set up the channels as well because the channels are
not going to work right. So let me remove that
for now and then bring the channels 01 and two, and then all these
R G, and then B. So now let's reapply that ok. And then if we
go to our channels, this is R, G and B. Okay? Now, let's
bring the rooftops, and I just left that for the final one because I wanted to create
something different here. So it's not going to
be totally different. It's just using a
ground dirt that starts from here and collects to top for one of the channels. To tell that, for
example, the moss is starting from
here and going up. Okay? Now let's bring our
channels zero excuse me, one, then two, and
then just rename them and use the
smart material here. Okay, done. And then let's
go see R. Of course, because this is too much, we need to reapply them, but this is going to work
right and this one as well. So it looks like for R channel, we could go and set
that ground dirt. So let me bring R.
Okay. This is it. Let me remove that.
And then I'm going to bring a smart mask that has ground dirt,
something like this. Okay, let's take a look. It's completely taking
these areas. So let's go. There should be
something like this one, as well. Now that
one was better. Let's go here. Okay. And then we could try to use the level. And you see, it
starts from ground and whenever it goes
up, we have variations. So we don't want any contrast. Let's not use triplanar and
let's bring the ground. We could remove the effect of AO And then here we
have the gradient. We have top down gradient. If you want to start from
the top down or if you want to start from these areas. Okay, that's good. Now we
could bring another generator, and there should be a light
generator. So this is it. We could create a mask
based on rays of light, so Now we could set that to Now, let's remove that. It's not going to
work. Okay, now we created those results, and that will really
bring the level to a new standard by bringing
the environmental effect. So now we could set
to four K. Of course, this is for preview, although
we're going to export them on four K as well. But later we will the
possibilities to see if we could bring the resolution to something cheaper
for performance. So we're going to
export four K and see how it works in real Engine. And then when it worked right, we see if we could just
downgrade the resolution, okay? And now for exporting, we need to set up a new template because these are not just
like the previous ones, the base color, normal,
and pack texture. We're going to create
a pack texture, but that is going to
be a bit different. So first, define the folder
that you want to export. And then you see none of these
are going to work for us. We need to create a new
channel, new template. So let me create a new template and I'm just
going to call it masking. Okay? Now we're going to
bring an RGB texture, but it's not going to be this RGB because
this is good for something like a base
color that mixes the RGB. We need to bring RGB like this, separate channels so
that we could apply three distinctive
channels to that. So let's for a
naming convention, I'm going to write
the rescore and then here name of the project because the name of the
project is now second UV, and then rescore it's going to be name of the texture
set, which is this one. So now, I'm going to remove
the name of the project because it already has the second UV on name
of the materials. And then underscore. Let's see. We could write RGB. Okay, now this is a
naming convention. Let's set the format to be
Targa or something like that. And then we're going to channels and apply the user zero to R. And then apply user one G, and then apply user two, to B. Now, let's go and
select our masking, and then let's set the
resolution to be four K for now. So export, and here they are. Second UV for extra foundation,
modular and rooftops. Go back to Unreal Engine. Here's our results, and
I forgot something. I didn't use the planks for gray scale gradient
mapping. I didn't use that. So we could either change these. Okay? For example,
we could go to R, and instead of using paint, we could set it to
use the ID mask. But I'm going to create
another one that may create a new layer. Okay? This time, I'm
going to bring the RGB, not RGB, excuse me. I'm going to bring
the ID mask, okay? We're going to set
that to UV projection because we're going to
use exactly the UV. So it's going to
be only the color. And now let's go search for ID. So you only need to go to your textures and
from this menu, go to project so that it brings the colors that
belong to the UVs. Okay? Excuse me,
so that it brings the maps that belong
to these misses. Okay? Now we're going
to bring the color map that belongs to extra Okay, now there's one thing about this because we're
using a baked mesh map here. If I go to foundation,
for example, and apply the same
layer you see, it's going to work right because then it's
going to look in the meshes and then find the baked mesh maps that
belongs to that layer. It's going to replace that without us needing
to change that. And that is an
automatic process. So it's a good one. So
let's do something. I'm going to modular again, paste that here as well. And let's go to rooftops and
then paste this one as well. So now we could either
convert these to black and white
texture in unreal or stave that and leave
that for painter, because that is going
to be more performance. And we get only one texture in unreal and we do not
need to do anything. So right click
here, add a filter, and then on the filter, we're going to bring the
hue saturation lightness and bring the saturation. Okay, so that you see black and white
texture that we could apply to Unreal Engine
without any problem. So you see now we do not get that much variation
because now all of the colored information is left is removed and
we're left only with the value of the
textures of the colors 0-1. And then we could also go in
Unreal Engine and try to add contrast Okay, things like that. Or we could manipulate the
color in unreal engine. So we're going to leave
that for unreal engine. So let me copy effect. And then I'm going to replace
the same effect here. So paste effect. Okay. Now let's go to our modular and then
just press control, it's going to automatically
bring the paste effect here. Okay, now for the rooftops. Okay, now we have a
black and white texture that we could export. Of course, were black
and white textures. Okay? Now, because this
is only a single color, we could export it on
even one K texture. So again, let's go to export and we only need the
document channels, which is going to
export the channels. Okay? Now let's set that
to PNG as well or JPEG. It's not an important texture to need a lot of resolution. So let's set that to
one K and export. Okay, I just export it
to two K. You see it's a gray scale map
that we could use for delivering the variation. Later, we will return back and to see if that
was not working, we will just do something else. Okay? This is only for dialing. It's going to be right. And you see the name is
second UV extra base color. I'm going to set that to ID. That was more descriptive. Okay? Now we see these
four textures that are ready to be imported
in real engine. Okay, here we are. Let's go and try to import
all of the textures. So this one, this one,
this one, and this one, and then secondary
UV channel RGB. Okay. Now we need to select and start compression
setting the mask. So this is the RGB channel. Let me set it to mask. Okay? Now, you see
now this is R, G, and then B. It's going to look right. I'm going to select all
of them and set to mask. You see it just corrects the color variation that
Unreal Engine does on these. Okay. Now I'm going to pause
because we're going to create a variation
in the material. It's going to take a bit more. So we're going to pause and see you in the next
lesson where we go and try to create variations.
Okay? See you there.
43. Testing Second Uvs In Ue5: Okay, now we are ready to add the second UV map in
the calculations. So I'm going to directly use
that in the material editor. So already we have only
one material here. So you could, of course,
bring multiple materials. For example, bring
paint material. If you want, you can
create most material, but we're going to rely on colors mostly for optimization. So now this is going
to take place here. So this is where this material is going to be handed to
the material attribute, and then we are going
to expose some of the PBR values that
we want to change, for example, base color,
metallic roughness, and maybe normal in some cases. So again, we have some
of the textures here. We could go and set the sampler
source to shared wrap so that if you later added
lots of textures, they would have
no problem, okay? Now, we are going to take this material and expose
some of its parameters, including base color
roughness and metallic. So it should get material
attribute, okay? And then here we could add different elements that we want. So base color, metallic So
you see these are attributes, but I don't want the specular. So let's set to be roughness. And then the next one, let's set to be normal. Okay, now we are extracting these information from
the material 01 here, and then we're going to let the rest of the
values that are not going to change again get connected to this
material attribute. So now from here, again, we go for attributes and then it's get material
attribute, I believe. And then we connect this here. Now, it's going to ignore
all of these values. So in order to bring
those values again, we are going to bring the
same values and use them. So let, excuse me, this is again get
material attribute. So just search for attribute. Then it should be set
material attribute I believe. Okay. Now, if we
plug these here, they're going to be
just with no problem. But if we plug this one, it's going to let this
one go and ignore these. So let me again add
another element. So again, here's going
to be roughness. And then here's
going to be normal. So we have a couple of
roughness values here, which it doesn't allow, and now let's go for normal. So now if we just connect these, it's going to be the default, and it's not going
to change at all. So this one, this
material attribute is going to let all of the ones that are not change to go to the material attribute
and get calculated. And then here we could apply some changes to the
base color and plug the results here so that it allows all of them
to get calculated. So now let's just what is
going on in the world. And you see there's
no change because everything is going to pass and these are going
to be ignored for now. And then let's try to create
some named reroutes as well. So I'll add a named reroute because there's going to
be a bit of calculations, and we're going to bring
the calculations somewhere around here to let this
area to be a bit clean. So let's just create named
reroute for all of these. And then we will return back
and try to rename them. So now, I'm going to call them material attributes,
then base color. And then this is going to be metallic Roughness, and then normal. Okay, now later, we will
add the calculations, and then we will create
name three routes again and then plug
the results here. So we are going to reference
these and try to change. So now let me bring
the base color here. From these names,
we route I'm going for material attribute
and base color. Okay? Now we're going
to add changes to this, just like we changed here. For example, we're
going to take that as something like this and
the calculations on that. So in order to let the
calculations begin, we're going to bring the mask texture and
try to use that. So let us go here,
or before that, we can bring a texture and set the source
to be shared wrap. Then let's bring a
default mask texture. Now I'm going to convert this to a parameter and call
this one RGB mask. We need another one, and that one is going to
be the variation map. Okay. Now all of these are
going to be in a new folder, and I'm going to call that mask. Okay. And let this one to be negative one and this one
to be negative one as well. So before anything, let's try
to add the variation map. First, we add the
variation map to add the changes in the planks color, and then we will add
the RGB details. So you can use either of the blending
modes that you want. You can use arp. You can use blend mode. You can use multiply
whatever you want. It really decide based on
the needs of the project. So for now, let us start
with multiply Okay. Now you already
remember that we wanted to use this variation map. We wanted to use this one for gradient mapping,
just like painter. We wanted to add
colors to be mapped on these different
gray scale ranges. So now, in order to create that, we are going to create curves. So if you search
here for curves, you get some options. The ones that we're going to use are curve and curve atlas. The curve is going to be one
curve and the curve atlas is going to be one that is
going to host your curves. For example, you can
create hundreds of curves and map them to that atlas to create the
variations that you want. And we're going to use
this to our advantage. For example, we create different curves based on
different color schemes and let the shader expose
them so that we could, for example, change this
building to a color, change this building to
another color, and so on. Okay? Let's again
go create a curve. And we have options here, we're going to use linear color. So let's call it gradient mapping because that is what the gradient mapping is. So now, you see, we have
a curve that is 0-1. Now we're going to create ten of these curves so that it tells unreal to place a certain color on each of those
gray scale areas. For example, we
tell that whenever it's something like this, this color, apply
a certain color. Okay, just like in painter. And just like in painter
that we went and define how many steps we want
to divide the space 0-1, here we have the
ability as well. So important thing is that
you want to keep time snapping because if you disable that and disable
this one as well, if you right click here, add a key, it's going to
add that to this value. Okay? But if you activate
snapping, if, for example, click here, add key, it's going to add it to the next round
number, which is 0.1. So we're going to add key Okay, now we have different
ranges 0-1. Now we're going to
select each of these and tell unreal to apply
a certain color to them. Okay, here are the values, and these ones define the color. So if I select,
for example, blue, it's going to create a range between blue to
white, which is here. So if I change this
one to green, you see, it's just trying to create a variation between
blue and green. Okay? And of course, we're going to change
these as well. So let's try to double
click here on each of these points it's going to
add only a single value. And later we're
going to return back and try to pick
different colors. Okay? Now I'm going
to select this color, for example, just double click and you're
able to pick colors. So this is why I'm bringing this color palette
to try to use that. So for the first one, let's try to use this one. So I'm going to keep
this one here and try to pick colors for
each of these right here. So now let's start to pick
color something like this. Okay? And then I'm
going to try to find different colors
for different areas. And because this is a
consistent texture, the result that is going to return is going
to be very good. Okay. Let's zoom to pick up some more
vibrant colors. And finally, this one We have a range of colors
that is being mapped. Let me hide this for
now and I'm going to save for now at list and
we have created a curve. If we take a look, you see, we have a curve here
that is going to be used. But this curve is
going to be used in a curve atlas and
that curve atlas is going to be used
in the material. This curve by itself couldn't be placed in the
material editor. Instead, we are going to
create a curve atlas. Okay? Let's call it
gradients mapping atlas. So if I click here, you see, it's a very, very small texture, and you can store lots of curve atlas
elements into this. So let's bring one. And then I'm going to bring this gradients
mapping that we had. So these are the ones that are
default in on real engine. So let me bring that
and you see it has added that on top of this list. Okay? Now, we're going
to bring them here. So all you need to do is
just search for curve, and it has a curve
at las perimeter. Okay, this is it. And this one is going to accept black and white data to store those colors on those
black and white data. So we're going to use
this variation map. Let's plug here. Or if you have different variation
maps, for example, just like the RGB mask that we created, you
can go and create, for example, use R here, use G on another one, and so on. So you can use B on
another one, and so on. So here, let's try to call
this gradient mapping, and let's place that
in the mask folder. So here for the default, let's select an atlas, which is this one
gradients mapping atlas, and for the default curve, we're going to select this one. Okay? So now, I'm going
to use this one on a multiply or on an overlay. Let's use overlay to
see what happens. Let's bring the multiply there. I'm going to bring this here and then this one to multiply. To blend, excuse me,
to blend overlay. So let's this directly to the base color for
now. But why is that? It's because we can instead
of plugging this RGB here, we could bring a separate
channel instead. For example, for example, R. But if you take a look
at these variation maps, you see, because that is
only one, it doesn't matter. All of them are the same, okay? Now, let me save, and now there's a
variation added here. So that variation isn't
the one that we want. So let me bring that
Wood kit material. Okay. And this is
our variation map, and this is our gradients map. So if we have multiple
gradient maps in here, it's going to allow us to
choose the one that we want. So first, we need to
add a variation map, and this is where our texture
is going to be divided. For example, if we bring the variation map
that belongs to the rooftop it's not going
to work on this here. So this is why we need to create multiple
material instances, each one for the
kit that we want. So the second problem is
that we do not have exported the second UV measures that we corrected in blender,
the unreal engine. So for testing,
let me bring one. So here's our blender file, and these are the files
that we just correct it. And now I'm going
to export this, and it's going to be exported
again on the final folder. So let me export. This is for testing.
Later, we will bring all of them, but
this is for testing. So it's wall, excuse
me, four by four B. So let us find it
four by four B. So this is it. Okay. You see it already has only one channel because we haven't
reimported that. So reimport and now you see
it has the second UV as well. Okay? Because that belongs
to the modular kit, I'm going to bring in the variation map
from the modular kit. So let us plug that here. And now I'm going to
bring this for testing. So if we take a look, you see nothing is
happening because that texture that we're using is going to be mapped on
the first UV channel. So if you want to
use that correctly, you need to make sure that it maps to the second
UV channel instead. So you see some errors
being caused in here, and that is because
this texture is getting mapped on the first UV channel, which is this one. Okay. But we want that to be
used on the second UV map. So UV number is 0-1. It doesn't start 1-3 or so on. It starts with zero. So one way to fix
that is to bring a texture coordinate you can search for coordinates
and it will bring that. It's the same or you can press and click it
will bring that. So, it's coordinate
index is it's zero, and it means that it's going
to use the first UV map. If I set that to one
and plug it here, it's going to map this
variation map to the second UV. So just note what happens
when we apply that. Okay? You see now we
have a Perbic variation. If you take a look, you
see now this brick has a different color,
this brick another. But because the
color selection that we made was a bit
similar to the color, it's not going to
be that visible. But you see you get the
idea that now each of these bricks have
a certain color that makes that a
bit less repetitive. So you already get the idea. So here's a screenshot before gradient
mapping on this kit. You see everything is looking the same, and this is after. You see, it tries
to separate them a bit based on the color
variation that we added. And you can create
different curves as well. So now let's go try to
create a couple of curves. So I'm going to create a folder and call that curves and try
to place these here. Okay, and everything
is working right. Let's try to create
some different curves. So duplicate and call this 101. So now we're going to pick colors from different
color maps. For example, now, let's
try to pick from this one. Okay. Now, let's try to pick up from here,
okay? It's fine. So now, just go and try to
select different tones. And you should be alright. So because it has
a lot of range, we could zoom and try to
pick up something else. Okay? This one is a good one because it has a
paint color to it as well, which we could use for a
bit of color variation. M So let's try to pick up from here. And for the last one. Okay? Let me save. And now in that curve, let me bring the curve atlas. We are going to add another one. Gradients mapping 01. Okay? Now, if I bring
the material instance, we are able to select between the different
curves that we created. Okay? Now, you see, it's really obvious that these
have the different colors, and it really adds to the storytelling
elements of the scene. And you see that there are
some problems in here, and that is because we need to create different material
instances for different kits. So for now, I'm going to disable this and disable this one as well because we want to
keep this one as default. So here's the power of using gradient mapping
for a workflow like this, which will apply
certain color for different variation
maps that will take the level to the
next level, basically. So now I'm going to plug this
one to RGB mask as well, because this one as
well, is going to be using the second UV map. Okay, now let's unplug this
and now it's time to add the RGB to add the variation
based on these colors. Okay, we have a second
UV map and here we could try to bring different paint colors
based on different maps. Okay? And you can try to
use RGB as well as a mask. And we could also try to
control that mask as well. For example, try to weaken that, try to add contrast, try to add intensity, and so on. Okay, now, first, let me try to make it more readable. And then I'm going
to continue from here and bring another
blend overlay. You could use different
of these blend modes, but I'm happy with
a blend overlay. So the first one is going to be this we're going to
use that as a mask. So I'm going to bring a
larp and a larp is going to bring two values and select between them
based on an Alpha. So Alpha is going to be this, and then the first one, which is this one
going to be here, then we're going
to plug this here. Why? Because I'm going to
take this blend overlay and change something and use
it as a different value, just like in substance painter, where we use that layer to capture the information before that instead of using
only a different value, only a single value. Now let's try to use
an obvious color, plug here, and then I'm going
to plug that to base color. Just see what happens. Now
again, let me bring that. And I'm going to test
on this one as well. So for variation map, let me bring the variation
map from modular ID. So for RGB mask, I'm going to bring
that one as well. Though you already
see that it has added just a couple
of blue colors here. And this is not what we want. So we want to have the
ability to change this mask. So I'm going to bring
multiply again with power. No, not Panner,
just search, power. Okay. Now I'm going to plug this here and plug this and
plug this one to Alpha. So now what this one
is going to do is just control the intensity and this one is going to
control the contrast. So let me promote
this to variable, and I'm going to
just place that in mask folder and promote this
one to variable as well. Save. Okay. Now let me bring the material
instance once more. And now we have the controls. So if you see the
default is set to zero, which we should fix later. But if I bring this one to one, we get paint color. And if I bring this
one to one as well, this is the default
that we had in painter without any
contrast or any adjustment. So if I try to bring
the intensity up, you see that layer is
going to gradually try to paint the result,
just like a paint. Okay? Now, you see with
adding that paint, we're able to just add
paint to our color. And because we are
using this correctly, it's going to work right. So now for testing, let's try to use the next
channel to see what it does. So let me go. Okay. If I go to that, you see, this is the one that was responsible
for the edge mask. And if I bring that up, you see, it tries to add an
edge mask and we could try to change
the contrast. And now, if I use this one, it's going to bring a
bit of occlusion dirt. Though this will really
add lots of variation. So let's go to one and
you see using these, we are able to add
lots of variation. Okay? Now that we
know the workflow, I'm going to pause
because this lesson we couldn't finish the material, so I'm going to pause
and return back in the next lesson to finish
that. Okay, see you there.
44. Variations In The Materials: A. Okay, everybody. Now we created a
very first layer of the black and
white data that we created in painter and you
see it's working all right because we have created
the second UV channel, and these new
information have been set to work on that
second UV channel. Now, you see in here, this one doesn't
work. Why is that? You see if I just zoom you see there's a bit of
pixelation. Why is that? Because this one is still using first UV map and it
doesn't have the second UV map. So let me just search for it. It's wall three by three. And it's 04. Okay? Now, this is the same that we are
taking a look at here. Although it's just like this one belonging
to the modular kit, we do not see the change
happening in here. Why is that? Because if you take
a look at here, we still have the UV zero. So we should return
back to Blender and make sure that all of
the measures that have the second UV
channel created are going to be re exported and re imported again to work properly. Because although we have
set the blue color to be applied to the second UV because this one doesn't
have the second UV, it's going to map
that to the first UV, and it's going to
cause some issues. And the moment that we bring the mesh corrected
with the second UV, it's going to work right. Okay? I just found that in blender, that is the mesh wall three
by three number four. So if I re export that
and then re import this. You see now that color has been applied to correct place because now we have
the second UV, which is going to be
responsible for generating that color on those areas of the second instead
of the first U. So now you see that has
been applied correctly. Okay, now we need to
go back and try to fix the other channels as well. And then we will remove these
to make sure that we have a default one so that we can create variations
based on that. Okay? And if I change
this one as well, you see the color formation
of those change as well. So this is how powerful
this method is. So let me bring the
master material, and we need to correct
some of these. So let's try to create
a better structure. So let's reset this to one, one, one, so that we get
default white color. And then here instead of this, I'm going to write R, which is responsible for
the R. So let me plug that. And then it's going to be okay, I just rename these to R intensity and R contrast
because they belong to R, and they are responsible for correcting the
black and white data on R. So default one for this is going to
be one and for this one, it's going to be one as well. So now let's see what we have Everything
is working right. So let me just unplug that and then
I'm going to bring this here because I need a bit
of more room to work. So I'm going to just take
these, duplicate them. No, I need only
these four that are responsible for generating
the new information. So before anything, you want
to make sure that you go and rename the channel
before everything. So this is going to
be the green channel. Okay. And then this is
going to be the next one. Okay, now plug the green
here and plug the blue here. Okay. Now, let me take them
so that it's more visible, and then I'm going to
create another learn. Linear interpolate. This is going to be
plugged to A. Why? Because unreal engine works
this way because A is zero. We have a black and
white mask as well. When we plug this result into A, it means that
wherever it's black on that mask, you
shouldn't do anything. Wherever it's one, which
is going to be again, this one show white.
Based on this Alpha. Whenever we have black, it's going to do nothing, which is the result
before it and whenever it's white or one, it should show this one. Now we have different sources of taking the base
color information. We could already take that from the material
attributes from here or we could take that from here after those
calculations are made. It really depends on you
to see which one you want. So let's try to go after the
calculations because I'm not going to pick up the raw base color from
the material here. I want to have a
mix between these. So no, let's try to pick
up from here instead because sometimes when you
just bring too much colors, it will create some random
colors that are not expected. Okay? Again, I'm going to try to pick up from
the space color. So let's try to
copy these as well. This base is going to
be plugged to base. Now, the base color is going
to be plugged to base. So it looks like we need
to do a change because now this material
attribute base color should be plugged to base, and this change should
be plugged to blend. So let me take this and
replace it with here, and now this is going
to be the base color. So this is going to be base, and then that one is
going to blend with it. And let's see the
changes after that. Okay. And then this is going to be base, and then this color, let me again change
that to something like blue and then plug this result to base color
to see what happens. Okay? This is the base color
variation that it created, and that mask is
working right as well. So let's use this way. Okay? Let me again unplug
so that we could work on these so let's return back
to the default color. We will later parameterize these so that we could
change them in real time. So now we have the base
color set to base, and then let me plug
this one on the blend. Why is that? Because we need to blend this color on our results. Okay. And then this one is going to be plugged
into B of this channel. And then for the channel, we could take the blue channel and try to plug that in Alpha, green channel, excuse me. So let me bring that. And in order to work a bit better and to see
what is going on, I'm going to change the
color based on the channel. So this belongs to Let's just change the color to something that
we can visualize. And then this one is green. So let's remove everything. Okay. Now let's go
for another larp and the results of the third channel is going to
be plugged into this Alpha. Uh, Okay. And then let's create
another blend overlay. But this time, it's going
to be a blue color. And let's take the
base from here. And then plug this
result into B. Okay, now it should work
right and with no problem. So I'm going to take this and plug that into
base color for now, and I'm going to just create parameters which are
there, of course, but let's save and see what
is going to happen. Okay? Now it's exactly
just like what we created blunder in painter, excuse me, the blue color, the green color and red. They're mixing and creating
a very good result. So we could bring also the material instance And let me see. Okay, they are here. Of course, we will create a better sort priority.
Do not worry. So this is R, of course, this is contrast for R. So let's bring that to one and if
I bring the intensity, you see this color takes
everything which is correct, and now blue, this blue. If I bring the blue intensity, and if I bring the
green intensity up, you see green taking
effect. Okay? Works right and fine. So now instead of that, let's create a named reroute And just call this attributes corrected or base color because you can create
roughness as well. So now here let me bring that base color
attributes corrected, and I'm going to plug
that to base Color. Okay. And now we could
take these and bring them here so that there's not much
information going on here. Okay. For the metallic
roughness and normal, you can do the same thing. But since it's going to be a
bit heavy for performance, I'm going to just
leave that like this because you can go
and create the same. All you need to do is taking the mask and trying to
blend the values together. And then instead
of blend overlay, you could bring, for example, blend ten or whatever value that you want to
create that result. Okay? Now we could also try to remove These ones, okay, click here and try to delete because I don't see
the need to change this. But of course, if you
have something like that, you could reuse the same
formula that we have. So let me call this
one main because this is what creates the main
material attributes. And I'm going to call
this one masking. And now let's go try to
create the sort priority. So this one, it should be shared wrap and
this one shared wrap as well. And the sort priority should be changed to negative
one plus negative one. Okay, working all right. Oh, let's set this one
to sort priority of zero so that it appears on top
after these base colors, these textures, excuse me. And then this one is going
to be sort priority of 12. I want the intensity
to be appearing first. So this one let's
take this color, convert that to a parameter, and I'm going to just
color it or color. And then I'm going to that
sort priority of three. Okay, now, this one is going to be And then green channel G color. And then this one, let me
correct the sort priority, and this one is
going to be seven, eight, and then the color
should be changed to nine. Okay. And then the folder
should be set to mask. So let's save. Of course, you can just bring the
colors to a normal value. So let's see what
is going on here. Of course, we need
these two to be placed in the masking folder. So this color and this one should be all
placed in the mask folder. Save. And now it's
working right. First, we have the
mask and then we have the variation map, and then we have
the gradient map, and then we have or intensity, plus the color, G intensity
and contrast plus the color, B intensity, plus the color. Okay? Working right and fine. And you can use this on all
of the results in here. So all you need
to do is bringing the corrected UV maps to work. And then we're going to
keep this one as a default so that we could create
multiple variations. From that, we're going to create multiple childrens so that we could use that for different
of these buildings. For example, we could go try to use different colors on different buildings
because before that, you saw that it was just simple texture on all of the planks
with no variation. Okay, now you could
also activate or deactivate the changes on
the material instance, just like the
metallic and ambient occlusion and roughness
controls that we added. Okay. Let's go here. I'm going to create a
static switch parameter. Okay, let's call it. Do you want RGB changes? Okay, if it's true, we want to plug this. And if it's false, we want to plug this and let the default to be false
and plug that here. Okay. It's going
to take a look at this default value and
decide to use which one. If it's going to be false, it's going to take
the same material that we have here
and plug it here. And if it's true,
it's going to take a look at here and
plug that one. So the default is set to false. So let me plug that again
in the masking folder, and this is going
to be negative too, so that it appears
on top of the list, even on top of everything. Okay. Now those changes have been cleared and now if I
bring the material instance, you see in the mask folder we have do you want RGB changes? If I apply that, we get
all of the changes. This is good for sometimes
maybe you want some of the materials to not
use this variation. You can just deactivate
with one click and save a lot of instructions.
Let's take a look. At the shader complexity, excuse me, it's this one. Okay? You see these are lighter than the ones
that do not use that. These ones are going
to use as well. But you see the shader
is a bit more expensive than the previous
one because we have added some more instructions. And if I disable that, you see the color gets a bit lighter. But we want the change. It depends on your purpose. Do you want all of these
changes or you want. So let me go to the material, and I'm going to disable this, and disable this one as well, because I'm going to keep
this one as default. I don't want them to be present. So later we will create
variations from this. For example, let me create a
material instance from that. It's going to be I wood kits, and then we're going to look for those
second UV channels. For example, let's
call this one modular. That's why we have these
ones like the default. So let me disable
that one as well. Okay? Now, if I go here, I can now disable
or enable on this, but we have not applied
that on any of these, so we need to go and create a blueprint logic to
allow us to change that. So now, if I bring
the modular ID, plug here and modular mask
plug here and apply that here. You see we get the same changes corrected because now this belongs to modular secondary UV. This way, we have the wood
kit in its own place, and we use these variations. So we're going to
create a couple of more variations because we
have four different UV shells. So this one is going to be foundation this one is going to be rooftops. Okay? It's responsible for
the links on the rooftops. Of course, we're going to create another variation
from this extra to create material for the
rooftops, but these shingles. Okay? Now we will
change that as well. So now, this is
going to be Extra, this one is going to be deleted. We have all of four
different variations that we needed extra foundation,
modular and rooftop. So the same thing is going
to be applied here as well. I'm going to just keep
this one default. Let me create variations, and I'm going to pick from this, not going to pick from
the other ones instances. So we created four. And now this one is going to be modular this one is
going to be foundation. This one is going to be extra, and this one is going
to be rooftops. Now for these materials to work, we need to again go
to blender and re export these files
with the correct UVs. They should have both
of the UVs applied. So and for some of them which have a
couple of material IDs, for example, this
one, it's a good idea to make sure that the
material ID is consistent. For example, we want always the material would kit to
be on top of this one, so that it's material zero. For example, in here
is its material zero. In here should be
material zero as well. Just select and using this, you can bring that
up so that later that we want to apply materials, material index is
very important. We always want the
material would get to be applied on index zero. Again, just bring that up. This is extra. So let's do something
because on these materials, the extra is zero, let's
again bring this one as well. I'm going to let extra be the
index zero on all of these. Okay, let me select
these as well. Export. Okay. Now
the modular kits and now the rooftops, and then the last ones. Now we're able to start importing or re
importing the meshes. So this is Bridge 01, and it's been using
in two of these maps. So let's leave that B,
but it's going to be only these that we're
going to reimport. So you could just reimport. I just reimported all of them, and now let's randomly try to pick up random
ones and try to use. This is already tested. And you see all of them have
the second UV map applied. Okay. Now the next level
that we're going for is going for materials and correcting these
based on the maps. So I'm going to select these this belongs
to the extra kit. So what we're going
to do is selecting different maps based on different UV shells
that we created before. For example, this is extra, This is foundation
modular rooftops. The same way that we
applied for these, for example, let me hide
these primary ones. And if I bring the
temporary ones, you see this is foundation. This is modular. This is
rooftops, and this is extra. So we need to bring
those secondary UV maps and apply them here. Okay. Now, this
belongs to extra, so I'm going to bring extra
RGB here and extra ID here. Now this is foundation.
Let's activate that. This is foundation, and
then variation map as well. Okay, now this is extra modular. Which is this one,
so modular RGB, and the modular ID. And we're going to
create different of these gradients mapping
curves as well. So now this is, excuse me, rooftops, okay? And ID for rooftops as well. So now that this is set up, of course, this belongs
to rooftop, okay? Okay and the reason that I wrote this is that we have two material sets
on these materials. For example, this one
has two material sets. If I bring this,
it's not going to apply to the ones that have
the material ID extra. It will only apply on the
material ID Wood kit. So we needed to sort that. That is why we're creating
different variations. So let me apply. This Wood kit isn't
going to change at all. So now we're going
to bring extra, so this is extra ID, and this is extra RGB. So this is foundation, so foundation RGB
and foundation ID. So modular is already set up and now finally the rooftops. Okay, now rooftop
RGB and rooftop ID. Now these are set
up and now we need to apply them on
these buildings. So you see, we have too
many measures here, and if we go and apply material, it's not going to work
as well because these are instances of the blueprints. So we need to go to blueprints and create something that will allow us to change the material
using the blueprint. He. In order to create that, we have a couple
of considerations. For example, one is
that, for example, you already saw that the textures are a bit different
in terms of second UV. We do not have a consistent
second UV for all of these. For example, this one has
a separate second UV. This one has a
separate second UV. This one has a
separate second UV. And if you go and try to apply one material to each blueprint,
it's not going to work. So let me test. There's a node which is
called set material. Okay? Now it's going to take a look at a couple of things
and set the material. First, the target
and the target, we're going to make sure
that we select all of the instance static
measures in this blueprint, and then we have
an element index. So that is going to be
wherever we are so it looks like I just reimported those two textures so
there was something wrong. So if we go here, for example, exactly for this, you see that
we have two material IDs. One is element zero and
one is elements one. So this set material is going to select based
on element index. So I'm going to test because later we're going
to use something else, but this is for testing. So we need to select all of the instance static
measures in here. One way to do and
that is a bit time consuming is to make a ray Okay. And then try to create
let me connect this one, and we could try to
bring each of these and try to manipulate and try to manually connect so that we connect all of
these to the array. So this is going to be
too time consuming. What we're going to
do is node which is called yet component. So if you go in the
beginning of the list, we have a get
component by class. This is going to get all
of the components from this blueprint based
on their class. So if I go here and search for instance
static mesh component, this is just going and selecting all of these and creating
one array with them. This is going to select all of the instanced static
measures in this blueprint. So if I like that to
target, it works. Now we need element index. So element index is
going to take a look at the material index on the mesh
and change based on that. We're going to use
another method, but this is just for testing. So now if I promote this to a variable and
make that visible, Now if I go to the
blueprint which is here, if I bring that, you see,
we have one material ID. We're going to
bring one that has the modular second UV textures. So let me go to my materials
and I'm going to bring the wood kit and the one that
has the modular material. If I like that here, you see, it's not changing
the way that we want because that's not
working correctly. What we need to do is bringing a node which is
called set material. But it's going to be by name. Okay, let me bring
that and I'm going to remove the frame from
those calculations. So now, again, it's going
to be the same thing. Let me bring that here, and then the target, again,
is going to be that. And then here instead
of the material index, we're going to use
material names. And then let me
plug that material. Now, let's do something. I'm going to accidentally try to pick up some of these
materials in the blueprint. So I'm going to rename the
material in those measures. So let me bring this one, for example, Okay.
And then here. So now I'm going to change
the material name in here. Okay. Let me call it 01, and I'm going to copy exactly because whatever
name it's in here, you want to exactly copy
that. So let me save. And now here, I'm going to write the name and let me go
here as well, icu that. And I'm going to change the
name on this one as well. And then let me
compile and save. And you see now this is changing the material and another
mesh which is using that. Let me see Which mesh was that? Okay, this is wall three
by three number three. This is wall three
by three number two. And this is number two as well. Let me spawn building
number three. So I'm going to bring that
and wall three by three. Actually, I'm happy that
this happened and that is because instead of Y component, we have one component. This one is going
to only, I think, pick up this one, the main
one that is the root. But if you bring Y component, by class. This is different. This is get component, this is get component. Okay? Now, you see this one is only one value,
but this one is array. You see it has
multiple ranges there. So now if I change, apply, save, and now if I bring
one test material, again, we needed to Of course, we need to set that in static mesh first
and then apply that. Compile, save. Now you see these ones
that have the same name of the material have been
renamed correctly. So this is the one
that has the same name plus this one which we
set the name accordingly. Okay? They're all
using the same name. Okay? This way, we're able
to set material names and go and create different
variations of the materials. For example, we could create a lot of variation
for individual kits. So let me return
back to this one. And you see that one has
been applied here as well. Because all of these
are belonging to the modular kit,
it's going to work. But this one, you see, it
has a bit of bug because this one belongs to the
foundation secondary UV kit. So now we're using the UVs
of the modular on that, and that is not going to work. So we're going to create variations as well so
that we could apply materials based on
the second UV map so that we could go for
more variations as well. So that process needs
a bit of renaming. So we're going to our
meshes and we're going to rename the name of
the materials of these based on the
secondary UV channel. So I'm just going to
rename them accordingly. So this is going to be extra, but because that is shingle, I'm going to call that. First, it belongs
to the rooftop kit, and then it's shingles because we have the
rooftop here as well, which needs to be rooftop plank. So we need to differentiate
between them. Okay. Now for testing, I'm going
to use the initials, R for rooftop and
then P for planks, and then R for rooftop
and S for shingles. Later we would know
how these are, and we're just renaming based on the secondary UV channel of them because we couldn't apply one material of these on all of the measures and
expect them to work. Now this is again
going to be RP. This is going to be RS. This is going to be foundation. This belongs to the
foundation kid. This is going to be again RS, rooftop kit, and
that is shingles. Okay? We need to rename
this to RP. This one is RS. Again, this one,
RP, this one is RS. This one belongs
to the foundation, and this one belongs
to the extra kid, which it's already here. So I want to make sure
that the naming is consistent throughout
because that is important for renaming later. So let me bring some of these. This one belongs to the
modular kid. This one as well. This one RS rooftop shingles. This one belongs to the
foundation, this one RS, this one foundation
again, foundation, and this one RS, and this one RS again. So let me go bring
more of these, and they all now belong
to the modular kit. Okay. I'm going to just at the name because I know
that all of them are going to belong to the modular kit based on the secondary UV
that we already set up. So I just renamed all of them. And then there are a couple
of them that need renaming. So now this belongs to Extra
kid. Let me bring these. So here we are in blender, and I see that these all
belong to the extra kit, and this one belongs
to the foundation. Okay? These are extra, and now this is
foundation, okay. And then these ones
belong to the extra kit. This way later we could
add lots of variations. Of course, we could have gone. This belongs to the foundation. We could have gone and not
use lots of variations, but that way the village look
really generic and modular. Now the naming
convention is done, and now let's go for St
material by name again. Set material by name. Again, we're going to reuse the same or selecting all
of the components. And now let's call
this one modular. And then I'm going to reuse that name and paste that here. Now, this one is going to
be extra and now let me promote that variable and call that extra compile and save. So now you see it's
working right here. Let me bring this one. And you see now that modular
kit has been applied to all of those that have
the modular in their name, and now if I go for extra, it's going to change this frame. So I'm going to go
for modular no, excuse me, MI underscore
Wood kit extra. So it didn't change.
Why is that? Let me go for
finding that frame. Okay? That frame belongs
to the foundation kit. Excuse me. Foundation, and now this should be renamed foundation as well,
compiled save. Now you see it's
working all right. So we need to find the
foundation kit as well. So you see, we're able to change different materials based
on the naming conventions. And now, when this is done, later will go and try to copy this to other
places as well. Now the next set of material
is going to be extra. And now this is going to
be promoted to variable, and I'm going to
call that extra. Let's make that visible. And then the target is
going to be this one again. So I think we do not have
any extra material here. So it's not going to work. So now, let me bring
another material. It's going to be again that
and now I'm going to change the name to R E because it's going to be
responsible for rooftops planks. Let me promote that to variable
RP, make that visible. Then another one, let me
again like that here. This one is going to be Rs. Then the target is going
to be this one again. The name of this is
going to be RS and now the material is
going to be RS as well. So if I go here we need to promote
this to variable as well. Now RP material, let me go
to MI underscore Wood kit, and then I'm going to bring the Wood kit material that
belongs to the rooftop. So Wood kit, you say
it's working all right. Now RS is going to
be responsible for rooftop shingles because that has two material
IDs in one mesh. So now if I go for extra
because this belongs to the extra kit and rooftops. You see this works
because we have two material IDs for this mesh and two material secondary UVs. So we need to split them
so that we could spawn them and apply the
materials to them. Okay? Now that we
know this is working, I think it might
be a heavy lesson, and I encourage
you to return back and be what we have
done already if you haven't got what we created because we
created two materials. One is the Wood kit material, and one is extra material. And now we created four
secondary UV sets as well. So we need to spawn different
parts of the measures based on if that is using
the material, for example, Wood kit or extra
or if it belongs to the secondary UV of extra
foundation modular or rooftops. Or if that belongs to
the material extra modular or things
like that, basically. Now that we know
that this one is going to work in
the next lesson, we will apply this to
all of the levels and then ing the colors and
create more variations. Of course, for example, later, we're going to create variations
to each building to make the look of each building different to other
ones. See you there.
45. Completing The Setup: Okay, everybody, now the setup is complete and we're able to go and use the setup to make every building
look different. For example, we could go for the different buildings,
for example, here, this one that we
already have set up, and we could go and, for example, change the
walls, change the rooftop. Anything, and that is going
to follow the same thing. And if you want, you can go, for example, change
the material. You can really change the
look of each building using the setup very
easily and create a very, very vast range of variations. The setup might just
take a bit of time, but after you create that, it's robust enough to
cover a lot of areas. Okay? Now, we are going to bring a blueprint and try to
apply the materials. Okay? This one has
been already set up. So for now just focusing on
what we see in the scene, for example, this one and
this one that are far away. I'm really not that
concerned about them because we're
going to save a bit of time and focus on what we see
in the scene already, okay? Now this is a variation
of building one, and I could bring
that to here. Okay. And now we could
swap the rooftop to something really more destroyed. And then let me see
what we could do. We could also create
something like that. So let me bring that so that there's a bit of blend
between these buildings, creating a bit of layering. Okay? Now, for the modular, let's go for Mi
underscore Wood kit because the Wood kit
belongs to the modular kit. Okay? Modular. And let me just zoom to see if
anything is working all right. Okay? It's working
all right in here, and we need to swap the for
the rest of the materials. Okay, board of
foundation because foundation is using the
wood kit material as well. All of these are using the wood kit material
except for this RS, which is responsible
for rooftop shingles. Okay? Now, to make
that a bit easier, I'm just copying that
and paste that here. And then from this list, I easily use the
foundation, okay? And then for that extra, let me copy that again
and pick up extra. And then for this one, let me again copy that, and then I'm going for rooftop. Okay? And this one
is a bit different. This RS is responsible
for rooftop shingles. So this one belongs
to the extra kid. Mi extra, and then rooftops. Now let's do something. I'm going to copy that material. This RS, I'm going to copy
that and go on all of these blueprints and find if we have that RS material
and the setup. Now it looks like we
need to go and reuse the same formula that we created here and apply to
other blueprints as well. This was something
that I forgot. Let me bring this one as
well. This is the last. I'm going to copy
this here and paste. Okay. And then all you need
to do is plug in this here. And if you compile and save, it tells you that, for example, there is no variable
named modular because we copied those, and you see in here, we
do not have any variable. So there's a quick
fix to fix that. You just right click here, create a variable named modular. So make that visible.
All you need to do is just right click create a
variable and make that visible. And that is going to
very easily apply all of those changes in a quick manner. Now, everything should
be working all right. Now we do not get any errors. So now, again, let me
go to the rooftop. We could go and
apply the materials. So it looks like we could leave these alone and start
with the modular kit. Let me copy from here. Later, we will apply
good colors here. Right now we are
seeing only RGB, but we're going to change that. So shift and left click here, it's going to apply that color. So now let's go for foundation. Extra is going to use
the modular kit as well. All of them are going to
use the wood kit material, but with different UVs, except for this one,
which is going to use extra material with rooftops UV. Okay, now extra, let
me find it here. I hope that you
know the difference between this extra
and this extra. This MI underscore extra is
a set of material, so extra. And that extra is a set of UV. So I hope the
difference is clear. So rooftop, let me
select that and correct. Now the next one is going
to be that's one, okay? Now, something to save a
bit of time because we haven't applied the
materials here. In order to save a bit of time, we could select this blueprint that we already have changed. Okay? And in here, you see, here are the
instances that we have here. What you need to do is right click copy all properties
in this category. And now let's select the one
that you're going to paste. Okay? That is here. And we
could copy the results from here just by clicking on this default and copy all
properties in this category, and then you can go to
the default blueprints here that we have set
up the variables. If you change them
in here and you haven't changed anything
in the scene, for example, here, it's going to replace
all of them in the scene. So let me right click
paste all of them here, and I'm not going to
change these ones. I'm not going to
change the meshes. I'm going to let them be
just a default, okay? Compile, save, and
you see all of them have taken those changes except for the changes that they have created
on these measures. So that is easy and it
doesn't take that much time. So let me copy the same changes here and open blueprint number
one and paste them here. Compile save, and it has
applied on all of them, except for this
one that you see, we have changed the material,
overwritten the material. All of them that have been
default have changed. Okay. Now building
number one and two are now there are building
number four and five, which are the variations of the same one and two building or remaining plus
building three, which is a different
one and the platform. So we're starting with the
building four and the five, and we're going to just
repeat the same process and bring the formula
from building one because they're all using the same kits from here
and copy that here, and we will continue from here. Okay. Now the next thing is to set these ones
to be variable. Okay. And then this one
compile save, it works. Now we need to make sure that all of these are
visible so that we can change them in the
runtime using the blueprint. Okay, now let me find one of
the building number four, it should be Okay. Here they are. And now again, because the materials
are just the same, I'm going to just select this blueprint and you will see the
variations. Okay? Let me copy all of them here. And now I'm going to pause here. So it doesn't allow because there are some differences
in these variables, let me copy, and it's
not allowing us. Okay? It doesn't matter who
will set these materials. So for modular, we're
going for this one, just copy and paste,
shift, click. And then you just need
to select variation. Okay? Now, this
should be foundation. This should be extra. This should be rooftop. And then this one only
belongs to extra rooftops. Paste, compile, save. Now you see all of the
variations from building number four have been
changed to that as well. Now we're going for correcting
the building number five. Then again, I'm copying
the same from here. It's the same process.
You see, it's very easy. Once you create one of them, it would be a lot easier to
create the rest of them. Just click here and
promote to variable. Okay, compile, save. And now, again, we have these
variations here. We cannot. So I'm going to paste
that material here. Let me find that material modular paste and then paste here as well, except for that one which we're going to copy
and then shift click here to bring that
right in the correct place. And now we need to just
go for other variations. So this one should
be foundation. This one should be extra, and this one should be
rooftops, compiles, save, and all of them have been changed except for this
building number three, okay? And the platform here. Okay. It's an iterative process. Later, we will return back
and try to create lots of good colors to make sure
that we get a very, very good result in here. Okay? We're going for
building number three and then let me copy again
the same from here. Compile, excuse me, no
copy and now stave. And we're going to
promote that to variable. So let me see if I have applied
building four and five, to be visible, it's all right. Now, compile, save, and if I return back to the building number
three in this layout, it should be Okay, this one, we have the materials, and we just need to set
up default materials. Okay, copy that, copy and
then bring that here. So I just applied the materials just like the previous ones, and you see this one is
going to be correct as well. So now all of them are correct
except for the platform. So let me go for platform. And because this is
using the same as well, we can just copy all of
these and bring them here. And then we just need to renew these variables and make sure that they are visible. Compile. Now, again, let me
start to apply the materials. So rooftop, it's going to be MI underscore
extra and rooftops. And then this one is going to be underscore Wood kit modular. Okay, this is it. Now shift click here, and then we should
set the material. So now everything
should be working fine. And after that, we will
set up the colors. We will create variations from the material instances,
for example, to make sure that
this platform here is different than this one in some ways to change the
colors and things like that. That allows us to create different
material variations and apply them in runtime without affecting
the other instances. Okay. Now, this one
should be extra. This one should be roofed up, and this one is going
to be right as well. So now this one has been set up, and everything is working
right except for these meshes. So because these
are not blueprints, I'm going to select
them. Let me go back. These meshes are just
simple static meshes. I'm going to find them and
apply the material here. So we already know that
this one is the wood kit, and it should be
extra, I believe. Okay. Now we see we could later apply these
colors on the planks, and that is going to be right. So now we need to go for
stairs, this one and this one. And we already know
that these also belong to the extra modular. Okay, because they
have been created with planks from modular kit. And then one quick way to fix these colors so fast is to change the
master material first. And why is that because we set the master material
to be in a way that apply the appropriate
color to these channels? We have these three
colors responsible for generating the data
based on those masks. And it's in here, for example, for something like this, which is a children of that material. Let me bring that. This one is a children
of this material Wokit. We do not have the masks here. So if we apply the masks here, you see that we
have these colors derived from the colors here. So if you haven't
already changed these, and I mean that they
are deactivated. If you go and change
these, for example, you're going to change
them for all of the material instances that are using the same
master material, which they are all
of them exactly. So this would be a faster way. So let me bring this
one here and for this color Let me just
pick up color from here, for example, something
like this one, because that is material, it's going to apply all of them. It's a parameter. Now let me go for this color and I'm going to pick up
a range from these areas. Okay. Now, this one, let me pick up one of
these exposed color. Now you see the colors
are really changed. And now we are seeing changes
based on the color values. We get a lot of edge red here. We get changes based
on each plank, we get changes on
different parts, and you can go and try
to change them more. But now let me go
to extra material. So this one, I'm going for the one that is
responsible for the rooftop, which is here and I'm going to change the colors a
bit because I wanted to just tell the message that there are a bit of moss
and green colors here. So that one will prevent us
from reaching that result. So let me just go for
a green color here. You see the green
color change there. And if I go bring more
green color here and there, Now you see there's a bit of color change there,
desaturated green. And we can also try to bring the intensity
of these colors. For example, if I bring
the intensity of that, you see it tries to bring
more color in those areas. So, it looks like I like this green to be
applied here as well. I want a bit of dark green, not something like those. And this one again
from the same range. Okay. And now let's say that you want to apply her
variation change. For example, let's say that I really like this
building number three. I want to go and change
that to something else, for example, to something
that has a different color. So now let's do something. I'm going to bring the blueprint responsible for that,
which is this one. It should be around here. Okay. We can go
and try to create different variations
of these materials based on what we need here. For example, I want
the modular planks that are here to get
a different color. So what I do, I go and
find this in here, create a new variation, and I'm going to just call it, for example, variation 01, okay? And then apply that here. Now that it has
been applied there, I can go and try to use a
different color combination, for example, bring this
one and then for color, I can go for
something like paint. Okay, something
like that. And then let me bring the intensity up. This is green
intensity, not that. So I want to bring that. Now you see this one is changing and
receiving that color. So you can easily just try to create lots of variations
based on those masks. And then it would really be awesome to create and generate a lot of
good results here. So let me pick up
a color that is so obvious and then if I bring
the intensity of that color, you see, it just tries to bring a bit of edge
color to these areas. So let me bring that back. I want to look something like exposed wood color,
something like this. Then let me see
what this one does. Let me go for a green color. Okay? This is here. And then I'm just selecting a more fresh wood color,
something like this. And then if I bring the
intensity up, Okay. You see? Now this building is different than
the other ones. You can create lots of buildings that are
different from others. For example, this
one is building. Of course, before that,
let's do something. I'm going for this
building again. It was building number three, and I'm going to create
variation for the beams as well. So beam belongs to
the foundation, and I'm just going to create another variation
and I'm going to apply that. It should be foundation. Now if I go and
change these colors, I'm going to bring the
intensity of those as well. You see we get the
same color here. Let's change that
to something else. For example, something that has a bit of paint Okay. A bit of edge red as well. Okay, you see now this
is looking awesome. And you can just create
more variations. For example, you can
create a building with blue paint or with a green paint or
something that you want. And this system allows you to create a lot of
flexible results. You can just change the
buildings in no time. You can just create materials and create
variations so fast. And you can create
a lot of changes. So let's do something. I'm going for one
of these platforms, for example, this one that we want to make sure that
it's different from this. So it should be here
and it's this one. So we could bring the modular
and use this material. So let me see So, of course, we need to bring a modular wood, but that belongs
to the foundation, so let me pick up that. Okay. Now you see this building is
different than this one. See, we're able to create lots of variations just so fast. So let's try to paint
this building in green, for example. Let me find it. It should be in the right.
And it's okay here, building number four
and variation D. So let me go for the modular. Let me find the material. I'm going to create
another variation. So let me just call it 02 and then apply that to the modular
kit that we have here. Let's just go try to
bring different paint. For example, let me find
something that looks great here. Then there's one
let me pick up from here and this one from here. So if I just try to bring the
intensity of the color up, you see, we get a different
paint on this building. So let me try to work with
this intensity as well. O So you see now this building is
different than these ones, and we're able to create lots of paint colors that are great. So let me just take
one instance from here and just note that I just took that instance from
the modular number two. And I'm going to apply that
color on this building. Now let me go find it. Okay. And then I'm going
to bring this one. Okay. You see, it's
accepting that color, and I'm going to go
for another paint. Let me just paste
the value here. Now we have already used green,
let's go for another one. For example, something that
is different to that one. They just make sure that
you stay in correct ranges. You don't want to
create something that is dealing with bugs. So let me select this building because I
want to change this theme. So you see that using
these variations, we're able to create a
lot of good results. So if I bring that, you see. So I didn't like that. I
just reverted the change. So here's how we
can try to create different variations
so fast and easy. Okay? I'm going to pause
and in the next one, we're going for completing the scene the new levels. Okay. See you there.
46. Creating The Rafts: It Okay, everybody. Now, welcome to
the next chapter. And this one, we're going
to finish the environment. So what we're going
to do is creating the water shader because
that is an essential part of this tutorial because this is a village and we wanted to
first create the water. So the water is going
to be created here to add a bit of movement
and motion to the scene. And what I decided was to
create some boats or better said we're going to create rafts and here are the
images that I have in mind. They are very simple, and again, we're going to use the kits
that we already have to create these and float
them on the water. So the next thing that I
wanted to create is a lantern, and it's going to be old and not that
professional because, for example, you see, we have
created the environment. If we go and spend
too much time on that prop again and only it's
not going to be so optimal. So for secondary props
or treasury props, we're not going to be
focused like these ones. More detail you go, I mean, from the big
medium and small, the more smaller
and treasury apps be the smaller amount of detail and time we
want to place there. So again, what I forgot to say that we're going to
create doors for these. Again, we're going to
reuse the same kits. But we might also return back to Zbrush and use those
high poly ones to create the doors that
way so that they are a bit more special and focused on. So what we're going to do is create something like a
midday towards nighttime, lighting, we're going to
create raft, water shader, these doors, and then let's see what happens and what
we're going to create. So first, let's start
creating the props. We're going to
create rafts first. And then for the lantern, we're going to create the
base with these wood pieces. We're going to create
with that and then hang the lantern on them. Okay, we're going to focus
really on reusability. So here's a blender
set up again, and we're going to
create rafts first. And again, we're going to
use the geometry nodes to allow for fast creation
and fast iteration. So let us start
with a simple lane. And again, this is going
to be subdivided to allow us to place different
woods on these faces. Let me just go for
something like this one. Okay? This is going to be
the proportions of the raft. So let me see the actual scale. Let's go for 5 meters
by 2 meters. Okay? Now, apply everything so
that everything is okay. And then I'm going to create a geometry
node set up there. And if you go here, you see that we have a geometry
node to set up. So now I'm going to
reuse these again. So this is the kits. I'm not going to
change them right now, but I'm going to just duplicate, bring them here to the center, and I want them to face exactly to the direction
that we have here. Okay? And then we're going to
rescale them later as well. So let me apply the rotation, and I'm going to create
a new collection, and I'm going to
call it raft. Okay? Because we're going
to bring these and use them on instancing. Okay? Now, let me just Okay, change the scale a bit, and now let me hide
the raft collection. And again, we're going to reuse the same geometry nodes setup
that we created before. So let's do something. I'm going to bring these. Okay. And then I'm
going to bring different instances
on these perfectly. So again, we're going to
use mesh two point Okay. And then we want the points
to be based on faces. Okay? Now, if I plug that here, we see nothing, but
we see these here. So now, again, we have points. So let me bring the instances on point which is this one and plug this one
to the geometry. So we're not seeing them because we need to
bring instances. So separate collection and
RSA children are needed. Now we need to pick instance, this is just a bit problematic because it's using
this instance, this one, this one,
and then this one. We want to make sure that they are based on the same scale. Okay? For instance, index, we're going to bring
an index node again. Okay. And then we're going to
go based on a random value. Yep. It's going to
be based on that, let me bring an integer, and if I like that here, you see the order changes. And now you can just try to see which one you like actually, and then you have the
seed as well to change. So I'm going to bring the
raft collection for now. Let me just take that collection because
I'm going to bring them over to here. Okay. This is my collection. I'm going to bring them here. Okay. Now let's go back
to geometry nodes, and I'm going to take the
individual ones and try to scale them based on the
dimensions of our plane. Okay, let me just pin that. And now let me do something. I'm going to join geometry
for now so that temporarily, we're able to see that. And then if I go
here and try to re scale and then apply the scale, you see those get
scaled as well. So now, let me try to scale
them and apply the scale. No, just apply scale, do not apply the location. Okay, now let's go for
a bit of rotation. So we want this to
be rotated randomly. So I'm going to bring vector no, let's bring a random
vector again. So let's go for random value. Now this is a float, we're
going for random vector. So now if apply like that here, you see that is totally
not what we want. Let's use a negative value, negative 0.1, and then to 0.1. So we want the raft to be
a bit more structured. So this is not
exactly what we want. Okay. Now, let's do
something for scale. We could bring a random value
again, which is a vector. So the minimum scale
is going to be one and then here
let's go for 1.1. Okay. Now let's do
something I I ring. Now this is okay. Now let's do
something. I'm going to limit this even more, so let's go for 0.02 25 to
the same value in positive. Okay, I don't want that to
be so dramatically changed. Okay? Now you see we have
created these and we want to create the blanks or the kits that are
going to hold that and are going to be rotated
90 degrees to here. So if I bring the
references, you see, we have some of these barks that are rotated
in the other direction. In here, you see they are
holding the structure together. Let's try to create that, of course, that is very easy. You can go and try
to compile that, realize instances, and then
bring the wood pieces, rotate them, and so on. We're going to create that in geometry notes. So
let's do something. I'm going to go to my plane and I'm going
to go to Edit mode. And then let me just take that, bring it on top, rotate
that 90 degrees. Now if I go back and apply, we are not getting the
rotation that we wanted, so we want to be able to
change the rotation plus the scale of that individually
and separately from these. So we could do one thing. We could try to separate
from that geometry. So you see all of this geometry
is now sampled in here. So we could try to separate only the space and use that for generating a point.
So how do we do that? Again, we're going to
bring the mesh to point. Let me just control Shift
D to duplicate that. While holding the collection, and now here we have
a selection mode. So now I'm going to
bring the index. Now these phases have
different index values. For example, in
here, you see now we have this phase number seven,
it should be, I think. So now let's try to bring a
math and bring that here. And if I hold down shift and lt you see now we're able
to select between them. Okay? Now, if I go negative, I'm able to select that. So let's do something. I'm going to go to a point that I only select
this one here. Based on how many planks
you have or how many bases, it's going to be a number
that you want to select. Okay? Now I have separated that and now we could do
something again for the top one. So let me bring that, and I'm going to put that
to this selection so that it leaves us with
this one deselected. So now you see it
selects only that. We want that to be inverted.
Let's do something. Instead of using this ad, we can go to the same
that we have been using. So let's go for, for
example, here, less than. Okay? Now it's going
to look for that value and you see now it's
trying to separate them. Now this is not
getting calculated. When we bring this value,
it's going to be that. Now if we go here, we're
getting that one perfectly. We could use this less than or greater than instead of add, it's going to work
right as well. Okay? Now I'm going
to again reuse the same nodes. Let
me try to bring that. I'm going to pick up
my collection index random value instances and these random values and
Shift D or excuse me, I'm going to Control Shift D. So that it keeps
the connection. Now here, we need to select
these points and plug them here and then go
for join geometry. Okay, it's going to
bring that there, and now we need to
go for rotation. So after this one, I'm going to bring rotate
instances like that here. And then it's going
to be rotated 90 degrees like snow if the
pivot point is centered. And then we could go for gale instances
as well, excuse me. That was wrong. Scale instances. Okay. Now let's try to scale that even more. Then we could go for
transform or translate instances and just change that value in Z so that
they're connected. Okay. Now let's do something. I'm going to go here and
create another point. So let's go to the geometry. I'm going to select this space. And if I bring that here, you see, we have the same
being applied here as well. But again, we can go try to
change the scale and so on. Okay? Now, I don't want
that to be applied here, and then that is the raft. Perfect. So let's try to
change the scale a bit. And then we could go
for pick instance as well and try to change
those values like excel. If you want to get a
different sputu of planks. So let's go to Maria
mode. It's good. Okay, now we're going to create the illusion that these have been tied together with
a rope or something. Okay? Now I'm going to bring this rope because
this is a tiling rope, and I'm going to use them on
these kits so that we are able to plug them to the kits so that they will be applied
on the geometry nodes. So now let's do something. Instead of creating
random curves around these using
the curve menu, I'm going to borrow the
geometry from these wood kits. Okay? Let me go on the top. Let's go to solid mode so that
we're able to see better. Just try to select these. And then, we have
the ropes selected. And now, if I click
separate by selection, you see, they're getting used in the geometry nodes
because they are in the raft category
which we don't want. So let's try to take these, which is so that
we need to select them and bring them to a new collection or out
of the raft collection. Okay? Now we have these. Let's go to Edit mode and
separate them by loose part. Okay? Now they're all separated. I'm going to bring the
pivot to the center. Let's apply everything and then bring the pivot
to the center again. So now you see all of
them are centered. So now let me take
this plus this one. And then in order to
work a bit faster, I'm just going to bring that and bring them close
to these like so. So now let's try to rescale that and then
apply the scale. I'm just going to place them
close to these so that it would be easier to work
with the curve modifier. We're going to use
the curve modifier to wrap these around
these curves. So now they are all geometry now in order to
convert them to curve. You just need to select Okay. And then go to your object
mode, convert to curve. Now these are curves, and we're able to use
the curve geometry. And you see there are
now a curve geometry, and now in here we
have curve menu. So now I'm going to
select that and then let me go to the Form menu
and then we have curve. Okay? Now let's try
to select that. And then it needs a bit of okay, now you see it's working. So now let's go for negative Z. It's working either way. So let's do something. I'm going for phase orientation, apply everything, it's
working all right. But then that is non
destructive as well, it means that we
could go and try to rescale and create another pipe. Let's select all of these, and then I'm going to Control L. Now, let's select this one, the last Control L, and then Link modifiers. So control L, L link modifiers, excuse me, it's link
materials. Copy modifiers. Now the reason that these are so not working
all right because they're using the same curve
object and remove that, you see they get back
to the same place. So now let's try to bring a curve modifier and try
to pick up that instead. So this one is going to
be the active object, Control L, copy modifiers. And now all you need
to do is select the curves and
let's do something. I'm going to go back again. Let's set this one to be Z because that was
the correct rotation. Yours might be different
depending on how you have created those kits, okay? Copy modifiers, and
then if I select, you see, they're all getting
wrapped around those curves. Et's select the curves. Of course, we could have created one curve and copy
them around those, but you see using this way, we're able to create
curves that are similar in scale to these kids. Now let me select all of these. No, I'm looking for these bonds. Okay? And then go to your object mode and
convert them to mesh. It's going to apply all
of those geometry parts. Okay? Let's try to scale this. And it can create lots of
curves with these just so easy. Okay? Now I'm going
to select these and just join them to this one. Control J, and you see
they get applied here. Perfect. So let's do something. I'm just going to
rescale them just a bit. So now, I'm going
to select these. And then this one,
Control J. Okay. You see, wherever
we have used those, it's going to apply
them as well. So this one and this one are
going to be joined here. And then this and this span
are going to be joined here. Okay? You see that really creates the illusion
that they have been joint using
ropes and planks, especially here, which is great. So now let's do something. Again, I'm going to select these curves which
are now geometry. And now if I duplicate
and bring that to the center and
try to rescale, try to rotate, you see, it's just going to
duplicate them around. Okay, now, you see, it just creates the
illusion that they have been welded together using
these ropes, which is great. So now, let's try to use or create another of those rafts. So let's do something. I'm going to hide that plane for now and I'm going
to bring another plane. And this time, it's going
to be something like this. No, I changed my mind. I'm not going to create that. You already have the
knowledge to create that. So you can go and try to create. So now let's go to our
geometry nodes and then I'm going to
realize instances. Okay. Now they have been
converted to geometry, and then we can export them to unreal and try to use them. So let's apply. And we have two
material IDs here, which is going to be correct. And then the wood
kit is going to be the first one and the extra
is going to be second one. Great. And then we have this geometry node set up there wherever you want
or whenever you want, you can try to, for example, create a plane bring
the geometry nodes. Again, reuse the same setup. So this plane has been created
in the raft collection, you can bring that
to scene collection. Now you see it has been created. And now let's try to take
the plane, try to rescale So it just created something
like an unfinished raft. So you could use it for the
dressing prop to tell that, for example, somebody
wanted to create that raft, and it hasn't been
completed yet. So let's try to use that. Okay? This is the
unfinished raft. And let me just try to select these because I want
to delete them. Okay. Now I'm going
to pause this lesson, and in the next
one, we're going to create the lighting system. We're going to reuse these
kits and create a very, very simple lantern as well. So on the next lesson.
47. Lantern And Rgb Masking: A Okay, everybody. Now we created these two raft, and then now it's time
to create the lantern. So it's going to be based on this because this is going
to be the base for it, and now let me bring
the pivot here so that when we found
that in the world, it's going to be
based on this ground. Okay? Now this is
already 7 meters. So now let's try to
rescale that to a point that it reaches to
something like 5 meters. Let's apply everything.
Okay? This is good. Now I'm going to bring
some of these planks and try to place them I'm just using my imagination to create that because
I do not have a reference on how that looks, so we're going to use our
imagination and create that. So this is going
to be placed here, and then we could
use a boolean to try to create a place here
for the rope to be hanging. So let me bring that. And I'm going to use this one, because it's going to bring
that exactly on the geometry. Now, let's try to
bring the pivot here. And then if I bring a cylinder, that cylinder is going to
be spawned exactly here. And then I'm going
to just rescale that and then use
boolean on that. So let me apply everything, bring that here again. And then I'm going to take this and these two and this one as active
object control minus. And then we're going to
apply the boolean. Perfect. And now we could
just delete this, and now we have the place for our geometry to be instanced. Again, I'm going to use
a simulation to simulate a very simple cloth and use some of those edges
to make that a curve, just like what we did for
the bridges before them. So I'm going to bring in a
plane and let me rotate that. Okay. And then I'm going
to bring that here. And let's try to stop
divided a lot. Simple. And then you see we have
a lot of geometry here, and that will be a perfect case for generating the geometry. So I'm going to take
this geometry in here and go to my vertex
and apply that, okay? And then I'm going to base
the simulation based on that. So let's go on physics and
bring the cloth modifier. Let's go to m zero and then I'm going to go to my shape menu, use that now if I apply, so it doesn't allow
those to the form, So I'm just thinking I'm just thinking about
what we are able to do. So let's go to collision and activate self
collision as well. It prevents the geometry to
get buggy in certain areas. So I'm just looking through to see what we see that is okay, so let me apply a simulation so that we are able to
select this part in here. So, that is a bit complicated. So I'm going to edge mode, step right by selection, delete that, bring
the geometry here. And then I'm going to take
all of these and remove. Now you see it leaves us
with this connection here. And if I go and try
to convert that to a curve, we have no problem. And now let's bring the
rope geometry here. Again, I'm going to just rescale that and I'm going to bring
that exactly to here. Okay, let's see what happens. I'm going to bring a
curve and use this one. So let me apply the rotation. So if we go for Z, Z is working all right. So let's go for Z,
and before that, I'm going to bring in a ray modifier as
well. Why is that? Because we're going to
offset that in Z one time. Okay? You see it creates
that bend and allows for geometry to be tying. O. Okay. Now this is good. Let
me apply everything, and then we could try to
rescale that and place it here. So let me place the
pivot here so that we're able to spawn that
around these areas. Okay? We created something like a rope for the light
to be hanged on. So now this pivot is
going to be here, and then I'm going to bring that and just create the illusion that this
is a different part. Okay. It looks
different as well. So let's try to create
the lantern itself. That is going to be very easy. It's just going to be a cone and some of these
parts arrayed to create that. So I'm going to bring this here and let us just try to bring a cylinder,
bring that to the center. Okay. This is just for
the profile of that. Apply everything and
then try to insect, remove, and then
select these two, go to Loop tools and the bridge. So now, let me apply
everything and let us see, the normals are lit. So Okay. Now I'm going to
instance that a bit. We need to scale this
one a bit like so, and I'm not going to actually create a very
sophisticated geometry because that is not going to be useful because this
is going to be used on places that it's not
actually that important. So let me try to scale. I'm scaling based
on individual gins. Okay. Now again, I'm going
to select one of them, and I'm going to select one and leave two and go around
and select my geometry. Okay, now shifting to duplicate P to
separate by selection, and now I'm going
to delete that, and now I'm going to
select all of these parts. Okay. Now, all we need to do is
bringing a solidify modifier. So you see it created
something like that, which is great. So let me bring
them in just a bit. And then we could apply
a solidify modifier. So if you want the
end to be like this, that is very easy just create an extra
edge in the center. So let's do something because we could work on one instance and then copy to
other instances. Let me select this. Control I to
deselect everything. And now we could go
to Edit mode and use this spin Okay, select. Okay. Now we have one
that no it's okay. So if I go back, you see, now we have
something like that created. We're not going to spend
a lot of time on this. So let me select this space. Separate by selection. Then I'm going to select this inner edge and just try to create that
cone shape with it. Okay. Let me shade smooth. Then we could bring
solidify as well to create inner shell so that whenever if we place
light or something, it prevents that from
bleeding to other areas. Let me solidify And then apply. Let me apply everything, and let's take a look at here. So it's expected L the normals
and it created so easily. And all we need to do is creating something
to be placed here. So very easy just bring a circle Because this is a geometry, we could go and try to
use solidify modifier. Now solidify doesn't work. Let's just do
something I'm going to duplicate and then
select these two. Use Loop tools bridge, then we have bases that we
could extrude to create that. We need to flip
that. Shade smooth. Then all of these
are going to be joined let me select them. This is going to be pivot. Later, we are able to
bring that and try to use that here to create the illusion that there's something
going on there. This is going to be unwrapped
Unwrapped is going to be easy because there's nothing special here and everything
is based on sharp edges. So let us go to our UV and we already should
have a UV map. If we select
everything now go to your select mode and there should be a select
by sharp edges. Mark SM, and now if I
select all of them on wrap, if we get a very basic wrap. So in order to make that
a bit more optimal, I'm going to mark SIM here. So let me see, okay? Mark Sim once more wrap. You see now, you get a better unwrap because these
are now straight UVn wraps. So I'm selecting these. Let's just mark C wrap, okay? And then let me see
where these belong to these belong here. So now I'm going to select
these select all of them, a except for these ones. Now, let's select these only. Okay? Now if we go to UBS squares and try
to straighten them, you see, we are able to do that. Okay? Let me apply everything. And again, I'm going to
bring the pivot here. And now if we go to
Unwrap unwrap once more. Okay. Now we need to go to pack. Okay. Now we get a
more optimal UV. So then this should be high
quality. Pack once more. Perfect. Okay, now this is going to be baked to create the lantern. We're not going to create a high polyfordO
we could as well if we go bring a bubble. Okay, it creates a bubble. And let me see if I could bring a subdivision surface
without changing everything. So it's good. Now, if we go back, you see, we have a high poly
to be baked as well. So now let's do something. I'm going to select
this and call it static mesh Lantern 01. Okay. And then this one is going
to be the high pool. So we do not need to rename it. Let me select that. But I just called this dark mesh Lantern 01 HB representing
the high poly. And then I'm going to apply one material on all of them so. Let us call that un
restore lantern. Okay, both of them are now
using the same material so. We're going to hexture
that in painter, and we're not going to waste
any time adding lots of details because this is a generic crop that is not going to be
seen from up close. So why spending so much time on something that is
not going to be seen? Okay? This one is the low poly, so I'm just going
to call it lantern, low poly then this
is going to be high poly So I just called
this one Lantern hi pool. Look, I pointer now, and now let's go import the high poly and try
to bake the results. So here's the high poly. So let's see what is
causing that problem. Let's take a look
at the high poly. So let's compare that
with the low poly. We could go and try
to fix the high poly, but since it's not
going to be seen, let me just try to bake
to see what happens. Okay. See, just
there's a bug here. Let's see what is
causing the problem. So Let us go to unwrap and see
what we have here. So we have one UVsa which
is incorrect, I believe, if I unwrap that Let me create one seam here. Or this one. So I don't know what
is causing that. So I'm going to take this one
and delete it completely. So let us go back. I'm going to bring a cone
from the geometry menu. So this is it
without any problem. We just need to scale Okay. Now let us do something. I'm going to bring the knife to press C to make
that cut through, and it's going to be
based on Y, okay? And then I'm going to select
these parts, remove them. And then we take these
two inset, remove. No, let's not remove that. Instead, I'm going to take this one and let us just extrude that here. Okay? That will
solve those issues. They shade smooth. And then let us go and try
to unwrap that. So first, let me
take these edges. And then I'm going to
try to apply a bubble. Okay, perfect. Now, let me select
based on sharp edges. Mark Sam we don't want that. So let's try to select like so. And then one edge to split that. Go to face mode, okay? Now let's do something. I'm going to select all
of these except for let me convert that to a
SIM wrap once more. Now that's a separated. I'm going to select
this Control L, and then let us
go to UV squares, and we need to disable
the UVSync mode. Okay. Now let us go back and try to merge that with
this geometry. And now we could select everything and try
to pack once more. Okay. Now, let's go back. I'm going to select
that hi poly. I'm just going to copy
the name and delete it. Okay? Now, this is going
to be renamed as well. So I'm going to bring bubble, a very, very tiny bubble. And then subdivision surface. So let us see if something is
problematic. So yes, here. Let's do something. I'm going to select this
edge and mark sharp. Right click. Let us Mark
Sharp to see if that works. Yeah, no. So I'm going to
select that again and bring the mean
crease up, okay? It creates the geometry a lot better, removing those issues. So again, I'm going to reexport these And then we import the mesh because
the UVs are changed, we need to go and
rebake once more. Okay? Now everything is looking
all right, so let's bake. Okay, now we're getting the high poly result that
we wanted. Okay? Perfect. So now, let us go
for all of these as well. Excuse me. So I will return back
once the bake is done. Okay, now the bake is done, and we could easily go and apply one of these metal smart
materials on our results. No, not that one. So this is okay. And we're going to add a bit of damage to the metal as well. So we created a layer, and now let us go
to these masks. Okay? This is the first layer, and now let us bring another one and this one
is going to be for edges. So that is going to be too
much. Okay, this is good. It's looking all right. So now, because this is
something that we're seeing from far away, we do not need to export
it on high resolution. So we're going to export
it on something like one K. I just selected
template UI packed, and then the scale
is going to be one K. Or you can go for 512
as well if you want it. And here's the result. And now let us do something. I'm going to bring this here. Okay. And then one here as well. This is one variation, and another variation would be duplicate that,
remove one of it. And then I could easily go here and try to remove these parts. Okay. And now this is
the next variation. We have one that has a couple of lanterns
and one that has one. So we could create the
second UV channel as well. So we could save on these lanterns because
they're going to be right. So I'm going to
select all of them. This one is the pivot
Control J, okay? It's here. So let's remove the normals,
those custom normals. This is going to be
static mesh Lantern 01 A. Okay? And then This is going
to be the active object. Let me remove the
custom normals. And then this one is
going to be variation B. Okay? Let me export so I just we selected
the vinyl folder. I'm going to disable
the one material ID because these have
pretty material IDs, so export and export as well. So now, while I was
testing the environment, I just placed some of these modular measures
that we have been using already and placed them here and there to create
something like a door. Okay? And these are the
messes that we have been creating already
and we have been using. So, for example,
this one, you see, it's building one wall
five by two variation one, which is exactly this one. Okay? But I just brought them and
use them here for a door. So because the door
creation process was just something
like the same, I just skip that and reuse the same process so that we do not need to
repeat the same process. Okay. Now, here's
our results so far, and I'm going to bring
the other machines. So it's going to be
Lantern, A and B. And we do not want the material
to be imported with it. So in this material tab, we want to go do not import, and we don't want the textures
to be imported as well. So here they are. We have three materials, Wood kit, extra and lantern. So I'm going to
bring both of them. Misc Wood kit. I'm going to bring the
wood kit, this one, okay? And then for the extra I'm going to bring
that one. Perfect. And we need to
create something for the lantern material itself. So let me copy that, and I'm
going to paste that here. That's one as well. Okay. And then we're going
to import the textures from the lantern and use them
on material instances. So import, and here they are. Lantern base color,
normal and mask. So let us set up the
way that we want it. So you see because the
colors of this one, it's the mask texture because the colors are a bit
close to normal map, I imported that like a normal. So we want to convert
that to mask. This one is a normal, so all that mans details and
flip the green channel, and this one is okay by itself. Okay. Now let us go
to the material. And I'm going to
copy one from here exactly from the modular
master material itself. MI underscore lantern. And then we need to
plug the textures, and it's going to be right. Base color, normal,
and the masked. Okay? Now it's working right. So let us go here, find that material, and I'm
going to apply that here. So we need to do
something because we have the metallic texture as well because we haven't set up the
material to use metallic. It's not metallic now. So let me open the material. Now, there's metallic. So do you want
metallic map or value? Let us apply the metallic map. Okay. Now you see it's
using that metallic. And now we have metallic
intensity and contrast. If I disable that, we have either metallic
or non metallic. So if we outly that, we have the metallic
map alid as well. So now if you take a look,
you see now it looks like metallic so let me see if I can place some of these around here because later we're going
to create something like midday environment setup. So we need a lighting
setup to be there. Okay. Now I'm
bringing one in here. And now I see that the
color is too bright. So let us go to Material, and I'm going to bring the lightness to a
more controlled value. So I'm bringing hue as well, and I'm going to bring that
to something more controlled. Let us go to
something half value. Okay? Now it's more
controlled and looking a lot better. Okay. Now it's time to bring
some of these to really tell the story dad, these are in the environment and lighting the
environments later. So let us see if we could
bring one in here as well. Okay. I could change
that with this one. Okay, it's good for now. Of course, we might
need to rescale the lantern itself.
We will see that. So now we have the raft which
are going to be exported. But in order to add
a bit of detail, I'm going to create secondary
UV map and use them there. So let us just
bring those there, and I'm going to create UV Map. And then these two are
going to be used Okay, let us go to UV Editor. And all we need to do is
selecting these and try to pack. Here they are. Then now if
we go to material mode, you see we're visiting
the second UV map. If I go here, the first UV
map is correct and fine. Now I'm going to duplicate and these are temporary measures
that we're going to export to painter
because painter doesn't read the second UV map. So we need to make
sure that we delete the first UV map so that the
first UV map replaces that. Okay? Now, if we go to UV,
it's working all right. So let me export. And then I'm just
going to call it Rag. Of course, before
that, we need to apply one material
ID to all of them. So it's going to be Rag. Okay, because all of them need
to have the same material. Oh painted again, and we're
going to bake the mesh maps, and we're going to
make sure that we use the low poly like that, and we don't want
the ID as well. So Bake. Now the bake is done and we need to go create the
same channels as well. We're going to bring
the 01 and two. Then we're going to
name them just R, G, and then B. Again, in material tab, in material instances we
needed to pick up that. This is just the way
that we set up there. RG and then B. Then I'm going to export that. We're using the masking setup that we created in
previous lessons, and now let's set that to be
PNG or let's go for Targa. It's going to be a 512
texture. That is it. Then I'm going to
import the meshes. So blender now, these are the measures that
we're going to import. Okay, let me just call
it static mesh raft 01. And this is going to be
static mesh raft 02. Okay. Now, first, let me bring
the raft RGB texture. So we need to place that
in the textures folder. And then we need to go to
our final folder and bring these and we do not need to create the material.
Okay, here they are. And they have the wood kit
and extra material as well. So we need to create
material instance for them. So I'm going to reuse
from these materials. So let me pick up
from this material. I just called it material
instance, raft extra. And then I'm going to
pick up from this. Let me pick up this one. And then I just called it
MicaftUnderscore Wood kit. So it's going to be here. Okay? And then we apply the
material instances as well. We will apply the second
UV, let me bring these two. And then we need to bring
the raft RGB for these. Let me go to textures, and this is the raft RGB. We need to convert
that to a mask. Now that error is gone, and now we apply that. If we go here, we see that there's a mix
between these colors. And then of course,
we could bring changes to these as well. So here's the raft would
get if I apply the changes. It will bring the RGB masking, and now we want those
RGB changes as well. They will let us go to see if we could apply some changes
to these colors. Okay. And then let's bring the
intensity of that color. Okay, you see the moss
color is taking the result. So let's change this
one to something like a bluish moss, as well. But not that much. Let's just
add a bit of desaturation. So let's change this one
to something like this. Okay, now for the
main material color, let's try to
desaturate at the bid. And then I'm going to bring
another hue, for example. Okay, that is great. Okay, let's remove the contrast. So if I bring that in
the scene, you see, it's different to other
places from these kids. So we might need to
change the color a bit. So let me bring that and go
for something like blue here. So I'm going to pause now. We're going to create
the water material, which is an important part of the environment.
Okay? See you there.
48. Water Material Surface: Okay, everybody, do not worry. We haven't created anything yet in terms of
the water shader. I just created a simple material and with a very small
Roughness value, which is something
close to zero, just to test the
reflections and the one. It's just very simple material. There's nothing so complicated, and the plane is
the default plane, which you can find in here. If I go to my menu and in here in
shapes if you bring a plane, that is the same plane, and I just rescale
that 1,000 times. Okay. Now, if I just take this one and delete
and take this one, scale that by thousand, you see if we get
the same result. And there's no problem. So let me go back and bring that one, and I'm going to delete that. And here we have a
very simple material, which we're going to create, of course, new material
for the water. So let us go to create
a new material, and I'm just going to call it representing master material
and then water shader. So I'm going to add a zero
so that alphabetically, it appears in the
beginning of the list. And now let's start creating. But before that, I'm going to create material
instance from that. Let's call it MIPsce
water shader. Okay, I'm going to take this
plane and alo it out here. So is it because that is a very simple material we are not seeing
anything and because we have scaled that
material a lot, that is the fault material. But since we have
scaled that too much, we're not seeing
the information. So there's something
to consider, and that is we're not applying
the material on the UVs. If I bring the UVs here, you see the UVs are 0-1. And if I apply a regular
texture material on that, so if I bring material from the default materials
here and apply that, you see, it's very, very bad material in
terms of the tiling. So why is that?
Because we are using that material on the
UVs of the object. So if this one is a simple object with
default UVs, for example, material that is
one by one by one, and it just matches with textile density,
it's going to be right. So because we're going to use something like this
on the object, we're going to make
sure that we're mapping the material to the
world, not the UVs. So no matter how much we scale, it's going to always be
mapped to the world. So we're going to take
that in consideration now back to our material
folder and I'm going to open my material so there's a bit of
preparation that we need to do to make sure that it
renders perfectly for water because so far we have been
creating opaque materials. The ones that do not reflect or do not let the
light pass through. For example, this wood is
going to block the light, and you're not going
to see the light pass through the opaque parts. So we're going to make
sure that we are going to create a translucent
material so that it lets the light pass through and
renders differently. So here for the material we're
going to instead of opaqu, we're going for a
translucent and this setup already
doesn't allow us to have normal map or
things like that. We're going to change
the lighting mode to translucency volume. We get all of these back. So now for testing the UVs, let's go and create
world position. We have a world
position node and that it's going to allow us to bring information
based on the world. So you already know
that the texture is the UVs of a texture are using just two coordinates
X and Y or U and B. So XYZ is a three D information. We just want X and Y, which is equal to UV
or RG in terms of RGB. So let us bring texture, and I'm going to just
bring the fault texture. This is just for testing. So this is for the
diffuse color, and I'm going to bring
this XY and plug that to U V. And if I apply that to
the base color and save, let's see what has
happened in the world. That because that is a very, very, very out of
control number. If you zoom So close, you see, because that is real Engine
is using centimeters for every centimeter it's going
to tile the texture once. And if I go to unlit mode, you see the texture, the same texture that
we have here has been tiled once in a centimeter. So we're going to
control that number. So for example,
you could multiply let me bring in a multiply. And if I just promote this one to a variable and
use a very, very small value. So I think if we go
for 100 it's gone. So that is because it's using the world coordinates instead
of the UV coordinates. What it tells that tilt
once per centimeter. So now, multiplying that, it tells that tilt once or
tilt 100 times in centimeters. So it's going to tile
that centimeters, excuse me, it's going to
tile that 100 times more. So we need to revert that value. If I go back, see
how we get that. And if I go for something, for example, very, very smaller, see now, we get more
controllable tiling. So because this is not
that great control, instead of multiply, I'm
going to bring in a divide. So if I just rewire here, and set this one back to one. You see, this is
the same because everything divided
by one means itself, it means that it's going
to tile that texture once in a centimeter divided
by one, it means one. So if we go and press 100, you see, now it's going to tile the texture for each meter. If I bring a plane So you see this is a plane
that has 100 by hundred, and it means that it's one
by one in terms of scale. And it means that
for each meter, it's going to tile
the texture once. And I think that it's a lot more better for tiling the UVs. Okay. This way, we're telling unreal engine to tile that
texture once in a meter, or if we double that, it's going to tile the
texture twice in a meter. And the one. If you
go, for example, for 500, excuse me, it's going to tile the
texture now 5 meters, it means that it takes 5 meters
to tile the texture once. Okay? You want to control that value based
on what you want. So now let me delete that. Then this is the
tiling that we have. So I'm going to call this
one tiling or water tiling. And let us just create a folder, and I'm just going
to call this water. Okay? So now, because
this is going to be a material that is
going to animate, and it means that it's going to have motion because
that is just water. It's not going to be static
material just like this. For example, the wood
is going to stay there, and it's not going
to get animated. But since it's water, we need to animate the texture. We're going to use a
technique to make sure that we get something like water
ripples or water waves, and we're going to tile the
texture or distort the UVs in four directions to
make sure that we get a very good
motion in the water. So there's a node that allows us to have motion in the texture, and that is the panel. So if I apply that here
and bring the texture, I let us bring the default
texture again if I like that, and to the base color. Now it needs a time and speed. So time is how fast
do we want that to pan and the speed is a
direction based on X and Y. So for speed, let us just try to go for
certain directions. And now if I apply
real time here, you see now, the texture
is just having motion. So if I just save that, and here you see now
the texture is moving, and this is something that
we want for the water. So instead of moving
in one direction, we want them to move in
four directions so that we could just simulate something
like water movement. So we are going to use this panner and we're
going to use textures. Because we want to just rotate or pan that texture
in four directions, we need to bring four
of these panner Okay, let me just copy that. And we're going to adjust these accordingly so that we're able to pan those textures
just accordingly. So let me bring a texture, and I'm going to bring
four of these textures. So let me convert
that to a parameter, and I'm going to call
it water Texture. Okay, let me step that
to negative one so that it appears alphabetically in the beginning of the list, and I'm going to set this one to negative two because
I want the tiling to be on top of everything. Okay? Now I'm going to copy
this texture four times. Okay, so that each of these panther nodes is
going to be applied here. And the reason that I didn't change the name of the texture is that if you
change one of these, it's going to change all of them because they are the same. Okay? Now, let me log this
one to the coordinates. And then how do we
combine these textures? We're going to add
them together. So pros A and click, it's going to bring
these two textures together and these
together as well. And now we're going to
add all of them, like so. So let me bring that
to the base color. Edit needs a default texture. So let us go bring the
fault texture, the fuse. Okay? Now everything
is working right. So, you see, it's having motion, but all of them are going
to the same direction. So it's just like one
texture, not four textures. So you see because we
are adding it's just adding to the RGB values. Now what we're going to do is changing the motion
to something else. For example, for each of them, we're going to have
different speed in X and Y, so that it allows to create something like a distortion
effect on the texture, creating something
like a movement. So now I'm going to press
zero everywhere on the speed. And right away, this technique
is called four way motion. By adding motion in
different directions, you are able to
create something like distortion or for example, when you are in a
desert and so far away, you are seeing a Mirage
or something like that, that distorts vision. Okay? Now, creating
a four motion, excuse me, a four way motion, we need to start
with this and if I go speed of one and one, you see now these textures
are staying the same, but this one is moving
in these directions. So the speed is too much. So let us go to 0.1 and 0.1. So you see these are
staying in the same place. While this one is having motion. So now I want this one to go in exactly
opposite direction. So in speed instead of 0.1, we go for negative
0.1 and negative 0.1. So now you see they're going
in different directions, creating the illusion that there's something like a
distortion is happening. So this technique is
called four way motion. It was introduced a while ago, so it's a good technique to use and learning new
things about how to tackle certain tasks when creating the materials and
learning something new. So now you see it's
creating a motion, but out there just getting animated vertically
or horizontally, depending on the perspective. Now, we're going to
make sure that these are going in different
directions as well. For example, in order to make this one pile or have
motion in other ways, we could go and mix
the directions. For example, instead of going for complete negative values
or complete positive values, we could just use
a mixture of both. So this one is going to
be negative 0.1 and 0.1. So this one is going
to be the opposite. So it's going to be
0.1 and negative 0.1. So now, you see, they're just
let me save the material. And if you take a look, now, they're just having the illusion that they are getting distorted. But you see, there's
a point that all of them reach the same point and creating that
default texture. So we want to prevent that. So how do we prevent that? We need all of these to have a separate value
in terms of speed. So we're not going to make
sure that all of these have the same speed
so that in one point, they gather to create
that default texture. So you see, now, they created the same texture, and it was obvious, because they are
using the same speed, we need to distort
each individually so that there's no point or second in the game
that these stay in the same place in terms of UVs
to create that distortion, excuse me, to create
that texture. I mean this one. Oh, because everything is
starting from here, these are the UVs. If you add to the
values of the UV, it's going to offset them
to certain rotations. Don't let me show
that in Lender. So you see, we have
a couple of planes, and these planes are
identically the same. Just I copied everything. Now, if I go here, you see it's starting 0-1
in all of the directions. So in U and V. Now, if I just take this one
and offset it just a bit you see now it's no longer matching with
one that is behind it. Okay? You see now instead of
all of them starting 0-1, this one starts from
something like this. So I do not know where
that is actually, but it's not zero
to one anymore. So now if they start animating, there's no point that
they're going to be reaching to a same
point in the game. So that's why what we're
going to do right now. Oh, we're going to change this coordinate to
some random values. So because the coordinate
is constant to vector, and it means that it's
going to use XY or U and B, we're going to bring a constant to press two and click one. Now you get something like this, and now what we're
going to do is add this one to the
coordinates that we have. And it means that instead
of starting from zero, they're going to be offset
it to random value. So let me bring add Okay, I'm going to bring
this one here and this divide is going to be
here plugged to coordinate. So now, nothing has happened because we need
to change these values. For example, something
very random. So let's go 4.2 whatever Okay. And then here 0.3, whatever. You already see that.
This one has changed the behavior and has just removed one of them from
reaching to the same point. Now one of them is not actually reaching to the same point
like these three. Okay? This is what we're going
to do for all of these. Let me this one right here, and then this one again. And then once more, then we're going to plug to the UVs of these ones
to the coordinate. Now we need to change these
values to something random. So because now all of
these are the same value, they're all starting
from this point. Now they should reach to a
certain point, that one. So now we need to
change these so that they all start from
random point so that they never reach to the same point creating
that texture illusion. So now let's go for
0.4, for example, like this and this
1.5, whatever. And then just enter
a very random value. So you see we have
subtracted two of them from reaching to that pain
point that we had there. Now let us start to
use different values. And now here. Okay, now that's one to gain I'm just entering
different values. So now let's just take a look. And you see, there's very
unlikely that these reach to the same point
ever again because they're all starting
from a random point, and the chance that they reach to a same
point is very unlikely. So this creates the illusion, something like a Mirage
that you see from far away. Just preventing the texture
from tiling or from reaching to that same point that
we had previously. Okay? Now, they start from
different directions. And, of course, we need
to change how these are using that motion or how fast by using
the time value. So this time is based
on real world time, and it means that in
terms of seconds. So if I bring time
This is the time. So the time node
is actually using time in the material and
adding the passage of time. So I'm going to multiply that. And it's just like adding
a clock to the material. So if I added the
time on all of these, you see now nothing has happened because we're using
the default time. But if I just try
to go for twice, you see, it's just
animating a lot faster. So if I go for five, you see, it's getting very, very bad. So we're going to control that using a parameter in
the material instance. So let me call this speed or
how fast do we want that? So now it has changed, so let us go to default one. Now we see that actually
like the default value. So let us it should be one
in terms of sort priority. So if we go here and bring the material instance So let me take this one and place
that in the water folder. Okay? Now we are getting
the water tiling, water texture, and water speed. If I change the
tiling, for example, to 200, it's taking 2 meters
to tile the texture once. So if I go for 100, it's tiling once per meter. So for the default texture, we're going for default on reel engine texture
in starter files. If we go here, if you scroll up, you see there's a water
material that we can use. Okay? Now, just take
a look and you see it just creates something like
a water texture motion. But now you see the tiling
is very, very small. We need to change the
tiling to something else. For example, let
us tile that Okay. Now by telling that
once in 3 meters, we are able to see
a better result. But for creating the normal, we could reuse the same node that we have been
creating so far. I'm going to bring texture. Now it's using that
water texture. Let us go for a default normal. Okay, this is it. Now I'm going to convert
that to a parameter. And let's just call
it water normal. Okay, it's going to be
negative one in water texture, and I'm going to
tile that excuse me, repeat that four times. Okay? Now, in order
to match with this, I'm going to reuse
the same UVs here. Okay? This is going to
be used for this one so that we do not get repetition
in that normal as well. Okay? Now again, I'm going
to add these textures. And then I'm going
to add once more. We could use Latin normal to control the
strength of the normal. You already know that we
want to add a constant, and then here we want
to go for one minus. So that whenever it's zero, it's going to
convert that to one. Now, if we add zero, it's going to convert
that to one and it means that it's going
to flatten the normal. If I enter one, it's going to convert
that to zero, and then we get one for the
strength of the normal. Okay. Let me save. And then if I bring here
and bring a normal texture, I'm not going to use
the water normal. Let us promote that
to a variable. Okay. And then I'm going to aim. Okay. Now, if we just try to change the intensity. Let us go bring another normal. Now I'm using this value, and it's a good texture. Now you see there's a
very sharp transition from the word to
the objects here. I'm going to pause and
in the next lesson, we're going to fix these. Let's create a transition.
I'll see you there.
49. Water Color Blend: Okay, everybody. Now created
a very basic water shader, and it's just like
animated material. And in order to make that
a bit more professional, we need to add a bit
more calculations to, for example,
separate the texture based on the distance that
it has from these objects. You see, that is a
very sharp transition, and we need to change that. So first, let us create
a couple of colors. Okay, I'm going to just call
this one Water primary. I'm going to convert this
one to a parameter and call it water secondary. Now, let us create or select a very specific blue
color just for testing. Okay. Now we're going
to combine these colors and multiply them on the
color texture that we have. I mean, this one, so
that we get a bit of color change in the material. So I'm going to multiply that. And then we're going to bring in a larp like this one
here, plug this one here. And then this is going to
be based on the base color. So you see it has changed. So I'm going to
use sort priority of three and four on this and then place them
in the water folder. Okay, save. Now you see the
change that has been done. And if we go bring the
material instance, we're able to change that
to whatever that we want. So now we're going
to use a bit of calculations to make
sure that we change the color based on how far it is from this object
instead of just trying to use that color on all of the surface so that it
creates a transition, illusion of transition
and to make sure that these objects change the
color of the water a bit, just like the effect that
you see in the real world. So this is kind of a
depth based calculation. So we need to bring
in the depth and the in depth is
going to represent the distance from the camera
to the objects in the scene. So it's going to
represent or return back depth information of
each pixel in the scene. So if you just go here and search for them
depth, you see, whenever you try to change
the camera position, you are able to change the
thin depth of each object. It's a gradient that starts 0-1, and it determines how far from
the camera each object is. So we're going to use that
and use it in our shader. So in order to make
that specific, we could bring in pixel depth. The difference from
the pixel depth to scene depth is that scene depth calculates
all of the environment. But pixel depth is responsible
for what is being seen. For example, it's only going to render what we
are already seeing. And if you change the viewport, it's going to change
based on that as well. If we divide this and
use that of this image. You see, it just creates
a mask. So let me save. And you see now it's trying to take these objects in
calculation based on the effect. It's going to normalize the
depth value to each object. Because it's using the scene
depth and pixel depth, if we zoom out, you see now, it's just rendering based on a
distance of the camera. And now just something
to consider. If you just try to
scroll up and down the city effect is trying to be removed or being
strengthened. So that is because
we need to tell on real engine the
depth of the water. So if we just take the water
plane that we have here, you see the location is
based on this value. We need the Z value. So if I bring that, you see, it's just trying
to change, okay? We need to make sure that
this stays the same. So that's why we need to take the information
based on this plane. So the node that is going to help us achieve that is going to be called actor position. So this actor position in
the world space is going to take the information based on the XYZ coordinates of this plane or whatever actor
that you have in the world. And that's a number
in XYZ or RGB. So we need to manipulate only
the Z so that when we go up or when we change the height or if we change
the camera based on the Z, it's going to stay the same. So we need to offset that to the water level that we have, based on the world scales
that we have here. So first, we need to
go for component mask. What this component mask does, it's separating
based on the value. So we already want
Z or it's RGB XYZ. So to offset that, we need
to add something to that. So, this one is going to be
promoted to a parameter, and let me call it water level. Okay? Let me Again, convert this one to an RGB because now we're using
only the Z value. Again, we need to bring
in an append vector, plug this one here
so that it's here. If I bring a constant to
vector and plug it here, you see now we have RG and then this one is
going to be the B. Let's multiply these together
to see what happens. And if I apply that to Alpha, of course, nothing is
happening because we need to separate the
channel that we want. We want that to be in
Z, not all of these. So if I change the water, it's going to only create a bug. Okay. Let us go back. And right away,
we need to go for component mask and
separate the Z channel. Okay, let me apply that here. Okay, now we need to
go for one thing. We need to invert this. So let me take the height value of our plane and place that
in the water level. So we need to bring in one minus and this one to the Alpha. Now you see it's inverted
and now we are not seeing that effect because we need
to change that to something. For example, we need to
add a follo off to that. So a good number to
add fall off is to bring the divide and try
to promote that variable. And let me call this
one water fall off. Okay. And because we're going
to divide that to a number that is
going to be too much, I'm going to bring
in a saturate node. So the saturate node is
just like a clamp node. So you see, it's clamp 0-1. But if you bring the saturate, it's going to be the same thing, but it's going to be cheaper and downside is that you are not able to
change the min and max. So here you can
change, for example, to limit that
between 0.5 and one. But the saturate node
is the clamp node, but it's locked to zero and one. Okay. If I bring the saturate and change this one and save. Now let me go to water fall off. And if you just try
to bring the value, you see now, we are getting
that one in calculations. But we need to make sure
that we are able to see from the distances that wherever
we are, we need to see that. So like this, we need to
be close to the object. But we need to make sure
that wherever we are, we are able to see
what is going on. So let us bring a
world position, and I'm going to subtract
that world position from the water level that we have. So world position is going to be here and water level here, and let me plug that here. But of course, in order to take the camera
in consideration, we need to bring the
camera position as well. South camera position, and we're going to subtract
this from the calculations. So even before subtracting
the world space, we need to subtract the water level from
the camera position. They are going to be inverted. The subtract camera position
from the water level. Then we're going to
subtract that from the world position that we have. First, we subtract
the world position from the water level and then subtract the
camera position and then subtract these
two from each other. Let me bring in a subtract. Then we're going to
stoptrat this from this. And now if we go here and change the it's trying to take effect. But again, when we zoom out, it's not going to be calculated.
So let's do something. I'm going to bring in add here, and then I'm going to
bring the camera position subtracted And then if we add it back to
the calculations, you see now, even
if we zoom out, we are able to see that. So let us go to here. And now we're able to by just
changing the value here, you're able to see that
transition a bit better. Change the water level so that you're able to
see that a bit better. And what else we could do is changing that watercolor so
that it's not that prominent. So I'm just searching
for a different color. I just looked for
a different color. And now you see we're able to see by
changing these values, we are able to get a
mix between changing the color whatever you like. Okay? Now, let's change that. So now you see there's
a transition between the water and the object. Okay, now I'm going to pause, and in the next lesson, we're going to go
for the lighting, which is going to completely change the mood of
the environment. We're going to use HDRI
images. Okay. See you there.
50. Initial Lighting Setup: Okay, everybody, now we are
going to change the lighting. But something to notice
is that lighting could really improve or
worsen your scene. And with the good lighting, you can really progress your environment or
with a bad lighting, you could really waste a
lot of the time you have created in creating
these good results. So what we're going to do is using HDRI images plus
the post processing plus the lighting actors that we have in Unreal
Engine to create a lighting inside Unreal Engine without relying to an
external software. So everything is going to be done in real time
in Unreal Engine. So before anything
I'm going to bring in the post process because if
I take a look here, you see, whenever we look
at something dark, the eye adaptation
effect is present. You see, it's dark and then it's just trying to match the curvature of the
lighting to be a bit better. So I'm going to make sure
that this one stays the same, no matter where we
are looking at that. So let us go to exposure. I'm going to go for
game settings because we're going to bring in
a post process volume to help us do that. Just search for post process, and I'm going to bring that
to the lighting folder. So here's that. And then we
need to change something. We need to make sure that
it's infinite extent, it means that if we change that, it's going to change the
whole world with it because now everything should be inside
this box, the takeoffect. But if you apply
infinite extent, it's going to extend this to the whole world so that it
affects the whole environment. So what next we need to do is changing
the exposure settings. Let me go to exposure. Okay. It's in here and then we need to
change these values. I'm going to set this
one to zero and zero to completely disable the
adaptation effect. And now, if I go here, you see that adaptation effect
is not affecting anymore. So now, I feel like
this is a bit too dark. Let's go for one here
and one here as well. Because I want the
environment to look dark, ok? We want that to be something past midday towards
the nighttime, but it's not going
to be quiet night. It's going to be something
between day and night. Now let's go for 0.5 here as well so that it
gets a bit darker. And then instead of using this skylight as
the main skybox, I'm going to create
a mesh in blender and import it here and
apply a texture on it. So in blender, just go
and bring the UV spear. Now if you take a look at here, you see that we have the
UVs 0-1 perfectly fine. So what we need to
do is shade smooth, and now there's something more. So if we take a look
at the normals, you see now, the normals
are facing outside. But since we're going
to scale this one, for example, like 500
times, you see now, whenever we are
inside that sphere, we are seeing this side of the sphere that is
rendering incorrectly. So let me just create a cube. So take this cube as a player. Okay. Now, from the
perspective of the player, we are looking at
the wrong normals. We want the normals of this
to pace the other way. Okay? Let me just select shift and
recalculate the normals. So now, if we try to
scale this one a lot, you see now we are seeing the normals from
inside the geometry. If we were to look from the
outside of the geometry, we would have needed
to invert the normals. But since we are inside of that, we need to make sure that we are seeing the normals from inside. Okay? Now, let's rename that
static mesh Skybox mesh. Again, using BTEX,
I'm going to export. It's going to be to the
same final folder export. And then I'm going to my meshes folder and
import that here. So this is it. And we don't
want that to be nanite. And then we don't want generate light map UVs to be
activated as well. Okay. Now I'm going
to find that. Let's take a look. And you see if we
go inside of that, we're able to see
the world around us. But if you take a look
from far away because the normals are facing
the other direction, it's going to be wrong. Let's center that exactly. It's going to be in the
center of the world. Now, I'm going to bring that back to the
lighting folder as well. This is static mesh, sky mesh, box mesh. Okay. And then we
need to scale that until we are able to
see that geometry. So now let's try to
scale that by 100, okay? 200, 300, 400. Okay. Now we are
seeing that geometry. And now we could go and try
to apply material to that, and that material should be an HDRI or a panorama
image that we have. And it's going to be this one. This is a tile ene texture, and we're going to apply it
on the UVs of the sphere. So we have a couple of these. One is HDRI for the lighting, and one is for
material creation. So I'm going to import
them to our folders. Okay. Just let it calculate. And you just want to make sure that the compression
setting has been set to HDR on both of them. So they are shared with
you in the project files. And if you want to just follow with the same settings,
you are able to. So one of them is the XR, and it's good for
material creation. And one of them is HDR. The format is HDR. It's good for applying
to the skylight. Or indirect lighting. Now I'm going to
create material, let's call it AM Skybox. Then I'm going to
bring in material. Let's bring that and see
what is the sampler type. It's linear color. Okay? We know that it's going
to be a linear color. Let's right click, convert
that to a parameter. Just call it Skybox. And something to consider instead of using the
default material, we are going to change the
shading model to unlit. Unlit is going to just
emit light from this. Okay. It's going to
create a material, and we can apply
that to our texture. So now let's apply. And if I select the skybox, let's create a material
instance from that. And I underscore skybox material and if I select our skybox mesh, which is this one,
I'm going to apply that material. Here's that. And now you see that material
has been applied because the texture is tiling and it's tiling all
around the world. And you can go and try to
take that skybox mesh and try to just change the
scale to what you want. Okay. Now let's go back, use this one instead. And now I'm going
to create a bit of controls for
controlling the tint, for example, if you wanted
to add a certain color to the texture or to
brighten or darken that. Now for a bit of optimization, I'm going to select
that and instead of using this texture
on the material, I'm going to bring
something that has the sampler type
of linear color. So there should be if
I search for linear, okay, we see a white
linear color here and the sampler is linear color. So if I apply, you see now, the material has changed
and now we are seeing only one monotone color
on our skybox material. So let us go to our skybox
material and from here, I'm going to find our texture
and apply that here. Okay. And now we get that back. Now I'm going to
bring in a multiply. So using this multiply, we are able to bring colors. So I'm going to bring a color. Let me just call it color, it's going to be multiplied. You already know that everything multiplied by zero, zero, zero means zero, I'm going
to set the default to white and then another
multiply with a constant. This one is for changing the lightness or darkness
of the material. So No, call it brightness, and we should set that to one
to get a default material. Okay? Now I'm going to
change the brightness of our skybikes to something really darker because I want the environment
to look dark. Okay. After changing
a bit of values, I found that this one looks a bit better with
our environment. So now you see that we have a skybux representing
our skylight. And now let's go for our
skylight, which is this one. And we already have the
sky sphere from here. If we take and remove that, you see, it's just
the sky sphere. I'm going to take
that and remove. Because we replaced that with
something that we created. Okay. Now let's go
to our skylight. And this is responsible for generating the
indirect lighting. So instead of real time capture, I'm going to disable that. And for source type, I'm going to set for a
specified cube map. Okay. So now, I'm going to my textures and I'm going to bring that and apply it here. So, you see, there's a bit of indirect lighting
in these areas. And if you want to
strengthen that, you could just try to
bump up the intensity, and this is going to really
brighten those parts that is not affected by
the direct sunlight. So now, let's go to
our directional light. And if I just bring
the intensity, this is the directional light
that we get from the sun. So if I disable that, it's just the effect
of the skylight here, this HDRI image that
we have applied. Okay? Now it's taking these
colors and injecting them to the areas that we
have, not the sunlight. Okay? Let me go bring the
directional light and the default value that we
were working with Okay, this is going to be
something in between. And I want the directional light to have a bit of temperature. So if we go here, it's going to be
something like onset. But if I bring that
up, Excuse me. If I bring the temperature, we are getting cool colors because you see now with
and without that change. Okay, what else do we have here? I'm going to go to our exponential height fog and I'm going to
activate volumetric fog. Okay? Nice it blends a bit
better with the environment. Okay, now you can really try
to increase the density. For example, you can go past beyond any
value that you want. But for now, I'm not
going to use any value. So let's use this one,
the default value. And then we could create a second layer of
fog. Let us go here. Okay? You can just try to
create a second layer, but it's okay by default. So what we're going to change is the fog and scattering color. That's going to blend a bit
better with the environment. Okay? Now let's go to
our directional light. Okay. Now, let's take this one. And if I just try to
rotate that Okay. Now we get the material back, and now it's a lot better. So it was a bit
of rotation in Z. And of course, we're going
to change these values. We don't want them
to be so pronounced. So if you go to the
directional light, we are able to change the light direction
to wherever we want. Or you can hold down Control L, try to change the light
to use these shadows. As a composition tool. I'm going to pause and
just rotate the light a bit to get what
I want and I will return back. This is it. I was able to get the
lighting that I wanted using these values by just trying to rotate the sunlight to the
direction that I wanted. I feel like now we are
going to a good direction. Of course, you can change the
lighting to what you want. But for the time being,
I'm happy with this. So let us go to
the color grading, which is one of the
important areas in there. I'm going to bring the Global, and this is responsible
for all of the colors. And then we have shadows, mid tones, and highlights. These are going to
separate the changes based on how bright
or dark color is. For example, the highlight is responsible for the brightest
part of the environment. Midtone is for the mid tones, and shadows is for the darker
areas of the environment. Okay, something like that. You can just try to use them, but I'm going to add
just a bit of contrast. Okay? No, this is too dark. Let's go for 1.2. No. 1.25 is okay. This is going to add a bit of contrast and make the
colors a bit lighter. So I'm going to desaturate
the color a bit. I want that to look like an
old image, an old photograph. If you go for saturation, if you bring the colors up, you are getting
something stylized. If you go for this, you are getting a
black and white image, but I'm going for
something in half. 0.5 0.7 0.8. Let's go for 0.75. This will desaturate
the image a bit, and now I'm going to add a
bit of blue for an old look. Let's go to our Gamma and let's see which colors
are going to be okay. So this one this one looks like an old photograph but I'm going to add
just a bit of blue. Okay. Now let's try
to bring that value up, and this is okay. So we have already gain
or things like that, which I'm not going to use. So we already have another
temperature that we could use. If we bring the temperature up, it's going to look
warmer or cooler. I'm just changing that
to see which one I like better Okay, this is good. Before after, it's just
adding a bit of cool light to the environment because that is something like a
nighttime scene. Now we could also try to use
color lookup tables as well. So if you go to Miscellaneous in the color grading tab and then bring the
color lookup table, you can try to find
the lookup tables that are shipped default
with the engine. So just search for LUT, and then some of them are here. This is good. I'm liking that. This will change the color
a bit. So let's see. Okay, this one was a bit
better before, after. It's a bit removing some of those blue colors and bringing a bit of darkness and contrast to the environment. So to add a bit of
quality to the scene, we're going to
global illumination and the method should be lumen, and some of these stings
could be changed. For example, that's one if
we bump up to something like or the quality
is going to be up. Of course, the frame
rate is going to drop down if you use that too much. So lumen scene detail is going to improve
the quality as well. Let's bump up to ten. And then the final
Gater quality as well, is going to be good for
increasing the quality. And these could be increased increase the quality of the global illumination. And then we have the
reflections as well, which is great for just
handling the reflections. Okay. Now let's go to
our directional light, and I'm going to use volumetric
features on our light. So the setting should be here, and then it's volumetric
scattering intensity. If you disable that, it's
going to completely break the connection between
the directional light and exponential
height fog. So if you bump up the value, It should be using
and blend with the exponential height
bug a bit more. Everything is okay
except for, I believe, where we have placed the
actor because that is really important on how
you place that in Z. If you just manipulate
the actor in Z, you see it's just going to change that in the
world as well. So let's go to our
Viewport camera, and I'm going to zero that. Now you see because
that is on the zero, it's going to calculate
from there up. It's a gradient that starts from the actor's location
in Z and then gradually fade like
it moves on the top. Okay? Now, Something
like this is okay. Now if I disable that, you see, we're getting nothing. And if I go, for example, for 20 or hundred, you see, it's going to make
the connection stronger. So let's use ten. So this is okay. I'm going to pause now
and in the next lesson, we're going to create secondary
light like point light and go for final adjustment on the lighting.
Okay. See you there.
51. Completing The Lighting: Okay, everybody. Now we created a basic lighting for
this environment, and everything has been
created in real engine. So now, in order to add a bit of more
interest to the scene, we're going to use point lights. And you already know
that we wanted to place point lights
on these candles, basically, on these
lanterns, excuse me. So now let's do something. I'm going to go for the plane because that material needs a bit of adjustment. So this one, we could
just go for a bit of darker color so that
it's not too prominent. Now it's better. If you want, you can just go for a
darker color as well. Now we're going to create point lights wherever we wanted. So it looks like there's a
bug here. So we don't care. Now in order to create lighting, all you need to do
is selecting this, press L and click here, it's going to create
a point light. For the point lights, there are some considerations. So let me go to this
camera in here. And now in terms of mobility, we're going to set
them to movable. Of course, this is heavy, but since we're going
to get good lighting, we're going to use that. So for intensity, of course, it's very self explanatory. Do you want to force
that to affect very, very strong lighting
or a weaker one? So let's go for the default one, and then we have
the light color, but I do not really change that. Then we have the
attenuation radius as well. So this is for optimization. If I just view, you see, now it's going to
affect, for example, this certain area in full
effect and gradually fade away. So if you bring that up, it's going to affect more areas. And if you have a
lot of these areas, these lights, for example, in the same area,
it's going to cause some problems in terms of performance and
lighting complexity. So, okay? Looks like this is better. And I'm going to use temperature instead of color
because for the color, if you're not too concerned
with color that you select, it might be a bit stylized
or not that realistic. But if you use
temperature carefully, you're able to get
a very good result. For example, let's go for a
bit of warmer color here. And then, of course, there's a volumetric
scattering intensity as well, which blends the light with volumetric
effects in the scene. So you see now there's a bit
of halo around that light. So if we go, for example, okay, you see now the
halo around that light. So if you want that, there's the effect and you can use it. Okay? Now, what I'm going to do is selecting this
light and duplicate it to all of these lights
that we have created. So let me just you can select the light and
highlight the light. Okay. And then you
can go and try to place that here. Okay. And then it's going to be there. I'm just selecting these lights, and you can create a
blueprint with light as well. For example, create a blueprint
and bring the lantern and the light in that
blueprint so that every time you copy this lantern, the light is going to be
copied with it as well. So let's try to bring
the light there. You can press Control Shift
P to pilot the light. And then bring it here. And then now we can go here and try to visit the light
to see what it does. Okay? Now, because there's no actual learning value in copying and pasting
these lights around, I'm going to just copy these lights in these
places and return back to you when it's
done because that is just a manipulation of light and placing
that here and there. So I'm going to pause and return back when
I place the light in all of these lanterns. Now, I just place the light
in all of these handles, and you see there's
a point slide here and it's a very good adding good
addition to the composition. If we go take a look, you see, we have placed these
lights like so. And that is really
dependent on you on how you can or how you want
to place these light. Okay? I just used with a bit of manipulation changing
these lights for, for example, for this case, because it was a
bit dark in here. I wanted to have a bit
more visualization on this especially. So you see by adding that there, we are able to bring more
attention to these areas. But the main focus is in here, so you see there's the most amounts of
brightness in these areas. Hence though one more thing, I'm going to add a
bit of light into these buildings to make
them look more alive. For example, in
this area in here, so let me bring the
first point light. I'm going to higlot
and bring it here. So let me go back. So it should be here. And now, of course, we need to bring
more visuals in here. So do you want to have a very pronounced
lighting here or do you want just a very small
tiny change in the light. And I'm going to again take that light and duplicate it to all of these
buildings as well. So just Control Shift P.
And then place that light, for example, in this building. And then you can
go here and try to manipulate the settings here. And I'm going to place the light in all of
these buildings. Okay? So I could let's bring the attenuation radius
down because that is not going to affect a
lot of those areas. So we can change the
intensity unit as well, for example, to
something like EV. And now with a very
small tiny adjustment, it gets a lot brighter, ok? Something like this. And now I'm going to
do the same thing and try to copy the
light these areas. Control Shift P to
pilot the light. Let me select the lights. For example, here,
Control Shift P. Then you can just place that in this building and then
you see that change. Now I'm just going to copy the light here and
there to place that light in some
of these buildings, and I will return back when
the placement is done. Here they are and I just place these lights in those
buildings though. This is with and without it. Okay. And I think, like, the placement of light is done, and I'm happy with what
we have achieved so far. So, of course, there's more
change that you can do. It looks like
there's a bug here, so we have to
skybox meshes here. So I deleted one of
them. It was a bug. So now creation is done, and I think we are
in a point that I could call the tutorial finish. We have learned a lot, and I think like it's done. So for example, you can see
without the pulse process, how this environment
will look like. You see, it's very, very dramatic the amount of
change that we have done. So using post process, you can really
bring your level to a new level and
progress that a lot. So I think I could stop here and see you in the
next and final video.
52. Thank You: Okay, everybody.
Now the creation of the environment is done. We have started the journey with taking a look
at references. And of course, the
references were something new in
terms of creation. And that reference
board that we showed in the beginning was something that is currently available. So we brought those references and converted them to
something like this by taking the area
that was relatively new and converting
that to something old. It was a village that
was based on water, and we brought those
references and converted them to something
like this, with imagination. We started with blockout. Of course, for
documentation purposes and to create a gift
that shows the progress. I took screenshot randomly in
some stages of the process. So we started with this. We just started to
bring the references and just try to create
a sense of a scale. And then we just
started to refine that. So creating the scale for the buildings and then
started the mid poly process. We created something
like representation of the buildings and started to refine that even more and
tried to place those. So then we just created some really regular textures to represent the
look of the building and started to create the
meshes try to place them here and there and then try to refine out the
environment even more. So we started to create different kits for
the environment. And then the next step
was to create variations. We started to add a lot of broken variations
from these areas. We started to add texture variations and
these refinements. So this is the first refinement after creating the textures. And then we started to add variations in
terms of materials. And then we brought
those new measures. And then the next step was to finalize the lighting.
Okay? This is it. And now here's the final image that we created in such
a short amount of time. And all of the steps
were carefully explained so that nobody
misses something. And we created blueprints. We created variations, and
all of these buildings are created using only one
kit or maybe two kits, and we learned how to reuse to create a lot faster and
to iterate a lot faster. So thanks for following
me in this journey, and it was a very good one. I really enjoyed the process. Okay, and goodbye.