Jump to content

[Guide/Info] Faces used in every player animation


Recommended Posts

If you just want at the data, skip to the spoiler tag below!

 

"What are each of the faces in the faces folder of the extended character template?"

 

I've seen this question quite a few times.  Answering it is not as simple as you'd think, though.  The player's face is not unlike your own face:  you don't have a specific "uneventful fishing" face, and a specific "watching a slow movie" face...  instead you might have a "slightly bored" face that is used for both those activities.

 

You have likely heard or seen the term "symbol" in reference to animations.  A symbol is effectively a collection of images that serve the same purpose.  Each image is stored as a "symbol frame".  So, for example, all of the various bendings of legs are stored in the leg symbol, and all the various faces are stored in the face symbol.

 

Every key frame in an animation contains a list of elements used in that frame.  Each element is an instance of a symbol, and contains information about the element's position/scale/rotation/skew, the name of the symbol the element uses, and the index of the symbol frame that is to be used until the next key frame.

 

Each of the images inside the face folder of the extended character template map to a face symbol frame.  As such, there is no simple 1-to-1 face-to-animation translation.

 

However!  I recently wrote a lua script that can parse anim.bin files, so I put it to work by extracting all of the face symbol data from every player animation file. These are the results.

 

In order to cut down on the size of this list, instead of showing the face symbol used for every frame of an animation, I forced it to combine adjacent frames that used the same symbol.  What you are looking at is a list of the face symbols used in every animation, with the duration excluded.

 

Here's an example from the anim.bin file in player_attacks.zip:

facings   animation name                faces used[    < >] punch                         face-4, face-6, face-4
"facings" refers to the directions that are valid for that animation.  This animation in particular would be equivalent to a Spriter animation with the name "punch_side".

 

You can see that the (sideways) punch animation uses face-4, then face-6, then face-4 again.

 

That said, here's the beef:

File: player_actions.zip[v < ^ >] distress_pre                  face-0[      ^] hit_goo                       <none used>[v < ^ >] distress_pst                  face-12, face-0[v < ^ >] hit_back                      face-6, face-4[v < ^ >] dial_loop                     face-0, face-9, face-10, face-0, face-9, face-0, face-9, face-0, face-9, face-10, face-0, face-9, face-0, face-9, face-0, face-10, face-9, face-10, face-0, face-9, face-10, face-0, face-9, face-0[v < ^ >] distress_loop                 face-12[v < ^ >] hit_goo                       face-2, face-0[v < ^ >] hit_goo_back                  face-6, face-4[v < ^ >] hit                           face-2, face-0[v < ^ >] buck_pst                      face-2, face-0[v < ^ >] research                      face-0, face-2, face-0, face-11, face-2, face-0[v < ^ >] bucked                        face-12, face-2[v < ^ >] sleep                         face-11[v < ^ >] death                         face-0, face-12, face-13[      ^] hit                           <none used>[v < ^ >] wakeup                        face-11, face-12, face-2, face-0, face-2, face-0File: player_actions_axe.zip[    < >] chop_lag                      face-4[      ^] chop_loop                     <none used>[      ^] chop_pre                      <none used>[      v] chop_loop                     face-0[      v] chop_lag                      face-0[      v] chop_pre                      face-0[    < >] chop_loop                     face-4[    < >] chop_pre                      face-4[      ^] chop_lag                      <none used>File: player_actions_blowdart.zip[      ^] dart                          <none used>[    < >] dart                          face-4, face-6, face-5, face-4[      v] dart                          face-0, face-10, face-2, face-0File: player_actions_boomerang.zip[    < >] throw                         face-4[      v] catch_pre                     face-0[      ^] catch_pre                     <none used>[      ^] catch                         <none used>[    < >] catch                         face-4[      v] catch                         face-0[      v] throw                         face-0, face-10, face-0[    < >] catch_pre                     face-4[      ^] throw                         <none used>File: player_actions_bugnet.zip[      v] bugnet_pre                    face-0[    < >] bugnet_lag                    face-4[      v] bugnet                        face-0, face-10, face-0[      v] bugnet_lag                    face-0[    < >] bugnet_pre                    face-4[      ^] bugnet                        <none used>[    < >] bugnet                        face-4[      ^] bugnet_lag                    <none used>[      ^] bugnet_pre                    <none used>File: player_actions_eat.zip[v < ^ >] quick_eat                     face-10, face-0[v < ^ >] refuseeat_pre                 face-0, face-30, face-27, face-26[v < ^ >] eat                           face-10, face-8, face-0, face-10, face-9, face-0[v < ^ >] eat_lag                       face-10[v < ^ >] quick_eat_pre                 face-0, face-2, face-10[v < ^ >] quick_eat_lag                 face-10[v < ^ >] eat_pre                       face-10[v < ^ >] hungry                        face-0, face-10, face-0[v < ^ >] refuseeat                     face-26, face-27, face-0File: player_actions_fishing.zip[      v] bite_light_pre                face-0[      ^] fishing_pst                   <none used>[      v] bite_light_loop               face-12[      v] fishing_idle                  face-0[      ^] bite_light_lag                <none used>[      ^] fish_nocatch                  <none used>[      v] bite_heavy_lag                face-0[      v] fish_catch                    face-2, face-0[      v] fishing_cast                  face-0[      ^] bite_heavy_pre                <none used>[      ^] fishing_pre                   <none used>[      ^] fishing_cast                  <none used>[      v] bite_light_lag                face-0[    < >] fish_nocatch                  face-6, face-4[      ^] fishing_idle                  <none used>[    < >] bite_light_pst                face-7, face-4[      v] bite_light_pst                face-12, face-0[      ^] fishing_lag                   <none used>[    < >] fishing_cast                  face-4[    < >] bite_light_lag                face-4[      v] bite_heavy_loop               face-2[    < >] fishing_idle                  face-4[    < >] bite_light_loop               face-7[      ^] fish_catch                    face-0, face-4[    < >] fishing_pre                   face-4[    < >] bite_light_pre                face-4[      ^] bite_heavy_loop               <none used>[      ^] bite_heavy_lag                <none used>[      ^] bite_light_pst                <none used>[      ^] bite_light_loop               <none used>[      v] fishing_lag                   face-0[      v] fishing_pre                   face-0[    < >] fishing_lag                   face-4[      ^] bite_light_pre                <none used>[      v] fishing_pst                   face-0[    < >] bite_heavy_lag                face-4[    < >] bite_heavy_loop               face-6[      v] bite_heavy_pre                face-0[      v] fish_nocatch                  face-2, face-12, face-2, face-0[    < >] bite_heavy_pre                face-4[    < >] fishing_pst                   face-4[    < >] fish_catch                    face-6, face-4, face-0, face-4File: player_actions_item.zip[    < >] light_fire                    face-4[      v] light_fire_pst                face-0[v < ^ >] item_hat                      face-0, face-10[      ^] pickup                        <none used>[      v] build_pre                     face-0[      ^] light_fire_pst                <none used>[    < >] build_loop                    face-4[      ^] give                          <none used>[    < >] pickup_lag                    face-4[      ^] light_fire                    <none used>[    < >] pickup                        face-4[      v] pickup_lag                    face-0[      ^] pickup_lag                    <none used>[      v] pickup                        face-0[      v] give_pst                      face-0[    < >] build_pre                     face-4[      v] build_loop                    face-10[v < ^ >] item_in                       face-0, face-10, face-0[    < >] light_fire_pst                face-4[    < >] give                          face-4[      v] light_fire                    face-0[v < ^ >] item_out                      face-0, face-10[    < >] build_pst                     face-4[      v] build_pst                     face-10[    < >] give_pst                      face-4[      ^] build_loop                    <none used>[      ^] build_pre                     <none used>[      ^] build_pst                     <none used>[      ^] give_pst                      <none used>[      v] give                          face-0[    < >] pickup_pst                    face-4[      ^] pickup_pst                    <none used>[      v] pickup_pst                    face-0File: player_actions_pickaxe.zip[      v] pickaxe_pre                   face-0[    < >] pickaxe_pre                   face-4[      v] pickaxe_lag                   face-0[    < >] pickaxe_loop                  face-4[      ^] pickaxe_pst                   <none used>[      ^] pickaxe_pre                   <none used>[      v] pickaxe_pst                   face-0[      ^] pickaxe_loop                  <none used>[      v] pickaxe_loop                  face-0, face-10, face-0[    < >] pickaxe_pst                   face-4[    < >] pickaxe_lag                   face-4[      ^] pickaxe_lag                   <none used>File: player_actions_shovel.zip[      ^] shovel_pst                    <none used>[    < >] shovel_pre                    face-4[      ^] shovel_lag                    <none used>[      ^] shovel_loop                   <none used>[      ^] shovel_pre                    <none used>[      v] shovel_loop                   face-0[    < >] shovel_loop                   face-4[      v] shovel_lag                    face-0[      v] shovel_pst                    face-0[    < >] shovel_pst                    face-4[    < >] shovel_lag                    face-4[      v] shovel_pre                    face-0File: player_actions_uniqueitem.zip[v < ^ >] action_uniqueitem_pre         face-0, face-10[v < ^ >] razor                         face-10, face-0, face-10, face-0[v < ^ >] action_uniqueitem_lag         face-10[v < ^ >] flute                         face-10, face-6, face-2, face-6, face-11, face-10, face-0[v < ^ >] bell                          face-10, face-8, face-0, face-8, face-11, face-10, face-0[v < ^ >] bedroll_wakeup                face-11, face-3, face-0, face-4, face-0[v < ^ >] bedroll_sleep_loop            face-11[v < ^ >] fan                           face-10, face-2, face-6, face-4, face-11, face-10, face-0[v < ^ >] bedroll                       face-10, face-4, face-0, face-11[v < ^ >] horn                          face-10, face-6, face-11, face-10, face-0[v < ^ >] book                          face-10, face-4, face-11, face-10, face-0File: player_amulet_resurrect.zip[v < ^ >] amulet_rebirth                face-12, face-2, face-0File: player_attacks.zip[      v] punch                         face-0, face-2, face-0[    < >] atk_lag                       face-4[      v] atk_lag                       face-10[    < >] atk                           face-4[      ^] punch                         <none used>[      ^] atk                           <none used>[      ^] atk_pre                       <none used>[    < >] punch                         face-4, face-6, face-4[      ^] atk_lag                       <none used>[    < >] atk_pre                       face-4[      v] atk_pre                       face-0, face-10[      v] atk                           face-10, face-0File: player_basic.zip[      v] run_pre                       face-0[    < >] run_pst                       face-4[    < >] run_pre                       face-4[    < >] run_loop                      face-4[      ^] run_pre                       <none used>[      ^] run_pst                       <none used>[      v] run_loop                      face-0[      v] run_pst                       face-0[      ^] run_loop                      <none used>File: player_bush_hat.zip[v < ^ >] hide                          face-0[v < ^ >] hide_idle                     <none used>File: player_cave_enter.zip[v < ^ >] enter                         face-2, face-9, face-2, face-0File: player_emotesxl.zip[v < ^ >] emoteXL_annoyed               face-0, face-30, face-28[v < ^ >] anim                          face-0[v < ^ >] emoteXL_kiss                  face-0, face-1, face-6, face-18, face-15, face-0[v < ^ >] emoteXL_sad                   face-0, face-24, face-29[v < ^ >] emoteXL_waving4               face-0, face-28, face-0[v < ^ >] emoteXL_facepalm              face-0, face-1, face-2, face-1, face-0[v < ^ >] emoteXL_bonesaw               face-0, face-28, face-0[v < ^ >] emoteXL_angry                 face-2, face-27, face-26, face-25, face-26, face-27[v < ^ >] emoteXL_waving2               face-0[v < ^ >] emoteXL_waving3               face-0, face-3[v < ^ >] emoteXL_waving1               face-0, face-15[v < ^ >] emoteXL_happycheer            face-0, face-15File: player_frozen.zip[v < ^ >] frozen_loop_pst               face-2[v < ^ >] frozen                        face-2File: player_ghost_withhat.zip[v < ^ >] shy                           <none used>[v < ^ >] hit                           <none used>[v < ^ >] misc                          <none used>[v < ^ >] dissipate                     <none used>[v < ^ >] idle                          <none used>[v < ^ >] appear                        <none used>[v < ^ >] angry                         <none used>File: player_groggy.zip[    < >] idle_walk_pre                 face-7[      ^] idle_walk_pst                 <none used>[v < ^ >] yawn                          face-0, face-1, face-2, face-23, face-20[      v] idle                          face-0[      v] idle_walk                     face-20[      ^] idle_walk                     <none used>[      v] idle_walk_pst                 face-20[    < >] idle_walk                     face-7[    < >] idle_walk_pst                 face-7[      ^] idle_walk_pre                 <none used>[      v] idle_walk_pre                 face-20File: player_idles.zip[      v] idle_sanity_loop              face-2[    < >] idle_inaction                 face-4[    < >] idle_hot_pre                  face-4, face-9[    < >] idle_sanity_pre               face-4[      v] idle                          face-0[      ^] idle_sanity_pre               <none used>[    < >] idle_sanity_loop              face-6[      v] idle_hot_pst                  face-10, face-3, face-2, face-12, face-1, face-2, face-3, face-0[      ^] idle_hot_pst                  <none used>[      ^] idle_loop                     <none used>[      ^] idle                          <none used>[      ^] idle_hot_pre                  <none used>[      ^] idle_hot_loop                 <none used>[      v] idle_hot_pre                  face-0, face-9[      v] idle_hot_loop                 face-10, face-9, face-10[    < >] idle_hot_loop                 face-10, face-9, face-10[    < >] idle_hot_pst                  face-10, face-3, face-2, face-12, face-1, face-2, face-3, face-0, face-4[      ^] idle_sanity_loop              <none used>[      ^] idle_inaction                 <none used>[      v] idle_loop                     face-0, face-1, face-2, face-3, face-0[    < >] idle                          face-4[      ^] idle_inaction_sanity          <none used>[      v] idle_sanity_pre               face-0[    < >] idle_inaction_sanity          face-4, face-6[      v] idle_inaction_sanity          face-0, face-12, face-2[      v] idle_inaction                 face-0, face-1, face-0[    < >] idle_loop                     face-4, face-5, face-6, face-7, face-4File: player_idles_groggy.zip[    < >] idle_groggy                   face-7[      v] idle_groggy_pre               face-20[      v] idle                          face-0[    < >] idle_groggy01_pre             face-4, face-20[    < >] idle_groggy01_loop            face-20[      ^] idle_groggy01_loop            <none used>[    < >] idle_groggy_pst               face-7[      v] idle_groggy_pst               face-20[      ^] idle_groggy                   <none used>[      ^] idle_groggy_pre               <none used>[      v] idle_groggy                   face-20[      ^] idle_groggy01_pst             <none used>[      ^] idle_groggy01_pre             <none used>[    < >] idle_groggy01_pst             face-20, face-4[      v] idle_groggy01_pre             face-20[    < >] idle_groggy_pre               face-7[      v] idle_groggy01_pst             face-20[      v] idle_groggy01_loop            face-20[      ^] idle_groggy_pst               <none used>File: player_idles_shiver.zip[      ^] idle_shiver_loop              <none used>[      v] idle_shiver_pst               face-2, face-0[      ^] idle_shiver_pre               <none used>[    < >] idle_shiver_pst               face-6, face-4[    < >] idle_shiver_loop              face-6[      ^] idle_shiver_pst               <none used>[    < >] idle_shiver_pre               face-4[      v] idle_shiver_loop              face-2[      v] idle_shiver_pre               face-0File: player_jump.zip[      ^] jump_pre                      <none used>[      ^] jumpout                       <none used>[    < >] jumpout                       face-4[    < >] jump_pre                      face-4[      v] jump_lag                      face-0[    < >] jump_lag                      face-4[      ^] jump_lag                      <none used>[      v] jumpout                       face-0[      ^] jump                          <none used>[    < >] jump                          face-4[      v] jump_pre                      face-0[      v] jump                          face-0File: player_knockedout.zip[v < ^ >] sleep_loop                    face-17[v < ^ >] dozy                          face-0, face-22, face-20, face-18, face-17File: player_knockedout_wickerbottom.zip[v < ^ >] insomniac_dozy                face-0, face-22, face-20, face-18, face-17, face-31[v < ^ >] insomniac_sleep_loop          face-31File: player_mime.zip[v < ^ >] mime7                         face-0, face-4, face-6, face-4, face-6, face-4[v < ^ >] mime8                         face-0, face-11[v < ^ >] mime4                         face-0, face-11[v < ^ >] mime3                         face-0[v < ^ >] mime1                         face-0, face-10[v < ^ >] mime6                         face-0, face-12[v < ^ >] mime5                         face-0, face-11[v < ^ >] mime2                         face-0, face-12File: player_one_man_band.zip[v < ^ >] idle_onemanband2_loop         face-10[v < ^ >] idle_onemanband1_loop         face-11[v < ^ >] idle_onemanband1_pre          face-0[v < ^ >] idle_onemanband1_pst          face-11[v < ^ >] idle_onemanband2_pre          face-0, face-11[v < ^ >] idle_onemanband2_pst          face-10, face-0File: player_rebirth.zip[v < ^ >] rebirth                       face-2, face-0File: player_revive_fx.zip[v < ^ >] hit                           <none used>[v < ^ >] transform                     <none used>[v < ^ >] shudder                       <none used>File: player_revive_ghosthat.zip[v < ^ >] hit                           <none used>[v < ^ >] transform                     <none used>[v < ^ >] shudder                       <none used>File: player_revive_to_character.zip[v < ^ >] transform_end                 face-2, face-0[v < ^ >] anim                          face-0File: player_shock.zip[v < ^ >] shock                         face-12, face-14, face-12, face-14, face-12, face-14, face-12, face-14, face-12, face-14, face-12, face-14, face-12, face-14, face-12, face-14[v < ^ >] shock_pst                     face-12, face-0File: player_slurtle_armor.zip[v < ^ >] hideshell                     face-0[v < ^ >] hideshell_idle                <none used>[v < ^ >] hitshell                      <none used>File: player_staff.zip[v < ^ >] staff                         face-2, face-0[v < ^ >] staff_lag                     face-2[v < ^ >] staff_pre                     face-0, face-2File: player_teleport.zip[v < ^ >] teleport                      face-0, face-12, face-4, face-12, face-2File: player_throne.zip[v < ^ >] throne_loop                   face-12, face-2, face-12, face-2[v < ^ >] appear                        face-12[v < ^ >] dismount                      face-12[v < ^ >] anim                          face-12File: player_tornado.zip[v < ^ >] tornado                       face-0, face-9, face-10, face-8, face-2, face-0[v < ^ >] anim                          face-0File: player_wolfgang.zip[v < ^ >] powerdown                     face-0, face-2, face-0[v < ^ >] powerup                       face-0, face-2, face-0File: player_woodie.zip[      v] woodie_chop_pre               face-0[      v] woodie_chop_loop              face-0[      ^] woodie_chop_loop              <none used>[v < ^ >] misc                          <none used>[      ^] woodie_chop_pre               <none used>[    < >] woodie_chop_loop              face-4[    < >] woodie_chop_pre               face-4[v < ^ >] transform_pre                 face-0, face-2, face-12
  • Thanks 2
Link to comment
Share on other sites

Could this also be used if I would want to take the RoG template and also make it SW compatible?

 

So far everything seems to work if I just use the SW speech file. Only the paddle, droplet and wake_paddle sprites aren't being used.

 

(Maybe there are more sprites though such as facial animations and such that I am missing)

Link to comment
Share on other sites

Could you maybe give a bit more information on how to use this as I have no way idea where to start.

 

edit: Wait is this simply the data rather than changing the animations and such?

Edited by xRoachx
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...