• 🏆 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!

This model's particles are not appearing in-game.

Status
Not open for further replies.
Hey there.
I'm having a rather annoying problem with this model. The model was made by @Mythic, so it's safe to say it starts to get complicated from there.

This model is basically the same model, but with 4 more spears piercing out. It was rather easy to duplicate all the parts. It appears correctly in Magos, but I was unable to make it appear at ALL in-game. The sounds and red-ish glow appeared, but nothing else.

I ran the model through Sanity Test, and no major flaws were found. I really could use some help with this one. I couldn't get it to work at all.

(I provided a .mdl version, since the .mdx version cannot be opened in Magos)
 

Attachments

  • redspears.mdx
    20.1 KB · Views: 26
  • redspears.mdl
    38.3 KB · Views: 30
Level 20
Joined
Apr 12, 2018
Messages
494
I changed all of your bones to


GeosetId Multiple,
GeosetAnimId None,

and that made everything show up. Chances are I only needed to do it to the two Main bones, but I don't feel the need to look into it further.
 

Attachments

  • redspears.mdx
    20.1 KB · Views: 22
Last edited:
I changed all of your bones to


GeosetId Multiple,
GeosetAnimId None,

and that made everything show up. Chances are I only needed to do it to the two Main bones, but I don't feel the need to look into it further.

Wow, many thanks! :D
How did you know that would work? What was the actual problem? Would be very helpful to learn what caused it so that I won't repeat the same mistake again.
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
This has something to do with a bone referencing both a specific geoset, and also a specific geoset animation with a 0-ish alpha, as theorized by Retera a long time ago.
The game uses this for some sort of optimization, and doesn't bother updating the bone when it's considered invisible (also happens with alpha animations in the referenced geoset animation).
Typically the visible result is the geoset is invisible, or stretched to the center of the map, or something of the sorts.
I don't know the exact rules, and thus never added a comprehensive test for it, but for now I added the simple case of a static alpha as in the model above.
 
This has something to do with a bone referencing both a specific geoset, and also a specific geoset animation with a 0-ish alpha, as theorized by Retera a long time ago.
The game uses this for some sort of optimization, and doesn't bother updating the bone when it's considered invisible (also happens with alpha animations in the referenced geoset animation).
Typically the visible result is the geoset is invisible, or stretched to the center of the map, or something of the sorts.
I don't know the exact rules, and thus never added a comprehensive test for it, but for now I added the simple case of a static alpha as in the model above.

Fascinating...and rather odd. Sounds like Blizzard got lazy there.

Thanks for the explanation. I'll avoid linking bones with geoset animations for now.
 
Level 29
Joined
Jul 29, 2007
Messages
5,174
Fascinating...and rather odd. Sounds like Blizzard got lazy there.

Thanks for the explanation. I'll avoid linking bones with geoset animations for now.

Not lazy, in this case.

The theory is that if a bone is considered invisible, and it directly references a geoset, this means that the geoset itself should also (e.g. via the same geoset animation) be invisible.
The bone is then not updated, nor is the geoset rendered (or if it is you get visual bugs), and presumably also anything down the hierarchy such as other bones and emitters don't get updated.

This can be seen in the Mountain King model, which has two mostly separate models in it, normal and avatar.
When one is visible, the other isn't, and thus the code can skip a lot of updates and such.

I implemented it in the 3d viewer in the past, and it worked fine for all models and proved to be a decent optimization...until there was a model where it didn't work properly, hence why I say I don't know the rules.

tl;dr it's not a bad thing, we just need to know how it works first.
 
Status
Not open for further replies.
Top