Difference between revisions of "Category:Detection"
imported>Tejón |
imported>JRoush (Simplified formula table, should be much easier to read) |
||
Line 1: | Line 1: | ||
Detection is Oblivion's stealth mechanic. The concept isn't complicated: every actor has a degree of awareness of every other nearby actor, called a ''detection level''. If this detection level is above a certain threshold then the searching actor (the "detector") is fully aware of the hiding actor (the "target"). The detector can then attack, offer a greeting, report the target's crimes, etc. If the detection level falls below the threshold again, the detector "loses" the target and can no longer interact with it. | Detection is Oblivion's stealth mechanic. The concept isn't complicated: every actor has a degree of awareness of every other nearby actor, called a ''detection level''. If this detection level is above a certain threshold then the searching actor (the "detector") is fully aware of the hiding actor (the "target"). The detector can then attack, offer a greeting, report the target's crimes, etc. If the detection level falls below the threshold again, the detector "loses" the target and can no longer interact with it. | ||
Quite a few | Quite a few variables go into calculating detection levels. They fall into three basic categories: Sight, Sound, and Sneak Skill. Sight basically describe how well the detector can see the target, and only matter if the detector actually has a direct line-of-sight. Sound measures how much noise the target is making, from movement and from being in combat. Skill measures the ''relative'' sneak skill of the detector & target. For all three, the distance from the detector to target plays a very important role. | ||
The complete | The complete formula for Detection Level is given below. Because the formula is so complicated, it is broken into smaller pieces and organized in a table. Conditional terms are enclosed in square brackets, e.g. "[ + 400, if target is yellow]" means "add 400 if the target is yellow, otherwise ignore this term". | ||
=== Detection Level Formula === | |||
{| cellpadding=3 cellspacing=0 border=1 style="text-align:center" | |||
|- style="background:#efefef;" | |||
! scope="col" width="100" | Factor | |||
! scope="col" width="100%" | Value | |||
|- | |- | ||
| '''Detection Level''' | |||
| align="left" | | |||
If target is farther from the detector than MaxDetectionRange, and has not attacked the detector: | |||
0 | |||
If target is invisible or has 100% Chameleon: | |||
-100 | |||
Otherwise: | |||
[[fSneakBaseValue]] | |||
[ + [[fSneakTargetAttackBonus]], if target attacked detector] | |||
[ + SoundBonus, if target is not swimming] | |||
[ + [[fSneakSleepBonus]], if detector is sleeping] | |||
[ + SightBonus, if detector is awake and has line-of-sight to target] | |||
+ SkillBonus | |||
|- | |||
| '''Sound Bonus''' | |||
| align="left" | | |||
[[fSneakSoundsMult]] * DistanceFactor * | |||
( | |||
[ MovementFactor, if target is moving] | |||
[ + [[fSneakTargetInCombatBonus]], if target is in combat] | |||
) | |||
[ * [[fSneakSoundLosMult]], if detector has no line of sight to target] | |||
|- | |- | ||
| | | Movement Factor | ||
| align="left" | | |||
( | |||
[[fSneakBootWeightBase]] | |||
[ + [[fSneakBootWeightMult]] * (target boot weight), if tgt Sneak mastery < Journeyman] | |||
) | |||
[ * [[fSneakRunningMult]], if target is running & target Sneak mastery < Expert] | |||
| | |||
|- | |||
| '''Sight Bonus''' | |||
| align="left" | | |||
[[fSneakLightMult]] * DistanceFactor * LightFactor * ChameleonFactor * BlindnessFactor | |||
[ * [[fSneakSwimmingLightMult]], if target is swimming] | |||
[[ | |||
|- | |||
| | |||
| | |||
| | |||
[[ | |||
|- | |- | ||
| | | Light Factor | ||
| | | align="left" | | ||
| [[ | [[fDetectionSneakLightMod]] + (light level on target) | ||
[ * [[fDetectionNightEyeBonus]], if detector has Night Eye] | |||
Light Factor is forced into the range [0 - 1] | |||
|- | |||
| Chameleon Factor | |||
| align="left" | | |||
1 - (Chameleon level of target)/100 | |||
Chameleon Factor is forced into the range [0 - 1] | |||
|- | |||
| Blindness Factor | |||
| align="left" | | |||
1 - (Blindness level of target)/100 | |||
Blindness Factor is forced into the range [0 - 1] | |||
|- | |||
| '''Skill Bonus''' | |||
| align="left" | | |||
[[fSneakSkillMult]] * | |||
( | |||
(detector Sneak skill) * DistanceFactor | |||
[ - target Sneak skill, if target is sneaking] | |||
) | |||
|- | |- | ||
| | | '''Distance Factor''' | ||
| align="left" | | |||
1 - (distance between detector and target) / MaxDetectionRange | |||
|- | |- | ||
| '''Max Detection Range''' | |||
| align="left" | | |||
[[fSneakMaxDistance]] | |||
[ * [[fSneakExteriorDistanceMult]], if in exterior cell] | |||
| | |||
| | |||
|} | |||
=== Detection Thresholds === | |||
If the ''' | If the '''Detection Level''' is greater than a certain threshold, the detector can becomes aware of the target. The thresholds are: | ||
{|border="1" cellpadding="5" cellspacing="0" | {|border="1" cellpadding="5" cellspacing="0" | ||
|- | |- |
Revision as of 05:46, 9 November 2010
Detection is Oblivion's stealth mechanic. The concept isn't complicated: every actor has a degree of awareness of every other nearby actor, called a detection level. If this detection level is above a certain threshold then the searching actor (the "detector") is fully aware of the hiding actor (the "target"). The detector can then attack, offer a greeting, report the target's crimes, etc. If the detection level falls below the threshold again, the detector "loses" the target and can no longer interact with it.
Quite a few variables go into calculating detection levels. They fall into three basic categories: Sight, Sound, and Sneak Skill. Sight basically describe how well the detector can see the target, and only matter if the detector actually has a direct line-of-sight. Sound measures how much noise the target is making, from movement and from being in combat. Skill measures the relative sneak skill of the detector & target. For all three, the distance from the detector to target plays a very important role.
The complete formula for Detection Level is given below. Because the formula is so complicated, it is broken into smaller pieces and organized in a table. Conditional terms are enclosed in square brackets, e.g. "[ + 400, if target is yellow]" means "add 400 if the target is yellow, otherwise ignore this term".
Detection Level Formula
Factor | Value |
---|---|
Detection Level |
If target is farther from the detector than MaxDetectionRange, and has not attacked the detector: 0 If target is invisible or has 100% Chameleon: -100 Otherwise: fSneakBaseValue [ + fSneakTargetAttackBonus, if target attacked detector] [ + SoundBonus, if target is not swimming] [ + fSneakSleepBonus, if detector is sleeping] [ + SightBonus, if detector is awake and has line-of-sight to target] + SkillBonus |
Sound Bonus |
fSneakSoundsMult * DistanceFactor * ( [ MovementFactor, if target is moving] [ + fSneakTargetInCombatBonus, if target is in combat] ) [ * fSneakSoundLosMult, if detector has no line of sight to target] |
Movement Factor |
( fSneakBootWeightBase [ + fSneakBootWeightMult * (target boot weight), if tgt Sneak mastery < Journeyman] ) [ * fSneakRunningMult, if target is running & target Sneak mastery < Expert] |
Sight Bonus |
fSneakLightMult * DistanceFactor * LightFactor * ChameleonFactor * BlindnessFactor [ * fSneakSwimmingLightMult, if target is swimming] |
Light Factor |
fDetectionSneakLightMod + (light level on target) [ * fDetectionNightEyeBonus, if detector has Night Eye] Light Factor is forced into the range [0 - 1] |
Chameleon Factor |
1 - (Chameleon level of target)/100 Chameleon Factor is forced into the range [0 - 1] |
Blindness Factor |
1 - (Blindness level of target)/100 Blindness Factor is forced into the range [0 - 1] |
Skill Bonus |
fSneakSkillMult * ( (detector Sneak skill) * DistanceFactor [ - target Sneak skill, if target is sneaking] ) |
Distance Factor |
1 - (distance between detector and target) / MaxDetectionRange |
Max Detection Range |
fSneakMaxDistance [ * fSneakExteriorDistanceMult, if in exterior cell] |
Detection Thresholds
If the Detection Level is greater than a certain threshold, the detector can becomes aware of the target. The thresholds are:
fSneakUnseenMin | all actors that are unaware of target
all non-hostile actors |
fSneakLostMin | hostile actors that are searching for target |
iAICombatMinDetection | hostile actors that are in combat with target |
A final note: The target-is-in-combat bonus is fairly significant. Combined with the much lower combat threshold, this can make it very difficult for an actor to return to hiding once a hostile actor has seen them.
See Also
There are 20 articles in this category.
This category currently contains no pages or media.