I posted this to the allegorithmic forums, but figured it was worth cross posting here too.
I’ve set up an animated substance (raindrops on a water surface).
It’s working perfectly in Substance player. Little bit too broken up at the moment, but looking promising, and animates nicely.
I’d like the same behaviour in UE4 - but there is very little information on how to animate the $time variable using blueprints.
I have been referring to the only two tutorials I can find:
Allegorithmic forum post
Youtube tutorial
The substance imports just fine into Unreal:
I can change the exposed variables as expected, with the substance updating in the viewport:
I then tried setting up the blueprint, as described in the referenced tutorials:
Attempt 1:
Attempt 2:
Attempt 3:
None of these do ANYTHING when the level is played.
Can anyone spot what I did wrong, or suggest some other things to try?
Many thanks
Hi,
Even though Substance allows for (near) real-time animation at run-time, this kind of effect done in the material space would be cheaper on both the CPU - rendering a substance has a CPU cost - and the GPU - transferring the updated textures to the GPU has a cost too.
Also, in your case, you need to explicitly ask the Substance engine to render the textures, this is achieved with the “Sync / Async Rendering” node, as shown in this video tutorial : https://www.youtube.com/watch?v=9OZr6hjDs4w&feature=youtu.be&t=1082
Best regards,
Antoine
Yeah this kind of effect can be done in a Material, and it’ll probably have a lot less rendering overhead. I have a ‘Surface Ripple’ material function laying around in a package somewhere that I put together a few months ago… will see if I can dig it out.
Thanks for the info / advice!
This is more of a technical exercise for my own entertainment - being optimized / fully realtime is not an overriding requirement.
EDIT: Got it all working. For anyone trying to do the same thing, here’s the blueprint that worked:
@TheJamsh: I would love a ‘ripple’ material if you have one handy. It would complete my scene, but not my technical challenge of doing everything possible in ‘substance’ as a learning exercise.
Cheers,
AJ
calling sync rendering on tick in insanely cost inefficient, and async just produces a broken texture (turns grey). How can you do this without blocking?