Je pense qu'il faudrait faire un spritesheet de chaque arme à la taille de ton personnage, un peu comme quand tu fais un générateur de personnage avec des assets, un peu à la manière de ce logiciel :
https://1up-indie2.itch.io/character-creation-tool-full
Après tu fais un calque sur les diverses actions de ton personnage de base, et tu y dessines les mouvements des armes, puis tu retires tout simplement le calque de ton personnage.... Pour le reste tu créés en jeu un sprite à la même position que ton personnage, et avec le même système de nommage des actions de base (genre Sprite_Courrir, Sprite_Marcher) etc, et lié à l'armes actuellement portées par le joueur.
Genre :
Personnage.Action = Courir;
Charger_Animation(Courir)
Fonction Charger_Animation(action)
{
PlayAnimation("spritesheet_joueur.png")
if(Personnage.isArmed)
{
PlayAnimation("spritesheet" + Personnage.Arme + ".png")
}
}
Le logiciel Game Character HUB / Portfolio Edition est à mon sens le plus facile pour créer diverses actions et y lier différents assets (au pire tu peux dessiner sur ton logiciel habitué et importer ensuite les images dedans)
Donc t'as pas trop le choix, je pense, autrement il faut utiliser un truc façon DragonBones ou Spriter, mais comme dit plus haut, ça fait une animation un peu trop pantin, et suivant les armes tu risques de devoir faire des ajustement. Car tu peux y prédéfinir des mouvements (genre rotation de x degré,, déplacement sur l'axe x/y/z etc), mais est-ce que ça collera avec des petites armes comme des grosses ? Peut être voir par rapport au point de pivot par exemple.