The first property of every AIMBehaviour
is the Order
. You may have noticed that different behaviours have different default Order
values. It defines the execution order of every attached behaviour within the whole AIM pipeline. In the screenshot above, it is obvious that Seek is called at first, followed by Retention and Planar Interpolation at last. However, it is not obvious that the MCO solver which is used internally to make a suitable movement decision is executed in between Retention and Planar Interpolation. This is due to the nature of interpolation behaviours. They need to be called after the MCO problem was solved in order to improve the already found solution.
The difference between steering behaviours (Seek etc.) and processing behaviours (Convolution etc.) is a semantic one. It is possible and perfectly fine to set the order of a processing behaviour to a value smaller than 1000 (except for Planar Interpolation). For example, the following is valid.
Seek > Convolution > Seek > Retention > Solver > Interpolation
However, for most cases, steering behaviours are called before processing behaviours, because you most likely want to process the results of the steering behaviours and not the other way around. (Feel free to use your creativity and show us what can be achieved when it is done different, we are excited to see what you can achieve.)
Note that it is impossible to set the order of an interpolation behaviour to a value less than 2000. Although it can be classified as some kind of processing behaviour, interpolators are very special since it is mandatory that the interpolation process is executed after the MCO solver has finished. To illustrate this, Figure 1 shows the whole pipeline with respect to the execution order of AI components.
Figure 1: The whole Context pipeline with respect to the Order
property.