Sitting Behaviour for AI: Difference between revisions
Springheel (talk | contribs) |
Springheel (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
There are two different ways to get AI to sit in your map; pick the one that best suits your needs. | |||
==Sitting at Map Start== | ==Sitting at Map Start== | ||
Just set the spawnarg "sitting" "1" on the AI, and the AI will sit down immediately at map start. They will stay this way until alerted to the point of searching, at which point they will get up. After calming down, they will go back and sit again. | The easier of the two options. Just set the spawnarg "sitting" "1" on the AI, and the AI will sit down immediately at map start. They will stay this way until alerted to the point of searching, at which point they will get up. After calming down, they will go back and sit again. | ||
You must place the AI next to the chair, facing away from the direction you want him to sit (or use angles, see below). The code does not detect the surface the AI sits on, so he will sit on thin air if there is no stool or chair there. | |||
==Sitting During Patrol== | ==Sitting During Patrol== | ||
It is now possible to have the AI sitting down and getting up during patrolling, using a '''path_sit''' entity. | It is now possible to have the AI sitting down and getting up during patrolling, using a '''path_sit''' entity. You must place the path_sit next to the chair, angled away from the direction you want him to sit. | ||
You can set "wait" and/or "wait_max" to let the AI wait and get up after that time. "Wait" is a minimum wait time, so if you set "wait" to 5 seconds and "wait_max" to 10 seconds, the AI will wait between 5 and 10 seconds every time. If you only set "wait", the AI will always wait exactly 5 seconds. If you only set "wait_max", the AI will wait between 0 and 10 seconds. | You can set "wait" and/or "wait_max" to let the AI wait and get up after that time. "Wait" is a minimum wait time, so if you set "wait" to 5 seconds and "wait_max" to 10 seconds, the AI will wait between 5 and 10 seconds every time. If you only set "wait", the AI will always wait exactly 5 seconds. If you only set "wait_max", the AI will wait between 0 and 10 seconds. | ||
Line 9: | Line 14: | ||
The AI will get up if alerted to searching state or if it has to move to another position. | The AI will get up if alerted to searching state or if it has to move to another position. | ||
Example: If you want an AI to sit, and then play a warm hands after 20 seconds, you would use a path_sit without a wait spawnarg (AI sits down, the path_sit task is terminated and the AI stays seated), then a path_wait for 20 seconds, then a path_anim, then another path_wait, and then a path_corner or something (AI gets up and walks to path_corner). | Example: If you want an AI to sit, and then play a warm hands after 20 seconds, you would use a path_sit without a wait spawnarg (AI sits down, the path_sit task is terminated and the AI stays seated), then a path_wait for 20 seconds, then a path_anim, then another path_wait, and then a path_corner or something (AI gets up and walks to path_corner). | ||
Line 19: | Line 21: | ||
== Sitting Angles == | == Sitting Angles == | ||
Mappers may want control over where AI face after sitting down. By default, AI stand directly in front of the chain when sitting or standing. This doesn't work well if you want AI to sit close to a table, however. The solution is to use a sitting_angles (what is the actual name?) spawnarg on the AI. This will cause the AI to spin in the chair after sitting until they face the direction listed. They will turn back when it is time to stand up. | Mappers may want more control over where AI face after sitting down. By default, AI stand directly in front of the chain when sitting or standing. This doesn't work well if you want AI to sit close to a table, however. The solution is to use a sitting_angles (what is the actual name?) spawnarg on the AI. This will cause the AI to spin in the chair after sitting until they face the direction listed. They will turn back when it is time to stand up. | ||
Note that the angles are relative to the world, not the AI. | Note that the angles are relative to the world, not the AI. |
Revision as of 00:14, 17 April 2010
There are two different ways to get AI to sit in your map; pick the one that best suits your needs.
Sitting at Map Start
The easier of the two options. Just set the spawnarg "sitting" "1" on the AI, and the AI will sit down immediately at map start. They will stay this way until alerted to the point of searching, at which point they will get up. After calming down, they will go back and sit again.
You must place the AI next to the chair, facing away from the direction you want him to sit (or use angles, see below). The code does not detect the surface the AI sits on, so he will sit on thin air if there is no stool or chair there.
Sitting During Patrol
It is now possible to have the AI sitting down and getting up during patrolling, using a path_sit entity. You must place the path_sit next to the chair, angled away from the direction you want him to sit.
You can set "wait" and/or "wait_max" to let the AI wait and get up after that time. "Wait" is a minimum wait time, so if you set "wait" to 5 seconds and "wait_max" to 10 seconds, the AI will wait between 5 and 10 seconds every time. If you only set "wait", the AI will always wait exactly 5 seconds. If you only set "wait_max", the AI will wait between 0 and 10 seconds.
If you don't set either one, the AI will stay seated and you can also do path_anims and path_waits for example (they'll play that animation on the torso channel while sitting).
The AI will get up if alerted to searching state or if it has to move to another position.
Example: If you want an AI to sit, and then play a warm hands after 20 seconds, you would use a path_sit without a wait spawnarg (AI sits down, the path_sit task is terminated and the AI stays seated), then a path_wait for 20 seconds, then a path_anim, then another path_wait, and then a path_corner or something (AI gets up and walks to path_corner).
If you have any path problems, eg, with AI clipping into Monsterclip on chair, then make the chair a moveable and add frobable 0 and notPushable 1 and remove the monsterclip. It is effectively static but the AI will path it correctly without monsterclip.
Sitting Angles
Mappers may want more control over where AI face after sitting down. By default, AI stand directly in front of the chain when sitting or standing. This doesn't work well if you want AI to sit close to a table, however. The solution is to use a sitting_angles (what is the actual name?) spawnarg on the AI. This will cause the AI to spin in the chair after sitting until they face the direction listed. They will turn back when it is time to stand up.
Note that the angles are relative to the world, not the AI.
Other sitting spawnargs include:
"sit_down_slide_dist", which is currently 8; controls how far AI slide back onto the chair when sitting down.