• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Scaling attachments - possible?

Status
Not open for further replies.
Level 5
Joined
Jul 2, 2009
Messages
112
Is it possible to scale attachments on different models without actually copying the attachment and modifying it to fit different models?

For example, I want to make an armor fit a small model and a large model. Is there anyway I can make the armor fit both without duplicating it?
 
Level 30
Joined
Sep 2, 2007
Messages
3,723
This is very simple to do with the following tools.

Links
Oinkerwinkle's Geoset Translation tool (direct download link)
Guessed's MDLX converter
They don't need to be installed and can be deleted right after you've used them
First you open the MDLX converter and drag your model's file (.MDX extension) into the converter's window with your mouse. A new box should appear saying "Converted: [nameofyourmodel].mdx". The new file should be named "[nameofyourmodel].MDL". You can find more info on how to convert in the readme.
Now you open the geoset translation tool.

Having trouble running the program?
1) Vista can't run this program.
2) Common error on non-vista computers
MDL file: choose the mdl file from the folder you saved it in.
New file: Pick a new name for the file.
The you leave everything unchanged except for "Scale"
In the boxes you write down the size of the model.
"1" means 100% of the original size and you'll have to change the value in all boxes under "scale". So if you want the model to be 50% of the original size, you just write down "0.5".
 
The attachment model should have animation names as:
- stand first, stand second, stand third, stand big, stand medium, stand small
Each animation should be scaled with a different size.

Then, in each unit, depending on its size, it should require one of the tags in the field "Art - Required Animation Names"

This applies to spells such as Entangling Roots. Depending on the unit's size, the entangling roots fit it.
(Mountain Giant has 'large' or 'big' as required animation name and a Kobold has 'small' animation name, while a Footman is 'medium')

Note that the size I'm talking about is the original model size at 1.00 Scaling, not your unit's Scaling Value.
 
Yes, with Magos Model Editor and Notepad. It's really simple.

1 - Open your attachment with Magos.
2 - Save it as an MDL. (Save As > Something.mdl)
3 - Open it with notepad. You'll see this at the beginning of the code:
Code:
Sequences 1 {
    Anim "Stand" {
        Interval { 100, 500 },
        MinimumExtent { -27.3659, -13.4563, -59.4854 },
        MaximumExtent { 176.822, 13.7123, 14.5895 },
        BoundsRadius 109.451,
    }
}
My example has its own values, you'll have yours, so don't copy/paste mine
4 - Change the Sequences number to the number of different sizes you want, I'll change it to 3. Copy the Anim content as many times as you need. Set different Intervals, since they can't overlap.
Code:
Sequences 3 {
    Anim "Stand" {
        Interval { 100, 500 },
        MinimumExtent { -27.3659, -13.4563, -59.4854 },
        MaximumExtent { 176.822, 13.7123, 14.5895 },
        BoundsRadius 109.451,
    }
    Anim "Stand Large" {
        Interval { 600, 900 },
        MinimumExtent { -27.3659, -13.4563, -59.4854 },
        MaximumExtent { 176.822, 13.7123, 14.5895 },
        BoundsRadius 109.451,
    }
    Anim "Stand Small" {
        Interval { 1000, 1400 },
        MinimumExtent { -27.3659, -13.4563, -59.4854 },
        MaximumExtent { 176.822, 13.7123, 14.5895 },
        BoundsRadius 109.451,
    }
}
5 - Now save it, and open it in Magos. Go to Windows > Node Manager. There you'll have a bone, probably named as 'Default'.
6 - Right-click it and 'Edit Node'. In the Transformations box, click Scaling. There you'll be able to enter keyframes, containing "Time: { X Scaling, Y Scaling, Z Scaling }"
7 - Enter the respective values for each first frame of the animations. In my example:
Code:
0: { 1, 1, 1 }
600: { 1.5, 1.5, 1.5 }
1000: { 0.5, 0.5, 0.5 }
8 - Save your model and you're done. You'll probably have to repeat it several times until you find the right scaling value.
 
Last edited:
Status
Not open for further replies.
Top