Hello Adrien. Thanks for your awesome videos. I realized that you were also part of the Electric Dreams deep dive video. I was wondering why in the sample your guys used a union node before each difference node but you did not use it this example. Thanks
@adrienlogut348210 күн бұрын
Hello! The default behavior for the difference node is to do an union, so implicitly we have a union done. You can add a union node before if you want to be explicit. Note also that those videos are from me when I was less knowledgeable about the system, so there might be some places I did something not useful or optional!
@user-nb3kg9hk8x10 күн бұрын
감사합니다!
@elannal628111 күн бұрын
Does anyone know how he created that reroute pin at 2:18 without opening the menu?
@adrienlogut348211 күн бұрын
I didn't create it, it already existed :)
@MowGohhldRequired11 күн бұрын
4:03 will not work anymore on UE5.4. Instead search for "Get Landscape Data"-Node and connect it to "Surface Sampler". No need to connect "Input node".
@adrienlogut348211 күн бұрын
Indeed things have changed!
@ArtTstudent11 күн бұрын
Can there be actual documentation on this? If not for your video, how would new users understand the system.
@adrienlogut348211 күн бұрын
There are some on the Unreal site. Otherwise it's a beta plugin, it comes with less documentation that's the contract.
@darman11714 күн бұрын
Hey mate how would i go about replacing the static mesh with a replicated collectable actor?
@adrienlogut348214 күн бұрын
Change the mesh in the mesh and ID struct by an actor reference, and change the static mesh spawner by a Spawn actor, with no merging option, and in actor attribute reference the name of your attribute containing the actor reference
@darman11714 күн бұрын
@@adrienlogut3482 any idea how i could spawn it as a mesh and have it change to the bp when i interact with it? cheers love the channel
@adrienlogut348214 күн бұрын
That's not PCG related then, you'll have to add another system that replace the instanced mesh by actors when the player is close.
@darman11713 күн бұрын
@@adrienlogut3482 cheers! Your channel is brilliant
@outpost137games215 күн бұрын
The text on these nodes are so hard to read. Video quality is not sharp even on 1440p.
@adrienlogut348214 күн бұрын
Yeah it's the first videos, learning it the hard way. You could always try to use a plugin to zoom on the video. Though watching it in 1440p, it's pretty sharp to my eyes.
@soonhosong271115 күн бұрын
Hi, I'm wondering I want to adding a 'Priority' same a like the previews tutorial video(array of meshes) because I want to control each tree or rocks a different 'Priority'. I assume probably it should be add 'Tuto_MeshAndID' to adding 'Priority' as a 'Float' and somehow in the 'PCG_Tuto_SampleOnSpline' for the actual function. Could you give a some idea? Thanks
@adrienlogut348214 күн бұрын
Answered you on Discord too but for the other I'll post it there: If you add a priority value to mesh and Id, you'll just need to add that priority value as a weight attribute on the match and set attributes (like in the first video)
@soonhosong271116 күн бұрын
This is exactly I was looking for. You are hero! Thanks!
@darman11717 күн бұрын
How do i make sure things dont spawn on top of eachother?
@adrienlogut348217 күн бұрын
You can check other videos, such as episode 2, for bounds and exclusions
@darman11717 күн бұрын
@@adrienlogut3482 cheers mate
@darman1172 күн бұрын
@@adrienlogut3482 hey sorry for all the questions how do i filter slope for pcg?
@alu541017 күн бұрын
Hi Adrien, Now I want to do MeshSampler Loop in PCG, but after I feed the data as your video in 5.4 New Features EP2, Mesh sampler tells me "only first data item will be used", How can I finish this loop, I don't want to use the Rayhit node, Mesh sampler can have more choice... thank you.
@alu541017 күн бұрын
Solved it... Just need to do another Loop...😅 and the Loop logic of PCG is very hard to understand... Lack of a clear cut direction to something like index and loop content as traditional programing language...
@adrienlogut348217 күн бұрын
That's unfortunately a big limitation of a graph approach for programming. The best way to do what you want is to partition the data, so that all points in a given data has the same mesh. Then loop on those data. You can use Get Attribute from point index, index 0 because you know all points have the same mesh.
@mingjyunhung665117 күн бұрын
Thanks for this good tutorial. Is there any way to further create an exclusive region (like volume or another spline region) inside the spline region?
@adrienlogut348217 күн бұрын
Yes of course, you can use another spline with the same sampling method and add that to the difference. Or another primitive and get it with Get Actor Data
@mingjyunhung665117 күн бұрын
@@adrienlogut3482 Thank you for the advice! I somehow used a volume sampler to filter out that area!
@adrienlogut348217 күн бұрын
That would work but it is very inefficient ;)
@joelschroder75797 күн бұрын
@@adrienlogut3482 Thanks for your great tutorials! How would you go about doing this? I am trying to use a difference node on two surfaces from spline before I send the surface into the recipe spawning loop, but the conversion returns a grayed out line. Debuging the difference looks correct, I have my original surface with a hole where the other surface is.
@mahmudhossain491719 күн бұрын
How can you spawn some meshes in order? Let's say I passed a TMAP with StaticMesh and Int32. StaticMesh stores SM and int32 stores its order. How can I use that to spawn in order?
@adrienlogut348218 күн бұрын
PCG doesn't support reading maps in the graph. Though if you want it to be in order from the array of meshes, you can use Copy Attributes. It will copy mesh 1 to point 1, mesh 2 to point 2 etc... Looping on the meshes.
@brianhicks451320 күн бұрын
My God I struggled through the 5.2 videos thinking that was all there was (despite significant changes between 5.2 and 5.4) and now.. I find this. Hahahaha
@MrGeek7620 күн бұрын
Hey, ty for this tutorial! I don't have anything else than "In" when I open the Input... What did i miss ? :(
@adrienlogut348220 күн бұрын
We deprecated the input pins, so you'll have to use Get Landscape Data and Get Actor Data for the equivalent :) Have a look to more recent tutorials!
@MrGeek7620 күн бұрын
@@adrienlogut3482 great! ty for your quick answer :) I'll definitely follow your serie for PCG
@linqingvs22 күн бұрын
hi,i follow this video create pcg_graph,why i use projection function always is invaild,it can't project points to landscapes (ue5.4.2)?🤔🤔🤔
@linqingvs21 күн бұрын
i get the correct projection replaced "World Ray hit Query" with "Get Landscape Data“.
@eligijuspranskunas350925 күн бұрын
wow
@herblewis625028 күн бұрын
Sad that this is already out of date.
@adrienlogut348228 күн бұрын
Living on the edge, no time to waste! Most of what is described here can be found in later videos, with the up to date way of doing it. You can check the Ep 1 and 2 about new features ;)
@melic-chazaryan2769Ай бұрын
I WONDER HOW CAN I IMAGINE ALL THIS AND COLLECT IT IN YOUR HEAD? HOW DO I FIND OUT ABOUT ALL OF THIS, WHAT DO YOU ADVICE?
@adrienlogut3482Ай бұрын
I'm a dev on the project ;)
@theuniverseupsidedownАй бұрын
Avesome. Thank you very much
@user-ci9vq2ce8pАй бұрын
How can normals be disabled? trees are weird on slopes.
@adrienlogut3482Ай бұрын
You can use a transform points with absolute rotation, or if you use the projection node, disable project rotations
@user-ci9vq2ce8p28 күн бұрын
@@adrienlogut3482It took me sometime to see that for both options it was a checkmark on the right panel of each node.. Thanks!
@CloroqxАй бұрын
I left a comment but for some reason it didn't show up during the stream. Is it possible that you can cover using PCG ISM + HLODs, specifically the approach from the end of the "Nanite for Artists" video that Epic released. Using World Partition HLOD layer to disallow Nanite on distant instances and reverting to LOD impostor rendering to reduce Nanite overdraw.
@adrienlogut3482Ай бұрын
I answered at the beginning! I'm not that knowledgeable in HLODs so I can't help much :(
@CloroqxАй бұрын
@@adrienlogut3482 ah, sorry. I must have missed it.
@gtdong7255Ай бұрын
👍👍
@AkitaMixАй бұрын
Amazing! Thank youuuuu
@surprenantzacАй бұрын
Can you do a video on Iteration Loop Body? I can't find any information about why / how to use it.
@adrienlogut3482Ай бұрын
It's not much different than the point loop body: kzfaq.info/get/bejne/Y7CembRlr92qhH0.htmlsi=U_bUuGGgpgBautZ3 You have to query the data yourself though.
@melic-chazaryan2769Ай бұрын
Please tell me, these PSG cubes are tied to the slope of the landscape, parallel to the plane, and the tied trees stand stably to the plane of the slope (trees on the slope do not rise directly with the slope), but at 5.3 it was vertical. HOW to make trees stand vertically on a slope?
@adrienlogut3482Ай бұрын
It has not changed between versions, if you need them to stay vertical, add a transform point with an absolute rotation of 0,0 on XY (and potentially any number for Z for random rotation)
@melic-chazaryan2769Ай бұрын
@@adrienlogut3482 Thanks a lot
@user-vg8zu3jw3rАй бұрын
Projectpointonlandscape node missing in ue5.2 please help?
@adrienlogut3482Ай бұрын
Useful tip: try to type what you want to do in the node list ;) You'll find the Projection node !
@user-fm9zo5le2vАй бұрын
Can you control the number of points somehow?
@adrienlogut3482Ай бұрын
If you use the surface sampler you can play with the extents, looseness and points per squared meter
@user-fm9zo5le2vАй бұрын
@@adrienlogut3482 Thanks. But I need an exact number of points. This number will be passed from the parent blueprint. Mesh Sampler allows that through Poisson sampling: you can set max points. Don't know why they didn't put that in Surface Sampler too.
@adrienlogut3482Ай бұрын
Nothing prevents you to filter the points afterwards so you extract just a specific number of points. I have another video to select a exact number of points with a Blueprint node. And we implemented the native version of it, just that it didn't make the cut for 5.4. By essence the surface sampler is a stochastic sample, so that's why there is no fine control like that on the node. Also being a multi threaded node + the fact that you can have a complex bounding Shape makes it impractical to have a max number of points.
@user-fm9zo5le2vАй бұрын
@@adrienlogut3482 Yeah, but what if I have thousands of PCG volumes in the level? Will there be performance issues to do all those calculations on each, just to get a specific number of points? Seems like an expensive work-around.
@adrienlogut3482Ай бұрын
Indeed but that always depends on what you want to do and when it happens. If it's generating offline, it matters less than if it generates at runtime. You can also optimize it yourself to play with the points per squared meter depending on the size of the volume. But it's also not always a good idea to over optimize at the beginning, so try it out and see if the performance is good enough for you.
@alyxlarsen2144Ай бұрын
Thank You!!!!! I have been looking for this for hours!!
@SimplifyUEАй бұрын
Hi Adrien, thank you so much for doing the videos! It just means a lot to have learning resources from someone who has worked on the system. 5.4 was a breakthrough for PCG graphs IMO, arrays and data assets are just a game changer. You guys on the PCG team are amazing
@noonlolАй бұрын
0 HD *TAGFSdiu THANK YOU
@user-fm9zo5le2vАй бұрын
Thanks for the tutorials, but they should be made by someone who speaks english properly. I can barely understand half of it. Also more details would be needed.
@adrienlogut3482Ай бұрын
Sorry you have trouble understanding me, subtitles are available to assist you on that front. More details would be needed to understand which details would have been useful for you.
@user-fm9zo5le2vАй бұрын
@@adrienlogut3482 I assume going over all nodes and properties in the detail panel would be too much. But, for example, would be very useful a tutorial on how to spawn stuff on certain regions of a mesh, in the case of mesh painting. I haven't seen a tutorial on that.
@adrienlogut3482Ай бұрын
@@user-fm9zo5le2v So it's actually not the focus of this video ;) You might want to enable the PCG Geometry Script Interop Plugin and use the Mesh Sampler to sample points on a Mesh. It should extract the colors in the Color Attribute of your points (seems to only work on non-Nanite meshes for some reason). Then you can do some logic on that. If you are talking about Landscape painting, you can use Weighted Blend Layers to have multiple layers, and the sampling on the landscape should automatically add attributes for each layer, allowing you to do some filtering to spawn what you want.
@user-fm9zo5le2vАй бұрын
@@adrienlogut3482 Thanks for that. But for some reason all Color attributes values are 1. What I'm trying to do is spawn points only on a certain region of the mesh, that I can define somehow. How would you go about doing that?
@soonhosong2711Ай бұрын
This is so incredible! I was making some PCG and watching some KZfaq tutorial and UE version was 5.2 in the tutorial and I was using 5.4 and it doesn't works because of version updated. but this tutorial helped me to sole the problem. Thank you so so so much!
@christopherarendt3531Ай бұрын
Thanks for the vid. Have you by chance figured out how to get the location to be accurate for the spawner? I have found that the points do not match the terrain correctly; I think it must be technically feasible. My post in UE forums "How can we get accurate landscape position for PCG?" has more detail (I tried linking here but I think it triggers deleting my comment)
@adrienlogut3482Ай бұрын
I'll answer it there ;)
@christopherarendt3531Ай бұрын
@@adrienlogut3482 looking forward to it! I'm stumped. I tried line tracing down to the floor too..
@mihaiwilsonАй бұрын
Thanks so much, this is a great improvement! I'm wondering if you have any recommendation on how one might do this, but where each weighted mesh is pulled randomly from an array of its own kind (eg, when a tree is selected - it pulls randomly from an array of that type of tree)?
@adrienlogut3482Ай бұрын
You could extend the data asset with a weight for each mesh. Then you can provide this weight attribute in the match and set settings :)
@mihaiwilsonАй бұрын
@@adrienlogut3482 Thanks, I but I'm thinking more of a per-array weight as opposed to a per-mesh weight, but I don't see how/if the data could flow? Imagine if the mesh variable in the struct is an array instead of a single mesh.
@adrienlogut3482Ай бұрын
The selection could be first a weighted selection for a type of mesh. Here that would be Tree, Rock and Grass. Then when the selection is done, you chain another match and set with the array of meshes for a given mesh.
@mihaiwilsonАй бұрын
@@adrienlogut3482 Oh interesting, thanks I will give that a shot!
@mihaiwilsonАй бұрын
Man, you're a lifesaver. Thanks so much.
@mihaiwilsonАй бұрын
Thanks so much, didn't realize these features had been added - super useful.
@astralstormgamestudios1259Ай бұрын
Is there any optimizations gains to do it like that? Instead of the "old" way to use static mesh spawner and put the meshes there?
@adrienlogut3482Ай бұрын
No it's the same cost (perhaps a little costlier because of the attribute indirection) It's just the basics to create generic graphs. If you don't need to have generic stuff, you can stick with the hard-coded way.
@astralstormgamestudios1259Ай бұрын
@@adrienlogut3482 Thanks, you nailed the answer ✌️
@user-nb3kg9hk8xАй бұрын
5.4 World Ray Hit Query Override Default Params => Set Ray Parameters
@kmtsvetanovАй бұрын
I have a Question: I have Spaws Actors and Static Mest Spawners in my PCG. But That makes the game lag. How to optimize it? I'm spawning teren and AI.
@michalbusik8621Ай бұрын
Hello, when i open my PCG graphs i cant extend the input node and i dont see other options like landscape etc.... Can you please help me with it?
@cmdrschime4840Ай бұрын
Had the same problem but i notice in video its PCG Version 1 and we have Version 2 , that means you cant extend but on the right side you can find option to setup (small plus sign and drop down menu, choose Landscape) .. Thas all .. 😊
@michalbusik8621Ай бұрын
@@cmdrschime4840 oh i see. Thank you very múch!
@adrienlogut3482Ай бұрын
We deprecated the default input pins. You have to use the "Get X Data Nodes" such as Get Landscape Data. You can have a look a later videos for an up to date UI/UX usage.
@cyj43002 ай бұрын
Amazing video! I learned a lot. But I want to kown how to deal with the grass's collision?
@adrienlogut34822 ай бұрын
Haha yeah for that part unfortunately we can't override the collision preset for the mesh descriptor. You can add another boolean in the level definition for "Collision". Then before spawning, do a branch on the collision parameter, and have 2 static mesh spawner. One with collision and the other without
@cyj43002 ай бұрын
@@adrienlogut3482 I got it! Thank you very much!🥰
@MrNsyi2 ай бұрын
Thank you Adrien for another very cool video. It's difficult to find updated information or documentation about PCG. One question: is there a way to set a Component Tags with a Static Mesh Spawner or Spawn Actor ? so we can do several post generating processing. Thank you !
@adrienlogut34822 ай бұрын
Happy to help! Looking at the code, you can't do it with Static Meshes, but you can with Spawn actor, look for `TagsToAddOnActors`.
@MrNsyi2 ай бұрын
@@adrienlogut3482 I hope they will expose this parameter on Meshes too :)
@adrienlogut34822 ай бұрын
It's slightly more complex with Static Meshes because of Instanced Static Mesh Components are shared, all instances of the same mesh descriptor will be under the same component.
@MrNsyi2 ай бұрын
@@adrienlogut3482 you are right, I should have say "I hope they will expose it for the ISMCs :)" I find a solution using the Get Generated Graph Output.
@cyj43002 ай бұрын
Thanks for this great video! but I want to know if I added new variables in the Structure, how to get it in the PCG Graph?
@adrienlogut34822 ай бұрын
Might want to have a look to the next video in the series ;)
@cyj43002 ай бұрын
@@adrienlogut3482 Thank you ! I got it !
@zerobuiId2 ай бұрын
guys if your getting stuck on input and you are using unity 5.4 and beyond you need get a new input called(lanscape data) right click and connect it to the surface sampler. this took my hours to fix lolll!
@user-nb3kg9hk8x2 ай бұрын
5.4 버전에서는 attribute operation => copy Attribute Point Sampler => Select Points Density Noise => Attribute Noise Maths add => add 영상 보는 시간보다 바뀐노드 찾는데 오래걸렸어요
@bimordial2 ай бұрын
This is amazing, thanks! Any chance you can explain how you would set up the attributes for an array under UE5.4?
@adrienlogut34822 ай бұрын
You unfortunately can't use arrays as attributes, attributes are only base types. You can though create an attribute set with multiple entries. You can see that in this video I add an entry for the attribute set. If you want multiple values, you can add multiple entries!
@shotgun1995hot2 ай бұрын
Kinda new to PCG, but wanted to know if I can use PCG with the world partition system. Have you explored PCG with the world partition in the previous videos.
@adrienlogut34822 ай бұрын
Yes you can use it with the WP system. If you set the component to IsPartitioned it will dispatch the generation to a grid of actors. I have not yet made a video on that though, should come at some point with also hints on hierarchical generation and runtime generation
@shotgun1995hot2 ай бұрын
@@adrienlogut3482 I will try this
@O_Obsidious2 ай бұрын
Is there a way to incorporate forms of Triangulation methods using these nodes? I'd like to generate fully random dungeons using PCG but im having a real hard time lol
@adrienlogut34822 ай бұрын
You can implement pretty much any logic either in BP or C++
@DevGods2 ай бұрын
This helped me more than you know! I’m that much closer to understanding PCG in the same way I do Houdini!