This article's documentation is for anything that uses the Source engine. Click here for more information.

$bonesaveframe: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
($bonesaveframe)
 
(Removing deprecated Category)
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
When using demand loaded animations (see [[$animblocksize]]) and asynchronous loading is enabled in the engine, the first frame of every animation is stored in a highly compressed form that the animation system will use that while waiting for the real data to show up, rather than just using the models reference pose.
{{LanguageBar}}
 
{{this is a|QC command|name=$bonesaveframe}} When using demand loaded animations (see [[$animblocksize]] and [[$sectionframes]]) and asynchronous loading is enabled in the engine, the first frame of every animation is stored in a highly compressed form that the animation system will use while waiting for the real data to show up. By default, all bones are written out in their entirety, but this is sometimes wasteful as not all bones need to both rotate & translate. This command allows you to specify which information is actually stored, in this case.
By default, all bones are written out. To better control which bones are written and what data is included, use <code>$bonesaveframe</code>


== Syntax ==
== Syntax ==
Line 36: Line 35:
  $BoneSaveFrame "Dog_Model.forward" rotation
  $BoneSaveFrame "Dog_Model.forward" rotation


[[Category:QC Commands|bonesaveframe]]__NOTOC__
== See also ==
* [[$animblocksize]]
* [[$sectionframes]]
 
__NOTOC__

Latest revision as of 21:12, 16 July 2025

English (en)Translate (Translate)

$bonesaveframe is a QC command available in all Source Source games. When using demand loaded animations (see $animblocksize and $sectionframes) and asynchronous loading is enabled in the engine, the first frame of every animation is stored in a highly compressed form that the animation system will use while waiting for the real data to show up. By default, all bones are written out in their entirety, but this is sometimes wasteful as not all bones need to both rotate & translate. This command allows you to specify which information is actually stored, in this case.

Syntax

$bonesaveframe <bone name> ["position"] ["rotation"]

Example

$BoneSaveFrame "Dog_Model.Pelvis" position rotation
$BoneSaveFrame "Dog_Model.Leg1_L" rotation
$BoneSaveFrame "Dog_Model.Leg2_L" rotation
$BoneSaveFrame "Dog_Model.Foot_L" rotation
$BoneSaveFrame "Dog_Model.Leg1_R" rotation
$BoneSaveFrame "Dog_Model.Leg2_R" rotation
$BoneSaveFrame "Dog_Model.Foot_R" rotation
$BoneSaveFrame "Dog_Model.Spine1" rotation
$BoneSaveFrame "Dog_Model.Spine2" rotation
$BoneSaveFrame "Dog_Model.Spine3" rotation
$BoneSaveFrame "Dog_Model.Neck1" rotation
$BoneSaveFrame "Dog_Model.Neck1_Length" rotation
$BoneSaveFrame "Dog_Model.Neck2" rotation
$BoneSaveFrame "Dog_Model.Neck2_Length" position rotation
$BoneSaveFrame "Dog_Model.Clavical_L" rotation
$BoneSaveFrame "Dog_Model.Arm1_L" rotation
$BoneSaveFrame "Dog_Model.Arm2_L" rotation
$BoneSaveFrame "Dog_Model.Hand_L" rotation
$BoneSaveFrame "Dog_Model.BigPhys_Attachment" position rotation
$BoneSaveFrame "Dog_Model.Pully_Arm_L" rotation
$BoneSaveFrame "Dog_Model.Clavical_R" rotation
$BoneSaveFrame "Dog_Model.Arm1_R" rotation
$BoneSaveFrame "Dog_Model.Arm2_R" rotation
$BoneSaveFrame "Dog_Model.Hand_R" rotation
$BoneSaveFrame "Dog_Model.Hand_R_Drill" rotation
$BoneSaveFrame "Dog_Model.forward" rotation

See also