Main

Webinar on Environments with Unreal Engine: Kamaljeet Singh, Trainer, Technicolor Academy

Join us for an engaging webinar on "Unreal Engine Environments" featuring Kamaljeet Singh, an instructor at the Technicolor Creative Studios Academy. Explore the utilization of Unreal Engine's Procedural Content Generation (PCG) tools to effortlessly craft expansive natural landscapes. Unreal Engine's PCG tools automate the generation of terrains, vegetation, and various environmental elements, simplifying the workflow and enhancing scalability. In this webinar, Kamaljeet will illustrate how to create vast natural environments with ease, demonstrating the power of a few simple clicks. Don't miss this chance to delve into the latest PCG tools and leverage a diverse range of free assets, including Quixel Bridge Megascans, to construct a mesmerizing sci-fi environment. Sign up today: https://eu1.hubs.ly/H06V1RT0 #technicolorcreativestudios #technicolorindia #unrealengine #vfx #animation #webinar

Technicolor Creative Studios

3 weeks ago

Greetings, everyone. Welcome to the 15th installment of our Learn, Create, and Grow webinar series, Environment with Unreal Engine, probably brought to you by Technicolor Creative Studios Academy. I am Somayadipta Roy, but out of love, people call me Roy. As a trainer at the Academy, it brings me so much joy to have you all here with us today. Our team is genuinely excited about your presence, and we encourage you to stay until the end for a chance to win some fantastic prizes. Learn, Create,
and Grow is a carefully crafted webinar series tailored for students and artists by Technicolor Creative Studios Academy. These master classes offer a unique opportunity for students to dive into various disciplines within the VFX industry. Each month, we unveil a new episode following artists like yourselves to explore a diverse range of topics through VFX master classes led by our expert trainers. Today, we're diving into the immersive and fascinating realm of creating environments with Unreal
Engine. But before we go any further, let's get to know our speaker Kamaljeet Singh today. He is a seasoned GameFX trainer at Technicolor Creative Studios Academy. With over 15 years of experience in post-production, compositing, and visual effects, Kamaljeet is a seasoned professional holding the titles of Autodesk Certified Professional and Adobe Certified Visual Designer, and is recognized as an Apple Certified user. He brings a rich set of qualifications to the table. His proficiency in Zer
o density for broadcast design adds a unique dimension to his skill set, having navigated through the industry intricacies for six years in real time production for top channels like Star and Zee TV, he is well versed in the field. Today, we have the opportunity to hear from him directly. So over to you, Kamaljeet. Let's hear from you. Thank you, Roy for the kind introduction. Hello everyone, I am Kamaljeet Singh, a GameFX trainer at Technicolor Creative Studios Academy. I am excited to share my
expertise in building environments in Unreal Engine with you today. I hope this information will inspire you all. Without further ado, let's get started with our webinar. Unreal Engine is a powerful game development engine that is widely used for creating not only games but also various simulations, architectural visualizations and virtual environments. Creating realistic landscapes and environments in Unreal Engine majorly involves these steps. There are several methods to create landscapes, e
ach catering to the different needs and preferences. The first one is Landscape tool. Unreal features a built-in landscape tool that allows you to sculpt and paint terrains directly in the editor. You can create and modify the landscape using brushes, adjusting the height map to form mountains, valleys and other landforms. The next is Height Map import. You can import external height maps created in other software like Word Machine or Gaea into Unreal Engine. The next is Landmass plugin. Landmas
s plugin for Unreal Engine is a powerful tool that simplifies the landscape creation. It provides a procedural approach to generate realistic terrain with erosion effects and rivers. Adding foliage and vegetation is a crucial step in creating realistic and immersive environments. There are many ways to add plants and greenery to your landscapes. The first one is the default foliage tool. The foliage tool allows you to scatter and paint instances of static meshes across your landscape. Next is pr
ocedural foliage tool. Procedural generation for foliage involves automatically creating and placing plants and vegetation in a natural and dynamic manner within the virtual environment. Next is procedural content generation or PCG toolset that we are going to cover today in this webinar. PCG is a way to create a very large natural environment with just a few clicks. Creating large natural environments like forests, grasslands requires a lot of assets like grass, rocks and trees. We want to crea
te a set of rules that we give to the computer and let the computer populate our whole world with those assets for us. Of course we can still place rocks and trees manually wherever required. The sky and atmosphere lighting system in Unreal Engine is a powerful tool for creating realistic and dynamic environments. With this system, artists can customize the time of the day, adjust the direction and intensity of the sunlight, and create immersive atmospheres with features like realistic clouds an
d atmospheric fog. By the end of this webinar, you should be able to build this sci-fi environment in just a few clicks. There are several free assets available on the marketplace that you can use for practice. In this webinar, we are using Nordic Forest Pack from Quixel Bridge. temperate vegetation pack for grass and flowers Megascan Trees Black Alder Pack for trees. Mission to Minerva from Kitbash 3D for Sci-fi buildings. Let's dive into the process of procedural content generation framework.
First we need to make a procedural content volume. Then sample the surface to get the first round of placement on the ground. Use a static mesh for a node to spawn grass foliage meshes. For placement of trees, filter out the excess points and spawn the tree geometry. Further add rocks and twigs. Make a spline shape to define the shape of a building area. Define the splines to make the roads to cut through the building areas. Let's discover the magic of Unreal. All right, trivia time. I ask you s
ome questions, you type in the answers in the chat box and you may have some chance to win some prizes. All right, the first question. Which film was the first to use digital cameras for live-action footage integrated with visual effects? Which film is considered the first full-length CGI movie produced by ILM, Industrial Light and Magic? Which film was the first feature-length CGI animated film produced by Pixar? Which film is known for popularizing the use of motion capture technology in CGI c
haracters? Which film marked the first use of extensive CGI to create realistic dinosaurs? Fantastic! Keep an eye on your inbox as our team will contact the winner via email. Thank you for sharing your answers. We invite you to take advantage of this opportunity to explore the Academy's courses and learn more about the application process by clicking on the link in the upper right corner of the screen. Additionally, you can access our past webinars by clicking on the link in the description box
below. So over to you Kamaljeet. Let's hear from you. Thank you Roy, let's proceed with the webinar. Here's a list of tasks that we will cover in this webinar. Let's start with creating a heightmap in Gaea. Gaea is a powerful procedural terrain generation tool that can be used to create realistic landscapes. In this tutorial, we will use Gaea to create heightmap for our Unreal Engine environment. This heightmap will include the river, flat regions suitable for populating crops, or towns, and ad
ditional surface details. Launch Gaea and initiate a new project. Within the wizard dialog box, select Landscape. and save the project. A default landscape will be generated. Modify the ratio to a value between 40 to 50%. This will enhance the realism of a landscape as most real-world landscapes have a higher ratio of land to water. Adjust the Perlin settings to introduce more randomness. Modify the Scale and Octaves settings to control the size and detail of the Perlin noise. A higher scale val
ue will create larger features, while the higher octave value will add more details. This will add a more natural and diverse appearance to the terrain. Experiment with different values to achieve the desired level of randomness. To incorporate flat regions suitable for populating crops or towns, utilize the Ridge node. Combine the Ridge node with your existing landscape. Adjust the ratio settings to control the extent of the flat regions. To add more surface details and enhance the realism of t
he terrain, incorporate the Surface node. Now, a river would add visual appeal and dynamic movement to our landscape. To introduce a river to our landscape, employ the River node. Connect the river node to your landscape node. Adjust the settings of the river node to control the width and depth of the river. Modify the viewport resolution to 1k and mark the river node for export. Navigate to Build Settings and choose a name for your heightmap. Use R.16 format to ensure compatibility with Unreal
Engine file format. And for resolution, select Unreal 1009. Now give a path for heightmap 5. Click Build Heightmap to export the heightmap to a file. This file can then be imported into Unreal Engine to create a stunning landscape environment. Import Heightmap in Unreal Begin with a new blank preset. Enable ray tracing if you have an RTX-based graphic card. Name the file as "PCG Scene". Navigate to File menu. Click on New Level and select the basic preset to start your project. Transition to the
Landscape Tools to begin shaping your environment. Tools import from fileand load the map file exported by Gaea specifying a z-axis scale value of 200. Click Fit to Data and proceed to click Import. In case the landscape appears below the ground level, adjust its position by switching to the left viewport and align it to the ground. To accurately perceive the landscape scale, we need to view it from the human perspective. Now we will introduce a human mannequin, access the add feature and conte
nt pack, and integrate the third person blueprint. Navigate through the Characters, selecting Mannequins and then Meshes. In the landscape, we have a location designated for a river. Next to that we are going to make buildings area. Place a manupine in that area and press F to navigate to that location, offering a better understanding of landscape proportions. It's time to enhance the visual appeal for your landscape by assigning a suitable material. Go to the Window menu, launch Quixel Bridge a
nd explore Collections, Environment and Natural to choose a Nordic Forest Collection. Opt for surface material like Nordic Forest Detail Moss, set the quality to highest and add it to your project. Assign this material to the landscape material slot. Double click on the material, activate the tiling tools and adjust the value to around 0.5 for the balanced appearance. Focusing on specific regions such as river area and adjacent building space, you may need to flatten the terrain for future devel
opment. Utilize the landscape tools. Selecting the Flatten tool, adjusting the strength. and enabling Flatten Target. Click the eyedropper to sample an area for ideal height using the brush to flatten the region. For smoother transition, utilize the smooth tool. Now your terrain is leveled and primed for future design and detailing. creating a river. To initiate the river creation process, Head to the settings, navigate to plugins and click to enable the water plugin. Move to the Create panel, t
ype Water Body Level and place a water spline in the designated area. Adjust the position and rotation of the river actor. However, while moving the actor, there might be difficulty in moving the actual river area. To rectify this, shift the spline slightly beneath the landscape. In the river actor, search for blend and choose Max as the Blend Mode. Now the actual river area in the landscape is visible, allowing for necessary adjustments to the spline. Easily add new points by pressing Alt and D
rag. Once the adjustments are complete, raise the spline and revert the Blend Mode back to Alpha Blend. Moving on, fine tune the river width, select the spline point and search for width. Let's try a value of 1048 centimeters. However, if it appears too narrow, choose values like 1500 and 1000 for the next points. Additionally, the edges of the river are too smooth. To address this, navigate to Effects and go to Curl Noise. Try a value of 0.1 and experiment with different options to achieve the
desired size. Generate the first PCG. To kickstart the Procedure content generation process, let's first enable PCG plugin. Navigate to settings, click on plugins and search for procedure content. Click to enable the PCG plugin. Next, in the content browser, right click to create a new folder dedicated to PCG. Inside this folder, create a new PCG graph and give it a name "TreeRockGrass". Place the PCG in the viewport, then double click on it. Expand the input node and drag from the landscape pin
and type "Surface Sampler". right click on the surface sampler node and choose debug. The shortcut for debug is D. These cubes represent sample points for placing meshes and white, grey and black colors indicates density. To adjust the size of points, use point extents. Try a value of 10 and set a lower value of 1 for points per square meter to increase the number of points. Higher the values result in more points. Introduce some noise in the density with an "Attribute Noise" node. Turn off deb
ug for surface sampler and turn on debug for attribute noise. Change the seed value to observe the effect of noise on the density points. Next, add a transform points node. with a value of 360 in max rotation, this will randomly rotate points in Z axis. Ensure debug is turned on for transform node to visualize the effect. To adjust the placement, use Offset, Minimum and Maximum. Reset the offset back to zero. To spawn the meshes on the point, use the "Static mesh spawner" node. In Mesh Entries,
click the plus sign. Expand Index 0 and navigate to Tropical Jungle Park, Meshes and then select SM Grass. Add it to the Static Mesh slot. Similarly, add variations of graphs to mesh entries in the spawner node. Experiment with seed values for the mesh entries. In transform points, use a scale to add randomness to the Grass size. Inspect the size of grass with the help of the mannequin. If it appears too large, reset the scale and put a value of 0.5 in scale minimum. In surface sampler put a val
ue of 5 to increase the amount of grass points. The long mesh of grass is looking odd. Remove long meshes by going to Mesh Entries. Use a zero value for the weight to disable that particular entry and then delete it. Let's add trees now. Disable the grasspooners First add a 2 point node for organization of the flow. From 2 point add an attribute noise node The current number of points will lead to a considerable number of trees. To filter out unwanted trees, use a "Density filter" node, adjustin
g the lower and upper bounds, add transform points and static mesh spawner nodes. Add mesh entries from Black Alder tree's back Experiment with density filter values. and enable grass meshes Add a density filter to Grass, experimenting with values. Experiment with the seed value of the mesh entries and attribute noise for trees. Also add randomness to the size of trees. Now let's check the tree in slope areas. If they are bending along with the landscape normals, go to transform points and turn
on absolute rotation. Now they will always be straight along the z-axis. Add more varieties of trees to the Mesh entries of Tree Spawner. Rename first spawner to Grass and the second to Trees. Now let's add some flowers to the scene. Copy and Paste nodes from Grass graph Change Upper and Lower Bounds. and rename the spawner to "Flowers", delete existing mesh entries, and add the new ones. Add flower meshes from "Medow flowers pack" Make the connection with the two-point node. Change the seed val
ue of attribute noise for random placement. Experiment with density filter values. Similarly, repeat the steps to add rock meshes. Connect them to the 2-point node, go to grass node, delete the existing meshes, rename the node to rocks, and add fresh index entries. Add rock meshes from the Nordic Forest Park to mesh entries. There is an excessive amount of rocks. Adjust the density filters upper and lower bounds for appropriate amount of rocks. Modify the seed value of attribute noise for the ra
ndom placement of rocks. Some rocks may be above the ground. To fix this go to transform points and modify the values in Z offset min and max. Try out different values. Hence, PCG foliage is procedural. You can easily move, rotate and scale it according to the scene's requirement. Excluding trees from river area. Next, let's address the issue of trees encroaching into the river area which looks unnatural. To rectify this we will utilize the "GetSplineData" node, change the actor filter to "All w
ord actors". Currently the spline node may generate an error as it doesn't know which spline we are referring it to. In actor selection, opt for by class and in actor selection class search for "water body river". This enables the spline node to access reverse spline data. Introduce a "Spline sampler" node and enable debugging. This allows us to visualize the bounds of the river spline. Presently these bounds are calculated within the PCG volume. Navigate to spline sampler and activate unbounded
to calculate the entire spline. Subsequently, increase the subdivisions in subdivisions per segment. Presently, a value of 50 is effective for us. At this point, the calculated bounce may be narrower than the width of the river. To address this, include a "Bounds Modifier" modifier and ensure to debug it. Adjust the Y values for bounce min and bounce max. And similarly modify the values in Z for bottom and top. Proceed to add a "Difference node." Disconnect existing connections between sampler
and the two point node. Then the output of "spline sampler" to source pin and "bounds modifier" to "differences pin". This will effectively remove foliage and trees from the landscape. Think of it as a procedural Boolean operation. Currently, the grass is also being removed along with the trees. To specifically remove trees without affecting grass, disconnect the difference node and sampler source. Reconnect the previous links. Disconnect one point node from the tree nodes, connect two points to
the source of difference and attach the output pin to the attribute noise of the trees. Now only trees are removed from the river area. Generate PCG for building area. Now let's focus on building area where we plan to populate rocks, buildings and roads. Switch to the Modeling Panel and click on Draw Spline. enable loop and start drawing the spline. Adjust the spline as needed. Add additional points with Alt and drag. Adjust the spline and keep following the shape of landscape While working, tr
ees are obstructing the way. So it's better to turn them off. Make adjustments to the spline, ensuring it stays close to the surface. Rename the spline to "townspline" and add a new PCG volume named "Town_PCG". Include it in the scene. Its location doesn't matter, since it's going to sample the spline location. In the PCG graph, add a GetSplineData node. Change the Actor filter to All word actors. As seen before, the spline data may generate an error. Select the town spline when search for "tag"
and tag it as "town". Choose "Actor Selection"by Tag. and copy and paste the tag name into the actor selection tag. Now, the error should be resolved. Add a spline sampler node and this time we need to sample the spline as a shape, not as an outline. For that, go to dimension and select interior. and make it unbounded. To reduce the number of samples adjust the interior sample spacing. A higher value results in fewer points. Add attribute noise node and transform points nodes and randomize the
rotation value to 360 debug the transform points node and check for randomness. Introduce a static mesh spawner and add mesh entries. Go to spline sampler and decrease the interior sampling. Increase the points for rocks. Fill the area with the rocks. Some rock meshes might be above the ground. So go to transform points and set -10 in offset min and offset max. Also, randomize the scale. Now let's add buildings. Add another spline sampler. and attribute noise Change interior sample spacing to 15
00. Add a bounce modifier with a value of 6 in min and max representing a space for buildings. Experiment with different values. Add transform points and static mesh spawner nodes as well. Add a mesh entry from building meshes from “Mission to Minerva pack”. As buildings might be too big, go to transform and scale them down by 50%. Disable the debug from Bounds modifier. Randomize them in Z-axis by going to Transform and putting a value of 360. Now we have encountered an issue. The buildings are
randomly rotated in all directions. Instead, they should be oriented randomly at 90 degrees intervals in a grid. Let's address the issue of random rotations by using Density Filter node. Disconnect existing connections, add a Density Filter node, adjusting the lower bound to 0 and upper bound to 0.25. This will filter out the 25% of the total points. Duplicate the nodes and make the connection. Change the lower bound to 0.25 and upper bound to 0.5. In transform points, change the rotation min a
nd max to 90. Repeat the step again and set the lower bound to 0.5 and upper bound to 0.75 and set the rotation to 180. Finally, repeat the step again. and set the lower bound to 0.75 and upper bound to 1 and set the rotation to 270. Now, buildings are randomly rotated in 90 degrees in all directions. Just play with the seed value of the attribute noise. Add variations of built-in meshes to buildings spawner. Adjust the distance between buildings in the Spine Sampler node. and check the scale of
buildings according to the human perspective. Next, add roads to this area. Navigate to Modeling and draw a spline that passes through the building area. Feel free to add multiple splines as needed. Rename the spline actors to Road 1 and Road 2. Organize the Outliner, create relevant folders and move Actors. Adjust the road splines and add tags to them. Open Town PCG and add a getSplineData node. Change the ActorFilter to all world Actors and point ActorSelectionTag to Road. Turn on Select Mult
iple as we are using two separate splines. Add SplineSampler and turn on Unbounded. Currently, we are unable to visualize the spline bounds. To address this, disconnect the existing connections for rocks and buildings. Include Bound modifier, input values in Y and Z-axis in bounds Min and Max. Use these values in centimeters. restore the connections. Adjust an experiment with values of Bounds modifier. Organize the node graph and create space for the difference node. Afterwards, add a difference
node to the building attribute noise. and connect the road bound modifier to the differences. This should automatically remove buildings from its path. You may need to experiment with the bounds modifier to get that desired result. Since everything is procedural, you can modify anything at any point of time. Experiment with spacing of the buildings. Repeat the same steps to remove the rock from the road path as well. Introduce a difference node after spine sampler that comes after attribute noi
se designed for rocks. Make room for the nodes and connect the bound modifier to differences pin. Further, experiment with values for optimal result. Let's change the material of the landscape for a better look. Go to Landscape Material slot and change the material to Mossy Rock material from Nordic Forest Park from Quixel Bridge. Some rocks may appear elevated above the landscape. Use sculpting tool to manually paint in these areas and integrate these rocks into the terrain. track the building
area from the initial PCG setup. Now activate the Trees PCG and adjust its position and scale to encompass the building area. Currently there is an issue with the trees and grass overlapping the buildings. To address this, go to trees PCG and incorporate our get spline data node. For a more responsive viewport, it's advisable to disconnect the surface sampler, especially, if you are making a minor adjustments. Point the spline data node to target the Town spline. Introduce a spline sampler chang
ing the dimension to interior. Add a bound modifier node. Adjust the bound to cover a large area. and reduce the sample points. In particular, extend the bounds to 20 in z-axis to account for the points in slope areas Experiment with different values for the bounds. Introduce a Difference node and establish connections with the Town Spline sampler. and activate the debug mode for visual feedback. This process effectively removes points within the town area. Further, define the area by adjusting
the bound value. Restore the connection with the trees. We have successfully subtracted the building area from trees and foliage. Finally, include a PCG for background areas. Point to the scale of the tree's PCG to cover a large area. Keep in mind that excessive scaling may impact the viewport performance. Alternatively, consider creating another PCG with fewer points, specifically for the background. Duplicate the Tress PCG and name it "TreesGrossRock_low" and place it in the viewport. Now, we
will adjust the points per square meter for fewer points. Experiment with different values. Right now a value of 1 is good to go. Navigate the surface sampler and enable Unbounded. This ensures that the foliage covers the entire landscape, providing a more comprehensive and visually appealing result. For final touches I have added a "Road" mesh and a bridge. placed additional buildings manually. I have made one more spline to remove trees from that area we can make more splines and attach same t
ag to it it will automatically remove trees from that area and we don't even need to open the PCG graph Additionally, I have placed low res mountains for the background. This is how you can use PCG to make the entire scene procedurally. Now it's just a matter of adding cameras and take out beautiful renders out of it. I am very curious to see how you all will apply it in different type of projects. If you have found this webinar helpful, then shoot us a thumbs up so that we can create more conte
nt like this for you. Here are some sample renders, showcasing different perspectives and emphasizing various visual elements present in the scene. I particularly like this time-lapse render depicting the transition from night to day. There are many free production ready training resources available at Technicolor's website. The courses also provide a great opportunity to gain experience and expertise to build upon as you progress in your career. Thanks to everyone who took part in this session.
I hope you have enjoyed it and learned something new today. Apply today and start your journey with Unreal Engine at Technicolor Creative Studio's Academy. Thank you. Over to you Roy. Thank you very much Kamaljeet for that wonderful session. We extend our sincere thanks to all the participants who joined us for today's informative and engaging webinar. We hope you found it both valuable and enjoyable. Please feel free to contact us for any additional questions or inquiries through the contact d
etails on the screen. Please feel free to share this recording to anyone who may benefit from it. You can stay up to date with upcoming episodes and exciting content by staying connected with us on social media. In the meantime, keep those creative sparks alive and take care of yourselves. We look forward to welcoming you back in the next installment of Learn, Create and Grow.

Comments

@ronydey2696

Great to be part of it..im a Vfx diploma holder Arena Animation kolkata

@godposeidon492

Very Good explain

@suanshpatukale8849

Give us unreal engine 5 course from beginning to advnace