Description of the TimelineFX .eff fileformat
Home › Forums › TimelineFX Module › Description of the TimelineFX .eff fileformat
- This topic has 4 replies, 2 voices, and was last updated 9 years, 3 months ago by
peterigz.
-
AuthorPosts
-
September 2, 2016 at 3:56 pm #5606
michaParticipantHi,
I’m trying to write a conversion tool from one particle engine to TimelineFX. I understand that .eff files are actually zip files containg data.xml and images. Is there any (formal) documentation on the data.xml format? Any kind of documentation would greatly help me reduce the time to reverse engineer it. For example I hit a snag on the very first attribute I came across: TYPE under the EFFECT node. So far I came across “0” and “3”, and that’s by just looking at 2 files! What does this attribute represent? I’m sure I will have a lot more questions like these if I walk down this path..
Maybe a DTD? Scribblings on a coaster would help too :’D ..
I also looked at the Monkey module source code. This code is not commented, so all I understand from this it’s just an “EffectClass”. But it doesn’t explain how this would further impact the other values. For that I have to delve deeper and see how EffectClass is used. This could fun to track down, though. But unfortunately I’m strapped for time. The faster I can get this converter to work, the easier it is to sell TimelineFX as the new inhouse Particle Tool within my company.
Thank you!
September 2, 2016 at 4:21 pm #5607
peterigzKeymasterHi, yes there’s not much documentation on the xml file! Type is whether it’s a point, area, line or elipse effect. These consts in the module might help shed some light:
Const tlPOINT_EFFECT:Int = 0 Const tlAREA_EFFECT:Int = 1 Const tlLINE_EFFECT:Int = 2 Const tlELLIPSE_EFFECT:Int = 3 Const tlCONTINUOUS:Int = 0 Const tlFINITE:Int = 1 Const tlANGLE_ALIGN:Int = 0 Const tlANGLE_RANDOM:Int = 1 Const tlANGLE_SPECIFY:Int = 2 Const tlEMISSION_INWARDS:Int = 0 Const tlEMISSION_OUTWARDS:Int = 1 Const tlEMISSION_SPECIFIED:Int = 2 Const tlEMISSION_IN_AND_OUT:Int = 3 Const tlEND_KILL:Int = 0 Const tlEND_LOOPAROUND:Int = 1 Const tlEND_LETFREE:Int = 2TimelineFX is quite complex so it will depend on what you’re trying to convert to on how smooth this will go I guess.
September 2, 2016 at 7:04 pm #5608
michaParticipantThanks a lot Peter!
This helps šKeep up the good work!
September 7, 2016 at 9:08 am #5609
michaParticipantI continued with my converter. So far it looks good. I can generate something TimelineFX doesn’t choke on. But I’m having troubles decyphering some details. Each attribute has a VALUE and a FRAME and the attribute itself can be repeated for keyframing. I like this, it’s simple and clean. But how do I interpret the FRAME value? If I am correct, FRAME normally runs from 0.0 to 1000.0. Unless the attribute is an _OVERTIME or an _VARIATIONOT “type” of attribute. Then it runs from 0.0 to 1.0?
What is the purpose of ANIMATION_PROPERTIES? (I am not going to use TimelineFX to generate framestrips.) Does, for example, the FRAMES property has an influence on the attributes?
September 8, 2016 at 11:47 pm #5610
peterigzKeymasterThe frame is either the time in milliseconds when that value is applied from the start of the effect, or if it’s an “overtime” attribute then it will be a percent of the lifetime of the effect. So for example, if the particle has a lifetime of 3000ms (3 seconds), then a frame of 0.5 will mean that that attributes value will be at 1500ms or 50% into the particles lifetime. Values at any given time are linear interpolated between values, or interpolated with bezier curves if curves are used in the editor.
Yes the animation properties is only for the exporting of the effects and do not affect anything with the attributes.
Hope that helps!
-
AuthorPosts
You must be logged in to reply to this topic.