$controller

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

Creates a channel to manually set a single axis position or angle on a bone. Not recommended for use, mostly these exist since Half-Life 1 used them.

Syntax

$controller <number> "<bone_name>" <L><axis><R> <start_angle> <end_angle>

where

<number>
The number of the controller (you may need multiple controllers).
Todo: confirm that you can also use "mouth" for <number> as it represents the value 1, this is hard-coded in studiocompiler.
<bone_name>
the name of the bone to control.
<axis>
The axis can be either X, Y, or Z. You need to specify a new controller for each axis of rotation.
<L>
The prefix L on the axis specifies that this controller loops back around to the start when it ends (see example below).
<R>
The suffix R specifies the angles are in Wikipedia icon radians instead of degrees (see example below).
<start_angle>
the offset start angle of the rotation in degrees (or radians).
<end_angle>
the offset end angle of the rotation in degrees (or radians).

Example

$modelname "npcs/robot.mdl"
$cdmaterials "models/npcs/"
$model "Robot" "robot.smd"
$controller 1 "jaw" X 0 20
$controller 2 "tracker" LYR -1 1
$sequence "idle" "idle.smd"
Todo: confirm syntax of "tracker"