• PlayerModel on a different skeleton (Not VALVe skeleton)
    15 replies, posted
Hello all, I would like to know how to make a playermodel with same animations and all but on a .mdl that isn't a VALVe skeleton. For instance, I tried making a playermodel out of a Zelda ragdoll, here's the result; 1st: it's not facing the good direction and is facing my right instead of in front of me 2nd: it stays like the "Jesus pose" here's some images So here's what I tried making [img]http://gyazo.com/708428b3ebe24bd61e85a50f9b7701d6.png[/img] Which comes up like that [img]http://gyazo.com/6c64b0f9ffa53b7a95d046959e484ab6.png[/img] And here it is on me, in gm_construct on the mirror [img]http://gyazo.com/0b609e54ef1064fac904d94754b75b37.png[/img] here's the .qc of the .mdl (This is the one I didn't edit/removed things) [CODE]$cd "C:\Users\Anthony\Desktop\DM" $modelname "Link/Link4.mdl" $model "link" "link'09.smd" { flexfile "mdldecompiler_expressions.vta" { flex "open" frame 2 flex "wideopen" frame 3 flex "r_lowbrowraise" frame 4 flex "l_lowbrowraise" frame 5 flex "r_eyeclose" frame 6 flex "l_eyeclose" frame 7 flex "r_smile" frame 8 flex "l_frown" frame 9 flex "r_frown" frame 10 flex "l_smile" frame 11 flex "l_upperbrow" frame 12 flex "r_upperbrow" frame 13 flex "r_browup" frame 14 flex "l_browup" frame 15 flex "r_lipcurl" frame 16 flex "l_lipcurl" frame 17 flex "yell" frame 18 flex "r_browdown" frame 19 flex "l_browdown" frame 20 flex "upperlidraiser" frame 21 flex "l_lidraiser" frame 22 flex "r_lidraiser" frame 23 flex "r_sneer" frame 24 flex "l_sneer" frame 25 flex "lipspart" frame 26 flex "GK" frame 27 flex "AW" frame 28 flex "T" frame 29 flex "EE" frame 30 flex "UH" frame 31 flex "DS" frame 32 flex "N" frame 33 flex "ER" frame 34 flex "EH" frame 35 flex "OO" frame 36 flex "OH" frame 37 flex "PP" frame 38 flex "WQ" frame 39 flex "MB" frame 40 flex "AE" frame 41 flex "AH" frame 42 flex "FV" frame 43 flex "SH" frame 44 flex "Y" frame 45 } eyeball righteye head -1.754 -4.893 62.404 eyeball_r 2.000 -1.000 r_eyeball 2.260 eyeball lefteye head 1.754 -4.893 62.404 eyeball_l 2.000 1.000 l_eyeball 2.260 // If you uncomment the following lines the eyes will be closed // I'm including it anyway in case anyone wants to experiment // eyelid upper_right "mdldecompiler_expressions.vta" lowerer 1 0.000000 neutral 1 0.000000 raiser 1 0.000000 split 0.1 eyeball righteye // eyelid lower_right "mdldecompiler_expressions.vta" lowerer 48 0.000000 neutral 48 0.000000 raiser 48 0.000000 split 0.1 eyeball righteye // If you uncomment the following lines the eyes will be closed // I'm including it anyway in case anyone wants to experiment // eyelid upper_left "mdldecompiler_expressions.vta" lowerer 46 0.000000 neutral 46 0.000000 raiser 46 0.000000 split -0.1 eyeball lefteye // eyelid lower_left "mdldecompiler_expressions.vta" lowerer 48 0.000000 neutral 48 0.000000 raiser 48 0.000000 split -0.1 eyeball lefteye flexcontroller phoneme blank "range" 0.000 1.000 flexcontroller phoneme open "range" 0.000 1.000 flexcontroller phoneme wideopen "range" 0.000 1.000 flexcontroller phoneme r_lowbrowraise "range" 0.000 1.000 flexcontroller phoneme l_lowbrowraise "range" 0.000 1.000 flexcontroller phoneme r_eyeclose "range" 0.000 1.000 flexcontroller phoneme l_eyeclose "range" 0.000 1.000 flexcontroller phoneme r_smile "range" 0.000 1.000 flexcontroller phoneme l_frown "range" 0.000 1.000 flexcontroller phoneme r_frown "range" 0.000 1.000 flexcontroller phoneme l_smile "range" 0.000 1.000 flexcontroller phoneme l_upperbrow "range" 0.000 1.000 flexcontroller phoneme r_upperbrow "range" 0.000 1.000 flexcontroller phoneme r_browup "range" 0.000 1.000 flexcontroller phoneme l_browup "range" 0.000 1.000 flexcontroller phoneme r_lipcurl "range" 0.000 1.000 flexcontroller phoneme l_lipcurl "range" 0.000 1.000 flexcontroller phoneme yell "range" 0.000 1.000 flexcontroller phoneme r_browdown "range" 0.000 1.000 flexcontroller phoneme l_browdown "range" 0.000 1.000 flexcontroller phoneme upperlidraiser "range" 0.000 1.000 flexcontroller phoneme l_lidraiser "range" 0.000 1.000 flexcontroller phoneme r_lidraiser "range" 0.000 1.000 flexcontroller phoneme r_sneer "range" 0.000 1.000 flexcontroller phoneme l_sneer "range" 0.000 1.000 flexcontroller phoneme lipspart "range" 0.000 1.000 flexcontroller phoneme GK "range" 0.000 1.000 flexcontroller phoneme AW "range" 0.000 1.000 flexcontroller phoneme T "range" 0.000 1.000 flexcontroller phoneme EE "range" 0.000 1.000 flexcontroller phoneme UH "range" 0.000 1.000 flexcontroller phoneme DS "range" 0.000 1.000 flexcontroller phoneme N "range" 0.000 1.000 flexcontroller phoneme ER "range" 0.000 1.000 flexcontroller phoneme EH "range" 0.000 1.000 flexcontroller phoneme OO "range" 0.000 1.000 flexcontroller phoneme OH "range" 0.000 1.000 flexcontroller phoneme PP "range" 0.000 1.000 flexcontroller phoneme WQ "range" 0.000 1.000 flexcontroller phoneme MB "range" 0.000 1.000 flexcontroller phoneme AE "range" 0.000 1.000 flexcontroller phoneme AH "range" 0.000 1.000 flexcontroller phoneme FV "range" 0.000 1.000 flexcontroller phoneme SH "range" 0.000 1.000 flexcontroller phoneme Y "range" 0.000 1.000 flexcontroller phoneme blank2 "range" 0.000 1.000 %blank = blank %open = open %wideopen = wideopen %r_lowbrowraise = r_lowbrowraise %l_lowbrowraise = l_lowbrowraise %r_eyeclose = r_eyeclose %l_eyeclose = l_eyeclose %r_smile = r_smile %l_frown = l_frown %r_frown = r_frown %l_smile = l_smile %l_upperbrow = l_upperbrow %r_upperbrow = r_upperbrow %r_browup = r_browup %l_browup = l_browup %r_lipcurl = r_lipcurl %l_lipcurl = l_lipcurl %yell = yell %r_browdown = r_browdown %l_browdown = l_browdown %upperlidraiser = upperlidraiser %l_lidraiser = l_lidraiser %r_lidraiser = r_lidraiser %r_sneer = r_sneer %l_sneer = l_sneer %lipspart = lipspart %GK = GK %AW = AW %T = T %EE = EE %UH = UH %DS = DS %N = N %ER = ER %EH = EH %OO = OO %OH = OH %PP = PP %WQ = WQ %MB = MB %AE = AE %AH = AH %FV = FV %SH = SH %Y = Y %blank2 = blank2 } $model "grip" "grip.smd" $model "grip" "UnknownModelName.smd" $model "sheath" "sheathgroup.smd" $model "sheath" "UnknownModelName.smd" $model "shield" "hylianshield.smd" $model "shield" "UnknownModelName.smd" $cdmaterials "models\link\shadow\" $hboxset "default" $hbox 0 "pelvis" -25.673 -7.923 -1.959 4.518 5.313 8.465 $hbox 0 "l_thigh" -0.815 -1.231 -7.312 2.185 1.169 0.217 $hbox 0 "l_knee" -7.672 -1.415 -2.411 0.149 1.503 1.091 $hbox 0 "l_foot" -3.498 -15.012 -10.152 5.487 5.306 1.770 $hbox 0 "r_thigh" -0.790 -1.169 -7.312 2.209 1.231 0.217 $hbox 0 "r_knee" -0.149 -1.480 -1.067 7.672 1.438 2.436 $hbox 0 "r_foot" -3.474 -15.012 -1.770 5.511 5.306 10.152 $hbox 0 "l_arm" -6.000 -0.700 -0.637 0.000 0.699 0.732 $hbox 0 "l_elbow" -7.528 -1.101 -1.023 0.000 1.106 1.142 $hbox 0 "ValveBiped.Bip01_L_Hand" -8.500 -3.645 -3.265 2.215 3.345 3.430 $hbox 0 "r_arm" 0.000 -0.701 -0.637 6.000 0.699 0.732 $hbox 0 "ValveBiped.Bip01_R_Hand" 0.000 -1.102 -1.023 7.529 1.105 1.142 $hbox 0 "spine" -19.750 -23.241 -5.173 19.767 11.265 23.728 $hbox 0 "head" -19.750 -23.241 -5.173 19.767 11.265 23.728 $hbox 0 "hat" -3.498 -15.012 -10.152 5.487 5.306 1.770 $hbox 0 "joint1" -3.498 -15.012 -10.152 5.487 5.306 1.770 $hbox 0 "hat2" -3.498 -15.012 -10.152 5.487 5.306 1.770 $hbox 0 "hat3" -3.498 -15.012 -10.152 5.487 5.306 1.770 $hbox 0 "hat4" -3.498 -15.012 -10.152 5.487 5.306 1.770 $hbox 0 "bag" -3.498 -15.012 -10.152 5.487 5.306 1.770 $hbox 0 "bag2" -3.498 -15.012 -10.152 5.487 5.306 1.770 // Model uses material "link2.vmt" // Model uses material "blade.vmt" // Model uses material "link1.vmt" // Model uses material "inside.vmt" // Model uses material "link3.vmt" // Model uses material "face.vmt" // Model uses material "r_eye.vmt" // Model uses material "r_eyewhite.vmt" // Model uses material "l_eye.vmt" // Model uses material "l_eyewhite.vmt" // Model uses material "r_eyeball.vmt" // Model uses material "glint.vmt" // Model uses material "l_eyeball.vmt" // Model uses material "grip.vmt" // Model uses material "sheath.vmt" // Model uses material "shield.vmt" $attachment "eyes" "head" -0.01 3.82 3.26 rotate -80.00 -90.00 -0.00 $attachment "mouth" "head" 0.80 -5.80 -0.15 rotate 0.00 -80.00 -90.00 $surfaceprop "flesh" $eyeposition -0.000 0.000 73.000 $illumposition -0.043 -0.144 34.730 $sequence idle "idle" fps 1.00 $collisionjoints "phymodel.smd" { $mass 200.0 $inertia 10.00 $damping 0.01 $rotdamping 1.50 $rootbone "pelvis" $jointmerge "spine" "chest" $jointconstrain "bag" x limit -8.00 17.00 0.00 $jointconstrain "bag" y limit 0.00 0.00 0.00 $jointconstrain "bag" z limit -12.00 12.00 0.00 $jointconstrain "spine" x limit -26.00 26.00 0.00 $jointconstrain "spine" y limit -32.00 32.00 0.00 $jointconstrain "spine" z limit -15.00 15.00 0.00 $jointconstrain "l_arm" x limit -48.00 57.00 0.00 $jointconstrain "l_arm" y limit -91.00 73.00 0.00 $jointconstrain "l_arm" z limit -93.00 57.00 0.00 $jointconstrain "l_elbow" x limit -40.00 40.00 0.00 $jointconstrain "l_elbow" y limit -125.00 0.00 0.00 $jointconstrain "l_elbow" z limit 0.00 0.00 0.00 $jointconstrain "head" x limit -30.00 12.00 0.00 $jointconstrain "head" y limit -45.00 45.00 0.00 $jointconstrain "head" z limit -30.00 30.00 0.00 $jointconstrain "hat" x limit -6.00 35.00 0.00 $jointconstrain "hat" y limit -26.00 26.00 0.00 $jointconstrain "hat" z limit -15.00 15.00 0.00 $jointconstrain "joint1" x limit -26.00 23.00 0.00 $jointconstrain "joint1" y limit -26.00 26.00 0.00 $jointconstrain "joint1" z limit -30.00 30.00 0.00 $jointconstrain "hat2" x limit -21.00 32.00 0.00 $jointconstrain "hat2" y limit -26.00 26.00 0.00 $jointconstrain "hat2" z limit -25.00 25.00 0.00 $jointconstrain "hat3" x limit -30.00 30.00 0.00 $jointconstrain "hat3" y limit -15.00 15.00 0.00 $jointconstrain "hat3" z limit -25.00 25.00 0.00 $jointconstrain "hat4" x limit -23.00 23.00 0.00 $jointconstrain "hat4" y limit -15.00 15.00 0.00 $jointconstrain "hat4" z limit -25.00 25.00 0.00 $jointconstrain "r_arm" x limit -48.00 57.00 0.00 $jointconstrain "r_arm" y limit -73.00 93.00 0.00 $jointconstrain "r_arm" z limit -57.00 88.00 0.00 $jointconstrain "r_elbow" x limit -40.00 40.00 0.00 $jointconstrain "r_elbow" y limit 0.00 125.00 0.00 $jointconstrain "r_elbow" z limit 0.00 0.00 0.00 $jointconstrain "valvebiped.bip01_r_hand" x limit -44.00 44.00 0.04 $jointconstrain "valvebiped.bip01_r_hand" y limit -25.00 25.00 0.04 $jointconstrain "valvebiped.bip01_r_hand" z limit -30.00 40.00 0.04 $jointconstrain "valvebiped.bip01_l_hand" x limit -44.00 44.00 0.04 $jointconstrain "valvebiped.bip01_l_hand" y limit -25.00 25.00 0.04 $jointconstrain "valvebiped.bip01_l_hand" z limit -30.00 40.00 0.04 $jointconstrain "l_thigh" x limit -50.00 48.00 0.04 $jointconstrain "l_thigh" y limit -15.00 30.00 0.04 $jointconstrain "l_thigh" z limit -48.00 79.00 0.04 $jointconstrain "l_knee" x limit 0.00 105.00 0.00 $jointconstrain "l_knee" y limit 0.00 0.00 0.00 $jointconstrain "l_knee" z limit 0.00 0.00 0.00 $jointconstrain "l_foot" x limit -23.00 23.00 0.00 $jointconstrain "l_foot" y limit -15.00 15.00 0.00 $jointconstrain "l_foot" z limit -28.00 28.00 0.00 $jointconstrain "r_thigh" x limit -50.00 48.00 0.04 $jointconstrain "r_thigh" y limit -30.00 15.00 0.04 $jointconstrain "r_thigh" z limit -79.00 48.00 0.04 $jointconstrain "r_knee" x limit 0.00 105.00 0.00 $jointconstrain "r_knee" y limit 0.00 0.00 0.00 $jointconstrain "r_knee" z limit 0.00 0.00 0.00 $jointconstrain "r_foot" x limit -23.00 23.00 0.00 $jointconstrain "r_foot" y limit -15.00 15.00 0.00 $jointconstrain "r_foot" z limit -28.00 28.00 0.00 $jointconstrain "bag2" x limit -8.00 17.00 0.00 $jointconstrain "bag2" y limit 0.00 0.00 0.00 $jointconstrain "bag2" z limit -12.00 12.00 0.00 } [/CODE] Thank you in advance =)
To make another playermodel that isn't on valve skeleton, you'd need to create a set of animations for that skeleton. Which is why all playermodels are on the valve biped. (because it has animations)
Oh thank you, but erm... how do I create a set of animations for that skeleton exactly? :s
You animate all the bones, which is a lot more work than simply rerigging the skeleton to the valve biped.
[QUOTE=Divize;44152303]Oh thank you, but erm... how do I create a set of animations for that skeleton exactly? :s[/QUOTE] Long story short, you don't. You'd have to load up the skeleton in animation software like max/maya/blender and manually recreate each and every animation in the playermodel library more or less frame by frame on the new set of bones. Given the size of valve's library, that'd take weeks to months even for someone that is quite competent in biped/skeletal animations.
Aw... okay well thanks a lot for the quick answers :) Edit: I heard there was something about Pac3... should I know anything about that?
[QUOTE=Divize;44152415]Aw... okay well thanks a lot for the quick answers :) Edit: I heard there was something about Pac3... should I know anything about that?[/QUOTE] It merely parents models to bones. It's not gonna make that model work.
Oh alright, thanks again.
[QUOTE=Stiffy360;44152452]It merely parents models to bones. It's not gonna make that model work.[/QUOTE] It's going to make it work using different events. Adding that to the list that "sounds like something Stiffy would say."
You have a few options: 1. Rig it to the Valve Biped. 2.Create animations by hand (this would take a long time so be warned). 3. Get someone to do it for you (depending on the person, you can get charged for it). You might be able to make the animations with mocap if you have the money, software and time. For now, your model will only work as a ragdoll and not a player model since it doesn't have the animations and skeleton required. I wish you good luck! :smile:
Looks like the easiest method would be to "Rig it to the Valve Biped" Now how does one simply rig it to valve biped, since I have no idea what this is could I have a link on something useful? If I need a 3D program or whatsoever like that then don't bother since my laptop would be too slow to even try. Thanks again =)
Well if it's already rigged, you could theoretically just take the existing weights and rename them to Valve ones. But no matter what you're going to need a 3D editing program. Blender is a popular choice for beginners since it's free and relatively easy to pick up.
[QUOTE=SergerantJoe;44156419]Well if it's already rigged, you could theoretically just take the existing weights and rename them to Valve ones. But no matter what you're going to need a 3D editing program. Blender is a popular choice for beginners since it's free and relatively easy to pick up.[/QUOTE] You also need to pivot the bones so that they match the pivots from the Valve Biped.
I guarantee you the easiest solution would be to rig it on Valve's skeleton.
But be warned skeletons are spooky
[QUOTE=Stiffy360;44152452]It merely parents models to bones. It's not gonna make that model work.[/QUOTE] It's possible but it's a lot of manual work. You add a "bone part" to each bone on the non valve skeleton, then you add dummy models to every bone on the valve skeleton model. [img]http://dl.dropbox.com/u/244444/ShareX/2014-03/2014-03-15_11-31-26.png[/img] a more real example: [img]https://dl.dropbox.com/u/244444/ShareX/2014-03/2014-03-15_11-35-59.png[/img] Is it a good way/clean/proper way? Not at all. It's gonna be more efficient if you do it in a 3d modelling program like the people have suggested here. But if you're curious on what it may look like then maybe you could try this.
Sorry, you need to Log In to post a reply to this thread.