The second major update for Unreal Engine 5 just released called 5.2, and there are two reasons why it is a big deal. They are procedural content generation and substrate materials.
Procedural content generation is a powerful tool that allows you to use random generation to create complex models and environments. It is artist-friendly programming, the less you define rules which perform specific actions. Procedural tools are common in a lot of 3D programs.
Substance Designer allows a user to generate materials procedurally without any textures, and Blender has geometry nodes, a powerful node-based editor to create complex animations and models quickly.
Procedural tools are central if you have any repetitive tasks. When Epic Games made the Matrix City demo, they generated it procedurally. Since the city is made up of millions of unique objects, it isn't practical to hand-place every single asset. Instead, they set rules to determine which streets to include, where buildings should appear, and the size of those buildings.
如果你有任何重复性的任务,那么程序化工具是非常重要的。当 Epic Games 制作《黑客帝国:矩阵之城》演示时,他们采用了程序化生成的方式。由于这座城市由数百万个不同的物体组成,手动放置每个资产是不可行的。相反,他们设定规则来决定要包括哪些街道,建筑物应该出现在哪里以及这些建筑的尺寸。
What would take months for an artist to create can now take seconds to generate, and they could pick from an infinite amount of random I-Cities. But in order to generate the city, they had to use a program called Houdini. Houdini is a powerful software that is used in most movies and games. But if you ever use Houdini, then you know it is really complicated.
If you want to create your own procedural tools for Unreal Engine, you have to use Houdini. Until now, procedural content generation, or PCG for short, brings the power of procedural tools into the engine. We don't have to use another program. We can do all our work directly in UE5.
For example, let's create a simple forest on the right as a PCG graph. To do so, we first have to add points to the landscape. Use a surface sampler. In order to preview the points, press the D key. Now I think there's a little bit too many points. So what I'll do is drag from out and use a density filter to remove the points. I can increase the lower bound, which will slowly start to get rid of points.
例如,让我们在右侧创建一个简单的森林作为生成图。为此,我们首先要在地形上添加点。使用表面采样器。为了预览这些点,按下 D 键。现在我觉得点太多了一点。所以我将从外面拖拽并使用密度过滤器来删除这些点。我可以增加下限,这样就会逐渐消除这些点。
To add random rotation and scale, use a transform point stove. Absolute rotation, so the trees are always facing up, set a max rotation of 360, so each point faces a different direction, and for the scale, be a random range from 0.8 to 1.2. Finally, to spawn static meshes, use a static mesh spawner, and spawn two meshes. One will be a tree, and the other will be a different tree.
I'm able to move it around, and those trees will automatically generate randomly for me. And if I want this to affect my entire landscape, within a surface sampler, check Unbounded. Just like that, we can create a massive force quickly using the power of procedural tools.
While this example is simple, you can make these graphs and rules as complicated as you want. This graph right here creates an oasis. Let's say you were creating a desert environment, and you want to add an oasis. Well, all I have to do is drag in the oasis PCG, and it has automatically created for us. I didn't have to hand place every asset. Thanks to the rules I set up, it spawns instantly.
I can even move it around, and it will generate a new oasis each time on top of the landscape. Or I can make this a really long oasis. And if we feel like this oasis has to be huge, then I can scale it up in all the axes. So we have just a massive force of palm trees that the player can't explore. I can even change properties directly in the editor. That's why I don't have to jump into the PCG graph every time I want to make a change.
For example, I expose the property tree amount, and if I want less trees, I could just bring this down to something like 0.05, or less trees in the oasis. Or if I want a lot of trees, then I could bring this to something high like 0.8, which will create a super dense environment.
Obviously, oasis are not square. They do not look like that in real life. So I can also use splines to control the shape of PCGs. Let's say if I want a roundish oasis, then by just moving the splines, scaling, and rotating them, I'm able to get the exact shape of the oasis that I want. Splines are not just for creating shapes. I made one that will cut a path through the PCG, removing rocks and trees.
So if I just drag it out right there, grab one of the edges, and drag this out, you'll see that I'm slowly cutting through the oasis environment. So maybe travelers always go through this path when they're cutting through the oasis. They can also interact with the environment. It would have made sense for trees to grow from the water, so the PCG knows where the water is, and does not add trees there.
We're not just limited to natural environments. You can generate pretty much anything, even completely new 3D models. And in a demo released by Epic, they generated this entire world. Really, the possibilities are endless.
Also, unlike Unini, procedural content generation runs in real time. That means you could have gameplay elements affected. For example, the player can press a button, and the whole world changes.
The second big addition is a brand new material system called substrate, which makes the process of combining materials a lot easier and more realistic. Oftentimes, objects are not made up of one material. They're made up of several materials layered on top of each other.
For example, this sphere is made up of two materials, metal and dirt on top of it. If we look at the materials graph, we have a metal down here and dirt above. The only problem is that we have to use lurp nodes to combine them, and lurp nodes do not take into account which layer is on top, or their thickness, which can lead to unnatural materials. Substrate changes this.
It allows us to combine materials on top of each other, and is set a layer's thickness. This means each of these materials are calculating their own reflection. Here's that material combining metal and dirt in 5.1, and here's a similar one in 5.2. 5.2 material looks a lot better.
With substrate glasses now easier to render, and we could combine two materials in unique ways, like with this orange material on the bottom and blue on top. A material like this was impossible before substrates. You can create advanced materials like Opal, which Epic Games showed off. It is combining four different layers, which are all realistically interacting with each other. Notice how there are multiple layers of reflection.
Of course there are other improvements to the engine. When Unreal Engine released, introduced a new Lighty Sys I've called Lumin, which gave us high performance dynamic bounce lighting. It also introduced a new shadow rendering system called Virtual Shadow Maps. Virtual Shadow Maps allow for soft shadows and shadows at far distances.
This was impossible using unreligive forest cascaded shadow maps, which would disappear at far distances. And while Virtual Shadow Maps are great, they are not as accurate as ray-trade shadows, which shoot thousands of rays from a light source to create shadows just like in real life. If you want to enable ray-trade shadows, you can enable them on any lights in the advanced settings.
In 5.2 ray-trade shadows got a major upgrade. Now there are a lot more accurate and can cast smaller shadows. It is most noticeable on area lights. There are ray-trade shadows in 5.1, and here they are in 5.2. Notice how the shadows look more natural and sharper. Other changes to lighting include more accurate reflections, and metahuman occlusion, which was improved on thin surfaces, and hair which was glitchy before 5.2.
Another big addition to UE5 is the ability to create your own custom tools with scriptable tools. In Unreal, under modes, we have all these useful tools, for example, modeling mode gives me access to tools to edit and create models. The only problem is, if we want to create our own tool, we would have to code it in C++, which is really complicated. Scriptable tools changes this.
It allows us to create custom tools without a single line of code and blueprints, and while it does look complicated, it is a lot easier than coding it. For example, why this is useful, a comma workflow, especially with placing natural objects, is I drag out the mesh, I then rotate it randomly, so it doesn't face the same direction as other meshes, and then I scale it.
I create a tool that automates most of that process. To get it, all I have to do is select scriptable tools, and then I get to select my own custom tool. I'm able to set it to mesh, so let me go add in the rock, and now I get a preview of what that rock will look like in the world, and to place it, hold down the left mouse button, and then drag to then increase or decrease its size. So very quickly, I'm able to add different size rocks in my world, and I can even add a random rotation in the settings. So now this rock has a random rotation, each time I set it. I also added the option to place a random mesh from a list. So if I just select that, now it's going to pick a random mesh to spawn, each time.
I work a lot faster with this tool, and in the future I can create more tools to speed up my workflow. Scriptable tools can also interact with procedural content generation, and geometry script, which means we can pretty much create any custom tool.
Speaking of tools, for most of the modeling mode tools, we now get this little widget in the bottom left-hand corner, which allows us to input accurate changes. For example, if I bring this up, and I want this to be exactly 300 meters, then I get type in 300 right here. Before this tool, we have to guess. Now we know exactly what we are doing.
Those were all the major changes of UE5.2. These are just the ones I thought are important.
以上就是UE5.2的所有主要变化,这些只是我认为重要的部分。
Of course, there are hundreds of changes in bug fixes with this release, so if you are curious, you can check out the release notes, or the Unreal Engine roadmap.
Unreal is more important than ever, because half of all announced next-gen games are being made on UE5. There's no better time to learn Unreal Engine than now.
Luckily for you, I have an entire free course right here on YouTube, which goes over all the essentials to learn UE. You can check it out in the description below.