KatsBits Community

Scale models (mapobjects) in GtkRadiant

kat · 1 · 23349

0 Members and 1 Guest are viewing this topic.

Offline kat

  • Administrator
  • Hero Member
  • *
    • Posts: 2721
    • KatsBits
Using different entity key/values to resize models

Models and other mesh based misc_model entities are fixed-sized items that once imported or loaded into GtkRadiant or other *.map editor for use, cannot ordinarily be altered. This is a disadvantage when their size needs to be changed as this would normally require the model be opened in the program used to created it, adjusted and then re-exported to the new size. Where the same model is used in multiple locations, each at different sizing, this can be an issue - a unique asset for each instance of the same mesh.

To solve this two different key/value properties sets (pairings) can be assigned to a given instance of the object to change its size in one of two ways;
  • uniformly ('globally')- scales the XYZ axes by the same value.
  • unevenly ('locally') - scales each XYZ axis independently.
Increase Model Scale
To scale models in Radiant do the following;
  • Select the model entity and access the "Entity Inspector" ("N").
  • To scale on all axes;
    - Key "modelscale".
    - Value "2".
  • To scale individual axes;
    - Key "modelscale_vec".
    - Value "4 1 2".
In the example above, "modelscale/2" re-sizes the mesh so its twice the default size. Using "modelscale_vec/4 1 2" scales the "Z" axis twice as large (up/down), the "X" axis four times as large (left/right), leaving the "Y" axis at its default (front/back).

Reduce Model Scale
To reduce the size of models decimal fractions need to be used - where "1.0" equals the default size "0.75" is three quarters that, "0.5" is half sized and so on, along all or specific axes.

Design note: although GtkRadiant can be used to edit content for idTech 4 powered games, changing the size of models using the above key/values pairs only works in the editor, they do not carry over into the game because the compiler doesn't understand the parameters. This means that most content that needs to be variable sizes will have to be made 'uniquely' for purpose.