With the release of Black Ops 3, we were introduced with a new way to implement AI. This includes a set of files which define things like the animation state, behavior of the AI, etc. Oddly enough, this is actually an extension of the system used in Black Ops 2, only separated into several files which define certain properties for the AI. Unfortunately, with the release of the modtools, we were only presented with the stock dog and zombie AI Scripts, which didn’t leave us with much to work with. (But that has now changed.)

Animation Selector Tables

This was the first of the structures I researched on my quest for more AI Scripts. The AnimSelectorTable is responsible for styling the current AI with an animation based on the current animation state. The basic idea is, the selector refers to an animation alias (Contained within the AnimationMap) which then links to the animation which should be played, void is used for no animation state.

The structure of an AnimSelectorTable is as follows:

  • Name of the selector used in the AnimationStateMachine.
  • A list of columns which refer to specific properties of the animation / AI style behavior, some of them include: animation blending times, the alias used for the animation, which board a zombie should break down, etc.
  • Then follows the entries for this specific selector.
  • To note, everything is comma separated, and the entire file is CSV complient, each new entry is then separated by a single line comma.

Now, compiled these assets are a huge tree of links which corrospond to the columns, entries, and types each entry’s column is. This took quite a while to research every possible entry type, however at the moment of writing this, I have every single .ast ripped without any missing entry types.

Animation Maps

This was the second of the structures I have researched and the easiest out of all of them. It contains an “animation map” which links an alias to animation. Each map can contain several different animations each of which can be chosen at random to add a “more realistic feel” to the AI. The AnimationMap is referred to from the AnimationSelectorTable. Since this structure is common sense, I’ll just be listing it’s contents:

  • Each file starts with a single line # symbol.
  • Following this is the list of entries for the map, each entry starts with the alias, then has comma separated animation names. As stated before you can have multiple animations per alias. Due note that in this file, there is no trailing comma.

In-game this was easy due to it simply being a list of alias’s and a variable amount of animation entries, this took no time at all to export.

This is going to wrap up my part 1 of BO3: AI Scripts. I will have a follow-up with Animation State Machines and Behavior Trees which will also bring the release of every one of these assets ripped from in-game. (To note that behavior trees can not be used as-is ripped due to compiler optimizations.)