Unreal Engine 5.3 PCG - Ep 5 - Parameters and runtime execution

  Рет қаралды 8,444

Adrien LOGUT

Adrien LOGUT

Күн бұрын

Series of videos to learn how to use the Procedural Generation Content plugin in UE 5.2/5.3.
This fifth video talks about:
* How to create generic graphs in PCG with Graph Parameters
* How to create Graph Instances
* How to Generate at runtime, switching graph/parameters
DISCLAIMER: This plugin is still in experimental mode, to learn more about Experimental, see: docs.unrealengine.com/5.3/en-...
Link to GitHub for tutorial material: github.com/Amathlog/TutorialPCG
My twitter if you want to be notified for future videos: / amathlog
Link to tutorial in Epic Dev Community: dev.epicgames.com/community/l...
0:00 Introduction to 5.3.2 and Github Link
0:49 Overview of the base graph
1:46 Add parameter to control Surface Sampler density
3:16 Override parameters on the component
4:13 Add parameter to control scale
4:27 Maths multiply node for Scale
6:32 Add parameter for meshes
7:18 Add Mesh attribute to points
8:03 Spawn meshes using an attribute
8:55 Special case for grass: Template descriptor
9:12 Overriding all meshes
10:08 Saving overrides - Graph Instance
11:24 Switch graph instances in Editor
14:27 Now do it at runtime
15:27 Demo time!
16:06 5.3 only: Set Graph Parameters from BP
19:35 Randomize the seed at runtime
20:26 Demo time again!
21:31 Conclusion
Music from #Uppbeat (free for Creators!):
uppbeat.io/t/adi-goldstein/i-...
License code: W3BFN3L3NUINMK2K

Пікірлер: 45
@Nathillien
@Nathillien 6 ай бұрын
oh, just beautiful - parameters - exactly what I was looking for.
@YndarX
@YndarX 7 ай бұрын
Fantastic! I greatly appreciate all the information you put into these PCG videos. Keep up the good work
@jazznezzz
@jazznezzz 6 ай бұрын
I wish I could like this video twice. Thanks for spending time to make this video! Super helpful!
@teokim6298
@teokim6298 8 ай бұрын
Awesome Tutorial that I've ever seen. I've learned a lot. Thank you for your great efforts !!
@kthxbye1132
@kthxbye1132 8 ай бұрын
Amazing! Thanks for sharing the project.
@azrhyga
@azrhyga 8 ай бұрын
Really great features implemented :0
@proceduworld5723
@proceduworld5723 8 ай бұрын
Sweet! Thanks for the video!
@Miriuka_Entertainment
@Miriuka_Entertainment 8 ай бұрын
Hurray, new video)
@onlynone91
@onlynone91 6 ай бұрын
Thanks for the video, i used a node GetActorData with the node Difference to avoid elements overlapping with my character 😅
@n1lknarf
@n1lknarf 8 ай бұрын
finally a new video!!! please showcase how to destroy the instances spawned using traces during gameplay in a future video
@adrienlogut3482
@adrienlogut3482 8 ай бұрын
It's not really a PCG thing though :) After PCG is done, interacting with the static meshes is the same than with manually placed instanced meshes!
@DeltaZavr.
@DeltaZavr. 8 ай бұрын
Look good. How now create smooth async load of all of that ?
@asharacrauwels
@asharacrauwels 8 ай бұрын
Great video, thanks!!! Will you please explain the gather node in one of your next tuts?
@adrienlogut3482
@adrienlogut3482 8 ай бұрын
There is not much to say on the gather node! It is a pretty basic node :) Everything that you put in the in pin will get through the out pin. And you can plug stuff in the Dependency pin, that will just wait for all those data to be available before continuing with the Gather node, so it's a great way to enforce dependency.
@vlad.serbanescu
@vlad.serbanescu 8 ай бұрын
10/10 video. Much much better when the actual developers make videos about their work than when Epic decides to delegate them to some random "technical writer" who barely knows the keywords of the tech and does every mistake possible in terms of performance, modularity etc.
@adrienlogut3482
@adrienlogut3482 8 ай бұрын
Happy you liked that one! But let's appreciate the work of the tech writers too. They are spending a lot of time diving into the technique while we are busy developping the product, and they keep us in the loop to make sure they are writing/showing the right thing ;)
@vlad.serbanescu
@vlad.serbanescu 8 ай бұрын
​@@adrienlogut3482Let's also recognize the value of any work on this planet lies not in its amount or difficulty, but in its usefulness to consumers and quality. Perhaps it would be better for UE's end-users if the money and energy spent on shallow "jack-of-all-trades" attempts such as tech writers, was redirected to an extra developer or two, to relieve some of the pressure of development itself and allow them to showcase their work on their own.
@BoryslavF
@BoryslavF 7 ай бұрын
When overriding the static mesh spawner meshes, is it possible to use an array and depending on the number of entries, that's how many it swaps between? Example: An array of 5 chairs will be like having 5 different chair entries in the static mesh spawner, but if there's only 2 entries, then it's just randomizes based on those 2.
@adrienlogut3482
@adrienlogut3482 7 ай бұрын
Will be possible in 5.4 with array support. You'll have to do it yourself with a custom BP node until then.
@Protuberancio
@Protuberancio 8 ай бұрын
Thanks for the tool and the explanation! Can you give us some hints on how to use arrays as parameters? Is it possible? It seems that when the static mesh spawner node is 'Weighted,' we can assign a list of meshes in mesh entries, but when it is set as an attribute, I don't see how to input an array. Thank you very much!
@adrienlogut3482
@adrienlogut3482 8 ай бұрын
You can't in 5.3 unfortunately, it will come in 5.4
@Protuberancio
@Protuberancio 8 ай бұрын
@adrienlogut3482 Thanks Adrien! 5.4 keeps looking better and better! ;)
@Max_Stupa
@Max_Stupa 8 ай бұрын
Hi Adrien, Thank you for the brilliant tool and brilliant explanation. Currently, I am testing the capability PCG for our project. The main idea is to create a rainforest biome. The crucial component of it is moss. Horizon Forbidden West is the closest reference for moss density. Generating this amount of moss instances for the whole forest is difficult. I saw GPU-based PCG generation in Epic's roadmap for PCG. Could you please share some insides about development in this direction or explain how to generate a real bid amount of instances?
@adrienlogut3482
@adrienlogut3482 8 ай бұрын
Biomes generation and micro scattering will be done in multiple steps. We introduced the foundations of hierarchical generation with 5.3, even if it is not that useful in its current state. 5.4 will come with improvements on that front and runtime generation with generation sources, so you can generate with higher density at close range and lower density further away. Could also combine offline generation with runtime gen for the finer details. And then when all of this is shipped, will tackle how we can speed up generation for scattering and with GPU generation. We don't have precise timeframe for that though, but probably won't be for 5.4
@Max_Stupa
@Max_Stupa 8 ай бұрын
@@adrienlogut3482 Thank you for the quick response. I can't wait to play with it! I hope you'll be able to make another handy video with explanations.
@OriginRow
@OriginRow 8 ай бұрын
How can I make PCG Seed replication for multiplayer stuff ? Any idea ?
@adrienlogut3482
@adrienlogut3482 8 ай бұрын
That's not really a PCG question but more of how replication works in Unreal. If you replicate your seed on multiple clients, generation in PCG should yield the same results on all clients.
@CPCheatz2000
@CPCheatz2000 7 ай бұрын
Hey Adrien, is there any way to know when generation completes? I don't see any event that will be fired, but the generation as we know is a delayed even (Hover on Generate Local). I am guessing it is dependent on CPU/GPU load so we cannot use a set time. Any idea how to be sure that generation is done so we can do other tasks such as movie rendering etc?
@adrienlogut3482
@adrienlogut3482 7 ай бұрын
Indeed there is no event that a BP can catch, but there are callbacks in C++ you can listen. Check in PCGComponent.h Otherwise, there are also Post Generate Function on the PCG component that will call a function if the PCG component is on a Blueprint, that might help you too.
@CPCheatz2000
@CPCheatz2000 7 ай бұрын
@@adrienlogut3482 I looked into the C++ code as well. As you had mentioned, there were 2 delegates (clean and generate) and a function name array i could use, but both of them only are made to work in the editor (#if WITH_EDITOR is used). Is there no way to know when generation is complete after it is packaged? Can PCG even work after it is packaged?
@adrienlogut3482
@adrienlogut3482 7 ай бұрын
Yes it can work at runtime I show it in this very video! And yeah indeed the callback is editor only but we will have something cleaner for 5.4. You still have the post process function as stated. Or you can check periodically for the generated flag.
@CPCheatz2000
@CPCheatz2000 7 ай бұрын
@@adrienlogut3482 Thank you!
@olodum111
@olodum111 8 ай бұрын
Hello Adrien, Do you have a tutorial that covers attributes?
@adrienlogut3482
@adrienlogut3482 8 ай бұрын
There are some info in this tuto, as graph parameters are basically attributes when used in the graph. Episode 6 also shows how to create them in BP.
@olodum111
@olodum111 8 ай бұрын
Thanks for the info. Just starting in PCGg
@k3lk0m
@k3lk0m 5 ай бұрын
Hi Adrien, awesome tutorial! it was something I looked for for a while! quick question. I downloaded your project but I can open it. Is it a custom editor? copying over the uassets to another project doesnt work either
@adrienlogut3482
@adrienlogut3482 5 ай бұрын
Nope it was done with the current release of 5.3.2. I tried recently to download a fresh version and run it and it worked well.
@k3lk0m
@k3lk0m 5 ай бұрын
@@adrienlogut3482 thanks! will try again then!
@darman117
@darman117 17 күн бұрын
How do i make sure things dont spawn on top of eachother?
@adrienlogut3482
@adrienlogut3482 17 күн бұрын
You can check other videos, such as episode 2, for bounds and exclusions
@darman117
@darman117 17 күн бұрын
@@adrienlogut3482 cheers mate
@darman117
@darman117 2 күн бұрын
@@adrienlogut3482 hey sorry for all the questions how do i filter slope for pcg?
@trentburrell
@trentburrell 6 ай бұрын
This is cool but how is it practical? The lag, during the switch, is noticeable in big worlds.
@adrienlogut3482
@adrienlogut3482 6 ай бұрын
It's purely a demonstration of how to do stuff at runtime. And yeah switching like this on a big world is costly. But keep in mind that was not on a partionned world. Multiple smaller tile generation will be more practical. And we'll have hierarchical and runtime gen embedded in 5.4. so you can generate at runtime close to the player.
@user-vi6je4vv9l
@user-vi6je4vv9l 8 ай бұрын
芜湖
Unreal Engine 5.3 PCG - Ep 6 - Custom Blueprint Nodes
22:16
Adrien LOGUT
Рет қаралды 7 М.
Virtual Textures Are Now My Favorite Thing
29:20
BoroCG
Рет қаралды 48 М.
Useful gadget for styling hair 🤩💖 #gadgets #hairstyle
00:20
FLIP FLOP Hacks
Рет қаралды 10 МЛН
39kgのガリガリが踊る絵文字ダンス/39kg boney emoji dance#dance #ダンス #にんげんっていいな
00:16
💀Skeleton Ninja🥷【にんげんっていいなチャンネル】
Рет қаралды 8 МЛН
How Games Have Worked for 30 Years to Do Less Work
23:40
SimonDev
Рет қаралды 1,3 МЛН
Should Americans Worry About Mass Surveillance in the US?
15:40
VICE News
Рет қаралды 268 М.
Unreal Engine 5.4: Nanite Tessellation in 10 Minutes | 2024
10:56
Reality Forge
Рет қаралды 78 М.
Unreal Engine 5.2 PCG - Short Ep 1 - Sampling on any static meshes
9:53
Unreal Engine 5.4 PCG - New Features Ep 1 - Array of meshes
14:39
3 Ways to Scatter PCG Points on a MESH in Unreal Engine 5
14:45
Aziel Arts
Рет қаралды 4,9 М.
10 Unreal Engine 5 PLUGINS I can't live without!
9:37
Cinecom.net
Рет қаралды 499 М.
Easily Sculpt and Deform Landscapes With PCG
24:58
Procedural Minds
Рет қаралды 3,5 М.
Школьник ► SchoolBoy Runaway ► Побег в Закулисье
14:17