Polarith AI
1.8
Adjust

front-end / back-end: AIMAdjust | Adjust
inherits from: AIMRadiusSteeringBehaviour | RadiusSteeringBehaviour

Adjust is a variation of Align. In contrast to Align, it iterates over a list of percepts (coming from environments / game object lists) to generate a ResultMagnitude based on the percepts' directions. Since this is a very simple behaviour, it lacks any special properties. However, the mechanism of ValueWriting can be utilized to achieve very different results which are similar to clustering approaches. To access the ValueWriting property, you have to activate the advanced inspector (button with the empty circle which turns into a solid circle then).

Properties

This component does not have any specific properties. It just has got the properties inherited from RadiusSteeringBehaviour.

Preview

Remarks

Adjust is quiet versatile. Instead of using the default ValueWriting type AssignGreater other types might also be useful, like Addition which results in great magnitudes where clusters of similar oriented percepts are located, as shown in Figure 1. Here are some examples.

  • AssignGreater: the direction of the closest percept gets the greatest magnitude
  • AssignLesser: the direction of the percept with the greatest valid distance gets the greatest magnitude
  • Addition: the behaviour clusters the most common distances
  • Substraction: this results in the opposite of Addition

Figure 1: An example configuration where Adjust uses the ValueWriting type Addition. The greatest magnitude is generated in the direction of the 4 agents at the top. The agent at the bottom still generates a small amount of interest in the opposite direction.

Hint: it is possible to separate the orientation and the movement direction by using an additional objective so that there is one objective for the movement direction and one objective for the orientation. However, the shipped character controllers (which are only suitable for debugging purposes anyway) do not support this feature yet. You have to implement such a controller yourself.

Imprint