Wilma Asset
Generated on 09/20/07
AssetID 1
Asset Identifier "Wilma"
Quick Links
The Components
These are the body parts for which transforms are supplied by ART. This table indicates the order in which the components are supplied and to which joint in the Maya skeleton they correspond.
| Order |
Component |
Joint |
| 0 |
Buttocks |
Char_Pelvis |
| 1 |
Thigh_Left |
Char_L_Thigh |
| 2 |
Shin_Left |
Char_L_Calf |
| 3 |
Foot_Left |
Char_L_Foot |
| 4 |
Thigh_Right |
Char_R_Thigh |
| 5 |
Shin_Right |
Char_R_Calf |
| 6 |
Foot_Right |
Char_R_Foot |
| 7 |
Spine0 |
Char_Spine |
| 8 |
Spine1 |
Char_Spine1 |
| 9 |
Spine2 |
Char_Spine2 |
| 10 |
Spine3 |
Char_Spine3 |
| 11 |
Neck |
Char_Neck |
| 12 |
Head |
Char_Head |
| 13 |
Clavicle_Left |
Char_L_Clavicle |
| 14 |
Upper_Arm_Left |
Char_L_UpperArm |
| 15 |
Lower_Arm_Left |
Char_L_ForeArm |
| 16 |
Hand_Left |
Char_L_Hand |
| 17 |
Clavicle_Right |
Char_R_Clavicle |
| 18 |
Upper_Arm_Right |
Char_R_UpperArm |
| 19 |
Lower_Arm_Right |
Char_R_ForeArm |
| 20 |
Hand_Right |
Char_R_Hand |
The Behaviour Messages
These are the behaviour messages.
This will take any animation currently set as the incoming transforms of the agent and drive the character to the pose defined therein. To constantly drive an agent to an animation, this message must be sent every frame. The stiffness of the characters joints will determine how closely they match the animation pose.
The mask value determines which effector sets will be modified. Specifying 'fb' or no mask value will cause the effect to be applied to the whole character.
Otherwise, specify 'l' or 'u' for the first character to mask off to just lower or upper body parts. Then, you can specify the following for the second character:
When the first character is 'u', the second parameter can be:
* 'c' = just clavicles
* 'l' = left arm only
* 'r' = right arm only
* 'a' = both arms and clavicles
* 's' = just spine
* 't' = torso only, eg. spine & arms and Clavicles
* 'k' = trunk only, eg. spine & head
* 'n' = neck and head
* 'b' = everything
* 'w' = wrists
when the first character is 'l', the second parameter can be:
* 'l' = just left leg
* 'r' = just right leg
* 'b' = both legs
note that the characters should be lower-case.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| mask |
string |
fb |
|
|
Two character body-masking value (see notes for explanation) |
Apply an impulse to a named body part
optional equalizeAmount between 0 and 1.
0 means straight impulse (lighter objects will move further)
1 means multiplied by mass relative to the average (all mass objects will move equally)
optional hitPoint in world space
| Parameter |
Type |
Default |
Range |
Units |
Description |
| equalizeAmount |
float |
0.00 |
0 ... 1 |
|
0 means straight impulse, 1 means multiply by the mass (change in velocity) |
| partIndex |
int |
0 |
0 ... 21 |
|
index of part being hit. |
| impulse |
vector3 |
0.00, 0.00, 0.00 |
|
|
impulse vector (impulse is change in momentum) |
| hitPoint |
vector3 |
0.00, 0.00, 0.00 |
|
World-Space Position |
optional point on part where hit |
Set the amount of relaxation across the whole body; Used to collapse the character into a rag-doll-like state.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| relaxation |
float |
50.00 |
0 ... 100 |
|
How relaxed the body becomes, in percentage relaxed. 100 being totally rag-dolled, 0 being very stiff and rigid. |
| mask |
string |
fb |
|
|
Two character body-masking value (see Active Pose notes for possible values) |
| holdPose |
boolean |
false |
|
|
automatically hold the current pose as the character relaxes - can be used to avoid relaxing into a t-pose |
This single message allows you to configure various parameters used on any behaviour that uses the dynamic balance.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| stepHeight |
float |
0.10 |
0 ... 0.3 |
Meters |
maximum height that character steps vertically |
| taperKneeStrength |
boolean |
true |
|
|
does the knee strength reduce with angle |
| legStiffness |
float |
12.00 |
6 ... 16 |
|
stiffness of legs |
| balanceAbortThreshold |
float |
0.60 |
0 ... 1 |
|
when the character gives up and goes into a fall |
| stepClampScale |
float |
1.00 |
0 ... 1 |
|
|
reset the values configurable by the Configure Balance message to their defaults.
Call every frame to update the position of an attached object (eg gun) on the character. This allows the balancer to balance properly with the extra weight.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| partIndex |
int |
-1 |
-1 ... 21 |
|
index of part to attach to |
| objectMass |
float |
0.00 |
0 ... |
Kg |
mass of the attached object |
| worldPos |
vector3 |
0.00, 0.00, 0.00 |
|
World-Space Position |
world position of attached object's centre of mass. must be updated each frame. |
Apply an impulse to a named body part
| Parameter |
Type |
Default |
Range |
Units |
Description |
| PartName |
string |
Spine3 |
|
|
part name |
| force |
vector3 |
0.00, -50.00, 0.00 |
|
|
force to apply |
Use this message to manually set the body stiffness values - before using Active Pose to drive to an animated pose, for example.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| bodyStiffness |
float |
12.00 |
6 ... 16 |
|
stiffness of whole character |
| damping |
float |
1.00 |
0 ... 3 |
|
damping amount, less is underdamped |
| mask |
string |
fb |
|
|
Two character body-masking value (see Active Pose notes for possible values) |
This message should be called during the body shot, at the point where he is dying and should fall to the floor. The character will relax over a short time period, and fall to the floor.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| relaxPeriod |
float |
2.00 |
0 ... 10 |
Seconds |
time over which to relax to full relaxation |
Send this message to immediately stop all behaviours from executing.
The Ranged Behaviours
These behaviour messages run some of the same behaviours as described above, except that they have a boolean 'start' argument to stop and start control as well as mix the different behaviours.
Wave the arms around in a windmilling motion; this behaviour rotates the arms based on which way the character is rotating.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| period |
float |
1.00 |
|
|
Controls the speed of the windmilling - set to a smaller value for a more rapid whirling motion |
| bodyStiffness |
float |
11.00 |
|
|
Controls how stiff the rest of the body is |
| amplitude |
float |
0.60 |
|
|
Controls how large the motion is, higher values means the character waves his arms in a massive arc |
| phase |
float |
0.00 |
|
|
Set to a non-zero value to desynchronise the left and right arms motion. |
| armStiffness |
float |
14.14 |
|
|
How stiff the arms are controls how pronounced the windmilling motion appears; smaller values means weaker movement |
| disableOnImpact |
boolean |
true |
|
|
If true, each arm will stop windmilling if it hits the ground |
This provides a generic balancing behaviour; the lower body takes care of stepping and stabilizing the character, while the upper body provides a standard swinging-arms motion. This behaviour is zero-pose aware and will revert back to the pose (if set) when stable / unmoving.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| bodyStiffness |
float |
9.00 |
6 ... 16 |
|
stiffness of upper body. catch_fall's stiffness scales with this value, but has default values when this is default |
| damping |
float |
0.70 |
0 ... 2 |
|
Sets damping value for the character joints |
| shoulder |
float |
1.00 |
0.5 ... 2.5 |
|
How much the shoulder(lean1) swings based on the leg movement |
| elbow |
float |
1.75 |
0.5 ... 2.5 |
|
How much the elbow swings based on the leg movement |
| maxSteps |
int |
100 |
1 ... |
|
maximum number of steps balancer can take |
| useHeadLook |
boolean |
false |
|
|
enable and provide a look-at target to make the character's head turn to face it while balancing |
| headLookInstanceIndex |
int |
-1 |
-1 ... |
|
level index of thing to look at |
| headLookPos |
vector3 |
0.00, 0.00, 0.00 |
|
|
position of thing to look at; world-space if instance index = -1, otherwise local-space to that object |
| headLookAlwaysTimeout |
float |
2.00 |
-1 ... |
Seconds |
number of seconds before turning off the 'always look' feature of Head Look - set to -1 to disable 'always look' |
| somersaultAngle |
float |
1.00 |
|
|
multiplier for somersaultAngle (result added to armsOut). Somersault contribution to arms out = m_somersaultAngle*(Characters Somersault angle past m_somersaultAngleThreshold) |
| somersaultAngleThreshold |
float |
0.25 |
|
|
Amount of somersault 'angle' before somersault is used for ArmsOut |
| sideSomersaultAngle |
float |
1.00 |
|
|
multiplier for sideSomersaultAngle (result added to armsOut) |
| sideSomersaultAngleThreshold |
float |
0.25 |
|
|
Amount of side somersault 'angle' before sideSomersault is used for ArmsOut |
| returningToBalanceArmsOut |
float |
0.00 |
|
|
range 0:1 0 = don't raise arms if returning to upright position, 0.x = 0.x*raise arms based on angvel and 'angle' settings, 1 = raise arms based on angvel and 'angle' settings |
| armsOutOnPush |
boolean |
false |
|
|
Put arms out based on lean2 of legs, or angular velocity (lean or twist), or lean (front/back or side/side) |
| armsOutStraightenElbows |
float |
0.00 |
|
|
multiplier for straightening the elbows based on the amount of arms out(lean2). 0 = dont straighten elbows. Otherwise straighten elbows proprtionately to armsOut |
| armsOutMinLean2 |
float |
-10.00 |
|
|
Minimum desiredLean2 applied to shoulder (to stop arms going above shoulder height or not) |
| bodyTurnTimeout |
float |
0.00 |
|
|
number of seconds before turning off the turnDirection feature of Dynamic Balance (turns to what the head is looking at) - set to 0 to disable |
| angVelMultiplier |
vector3 |
4.00, 1.00, 4.00 |
|
|
multipliers for AngVel (result added to armsOut). X=somersault, Y=Twist, Z=SideSomersault |
| angVelThreshold |
vector3 |
1.20, 3.00, 1.20 |
|
|
Amount of angvel before AngVel is used for ArmsOut. X=somersault, Y=Twist, Z=SideSomersault |
| armsOutOnPushMultiplier |
float |
0.00 |
|
|
Arms out based on lean2 of the legs to simulate being pushed |
| armsOutOnPushTimeout |
float |
1.00 |
|
|
number of seconds before turning off the armsOutOnPush response only for Arms out based on lean2 of the legs (NOT for the angle or angular velocity) |
| useBodyTurn |
boolean |
false |
|
|
enable and provide a positive bodyTurnTimeout and provide a look-at target to make the character turn to face it while balancing |
| elbowAngleOnContact |
float |
1.90 |
|
|
on contact with upperbody the desired elbow angle is set to at least this value |
| bendElbowsTime |
float |
0.50 |
|
|
Time after contact (with Upper body) that the min m_elbowAngleOnContact is applied |
| bendElbowsGait |
float |
0.70 |
|
|
Minimum desired angle of elbow during non contact arm swing |
| headLookAtVelProb |
float |
-1.00 |
|
|
Probability [0-1] that headLook will be looking in the direction of velocity when stepping. 0 always looks at target, 1 always looks at velocity. Set to -1 for this probability to be randomized on activate. |
| turnOffProb |
float |
0.10 |
|
|
Weighted Probability that turn will be off. This is one of six turn type weights. |
| turn2VelProb |
float |
0.30 |
|
|
Weighted Probability of turning towards velocity. This is one of six turn type weights. |
| turnAwayProb |
float |
0.15 |
|
|
Weighted Probability of turning away from headLook target. This is one of six turn type weights. |
| turnLeftProb |
float |
0.13 |
|
|
Weighted Probability of turning left. This is one of six turn type weights. |
| turnRightProb |
float |
0.13 |
|
|
Weighted Probability of turning right. This is one of six turn type weights. |
| turn2TargetProb |
float |
0.20 |
|
|
Weighted Probability of turning towards headLook target. This is one of six turn type weights. |
| Feedback Type |
Behaviours Used |
Description |
| Success |
balance |
character stabilises |
| Failure |
balance |
character falls over |
| Start |
sub behaviour |
Catch_Fall_2 |
| Start |
sub behaviour |
dynamicBalance |
Curls into foetal position, at a speed defined by the strength and damping values; This behaviour is full-body and resets the character when it starts.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| stiffness |
float |
9.00 |
6 ... 16 |
|
The stiffness of the body determines how fast the character moves into the position, and how well that they hold it. |
| dampingFactor |
float |
1.40 |
0 ... 2 |
|
Sets damping value for the character joints |
| asymmetry |
float |
0.00 |
0 ... 1 |
|
A value between 0-1 that controls how asymmetric the results are by varying stiffness across the body |
| randomSeed |
int |
100 |
|
|
Random seed used to generate asymmetry values |
| backTwist |
float |
0.00 |
0 ... 1 |
|
Amount of random back twist to add |
| mask |
string |
fb |
|
|
Two character body-masking value (see Active Pose notes for possible values) |
Rolling motion. Apply when the character is to be tumbling, either down a hill, after being blown by an explosion, or hit by a car.
The character is in a rough foetal position, he puts his arms out to brace against collisions with the ground, and he will relax after he stops tumbling.
sends success feedback: "Roll Up: stopped rolling" when rolling has stopped
| Parameter |
Type |
Default |
Range |
Units |
Description |
| stiffness |
float |
10.00 |
|
|
stiffness of whole body |
| useArmToSlowDown |
float |
1.30 |
|
|
the degree to which the character will try to stop a barrel roll with his arms |
| armReachAmount |
float |
1.40 |
|
|
the likeliness of the character reaching for the ground with its arms |
| mask |
string |
fb |
|
|
Two character body-masking value (see Active Pose notes for possible values) |
| legPush |
float |
0.00 |
|
|
used to keep rolling down slope, 1 is full (kicks legs out when pointing upwards) |
| asymmetricalLegs |
float |
0.00 |
|
|
0 is no leg asymmetry in 'foeta'l position. >0 a asymmetricalLegs-rand(30%), added/minus each joint of the legs in radians. Random number changes about once every roll. 0.4 gives a lot of asymmetry |
| Feedback Type |
Behaviours Used |
Description |
| Success |
Roll Up |
finished rolling and has stabilised |
simple writhe behaviour, works under any initial state
| Parameter |
Type |
Default |
Range |
Units |
Description |
| armStiffness |
float |
13.00 |
|
|
|
| backStiffness |
float |
13.00 |
|
|
|
| legStiffness |
float |
13.00 |
|
|
The stiffness of the character will determine how 'determined' a writhe this is - high values will make him thrash about wildly |
| armDamping |
float |
0.50 |
|
|
damping amount, less is underdamped |
| backDamping |
float |
0.50 |
|
|
damping amount, less is underdamped |
| legDamping |
float |
0.50 |
|
|
damping amount, less is underdamped |
| armPeriod |
float |
1.00 |
|
|
Controls how fast the writhe is executed, smaller values make faster motions |
| backPeriod |
float |
1.00 |
|
|
Controls how fast the writhe is executed, smaller values make faster motions |
| legPeriod |
float |
1.00 |
|
|
Controls how fast the writhe is executed, smaller values make faster motions |
| mask |
string |
fb |
|
|
Two character body-masking value (see Active Pose notes for possible values) |
| armAmplitude |
float |
1.00 |
|
|
|
| backAmplitude |
float |
1.00 |
|
|
scales the amount of writhe. 0 = no writhe |
| legAmplitude |
float |
1.00 |
|
|
scales the amount of writhe. 0 = no writhe |
| elbowAmplitude |
float |
1.00 |
|
|
|
| kneeAmplitude |
float |
1.00 |
|
|
|
| rollOverFlag |
boolean |
false |
|
|
Flag to set trying to rollOver |
bracing for an impact, specifically from a slow moving car.
The character is expected to be upright and in a roughly balanced position. He will turn to face the object that he is to brace against. He will take corrective steps if he unbalances and will also catch his fall if he falls over.
The character will crouch slightly and lean into the impact, and if the impact object starts to move away, the character will righten itself and its upper body will assume the zero pose.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| braceDistance |
float |
0.70 |
0 ... 2 |
Meters |
distance from object at which to raise hands to brace |
| targetPredictionTime |
float |
0.40 |
0 ... 1 |
Seconds |
time epected to get arms up from idle |
| reachAbsorbtionTime |
float |
0.15 |
0 ... 1 |
Seconds |
larger values and he absorbs the impact more |
| instanceIndex |
int |
-1 |
-1 ... |
|
levelIndex of object to brace |
| bodyStiffness |
float |
12.00 |
6 ... 16 |
|
stiffness of character. catch_fall stiffness scales with this too, with its defaults at this values default |
| pos |
vector3 |
0.00, 0.00, 0.00 |
|
World-Space Position |
location of the front part of the object to brace against. This should be the centre of where his hands should meet the object |
| look |
vector3 |
0.00, 0.00, 0.00 |
|
World-Space Position |
position to look at, eg the driver |
| grabDontLetGo |
boolean |
false |
|
|
|
| grabStrength |
float |
40.00 |
|
|
|
| grabDistance |
float |
1.30 |
|
|
|
| grabReachAngle |
float |
1.50 |
|
|
|
| grabHoldTimer |
float |
1.50 |
|
|
|
| legStiffness |
float |
12.00 |
|
|
|
| timeToBackwardsBrace |
float |
2.00 |
0 ... 10 |
|
time before arm brace kicks in when hit from behind |
| Feedback Type |
Behaviours Used |
Description |
| Start |
sub behaviour |
Catch_Fall_2 |
| Start |
sub behaviour |
dynamicBalance |
the character catches his fall when falling over.
He will twist his spine and look at where he is falling. He will also relax after hitting the ground.
He always braces against a horizontal ground.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| torsoStiffness |
float |
9.00 |
6 ... 16 |
|
stiffness of torso |
| legsStiffness |
float |
6.00 |
6 ... 16 |
|
stiffness of legs |
| armsStiffness |
float |
15.00 |
6 ... 16 |
|
stiffness of arms |
| backwardsMinArmOffset |
float |
-0.25 |
-0.5 ... 0 |
|
0 will prop arms up near his shoulders. -0.3 will place hands nearer his behind |
| forwardMaxArmOffset |
float |
0.45 |
0 ... 0.5 |
|
0 will point arms down with angled body, 0.45 will point arms forward a bit to catch nearer the head |
| zAxisSpinReduction |
float |
0.00 |
|
|
Tries to reduce the spin around the Z axis. Scale 0 - 1. |
| Feedback Type |
Behaviours Used |
Description |
| Success |
Catch Fall 2 |
when he has caught his fall |
| Finish |
Catch Fall 2 |
when he has finished relaxing after catching his fall |
stunt-man style behaviour used to encourage the character to flip himself over waist-high-or-lower wall obstacles. this uses a pair of cheat forces, one to get the character lifted over the wall, another to provide twist to the spine as he does so to make the flip look less artificial.
the behaviour waits for collision with the spine or lower arms/hands to determine which point to flip over, or a custom point can be specified in the message instead.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| bodyStiffness |
float |
9.00 |
6 ... 16 |
|
stiffness of the body, roll up stiffness scales with this and defaults at this default value |
| damping |
float |
0.50 |
0 ... 3 |
|
Damping in the effectors |
| magOfForce |
float |
0.60 |
0 ... 2 |
|
Magnitude of the falloverWall helper force |
| maxDistanceFromPelToHitPoint |
float |
0.25 |
|
|
The maximum distance away from the pelvious that hit points will be registered. |
| useSpecifiedPoint |
boolean |
false |
|
|
|
| fallOverPoint |
vector3 |
0.00, 0.00, 0.00 |
|
|
|
| fallOverEdge |
vector3 |
0.00, 0.00, 0.00 |
|
|
The direction of the edge of the wall at the fallOverPoint |
| bodyTwist |
float |
0.50 |
|
|
amount of twist to apply to the spine as the character tries to fling himself over the wall, provides more of a believable roll but increases the amount of lateral space the character needs to successfully flip. Value between 0 and 1, 1 being 'lots of twist'. the direction and precise amount is varied each time. |
| Feedback Type |
Behaviours Used |
Description |
| Start |
sub behaviour |
Body_Roll_Up |
NOTE: An upper body behaviour.
An upper body behaviour that Grabs or Braces against a point, the nearest point on a line or the nearest point on a surface. Turns head, twists body and pelvis. Set useleft and useright to use the desired hands. Grab will create a constrant between the hand and a object. Brace will not create any constraint.
This behaviour can be played over other behaviours. However it includes logic about if and when to grab, so will not grab things behind the character or things that are out of reach.
There are 3 ways to specify the grab points.
Points: right grab/brace point (pos1) and/or left grab/brace point(pos2).
Line: grabs/braces with the left and/or right hand to the nearest point on the line between (pos1) and (pos2).
Quad Surface: grabs/braces to the surface specified by (pos1), (pos2), (pos3) and (pos4). These points must be specified in a anitclockwise order.
The normals ( right/left are normal(normalR)/normal(normalL) respectively) can be specified for all of the grab point input methods. If no normal is specified the behaviour will attempt to find the appropriate normal.
The grab points are specified in the coord frame of the instance specified by instanceIndex. ( -1 = world space).
PullUp: setting a pull up strength , pullUpStrength, result in the arms trying to pull relative to this strength over a time pullUpTime. 0 = no attempt to pull up. 1 = attemp to pull up the maximum amount.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| linegrab |
boolean |
false |
|
|
use the line grab, Grab along the line (x-x2) |
| justbrace |
boolean |
false |
|
|
Flag to toggle between grabbing and bracing |
| surfaceGrab |
boolean |
false |
|
|
Toggle surface grab on. Requires pos1,pos2,pos3 and pos4 to be specified. |
| useLeft |
boolean |
true |
|
|
Flag to toggle use of left hand |
| useRight |
boolean |
true |
|
|
Flag to toggle the use of the Right hand |
| instanceIndex |
int |
-1 |
-1 ... |
|
levelIndex of instance to grab |
| dontLetGo |
boolean |
false |
|
|
Once a constraint is made, dont let go untill the behaviour ends. |
| grabStrength |
float |
-1.00 |
-1 ... |
|
strength in hands for grabbing (kg m/s), -1 to ignore/disable |
| bodyStiffness |
float |
11.00 |
6 ... 16 |
|
stiffness of upper body. Scales the arm grab such that the armStiffness is default when this is at default value |
| pos1 |
vector3 |
0.00, 0.00, 0.00 |
|
|
Grab pos1, right hand if not using line or surface grab. |
| pos2 |
vector3 |
0.00, 0.00, 0.00 |
|
|
Grab pos2, left hand if not using line or surface grab. |
| pos3 |
vector3 |
0.00, 0.00, 0.00 |
|
|
|
| pos4 |
vector3 |
0.00, 0.00, 0.00 |
|
|
|
| normalR |
vector3 |
0.00, 0.00, 0.00 |
|
Normal |
Normal for the right grab point. |
| normalL |
vector3 |
0.00, 0.00, 0.00 |
|
Normal |
Normal for the left grab point. |
| reachAngle |
float |
2.80 |
|
|
Angle from front at which the grab activates. If the poit is outside this angle from front will not try to grab. |
| oneSideReachAngle |
float |
1.40 |
|
|
Angle at which we will only reach with one hand. |
| grabDist |
float |
0.45 |
|
Meters |
Relative distance at which the grab starts. |
| pullUpTime |
float |
1.00 |
|
|
Time to reach the full pullup strength |
| armStiffness |
float |
14.00 |
|
|
|
| grabHoldMaxTimer |
float |
100.00 |
0 ... |
Seconds |
amount of time, in seconds, before grab automatically bails |
| reachDistance |
float |
0.70 |
|
|
|
| instancePartIndex |
int |
0 |
|
|
|
| pullUpStrengthLeft |
float |
0.00 |
|
|
|
| pullUpStrengthRight |
float |
0.00 |
|
|
|
| Feedback Type |
Behaviours Used |
Description |
| Success |
Grab |
When a constraint is made. (RightArmGrab or LeftArmGrab) |
Updates various parameters on the grab - see grab notes for details.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| useLeft |
boolean |
true |
|
|
Flag to toggle use of left hand |
| useRight |
boolean |
true |
|
|
Flag to toggle the use of the Right hand |
| grabStrength |
float |
-1.00 |
-1 ... |
|
strength in hands for grabbing (kg m/s), -1 to ignore/disable |
| grabHoldMaxTimer |
float |
100.00 |
0 ... |
Seconds |
amount of time, in seconds, before grab automatically bails |
| pullUpTime |
float |
1.00 |
|
|
|
| pullUpStrengthRight |
float |
0.00 |
|
|
|
| pullUpStrengthLeft |
float |
0.00 |
|
|
|
| Feedback Type |
Behaviours Used |
Description |
| Start |
ArmGrab |
sub behaviour |
Acts on the neck to make the head look at the position defined by pos[X,Y,Z].
Optionally the velocity of the point can be compensated for by setting vel[X,Y,Z].
If alwayslook is true the character will try to look at the point even if it is out side the field of view.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| damping |
float |
1.00 |
|
|
Damping of the muscles |
| stiffness |
float |
10.00 |
6 ... 16 |
|
Stiffness of the muscles |
| instanceIndex |
int |
-1 |
|
|
levelIndex of object to be looked at. vel parameters are ignored if this is non -1 |
| vel |
vector3 |
0.00, 0.00, 0.00 |
|
|
The velocity of the point being looked at |
| pos |
vector3 |
0.00, 0.00, 0.00 |
|
|
The point being looked at |
| alwaysLook |
boolean |
false |
|
|
Flag to force always to look |
| alwaysEyesHorizontal |
boolean |
true |
|
|
Keep the eyes horizontal. Use true for impact with cars. Use false if you want better look at target accuracy when the character is on the floor or leaned over (when not leaned over the eyes are kept horizontal) alot. |
Controls the character during a jump/fall. During the jump/fall tries to maintain an upright stance, windmills arms, pedal legs and looks down. As approaches the ground tries to transition to either a zero pose or land the jump resulting in transition to the body balance.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| bodyStiffness |
float |
11.00 |
6 ... 16 |
|
stiffness of body. Value feeds through to bodyBalance (synched with defaults), to armsWindmill (14 for this value at default ), legs pedal, head look and roll down stairs directly |
| bodydamping |
float |
1.00 |
0 ... 3 |
|
The damping of the joints. |
| catchfalltime |
float |
0.20 |
0 ... 1 |
|
The length of time before the impact that the character transisitions to the landing. |
| crashOrLandCutOff |
float |
0.52 |
0 ... 1 |
|
A threshold for deciding how close to upright the characters needs to be for the success message to be sent. |
| pdStrength |
float |
0.30 |
0 ... 1 |
|
Strenght of the controller to keep the character is the uprigth position. |
| useZeroPose |
boolean |
false |
|
|
Blend to the zero pose as approaching the impact. |
| landCutOffVelocity |
float |
50.00 |
0 ... 100 |
|
Maximum velocity at which a landing attemp wll be done. |
| armPeriod |
float |
1.00 |
0 ... 2 |
Seconds |
arm period in armWindMill |
| armAmplitude |
float |
2.00 |
0 ... 10 |
|
in armsWindMill |
| legRadius |
float |
0.25 |
0 ... 0.5 |
Meters |
radius of legs on pedal |
| legAngSpeed |
float |
5.00 |
0 ... 15 |
|
in pedal |
| armsUp |
float |
1.00 |
-3 ... 3 |
|
Where to put the arms when preparing to land. Approx 1 = above head, 0 = head hieght, -1 = down. |
| orientateBodyToFallDirection |
boolean |
true |
|
|
toggle to orientate to fall direction |
| fowardRoll |
boolean |
false |
|
|
Try to execute a foward Roll on landing |
| useZeroPose_withFowardRoll |
boolean |
false |
|
|
Blend to a zero pose when foward roll is attempted. |
| aimAngleBase |
float |
0.18 |
|
|
Angle from vertical the pdController is driving to ( positive = fowards) |
| fowardVelRotation |
float |
-0.05 |
|
|
scale to add/subtract from aimAngle based on foward speed (Internal) |
| footVelCompScale |
float |
0.05 |
|
|
Scale to change to amount of vel that is added to the foot ik from the velocity (Internal) |
| sideD |
float |
0.15 |
|
|
sideoffset for the foot ik (Internal) |
| fowardOffsetOfLegIK |
float |
0.20 |
|
|
Foward distance to add to foot ik (Internal) |
| fowardVelCutOff |
float |
5.00 |
-1 ... |
|
Cutoff for going into Forward Roll (Internal) |
| legL |
float |
0.80 |
|
|
Leg Length for ik (Internal) |
| catchFallCutOff |
float |
0.40 |
|
|
Cutoff to go to the catchFall ( internal) |
| legStrength |
float |
12.00 |
|
|
Strength of the legs at landing |
| ignorWorldCollisions |
boolean |
false |
|
|
|
| Feedback Type |
Behaviours Used |
Description |
| Success |
HighFall |
if sucessfully landed and stabilised on his feet |
| Failure |
HighFall |
character falls over onto ground |
| Start |
sub behaviour |
bodyBalance |
| Start |
sub behaviour |
Body_Roll_Up |
| Start |
sub behaviour |
dynamicBalance |
Enable incoming transforms when 'start' is true, disable them if it is false; This will completely drive the character to the incoming animations. To do driven-physics animation, use Active_Pose.
Use in addition to any balance behaviour. Will lean and head in the specified direction with a strength given by the leanAmount.
Note he won't only go in the direction the direction vector will be in addition to any velocity he has (eg shot backwards).
| Parameter |
Type |
Default |
Range |
Units |
Description |
| leanAmount |
float |
0.20 |
-0.5 ... 0.5 |
|
amount of lean, 0 to about 0.5. -ve will move away from the target. |
| dir |
vector3 |
0.00, 0.00, 0.00 |
|
Normal |
direction to lean in |
| applyAsForce |
boolean |
false |
|
|
apply as lean on character, or apply as an actual force to his pelvis |
To use on any balance behaviour (eg body_balance / shot).
The character will lean and head horizontally towards a position in space with a strength specified by the leanAmount.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| leanAmount |
float |
0.20 |
-0.5 ... 0.5 |
|
amount of lean, 0 to about 0.5. -ve will move away from the target. |
| pos |
vector3 |
0.00, 0.00, 0.00 |
|
World-Space Position |
position to head towards |
| applyAsForce |
boolean |
false |
|
|
apply as lean on character, or apply as an actual force to his pelvis |
To use on any balance behaviour (eg body_balance / shot).
The character will lean and head horizontally towards an object defined by the level index in 'instanceIndex', the position of which is offseted.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| leanAmount |
float |
0.20 |
-0.5 ... 0.5 |
|
amount of lean, 0 to about 0.5. -ve will move away from the target. |
| offset |
vector3 |
0.00, 0.00, 0.00 |
|
Local-Space Position |
offset from instance position added when calculating position to lean to |
| instanceIndex |
int |
-1 |
|
|
levelIndex of object to brace |
| applyAsForce |
boolean |
false |
|
|
apply as lean on character, or apply as an actual force to his pelvis |
Legs pedalling or bicycle pedalling type motion
| Parameter |
Type |
Default |
Range |
Units |
Description |
| pedalLeftLeg |
boolean |
true |
|
|
pedal with this leg or not |
| pedalRightLeg |
boolean |
true |
|
|
pedal with this leg or not |
| backPedal |
boolean |
false |
|
|
pedal forwards or backwards |
| radius |
float |
0.25 |
0 ... 1 |
Meters |
base radius of pedal action |
| angularSpeed |
float |
10.00 |
0 ... 20 |
|
rate of pedaling |
| legStiffness |
float |
10.00 |
6 ... 16 |
|
stiffness of legs |
| pedalOffset |
float |
0.15 |
-1 ... 1 |
|
affects straightness of legs |
| randomSeed |
int |
100 |
|
|
Random seed used to generate speed changes |
| speedAsymmetry |
float |
0.00 |
-1 ... 1 |
|
Random offset applied per leg to the angular speed to desynchronise the pedaling - set to 0 to disable, otherwise should be set to less than the angularSpeed value. |
| adaptivePedal4Dragging |
boolean |
false |
|
|
Will pedal in the direction of travel (if backPedal = false, against travel if backPedal = true) and with an angular velocity relative to speed upto a maximum of 13(rads/sec). Use when being dragged by a car. Overrides angularSpeed. |
| angSpeedMultiplier4Dragging |
float |
0.30 |
0 ... |
|
angularSpeed =angSpeedMultiplier4Dragging * linear_speed/pedalRadius |
| radiusVariance |
float |
0.40 |
|
|
0-1 value used to add variance to the radius value while pedalling, to desynchonize the legs' movement and provide some variety |
| legAngleVariance |
float |
0.50 |
|
|
0-1 value used to vary the angle of the legs from the hips during the pedal; used to provide some extra variety to the motion |
| Parameter |
Type |
Default |
Range |
Units |
Description |
| target |
vector3 |
0.00, 0.00, 0.00 |
|
Meters |
point to point to (in world space) |
| twist |
float |
0.30 |
-2 ... 2 |
|
twist of the arm around point direction |
| armStraightness |
float |
0.80 |
0 ... 1 |
|
values < 1 can give the arm a more bent look |
| useLeftArm |
boolean |
false |
|
|
uses right arm unless this is true |
| armStiffness |
float |
15.00 |
6 ... 16 |
|
stiffness of arm |
| armDamping |
float |
1.00 |
|
|
damping value for arm used to point |
| instanceIndex |
int |
-1 |
|
|
level index of thing to point at, or -1 for none. if -1, target is specified in world space, otherwise it is an offset from the object specified by this index. |
Curls into foetal position, at a speed defined by the strength and damping values; This behaviour is full-body and resets the character when it starts.
forcemag sets the strength of the helper force, use a range of [0,1]. 0 is no helper force.
Only applies the helper forces when a body part is touching the ground, Unless spinWhileInAir is set to true.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| stiffness |
float |
11.00 |
6 ... 16 |
|
Effector Stiffness. value feeds through to rollUp directly |
| damping |
float |
1.40 |
0 ... 3 |
|
Effector Damping. |
| forcemag |
float |
0.55 |
0 ... 1 |
|
Helper force strength. |
| asymmetry |
float |
0.00 |
0 ... 1 |
|
Add some assymetry into the helper forces. |
| m_useArmToSlowDown |
float |
-1.90 |
-2 ... 2 |
|
the degree to which the character will try to stop a barrel roll with his arms |
| useZeroPose |
boolean |
false |
|
|
Blends between a zeroPose and the Rollup, Faster the character is rotating the less the zeroPose |
| spinWhenInAir |
boolean |
false |
|
|
Applied cheat forces to spin the character when in the air, the forces are 40% of the forces applied when touching the ground. Be careful little bunny rabbits, the character could spin unnaturally in the air. |
| m_armReachAmount |
float |
1.40 |
0 ... 3 |
|
how much the character reaches with his arms to brace against the ground |
| m_legPush |
float |
1.00 |
0 ... 1 |
|
amount that the legs push outwards when tumbling |
| tryToAvoidHeadButtingGround |
boolean |
false |
|
|
If going to face plant, spin faster. Uses a rayProbe to find the ground. |
| armReachLength |
float |
0.40 |
0 ... 1 |
Meters |
the length that the arm reaches and so how much it straightens |
| customRollDir |
vector3 |
0.00, 1.00, 0.00 |
|
|
pass in a custom direction in to have the character try and roll in that direction |
| useCustomRollDir |
boolean |
false |
|
|
pass in true to use the customRollDir parameter |
| stiffnessDecayTarget |
float |
9.00 |
6 ... 16 |
|
|
| stiffnessDecayTime |
float |
-1.00 |
|
|
time, in seconds, to decay stiffness down to the stiffnessDecayTarget value (or -1 to disable) |
| asymmetricalLegs |
float |
0.00 |
|
|
0 is no leg asymmetry in 'foeta'l position. >0 a asymmetricalLegs-rand(30%), added/minus each joint of the legs in radians. Random number changes about once every roll. 0.4 gives a lot of asymmetry |
| zAxisSpinReduction |
float |
0.00 |
|
|
Tries to reduce the spin around the z axis. Scale 0 - 1 |
| Feedback Type |
Behaviours Used |
Description |
| Start |
sub behaviour |
Roll Up |
Behaviour when shot by a gun. General affect is to reach for the body part and stagger... weakening only when given a shot_relax message.
You can be shot after hitting the ground and the character will react.
Arms that are not holding or injured will flail to maintain balance.
The character weakens briefly on each shot so as to emphasise the effect of each shot.
Head will look at wound or headLookPos alternatively for a random amount of time between headLookAtHeadPosMinTimer and headLookAtHeadPosMaxTimer. Initially will look at wound for headLookWoundMaxTimer amount fo time.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| bodyPart |
int |
0 |
0 ... 21 |
|
part ID on the body where the bullet hit |
| useHeadLook |
boolean |
false |
|
|
Look at the specified position flag |
| grabHoldTime |
float |
2.00 |
0 ... 10 |
Seconds |
how long to hold for before returning to relaxed arm position |
| crouching |
boolean |
false |
|
|
is the guy crouching or not? |
| chickenArms |
boolean |
false |
|
|
type of reaction, does he do chicken arms effect |
| reachForWound |
boolean |
true |
|
|
type of reaction |
| fling |
boolean |
false |
|
|
Type of reaction |
| maxSteps |
int |
100 |
0 ... |
|
total number of corrective steps |
| loosenessAmount |
float |
1.00 |
0 ... 1 |
|
how loose the character is on impact. between 0 and 1 |
| stableHandsAndNeck |
boolean |
false |
|
|
additional stability for hands and neck (less loose) |
| flingWidth |
float |
0.50 |
0 ... 1 |
Meters |
Width of the fling behaviour. |
| bodyStiffness |
float |
11.00 |
6 ... 16 |
|
stiffness of body. Feeds through to roll_up |
| normal |
vector3 |
0.00, 0.00, -1.00 |
|
Normal |
Normal coming out of impact point on character |
| headLook |
vector3 |
0.00, 0.00, 0.00 |
|
World-Space Position |
position to look at with headlook flag |
| hitPoint |
vector3 |
0.00, 0.00, 0.00 |
|
World-Space Position |
position of impact on character |
| bulletVel |
vector3 |
0.00, 0.00, 0.00 |
|
|
|
| melee |
boolean |
false |
|
|
|
| timeBeforeReachForWound |
float |
0.10 |
0 ... |
Seconds |
time, in seconds, before the character begins to grab for the wound on the first hit |
| timeBeforeCollapseWoundLeg |
float |
0.50 |
0 ... 2 |
Seconds |
time before a wounded leg is set to be weak and cause the character to collapse |
| spinePainTime |
float |
2.00 |
0 ... |
Seconds |
Time spent crunching body (along spine) in pain on new hit |
| spinePainMultiplier |
float |
0.75 |
0 ... 2 |
|
multiplier used to bend the spine in pain on a new hit |
| spinePainTwistMultiplier |
float |
0.50 |
0 ... 2 |
|
multiplier for the spine pain twist-away effect |
| useCatchFallOnFall |
boolean |
false |
|
|
use the catch fall instead of RollUp when the balance fails during Shot (eg. the character isn't dead yet!) |
| headLookAtWoundMinTimer |
float |
0.25 |
|
|
|
| headLookAtWoundMaxTimer |
float |
0.80 |
|
|
|
| headLookAtHeadPosMaxTimer |
float |
1.70 |
|
|
|
| headLookAtHeadPosMinTimer |
float |
0.60 |
|
|
|
| addShockSpin |
boolean |
false |
|
|
if enabled, add a short 'shock' of torque to the character's spine to exaggerate bullet impact |
| randomizeShockSpinDirection |
boolean |
false |
|
|
for use with close-range shotgun blasts, or similar; choose a random direction to apply shock-spin, rather than derive direction from bullet velocity/impact |
| alwaysAddShockSpin |
boolean |
false |
|
|
if true, apply the shock spin no matter which body component was hit. otherwise only apply if the spine or clavicles get hit |
| shockSpinMin |
float |
50.00 |
|
|
minimum amount of torque to add if using shock-spin feature |
| shockSpinMax |
float |
90.00 |
|
|
maxiumum amount of torque to add if using shock-spin feature |
| shockSpinLiftForceMult |
float |
0.00 |
|
|
if > 0, apply a force to lift the character up while the torque is applied, trying to produce a dramatic spun/twist shotgun-to-the-chest effect. this is a scale of the torque applied, so 8.0 or so would give a reasonable amount of lift |
| shockSpinDecayMult |
float |
4.00 |
|
|
multiplier used when decaying torque spin over time; 4.0 = decay in ~1/4th of a second. 1.0 = decay over ~1 second. |
| shockSpinScalePerComponent |
float |
0.50 |
|
|
torque applied is scaled by this amount across the spine components - spine2 recieving the full amount, then 3 and 1 and finally 0. each time, this value is used to scale it down. 0.5 means half the torque each time. |
| Feedback Type |
Behaviours Used |
Description |
| Success |
Shot |
when fully relaxed after the shot_relax message is called |
| Success |
Shot |
when stabilised |
| Start |
sub behaviour |
dynamicBalance |
This soft constraint keeps the character on his feet.
Use in addition to balance, for better stability.
on by default on body_balance and lower_body_balance. Needs to be added to other balance behaviours such as shot and brace for impact if necessary.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| stiffness |
float |
3.00 |
6 ... 16 |
|
strength of constraint |
| dampingScale |
float |
0.50 |
0 ... 3 |
|
damping in constraint |
Will brace arms and twist head and body in reaction to medium speed incoming object from a point(xd,yd,zd).
It will lead with the nearest hand to the incoming object if no hand or both hands are specified. Will look at the target.
Note: there is no logic about when/when not to brace.
| Parameter |
Type |
Default |
Range |
Units |
Description |
| rightHanded |
boolean |
false |
|
|
Lead with the right hand |
| leftHanded |
boolean |
false |
|
|
Lead with the left hand |
| handDistanceLeftRight |
float |
0.10 |
0 ... 1 |
Meters |
Left-Right distance between the hands |
| handDistanceFrontBack |
float |
0.10 |
0 ... 1 |
Meters |
Front-Back distance between the hands |
| handDistanceVertical |
float |
0.10 |
0 ... 1 |
Meters |
Vertical distance between the hands |
| bodyStiffness |
float |
12.00 |
6 ... 16 |
|
stiffness of body. Value carries over to head look, spine twist |
| pos |
vector3 |
0.00, 0.00, 0.00 |
|
World-Space Position |
position in world-space of object to flinch from |
| bodyDamping |
float |
1.00 |
0 ... 1.5 |
|
damping value used for upper body |
| backBendAmount |
float |
-0.55 |
-1 ... 1 |
|
Amount to bend the back during the flinch |
| useRightArm |
boolean |
true |
|
|
Toggle to use the right arm. |
| useLeftArm |
boolean |
true |
|
|
Toggle to Use the Left arm |
| noiseScale |
float |
0.10 |
|
|
Amplitude of the perlin noise applied to the arms positions in the flicnh to the front part of the behaviour. |
| newHit |
boolean |
true |
|
|
|
| turnTowards |
int |
1 |
|
|
|