June 21, 2018 18:22:31
This thread is for the legacy Houdini Niagara plugin.
Please refer to this thread for all future updates.Houdini Niagara Plugin Unreal Engine 4.25 and beyond.
We're getting closer to an official release of the Houdini plugin for Niagara. I'd love to get some feedback on the tools and suggestions for improvements. I'll use this thread to post example files and videos for anyone interested in testing this stuff out.
You will need to download the latest gamedev tools to access the extra nodes in Houdini.
The plugin comes with the latest preview release of UE4 - 4.20 preview 3https://vimeo.com/276129245/d0d180d953
] - This quick start video will get you setup and ready to go with the more involved stuff.https://vimeo.com/276145729/ad5f1dc611
] - There are currently 5 content examples available with the plugin. This video will give you a run down of what's going on.https://vimeo.com/276129739/5aa8e05a88
] - Niagara ROP walkthrough.
I've attached 2 files. niagara_examples.hip includes the setups used in the content examples.
niagara_destruction_example.hip is a basic rbd setup using some gamedev tools to simplify the rbd workflow
June 25, 2018 12:11:34
Hi folks! Just a quick note. Change your file extension to hcsv instead of csv or you'll get a window popping up at import time in ue4 asking what kind of data table the file is.
June 27, 2018 02:03:11
I had a look at the HoudiniCSV.cpp file for supported fields:
P, Px, X, pos
And proceeded to export a cube with A (alpha) attrib to it. But the resulting CSV has no A field:
0,“(0.5, -0.5, 0.5)”
1,“(-0.5, -0.5, 0.5)”
2,“(0.5, 0.5, 0.5)”
3,“(-0.5, 0.5, 0.5)”
4,“(-0.5, -0.5, -0.5)”
5,“(0.5, -0.5, -0.5)”
6,“(-0.5, 0.5, -0.5)”
7,“(0.5, 0.5, -0.5)”
I probably haven't done something obvious. Forgive me, I'm picking up Houdini again after a long hiatus, so I'm kind of rusty.
Update: Yep! I forgot to update the export node in the csv rop. *facepalm* Working now.
July 20, 2018 13:22:02
Hi folks. The production build of 4.20 is now out. There were a couple of changes that didn't make it into the build. If you set your emitters to local space you need to make changes to 3 modules:
We'll add these changes as soon as we can.HandleSpawnedHoudiniParticlesHandleSpawnedHoudiniParticlesByTypeUpdatePosFromHoudiniArray
July 24, 2018 07:00:34
edit - Just solved it. All I needed to do was change the condition to check the DataInstance.alive variable
I am having a few issues with the Generate Spawn Location Event when using the Spawned Houdini Particles by Type.
If I have more than one type exported in the csv file, the Generate Spawn Location Event looks as if it is creating locations for all types, even though its only creating particles for one type.
Would I need to make adjustments so that the event condition checked the Type variable as well?
Sept. 28, 2018 17:19:31
This is great! I'd suggest adding built-in support for mapping a rotation (rot) -> MeshOrientation
As well a default N -> MeshOrientation (there isn't a way to convert Particles.Normal to Particles.MeshOrientation right now without editing or making a new module because you seem to need “inputsAreNormalized” checked which isn't exposed in the UE4 Quat module.
I modified the houdini module and bit and works great now for my purposes but always nice to have this kind of thing built in for everyone
Thanks, keep up this awesome work!!!!
Nov. 16, 2018 15:50:07
I'm just starting to look at the content and plugin demos/videos. This is within UE4.21. However, the example map is blank (a black void with locators for particle systems). the individual particle systems do not spawn anything either in teh niagara UI or in a user created level. My other niagara systems are working.
I also see this error in the log. Is this a known issue? I am admittedly new, but i haven't even had a chance to generate a user error yet. Any tips in the right direction are much appreciated.
Image Not Found
Nov. 19, 2018 17:48:47
Looks like there are some gremlins with the Niagara plugin and 4.21. We're looking into it.
Dec. 21, 2018 14:30:57
Well, as of the UE hotfix update, the scene loads correctly and the individual systems do create particles. However they do not loop on playback outside of the Niagara interface so if you aren't paying attention on the demo scene you can miss them. Not sure what the desired behavior is in there but essentially you have what you need to get back into it afaict.
March 4, 2019 02:26:33
en…..so is there a way to pass a customized houdini attribute to Niagara?
For example, I create an attribute “f@angle =30”
how to get this value it in Niagara…I find out there are only certain type of attribute in unreal:
getposiition, getimpulse and more..but can I get my own attribute?
March 4, 2019 17:12:14
You can export the point attributes with the csv ROP and then in Niagara you can use getFloatValue to access that value.https://www.sidefx.com/docs/unreal/_niagara.html#GetFloatValue
July 25, 2019 03:09:26
Thanks a lot for your tips!!!!
Aug. 15, 2019 18:49:08
Mike hey there!
So I'm doing some FX Animation using Houdini and Unreal currently and bringing some Vellum grains simulations into Unreal via Vertex Animation Textures. It's a functional workflow minus the long import times in Unreal, the strange disappearance of points, and the very restrictive point count. I'm pushing a lot of points through it (for realtime) so I'm tediously finding the right amount of points to make it through the export / import process. To Upres I was thinking of just baking 10x sims with different seed values.
BUUUUT what'd be even better is to actually be able to use a csv file as a point cache and actually get niagara particles mapped to each point for each frame. Very much just like a traditional particle cache! I could then use meshes or sprites via Niagara which gives me a ton of nice control on the rendering over the sprites of the Vertex Animation Textures.
So I seem to have hit a roadblock that's left me scratching my head. I've watched all these videos and am really left with little idea how to use the CSV rop as a particle cache. There's all this cool functionality for doing RBD setups that seems neat but all require a dop net for some reason and I'm not sure if my use case matches to the “interpolate” workflow.. I can't really tell - but I suck at Houdini still.
SO I can basically get a single CSV file representing a nice cache of my particles.. But does the CSV Rop not provide animation functionality? Can I not say, write out these particle positions and IDs for frame 1, these for frame 2, etc etc.
I really wan't a caching solution for going from Houdini to Unreal for simple grains sims like this and the vertex textures work but are limited to about 5k points for a long animation length so it's just a horrendous workflow to get anything of quality (30k points or so?). The Niagara approach makes alot more sense but I can't tell if the Houdini side just isn't finished or I'm missing a document or if my knowledge just isn't there?
The examples in these videos are very cool and novel and I love seeing all sorts of neat data come out of houdini and go to Unreal. But I gotta say just being able to bring cached point / velocity locations over and get them playing back so it can sync to animation would be the killer feature. Is there no way to do this via .csv currently?
*sniff… if only it could do more than one frame!
Image Not Found
so here is me using vertex animation textures.. it works but it decides to drop like 3/4 of them and its so painful to do this long import process.
save me Houdini gods!
Sept. 17, 2019 06:29:59
i cant download the latest gamedev tools to access the extra nodes in Houdini.
Can you provide an address
Oct. 1, 2019 12:26:42
I see the post from mradfo21 above. Is there a way to have Niagara use a CSV and play more than one frame?
Oct. 4, 2019 11:13:02
Have you looked at the example file? https://www.sidefx.com/forum/topic/56573/
The interp_words example shows how the attributes are laid out. Time should be global time. Life should be set on the first instance of a particle with every other instance given a value of 0.
Oct. 7, 2019 15:26:53
Myself and our lead technical artist are still working on this. Is there a “Lazy Artist” breakdown or some kind of example using pops or something?
Oct. 7, 2019 16:08:24
Unfortunately, there isn't. Mainly because I think it's a bad idea.
The system was never designed as a way to pass entire particle caches across. The data interface can handle a lot of points but there are no optimisations done to the memory or sampling. It's better suited to generating spawn points or doing something else that would lead to minimum data in but create a lot of variations in Niagara. That being said, I might have a file lying around somewhere. This week is a little crazy so I might not get to it until next week.