Action: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
Fox (talk | contribs)
No edit summary
m fix redundancy, add commented-out notes, fix spelling
Line 1: Line 1:
An action is an animation for an [[actor]]. Actions are defined outside of an [[actor]].
'''action''' ''<name> <startframe> <frames> <viewtype> <incvalue> <delay>''
'''action''' ''<name> <startframe> <frames> <viewtype> <incvalue> <delay>''


Line 17: Line 15:
:'''7''' - The sprite will have 12 angles constructed from 7 art tiles, five of which are mirrored.  A new frame is drawn every 30 degrees in a clockwise pattern beginning with the front of the sprite using the following pattern: 1, 2, 3, 4, 5, 6, 7, 6M, 5M, 4M, 3M, 2M.
:'''7''' - The sprite will have 12 angles constructed from 7 art tiles, five of which are mirrored.  A new frame is drawn every 30 degrees in a clockwise pattern beginning with the front of the sprite using the following pattern: 1, 2, 3, 4, 5, 6, 7, 6M, 5M, 4M, 3M, 2M.
:'''8''' - The sprite will have 8 angles constructed from 8 art tiles.  A new frame is drawn every 45 degrees in a clockwise pattern beginning with the front of the sprite using the simple pattern: 1, 2, 3, 4, 5, 6, 7, 8.
:'''8''' - The sprite will have 8 angles constructed from 8 art tiles.  A new frame is drawn every 45 degrees in a clockwise pattern beginning with the front of the sprite using the simple pattern: 1, 2, 3, 4, 5, 6, 7, 8.
<!--what if anything do the other values do--?


1 is generally used for pickups and often things like fire hydrants. 3 is useful only for very symmetrical actors but does give the most angles. 5 and 7 are for enemies and simila which have a single axis of symetry and where you wan't a front view such that when they face at you they actually look like they are facing at you. 8 is for stuff with little in the way of symetry. -->
View type 1 is generally used for pickups and often things like fire hydrants. View type 3 is useful only for very symmetrical actors but does give the most angles. View types 5 and 7 are for enemies and similar which have a single axis of symmetry and where you want a front view such that when they face at you they actually look like they are facing at you. View type 8 is for stuff with little in the way of symmetry.
   
   
<incvalue> is the direction of the animation. 1 to advance forward, -1 to go back.
<incvalue> is the direction of the animation. 1 to advance forward, -1 to go back.
Line 25: Line 22:
<delay> is the delay between frames.
<delay> is the delay between frames.


The delay change everytime you add a value of 4, in other words, 1-3 has the same result as zero, 5-7 same as 4, etc.
The delay change every time you add a value of 4, in other words, 1-3 has the same result as zero, 5-7 same as 4, etc.


Also the delay is not proportional to the value, setting 16 doesn't mean double of speed than 8, the calculation is done with this: the speed of a delay 0 equal to a [[ifcount|tic]] counter; the speed of a delay 4 is 1/2 of it; 8 is 1/3; 12 is 1/4; 16 is 1/5; 20 is 1/6; etc.
Also the delay is not proportional to the value, setting 16 doesn't mean double of speed than 8, the calculation is done with this: the speed of a delay 0 equal to a [[ifcount|tic]] counter; the speed of a delay 4 is 1/2 of it; 8 is 1/3; 12 is 1/4; 16 is 1/5; 20 is 1/6; etc.

Revision as of 14:11, 4 August 2020

action <name> <startframe> <frames> <viewtype> <incvalue> <delay>

An action is an animation for an actor. Actions are defined outside of an actor.

<name> is the name of the action.

<startframe> is the starting frame number (relative to the main sprite of the actor).

<frames> is the total number of frames in the action. Must be at least 1.

<viewtype> is the number of sides drawn for the actor. Prior to 3D models, this method was used to simulate a 3D appearance for sprites. Valid values are:

1 - The sprite will appear the same regardless of the angle at which it is viewed.
3 - The sprite will have 16 angles built from only 4 art tiles. A new frame is drawn every 22.5 degrees in a clockwise pattern beginning with the front of the sprite. The pattern is as follows, with 1, 2, 3, and 4 being the order of the four tiles used, and M denoting that the tile is mirrored: 1M, 2M, 3M, 4M, 4, 3, 2, 1, 1M, 2M, 3M, 4M, 4, 3, 2, 1.
5 - The sprite will have 8 angles constructed from 5 art tiles, three of which are mirrored. A new frame is drawn every 45 degrees in a clockwise pattern beginning with the front of the sprite using the following pattern: 1, 2, 3, 4, 5, 4M, 3M, 2M.
7 - The sprite will have 12 angles constructed from 7 art tiles, five of which are mirrored. A new frame is drawn every 30 degrees in a clockwise pattern beginning with the front of the sprite using the following pattern: 1, 2, 3, 4, 5, 6, 7, 6M, 5M, 4M, 3M, 2M.
8 - The sprite will have 8 angles constructed from 8 art tiles. A new frame is drawn every 45 degrees in a clockwise pattern beginning with the front of the sprite using the simple pattern: 1, 2, 3, 4, 5, 6, 7, 8.

View type 1 is generally used for pickups and often things like fire hydrants. View type 3 is useful only for very symmetrical actors but does give the most angles. View types 5 and 7 are for enemies and similar which have a single axis of symmetry and where you want a front view such that when they face at you they actually look like they are facing at you. View type 8 is for stuff with little in the way of symmetry.

<incvalue> is the direction of the animation. 1 to advance forward, -1 to go back.

<delay> is the delay between frames.

The delay change every time you add a value of 4, in other words, 1-3 has the same result as zero, 5-7 same as 4, etc.

Also the delay is not proportional to the value, setting 16 doesn't mean double of speed than 8, the calculation is done with this: the speed of a delay 0 equal to a tic counter; the speed of a delay 4 is 1/2 of it; 8 is 1/3; 12 is 1/4; 16 is 1/5; 20 is 1/6; etc.


To call an action from within an actor simply put:

action <name>

Note: Every frame advance adds 1 to actioncount. To reset an animation, either call the action again or use resetactioncount. Starting a new animation will also reset actioncount to 0.