Skip to content

fantasycalendar/FoundryVTT-TokenEase

Repository files navigation

Token Ease

Custom movement easing and speed


Latest Release Download Count Forge Installs Foundry Core Compatible Version Latest Version


Fantasy Computerworks Logo

A module made by Fantasy Computerworks.

Other works by us:

  • Fantasy Calendar - The best calendar creator and management app on the internet
  • Sequencer - Wow your players by playing visual effects on the canvas
  • Item Piles - Drag & drop items into the scene to drop item piles that you can then easily pick up
  • Potato Or Not - Automatically set up Foundry to the best visual settings for your players' potato computers
  • Tagger - Tag objects in the scene and retrieve them with a powerful API

Like what we've done? Buy us a coffee!

Buy Me a Coffee at ko-fi.com


What is this?

This module changes Foundry token animation behavior to introduce customizable animations. You can configure custom easing, custom movement speed, and movement duration to tokens.

No more will you suffer the lethargic slog of transporting tokens across the canvas!

Credits

  • Kerrec Snowmane for his implementation of the hooks
  • League of Extraordinary FoundryVTT Developers
  • Easing Functions Cheat Sheet (GitHub) - Copyright © 2020 Andrey Sitnik and Ivan Solovev

Download Here:

https://github.com/fantasycalendar/FoundryVTT-TokenEase/releases/latest/download/module.json

Module Settings

In the module settings, you can set the following options:

Module settings

Token Movement Speed

Default: 6

This sets the default animation speed of moving tokens, in spaces per second (6 is Foundry default).

Token Movement Duration

Default: 0

This sets the default animation duration for token movement (in milliseconds).

This overrides Token Movement Speed, and causes tokens to reach their destination in a set amount of time, regardless of distance.

Token Movement Ease

Default: Linear

This sets the type of ease used by the movement animation on tokens.

Ease In/Out

Default: In & Out

This sets the type of easing to use at the start/end of the animation. If Token Movement Ease is set to Linear, this has no impact.

Play animation on keypad movement

Default: False

If enabled, this will make moving tokens with the movement keys (arrow keys, etc) to play the animations configured above.

We do not recommend enabling this, as the movement distance is so short when using movement keys.

Token Settings

Each token can override the module's default movement animation settings.

Token settings

API

TokenDocument#update

As of Foundry v10, this natively accepts an additional optional parameter in its second parameter called animation:

token.document.update({
     x: ..., y: ...
}, {animate: true, animation: { movementSpeed: 10, duration: 0, easing: "linear" }})
Param Type Default
movementSpeed number 10
duration number 0
easing string linear

If speed or duration is given in the animation parameter, it will override the settings (see module settings).

If duration is provided, speed has no impact on the animation, as the token will reach the destination within the given duration.

If you change easing, it is recommended you use the ones below.


CanvasAnimation

Token Ease adds multiple easing functions to Foundry's CanvasAnimation interface:

  • linear
  • easeInSine
  • easeOutSine
  • easeInOutSine
  • easeInQuad
  • easeOutQuad
  • easeInOutQuad
  • easeInCubic
  • easeOutCubic
  • easeInOutCubic
  • easeInQuart
  • easeOutQuart
  • easeInOutQuart
  • easeInQuint
  • easeOutQuint
  • easeInOutQuint
  • easeInExpo
  • easeOutExpo
  • easeInOutExpo
  • easeInCirc
  • easeOutCirc
  • easeInOutCirc
  • easeInBack
  • easeOutBack
  • easeInOutBack
  • easeInElastic
  • easeOutElastic
  • easeInOutElastic
  • easeInBounce
  • easeOutBounce
  • easeInOutBounce