A downloadable RPG Maker MV plugin

Download NowName your own price

Version 0.4.1
Author: dingk
RMMV version 1.6.2
Updated April 22, 2020

Introduction

Tired of looking at the same animation every time you attack? Or trying to make a multi-hit skill but don't want to spend so much time fiddling with the animations editor? This plugin allows you to make slight variations to your animations, so it looks different every time a skill is executed. You can set the rotation and position to be different every time right in the skills editor using notetags. In addition, you can also make animations move with respect to the target's position.

Plugin is still in development, but I would like some feedback. Thanks.

Plugin Parameters

Animation Move Rate - The frame rate at which the animation moves. Animations run at 15 FPS by default. The higher the FPS, the smoother the animation moves. This doesn't affect how fast an animation moves.

  • Default - Same as default animation frame rate. If you used another plugin to change animation frame rate, this option will sync up animation and movement frames.
  • The other options allow animation to move independently of the animation frames. 60 FPS is the smoothest.

Global Animation Variance

  • You can set animation variance globally. Any time the animation is used, they will follow the variance/move settings defined here.
  • Notetags and scripts will override anything you set here.
  • Read the Notetags section below to fully understand the mechanics.


Notetags

Enter these notetags under the Note box.

Item and Skill Notetags

<Action Animation Variance>
rotation: a to b
position X: a to b
position Y: a to b
</Action Animation Variance>

Make the assigned skill animation vary with rotation and position. Each property is optional.

Rotation - randomize the rotation from a to b in degrees.
Position X - randomize the horizontal position from a to b in pixels
Position Y - randomize the vertical position from to in pixels

<Animation a Variance>
...
</Animation a Variance>

For skills that change or use multiple animations like in normal attacks and Yanfly's action sequences. If you use different animations in your action sequences, use this notetag, setting a to be the animation ID. Same setup as above.

<Action Animation Move[: frames]>
rotation: a to b
position X: a to b
position Y: a to b
screen X: a to b
screen Y: a to b
</Action Animation Move>

Make the assigned skill animation move with respect to the target's position. You can optionally set frames number of animation frames that the animation will move. Otherwise, it will move for the entire animation. This value is tied to your Animation Move Rate. Say if your animation move rate is 60 FPS, but your animations are 15 FPS. If you want to move an animation for 3 of its frames, you have to set frames to be 12.

Rotation - Rotate from a to b in degrees.
Position X / Position Y - Move from point a to b in pixels, relative to the target's position.
Screen X / Screen Y - Move from point a to b in pixels anywhere on the screen. Accepts Javascript code. Available variables are which is the user, and b which is the target. For example, you can grab their positions, using variables a.xa.y, etc.

Example:

<Action Animation Move>
position X: 0 to -200
</Action Animation Move>


<Animation b Move[: a]>
...
</Animation b Move>

For skills that change or use multiple animations like in normal attacks and Yanfly's action sequences. If you use different animations in your action sequences, use this notetag, setting b to be the animation ID. Same setup as above.

Advanced Notetags

In the above notetags, you can define custom formulas for the movement path of the animation. The format is:

<Action Animation Move>
property: formula from a to b
</Action Animation Move>

The animation will move using the formula, moving from a to b. Use the variable n to denote the current animation frame.

Example:

<Action Animation Move>
position X: Math.pow(n, 3) from 0 to 100
</Action Animation Move>

This animation will move from slow to fast with this exponential function.

Note: Do not use complex functions that have bounds like sine or logarithmic functions. For this, refer to the following.

<Action Animation Move>
position X: advancedFormula
</Action Animation Move>

If you don't want to be constrained to some bound or want to use functions like sine, use this notetag (which is just the above notetag without "from a to b"). Again, use n to denote the current animation frame in your formula.


Map Event Scripts

Map Event Animation Examples

 

Several scripts are available to customize animation variance for map event animations.

Place these before you execute Show Animation...

SetAnimationVariance(id, {
  rotation: [0, 0], positionX: [0, 0], positionY: [0, 0]
});

Sets the customized variance for an animation. Replace id with the animation ID. Replace 0's with another number.

You don't need to include every property if you aren't using it, but if you do, separate each property with commas.


SetAnimationMove(id, {
  rotation: [0, 0], positionX: [0, 0], positionY: [0, 0],
  screenX: [0, 0], screenY: [0, 0],
  formulaR: 'n', formulaX: 'n', formulaY: 'n',
  formulaSX: 'n', formulaSY: 'n'
}, frames);

Sets the customized movement for an animation. Replace id with the animation ID. Replace 0's with another number or formula.

As with the notetags, you can set a custom movement path using an arithmetic formula with variable n. Each represent rotation, positions X, Y, screen positions X, and Y respectively. You must surround each formula with a pair of quotation marks or apostrophes or you will get an error.

[Optional] Replace frames with the desired number of frames to move the animation.


ResetAnimations();

Removes any customizations from the scripts above. Be aware that this is called after every battle.


Replicating Example #1

This animation was created at Animation Move Rate: 1 (60 FPS) with 15 FPS animations. (See Plugin Parameters)

Animation 87 was modified to be static.


Replicating Example #2


Compatibility

Have yet to encounter compatibility issues.

Terms of Use

Free and commercial use and redistribution (under MIT License).

StatusIn development
CategoryTool
Rating
Rated 5.0 out of 5 stars
(2 total ratings)
Authordingk
TagsRPG Maker
Code licenseMIT License

Download

Download NowName your own price

Click download now to get access to the following files:

dingk_AnimationVariance.js 41 kB

Development log

Comments

Log in with itch.io to leave a comment.

God I fucking LOVE YOU. Exactly what I was looking for, I greatly appreciate it!

Deleted 1 year ago

Sorry to disappoint you, but my plugin doesn't change the frame rate of animations. That is what YEP_CoreEngine does. What Animation Move Rate does is change the frame rate of the movement (like moving a rock across the screen in one of the examples).

If you want to use the default 15 FPS animations at 30 FPS, what you can do is go to the animations database and copy and paste each frame so that each frame appears twice in the list. What that does is make the game show each frame twice, so that it looks like a 15 FPS animation at 30 FPS.

Deleted 1 year ago

hi! Very cool plugin.  Would it be possibly to modify it so that note tags could be added to enemies? So that for animations, positions would  change from enemy to enemy?  This would be super useful for a game with different size enemies.  

Thanks for the suggestion, I will consider it.