You Should Start Using Data Assets in PCG | UE 5.4

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

Procedural Minds

Procedural Minds

Күн бұрын

Пікірлер: 67
@土星猫
@土星猫 7 ай бұрын
This is saving me years of my life, I absolutely love this
@Procedural_Minds
@Procedural_Minds 7 ай бұрын
Haha. Glad you found it helpful. :)
@TheJackalxy
@TheJackalxy 7 ай бұрын
12:54 I think the error is because quaternion rotator are four quad vector array (x,y,z,w), while the rotator used in the data assets is a euler rotator composed by 3 vector. If i remember correctly even though quaternion are present in c++ they are not represented in blueprint
@Procedural_Minds
@Procedural_Minds 7 ай бұрын
Huh, that's interesting. But when I sample the information with the A hotkey, it shows Rotation.Yaw / Roll / Pitch. There is no 4th. So it's odd that it's trying to get a 4 digit version. Possibly a bug. Either way got to figure out a good workaround.
@Nialonh
@Nialonh 6 ай бұрын
@@Procedural_Minds The reason for that is that Quats are not really human readable, so they should always be translated to XYZ when displayed. The reason they are using Quats is that it avoids a locking problem that exists in XYZ(Euler Angles). Great video:)
@mihaiwilson
@mihaiwilson 6 ай бұрын
Fantastic, love the clear straightforward approach.
@Procedural_Minds
@Procedural_Minds 6 ай бұрын
Thank you, I'm glad you liked it. :)
@mihaiwilson
@mihaiwilson 6 ай бұрын
@@Procedural_Minds Seriously. Nearly lost my mind trying to do this kind of thing using loops. Your method has got things moving!
@PotatoClips
@PotatoClips 3 ай бұрын
I believe you need a combine rotator node instead of add. It's similar in BPs because of the way quaternion math works. Adding floats together works, but adding a rotator to another rotator does a lot of behind the scenes math that doesn't translate to what you would expect. Combine rotators adds each axis angle individually and then recombines into a resulting rotator.
@Procedural_Minds
@Procedural_Minds 3 ай бұрын
Interesting, good to know. Thanks!
@jbach
@jbach Күн бұрын
Thanks for this. Very much needed.
@Procedural_Minds
@Procedural_Minds Күн бұрын
You're welcome! :)
@jbach
@jbach 15 сағат бұрын
@@Procedural_Minds Especially achieving randomness without loops. This also seems to simplify randomness so instead of specifying min and max values, you just set one. If the value is leass than 1.0 it becomes a min value (and max =1.0). And if you set a vlaue greater than 1.0 then it becomes the max (and 1.0 is the new min). Am I correct? One thing, how would you get random offsets so your points aren't on a grid? Just use a TransformPoints?
@Bizob2010
@Bizob2010 4 ай бұрын
14:06 I wonder if it's rather that you're passing it a rotation vector as opposed to just the yaw portion?
@Procedural_Minds
@Procedural_Minds 4 ай бұрын
From what people have been saying, under the hood it's stored differently than it is on the user side. But if I did per axis that could possibly work.
@alicechaix7936
@alicechaix7936 20 күн бұрын
Thanks for the help ! The explanation is very clear ! ^^
@Procedural_Minds
@Procedural_Minds 20 күн бұрын
Thanks, glad it helped! :)
@carlospastor127
@carlospastor127 7 ай бұрын
Hello! Great video, thank you for teaching us about pcg, there is very little information even on the subject, one question, what is the difference between doing this method to generate a forest instantiating our tree variations in the range of the spline and doing it with a pcg and a spawn static mesh and add our trees to them and use a layer of the landcape so that it only makes them appear there?
@Procedural_Minds
@Procedural_Minds 7 ай бұрын
This doesn't require a landscape at all. This is entirely independent. You can use it for trees, or you can use it for debris, or houses, or whatever else you'd like.
@carlospastor127
@carlospastor127 7 ай бұрын
@@Procedural_Minds Ahhh true!! thnx u so much!!
@SellusionStar
@SellusionStar 7 ай бұрын
Wow, what a convoluted way of doing it, epic... Thank you for figuring that out!!
@Procedural_Minds
@Procedural_Minds 7 ай бұрын
Wait till the next video when I show how you do loops in PCG. It makes this look straight forward. lol
@SellusionStar
@SellusionStar 7 ай бұрын
@@Procedural_Minds haha :D you had my interest, now you have my attention! thanks! great channel content by the way
@Cloroqx
@Cloroqx 4 ай бұрын
Just a note: The original Biome plugin Data Asset uses Soft Pointers for the StaticMeshes. This ensures that Unreal doesn't load all the meshes added to your Data Asset into memory unless PCG specifically calls for them to be loaded. While this might not make much of a difference when you have only a few meshes, it will become significant as you add more assets.
@Procedural_Minds
@Procedural_Minds 4 ай бұрын
That is interesting. I didn't notice this in the biome setup. I'll check it out. Thanks!
@Cloroqx
@Cloroqx 4 ай бұрын
@@Procedural_Minds And I think the new Proxy node might be the key to directly setting rotation.
@bramcardondbd
@bramcardondbd 2 ай бұрын
Exactly what I needed! However, whenever I compile the Primary Data Asset (PDA) for new variables, it removes the Data Asset from the parameters inside the PCG Graph Settings. Any ideas on how to prevent that from happening?
@Procedural_Minds
@Procedural_Minds 2 ай бұрын
You can set the one in the PCG graph to a soft object reference instead, then it won't clear out. But it is technically more expensive and meant for other use cases. If you're using it just to generate and not doing any runtime stuff, it should be fine.
@hurin1576
@hurin1576 20 күн бұрын
Thanks! u're my hero
@Procedural_Minds
@Procedural_Minds 20 күн бұрын
Hahaha. Thanks! :)
@Josh_Alfaro
@Josh_Alfaro 4 ай бұрын
Question, so I’ve been dissecting Electric Dreams lately, and I couldn’t help but notice the similarities, they used these functionalities a ton. Do they use data assets to build their assemblies? Would love a tutorial going through it!
@Procedural_Minds
@Procedural_Minds 4 ай бұрын
Unfortunately it's been quite some time since I've looked at the Electric Dreams demo. But if i recall it's 5.2 or 5.3. If that's the case then it couldn't be Data Asset driven as that was introduced in 5.4.
@Josh_Alfaro
@Josh_Alfaro 4 ай бұрын
@@Procedural_Mindsyou’re right, looks like a data table actually, not data asset
@SegundoFernandez-f8x
@SegundoFernandez-f8x 6 ай бұрын
Great content !! What if I want to use this method to spawn BPs tho ?
@Procedural_Minds
@Procedural_Minds 6 ай бұрын
Then just swap out the Static Mesh Actor Spawn Actor and plug your BP into it. :)
@SegundoFernandez-f8x
@SegundoFernandez-f8x 6 ай бұрын
@@Procedural_Minds Wow Thank You so much !! Tried to figure it out the hard way :)
@Josh_Alfaro
@Josh_Alfaro 7 ай бұрын
Great stuff. I am admittedly a noob dev. What are some of the advantages of using this rather than just a spline sampler? Is it the bool and other variables that would let you spawn things with more complicated logic? Probably a stupid question but I don’t immediately see the benefit
@Procedural_Minds
@Procedural_Minds 7 ай бұрын
Spline sampler is just how you generate the points, data assets store all the information you can use for those points you generate.
@Josh_Alfaro
@Josh_Alfaro 7 ай бұрын
⁠@@Procedural_Mindsbut you can do all the same things with a transform points node no?
@Procedural_Minds
@Procedural_Minds 7 ай бұрын
@@Josh_Alfaro This isn't about showing how to transform your points, it's about showing how you can now store all the information in a data asset and easily swap them out for different variations using the same base.
@SarahLenker-fz1fm
@SarahLenker-fz1fm Ай бұрын
Any idea how to set the Data Asset from a parent blueprint? I don't want my artists setting the data asset directly, I'd rather give them an Enum on the blueprint and set it inside
@Procedural_Minds
@Procedural_Minds Ай бұрын
Then data asset might not be the best use case for you. I don't believe you can do it dynamically. The main use case of data assets is to be able to easily swap different premade configurations.
@tallere1781
@tallere1781 2 ай бұрын
Hi is it possible to read data from a structure instead of a data asset in pcg because i want to change values in a struct format on the pcg
@Procedural_Minds
@Procedural_Minds 2 ай бұрын
I don't believe it is possible, but once you make them attributes in PCG you can modify them any way you want separately.
@tallere1781
@tallere1781 2 ай бұрын
@@Procedural_Minds Oh okay Because right now i have a dataset with multiple structs that are indexed that has a lot of information and i just wondered if i could eliminate the step to make a dataset and just change the struct in the PCG area but thanks anyways!
@Procedural_Minds
@Procedural_Minds 2 ай бұрын
@@tallere1781 Since replying I actually took at the 5.5 roadmap. You can edit the Data Assets in PCG now. So you can probably use that to get the result you want. Assuming you can update to 5.5 once it releases. :)
@astralstormgamestudios1259
@astralstormgamestudios1259 6 ай бұрын
I kind of like the "old" way much more .. is there any fps gains in doing it that way?
@Procedural_Minds
@Procedural_Minds 6 ай бұрын
What do you mean by the old way? Using grass landscape nodes and foliage?
@astralstormgamestudios1259
@astralstormgamestudios1259 6 ай бұрын
@@Procedural_Minds bad grammar from my side , I understand the difference between using data table and the hard coded way, I dont really need to be able to switch out any assets quickly
@rabellogp
@rabellogp 7 ай бұрын
I spent so much time trying to figure out a way to do something similar to this with what we had in 5.3... Unfortunately I still can't migrate to 5.4 in some of the projects I'm working on with PCG.
@Procedural_Minds
@Procedural_Minds 7 ай бұрын
Yeah I've wanted this myself since PCG came out. Hopefully you'll be able to update to it soon or find good workarounds.
@jochenfong3056
@jochenfong3056 Ай бұрын
why not use save graph instance? i think it better than dataAsset
@Procedural_Minds
@Procedural_Minds Ай бұрын
They are for different use cases. I can preconfigure data assets to be certain setups that I want and swap between them as simply as dragging and dropping using only one graph.
@tehf00n
@tehf00n 7 ай бұрын
Just to add, if you weren't using Data Assets previously then you need to learn Epic's Best Practices. If Epic do it, you should do it. Obviously there is more than one way to skin a cat in game dev, but in my 14 years of experience I've learned that what you think is right is most likely wrong unless Epic did it first. They spend time, money and human resources on figuring out the best method before it even lands in preview. And in the case of PCG Biome's setup, it saves a lot of time switching things around to test if you use data assets.
@Procedural_Minds
@Procedural_Minds 7 ай бұрын
I'm using data assets for my game. They weren't available for PCG prior to this update.
@tehf00n
@tehf00n 7 ай бұрын
@@Procedural_Minds I know, although you could implement them, the Biome setup has added that method. I meant in general though, not you specifically. Most people I see on a daily basis aren't doing 10% of best practice and Data Assets have been one of the methods Epic has been staunch on implementing in their system. I'm guilty of skipping on best practice myself sometimes when I'm in a rush or prototyping. But I tend to iterate back and do what Epic does.
@kryogenicgames
@kryogenicgames 7 ай бұрын
very helpful ;)
@Procedural_Minds
@Procedural_Minds 7 ай бұрын
Thank you! :)
@Ionut-l7c
@Ionut-l7c 5 ай бұрын
if errors in the graph still don't disappear, restart engine; worked for me
@Procedural_Minds
@Procedural_Minds 5 ай бұрын
That's a great tip, thanks for sharing! :)
@Ionut-l7c
@Ionut-l7c 5 ай бұрын
@@Procedural_Minds happy to help. btw is there a way to place meshes at random location on level?
@Procedural_Minds
@Procedural_Minds 5 ай бұрын
@@Ionut-l7c You can do it with just blueprints or have your bounds of the PCG graph cover the full level if you're using world partition for example.
@Ionut-l7c
@Ionut-l7c 5 ай бұрын
@@Procedural_Minds thanks alot!
@bernhardhelbling3412
@bernhardhelbling3412 4 ай бұрын
Sorry - but why so complicate. There is almost no advantage of the "data assets system" ..... there are other less complicate systems.
@Procedural_Minds
@Procedural_Minds 4 ай бұрын
What other system is there for quickly swapping full meshes and settings? I'd love to learn.
@R4venshore
@R4venshore 6 ай бұрын
Honestly, as a hardcore Unity dev I expected a lot more from UE5. The PCG are full of errors and buggy behavior, a lot of it scream to be improved so much. In the time I spent trying to get this going I could've written a PCG with splines in C# 5 times that still uses Scriptable Objects for data assets and dynamic generation...
@Procedural_Minds
@Procedural_Minds 6 ай бұрын
This is a new and beta feature that isn't ready for production. So I wouldn't use this as the benchmark for completed and fully implemented Unreal features.
PCG Loops Are Unnecessarily Complex. Lets Fix That!
14:56
Procedural Minds
Рет қаралды 2,4 М.
Get Started With PCG 5.4 By Creating a Full Building  | UE 5.4 P1
43:26
Procedural Minds
Рет қаралды 9 М.
The Best Band 😅 #toshleh #viralshort
00:11
Toshleh
Рет қаралды 22 МЛН
This New Unreal Engine 5.5 PCG Feature is a Game Changer
27:40
Procedural Minds
Рет қаралды 6 М.
Using Physics to Improve your Shots in Unreal Engine 5
11:35
William Faucher
Рет қаралды 316 М.
PCG Grammar is Here And It's AMAZING
25:04
Procedural Minds
Рет қаралды 8 М.
Unreal 5.5 - Pathfinding With PCG (New Features)
23:12
renderBucket
Рет қаралды 12 М.
Spline Meshes Are Now in PCG, So I Made a Procedural Rope Bridge
22:07
Procedural Minds
Рет қаралды 2,2 М.
Unreal Engine 5.4 PCG - New Features Ep 1 - Array of meshes
14:39
Adrien Logut
Рет қаралды 11 М.
Easily Sculpt and Deform Landscapes With PCG
24:58
Procedural Minds
Рет қаралды 7 М.
Make Optimized PCG GRASS in Unreal Engine 5 (Reusable Graph)
30:48
How to create Modular and Scalable UI systems in Unreal Engine
19:15