If you want to create your own custom AST you need to modify “ast_definitions.json” which is located in:


Black Ops 3 Root\share\raw\animtables

This file u can copy to your mod/map folder.
NOTE: U don’t have to add this into your .zone file. It will automatically recognize.


Mod/Map Root\animtables

You only need to add another JSON object at the bottom for example.

{
	"name": "_custom_move_speed",
	"parentColumn": null,
	"desired": false,
	"type": "enum",
	"possibleValues": [
		"walk",
		"run",
		"sprint"
	],
	"outputColumn": false
 }

In script you need to register the function or else it won’t work. Make sure it’s on a callback function when the AI is spawned. For example how they have it with the zombie dogs.


array::thread_all( level.dog_spawners,&spawner::add_spawn_function,&dog_init );

Add this to register the custom AST


//AST Name, Default Value, Getter Function

BB_REGISTER_ATTRIBUTE("_custom_move_speed", "walk", &custom_move_speed); //This registers the AST

self.custom_move_speed = "walk"; //With this u change the speed, can be (walk, run, sprint) just like the values in the JSON object.

//This is the getter function that returns the value that is set on the AI

function custom_move_speed()
{
	return self.custom_move_speed; //The value u have set
}

//You need to include these at the top of your script
#using scripts\shared\ai\systems\blackboard;
#insert scripts\shared\ai\systems\blackboard.gsh;

Now in the AI_AST file you need to add the new AST definition.


locomotion@yourai,
_custom_move_speed,_blend_in_time,_blend_out_time,_animation_alias,_animation_mocomp,
walk,0.2,0.2,anim_walk,mocomp_move@locomotion,
run,0.2,0.2,anim_run,mocomp_move@locomotion,
sprint,0.2,0.2,anim_sprint,mocomp_move@locomotion,
,

Now you are able to control which anim should be selected.