Creating custom ANM files: Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
Daedolon (talk | contribs)
Fox (talk | contribs)
Move lists to the cutscene / animsounds pages
 
(16 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Duke Nukem 3D uses the [http://wiki.multimedia.cx/index.php?title=DeluxePaint_Animation DeluxePaint Animation format] for displaying its cutscenes and logos. These are a sequence of [http://en.wikipedia.org/wiki/PCX ZSoft PCX images] within the ANM file.
Duke Nukem 3D uses the [http://wiki.multimedia.cx/index.php?title=DeluxePaint_Animation DeluxePaint Animation format] for displaying its cutscenes and logos. These are a sequence of [http://en.wikipedia.org/wiki/PCX ZSoft PCX images] within the ANM file.


You can create your own ANM files, as well as extract the PCX files from an existing ANM file by using the [http://archive.dukertcm.com/knowledge-base/downloads-rtcm/duke3d-tools-editart/anim2pcx.zip ANIM2PCX tool].
You can create your own ANM files, as well as extract the PCX files from an existing ANM file by using the [http://dukeworld.duke4.net/rtcm/duke3d-tools-editart/anim2pcx.zip ANIM2PCX tool]. FFmpeg (and its descendents ffplay and mplayer) also support ANMs as input.


Although ANM files are limited to a 8bit palette, you can have a custom one in every animation for higher image quality. Please note that the first color in the palette used is used as background color during [http://en.wikipedia.org/wiki/Bit_blit blitting] and filling of the screen. All resulted letterboxing will use this color as the background color. While the animation changes, it's also possible that you will see the screen filled with this color for a single game tick.
Although ANM files are limited to an 8-bit palette, each ANM holds its own palette, independent of any stored in the game. This palette remains constant for every frame of an ANM. Please note that the first color index in the palette used is used as background color during [http://en.wikipedia.org/wiki/Bit_blit blitting] and filling of the screen. All resulting pillarboxing will use this color as the background color. While the animation changes, it's also possible that you will see the screen filled with this color for a single game tic. Therefore, it is highly recommended to ensure the first palette index is RGB #000000, black.


Unless each of the PCX images within the ANM file have the same palette, the palette of the first file will be used for the remainder of frames.{{citation needed}}
By default, the game looks for a file with the extension .ANM for each animation file.


==List of animations==
== VP8 replacement ==
These are all the animations that exist by default in Duke Nukem 3D (1.5) and their framerates.


{| class="wikitable"
You can also use the VP8 video codec inside an [http://wiki.multimedia.cx/index.php?title=IVF IVF container] for custom animations. Simply give your IVF file the same name as an ANM and place it in one of EDuke32's search paths. For example: <code>LOGO.IVF</code>.
|-
! #
! Name
! Framerate
|-
| 1
| cineov2
| 120/10
|-
| 2
| cineov3
| 120/10
|-
| 3
| RADLOGO
| 120/10
|-
| 4
| DUKETEAM
| 120/10
|-
| 5
| logo
| 120/9
|-
| 6
| vol41a
| 120/14
|-
| 7
| vol42a
| 120/18
|-
| 8
| vol4e1
| 120/10
|-
| 9
| vol43a
| 120/10
|-
| 10
| vol4e2
| 120/14
|-
| 11
| vol4e3
| 120/10
|}


By default, the game looks for a file with the extension .ANM for each animation file, but with the addition of IVF support in EDuke32, you can also use the [http://wiki.multimedia.cx/index.php?title=IVF IVF container] for custom animations.
Note that VP8 videos will only display when using 32-bit OpenGL video mode--'''not''' the 8-bit classic software renderer. Also note that the hardcoded sounds (listed below) of any ANM replaced by an IVF will not play. Instead, use the [[DEF Language#animsounds|<code>animsounds</code> def command]] to specify new ones. Further note that the IVF container does not hold audio--''all'' audio for a VP8 video must be added via <code>animsounds</code>.


 
To create VP8 video, see [[Utilities#Movies (.ivf)|the Utilities page]].
==Full list of sounds played for each animation==
By replacing these sounds, you can customize your own animation files with new sound files. The frames they're played on are hard-coded, but listed here for ease of use.
 
{| width="75%"
|- valign="top"
|
 
{| class="wikitable"
|+ cineov2
! Frame
! Sounds
|-
| 1
| WIND_AMBIENCE
|-
| 26
| ENDSEQVOL2SND1
|-
| 36
| ENDSEQVOL2SND2
|-
| 54
| THUD
|-
| 62
| ENDSEQVOL2SND3
|-
| 75
| ENDSEQVOL2SND4
|-
| 81
| ENDSEQVOL2SND5
|-
| 115
| ENDSEQVOL2SND6
|-
| 124
| ENDSEQVOL2SND7
|}
 
|
 
{| class="wikitable"
|+ cineov3
! Frame
! Sounds
|-
| 1
| WIND_REPEAT
|-
| 98
| DUKE_GRUNT
|-
| 82+20
| THUD, SQUISHED
|-
| 104+20
| ENDSEQVOL3SND3
|-
| 114+20
| ENDSEQVOL3SND2
|-
| 158
| PIPEBOMB_EXPLODE
|}
 
|
 
{| class="wikitable"
|+ logo
! Frame
! Sounds
|-
| 1
| FLY_BY
|-
| 19
| PIPEBOMB_EXPLODE
|}
 
|
 
{| class="wikitable"
|+ vol41a
! Frame
! Sounds
|-
| 1
| INTRO4_1
|-
| 12
| INTRO4_2
|-
| 7
| INTRO4_3
|-
| 26
| INTRO4_4
|}
 
|}
 
{| width="75%"
|- valign="top"
|
 
 
{| class="wikitable"
|+ vol42a
! Frame
! Sounds
|-
| 1
| INTRO4_B
|-
| 12
| SHORT_CIRCUIT
|-
| 34
| SHORT_CIRCUIT
|-
| 18
| INTRO4_5
|}
 
|
 
{| class="wikitable"
|+ vol4e1
! Frame
! Sounds
|-
| 3
| DUKE_UNDERWATER
|-
| 35
| VOL4ENDSND1
|}
 
|
 
{| class="wikitable"
|+ vol43a
! Frame
! Sounds
|-
| 10
| INTRO4_6
|}
 
|
 
{| class="wikitable"
|+ vol4e2
! Frame
! Sounds
|-
| 11
| DUKE_UNDERWATER
|-
| 20
| VOL4ENDSND1
|-
| 39
| VOL4ENDSND2
|-
| 50
| FX_StopAllSounds();
|}
 
|}
 
{| class="wikitable"
|+ vol4e3
! Frame
! Sounds
|-
| 1
| BOSS4_DEADSPEECH
|-
| 40
| VOL4ENDSND1, DUKE_UNDERWATER
|-
| 50
| BIGBANG
|}

Latest revision as of 03:09, 21 February 2020

Duke Nukem 3D uses the DeluxePaint Animation format for displaying its cutscenes and logos. These are a sequence of ZSoft PCX images within the ANM file.

You can create your own ANM files, as well as extract the PCX files from an existing ANM file by using the ANIM2PCX tool. FFmpeg (and its descendents ffplay and mplayer) also support ANMs as input.

Although ANM files are limited to an 8-bit palette, each ANM holds its own palette, independent of any stored in the game. This palette remains constant for every frame of an ANM. Please note that the first color index in the palette used is used as background color during blitting and filling of the screen. All resulting pillarboxing will use this color as the background color. While the animation changes, it's also possible that you will see the screen filled with this color for a single game tic. Therefore, it is highly recommended to ensure the first palette index is RGB #000000, black.

By default, the game looks for a file with the extension .ANM for each animation file.

VP8 replacement

You can also use the VP8 video codec inside an IVF container for custom animations. Simply give your IVF file the same name as an ANM and place it in one of EDuke32's search paths. For example: LOGO.IVF.

Note that VP8 videos will only display when using 32-bit OpenGL video mode--not the 8-bit classic software renderer. Also note that the hardcoded sounds (listed below) of any ANM replaced by an IVF will not play. Instead, use the animsounds def command to specify new ones. Further note that the IVF container does not hold audio--all audio for a VP8 video must be added via animsounds.

To create VP8 video, see the Utilities page.