$definebone

From Valve Developer Community
Revision as of 14:29, 28 April 2008 by JeffLane (talk | contribs) (more info)
Jump to navigation Jump to search

Defines a bone outside of any .smd source. This is useful when building animation only mdl's that would otherwise optimize out all the bones since none of them are connected to any geometry or attachment points. You can get studiomdl to dump this out using the "-definebones" command line option.

The (fixup) fields specify how the IK solver has rotated any of the bones to match the single X axis as the long axis requirement for all bones in an IK chain. All the source animations are resolved to match this new orientation.

This command is run before any $hierarchy commands.

Syntax

$definebone (name) (parent) (X) (Y) (Z) (xr) (yr) (zr) (fixup XR) (fixup YR) (fixup ZR)

How To

How to split out the bones used in the model:

Note.pngNote:Before you start, do not separate out the shared animations. You need to leave them all in the same .QC file before you start since studiomdl will optimize out all the bones that it doesn't think are animating.
  1. Bring up a command line.
  2. Go to the directory of your QC file.
  3. Type studiomdl -definebones yourfilename.qc > sharedbones.qci. This will create a text file named sharedbones.qci. This file will contain all the bones that studiomdl would normally leave in your .MDL since it detected that they both animate and are connected to a vertex or used by an attachment point.
  4. Edit sharedbones.qci in a text editor and remove all of the extraneous text that isn't part of the $definebone definitions.
  5. Edit your .QC files and split out the animations from the model .QCs into separate files. Include the sharedbones.qci file in both.