Using multiple player skins?

I want my players to select various player character/skins, like to play as a human, frog, chicken, fox, etc. I have about a dozen of them. what is the best way to go about this?

One player sprite with a animation for each skin? Multiple player sprites all with just one set of skins? Some other awesome ideas I haven’t even thought of?

My biggest, but not only, concern is how I would play the correct animation skin when the player jumps, walks, etc. I would really like to avoid building a ton of “if globalvariable set to playerskin1 then use playerskin1jump”, etc. because there are various ways the player could do these actions (click on a object, press a button, etc) and those events are tied to a dozen different actions that I assume I would have to copy paste over and make just the one skin change on…a dozen times.

Thanks in advance for the advice! :slightly_smiling_face:

1 Like

There are pretty much 2 ways to go about it.

First one is to use one sprite with all the animations for all the skins and an instance variable to hold the name of the skin.

Each animation name will have to be in the format < skin_name >_< action >. For example Frog_idle, Frog_jump, Human_idle, Human_jump etc.

Store the skin selected in an instance variable on the sprite (in the screenshot below I’ve named it “Skin_Name”. Make sure the case matches that of the animation name.

When you change animation, use:

The second way is to have a sprite for each skin and name the sprite in the format Player_< skin_name >. For example, Player_Frog, or Player_Human etc.

Ensure each sprite has the same behaviours, and all the animation names are the same (including case) for each action. Then add each of the sprites to an Object Group, say called Player.

When the skin is selected, create the player character and change animations with:

Use the Player group name where you would normally use the sprite name.