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

Difference between revisions of "Script:Animation"

From Roll20 Wiki

Jump to: navigation, search
(Add page for Animation script)
 
m (suppress category)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{script overview
+
#Redirect[[API:Script Index]]
|name=Animation
+
<!-- Don't delete redirect, help center links to this page even though API have been removed -->
|author={{user profile|503018|manveti}}
+
 
|version=0.1
+
Creator: {{user profile|503018|manveti}}
|lastmodified=2015-06-16}}
+
  
 
'''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.
 
'''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.
Line 11: Line 10:
  
 
=== Syntax ===
 
=== Syntax ===
 +
<!-- suppress category
 +
 
{{syntaxbox top|anim|formal=true}}
 
{{syntaxbox top|anim|formal=true}}
 
{{API command|anim}} help {{API parameter|name=command|optional=true}}<br>
 
{{API command|anim}} help {{API parameter|name=command|optional=true}}<br>
 
{{API command|anim}} add {{API parameter|name=type}} {{API parameter|name=parameters}} {{API parameter|name=options|optional=true}}<br>
 
{{API command|anim}} add {{API parameter|name=type}} {{API parameter|name=parameters}} {{API parameter|name=options|optional=true}}<br>
 
{{API command|anim}} edit {{API parameter|name=type}} {{API parameter|name=parameters}} {{API parameter|name=options|optional=true}}<br>
 
{{API command|anim}} edit {{API parameter|name=type}} {{API parameter|name=parameters}} {{API parameter|name=options|optional=true}}<br>
 +
{{API command|anim}} rename {{API parameter|name=type}} {{API parameter|name=parameters}}<br>
 +
{{API command|anim}} copy {{API parameter|name=type}} {{API parameter|name=parameters}}<br>
 
{{API command|anim}} remove {{API parameter|name=type}} {{API parameter|name=parameters}}<br>
 
{{API command|anim}} remove {{API parameter|name=type}} {{API parameter|name=parameters}}<br>
 
{{API command|anim}} list {{API parameter|name=type}} {{API parameter|name=parameters}}<br>
 
{{API command|anim}} list {{API parameter|name=type}} {{API parameter|name=parameters}}<br>
 
{{API command|anim}} run {{API parameter|name=name}} {{API parameter|name=options|optional=true}}<br>
 
{{API command|anim}} run {{API parameter|name=name}} {{API parameter|name=options|optional=true}}<br>
 +
{{API command|anim}} export {{API parameter|name=name}} {{API parameter|name=handout|optional=true}}<br>
 
{{Formal API command|
 
{{Formal API command|
 
{{token|S}} {{rarr}} anim {{token|command}} {{token|arguments}}<br>
 
{{token|S}} {{rarr}} anim {{token|command}} {{token|arguments}}<br>
Line 23: Line 27:
 
{{token|command}} {{rarr}} add<br>
 
{{token|command}} {{rarr}} add<br>
 
{{token|command}} {{rarr}} edit<br>
 
{{token|command}} {{rarr}} edit<br>
 +
{{token|command}} {{rarr}} rename<br>
 +
{{token|command}} {{rarr}} copy<br>
 
{{token|command}} {{rarr}} remove<br>
 
{{token|command}} {{rarr}} remove<br>
 
{{token|command}} {{rarr}} list<br>
 
{{token|command}} {{rarr}} list<br>
 
{{token|command}} {{rarr}} run<br>
 
{{token|command}} {{rarr}} run<br>
 +
{{token|command}} {{rarr}} export<br>
 
{{token|arguments}} {{rarr}} {{epsilon}}
 
{{token|arguments}} {{rarr}} {{epsilon}}
 
{{token|arguments}} {{rarr}} {{string}} {{token|arguments}}<br>
 
{{token|arguments}} {{rarr}} {{string}} {{token|arguments}}<br>
Line 37: Line 44:
  
 
{{param description top}}
 
{{param description top}}
{{param description|name=command|value=Command (add, edit, remove, list, or run) for which to display command-specific help.}}
+
{{param description|name=command|value=Command (add, edit, rename, copy, remove, list, run, or export) for which to display command-specific help.}}
 
{{param description|name=type|value=One of the following values:
 
{{param description|name=type|value=One of the following values:
 
* '''image''': An image named for later use.
 
* '''image''': An image named for later use.
Line 45: Line 52:
 
:!anim add image <''name''> [''url'']
 
:!anim add image <''name''> [''url'']
 
:!anim edit image <''name''> <''url''>
 
:!anim edit image <''name''> <''url''>
 +
:!anim rename image <''name''> <''newname''>
 
:!anim remove image <''name''>
 
:!anim remove image <''name''>
 
:!anim list image [''name'']
 
:!anim list image [''name'']
 
::* ''name'': Name of image to affect.
 
::* ''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).
 
::* ''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 add animation <''name''> [''cycles'']
 
:!anim edit animation <''name''> <''cycles''>
 
:!anim edit animation <''name''> <''cycles''>
 +
:!anim rename animation <''name''> <''newname''>
 +
:!anim copy animation <''name''> <''newname''>
 
:!anim remove animation <''name''>
 
:!anim remove animation <''name''>
 
:!anim list animation [''name'']
 
:!anim list animation [''name'']
 
::* ''name'': Name of animation to affect.
 
::* ''name'': Name of animation to affect.
 
::* ''cycles'': How many times to run through the animation's frames when it is played (default: 1).
 
::* ''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 add frame <''animation''> <''image''> <''duration''> [''options'']
 
:!anim edit frame <''animation''> <''frame index''> [''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 remove frame <''animation''> <''frame index''>
 
:!anim list frame <''animation''> [''frame index'']
 
:!anim list frame <''animation''> [''frame index'']
Line 63: Line 76:
 
::* ''duration'': Amount of time (in milliseconds) to display the new frame when the animation is played.
 
::* ''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.
 
::* ''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'']
 
:!anim run <''name''> [''options'']
::* ''name'': Name of animation to play.}}
+
::* ''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).}}
 
{{param description|name=options|value=<code>!anim add frame</code> and <code>!anim edit frame</code> accept the following options:
 
{{param description|name=options|value=<code>!anim add frame</code> and <code>!anim edit frame</code> accept the following options:
 
* '''-x''' ''X'', '''-y''' ''Y'': Frame offset (in pixels) from the animation origin (default: 0)
 
* '''-x''' ''X'', '''-y''' ''Y'': Frame offset (in pixels) from the animation origin (default: 0)
Line 83: Line 103:
 
<br>
 
<br>
 
<code>!anim run</code> accepts the following options:
 
<code>!anim run</code> accepts the following options:
* '''-x''' ''X'', '''-y''' ''Y'': Coordinates (in pixels) at which to display the specified animation.  If either is not specified, the corresponding coordinate of the currently selected token will be used.  If no token is used, the midpoint of the page will be used.
+
* '''-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)
 
* '''-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)
 
* '''-f''' ''F'', '''--timefactor''' ''F'': Scale factor for frame durations (default: 1)
Line 92: Line 113:
 
* '''-p''' ''ID'', '''--page''' ''ID'': ID of the page on which to display the animation
 
* '''-p''' ''ID'', '''--page''' ''ID'': ID of the page on which to display the animation
 
* '''-P''', '''--playerpage''': Display animation on page with player ribbon.
 
* '''-P''', '''--playerpage''': Display animation on page with player ribbon.
::If no page is specified, the page containing the currently selected token will be used.  If no token is selected, the page with the player ribbon will be used.}}
+
::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.}}
 
{{param description bottom}}
 
{{param description bottom}}
 +
 +
-->
  
 
=== Examples ===
 
=== Examples ===
Line 129: Line 152:
 
:!anim run Fireball -f 5 -x 500 -y 350 --xscale 2 --yscale 2
 
:!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).
 
::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 ===
 
=== Changelog ===
 +
{{changelog version|0.4|2015-06-26|* Added ability to center animation on a token given by ID.}}
 +
{{changelog version|0.3|2015-06-22|* Added export commands.}}
 +
{{changelog version|0.2|2015-06-19|* Added rename and copy commands.  Added output for all commands.}}
 
{{changelog version|0.1|2015-06-16|* Initial release}}
 
{{changelog version|0.1|2015-06-16|* Initial release}}
 +
 +
<!-- [[Category:Discontinued API Scripts]] -->

Latest revision as of 19:43, 20 September 2021

  1. RedirectAPI:Script Index

Creator: manveti

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.


[edit] Syntax

[edit] 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.

[edit] 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