Character Vault
Any Concept / Any System
Compendium
Your System Come To Life
Roll20 for Android
Streamlined for your Tablet
Roll20 for iPad
Streamlined for your Tablet

Personal tools

Script:Animation

From Roll20 Wiki

Jump to: navigation, search
API ScriptAuthor: manveti
Version: 0.4
Last Modified: 2015-06-26
Code: Animation
Dependencies: None
Conflicts: None

Animation allows the user to define and run animations consisting of images from a Roll20 user library. Each frame's duration, position, and orientation can be set independently of the other frames, as can aura and light properties.

It is recommended that this script be used in conjunction with the CommandShell module, which will improve output formatting and command discovery.


Syntax

!anim help [command]
!anim add <type> <parameters> [options]
!anim edit <type> <parameters> [options]
!anim rename <type> <parameters>
!anim copy <type> <parameters>
!anim remove <type> <parameters>
!anim list <type> <parameters>
!anim run <name> [options]
!anim export <name> [handout]
Formally:

S → anim command arguments
command → help
command → add
command → edit
command → rename
command → copy
command → remove
command → list
command → run
command → export
arguments → ε
argumentsstring arguments
argumentsoption arguments
option → -string
option → --string
option → -string string
option → --string string

Parameter Values
command Command (add, edit, rename, copy, remove, list, run, or export) for which to display command-specific help.
type One of the following values:
  • image: An image named for later use.
  • animation: A group of frames to be played in sequence.
  • frame: An image and some display properties, as part of an animation.
parameters Each subcommand can accept (and generally requires) further parameters:
!anim add image <name> [url]
!anim edit image <name> <url>
!anim rename image <name> <newname>
!anim remove image <name>
!anim list image [name]
  • name: Name of image to affect.
  • url: URL of image to give specified name (if no URL is provided, the image for the selected token will be used).
  • newname: New name of renamed image.
!anim add animation <name> [cycles]
!anim edit animation <name> <cycles>
!anim rename animation <name> <newname>
!anim copy animation <name> <newname>
!anim remove animation <name>
!anim list animation [name]
  • name: Name of animation to affect.
  • cycles: How many times to run through the animation's frames when it is played (default: 1).
  • newname: New name of renamed or copied animation.
!anim add frame <animation> <image> <duration> [options]
!anim edit frame <animation> <frame index> [options]
!anim copy frame <src animation> <src index> <dest animation> [dest index]
!anim remove frame <animation> <frame index>
!anim list frame <animation> [frame index]
  • animation: Name of animation containing affected frame.
  • image: Name or URL of image for new frame.
  • duration: Amount of time (in milliseconds) to display the new frame when the animation is played.
  • frame index: 0-based index of frame to affect.
  • src animation: Name of animation from which to copy frame.
  • src index: 0-based index of frame to copy.
  • dest animation: Name of animation into which to copy frame.
  • dest index: 0-based index at which to insert copied frame (after last frame if not provided).
!anim run <name> [options]
  • name: Name of animation to play.
!anim export <name> [handout]
  • name: Name of animation to export.
  • handout: Name of new handout into which to write commands to generate animation (commands will be whispered to user if handout not provided).
options !anim add frame and !anim edit frame accept the following options:
  • -x X, -y Y: Frame offset (in pixels) from the animation origin (default: 0)
  • -w W, --width W: Frame width in pixels (default: 70)
  • -h H, --height H: Frame height in pixels (default: 70)
  • -r A, --rotation A: Angle of frame rotation in degrees, relative to animation (default: 0)
  • -a R, --aura R: Radius (in page units) of frame's aura (default: no aura)
  • --auracolor C: Color of frame's aura (default: #FFFF99)
  • --aurasquare: Make frame's aura square (default: circular aura)
  • -t C, --tint C: Color tint to be applied to frame (default: none)
  • -l R, --light R: Radius (in page units) of light emitted by frame (default: none)
  • -d R, --dim R: Radius (in page units) at which frame's light begins to dim (default: none)
  • --lightangle A: Angle (in degrees) of light emitted by frame (default: 360)
  • -I IMG, --image IMG: Name or URL of frame image (as image parameter, for use with --copy and !anim edit)
  • -D T, --duration T: Amount of time (in milliseconds) to display the frame (as duration parameter, for use with --copy and !anim edit)
  • -i I, --insert I: (!anim add only). 0-based index at which to insert new frame (default: after last frame)
  • -C I, --copy I: (!anim add only). 0-based index of existing frame to copy. Any properties set by this command will override those of the frame being copied. If I is negative, it is relative to the insertion index (so -C -1 will copy the frame just before the new frame). In this form of the command, the image and duration parameters are optional.


!anim run accepts the following options:

  • -t T, --target T: Token on which to center animation. If not specified, the currently selected token will be used.
  • -x X, -y Y: Coordinates (in pixels) at which to display the specified animation. If either is not specified, the corresponding coordinate of the target token will be used. If no target is specified, the midpoint of the page will be used.
  • -r A, --rotation A: Rotation (in degrees) at which to display the animation (default: 0)
  • -f F, --timefactor F: Scale factor for frame durations (default: 1)
  • --xscale F: Size scale factor in the X direction, affecting frame sizes, offsets, aura radii, and light radii (default: 1)
  • --yscale F: Size scale factor in the Y direction, affecting frame sizes, offsets, aura radii, and light radii (default: 1)
Aura and light radii use the average of the X and Y scale factors.
  • --cycles N: Number of times to run through animation frames. Overrides the animation's cycles setting.
  • -p ID, --page ID: ID of the page on which to display the animation
  • -P, --playerpage: Display animation on page with player ribbon.
If no page is specified, the page containing the target token will be used. If no target is specified, the page with the player ribbon will be used.

Examples

!anim add image HighDensityFire
With a token selected, will name the token's image "HighDensityFire" for later reference.
!anim add animation Fireball
Will create an empty animation named "Fireball"
!anim add frame Fireball HighDensityFire 50 -w 35 -h 35 --light 10 -dim 5
Will create a 35x35 (half-square) frame using the "HighDensityFire" image. The frame will last for 50ms (1/20th of a second), and will emit 5 feet (1 square) of bright light and 5 further feet of dim light.
!anim add frame Fireball --copy 0 --rotation 10 -w 70 -h 70 -l 20 -d 10
Will create a 70x70 (full-square) frame using the first frame as a template. The new frame will be rotated 10 degrees clockwise, and will have both its size and light radius doubled.
!anim add frame Fireball -C -1 -I MidDensityFire -r 20 -w 140 -h 140 -l 40 -d 20
Will create another, larger frame, using the second frame as a template. This one will use a different image, will be rotated a further 10 degrees clockwise, and will have both its size and light radius doubled again.
!anim edit frame Fireball 2 -I HighDensityFire
If we decide the third frame was too early to switch to the "MidDensityFire" image, this command will change its image to "HighDensityFire".
!anim edit HighDensityFire http://...
Will change the "HighDensityFire" image to the new image. Note that this will not affect existing frames using the "HighDensityFire" image; they will continue to use whatever that name pointed at when they were defined.
!anim remove frame Fireball 17
Remove the 18th frame of the "Fireball" animation.
!anim list image
Will whisper a list of currently defined images, in alphabetical order, to the user who executed the command.
!anim list image HighDensityFire
Will whisper the URL of "HighDensityFire" to the user who executed the command, displaying the image in the whisper.
!anim list animation
Will whisper a list of currently defined animations, in alphabetical order, to the user who executed the command.
!anim list animation Spinner
Will whisper information about the specified animation to the user who executed the command.
!anim list frame Fireball
Will whisper a list of frames in the "Fireball" animation to the user who executed the command.
!anim list frame Fireball 0
Will whisper all the properties of the first frame of "Fireball" to the user who executed the command
!anim run Fireball
With a token selected, will run the "Fireball" animation centered on the selected token.
!anim run Fireball -f 5 -x 500 -y 350 --xscale 2 --yscale 2
Will run the "Fireball" animation centered at (500,350), doubled in size and running in slow-motion (taking five times as long to run).
!anim run Fireball -T @{target|token_id}
Will run the "Fireball" animation centered on the targeted token.

Changelog

v0.4 (2015-06-26)

  • Added ability to center animation on a token given by ID.


v0.3 (2015-06-22)

  • Added export commands.


v0.2 (2015-06-19)

  • Added rename and copy commands. Added output for all commands.


v0.1 (2015-06-16)

  • Initial release