In the interests of full disclosure, my main motive here is getting a model to work with Source Filmmaker (while I've also been taking steps to get a version to work in GMod, that's more of a secondary objective), but my attempts to ask SFM groups have been met with silence.
I'm trying to compile a model with a .VRD file in order to procedurally animate the helper bones in the elbow and wrist (and potentially more, if I can get any helpers at all to work).
There's several bones I want to turn into helpers, but here's the first of them:
[CODE]<helper> L_UpperArm_Twist01 ValveBiped.Bip01_L_UpperArm ValveBiped.Bip01_L_UpperArm ValveBiped.Bip01_L_ForeArm
<basepos> 2.51446 0 0
<trigger> 90 33.8613 -22.286 -2.95307 0 0 0 0 0 0
<trigger> 90 123.8613 -22.286 -2.95307 15 0 0 0 0 0
<trigger> 90 -56.1387 -22.286 -2.95307 -30 0 0 0 0 0[/CODE]
The intention is that when the forearm turns 90 degrees right, this helper turns 15 degrees right; when it turns 90 degrees left, the helper turns -30 left. (It's not symmetrical, but it's what looked good in test-posing the model).
However, every time I try to compile, studiomdl aborts with the following error.
[CODE]Missing control bone "L_UpperArm_Twist01" for procedural bone "ValveBiped.Bip01_L_ForeArm"[/CODE]
This is weird, because in the few guides out there about VRD files and in every other model with helpers I've decompiled to check, the *first* bone in the .VRD helper tag is the procedural bone and the final one the control bone. (The above error is suggesting the exact opposite). And just in case it's a decompiling error putting things in the wrong order, I've also recompiled some of these other models and they've worked fine).
What's strange is that it only aborts when I'm doing what I think is correct. For example, to check, I fed it this .VRD file:
[CODE]<helper> Nitwit Oddment Blubber Tweak
<basepos> 0 0 0
<trigger> 90 0 0 0 0 0 0 0 0 0
<trigger> 90 0 0 0 0 0 0 0 0 0
<trigger> 90 0 0 0 0 0 0 0 0 0[/CODE]
The model doesn't have any bones called Nitwit, Oddment, Blubber or Tweak, so obviously I didn't get any helper bones, but the compile completed - albeit with the following message:
[CODE]quatinterpbone "Nitwit" unused[/CODE]
Thus far, I've eliminated all these possible causes:
- L_UpperArm_Twist01 and ValveBiped.Bip01_L_ForeArm both have ValveBiped.Bip01_L_UpperArm as their immediate parent (as necessary for a helper)
- I've not misspelt any of the bone names (at this stage, I've literally copied and pasted them to be sure)
- I've tried renaming the helpers in the standard hlp_insertnamehere format Valve seem to use. No luck.
- It doesn't seem to be trying to run several helpers off the same parent and control bones, the total number of helpers, or having some bones being parents to one helper and a control to another, as Valve themselves did that with Alyx in HL2.
- The model does have 242 bones - but I'm all but convinced this isn't the issue. The SFM studiomdl.exe will successfully compile the 242-bone model without a VRD file; it wouldn't compile a 114-bone version with the VRD. (I just cut away a large chunk of the skeleton to test it with fewer than 128 bones).
- I'm pretty sure the syntax isn't the problem, as I copied the (incorrect for this model, but nonetheless valid for studiomdl) keyframes from another model to make sure I hadn't got the wrong number of variables.
The only clue I've got at this stage is a slightly cryptic comment from some years ago on the Steam forums ( [url]http://forums.steampowered.com/forums/showpost.php?p=32102287&postcount=11[/url] ) that only the reference SMDs should contain helperbones, and that they shouldn't be animated in sequences.
The only sequence I've currently added for the model is the bare minimum ragdoll idle, which Blender has exported with the intended helper bones, but then the ragdolls for official Valve models seem to include the base positions of the helper bones anyway.
And if I do need to do that, how would I create a ragdoll without those bones and still have Studiomdl recognise it properly?
At this stage I'm really not sure what to think, but any sensible advice will be very much appreciated.
Your problem is the 'ValveBiped.' in the bone names. The period specifically.
I don't know why periods cause errors. They just do.
Well that an characters like 'ç' cause the compiler to skip the bone entirely.
Gorram it. One of [I]those[/I] errors - simple, obscure and stupid all at the same time.
Well, a thousand thanks, as while the bone names not matching the older versions is something of a nuisance, I am now getting it to compile. It's turned up a few issues with my keyframes, now I can see them properly in action, but I'll take that over the brick wall I've been banging my head against.
I've gone and added a note to that effect to the Valve developer wiki, because something like that not being documented is just daft.
Again, thank you!
Sorry, you need to Log In to post a reply to this thread.