A technical discussion regarding the limitations of the GLA armature format, specifically whether bone scaling is supported for animations. Users explore workarounds for vertex-level deformation and address Blender export bugs related to pose vs. rest positions.
[2024-08-26 17:26] <.mjt> @modelers can Bones be scaled in pose mode animation on .gla armatures?
[2024-08-26 17:27] <.mjt> as in - is scale an animatable property?
[2024-08-26 17:27] <.mjt> or do I have to build an IK rig to deform a vertex along an arbritary path?
[2024-08-26 17:27] <repjunkiejr> .... I'd never bothered to try that. Can't hurt experimenting if nobody else has.
[2024-08-26 17:28] <ashuradx> Afaik the gla format does not hold scale keys
[2024-08-26 17:28] <.mjt>
[2024-08-26 17:29] <ashuradx> You could stretch bones along their length axis by means of changing distance between joints via scaling along that axis but can't change thickness
[2024-08-26 17:31] <.mjt> I don'T want to change thickness, I just want a way to animate a bone to move through 3d space
[2024-08-26 17:32] <.mjt> so that I can attach vertices to control meshes like in vertex anims
[2024-08-26 17:32] <.mjt> one per vertex
[2024-08-26 17:36] <.mjt> I hope I don't need 3 bones per vertex just one for each axis
[2024-08-26 17:53] <archangel35757> @mjt - bone scaling is not supported in the GLA (iirc)... but you could test that theory by creating a 1 bone model with a sphere mesh and create a single animation scaling the bone.
[2024-08-26 17:54] <archangel35757> Why not use a .rof and add an animated md3 to the origin node?
[2024-08-26 17:57] <.mjt> !? What? How does that deform my mesh though π
[2024-08-26 17:57] <.mjt> I mean that part is doable for stuff where you need to move the whole origin of a mesh
[2024-08-26 17:58] <.mjt> but I need to move single vertices weighed fully to one bone
[2024-08-26 17:58] <.mjt> to control each one individually
[2024-08-26 17:58] <.mjt> Yeah, I think I'll give that a try later
[2024-08-26 17:58] <.mjt> but ashura says there is no such scale thingy in the format
[2024-08-26 18:03] <.mjt> RIP, appears last time I did one bone per axis
[2024-08-26 18:04] <.mjt> 48 bones here we go!!!
[2024-08-26 18:18] <archangel35757> @mjt - I could be wrong ... there is an error CARCASS gives if you do not use linear scaling fCurves. Perhaps it's always just been a best practice to have no scaling-- try my suggestion and see (edited)
[2024-08-26 18:25] <.mjt> I can only export via mrwonkos tool, so if that doesn't take scale into account, no point in trying until I have a setup that allows to use the old workflow
[2024-08-26 18:25] <.mjt> rn I have a different issue before that - how to contrain an objects location to a mesh vertex
[2024-08-26 18:26] <.mjt> that's needed to transfer the meshes vertex positions to the bone locations separated by axis
[2024-08-26 18:46] <mrwonko> If I remember correctly, the base pose uses a full transformation matrix including scale. But animations do not.
[2024-08-26 18:47] <mrwonko> But it's been like ten years, I don't remember
[2024-08-26 20:02] <i_am_noodle> No, I tried to do it for lewd purposes and it didn't work
[2024-08-26 20:23] <.mjt> @mrwonko do you know of the top of your head if your glm exporter trims separate vertices or if that is a step that has to be done manually?
[2024-08-26 20:24] <mrwonko> Loose vertices? I'm not sure, it used to be an error
[2024-08-26 21:18] <maui.94> Blender had a function that gets rid of loose vertices
[2024-08-27 01:03] <.mjt> did you for non lewd purposes also try to have disjunct surfaces in a mesh or do you know if one mesh per surface is required?
[2024-08-27 01:04] <i_am_noodle> In english doc!
[2024-08-27 01:10] <.mjt> a mesh object in blender can have surfaces that do not share vertices
[2024-08-27 01:10] <.mjt> is that allowed on .glm export or do I need to make one mesh object per surface?
[2024-08-27 02:15] <i_am_noodle> Like an object that's two separate faces that aren't touching?
[2024-08-27 02:16] <i_am_noodle> If the answer is yes, then yes, you can do that with glm.export, in fact its the reason for people getting ugly models exported with 2.79
[2024-08-27 02:32] <.mjt> IC, that's good news
[2024-08-27 02:32] <.mjt> thanks!
[2024-08-27 03:19] <.mjt> let's see if I can get it into the game like that with bones moving in pose mode
[2024-08-27 04:11] <tayst>
[2024-08-27 04:36] <.mjt> It won't run on the S60 touch / Anna / Belle variants though. I still have my N95 somewhere π
[2024-08-27 04:38] <.mjt> Not the result I expected. The bones seem to move properly
[2024-08-27 04:38] <.mjt> but while in blender everything is perfectly attached, somehow that's not the case lateron
[2024-08-27 04:39] <.mjt> oh lol
[2024-08-27 04:40] <.mjt> so exporting the model should be done in rest position, not pose xD
[2024-08-27 04:40] <.mjt> ooops
[2024-08-27 04:40] <.mjt>
[2024-08-27 07:36] <mrwonko> Yeah, that's a bug https://github.com/mrwonko/Blender-Jedi-Academy-Tools/issues/52
Transmission Thread
.mjt
Can bones be scaled in pose mode animation on .gla armatures? As inβis scale an animatable property? Or do I have to build an IK rig to deform a vertex along an arbitrary path? I'm trying to find a way to animate a bone to move through 3D space so that I can attach vertices to control meshes like in vertex animations (one bone per vertex). I hope I don't need 3 bones per vertex just for each axis.
ashuradx
As far as I know, the .gla format does not hold scale keys. You could stretch bones along their length axis by means of changing the distance between joints via scaling along that axis, but you can't change thickness.
archangel35757
Bone scaling is not supported in the GLA (if I recall correctly). You could test that theory by creating a 1-bone model with a sphere mesh and creating a single animation scaling the bone.
There is an error CARCASS gives if you do not use linear scaling fCurves, but it's always just been a best practice to have no scaling. Why not use a .rof and add an animated .md3 to the origin node?
.mjt
How does that deform my mesh though? That part is doable for stuff where you need to move the whole origin of a mesh, but I need to move single vertices weighed fully to one bone to control each one individually.
I'm exporting via mrwonko's tool, so if that doesn't take scale into account, there's no point in trying until I have a setup for the old workflow. Right now I have a different issue: how to constrain an object's location to a mesh vertex? That's needed to transfer the mesh's vertex positions to the bone locations separated by axis. 48 bones, here we go!
mrwonko
If I remember correctly, the base pose uses a full transformation matrix including scale, but animations do not. But it's been like ten years, I don't remember exactly. Regarding loose vertices: I'm not sure if the exporter trims them; it used to just throw an error.
i_am_noodle
No, I tried to do it before and it didn't work. Regarding disjunct surfaces: if you mean an object that's two separate faces that aren't touching, then yes, you can do that with glm.export. In fact, it's the reason for people getting ugly models exported with Blender 2.79.
.mjt
That's good news about the disjunct surfaces. I'll see if I can get it into the game with bones moving in pose mode.
Wait, I got a result I didn't expect. The bones seem to move properly, but while everything is perfectly attached in Blender, it's not the case later on. Oh lol... exporting the model should be done in rest position, not pose. Oops.