Rivals of Aether – Plush, Hugging and Special Animation

Rivals of Aether Plush, Hugging and Special Animation

Learn how to make your workshop character compatible with the affectionate ninja kitty, Amber. Hugs and plushies!

How to Add Plushies (Easy)

Rivals of Aether – Plush, Hugging and Special Animation

Step 1:

Rivals of Aether – Plush, Hugging and Special Animation

First. Make a plush sprite for Amber. Ideally 13×13 pixels but not limited to that size. The game will manually scale this sprite 2x when Amber pulls out this plush. Save it as any file name you want. Put this inside your character’s sprite folder.

Step 2:

Inside your character’s init.gml script, put

  • plushForAmber

inside there. Can be on any line. Make sprite_get reference the exact name of the sprite that will be used for Amber’s plush. (Do not include “strip1” in the name)

Rivals of Aether – Plush, Hugging and Special Animation

Step 3:

Test it in-game with Amber using Forward + Taunt. If done right, Amber should pull out your character’s plush!

Rivals of Aether – Plush, Hugging and Special Animation

Non-compatible characters, or incorrectly setup plush will have Amber default to her own plush.

Rivals of Aether – Plush, Hugging and Special Animation

How to Add Hugs/Special Animation Interaction (Advanced)

Rivals of Aether – Plush, Hugging and Special Animation

Step 1:

Animate the interaction with both characters visible. It is recommended to have these characters on different layers for reasons explained later. The animation can be as long or as short as you want. Looping windows are allowed as well. Your character can be rendered in front or behind Amber which will be explained later.

Rivals of Aether – Plush, Hugging and Special Animation

Step 1.1:

The pivot point for the sprite is set on Amber. As shown with the green crosshair in this pic.

Rivals of Aether – Plush, Hugging and Special Animation

Step 2:

Save the animation into 2 different sprite strips. One for Amber and one for your character. Hide one of the layers when doing this. Make sure they’re scaled 2x to fit with the game’s pixel size ratio. Changing the canvas size between characters is not recommended. The file names can be any name you want.

Step 3:

Open up your character’s init.gml. Copy and paste the following. The comments explain what these variables are.

//Amber interaction variables
amber_herObj = noone; //The object ID of Amber when she hugs. Amber’s own script will set this when the hug is inititated
amber_thisHugSprite = sprite_get(“sandbert_hug”);
amber_herHugSprite = sprite_get(“amber_hug”);
amber_startHug = false; //This variable is set true from Amber’s scripts
amber_thisSpriteInFront = true; //When true, this character’s sprite is rendered over Amber’s sprite
amber_autoTurnToHer = true; //This character will automatically face towards Amber upon hug activatation when true

amber_hugStartPos[0] = 42; //The x target offset point (from Amber’s pos) where the player should hug Amber at.
amber_hugStartPos[1] = 0; //The y target offset point. Recommended to keep this at 0 for grounded interaction

amber_hugExitPos[0] = 42; //The x target offset point (from Amber’s pos) where the player stands at when exiting hug state.
amber_hugExitPos[1] = 0; //The y target offset point.

//The x target offset positions will inherit the character’s spr_dir when this is true.
//Set this to true for character interactions that face toward each other such as hugging
//Set this to false for centered interaction animations
amber_useSprDirOffset = true;

amber_hugExitTimer = 30; //How many frames should pass before either player can exit the hug window loop
amber_hugExitWindow = 3; //The window to jump to when either player presses a button to exit hug loop

Rivals of Aether – Plush, Hugging and Special Animation

Step 4:

Open up load.gml. Set the pivot point for the sprites. Both of these should focus on Amber’s position as shown in the previous screenshot (Step 1.1)

Rivals of Aether – Plush, Hugging and Special Animation

Step 5:

Inside update.gml, paste this into the script. We are setting Amber’s AT_EXTRA_3 to match the animation windows for the interaction. Do not set Amber’s sprites in attack_values. The variables from init are the ones that set these sprites.

//Amber hug compatibility
if (amber_startHug == true) //Amber will set this bool to true when this player accepts the hug
{
with (amber_herObj) //Access Amber’s player object and set the values
{
//Set the window values for Amber’s hugging. DO NOT change Amber’s sprites
//in the attack_values
set_window_value(AT_EXTRA_3, 1, AG_WINDOW_TYPE, 1);
//etc….

    //Important. Puts Amber in startup hug state (2).
    //Editing this variable not recommended
    amberHugState = 2; 
}
//Important. Puts this character in startup hug state (2).
//Editing this variable not recommended
oPlayerHugAmberState = 2;

//Set this bool back to false so that this doesn't loop
amber_startHug = false;

}

Rivals of Aether – Plush, Hugging and Special Animation

Step 6:

Test the interaction in-game. Amber’s interactive taunt is done by doing Up + Taunt.

Rivals of Aether – Plush, Hugging and Special Animation

Step 6.1:

If you do not have a 2nd controller, just control Amber to taunt near your character in training mode. If the compatibility works, they should play the animation. Looping window taunts can be cancelled by pressing shield, attack or special.

Rivals of Aether – Plush, Hugging and Special Animation

Notes: The interaction will read the pallet colors. If your character uses special colors that are altered in-game, make sure the sprite animation follows exactly how your character follows it.

Amber’s eyelashes uses a dark blue color. Make sure to include the exact color in her animations.

Rivals of Aether – Plush, Hugging and Special Animation

Other Notes:

The interaction does not have to be strictly hugging. It can be petting or any kind of interactive animation. Get creative!

Rivals of Aether – Plush, Hugging and Special Animation

Disclaimer: No inappropriate/explicit animations please, or they may get blacklisted.


Leave a Reply

Your email address will not be published. Required fields are marked *