Jump to content

[Tutorial]How to fully extract animation with all layers


Rickzzs
 Share

Recommended Posts

I.     Introduction

As we all know, Don't Starve(DS) and Don't Starve Together(DST) animations are composed of 3 parts, each being separated: anim.bin, build.bin and atlas-0.tex.

But it is very usual than the layers in anim.bin does not match those in build.bin and atlas-0.tex. While there is no immediate tool to solve this problem, there are two indirect methods.

II.     Tools

1.autocompiler.exe

It can be found in Don't Starve Mod Tools. You can find it in Steam's library or Github (maybe not up to date) or this forums.

All other tools can be found here (my platform is Windows 10 x64, I have only tested them myself): https://forums.kleientertainment.com/forums/topic/142963-tool-some-animation-tools

2.Klei Anim

You need animc.exe and animd.exe. There is an alternative in case you can't run the two applications. For decompiling, use python2 script deanim.py and debuild.py. For compiling, use enanim.py. However, the author of these scripts did not write a compiler for build.xml, the work is then done by buildanimation.py at C:\Steam\steamapps\common\Don't Starve Mod Tools\mod_tools\tools\scripts\.

Python2 is already included in Don't Starve Mod Tools.

3.Notepad

A text editor of any kind, like Notepad++, Notepad3, VS Code.

4.Ktools

You need krane.exe to extract animation.

5.TEX tool or something that can view atlas-0.tex, not necessary.

6.Spriter

III.        Find Files

In DST, most animation files are in C:\Steam\steamapps\common\Don't Starve Together\data\anim\, the same with DS.

There are two exceptions with DST, DLC contents go to \anim\dynamic\ and \databundles\anim_dynamic.zip\anim\dynamic\. Most DLC contents are encrypted into an unextractable file *.dyn, but non-DLC contents are just an archive renamed to  *.dyn. Therefore, wilson.dyn(aka. wilson.zip) can be extracted into some atlas-0.tex while wanda.dyn can't.

There are some simple rules to name a file. The most obvious way to name a file is to name it the same as its prefab, like spider.zip. Next there can be some suffix like spider_basic.zip, spider_build.zip, spider_wolf_build.zip. Otherwise you can just open scripts\prefabs\*.lua to see how many animation files are registered, and the same with every other related prefabs. This may not be enough sometimes.

IV.         Decompile build.bin

Extract each of *.zip to a folder, for each build.bin, decompile it into build.xml. Open build.xml and you see a lot of <Symbol> like

Quote

  <Symbol name="swap_object">

    <Frame framenum="0" duration="3" x="9.25" y="-48.2999992" w="73" h="306" />

    <Frame framenum="5" duration="1" x="6.89081717" y="-55.9839592" w="59" h="236" />

    <Frame framenum="6" duration="1" x="17.0354004" y="-54.4175987" w="85" h="263" />

    <Frame framenum="7" duration="1" x="18.125" y="-53.375" w="104" h="259" />

    <Frame framenum="8" duration="1" x="7.08941984" y="-131.259201" w="112" h="288" />

  </Symbol>

Your task is to collect these <Symbol> from all the build.xml. If <Symbol> name collides, you can decide on your own which image you want to see according to those atlas-0.tex.

Say you get a new build.xml loaded with all <Symbol>, and a <Atlas name="atlas-0.tex" />(This is required for krane.exe to proceed without error). Compile this xml into bin file. Now you get a new build.bin. If you use animc.exe just compile it together with any anim.xml. If you use buildanimation.py, make sure you do it correctly because I didn't try that way.

V.   Extract Images

krane.exe demands anim.bin, build.bin and atlas-0.tex, so you need to fulfill it in order to get all images. The only thing you need to ensure is that anim.bin covers all layers in build.bin. Any of such anim.bin is capable. Or you can easily decompile and edit anim.xml and compile to create one.

Say you have every atlas extracted. Now gather all image folders.

VI.         Extract Animation

krane.exe demands anim.bin, build.bin and atlas-0.tex, so you need to fulfill it in order to get all animations. Use new build.bin that contains all layers. Use any atlas-0.tex.

Say you get many *.scml, gather them (and rename them).

VII.      Clean Workspace

In the above two steps krane.exe has generated many unwanted files. Just delete them.

VIII.   View them in Spriter

Open *.scml in Spriter.This is the result of Nostalgiac Wendy+Wigfrid Hat+Spear+Snurtle Armor+...

 

Method2:

IV.         Extract Image

krane.exe demands anim.bin, build.bin and atlas-0.tex, so you need to fulfill it in order to get all animations. The only thing you need to ensure is that anim.bin covers all layers in build.bin. Any of such anim.bin is capable. Or you can easily decompile and edit anim.xml and compile to create one.

V.   Gather Images

Say you have many Spriter projects, open *.scml and gather <folder>. If folder name collides, you can decide on your own which image you want to see according to those images. Make sure <folder>'s id is unique. Meanwhile, gather images according to folder name.

VI.         Compile to build.bin

Say you have a scml file with all folders included. Use autocompiler.exe to compile the Spriter project into a zip with anim.bin, build.bin and atlas-0.tex.

VII.      Extract Animation

The new build.bin and atlas-0.tex contains all layers. Use them to extract anim.bin via krane.exe.

VIII.   View them in Spriter

Open *.scml in Spriter.

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
  • Create New...