MAXScript Extensions > MAXScript Extensions for character studio > Crowd MAXScript Extensions > Crowd Behaviors >

# Surface_Arrive_Behavior :ReferenceTarget

    Surface_Arrive_Behavior - superclass: ReferenceTarget; super-superclass:MAXWrapper - 26:0 - classID: #(942174387, 1612215883)

| Character Studio - Quick Navigation

Constructor

    Surface_Arrive_Behavior ... SurfaceArriveBehavior ...

Properties

    <Surface_Arrive_Behavior>.name String Default: "Surface Arrive"

Get/set the name of the behavior.

    <Surface_Arrive_Behavior>.surfaces ArrayParameter Default: #() -- node array

See Notes below

    <Surface_Arrive_Behavior>.disableAfterArriving Boolean Default: True

When true, turns off the Surface Arrive behavior after the delegate arrives at the surface.

    <Surface_Arrive_Behavior>.rate Float Default: 0.5 -- animatable

A multiple of the delegate's Max Accel setting that specifies the acceleration with which it will try to arrive. A value of 1.0 uses the full acceleration of the delegate.

    <Surface_Arrive_Behavior>.rateDeviation Float Default: 0.0 -- animatable

Adds a variation to the to the rate setting.

    <Surface_Arrive_Behavior>.speed Float Default: 0.0 -- animatable

The speed at which to arrive and relative to the speed of the target.

    <Surface_Arrive_Behavior>.speedDeviationFloat Default: 0.0 -- animatable

Adds a variation to the to the speed setting.

    <Surface_Arrive_Behavior>.distance Float Default: 1e+008 -- animatable

The maximum radial distance from the target within which the behavior will be active. Until the delegate is within this radius, the behavior will have no influence.

    <Surface_Arrive_Behavior>.distanceDeviation Float Default: 0.0 -- animatable

Adds a variation to the to the distance setting.

    <Surface_Arrive_Behavior>.offset Float Default: 0.0 -- animatable

Specifies a consistent distance from the calculated arrival point, based on the surface normal, for the delegate to use.

    <Surface_Arrive_Behavior>.facing Boolean Default: False -- animatable

When true, the delegate will try to arrive only at points on triangles on the surface that are facing it.

    <Surface_Arrive_Behavior>.random_closest Integer Default: 0

0 -Random: The software chooses a random point on the target surface as the arrival point.

1 -Closest: The software chooses the closest point on the target surface as the arrival point.

    <Surface_Arrive_Behavior>.everyFrame Boolean Default: False -- animatable

When true, the software chooses arrival points for delegates at every frame. Available only when Closest is chosen.

    <Surface_Arrive_Behavior>.displayOffset Boolean Default: False

When true, shows the Offset distance as lines emanating from each vertex in the surface object, perpendicular to the surface.

    <Surface_Arrive_Behavior>.height Float Default: 0.0 -- animatable

Specifies a distance from the arrival point along its face normal. This is the point that the delegate will go to first before descending to the arrival point.

    <Surface_Arrive_Behavior>.heightDeviation Float Default: 0.0 -- animatable

Adds random variation to the to the Height setting. See introduction for the formula used to calculate the deviation.

    <Surface_Arrive_Behavior>.descentStart Float Default: 0.0 -- animatable

Specifies the distance between the delegate and the arrival point at which the descent should start.

Note

Be careful that Descent Start is set high enough that the delegate won't overshoot when descending because its speed is too high and deceleration too low, compared to when it should start descending.

    <Surface_Arrive_Behavior>.descentstartDeviation Float Default: 0.0 -- animatable

Adds a variation to the to the Descent Start setting.

    <Surface_Arrive_Behavior>.useNormal Boolean Default: False Alias: Off_This_Normal

When true, use vector specified in the . xNormal , . yNormal , and . zNormal to specify the angle at which the final approach occurs.

    <Surface_Arrive_Behavior>.xNormal Float Default: 0.0 -- animatable; Alias: X_Normal

Specify the final approach X value for the vector in world coordinates.

    <Surface_Arrive_Behavior>.yNormal Float Default: 0.0 -- animatable; Alias: Y_Normal

Specify the final approach Y value for the vector in world coordinates.

    <Surface_Arrive_Behavior>.zNormal Float Default: 1.0 -- animatable; Alias: Z_Normal

Specify the final approach Z value for the vector in world coordinates.

    <Surface_Arrive_Behavior>.seed Integer Default: 1 -- animatable

Affects the random numbers used to calculate the Deviation settings.

    <Surface_Arrive_Behavior>.targetColor Color Default: (color 0 0 127.5)

The color used to draw the target icon.

    <Surface_Arrive_Behavior>.displayTarget Boolean Default: True

When true, displays the target icon which appears during the solution when a new interim goal is calculated for the delegate.

    <Surface_Arrive_Behavior>.targetScal e Float Default: 5.0 -- animatable

Specifies the overall size of the target icon.

Methods

    SurfaceArriveBhvr.Getstate <Surface_Arrive_Behavior> <delegate_node>

Returns an integer value giving the state the delegate is in with respect to the Surface_Arrive_Behavior. A return value of -1 means that the delegate isn't active for that state, 0 means that the delegate is outside the distance radius and so isn't arriving, 1 means that the delegate is in the process of arriving, and 2 means that the delegate has arrived. If 'Disable After Arriving' is TRUE, the delegates will never reach state 2.

The main purpose of this funtion is so that the 'State' of a delegate as it arrives to a surface can be determined from MAXScript. It can be used for both the cognitive controller transitions as well as the script definable in MotionClips. See the ClipState Dialog and the Cognitive Controller topics in the character studio 3 online reference for more details.

    Track View > Global Tracks > Block Control > GlobalClip Properties > Synthesis dialog > State Tab > New State > Edit Properties > ClipState dialog Select a Crowd helper. > Modify panel > Global Clip Controllers rollout > New > Choose GlobalClip object. > Select object in list. > Edit > Synthesis dialog > State Tab > New State > Edit Properties > Clip State dialog

    Create panel > Helpers > Object Type rollout > Crowd > Setup rollout > Cognitive Controllers Select a Crowd object. > Modify panel > Setup rollout > Cognitive Controllers

    SurfaceArriveBhvr.getPos <Surface_Arrive_Behavior> <delegate_node>

Returns a Point3 value of the position that the delegate is arriving to at the time the function is called.

Note

You can perform the following MAXScript operations:

    deleteitem <array> <itemnumber><array> = #(item,item...)<array> = append <array> <item>

on all of the properties containing an ArrayParamater of objects listed below. You can also undo/redo these operations.

    <Surface_Arrive_Behavior>.surfaces

The following MAXScript operations will cause Crowd to fail, either right away or later:
NEVER set a Crowd/Behavior ArrayParameter element to undefined.

#### See Also

- Crowd : Helper

- MAXWrapper Common Properties, Operators, and Methods

- Value Common Properties, Operators, and Methods

- MAXScript Extensions in character studio