Game Modding | Call of Duty: Black Ops 3 | Models & Animation
ModmeBot:
Thread By: jasonhuangz2002
hi guys,
I recently started to make a custom map in BO3 and i ported some zombie models from advanced warfare following uptownpapi25's tutorial vid and then made custom zombie variants following uptownpapi25's tutorial vid (i made zombie variants from the models ported from advanced warfare and zombie variants from models that was included in the black ops 3).
I compiled and ran my map. zombie variants made from models that was included in the black ops 3 was fine (normal running animations). zombie variants from the models ported from advanced warfare has a wierd running animation where the body is bent at a 90 degress angle forward at the waist.
Does anyone know how to fix this problem or has ran into this problem as well?
ModmeBot:
Reply By: mathfag
I have never ported from AW but my guess is that the zombies have a different bone structure (you'll get the same issue if you try to play zombie animations on the player models in maya and I'm guessing in game). Basically you'll also need to port anims and make a animation map table .ai_am in bo3/share/raw/animtables/custom_zombie.ai_am. Then assign the table in the archetype in APE. The rest should be able to stay the same as long as the first section in the file stays the same.
should look like this (nsz brutus ai_am)
STAYS THE SAME,NEW ANIMATION
STAYS THE SAME,NEW ANIMATION
anim_zombie_brutus_melee,brutus_swing
anim_zombie_brutus_death,brutus_death
anim_zombie_taunt,brutus_run
and of course add the anims in the zone file
ModmeBot:
Reply By: jasonhuangz2002
thanks mathfag
i looked everywhere is there a video tutorial on how to port anims and make a animation map table .ai_am in bo3/share/raw/animtables/custom_zombie.ai_am. and then assign the table in the archetype in APE?
if not would u mind walking me through it?
i have wraith, would i need maya for this?
thanks
ModmeBot:
Reply By: mathfag
jasonhuangz2002
thanks mathfag i looked everywhere is there a video tutorial on how to port anims and make a animation map table .ai_am in bo3/share/raw/animtables/custom_zombie.ai_am. and then assign the table in the archetype in APE? if not would u mind walking me through it? i have wraith, would i need maya for this? thanks
ModmeBot:
Reply By: eDeK
I have exported from bo2 a "spawn/get up zombie anim", in APE the anim works fine but in what line i need add the "ai_zombie_traverse_ground_v2_walk_alta" inside my file ".ai_am"?
Or i need to do other thing...
ModmeBot:
Reply By: mathfag
eDeK
I have exported from bo2 a "spawn/get up zombie anim", in APE the anim works fine but in what line i need add the "ai_zombie_traverse_ground_v2_walk_alta" inside my file ".ai_am"? Or i need to do other thing...
ModmeBot:
Reply By: eDeK
I added the anim "ai_zombie_traverse_ground_v2_walk_alta" in this line because you say dont care where:
anim_zombie_barricade_ad_l,ai_zombie_base_walk_ad_win_trav_l_v1,ai_zombie_traverse_ground_v2_walk_alta
Im using:
zm_genesis_zombie.ai_bt
zm_genesis_zombie.ai_asm
zm_genesis_zombie.ai_ast
zm_genesis_zombie.ai_am
ModmeBot:
Reply By: mathfag
eDeK
I added the anim "ai_zombie_traverse_ground_v2_walk_alta" in this line because you say dont care where: anim_zombie_barricade_ad_l,ai_zombie_base_walk_ad_win_trav_l_v1,ai_zombie_traverse_ground_v2_walk_alta I compile the map and the mod tools convert the anim, but the zombies dont use the anim to "Appear from the ground". Im using: zm_genesis_zombie.ai_bt zm_genesis_zombie.ai_asm zm_genesis_zombie.ai_ast zm_genesis_zombie.ai_am
animation_alias,anim1,anim2,anim3
ModmeBot:
Reply By: eDeK
The anim:
https://www.twitch.tv/videos/338142398
share\raw\animtrees
anim_zombie_ground_spawn
{
ai_zombie_traverse_ground_v2_walk_alta
}
rawfile,animtrees/anim_zombie_ground_spawn.atr
xanim,ai_zombie_traverse_ground_v2_walk_alta
In the botom of the file...
anim_zombie_ground,ai_zombie_traverse_ground_v2_walk_alta
void,void
#precache("xanim", "ai_zombie_traverse_ground_v2_walk_alta");
#using_animtree("anim_zombie_ground_spawn");
zm_spawner::do_zombie_rise( &dracula_spawn );
function dracula_spawn()
{
self endon("death");
self AnimScripted( "rise_anim", self.origin, self.angles, "ai_zombie_traverse_ground_v2_walk_alta" );
self zombie_shared::DoNoteTracks( "rise_anim", &zombie_utility::handle_rise_notetracks, spot );
}
Thanks for reply.
ModmeBot:
Reply By: mathfag
eDeK
The anim: https://www.twitch.tv/videos/338142398 My file "anim_zombie_ground_spawn.atr": share\raw\animtrees anim_zombie_ground_spawn { ai_zombie_traverse_ground_v2_walk_alta } My zone file: rawfile,animtrees/anim_zombie_ground_spawn.atr xanim,ai_zombie_traverse_ground_v2_walk_alta My "zm_genesis_zombie.ai_am": In the botom of the file... anim_zombie_ground,ai_zombie_traverse_ground_v2_walk_alta void,void My GSC: #precache("xanim", "ai_zombie_traverse_ground_v2_walk_alta"); #using_animtree("anim_zombie_ground_spawn"); zm_spawner::do_zombie_rise( &dracula_spawn ); function dracula_spawn() { self endon("death"); self AnimScripted( "rise_anim", self.origin, self.angles, "ai_zombie_traverse_ground_v2_walk_alta" ); self zombie_shared::DoNoteTracks( "rise_anim", &zombie_utility::handle_rise_notetracks, spot ); } What im forgetting or doing wrong? Thanks for reply.
level.custom_riseanim = %ai_zombie_traverse_ground_v2_walk_alta;
if( isdefined( level.custom_riseanim ) )
{
self AnimScripted( "rise_anim", self.origin, spot.angles, level.custom_riseanim );
}
else if( isdefined( level.custom_rise_func ) )
{
self [[ level.custom_rise_func ]]( spot );
}
else
{
self AnimScripted( "rise_anim", self.origin, spot.angles, "ai_zombie_traverse_ground_climbout_fast" );
}
ModmeBot:
Reply By: eDeK
Thanks Mathfag, works perfect dude!
https://www.twitch.tv/videos/338580327
% = Crash the game
" " = Works perfect.
function new_spawn()
{
while(1)
{
if( RandomInt( 100 ) > 52.3 )
{
level.custom_riseanim = "ai_zombie_traverse_ground_v2_walk_alta";
}
else
{
level.custom_riseanim = "ai_zombie_traverse_ground_climbout_fast";
}
wait(1);
}
}
ModmeBot:
Reply By: Harry Bo21
function new_spawn()
{
while( 1 )
{
n_random = RandomInt( 3 );
if ( n_random == 0 )
{
level.custom_riseanim = "ai_zombie_traverse_ground_v2_walk_alta";
}
else if ( n_random == 1 )
{
level.custom_riseanim = "ai_zombie_traverse_ground_climbout_fast";
}
else
{
level.custom_riseanim = "ai_zombie_traverse_ground_climbout_fast";
}
wait 1;
}
}
ModmeBot:
Reply By: eDeK
Thanks!