Regarding the issue of Age not being reflected in FumeFx
#1
Hi,

I loaded particles generated by tyflow into FumeFx, but the Age is not reflected and AFC does not work.

The breakdown of the flow is as follows. (Images are attached.)
1. Particles are generated on the object (Group_A).
2. When the speed of the particles exceeds a certain level, the particles scatter (Group_B).

I have loaded the above Group_B into ParticleSauce in FumeFx, but AFC does not work, probably because Age is not reflected.
There have been times when the Age is not reflected when the flow splits. Is this a bug? 
Please let me know if there is a solution.

Thank you.


Attached Files Thumbnail(s)
   
  Reply
#2
Have you enabled age caching in your flow?
  Reply
#3
(10-06-2021, 06:41 AM)tyFlow Wrote: Have you enabled age caching in your flow?

Yes, as you can see in the image, the cache of Age is enabled.


Attached Files Thumbnail(s)
   
  Reply
#4
Oh sorry I missed it in your original screenshot Smile

I know I spoke with the FFX dev about how to handle this but it was years ago at this point. By default they consider particle lifetime, if I remember correctly, and tyFlow particles don't have a lifetime (there's no gauranteed death for any of them). I don't remember if it's an extra setting you have to enable somewhere or something, but I'm pretty sure there's a way to get it working. I would recommend contact the devs or posting about the issue on their forum for more info about it (I use Phoenix for fluid sims so am not too familiar with FumeFX, beyond my integration of their container data into tyFlow).
  Reply
#5
(10-06-2021, 07:26 AM)tyFlow Wrote: Oh sorry I missed it in your original screenshot Smile

I know I spoke with the FFX dev about how to handle this but it was years ago at this point. By default they consider particle lifetime, if I remember correctly, and tyFlow particles don't have a lifetime (there's no gauranteed death for any of them). I don't remember if it's an extra setting you have to enable somewhere or something, but I'm pretty sure there's a way to get it working. I would recommend contact the devs or posting about the issue on their forum for more info about it (I use Phoenix for fluid sims so am not too familiar with FumeFX, beyond my integration of their container data into tyFlow).

Hi,

Thank you for your reply.
What are some of the specific steps that can be taken to make Age work?
If you can find out, please let me know.
  Reply
#6
I also can't made Tyflow age to work with FumeFX particle emitter.

One of the workaround I use sometimes, is just using, FumeFX object emitter, and I make my particles as objects.
Most of the time they are just tiny spheres, and I animate their scale with Tyflow scale operator... and I basically get very similar results as if I used Particle emitter.
Make sure to enable "free flow", so they don't collide with it's own sources.

Sometimes, velocity can go crazy (but that was the case with Pflow too (when using geometry)), but I guess it can be fixed with few additional substeps both on Fume, and Tyflow.
  Reply
#7
Ignore above (because I just test it, and it's working, but it won't transfer velocity (not even from objects normals).
-------------------

But I think I figured out how to make it work in FumeFX with Particle Emitter.  Smile
(note: I am using Fume 5,0,7, while in your screenshot I see you are using 5,1 so I am not sure if it will work for yuor version).

You need to do this:
1) Disable Tyflow cache (otherwise, it won't work), and enable particle interface.
2) Add custom properties operator to your tyflow, and make it as in screenshot (that way, you define particle age as float that Fume can use)
3) Create Fume particle emmiter, pick Tyflow, enable AFC, and click on the very small icon to open AFC Controller window
4) In the new window, make sure you have the same settings as I do in the screenshot.

(Basically, all you need to make sure is that you defined float age in Tyflow is the same name you will later use in AFC).

It crashed 2 times already Big Grin but it works.. i simmed some explosion, where particles changed radios all the time.
Velocity works nice too.


Attached Files Thumbnail(s)
   
  Reply
#8
(10-07-2021, 06:07 PM)d4rk3lf Wrote: Ignore above (because I just test it, and it's working, but it won't transfer velocity (not even from objects normals).
-------------------

But I think I figured out how to make it work in FumeFX with Particle Emitter.  Smile
(note: I am using Fume 5,0,7, while in your screenshot I see you are using 5,1 so I am not sure if it will work for yuor version).

You need to do this:
1) Disable Tyflow cache (otherwise, it won't work), and enable particle interface.
2) Add custom properties operator to your tyflow, and make it as in screenshot (that way, you define particle age as float that Fume can use)
3) Create Fume particle emmiter, pick Tyflow, enable AFC, and click on the very small icon to open AFC Controller window
4) In the new window, make sure you have the same settings as I do in the screenshot.

(Basically, all you need to make sure is that you defined float age in Tyflow is the same name you will later use in AFC).

It crashed 2 times already Big Grin but it works.. i simmed some explosion, where particles changed radios all the time.
Velocity works nice too.

Hi, d4rk3lf

Thank you for your reply.
It was very helpful.
However, it did not work the way you suggested, so I made some adjustments and it worked fine.

The test1.gif is a diagram that I tried using the method you presented.
The AFC is not functioning well here.

The test2.gif is the one with adjusted parameters. The adjustment details are as follows.
1. Enable Tyflow cache
2. Custom Properties >Custom Float >Multiplier set to 0.01
3. Set FFX Particle Src >AFC Controller Type >Value Scale to 6.0

However, there is also a problem in test2.
With this setteing, you can import something like Age, but it is not exact.
In AFC, the radius is set to be 0 at the end of Age, but it is not. At the end of Age, the radius is greater than 0.

The ideal_image.gif was created by loading Particle Spray and setting the AFC, but the AFC works correctly here. (The radius is set to 0 at the End of Age.)

It is very inconvenient to be able to reproduce only a pseudo-Age after all these steps.
I can't decide if it's a problem on tyflow's side or on FFX's side, but I'd really like to see this problem solved.
Or is there another, more fundamental solution...

I would also like to see a solution to the situation where meshes generated by tyflow cannot reflect velocity in FFX. It works for a single flow, but often doesn't work when the flow branches.


Attached Files Thumbnail(s)
           
  Reply
#9
Thanks Jumpei.F
It's good that we are both testing, because 2 heads are smarter then one. Smile
---------------------------
When you tested my previous method, it was not working because your custom property timing was set to event entry (sorry I forgot to mention that (but from your other tests I see you figured that out yourself).
The reason why I am disabling Tyflow cache is to "stay safe", because if I change Fume Particle emitter settings, and scrub timeline, Tyflow doesn't figure out that anything has changed, and it keeps providing fume particles with the same (cached) info.
I still think it's smart (in this case) keeping cache off, at least, until you finished setup of the particles completely.
----------------------------------------
I tested further this morning (with carefully reading your post), and I think I am "almost there".
In my newest setup, everything works as expected,  the only thing you need to adjust (if you change particle age) is interpolation.... nothing else...

I am attaching a test similar like your super spray test...
Now, I repeat... if you change, in my test, settings of the delete operator, and make particle live longer or shorter, the only thing you need to adjust is interpolation in custom properties operator... nothing else...
If you change other settings (speed, forces), everything will work fine.

I haven't tried yet will this work if I had more complex setups, for example, Tyflow with several events, and if I wanted only one event to be loaded in the fumefx (with proper age).
But I guess it should work nicely too.


Attached Files
.max   FumeFX_Tyflow_Pemitter.max (Size: 684 KB / Downloads: 118)
  Reply
#10
(10-09-2021, 09:22 AM)d4rk3lf Wrote: Thanks Jumpei.F
It's good that we are both testing, because 2 heads are smarter then one. Smile
---------------------------
When you tested my previous method, it was not working because your custom property timing was set to event entry (sorry I forgot to mention that (but from your other tests I see you figured that out yourself).
The reason why I am disabling Tyflow cache is to "stay safe", because if I change Fume Particle emitter settings, and scrub timeline, Tyflow doesn't figure out that anything has changed, and it keeps providing fume particles with the same (cached) info.
I still think it's smart (in this case) keeping cache off, at least, until you finished setup of the particles completely.
----------------------------------------
I tested further this morning (with carefully reading your post), and I think I am "almost there".
In my newest setup, everything works as expected,  the only thing you need to adjust (if you change particle age) is interpolation.... nothing else...

I am attaching a test similar like your super spray test...
Now, I repeat... if you change, in my test, settings of the delete operator, and make particle live longer or shorter, the only thing you need to adjust is interpolation in custom properties operator... nothing else...
If you change other settings (speed, forces), everything will work fine.

I haven't tried yet will this work if I had more complex setups, for example, Tyflow with several events, and if I wanted only one event to be loaded in the fumefx (with proper age).
But I guess it should work nicely too.

Hi, d4rk3lf

Thanks for your help too, d4rk3lf!
This conversation somewhat clarified the issue.

Now I understand why I need to turn off Enable Cache.
I see that sometimes the changes in the simulation are not reflected. Thank you for the instruction.

The sample scene you gave me was very helpful.
However, it seems that it is not possible to load the exact Age with FFX's Particle Sauce.
Based on the scene you gave me, I added a variation to Delete's Age. (Scene data is attached).No other changes have been made.
The issue I found is that Interpolation is only effective when the Particle Age is constant. (To be precise, the reproduction of the Particle Age by Custom Properties is only valid when the Particle Age is constant.)

For example, in the case of a particle with an Age of 15, the Radius should be 0 at Age 15, but since the values adjusted by Interpolation are the optimal conditions for Age 20, they are not appropriate for Age 15, and the Radius will not be 0 even if the Age reaches 15.
As mentioned above, when you want to add variations to the Particle Age, you cannot set the Radius that you want to get.

Based on what I have verified so far, I would like to have a solution to the above issues, but I do not know how to go further.
Ideally, I'd like to see FFX's Particle Sauce properly reflect the Age if Age caching is enabled in tyFlow, without the need to use Custom Properties.
I hope my argument reaches the developers of tyFlow or FFX...
I'd like to get a response from the tyflow developers, too, if they've seen this discussion.

d4rk3lf, your thoughtful reply and help is greatly appreciated. If you notice anything about the above, I would appreciate your reply.


Attached Files
.max   FumeFX_Tyflow_Pemitter_re211011.max (Size: 492 KB / Downloads: 134)
  Reply
#11
Hmmm.

I wouldn't know how to make variations work with this setup.
Not saying it's not possible, but I wouldn't know how to do it.

However, in most setups (that I do personally at least), I don't believe that not affecting variations would have so much impact on the sim very much.
If they die, and not yet reached zero, but instead they are on 10-20% on their size, I don't think it would be much of a pop up effects.
Currently, I am doing a sim where smoke particles dies right away (not even reducing size to zero), and there is no artifacts I see.

Anyway, as Tyson suggested, you best bet is to ask Fume devs about that specific question, because Tyflow works well with Phoenix fluid solver, so Tyflow basically provides every information fluid solver needs. It's up to the fluid solver itself to read these information correctly.

Cheers! Smile
  Reply
#12
(10-12-2021, 09:42 AM)d4rk3lf Wrote: Hmmm.

I wouldn't know how to make variations work with this setup.
Not saying it's not possible, but I wouldn't know how to do it.

However, in most setups (that I do personally at least), I don't believe that not affecting variations would have so much impact on the sim very much.
If they die, and not yet reached zero, but instead they are on 10-20% on their size, I don't think it would be much of a pop up effects.
Currently, I am doing a sim where smoke particles dies right away (not even reducing size to zero), and there is no artifacts I see.

Anyway, as Tyson suggested, you best bet is to ask Fume devs about that specific question, because Tyflow works well with Phoenix fluid solver, so Tyflow basically provides every information fluid solver needs. It's up to the fluid solver itself to read these information correctly.

Cheers! Smile

Hi, d4rk3lf.

As you said, there are very few situations where variation has a big impact, and I wonder if using Phoenix would be less annoying... I'll consider it. I'll look into it, but the AFC fine-tuning in FFX is just too convenient to throw away!

I've posted about this on the FFX forum, and I hope the solver compatibility will be improved in the FFX update, but we'll see.

I appreciate your cooperation. Smile
  Reply
#13
Hi, wanted to thank you both, the effort you two put into the topic helped me as well.
D4rk3lf, thanks for the demo file.
  Reply
#14
Hello everyone.

I contacted the FFX forums about the problem of AFC not functioning properly, and found the cause.
The following is a response from sitnisati.

*********************************************************************************************************
The AFC requires a range from 0-1 as input, 0 would be when the particle is created and 1 when it's no longer present.
If tyFflow when you create a custom channel from the Age, make sure to divide it with particle lifespan.
Although, the lifespan is mostly not known as particle can be killed at any frame you can use some arbitrary number.
*********************************************************************************************************

As you can see from the above, the Lifespan channel is required for AFC to function properly.
However, the current tyFlow does not support Lifespan channel output.

This issue has been posted on the forum in the past, but there are no plans to consider introducing it.
https://forum.tyflow.com/thread-659.html...t=lifespan

I would like to see support for Lifespan channel output if possible.
  Reply


Forum Jump: