UGX-Mods Login

or login with an authentication provider below
Sign In with Google
Sign In with Twitter
Sign In with Discord
Sign In with Steam
Sign In with Facebook
Sign In with Twitch

[Help] Custom AI Animations

broken avatar :(
Created 6 years ago
by GerardS0406
0 Members and 1 Guest are viewing this topic.
1,227 views
broken avatar :(
×
broken avatar :(
Location: usMissouri
Date Registered: 6 August 2013
Last active: 6 months ago
Posts
513
Respect
Forum Rank
Zombie Enslaver
Primary Group
Member
My Contact & Social Links
More
Signature
Projects:
Unnamed Project: 5%
Mutliple Downloadable Items for Mappers: (Released after map releases)
×
GerardS0406's Groups
GerardS0406's Contact & Social LinksGerardS0406Gerard0406GerardS0406MrGerard0406
I'm trying to create a custom friendly ai (I have ported over the models and anims already into waw as well as the character and aitype) but I'm stuck as to how to get the ai's anims to work and how to get the ai to move. For the moment, I just want the ai to follow a set path. If anyone can help, that would be great!
Last Edit: July 21, 2018, 10:45:45 pm by GerardS0406
Marked as best answer by GerardS0406 6 years ago
broken avatar :(
×
broken avatar :(
Location: us
Date Registered: 22 September 2015
Last active: 11 days ago
Posts
256
Respect
Forum Rank
Mr. Elemental
Primary Group
Member
My Contact & Social Links
More
Signature
×
AllMoDs's Groups
do you have maya to make the anims
in zombiemode.gsc look for this
[noae]
Code Snippet
Plaintext
init_standard_zombie_anims
[/noae]

if you look in this setup you will see how to add the anims
default zom anims start with    "level.scr_anim["zombie"]"
anims  i added    "level.scr_anim["zomboss1"]"

[noae]
Code Snippet
Plaintext
init_standard_zombie_anims()
{
// deaths
level.scr_anim["zombie"]["death1"] = %ai_zombie_death_v1;
level.scr_anim["zombie"]["death2"] = %ai_zombie_death_v2;
level.scr_anim["zombie"]["death3"] = %ai_zombie_crawl_death_v1;
level.scr_anim["zombie"]["death4"] = %ai_zombie_crawl_death_v2;


level.scr_anim["zomboss1"]["death1"] = %hamerwalk;
level.scr_anim["zomboss1"]["death2"] = %hamerwalk;
level.scr_anim["zomboss1"]["death3"] = %hamerwalk;
level.scr_anim["zomboss1"]["death4"] = %hamerwalk;

level.scr_anim["genu"]["death1"] = %hamerwalk;
level.scr_anim["genu"]["death2"] = %hamerwalk;
level.scr_anim["genu"]["death3"] = %hamerwalk;
level.scr_anim["genu"]["death4"] = %hamerwalk;
// run cycles
level.scr_anim["zomboss1"]["walk1"] = %hamerwalk;
level.scr_anim["zomboss1"]["walk2"] = %hamerwalk;
level.scr_anim["zomboss1"]["walk3"] = %hamerwalk;
level.scr_anim["zomboss1"]["walk4"] = %hamerwalk;

level.scr_anim["genu"]["walk1"] = %hamerwalk;
level.scr_anim["genu"]["walk2"] = %hamerwalk;
level.scr_anim["genu"]["walk3"] = %hamerwalk;
level.scr_anim["genu"]["walk4"] = %hamerwalk;

level.scr_anim["zomboss1"]["run1"] = %hamerwalk;
level.scr_anim["zomboss1"]["run2"] = %hamerwalk;
level.scr_anim["zomboss1"]["run3"] = %hamerwalk;
level.scr_anim["zomboss1"]["run4"] = %hamerwalk;
level.scr_anim["zomboss1"]["run5"] = %hamerwalk;
level.scr_anim["zomboss1"]["run6"] = %hamerwalk;

level.scr_anim["genu"]["run1"] = %hamerwalk;
level.scr_anim["genu"]["run2"] = %hamerwalk;
level.scr_anim["genu"]["run3"] = %hamerwalk;
level.scr_anim["genu"]["run4"] = %hamerwalk;
level.scr_anim["genu"]["run5"] = %hamerwalk;
level.scr_anim["genu"]["run6"] = %hamerwalk;

level.scr_anim["genu"]["sprint1"] = %hamerwalk;
level.scr_anim["genu"]["sprint2"] = %hamerwalk;
level.scr_anim["genu"]["sprint3"] = %hamerwalk;
level.scr_anim["genu"]["sprint4"] = %hamerwalk;



level.scr_anim["zombie"]["walk1"] = %ai_zombie_walk_v1;
level.scr_anim["zombie"]["walk2"] = %ai_zombie_walk_v2;
level.scr_anim["zombie"]["walk3"] = %ai_zombie_walk_v3;
level.scr_anim["zombie"]["walk4"] = %ai_zombie_walk_v4;

level.scr_anim["zombie"]["run1"] = %ai_zombie_walk_fast_v1;
level.scr_anim["zombie"]["run2"] = %ai_zombie_walk_fast_v2;
level.scr_anim["zombie"]["run3"] = %ai_zombie_walk_fast_v3;
level.scr_anim["zombie"]["run4"] = %ai_zombie_run_v2;
level.scr_anim["zombie"]["run5"] = %ai_zombie_run_v4;
level.scr_anim["zombie"]["run6"] = %ai_zombie_run_v3;
//level.scr_anim["zombie"]["run4"] = %ai_zombie_run_v1;
//level.scr_anim["zombie"]["run6"] = %ai_zombie_run_v4;

level.scr_anim["zombie"]["sprint1"] = %ai_zombie_sprint_v1;
level.scr_anim["zombie"]["sprint2"] = %ai_zombie_sprint_v2;
level.scr_anim["zombie"]["sprint3"] = %ai_zombie_sprint_v1;
level.scr_anim["zombie"]["sprint4"] = %ai_zombie_sprint_v2;
//level.scr_anim["zombie"]["sprint3"] = %ai_zombie_sprint_v3;
//level.scr_anim["zombie"]["sprint3"] = %ai_zombie_sprint_v4;
//level.scr_anim["zombie"]["sprint4"] = %ai_zombie_sprint_v5;

// run cycles in prone
level.scr_anim["zombie"]["crawl1"] = %ai_zombie_crawl;
level.scr_anim["zombie"]["crawl2"] = %ai_zombie_crawl_v1;
level.scr_anim["zombie"]["crawl3"] = %ai_zombie_crawl_v2;
level.scr_anim["zombie"]["crawl4"] = %ai_zombie_crawl_v3;
level.scr_anim["zombie"]["crawl5"] = %ai_zombie_crawl_v4;
level.scr_anim["zombie"]["crawl6"] = %ai_zombie_crawl_v5;
level.scr_anim["zombie"]["crawl_hand_1"] = %ai_zombie_walk_on_hands_a;
level.scr_anim["zombie"]["crawl_hand_2"] = %ai_zombie_walk_on_hands_b;




level.scr_anim["zombie"]["crawl_sprint1"] = %ai_zombie_crawl_sprint;
level.scr_anim["zombie"]["crawl_sprint2"] = %ai_zombie_crawl_sprint_1;
level.scr_anim["zombie"]["crawl_sprint3"] = %ai_zombie_crawl_sprint_2;

if( !isDefined( level._zombie_melee ) )
{
level._zombie_melee = [];
}
if( !isDefined( level._zombie_walk_melee ) )
{
level._zombie_walk_melee = [];
}
if( !isDefined( level._zombie_run_melee ) )
{
level._zombie_run_melee = [];
}
level._zombie_melee["genu"] = [];
level._zombie_walk_melee["genu"] = [];
level._zombie_run_melee["genu"] = [];

level._zombie_melee["zomboss1"] = [];
level._zombie_walk_melee["zomboss1"] = [];
level._zombie_run_melee["zomboss1"] = [];

level._zombie_melee["zombie"] = [];
level._zombie_walk_melee["zombie"] = [];
level._zombie_run_melee["zombie"] = [];

level._zombie_melee["genu"][0] = %hamerwalk;
level._zombie_melee["genu"][1] = %hamerwalk;
level._zombie_melee["genu"][2] = %hamerwalk;
level._zombie_melee["genu"][3] = %hamerwalk;
level._zombie_melee["genu"][4] = %hamerwalk;
level._zombie_melee["genu"][5] = %hamerwalk;
level._zombie_melee["genu"][6] = %hamerwalk;

level._zombie_melee["zomboss1"][0] = %hamerwalk;
level._zombie_melee["zomboss1"][1] = %hamerwalk;
level._zombie_melee["zomboss1"][2] = %hamerwalk;
level._zombie_melee["zomboss1"][3] = %hamerwalk;
level._zombie_melee["zomboss1"][4] = %hamerwalk;
level._zombie_melee["zomboss1"][5] = %hamerwalk;
level._zombie_melee["zomboss1"][6] = %hamerwalk;

level._zombie_melee["zombie"][0] = %ai_zombie_attack_forward_v1;
level._zombie_melee["zombie"][1] = %ai_zombie_attack_forward_v2;
level._zombie_melee["zombie"][2] = %ai_zombie_attack_v1;
level._zombie_melee["zombie"][3] = %ai_zombie_attack_v2;
level._zombie_melee["zombie"][4] = %ai_zombie_attack_v1;
level._zombie_melee["zombie"][5] = %ai_zombie_attack_v4;
level._zombie_melee["zombie"][6] = %ai_zombie_attack_v6;
level._zombie_run_melee["zombie"][0] = %ai_zombie_run_attack_v1;
level._zombie_run_melee["zombie"][1] = %ai_zombie_run_attack_v2;
level._zombie_run_melee["zombie"][2] = %ai_zombie_run_attack_v3;
level.scr_anim["zombie"]["walk5"] = %ai_zombie_walk_v6;
level.scr_anim["zombie"]["walk6"] = %ai_zombie_walk_v7;
level.scr_anim["zombie"]["walk7"] = %ai_zombie_walk_v8;
level.scr_anim["zombie"]["walk8"] = %ai_zombie_walk_v9;

if( isDefined( level.zombie_anim_override ) )
{
[[ level.zombie_anim_override ]]();
}

level._zombie_walk_melee["genu"][0] = %hamerwalk;
level._zombie_walk_melee["genu"][1] = %hamerwalk;
level._zombie_walk_melee["genu"][2] = %hamerwalk;
level._zombie_walk_melee["genu"][3] = %hamerwalk;


level._zombie_walk_melee["zomboss1"][0] = %hamerwalk;
level._zombie_walk_melee["zomboss1"][1] = %hamerwalk;
level._zombie_walk_melee["zomboss1"][2] = %hamerwalk;
level._zombie_walk_melee["zomboss1"][3] = %hamerwalk;


level._zombie_walk_melee["zombie"][0] = %ai_zombie_walk_attack_v1;
level._zombie_walk_melee["zombie"][1] = %ai_zombie_walk_attack_v2;
level._zombie_walk_melee["zombie"][2] = %ai_zombie_walk_attack_v3;
level._zombie_walk_melee["zombie"][3] = %ai_zombie_walk_attack_v4;

// melee in crawl
if( !isDefined( level._zombie_melee_crawl ) )
{
level._zombie_melee_crawl = [];
}
level._zombie_melee_crawl["zombie"] = [];
level._zombie_melee_crawl["zombie"][0] = %ai_zombie_attack_crawl;
level._zombie_melee_crawl["zombie"][1] = %ai_zombie_attack_crawl_lunge;

if( !isDefined( level._zombie_stumpy_melee ) )
{
level._zombie_stumpy_melee = [];
}
level._zombie_stumpy_melee["zombie"] = [];
level._zombie_stumpy_melee["zombie"][0] = %ai_zombie_walk_on_hands_shot_a;
level._zombie_stumpy_melee["zombie"][1] = %ai_zombie_walk_on_hands_shot_b;
//level._zombie_melee_crawl["zombie"][2] = %ai_zombie_crawl_attack_A;

// tesla deaths
if( !isDefined( level._zombie_tesla_death ) )
{
level._zombie_tesla_death = [];
}
level._zombie_tesla_death["zombie"] = [];
level._zombie_tesla_death["zombie"][0] = %ai_zombie_tesla_death_a;
level._zombie_tesla_death["zombie"][1] = %ai_zombie_tesla_death_b;
level._zombie_tesla_death["zombie"][2] = %ai_zombie_tesla_death_c;
level._zombie_tesla_death["zombie"][3] = %ai_zombie_tesla_death_d;
level._zombie_tesla_death["zombie"][4] = %ai_zombie_tesla_death_e;

if( !isDefined( level._zombie_tesla_crawl_death ) )
{
level._zombie_tesla_crawl_death = [];
}
level._zombie_tesla_crawl_death["zombie"] = [];
level._zombie_tesla_crawl_death["zombie"][0] = %ai_zombie_tesla_crawl_death_a;
level._zombie_tesla_crawl_death["zombie"][1] = %ai_zombie_tesla_crawl_death_b;

// deaths
if( !isDefined( level._zombie_deaths ) )
{
level._zombie_deaths = [];
}
level._zombie_deaths["zombie"] = [];
level._zombie_deaths["zombie"][0] = %ch_dazed_a_death;
level._zombie_deaths["zombie"][1] = %ch_dazed_b_death;
level._zombie_deaths["zombie"][2] = %ch_dazed_c_death;
level._zombie_deaths["zombie"][3] = %ch_dazed_d_death;

level._zombie_deaths["genu"] = [];
level._zombie_deaths["genu"][0] = %hamerwalk;
level._zombie_deaths["genu"][1] = %hamerwalk;
level._zombie_deaths["genu"][2] = %hamerwalk;
level._zombie_deaths["genu"][3] = %hamerwalk;

level._zombie_deaths["zomboss1"] = [];
level._zombie_deaths["zomboss1"][0] = %hamerwalk;
level._zombie_deaths["zomboss1"][1] = %hamerwalk;
level._zombie_deaths["zomboss1"][2] = %hamerwalk;
level._zombie_deaths["zomboss1"][3] = %hamerwalk;

/*
ground crawl
*/

if( !isDefined( level._zombie_rise_anims ) )
{
level._zombie_rise_anims = [];
}

// set up the arrays
level._zombie_rise_anims["zombie"] = [];

//level._zombie_rise_anims["zombie"][1]["walk"][0] = %ai_zombie_traverse_ground_v1_crawl;
level._zombie_rise_anims["zombie"][1]["walk"][0] = %ai_zombie_traverse_ground_v1_walk;

//level._zombie_rise_anims["zombie"][1]["run"][0] = %ai_zombie_traverse_ground_v1_crawlfast;
level._zombie_rise_anims["zombie"][1]["run"][0] = %ai_zombie_traverse_ground_v1_run;

level._zombie_rise_anims["zombie"][1]["sprint"][0] = %ai_zombie_traverse_ground_climbout_fast;

//level._zombie_rise_anims["zombie"][2]["walk"][0] = %ai_zombie_traverse_ground_v2_walk; //!broken
level._zombie_rise_anims["zombie"][2]["walk"][0] = %ai_zombie_traverse_ground_v2_walk_altA;
//level._zombie_rise_anims["zombie"][2]["walk"][2] = %ai_zombie_traverse_ground_v2_walk_altB;//!broken

// ground crawl death
if( !isDefined( level._zombie_rise_death_anims ) )
{
level._zombie_rise_death_anims = [];
}

level._zombie_rise_death_anims["zombie"] = [];

level._zombie_rise_death_anims["zombie"][1]["in"][0] = %ai_zombie_traverse_ground_v1_deathinside;
level._zombie_rise_death_anims["zombie"][1]["in"][1] = %ai_zombie_traverse_ground_v1_deathinside_alt;

level._zombie_rise_death_anims["zombie"][1]["out"][0] = %ai_zombie_traverse_ground_v1_deathoutside;
level._zombie_rise_death_anims["zombie"][1]["out"][1] = %ai_zombie_traverse_ground_v1_deathoutside_alt;

level._zombie_rise_death_anims["zombie"][2]["in"][0] = %ai_zombie_traverse_ground_v2_death_low;
level._zombie_rise_death_anims["zombie"][2]["in"][1] = %ai_zombie_traverse_ground_v2_death_low_alt;

level._zombie_rise_death_anims["zombie"][2]["out"][0] = %ai_zombie_traverse_ground_v2_death_high;
level._zombie_rise_death_anims["zombie"][2]["out"][1] = %ai_zombie_traverse_ground_v2_death_high_alt;

//taunts
if( !isDefined( level._zombie_run_taunt ) )
{
level._zombie_run_taunt = [];
}
if( !isDefined( level._zombie_board_taunt ) )
{
level._zombie_board_taunt = [];
}
level._zombie_run_taunt["zombie"] = [];
level._zombie_board_taunt["zombie"] = [];

//level._zombie_taunt["zombie"][0] = %ai_zombie_taunts_1;
//level._zombie_taunt["zombie"][1] = %ai_zombie_taunts_4;
//level._zombie_taunt["zombie"][2] = %ai_zombie_taunts_5b;
//level._zombie_taunt["zombie"][3] = %ai_zombie_taunts_5c;
//level._zombie_taunt["zombie"][4] = %ai_zombie_taunts_5d;
//level._zombie_taunt["zombie"][5] = %ai_zombie_taunts_5e;
//level._zombie_taunt["zombie"][6] = %ai_zombie_taunts_5f;
//level._zombie_taunt["zombie"][7] = %ai_zombie_taunts_7;
//level._zombie_taunt["zombie"][8] = %ai_zombie_taunts_9;
//level._zombie_taunt["zombie"][8] = %ai_zombie_taunts_11;
//level._zombie_taunt["zombie"][8] = %ai_zombie_taunts_12;

level._zombie_board_taunt["zombie"][0] = %ai_zombie_taunts_4;
level._zombie_board_taunt["zombie"][1] = %ai_zombie_taunts_7;
level._zombie_board_taunt["zombie"][2] = %ai_zombie_taunts_9;
level._zombie_board_taunt["zombie"][3] = %ai_zombie_taunts_5b;
level._zombie_board_taunt["zombie"][4] = %ai_zombie_taunts_5c;
level._zombie_board_taunt["zombie"][5] = %ai_zombie_taunts_5d;
level._zombie_board_taunt["zombie"][6] = %ai_zombie_taunts_5e;
level._zombie_board_taunt["zombie"][7] = %ai_zombie_taunts_5f;
}

[/noae]

dont use this set up your own your default zom anims might not be the same

and you need to call this on your zombie with custom anims

[noae]
Code Snippet
Plaintext
self maps\_zombiemode_spawner:zombie_spawn_init("zomboss1");
self maps\_zombiemode_spawner_boss::zombie_think();
self maps\_zombiemode_spawner_boss::zombie_setup_attack_properties();
self maps\_zombiemode_spawner_boss::find_flesh();
[/noae]

where it says "zomboss1" is the anima set that will play on that zombie after spawn

and when you make the walk and run anime in maya if that is how your doing it on frame 0 save frame
go to the last frame in the anime move modal forward on x axes save frame this will make the zombie walk or run how fast they move depends on how fare forward you moved the modal on the x axis  need more help pm me

 
Loading ...