I wanted to share a quick run-through of these Niagara Crawlies from Houdini to UE4 using vertex animation textures. I had a lot of fun making them so here it goes.
Job quest: Cinematics with a lot of crawlies that emphasize uncanny, dark energy.
say no more
Step 1 - I need a crawly. Made a quick procedural setup in Houdini, picked a good look and animated it using Labs Sine Wave SOP. This animation could have been replicated in-game but I wanted to check out how VAT plays out in Niagara.
Step 2 - Exported it as Soft Vertex animation and put it into UE4 (4.25). Added 0.7 on metallic for that eel feel.
Perfect, I was already happy with the spikes but I wanted to see how far I can push them. As it turned out, not much.
Luckily the non-spikey version looked universal enough so I added it to my Library for later use.
Step 3- Back to the main goal. Niagara System. I used only one dynamic parameter for speed. Added a bit of randomness to: Speed, Scale, Initial rotation, Spawn rate and Velocity.
Additional tweaks: Upward Velocity, Scaling them in and out with a curve to avoid the popcorn effect and keep the sleek uncanny energy uninterrupted.
Step 4- Once they felt really good with the environment it was time to get the camera out and find some good angles.
Thank you very much for checking this out. First post here and I am nervous.
This is the kinda’ content I’m here for, thanks much! Did you have any reference or documentation you followed to get the Houdini VAT into UE4? Any ‘gotchas’ for getting things to work right?
Cheers!
For sure, Luiz Kruel explained it amazingly here while he was at SideFX. Andreas Glad tutorial on Paintsplat helped a bunch as well.
Process got easier in 4.25 since the Houdini Engine comes with the materials set up for you. The framerate and bbox info is stored in the .json file you get when exporting with LabsVertexAnimationTextures node.
Often gotchas when importing:
On fbx model 1. uncheck Remove Degenerates.
2. check Use Full Precision UVs
On the texture 1. Compression Settings set to VectorDisplacementMap
2. Filter set to Nearest
I thiink that is the gist of it! Will update if anything else pops out
Love the look and it’s awesome you’re learning new methods, but serious question here, was the goal to be able to use VATs in Niagara or to get a mesh worm to wiggle? Only reason I ask is it’s pretty easy to this particular motion with World Position Offsets and a Sine Wave in the material set and for a method like this, you might have more control in the future with material properties.
Thank you very much.
Lazy goal was to try the idea out quickly and test VATs in Niagara but I absolutely agree.
Is something like this what you had in mind? I’m sure there are better ways to go about this setup but this was my crack at it.
That’s a good start setup, but don’t forget your Constant Bias Scale. Right now you have the WPO only scaling in the positive world space. You’d use a constant bias scale to allow the sine to travel in both the positive and negative coordinates. Another method you could use, while it its more expensive, is to use a Sine node, as that travels in the POS and NEG coordinate Space.
Check out this link for more info about using a Sine Wave method.
Also, taking a second look at your material and I see that you are using a sine, but I was noticing you have some “flat” looking areas which made me think that you had been only scaling into the POS coordinate space.