Bodygroups (“GEOMSETS”) for dummies (draft)

Background reading (different mods, but intro to the same/similar concepts):

Garrys mod: How to create Bodygroups for Models by The Devils Own

Source Filmmaker (SFM): [MMD to SFM] How to create bodygroups (using Blender) by Dusk

Underhell mod for Half-Life 2: BODYGROUPS by Mxthe

Spike:
fte refers to bodygroups as geomsets, and allows you to change them via q3-like skin files, which can take the form of

[code] class="inline">setcustomskin(csqcentity, "", sprintf("geomset %g %g\n", groupid, groupvalue));[/code]

Eukara tries to explain to OMC:

https://icculus.org/~marco/iqm/IQM-EXT.TXT

OMC: “- Support for frame triggered events that can be read by the game-logic”
nice
FTE also supports them in external files now
for non vvm/iqm models
http://www.vera-visions.com/dev/vvm-w32-1.zip
http://www.vera-visions.com/dev/vvm-docs-1.zip
primarily you’d want to use this for hitmeshes/hitboxes and to actually have a proper IQM exporter that supports rotation, scaling, offsetting and bone renaming
the original exporter is quite broken.
it also supports geomsets
so you can switch bodyparts within the same model easier
without any of this I couldn’t do dismemberment in The Wastes
OMC: a pity theres no dummies guide
Well, uh, what do you want to know?
Everthing I thought that’d be of importance is in VVM.TXT.
If you’ve got suggestions, please name them!
I like proper docs myself
OMC: link to vvm.txt?
i did… above…
it’s in the zip, docs.
OMC: ah “there is no blender integration – export your files to a supported format first. I suppose most people using it alreasdy know exactly what theyre doing
VVM is for complex models, consisting of multiple references that can be toggled at will
i have no idea who’d be *insane* enough trying to write a Python frontend for that behaviour.
and maintaining it for future/past versions would waste most of my time.
OMC: whats a ‘complex model’?
I already gave you an example.
VVM allows the inclusion of hitboxes/hitmeshes inside of the model. that way you can detect which body parts are shot and so on.
and if you do that…
and use geomsets, to toggle parts of the model on and off…
you can actually shoot body parts off.
for example.
OMC: wow
if you were to a ‘step by step’, Blender style tutorial, Im sure more ppl wpild use it
I don’t really care about adoption, as the format was designed for my game, The Wastes.
OMC: ah
If people really cared about those features, they would have done so in the 18 years of Quake being open-source.
* OneManClan googles ‘geomset’

let’s say you’ve a human body, right?
or perhaps a car.
Let’s stick to the human body, in The Wastes there are 6 hitmodel GROUPS. Head, torso, left/right arm and legs.
and I established that each of the groups can have 3 states.
OMC: aww man, i dont know what a ‘hitmodel GROUP’ is, where can i rtfm these terms?
1 – full, 2 – half, 3 – gone
look.
OneManClan googles ‘hitmodel game programming’
In Quake, the only hit detection you can get is the BBOX.
OMC: yes
One giant box.
When you hit between the legs? registers as a shot, still.
OMC: yes
The bullets shouldn’t hit you, but they do.
Why?
the hitmodel is a giant box.
encompassing the ENTIRE player.
OMC: correct
with multiple hitboxes, you can be more precise about it.
Half-Life supports them
for each and every bone, you can specify an own hitbox.
each mesh within the model has two new fields. the set index, and the set number. sets are things like heads, arms, legs. numbers are eg regular head, zombie head, cool dude’s head, etc.
in VVM, we have hitmeshes. instead of boxes – you could use a sphere. or a cylinder.
and what Spike said has to do with geomsets. You can exchange parts of the model.
OMC: ‘hitmesh’ = alternative to bbox, right?
by changing the skinfile’s set, you can easily swap the heads independantly of the arms, without needing lots of new models.
*hitbox
the bbox in Quake acts as a hitbox
the bbox is still used for visibility
OMC: ok so whats a ‘hitmodel’?
but hitboxes make traces more precise
hitmodel is an alternative to a hitbox in that it can be a mesh, a model.
a non box.
you can take your player model as use it as one, theoretically. would be slow though.
think of geomsets as a way to bake every single weapon into a single model, and not have them all there at once glitching like crazy. single model, single skeletal object, single set of animations etc. that said, heads are more practical.
slower than a simpler hitmesh, anyway
OMC: so its not using existing polygons (ie ones already in the iqm) as ‘hit surfaces’?
It _can_
but you can also specify simpler models. That way you can have fair hitboxes across multiple player models.
OMC: imho a video of a basic workflow would really help
so when you’ve got a female model they won’t be disadvantages for having hair that makes shooting them easier or something
hitboxes = simplified/lame hitmeshes. same purposes, except that now you have a way to tell *which* submesh the trace hit, as well as controlling whether it can even hit it (yay content masks).
*disadvantaged
OMC: A step-by-step vid like Shpuld’s video would probably be easier to follow, ie by anyone
https://www.youtube.com/watch?v=-12ozVOifGY
4:29 of magic
I don’t think anyone would watch an hour long video getting into hitmeshes, geomsets, model events and whyyourquakemodneedsthis
660 people watched Shpuld export a textured and animation box into quake
*animated*
yeah, not worth my time.
you mean 659 bots, yeah? :s
like i said, most people will keep using DP/MDL anyway, for some reason.
yeah, people who use dpm are a lost cause 🙁
I wonder if it’s possible to rewrite collision detection using QuakeC but just keep BBOX for map vs player collision
I did use a function of findradius to do that somewhat before
doom-style cylinder!
OMC: I’d LOVE to see a vid demonstrating how to implement “each mesh within the model having two new fields. the set index, and the set number”
Well you can look at the source files of The Wastes SDK once the game is out…
OMC: not just “you can X”, but “this is how to do X”
thats the only reason I use Blender
though typically, a few months away from Blender and it all seems new again
well my workflow is specific to me so that’d really be a huge time waster for me
i use an old version od 3D Studio
*of
OMC: wasted like 2 hours today tryin to figure out how to make somethign spin, (ie continuously and smoothly)
Answer: dope sheet-> select the keyframes. Channel Menu->Extraspolation mode-> Linear
smooth continous spinning
ie like a machine gun barrel
Blender has a terrible UX, but I am not allowed to criticise it because I obviously forgot to use [insert obscure hotkey here]
OMC: lol, yea
and this is why I never got in to making models…
OMC: it becomes intuitive … if you work on Blender for many hours… every day
and dont take breaks

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>