$treeSway

From Valve Developer Community
Revision as of 15:17, 1 May 2019 by NvC DmN CH (talk | contribs) (how to achieve [the same effect -> similar effect] in the link)

Jump to: navigation, search

$treeSway is a VMT command for VertexLitGeneric available in <Left 4 Dead><Left 4 Dead 2>, <Alien Swarm>, [Portal 2], <Counter-Strike: Global Offensive>, <Insurgency>, <Team Fortress 2> (As of Jungle Inferno), <Black Mesa (Source)> (as of December 2017), <Garry's Mod> (as of October 2018) that morphs a material around using the parameters of an env_wind entity. This is used in <Counter-Strike: Global Offensive> and <Insurgency> to give the appearance of tree leaves and foilage blowing in the wind. The paramaters of this command determine how much the env_wind entity should affect the morphing. This command assumes any model using it is facing upwards.

Note:In <Team Fortress 2>, <Garry's Mod>, does not require env_wind if $treeSwayStatic is set to 1.
Note:This shader is disabled by default in the <Alien Swarm> SDK. It can re-enabled by modding.
Bug: In <Garry's Mod>, using a projected texture on materials with this parameter will cause flickering. As a workaround, try to keep trees away from where player flashlights can reach. $halflambert may also partially fix the issue.

Parameters

$treeSway                         "0" "1" or "2"
//Changes the treesway effect. 0 is no sway, 1 is classic tree sway, 2 is an alternate, radial tree sway effect.
//Tree sway mode 2: Hacks to use tree sway code on rectangular sheets of plastic/tarp attached at the four corners. 
//Inverts the sway scale radius to be 1 at (0,0,0) in model space and fall off radially towards the edges of the model.
//The model is expected to be built lying in the X Y plane in model space, with its center at the origin.

$treeSwayHeight                   "float"    //The height in which the effect is applied.
$treeSwayStartHeight              "float"    //The height from the origin in which the effect starts blending in.
$treeSwayRadius                   "float"    //The radius from the origin in which the effect is applied.
$treeSwayStartRadius              "float"    //The radius from the origin in which the effect starts blending in.
$treeSwaySpeed                    "float"    //The speed multiplier of large movement such as the trunk.
$treeSwayStrength                 "float"    //The distance multiplier of large movement such as the trunk.
$treeSwayScrumbleSpeed            "float"    //The falloff of the effect on small movement such as the trunk. Higher means a more stable center.

$treeSwayScrumbleStrength         "float"    //The speed multiplier of the small movement such as the leaves.
$treeSwayScrumbleFrequency        "float"    //The distance multiplier of the small movement such as the leaves.
$treeSwayFalloffExp               "float"    //The frequency of the rippling of a sine wave in small movement such as the leaves.
$treeSwayScrumbleFalloffExp       "float"    //The falloff of the effect on small movement such as the leaves. Higher means a more stable center.

$treeSwaySpeedHighWindMultiplier  "float"    //Speed multiplier when env_wind triggers a gust.
$treeSwaySpeedLerpStart           "float"    //Minimum wind speed in which a gust triggered by env_wind will start affecting the material.
$treeSwaySpeedLerpEnd             "float"    //Minimum wind speed in which a gust triggered by env_wind will fully affect the material.
$treeSwayStatic                   "boolean"  //Whether or not to instead use a static wind value instead of the values from env_wind. TF2 and GMOD (as of April 2019) only.

See Also

https://gamebanana.com/tuts/12924 - How to achieve a similar effect without $treeSway, on all source engine games