Eyeball: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Added shader info to the image descriptions)
m (Fix self-redirected links)
Line 18: Line 18:
;<code><bone_name></code>
;<code><bone_name></code>
: The bone which the eye is parented to, typically the head.
: The bone which the eye is parented to, typically the head.
;<code><X> <Y> <Z></code>
;<code><[[X]]> <[[Y]]> <[[Z]]></code>
: World location of the center of the ball of the eye. While your eye doesn't need to be a sphere in the model, Source will always map the material according to an invisible ball.
: World location of the center of the ball of the eye. While your eye doesn't need to be a sphere in the model, Source will always map the material according to an invisible ball.
;<code><material_name></code>
;<code><material_name></code>
: Material above which the iris material will be drawn. Make sure every eye has a unique one! You can either use a material with the <code>[[Eyes]]</code> shader, or the <code>[[EyeRefract]]</code> shader, but the latter is pretty much always recommended due to its more accurate rendering methods and more parameters to mess with.
: Material above which the iris material will be drawn. Make sure every eye has a unique one! You can either use a material with the <code>Eyes</code> shader, or the <code>[[EyeRefract]]</code> shader, but the latter is pretty much always recommended due to its more accurate rendering methods and more parameters to mess with.
;<code><diameter></code>
;<code><diameter></code>
: Width of the eyeball when viewed from the front. Used to prevent the iris from rolling inside the head. {{note|The iris will travel in a circle even if the eyeball is oval. Your model's [[flex]] should accommodate for this. {{todo|How?}} }}
: Width of the eyeball when viewed from the front. Used to prevent the iris from rolling inside the head. {{note|The iris will travel in a circle even if the eyeball is oval. Your model's [[flex]] should accommodate for this. {{todo|How?}} }}
Line 29: Line 29:
: Material used as the iris texture. (This property is deprecated)
: Material used as the iris texture. (This property is deprecated)
;<code><iris_scale></code>
;<code><iris_scale></code>
: Scale of the iris texture. The model's UV map does not influence the eye material in any way. {{todo|While this is true for <code>[[EyeRefract]]</code>, is this also true for the <code>[[Eyes]]</code> shader?}}
: Scale of the iris texture. The model's UV map does not influence the eye material in any way. {{todo|While this is true for <code>[[EyeRefract]]</code>, is this also true for the <code>Eyes</code> shader?}}


=== Example ===
=== Example ===
Line 35: Line 35:
Hover your mouse over each value for its description.
Hover your mouse over each value for its description.


  [[$model (QC)|$model]] "female_01" "female_01_reference_RE.smd" {
  [[$model (QC)|$model]] "female_01" "female_01_reference_RE.smd"
    '''eyeball''' <span title="Eye name" style="background:#DFDFDF;">righteye</span> <span title="Parent bone" style="background:#DFDFDF;">ValveBiped.Bip01_Head1</span> <span title="Center co-ords" style="background:#DFDFDF;">-1.261 -3.702 64.974</span> <span title="Eye white material" style="background:#DFDFDF;">eyeball_r</span> <span title="Diameter" style="background:#DFDFDF;">1</span> <span title="Angle" style="background:#DFDFDF;">4</span> <span title="Iris material" style="background:#DFDFDF;">pupil_r</span> <span title="Iris scale" style="background:#DFDFDF;">0.66</span>
{
'''eyeball''' <span title="Eye name" style="background:#DFDFDF;">righteye</span> <span title="Parent bone" style="background:#DFDFDF;">ValveBiped.Bip01_Head1</span> <span title="Center co-ords" style="background:#DFDFDF;">-1.261 -3.702 64.974</span> <span title="Eye white material" style="background:#DFDFDF;">eyeball_r</span> <span title="Diameter" style="background:#DFDFDF;">1</span> <span title="Angle" style="background:#DFDFDF;">4</span> <span title="Iris material" style="background:#DFDFDF;">pupil_r</span> <span title="Iris scale" style="background:#DFDFDF;">0.66</span>
  }
  }


== See also ==
== See also ==


* The <code>[[EyeRefract]]</code> and <code>[[Eyes]]</code> shaders
* The <code>[[EyeRefract]]</code> shader
* [[Eye Position Setup]], for a guide to calculating the various numbers required
* [[Eye Position Setup]], for a guide to calculating the various numbers required
* <code>[[qc_eyes]]</code>, a tool to aid your calculations
* <code>[[qc_eyes]]</code>, a tool to aid your calculations


[[Category:Modeling]]
[[Category:Modeling]]

Revision as of 00:37, 31 July 2019

The Demoman's eyeball, using the EyeRefract shader.
Alyx's eyeball in Episode Two, using the obsolete Eyes shader.
A vortigaunt's largest eye. The iris covers its entire surface.

Eyeball is a property of $model. It consists of two components:

  1. An 'eye white' surface on the model, with a unique material.
  2. A dynamic iris decal that travels over the eye white material to simulate the eye looking in different directions.
Tip.pngTip:An iris material can cover the entire surface of the eye if need be.

Parameters

Tip.pngTip:The qc_eyes tool can help you manage the potentially confusing string of numbers needed for this command.
<name>
Name of eyeball, used to match eyelid rules. For humans, use righteye and lefteye.
<bone_name>
The bone which the eye is parented to, typically the head.
<X> <Y> <Z>
World location of the center of the ball of the eye. While your eye doesn't need to be a sphere in the model, Source will always map the material according to an invisible ball.
<material_name>
Material above which the iris material will be drawn. Make sure every eye has a unique one! You can either use a material with the Eyes shader, or the EyeRefract shader, but the latter is pretty much always recommended due to its more accurate rendering methods and more parameters to mess with.
<diameter>
Width of the eyeball when viewed from the front. Used to prevent the iris from rolling inside the head.
Note.pngNote:The iris will travel in a circle even if the eyeball is oval. Your model's flex should accommodate for this.
Todo: How?
<angle>
Default yaw offset (from directly forward) for iris. Humans are typically 2-4 degrees wall-eyed. Not setting this correctly will result in either your characters appearing cross-eyed, or if you've compensated by misplacing the ball of the eye, them not tracking side to side. Should be a negative value for the left eye, and a positive value for the right eye.
<iris_material>
Material used as the iris texture. (This property is deprecated)
<iris_scale>
Scale of the iris texture. The model's UV map does not influence the eye material in any way.
Todo: While this is true for EyeRefract, is this also true for the Eyes shader?

Example

Hover your mouse over each value for its description.

$model "female_01" "female_01_reference_RE.smd"
{
	eyeball righteye ValveBiped.Bip01_Head1 -1.261 -3.702 64.974 eyeball_r 1 4 pupil_r 0.66
}

See also