Hey all, so I've been trying to convert this bloody weapon to be c_hands compatible and so far everything has worked, except for one tiny fucking niggle which I just can't get my head around.
So if I export the SMD with the mesh, like so:
[t]https://dl.dropboxusercontent.com/u/17094269/Colt Issue/01.PNG[/t]
It ends up like this:
[t]https://dl.dropboxusercontent.com/u/17094269/Colt Issue/02.png[/t]
Pretty much perfect right? Just need to remove the mesh. Let's just delete that, no other bones removed (the SMD files don't show any bones deleted):
[t]https://dl.dropboxusercontent.com/u/17094269/Colt Issue/03.PNG[/t]
Then this shit happens:
[t]https://dl.dropboxusercontent.com/u/17094269/Colt Issue/04.png[/t]
How does the entirety of the left side of bones just disappear? Has anyone come across this before? I feel like this is a compiler issue. I'm using the HL2 compiler through Crowbar, if that helps.
If you need the files (although they're technically not mine) or anything else, just ask. Cheers.
I don't know much, but try using $definebone in the qc to avoid truncation.
https://developer.valvesoftware.com/wiki/$definebone
The HL2 compiler is probably screwing it up, considering that it's expecting the arms mesh when there isn't any.
Also, since you're creating c_models, the only versions that would work are the Garry's Mod or the Source SDK 2013 Multiplayer versions. There's really no point in using the HL2 version unless you're making models for HL2.
Just to make sure, how are you deleting the mesh? Try doing this, if you haven't already:
-Select the editable poly/editable mesh modifier in your model.
-select the "element" box
-press Ctrl + A
-press delete
That would make sure you're not accidentally selecting a bone.
[QUOTE=huntingrifle;48087089]The HL2 compiler is probably screwing it up, considering that it's expecting the arms mesh when there isn't any.
Also, since you're creating c_models, the only versions that would work are the Garry's Mod or the Source SDK 2013 Multiplayer versions. There's really no point in using the HL2 version unless you're making models for HL2.
Just to make sure, how are you deleting the mesh? Try doing this, if you haven't already:
-Select the editable poly/editable mesh modifier in your model.
-select the "element" box
-press Ctrl + A
-press delete
That would make sure you're not accidentally selecting a bone.[/QUOTE]
I did the deleting via elements, still had the same problem.
I'll try using the Source 2013 Multiplayer compiler and see if that makes any difference. Thanks. I would also help if I posted my QC file too I guess.
[editline]30th June 2015[/editline]
Cloudfare...
[code]
// Created by Crowbar 0.19.0.0
$modelname "weapons/c_ristol.mdl"
//$include "c_arms_definebones.qci"
$body "studio" "v_ristol_reference.smd"
$cdmaterials "models\Weapons\V_hand\"
$cdmaterials "models\Weapons\V_colt\"
$renamebone "ValveBiped.Bip01_R_UpperArm03" "ValveBiped.Bip01_R_UpperArm"
$renamebone "ValveBiped.Bip01_R_Forearm03" "ValveBiped.Bip01_R_Forearm"
$renamebone "ValveBiped.Bip01_R_Hand03" "ValveBiped.Bip01_R_Hand"
$renamebone "ValveBiped.Bip01_R_Finger73" "ValveBiped.Bip01_R_Finger0"
$renamebone "ValveBiped.Bip01_R_Finger86" "ValveBiped.Bip01_R_Finger01"
$renamebone "ValveBiped.Bip01_R_Finger87" "ValveBiped.Bip01_R_Finger02"
$renamebone "ValveBiped.Bip01_R_Finger74" "ValveBiped.Bip01_R_Finger3"
$renamebone "ValveBiped.Bip01_R_Finger75" "ValveBiped.Bip01_R_Finger31"
$renamebone "ValveBiped.Bip01_R_Finger76" "ValveBiped.Bip01_R_Finger32"
$renamebone "ValveBiped.Bip01_R_Finger77" "ValveBiped.Bip01_R_Finger4"
$renamebone "ValveBiped.Bip01_R_Finger78" "ValveBiped.Bip01_R_Finger41"
$renamebone "ValveBiped.Bip01_R_Finger79" "ValveBiped.Bip01_R_Finger42"
$renamebone "ValveBiped.Bip01_R_Finger80" "ValveBiped.Bip01_R_Finger2"
$renamebone "ValveBiped.Bip01_R_Finger81" "ValveBiped.Bip01_R_Finger21"
$renamebone "ValveBiped.Bip01_R_Finger82" "ValveBiped.Bip01_R_Finger22"
$renamebone "ValveBiped.Bip01_R_Finger83" "ValveBiped.Bip01_R_Finger1"
$renamebone "ValveBiped.Bip01_R_Finger84" "ValveBiped.Bip01_R_Finger11"
$renamebone "ValveBiped.Bip01_R_Finger85" "ValveBiped.Bip01_R_Finger12"
$renamebone "ValveBiped.Bip01_R_UpperArm02" "ValveBiped.Bip01_L_UpperArm"
$renamebone "ValveBiped.Bip01_R_Forearm02" "ValveBiped.Bip01_L_Forearm"
$renamebone "ValveBiped.Bip01_R_Hand02" "ValveBiped.Bip01_L_Hand"
$renamebone "ValveBiped.Bip01_R_Finger59" "ValveBiped.Bip01_L_Finger4"
$renamebone "ValveBiped.Bip01_R_Finger58" "ValveBiped.Bip01_L_Finger3"
$renamebone "ValveBiped.Bip01_R_Finger63" "ValveBiped.Bip01_L_Finger31"
$renamebone "ValveBiped.Bip01_R_Finger64" "ValveBiped.Bip01_L_Finger32"
$renamebone "ValveBiped.Bip01_R_Finger60" "ValveBiped.Bip01_L_Finger41"
$renamebone "ValveBiped.Bip01_R_Finger61" "ValveBiped.Bip01_L_Finger42"
$renamebone "ValveBiped.Bip01_R_Finger65" "ValveBiped.Bip01_L_Finger2"
$renamebone "ValveBiped.Bip01_R_Finger66" "ValveBiped.Bip01_L_Finger21"
$renamebone "ValveBiped.Bip01_R_Finger67" "ValveBiped.Bip01_L_Finger22"
$renamebone "ValveBiped.Bip01_R_Finger68" "ValveBiped.Bip01_L_Finger1"
$renamebone "ValveBiped.Bip01_R_Finger69" "ValveBiped.Bip01_L_Finger11"
$renamebone "ValveBiped.Bip01_R_Finger70" "ValveBiped.Bip01_L_Finger12"
$renamebone "ValveBiped.Bip01_R_Finger71" "ValveBiped.Bip01_L_Finger0"
$renamebone "ValveBiped.Bip01_R_Finger72" "ValveBiped.Bip01_L_Finger01"
$renamebone "ValveBiped.Bip01_R_Finger62" "ValveBiped.Bip01_L_Finger02"
//$ikchain rhand "ValveBiped.Bip01_R_Hand" Z 0 knee 0.707 0.707 0
//$ikchain lhand "ValveBiped.Bip01_L_Hand" Z 0 knee 0.707 0.707 0
//$origin 0 0 -30
// Model uses material "Frame.vmt"
// Model uses material "Slide.vmt"
// Model uses material "v_hand_sheet.vmt"
$attachment "muzzle" "Barrel" 0 3.9 0 rotate 0 90 -90
$attachment "1" "USP" 0 -1.5 -2.6 rotate 0 -180 -90
//$surfaceprop "default"
//$contents "solid"
// Only set this if you know what it does, and need it for special circumstances, such as with gibs.
// $illumposition -0.702 12.972 -35.781
// $bbox -6.293 -17.265 -16.448 26.879 13.653 -2.062
// $cbox is probably not used anymore
// $cbox 0 0 0 0 0 0
//$hboxset "default"
$sequence "idle01" "v_ristol_anims\idle01.smd" {
fps 30
"ACT_VM_IDLE" 1
loop
snap
node "0"
}
$sequence "idle01empty" "v_ristol_anims\idle01empty.smd" {
fps 30
"ACT_VM_IDLE_EMPTY" 1
loop
snap
node "0"
}
$sequence "fire" "v_ristol_anims\fire.smd" {
fps 30
"ACT_VM_PRIMARYATTACK" 1
snap
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event 6001 0 "0" }
}
$sequence "fire1" "v_ristol_anims\fire1.smd" {
fps 30
"ACT_VM_RECOIL1" 1
snap
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event 6001 0 "0" }
}
$sequence "fire2" "v_ristol_anims\fire2.smd" {
fps 30
"ACT_VM_RECOIL2" 1
snap
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event 6001 0 "0" }
}
$sequence "fire3" "v_ristol_anims\fire3.smd" {
fps 30
"ACT_VM_RECOIL3" 1
snap
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event 6001 0 "0" }
}
$sequence "fireempty" "v_ristol_anims\fireempty.smd" {
fps 30
"ACT_VM_DRYFIRE" 1
snap
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event AE_MUZZLEFLASH 0 "PISTOL MUZZLE" }
{ event 6001 0 "0" }
}
$sequence "draw" "v_ristol_anims\draw.smd" {
fps 30
"ACT_VM_DRAW" 1
snap
node "0"
}
$sequence "drawempty" "v_ristol_anims\drawempty.smd" {
fps 30
snap
node "0"
}
$sequence "reload" "v_ristol_anims\reload.smd" {
fps 30
"ACT_VM_RELOAD" 1
snap
node "0"
}
$sequence "holster" "v_ristol_anims\holster.smd" {
fps 30
"ACT_VM_HOLSTER" 1
snap
node "0"
}
$sequence "holsterempty" "v_ristol_anims\holsterempty.smd" {
fps 30
"ACT_VM_HOLSTER" 1
snap
node "0"
}
$sequence "idletolow" "v_ristol_anims\idletolow.smd" {
fps 30
"ACT_VM_LOWERED_TO_IDLE" 1
snap
transition "0" "1"
}
$sequence "lowtoidle" "v_ristol_anims\lowtoidle.smd" {
fps 30
"ACT_VM_IDLE_TO_LOWERED" 1
snap
transition "1" "0"
}
$sequence "lowidle" "v_ristol_anims\lowidle.smd" {
fps 30
"ACT_VM_IDLE_LOWERED" 1
loop
snap
node "1"
}
[/code]
[editline]30th June 2015[/editline]
Still got the same issue on Source 2013 I'm afraid.
You're kind of supposed to be using a definebones .qci file.
Just check the wiki, searching for hands---
[url]http://wiki.garrysmod.com/page/Using_Viewmodel_Hands[/url]
[QUOTE]Remember to include c_arms_definebones.qci from the medkit example, as otherwise StudioMDL will optimise away the arm bones that you've included and then it won't work.[/QUOTE]
I was doing that originally (or at least trying too, not sure how it's supposed to work) and everything ended up spazzing out.
I'll give it another go but I don't think it works.
[editline]30th June 2015[/editline]
So I found something interesting when looking at the [URL="https://developer.valvesoftware.com/wiki/SMD#Nodes"]SMD page[/URL] on the VDC. It seems to be that if a bone isn't attached to a verticy, then it won't compile in the bone and thus any children as well. How would I go about attaching the bones to a mesh (in this case, the gun)?
i think [URL="https://developer.valvesoftware.com/wiki/$attachment"]$attachment[/URL] would work in this case.
Gave it a go. No cigar. Thanks though.
[editline]30th June 2015[/editline]
I found that I do need to attach a bone to a verticy to get it to work, but it looks all very clunky. I used a Physique modifier but the result was horrendous.
So close, yet so far.
[editline]1st July 2015[/editline]
Okay so turns out actually following instructions and putting in the QCI file does help make it work, but currently the fingers are all messed up.
[t]https://dl.dropboxusercontent.com/u/17094269/Colt%20Issue/05.jpg[/t]
What have I left out...
Okay so I should go to bed, but [URL="https://dl.dropboxusercontent.com/u/17094269/Colt%20Issue/Colt_chands.7z"]here's a link to the files[/URL] so if anyone wants to take a stab and look at them for me, I would be greatly appreciated. Thanks.
-snip-
Ignore this message. I misread the question : p,.
Seems your bone orientations are messed up. There's not really a good way to fix without one of two options:
1 - Reanimate on the c_arms rig
2 - Puppet the c_arms rig onto the rig you're currently using. Compile with both hands meshes (citizen and your origin) using the -definebones flag for studiomdl, write down your .qci, and then compile with the .qci but no hand meshes. Puppeting refers to the act of parenting ValveBiped.Bip01_R_Forearm to the original rig's forearm bone, etc.
Okay so 1 isn't an option for me, and 2 looks promising but I have no idea how I would go about this. If it involves actually moving stuff around in the modelling programs then I'm pretty busted.
Is it a simple case of loading both the original reference and the citizen arms in the same workspace, exporting the SMD's and compiling them together (along with the studiomdl command:)
[code]
-definebones mdldecompile.qc > sharedbones.qci
[/code]
Then go back into the modeller, delete both the meshes (and if there are any bones that were transported along with the citizen arms, delete those too), re-save, recompile with the new QCI file?
Hope that made sense. Just for reference, here's a video with both the original and new (broken) one:
[video=youtube;wlfGI10LH0I]https://www.youtube.com/watch?v=wlfGI10LH0I[/video]
I've been spending the past 2 hours trying to do what you said, but I just can't get it to work. This thing is driving me fucking insane. The combination of the two leaves the original mesh working but not the new ones.
[t]https://dl.dropboxusercontent.com/u/17094269/Colt Issue/06.jpg[/t]
Sorry to act like an ass, but how can something so supposedly simple be so god damn hard...
Sorry, you need to Log In to post a reply to this thread.