Corrosive Posted May 24, 2015 Share Posted May 24, 2015 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 2 Link to comment Share on other sites More sharing options...
Dragon Wolf Leo Posted May 24, 2015 Share Posted May 24, 2015 Thanks for making this. I want to link to this post in my tutorial. Link to comment Share on other sites More sharing options...
Corrosive Posted May 24, 2015 Author Share Posted May 24, 2015 @Dleowolf, go for it Link to comment Share on other sites More sharing options...
Gokiburi Posted January 8, 2016 Share Posted January 8, 2016 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 More sharing options...
xRoachx Posted February 13, 2016 Share Posted February 13, 2016 (edited) 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 February 13, 2016 by xRoachx Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now