Retention is used to remember objective values for multiple frames (back-end class).
How long values are being remembered can be controlled through the Memory parameter. When an agent remembers the data of its last decisions, the time-dependent coherence increases, and thus, the transition between consecutive decisions appears to be smoother. Note, too high values for the Memory parameter will lead to sluggish agents which cannot react properly to certain situations any longer.
Back-end class of AIMRetention. This behaviour is thread-safe.
Public Fields | |
List< int > | TargetObjectives = new List<int>() |
Specifies all the objectives which are influenced by this behaviour. More... | |
float | Memory = 0.5f |
Determines how long old objective values are being remembered in future AI updates. More... | |
Context | Context |
Reference for quick access to the associated context instance. More... | |
const int | CentralOrder = 1000 |
The minimum Order for behaviours which should be processed before behaviours using LastOrder but after all other behaviours. More... | |
const int | LastOrder = 2000 |
The minimum Order for behaviours which should be processed at last. More... | |
Protected Fields | |
Problem | intermediate = new Problem() |
Holds the intermediate result of this behaviour which can be applied to the context map at the end of an update step using BlendValues(LayerBlendingType, int). More... | |
bool | enabled |
Determines if this IBehaviour is active or inactive. More... | |
Properties | |
bool | Enabled [get, set] |
Determines if this IBehaviour is active or inactive. More... | |
int | Order [get, set] |
Specifies the execution order of this behaviour. More... | |
Public Methods | |
override void | Behave () |
Processes the algorithms of this class writing/modifying objective values. More... | |
Public Static Methods | |
static float | MapSpecial (MappingType mapping, float min, float max, float value) |
Maps a value lying between min and max to a resulting value between 0 and 1. More... | |
static float | MapSpecialSqr (MappingType mapping, float sqrMin, float sqrMax, float sqrValue) |
Maps a sqrValue lying between sqrMin and sqrMax to a resulting value between 0 and 1, whereby all the given parameters are expected to be squared. More... | |
Protected Methods | |
float | MapBySensitivity (MappingType mapping, Structure structure, Vector3 direction, float sensitivityOffset=0.0f) |
Maps (magnitude) values by sensitivity so that the Structure.Sensitivity (plus the given sensitivityOffset ) is used as similarity threshold for the angle between the given direction and the Structure.Direction. More... | |
float | MapBySensitivityPlane (MappingType mapping, Structure structure, Vector3 planeDirection1, Vector3 planeDirection2, float offset, float sensitivityOffset=0.0f) |
Maps (magnitude) values by sensitivity so that the Structure.Sensitivity (plus the given sensitivityOffset ) is used as similarity threshold for the smallest angle between a plane defined by planeDirection1 , planeDirection2 and the Structure.Direction. More... | |
void | WriteValue (ValueWritingType valueWriting, int objectiveIndex, int valueIndex, float value, bool intermediate=false) |
Writes objective values to the Context.Problem as specified with valueWriting . More... | |
void | BlendValues (LayerBlendingType layerBlending, int objectiveIndex) |
Writes the values of the intermediate to the actual Context.Problem. More... | |