binltl file format

You are viewing a static copy of the old 2DBoy forum, which closed in 2010. It is preserved here for historical interest, but it is not possible to reply to topics. For more recent discussion about World of Goo, visit our new forum.
binltl file formatdavidc11/07/2008 - 08:31

Has anyone deciphered the binltl file format yet?

I understand the main problem with widescreen resolutions is that the Continue handle is off the screen. GooTool lets you change resolution and it would be ideal if it could also automatically modify eol_3_handleup.movie.binltl (and any other necessary files) to move the handle to an appropriate place.

-davidc


Last modified Fri, 11/07/2008 - 08:34 by davidc
Re: binltl file formatSoultaker11/07/2008 - 14:09

Yeah, ploppy already figured it out and posted a decoder to PNG here. He calls the images header-less PNG files, but since no PNG filters are actually used (if I read his code correctly) I think it's even simpler than that: the files have a 12 byte header, followed by zlib-compressed unfiltered bitmap data.

Re: binltl file formatdavidc11/07/2008 - 15:21

OK ta, I guess that's not where the positioning is coming from then.

Re: binltl file formatdavidc11/08/2008 - 18:18

OK his post is referring to Mac .png.binltl files.

I'm asking about .binltl files used to describe animations, e.g. res/movie/Chapter2Mid/Chapter2Mid.movie.binltl

I can see they're not PNG files, they're not images at all, and they're neither compressed nor encrypted. They have references to resources defined in Chapter2Mid.resrc.bin. Presumably the rest of the file is a list of instructions of what to display at what positions/rotation/timeline etc.

# strings Chapter2Mid.movie.binltl
IMAGE_MOVIE_CHAPTER2MID_BG
IMAGE_MOVIE_CHAPTER2MID_GURL
IMAGE_MOVIE_CHAPTER2MID_HANDR
IMAGE_MOVIE_CHAPTER2MID_HANDL
IMAGE_MOVIE_CHAPTER2MID_FINGER
IMAGE_MOVIE_CHAPTER2MID_GOOP
IMAGE_MOVIE_CHAPTER2MID_CONTAINER
IMAGE_MOVIE_CHAPTER2MID_LENSFLARE
IMAGE_MOVIE_CHAPTER2MID_BLACK32
SOUND_MOVIE_CHAPTER2MID_C2MIDSFX
SOUND_MOVIE_CHAPTER2MID_CHEER2

Re: binltl file formatdavidc12/16/2008 - 16:46

Just wanted to bump this and see if anyone has discovered anything about this file format, or heard of anyone who has?

I tried to decipher it a while back but I have no idea how to go about it. I was looking for offsets stored at offsets and just when I thought I'd made a breakthrough, a different binltl would prove me wrong :(

While not as important as the level file format, I think it's still useful for new chapters or have end-of-level sequences.

-davidc

Re: binltl file formatXDboy01/04/2009 - 12:35

some animation of images inside the levels (scene layers) is done by these files too, e.g. rot_1rps.anim.binltl for rotating, or treeblow_trunk.anim.binltl to stretch and move the image back and forth in the wind.^^

so if somebody found a way to de- and encrypt those files we would be able to do custom animation(effects), maybe.  8)

Re: binltl file formatdavidc01/04/2009 - 14:40

[quote author=XDboy link=topic=734.msg8326#msg8326 date=1231090512]
some animation of images inside the levels (scene layers) is done by these files too, e.g. rot_1rps.anim.binltl for rotating, or treeblow_trunk.anim.binltl to stretch and move the image back and forth in the wind.^^


Yeah actually these are a completely different format from the movies, we now have three "binltl" formats:

- Mac ".png.binltl" - zlib deflated square RGBA image data with a custom header
- ".movie.binltl" - for cutscenes
- ".anim.binltl" - for in-level animation

I have the file format for the last one. I dunno if I'm allowed to share it yet but as I figured out already, it's basically a bunch of keyframes. The movie format's the one I really want to get sussed, it seems rather more complicated. Hopefully I'll get some more info in a couple of weeks.

-davidc

Re: binltl file formatXDboy01/06/2009 - 09:13

[quote author=davidc link=topic=734.msg8331#msg8331 date=1231098054]
I have the file format for the last one. I dunno if I'm allowed to share it yet

what do you mean? the powers that be don't want to have their animation format layed open, atm?

Re: binltl file formatdavidc01/07/2009 - 06:38

[quote author=XDboy link=topic=734.msg8441#msg8441 date=1231251195]
what do you mean? the powers that be don't want to have their animation format layed open, atm?


I haven't asked, I'm waiting for him to come back from holiday.

Re: binltl file formatGooGooAction01/07/2009 - 13:31

Please stay tuned!  ^^  , thx

Re: binltl file formatkrrrtrrrwrrrr04/09/2009 - 20:59

Hey David! Hope you read this. Have you gotten an answer concerning the anim.binltl format and the allowance to share it? I guess not so, because you would probably already have put it online or posted it somewhere. But I thought I'd ask just to be sure.
Would be great to be able to make custom in-game animations. But I have no experience with deciphering file formats and no knowledge about related formats, about keyframe animation and so on. So I probably can't do it myself.

Re: binltl file formatdavidc04/11/2009 - 13:05

I have all the details yeah, and I've relatively succesfully decoded various files. The structure's pretty complicated though, and I'm considering whether to write an animation editor or whether there's something that I can convert from... at the moment this project is on hold but I'll try and post the file format details soon.

-davidc

Re: binltl file formatkrrrtrrrwrrrr04/13/2009 - 15:54

Sounds great. Thanks for the info!

Re: binltl file formatdavidc04/14/2009 - 07:28

Here we go:


    [li]anim.binltl (BinImageAnimation) single element animation descriptor[/li]
    [li]movie.binltl (BinMovie) cut scene format, also contains one BinImageAnimation per BinActor[/li]

Re: binltl file formatXDboy04/14/2009 - 11:35

thanks for the description.
but (and maybe this is a dumb question) can i do something with the files now? could i convert the binary data myself?

Re: binltl file formatdavidc04/14/2009 - 13:53

[quote author=XDboy link=topic=734.msg11651#msg11651 date=1239726921]
thanks for the description.
but (and maybe this is a dumb question) can i do something with the files now? could i convert the binary data myself?


Well theoretically you can now create anim/movie files. But - and this is the hurdle I reached - there's so much information needed in such a complex structure, that it's not really realistic to have a text-file (XML or whatever) format for it. I was thinking I need to write an animation editor, but I'm waiting to see whether the WoG movies were actually converted from some other format into this first.

-davidc

Re: binltl file formatSoultaker04/15/2009 - 06:44

I think the movies are converted from Flash movies.

Re: binltl file formatkrrrtrrrwrrrr04/16/2009 - 16:05

Thanks for posting the details, David!
Since I know pretty much nothing about keyframe animation (except what I read from Wikipedia), I have some simple questions:
1) How do the different transformation types work together? For example, if I have a rotation and a translation: Does the rotation occur about the center of the static image or about the center of the moving image (due to the translation)? Or does that depend on the order of the translation types applied (would probably make most sense)? Or is there even some more sophisticated kind of mixture between the two transformations (which I can't picture atm, actually)?
2) Does a rotation always occur about the center of an image and are the key frame data fields x=-1.0 and y=-1.0 in the rot_1rps example just dummy fields with "-1.0" meaning "nothing" because a rotation only takes an angle as an argument? Or could I insert coordinates of a custom center of rotation there? (Probably the coordinates used in rot_1rps would more likely be "0.0" then, but maybe the "-1.0" coordinates mean something totally different actually?)
3) Would "interpolation type = none" just mean that there is a discontinuous leap from one key frame to the next with nothing happening in between (for that specific transformation)?
4) If I get it right each single transformed frame is obtained from the original static image by just an affine-linear transformation of the whole image. Is that true or are there some more sophisticated magical ways of combining transformations, rotating only part of an image while the rest stays static etc...? (Probably not, but that would disappoint me a little bit.)

Re: binltl file formatdavidc04/25/2009 - 15:03

You're considerably further than I am. I haven't tried producing or displaying any movies.

I would guess that each TransformType is a multipler on the current transformation matrix, so the order of rotation and translation would depend what order they're done in the transformTypes[] array. I think I've seen some movies where there are two TRANSFORM types, which would back up this theory.

It would also explain why there's always dummy values for x,y in the rotation transforms, if they're always rotating about the origin.

"interpolation type = none", I imagine you're correct. Note that there is a nextFrameIndex though, so some frames may actually be skipped altogether

That's about all I can help with at the moment.

Soultaker mentioned it may have come originally from Flash, but this was my early theory too and I couldn't find any correlation between the SWF file format and this. Possibly some kind of exporter was written inside the Flash IDE.

-davidc

Re: binltl file formatdavidc05/09/2009 - 17:44

I've spent a lot of time analysing this over the last couple of days and have come up with a proposal for an XML format (along with some overly verbose analysis).

Please head over to http://goofans.com/forum/world-of-goo/modding/407 and give your opinion on what will become the standard XML format for animations and movies in goomod files.

(and if Allan or Ron or Kyle have anything to add, particularly noticing any bad assumptions or over-complication, that would be awesome ;))

-davidc

Re: binltl file formatdavidc05/15/2009 - 16:57

Last call for comments. Work on the next version of GooTool is now underway and will include animation and movie compilation.

Re: binltl file formatSoultaker05/21/2009 - 09:37

Looking good, davidc!

The only thing I don't really like is the distinction between "complex" and "simple" variations of the file format, but I can see why you would want them (assuming the "complex" format is really 1-to-1 equivalent to the structure of the binary files).

Could you be bothered to write up an XML Schema of these file formats? That makes it much easier to get a clear overview of their structure in my opinion, and would help other developers write tools to work with these kinds of files.

One question though; you write:

Quote:
Interpolation is consistent within a movie across all keyframe types.

What do you mean by this?

Re: binltl file formatdavidc05/21/2009 - 14:16

[quote author=Soultaker link=topic=734.msg12584#msg12584 date=1242916641]
The only thing I don't really like is the distinction between "complex" and "simple" variations of the file format, but I can see why you would want them (assuming the "complex" format is really 1-to-1 equivalent to the structure of the binary files).


Thanks. Yes, "complex" is one to one with the BinImageAnimation structure so you can achieve anything with it. Movies (at least the ones currently in the game) use only "simple" animations presumably due to their being exported automatically.

I'll look at writing a schema, sure.

[quote author=Soultaker link=topic=734.msg12584#msg12584 date=1242916641]

Quote:
Interpolation is consistent within a movie across all keyframe types.

What do you mean by this?


All types of keyframe (3 transform plus alpha) all have the same value for interpolation (LINEAR or NONE) at each frame time. So the XML doesn't have to have a independent interpolation values for each.

BTW I started writing some JSFL (Javascript Flash addin) to import movies and will do another to export once this is polished. Here's a sample flash movie (interpolation and alpha aren't done yet): http://goofans.com/forum/world-of-goo/modding/407#comment-591

David


Last modified Thu, 05/21/2009 - 14:22 by davidc