Sorry for the title, but it was a perfect opportunity, I have a problem with a model I am working on, here's how it looks:
https://i.gyazo.com/5a7229e82ad9103fc954340dfc3ed2b5.jpg
it is currently set in T-Pose, but normally when I spawn it, it spawns with it's legs detatched like this:
https://i.gyazo.com/5636494d298da0f7dc2b68f097c1edde.png
This is the QC:
$ModelName "despacito\despacito.mdl"
$Model "despacito" "despacito.smd"
$surfaceprop antlion
$cdmaterials "despacito\"
$Ambientboost
$sequence "ragdoll" "anims\ragdoll.smd" {
fps 30
"ACT_DIERAGDOLL" 1
}
$CollisionJoints "physics.smd" {
$automass
$concave
$rootbone "root"
$noselfcollisions
}
I tried adding $jointconstrait for every bone, but the problem is that it says "error, leg1 has no parent bone" when compiling, which is BS, it's parent is called root, I even defined it with $rootbone and as you can see, the model itself is parented correctly:
https://i.gyazo.com/19f6cd4611dbba96d7a86c95694a14c0.png
I also tried defining bones, and as expected, it does show that these leg1 (from 1 to 8) are all parented to root, but in game the legs are still detatched, this is a big problem because every time I spawn the ragdoll its legs go through the ground and fall off of the map, once it reaches the map limit the whole ragdoll gets deleted, is there anything I forgot?
BONUS QUESTION! (10 coins):
This is the VMT for the legs' texture:
"VertexlitGeneric"
{
$basetexture despacito/legs
$bumpmap despacito/legs_bump
$ambientocclusion 1
$detail detail\noise_detail_01
$detailblendfactor .7
$nocull 1
$halflambert 1
$surfaceprop antlion
}
When giving the legs $surfaceprop antlion, and giving the head $surfaceprop plastic, the model loses all surface properties and instead uses the normal phx property, am I forgetting something or is it not possible to give a single model different properties?
Very good model. I love the attention to detail.
For the surface properties, probably $jointsurfaceprop is what you are looking for. Can you post a screenshot/smd of the physics file?
Check your idle animation and your physics model to see that they have the same bones. Also run the -definebones paramater with studiomdl, and put those $definebone lines into the QC (also check if they are correct)
$jointsurfaceprop is what are you looking for to give multiple $surfaceprops.
Hey, I already fixed everything and found the exact issue(s). I will write it up tomorrow on what the problems are, and send you the files.
I saw the thread title at a glance and thought it was another news thread
The myth, the legend, the mad man.
There is no way I could've passed the opportunity, sorry.
Adding
$jointmerge "root" "body"
after the rootbone seems to fix the physics, although if you want the legs moveable you are going to need to define some joint constraints.
You're right it did! The children are now with their parents!
I don't think I'll bother adding many jointconstraints tho since it would be a lot of work, that is unless there is a way to make them using HLMV or a similar software.
Add this to the $collisionjoints
$jointconstrain "head" x limit -180 180 0
$jointconstrain "head" y limit -180 180 0
$jointconstrain "head" z limit -180 180 0
$jointconstrain "thigh1" x limit -180 180 0
$jointconstrain "thigh1" y limit -180 180 0
$jointconstrain "thigh1" z limit -180 180 0
$jointconstrain "leg1" x limit -180 180 0
$jointconstrain "leg1" y limit -180 180 0
$jointconstrain "leg1" z limit -180 180 0
$jointconstrain "thigh2" x limit -180 180 0
$jointconstrain "thigh2" y limit -180 180 0
$jointconstrain "thigh2" z limit -180 180 0
$jointconstrain "leg2" x limit -180 180 0
$jointconstrain "leg2" y limit -180 180 0
$jointconstrain "leg2" z limit -180 180 0
$jointconstrain "thigh3" x limit -180 180 0
$jointconstrain "thigh3" y limit -180 180 0
$jointconstrain "thigh3" z limit -180 180 0
$jointconstrain "leg3" x limit -180 180 0
$jointconstrain "leg3" y limit -180 180 0
$jointconstrain "leg3" z limit -180 180 0
$jointconstrain "thigh4" x limit -180 180 0
$jointconstrain "thigh4" y limit -180 180 0
$jointconstrain "thigh4" z limit -180 180 0
$jointconstrain "leg4" x limit -180 180 0
$jointconstrain "leg4" y limit -180 180 0
$jointconstrain "leg4" z limit -180 180 0
$jointconstrain "thigh5" x limit -180 180 0
$jointconstrain "thigh5" y limit -180 180 0
$jointconstrain "thigh5" z limit -180 180 0
$jointconstrain "leg5" x limit -180 180 0
$jointconstrain "leg5" y limit -180 180 0
$jointconstrain "leg5" z limit -180 180 0
$jointconstrain "thigh6" x limit -180 180 0
$jointconstrain "thigh6" y limit -180 180 0
$jointconstrain "thigh6" z limit -180 180 0
$jointconstrain "leg6" x limit -180 180 0
$jointconstrain "leg6" y limit -180 180 0
$jointconstrain "leg6" z limit -180 180 0
$jointconstrain "thigh7" x limit -180 180 0
$jointconstrain "thigh7" y limit -180 180 0
$jointconstrain "thigh7" z limit -180 180 0
$jointconstrain "leg7" x limit -180 180 0
$jointconstrain "leg7" y limit -180 180 0
$jointconstrain "leg7" z limit -180 180 0
$jointconstrain "thigh8" x limit -180 180 0
$jointconstrain "thigh8" y limit -180 180 0
$jointconstrain "thigh8" z limit -180 180 0
$jointconstrain "leg8" x limit -180 180 0
$jointconstrain "leg8" y limit -180 180 0
$jointconstrain "leg8" z limit -180 180 0
Also $jointmerge is a hacky workaround, I'll explain why this happens specifically.
Collision joints recognize their own skeleton. They determine this skeleton by the physics meshes. In your case, you had no physics mesh created for the "root" bone, therefore the physics mesh didn't recognise the bone. The way I properly fixed it was to delete the body bone, and instead use the root bone. The physics mesh now properly recognized the root bone, as it had a physics mesh assigned to it.
Shit, I chose the answer too soon, this is perfect, sorry but the best I can do is a diamond, I am now poor.
No U aren't
Between the title, the screenshots and the subject of matter itself, this entire thread has been a rollercoaster. Bravo.
Sorry, you need to Log In to post a reply to this thread.