S. Krezel - Dynamic Grass System

[QUOTE=daveREspawn;623514]
Nice work, quick question; How easy will it be to add callbacks for when grass is cut down? (For example, increase player health 10% every time they harvest from a particular type of grass)
[/QUOTE]

The special interactive foliage component has a ‘Cut’ function that takes instance index and Z-scale of cutting (so you can e.g. ‘cut’ half by setting it to 0.5 or cut near ground by setting to 0.1). Example grass cutter actor takes all instances in specified radius and performs the ‘Cut’ function on them, individually for each foliage type - so you can definitely add some checks there, e.g. if you cut ‘FlowerOfHealth’ foliage type, then increase your health. You can even add variable & store health amount in component separately for every foliage type, but of course the way of expanding the system is all up to you :slight_smile:

[QUOTE=hippowombat;623782]
Incredible work, I look forward to seeing this on the marketplace, no doubt it’ll be accepted!

Cheers!
[/QUOTE]

Thank you! :slight_smile:

[QUOTE=Wrekk;623887]
This… this is amazing. I’ll definitely be buying this! Would the impulse etc be compatible with your dynamic tree generator?
[/QUOTE]

Impulse actor has different logic there, specific to the Dynamic Grass System. By default, impulse effect is performed by spawning ‘Impulse’ actor e.g. by a bomb. If you have both the tree & grass system, you can just spawn both of these Impulse actors, one for grass and one for trees and it will work.

[QUOTE=Sitrec;624032]
This looks fantastic. Is there any multiplayer support included? How is deformation stored?
[/QUOTE]

Thanks! I don’t have multiplayer experience, so nothing out of the box yet - I tried to create the logic in clean & understandable way to make it expandable-friendly, but I don’t know how hard it would be to add network replication. Temporary material deformation is stored ofc in GPU, and the rest (like the bend-away effect that leaves a ‘trail’ behind player) is stored directly in hierarchical instanced static meshes of foliage components. Deformation is performed by optimized (auto-chunked foliage areas, auto-optimized update interval, etc.) *UpdateInstanceTransform *function. So every instance transform can be obtained via *GetInstanceTransform *function of specified foliage component.