Optimization: From Prototype To Final PCG Graph.

preview_player
Показать описание
From Prototype to Final: Optimizing Unreal Engine PCG for a Concert Hall Seating Layout

In this video, we take you step-by-step through the process of evolving a basic procedural generation (PCG) graph in Unreal Engine into a fully optimized and finalized version used to design a realistic concert hall seating arrangement.

🔧 What you’ll learn:

How to structure your initial PCG prototype
Identifying and fixing inefficiencies in your PCG graph
Applying optimization techniques for performance and flexibility
Adjusting graph logic to handle real-world architectural layouts

Chapters:
00:00 Demo graphs
03:53 Create Manual Loops Graph
20:40 Add seat placement and orientation adjusments
42:30 Profiling the graphs
49:50 Create Single Loop graph
55:00 Final Thoughts

Join this channel to get access to perks:

#ue5 #unrealengine #unrealengine5 #gamedevelopment #gamedev
Рекомендации по теме
Комментарии
Автор

Really appreciate the deep dive into optimization techniques; it's often overlooked but critical for large-scale PCG. A video exploring how to dynamically adjust PCG graphs based on performance metrics in-game would be amazing!

bonny-ze
Автор

For the viewers Ill append alternative ways of solving similar problems to have in mind.

- You may want to code HLSL node yourself or ask AI to code it if performance is paramount while maintaining some parameterization. HLSL node is UE PCG Feature now.

- Rows of seats can be represented by a Spline. Spread points over those with Spline Sampler. PCGEx UE plugin has nice Spline Sampler utilities - check PCGExExampleProject. Its called Path in its ecosystem. To make seats offset placement every odd row you may want to Shrink Path a little before sampling every odd row.
Making Splines with Isolines UE feature for example if flexibility matters. Or just make a few circles and cut them into segments.

Rotation can also probably be done with some higher-level tools. Rotate to a single points in space for all the chairs. Or rotate to a nearest point of some Spline, Surface or Mesh. Or rotate againt Normale from a Surface that hosts Points.

Just to have in mind.

ilitvinov
Автор

Hi I have also an idea for a video - if this possible at all as I couldn't figure it out :)
If I want a Blueprint with a static mesh which gets sampled but I want to control the sampled areas via a texture (Black and White mask, e.g. think of a rock with grass patches) which scales and moves according to the mesh transformation, is there a way to do it? I managed to get the texture data inside a PCG graph translated to points but not to map it to the corresponding mesh.)

danielbalzer
Автор

If anyone is having weird issues with the extra added seats on both sides make sure to check the comments at 19th min

PsyanticY
Автор

I have been looking for Performance/optimization information on PCG and finding nothing. This video is exactly what I've been looking for, and presented very well. Another exelent video!
Speaking of performance, video suggestion for you. If I have a long spline making a PCG mesh in an open world (a long road filled with props for example), can you think of a good way to optimize that for streaming to get the meshes into the streaming cells? Geometry script to cut up the mesh after a Clear PCG Link? Something to break the spline into smaller, individual streaming block sized splines? Spawn actors instead of instances and then auto generate a BPP to create the instances to each streaming sized grid? Somehting else?
I'm curious of your take on that senario. Either way, any video you make, I'm here for it! I learn so much from each and every video you make.

tchiocchio
Автор

It's always great to see what you are doing with PCG and your videos help (at least a bit) to understand the PCG framework and its nodes.
However, I was a bit irritated when you were setting up the AddSeatsTutorial graph because you were talking about setting up the first row and the end row, but for me it looks more like you were setting up the sides (left and right) of each row aka defining how many seats were added additionally to each side of a row with every following row. Is this correct?

manollobango
welcome to shbcf.ru