Particle, Mesh Flipbook?

Hello guys!
I was searching about presimulated fluids. Then i saw a video from twitch live stream. This guy said Presimulated Fluids can work like this.

[video]Particles with Bill Kladis | Feature Highlight | Unreal Engine - YouTube

So i started looking around. But no luck. How is this working? is there any documentation or just simple step by step tutorials?
Thank you.

ummm… anyone?

I wrote a document that covers how to use this tool which you can find here.

The tools are called the Vertex Animation tools and currently only work for 3Ds Max.

Oh i was searching for maya script xD thank you!

We tried to get them into Maya but just have not had the time and I do not know MEL script so I can not convert them myself. If we do get the time to get them into Maya we will be sure to make a post about it to the forums.

Ok. Thank you!. One more question. It uses texture data that means mesh needs to be unwrapped?
My main use is Realflow. I was thinking about getting mesh from realflow then export to 3ds max and ue4. Is this possible?

Yes this is possible but there is a lot of setup that you need to do as well as some very strict rules you have to following or things** WILL NOT** work correctly in UE4. For starters any meshes that you use to transfer the Realflow animation data to, no matter how big, all have to have the exact same vertex count or things will not work. Also keep in mind that you can only affect 8192 at any time as that is the maximum resolution that DX11 can use a texture. In essence what you are doing is basically creating Morph targets so if you are familiar with that process and its restrictions then this should not be that hard to wrap your head around this process. However before you go any further I would** highly suggest** that you fully read and follow along with the Vertex Animation Tooldocument linked below as it will help to answer some of you questions as well as give you more insight in to how this whole thing works.

If I had to do this, what I would do is first create a low poly game version of the Realflow mesh that has a vertex count that is under 8k and call it base mesh(This name is purely for explanation purposes). Then you can duplicate that mesh a number of times. Each duplicate mesh will be used to store a morph target keyframe from your realflow fluid simulation.

Once you have that you can use a Conform compound object in 3Ds Max to make that base mesh “wrap” itself around your Realflow mesh at the given animation time. So frame one of your Realflow animation should link up with Base_Mesh_01 and so on. When you are done you should have a number of morph target base meshes with each one representing a frame of the Realflow animation. After that all you need to do is select the meshes in the order that they need to be played in, process them with the vertex animation script, export them to UE4 and then using the built in Material Functions to wire up a Material that will allow you to use them. I know that I am broad stroking this last part but if you read the tutorial I linked above it has this process extremely well documented.

As for your UV question, for the most part the tool will generate the UV data to channel 1(Which in 3ds Max is UV channel 2) for you behind the scenes. However you do need to have some kind of logical UV data on channel 0(Which in 3ds Max is UV channel 1) or the renderer can have issues.

Also, make sure to check out the following link to the uncharted 3 tech paper as it was the inspiration for fitting a mesh to a fluid surface via ray tracing

Here is a link to how to use the Conform tool in 3ds Max

Hey Sam, I got the texture writing no problem in Houdini. The tricky part for me was knowing to set up the meshes second UV channel: https://drive.google.com/file/d/0B4cZXYZBk8pmdHJYZG5DVnd5YTg/view?usp=sharing

I tore apart the 3DSMax script and it looks like with the second UV channel, each UV point is evenly spaced between 0-1 on the U axis and all their V values set to 0.5. The exception being the last point which is set to [1,1]. I haven’t torn apart the material function yet, but would that be the best place to look to get an understanding of why that second channel is required in that fashion? I’ve seen what happens when it isn’t set up like that…and oh man it isn’t pretty :stuck_out_tongue: