Model (DEF): Difference between revisions

From EDukeWiki
Jump to navigation Jump to search
Fox (talk | contribs)
No edit summary
Fox (talk | contribs)
No edit summary
 
(4 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Under construction}}
{{Under construction}}


'''model''' <filename> { [...] }
<span {{code}}>'''model''' <filename> { [...] }</span>


Defines a model to replace certain sprites in the game when running in 32-bit OpenGL mode. <filename> is the model file in md2 or md3 format.
Defines a model to replace certain sprites in the game when running in 32-bit OpenGL mode. <filename> is the model file in md2 or md3 format.
Line 9: Line 9:
== Tokens ==
== Tokens ==


'''scale''' <value>
<span {{code}}>'''scale''' <value></span>


<value> is a (possibly fractional) value specifying a scaling factor for the model when it is rendered, eg. 1.5 for one-and-a-half times as big.
<value> is a (possibly fractional) value specifying a scaling factor for the model when it is rendered, eg. 1.5 for one-and-a-half times as big.


'''shade''' <value>
<span {{code}}>'''shade''' <value></span>


<shade-offset> is an integer value specifying how much to bias the sprite's shade value by. A negative value for this makes the model brighter. Conversely, a positive value makes it darker.
<shade-offset> is an integer value specifying how much to bias the sprite's shade value by. A negative value for this makes the model brighter. Conversely, a positive value makes it darker.


'''yoffset''' <offset>
<span {{code}}>'''yoffset''' <offset></span>


DESCRIPTION
DESCRIPTION


'''zadd''' <offset>
<span {{code}}>'''zadd''' <offset></span>


<offset> is a (possibly fractional) value specifying a height offset for the model. Quake models are aligned in the center while Build models are aligned at the floor. Using this command will allow Build to use Quake models without modification to the MD2/3 file itself.
<offset> is a (possibly fractional) value specifying a height offset for the model. Quake models are aligned in the center while Build models are aligned at the floor. Using this command will allow Build to use Quake models without modification to the MD2/3 file itself.


'''flags''' <flags>
<span {{code}}>'''flags''' <flags></span>


Specifies any special properties the model should have, the values of which should be added together to combine multiple options.
Specifies any special properties the model should have, the values of which should be added together to combine multiple options.
0: default value
1: Prevents the the model from being affected by the tints.


'''skin''' { [...] }
* 0: default value
* 1: Prevents the the model from being affected by the tints.
 
<span {{code}}>'''skin''' { [...] }</span>


Defines a skin to be used on the model for all frames declared after this command. The brace-enclosed block may contain these instructions:
Defines a skin to be used on the model for all frames declared after this command. The brace-enclosed block may contain these instructions:


'''detail''' { [...] }
<span {{code}}>'''detail''' { [...] }</span>


Defines a [[Detail_mapping|detail texture]] for the model. The brace-enclosed block may contain these instructions:
Defines a [[Detail_mapping|detail texture]] for the model. The brace-enclosed block may contain these instructions:


'''glow''' { [...] }
<span {{code}}>'''glow''' { [...] }</span>


Defines a [[Glow_mapping|glow map]] for the model. The brace-enclosed block may contain these instructions:
Defines a [[Glow_mapping|glow map]] for the model. The brace-enclosed block may contain these instructions:


'''specular''' { [...] }
<span {{code}}>'''specular''' { [...] }</span>


DESCRIPTION
DESCRIPTION


'''normal''' { [...] }
<span {{code}}>'''normal''' { [...] }</span>


DESCRIPTION
DESCRIPTION


:: '''pal''' <palnum>
:: <span {{code}}>'''pal''' <palnum></span>


:: Specifies which palette this skin maps to.
:: Specifies which palette this texture maps to.


:: '''surface''' <surfnum>
:: <span {{code}}>'''surface''' <surfnum></span> (or '''surf''')


:: Specifies which MD3 surface this skin should be applied to. This has no significance for MD2 models.
:: Specifies which MD3 surface this texture should be applied to. This has no significance for MD2 models.


:: '''file''' <filename>
:: <span {{code}}>'''file''' <filename></span>


:: Specifies the texture file to use. File may be any PNG, JPG, DDS, TGA, BMP, GIF or PCX file
:: Specifies the texture file to use. File may be any PNG, JPG, DDS, TGA, BMP, GIF or PCX file


:: IMPORTANT: If your model exists in a subdirectory (ie. the model filename includes a path to the .md2/3) you will need to give the same path to filename if the skin is in the same directory.
:: IMPORTANT: If your model exists in a subdirectory (ie. the model filename includes a path to the .md2/3) you will need to give the same path to filename if the texture is in the same directory.


:: '''scale''' <value>
:: <span {{code}}>'''scale''' <value></span>


:: <value> is a positive floating-point value that'll determine how much your detail map should repeat on your diffuse map (if you want your detail map to repeat five times, use a 1/5 scale : 0.2).
:: <value> is a positive floating-point value that'll determine how much your detail map should repeat on your diffuse map (if you want your detail map to repeat five times, use a 1/5 scale : 0.2).


:: '''surface''' <surfnum>
:: <span {{code}}>'''scale''' <value></span> (or '''detailscale''' / '''intensity''')
 
:: DESCRIPTION
 
:: <span {{code}}>'''specpower''' <value></span>
 
:: DESCRIPTION
 
:: <span {{code}}>'''specfactor''' <value></span>
 
:: DESCRIPTION
 
:: <span {{code}}>'''nocompress'''</span>


:: Specifies which MD3 surface this texture should be applied to. This has no significance for MD2 models.
:: DESCRIPTION
 
:: <span {{code}}>'''nodownsize'''</span>
 
:: DESCRIPTION
 
:: <span {{code}}>'''forcefilter'''</span>
 
:: DESCRIPTION
 
:: <span {{code}}>'''artquality'''</span>
 
:: DESCRIPTION


'''anim''' { [...] }
<span {{code}}>'''anim''' { [...] }</span>


Defines an animation from a group of frames in the model. The brace-enclosed block may contain these instructions:
Defines an animation from a group of frames in the model. The brace-enclosed block may contain these instructions:


:: '''frame0''' <start framename><br />
:: <span {{code}}>'''frame0''' <start framename></span><br />
:: '''frame1''' <end framename>
:: <span {{code}}>'''frame1''' <end framename></span>
          
          
:: Specifies the names of the start ('''frame0''') and end ('''frame1''') frames of the animation.
:: Specifies the names of the start ('''frame0''') and end ('''frame1''') frames of the animation.


:: '''fps''' <fps>
:: <span {{code}}>'''fps''' <fps></span>


:: Specifies the frame rate at which the animation should play. This value may be fractional.
:: Specifies the frame rate at which the animation should play. This value may be fractional.


:: '''flags''' <flags>
:: <span {{code}}>'''flags''' <flags></span>


:: Specifies any special properties the animation should have, the values of which should be added together to combine multiple options.
:: Specifies any special properties the animation should have, the values of which should be added together to combine multiple options.
Line 92: Line 117:
:: Valid options are:
:: Valid options are:


:: 0 none (looping animation)
:: {| cellpadding="0" cellspacing="0" border="0"
 
|
:: 1 one-shot (plays beginning to end once and stops on the last frame).
* 0: none (looping animation)
* 1: one-shot (plays beginning to end once and stops on the last frame).
|-
|}


'''frame''' { [...] }
<span {{code}}>'''frame''' { [...] }</span>


Defines a range of ART-file tiles to correspond with the given frame/animation of the model. The brace-enclosed block may contain these instructions:
Defines a range of ART-file tiles to correspond with the given frame/animation of the model. The brace-enclosed block may contain these instructions:


::{| cellpadding="0" cellspacing="0" border="0"
:: <span {{code}}>'''name''' <framename></span> (or '''frame''')
| valign="top" | '''name''' <framename>
| width="20px" |
| valign="top" | (or '''frame''')
|-
|}


:: If <framename> is identical to the starting frame of an animation, the engine will play that animation, otherwise the replacement will be static. You can choose to use the '''frame''' or '''name''' versions of this instruction as both are identical.
:: If <framename> is identical to the starting frame of an animation, the engine will play that animation, otherwise the replacement will be static. You can choose to use the '''frame''' or '''name''' versions of this instruction as both are identical.


:: '''tile''' <tilenum><br />
:: <span {{code}}>'''tile''' <tilenum></span><br />
:: '''tile0''' <start tilenum><br />
:: <span {{code}}>'''tile0''' <start tilenum></span><br />
:: '''tile1''' <end tilenum>
:: <span {{code}}>'''tile1''' <end tilenum></span>


:: Use the tile instruction to specify an ART-file tile which this model should replace. Use the '''tile0''' and '''tile1''' instructions together to specify a range of ART-file tiles. If you use '''tile0''', you must also have a '''tile1'''. You may not use the same instruction twice to specify multiple ranges.
:: Use the tile instruction to specify an ART-file tile which this model should replace. Use the '''tile0''' and '''tile1''' instructions together to specify a range of ART-file tiles. If you use '''tile0''', you must also have a '''tile1'''. You may not use the same instruction twice to specify multiple ranges.


:: '''smoothduration''' <value>
:: <span {{code}}>'''smoothduration''' <value></span>


:: If smoothduration is non-zero switching from another animation to the one defined by that frame block will trigger an intermediary animation smoothing state of duration <value> seconds.
:: If smoothduration is non-zero switching from another animation to the one defined by that frame block will trigger an intermediary animation smoothing state of duration <value> seconds.


:: '''pal''' <value>
:: <span {{code}}>'''pal''' <value></span>


:: Makes the model definition exclusive for the this pal. This allow to assign different models for different pal.
:: Makes the model definition exclusive for the this pal. This allow to assign different models for different pal.


'''hud''' { [...] }
<span {{code}}>'''hud''' { [...] }</span>


Defines a range of ART-file tiles to use with a heads-up-display. The brace-enclosed block may contain these instructions:
Defines a range of ART-file tiles to use with a heads-up-display. The brace-enclosed block may contain these instructions:


:: '''tile''' <tilenum><br />
:: <span {{code}}>'''tile''' <tilenum></span><br />
:: '''tile0''' <start tilenum><br />
:: <span {{code}}>'''tile0''' <start tilenum></span><br />
:: '''tile1''' <end tilenum>
:: <span {{code}}>'''tile1''' <end tilenum></span>


:: '''tile0''' and '''tile1''' together specify a range of ART-file tiles which this model frame should replace when rendered as part of the HUD. You can specify individual tiles using a single tile command.
:: '''tile0''' and '''tile1''' together specify a range of ART-file tiles which this model frame should replace when rendered as part of the HUD. You can specify individual tiles using a single tile command.
      
      
:: '''xadd''' <offset><br />
:: <span {{code}}>'''xadd''' <offset></span><br />
:: '''yadd''' <offset><br />
:: <span {{code}}>'''yadd''' <offset></span><br />
:: '''zadd''' <offset><br />
:: <span {{code}}>'''zadd''' <offset></span><br />
:: '''angadd''' <offset>
:: <span {{code}}>'''angadd''' <offset></span>


:: Use these offsets to fine-tune the location of the model placement. '''xadd''', '''yadd''', and '''zadd''' are position offsets relative to the viewer's orienation. You can use floating point values with them. '''angadd''' is a Build angle offset. (512 90 degrees, 1024 180 degrees, etc...).
:: Use these offsets to fine-tune the location of the model placement. '''xadd''', '''yadd''', and '''zadd''' are position offsets relative to the viewer's orienation. You can use floating point values with them. '''angadd''' is a Build angle offset. (512 90 degrees, 1024 180 degrees, etc...).


:: '''fov'''
:: <span {{code}}>'''fov'''</span>


:: DESCRIPTION
:: DESCRIPTION


:: '''hide'''
:: <span {{code}}>'''hide'''</span>


:: Some weapons use multiple ART tiles for constructing the gun or animation. Use this option to hide parts that you don't need in your replacement.
:: Some weapons use multiple ART tiles for constructing the gun or animation. Use this option to hide parts that you don't need in your replacement.


:: '''nobob'''
:: <span {{code}}>'''nobob'''</span>


:: By default, the HUD model offset is affected by the player bobbing offset when the player is walking. Use this option to disable that.
:: By default, the HUD model offset is affected by the player bobbing offset when the player is walking. Use this option to disable that.


:: '''flipped'''
:: <span {{code}}>'''flipped'''</span>


:: Use this option to apply the settings inside the hud block only if the object is normally rendered x-flipped (mirror image). Some weapons, such as the devastator, are rendered in 2 pieces, the left devastator is actually a mirror image of the right.
:: Use this option to apply the settings inside the hud block only if the object is normally rendered x-flipped (mirror image). Some weapons, such as the devastator, are rendered in 2 pieces, the left devastator is actually a mirror image of the right.


:: '''nodepth'''
:: <span {{code}}>'''nodepth'''</span>


:: Use this to render a HUD model without the use of the depth buffer. Normally, you should avoid this. The one exception where this is useful is for the spinning nuke menu icon because it should always be in front -- and it just happens to be convex, which is the one case that is safe with the depth buffer disabled.
:: Use this to render a HUD model without the use of the depth buffer. Normally, you should avoid this. The one exception where this is useful is for the spinning nuke menu icon because it should always be in front -- and it just happens to be convex, which is the one case that is safe with the depth buffer disabled.


[[Category:DEF commands]]
[[Category:DEF commands]]

Latest revision as of 01:53, 23 February 2020

This page is under construction.
Please help review and edit this page.

model <filename> { [...] }

Defines a model to replace certain sprites in the game when running in 32-bit OpenGL mode. <filename> is the model file in md2 or md3 format.

Note: md2 is considered deprecated.

Tokens

scale <value>

<value> is a (possibly fractional) value specifying a scaling factor for the model when it is rendered, eg. 1.5 for one-and-a-half times as big.

shade <value>

<shade-offset> is an integer value specifying how much to bias the sprite's shade value by. A negative value for this makes the model brighter. Conversely, a positive value makes it darker.

yoffset <offset>

DESCRIPTION

zadd <offset>

<offset> is a (possibly fractional) value specifying a height offset for the model. Quake models are aligned in the center while Build models are aligned at the floor. Using this command will allow Build to use Quake models without modification to the MD2/3 file itself.

flags <flags>

Specifies any special properties the model should have, the values of which should be added together to combine multiple options.

  • 0: default value
  • 1: Prevents the the model from being affected by the tints.

skin { [...] }

Defines a skin to be used on the model for all frames declared after this command. The brace-enclosed block may contain these instructions:

detail { [...] }

Defines a detail texture for the model. The brace-enclosed block may contain these instructions:

glow { [...] }

Defines a glow map for the model. The brace-enclosed block may contain these instructions:

specular { [...] }

DESCRIPTION

normal { [...] }

DESCRIPTION

pal <palnum>
Specifies which palette this texture maps to.
surface <surfnum> (or surf)
Specifies which MD3 surface this texture should be applied to. This has no significance for MD2 models.
file <filename>
Specifies the texture file to use. File may be any PNG, JPG, DDS, TGA, BMP, GIF or PCX file
IMPORTANT: If your model exists in a subdirectory (ie. the model filename includes a path to the .md2/3) you will need to give the same path to filename if the texture is in the same directory.
scale <value>
<value> is a positive floating-point value that'll determine how much your detail map should repeat on your diffuse map (if you want your detail map to repeat five times, use a 1/5 scale : 0.2).
scale <value> (or detailscale / intensity)
DESCRIPTION
specpower <value>
DESCRIPTION
specfactor <value>
DESCRIPTION
nocompress
DESCRIPTION
nodownsize
DESCRIPTION
forcefilter
DESCRIPTION
artquality
DESCRIPTION

anim { [...] }

Defines an animation from a group of frames in the model. The brace-enclosed block may contain these instructions:

frame0 <start framename>
frame1 <end framename>
Specifies the names of the start (frame0) and end (frame1) frames of the animation.
fps <fps>
Specifies the frame rate at which the animation should play. This value may be fractional.
flags <flags>
Specifies any special properties the animation should have, the values of which should be added together to combine multiple options.
Valid options are:
  • 0: none (looping animation)
  • 1: one-shot (plays beginning to end once and stops on the last frame).

frame { [...] }

Defines a range of ART-file tiles to correspond with the given frame/animation of the model. The brace-enclosed block may contain these instructions:

name <framename> (or frame)
If <framename> is identical to the starting frame of an animation, the engine will play that animation, otherwise the replacement will be static. You can choose to use the frame or name versions of this instruction as both are identical.
tile <tilenum>
tile0 <start tilenum>
tile1 <end tilenum>
Use the tile instruction to specify an ART-file tile which this model should replace. Use the tile0 and tile1 instructions together to specify a range of ART-file tiles. If you use tile0, you must also have a tile1. You may not use the same instruction twice to specify multiple ranges.
smoothduration <value>
If smoothduration is non-zero switching from another animation to the one defined by that frame block will trigger an intermediary animation smoothing state of duration <value> seconds.
pal <value>
Makes the model definition exclusive for the this pal. This allow to assign different models for different pal.

hud { [...] }

Defines a range of ART-file tiles to use with a heads-up-display. The brace-enclosed block may contain these instructions:

tile <tilenum>
tile0 <start tilenum>
tile1 <end tilenum>
tile0 and tile1 together specify a range of ART-file tiles which this model frame should replace when rendered as part of the HUD. You can specify individual tiles using a single tile command.
xadd <offset>
yadd <offset>
zadd <offset>
angadd <offset>
Use these offsets to fine-tune the location of the model placement. xadd, yadd, and zadd are position offsets relative to the viewer's orienation. You can use floating point values with them. angadd is a Build angle offset. (512 90 degrees, 1024 180 degrees, etc...).
fov
DESCRIPTION
hide
Some weapons use multiple ART tiles for constructing the gun or animation. Use this option to hide parts that you don't need in your replacement.
nobob
By default, the HUD model offset is affected by the player bobbing offset when the player is walking. Use this option to disable that.
flipped
Use this option to apply the settings inside the hud block only if the object is normally rendered x-flipped (mirror image). Some weapons, such as the devastator, are rendered in 2 pieces, the left devastator is actually a mirror image of the right.
nodepth
Use this to render a HUD model without the use of the depth buffer. Normally, you should avoid this. The one exception where this is useful is for the spinning nuke menu icon because it should always be in front -- and it just happens to be convex, which is the one case that is safe with the depth buffer disabled.