[1.10] TUTORIAL: Matching New Monster Animations to an AI

This is the place to discuss all issues relating to the manipulation of graphics/animations, sounds, music and cinematics within Diablo 2.

Moderators: Necrolis, Nefarius

Post Reply

1
100%
 
Total votes: 1

User avatar
I_Burner
Posts: 38
Joined: Tue Sep 09, 2003 4:19 am

[1.10] TUTORIAL: Matching New Monster Animations to an AI

Post by I_Burner » Sun Jun 06, 2004 9:44 pm

A frequent source of trouble for modders attempting to add new monster animations to the game is attempting to find the right AI to use with them. A wrong AI choice can leave you with a monster that disappears when trying to use missing animation modes, or otherwise does not work properly. Here, I will layout some quick tips for picking an AI to match your animations, as well as a very easy technique for making any monster animation work with any AI. This tutorial was written for use with D2:LoD v1.10.

Files needed:
- animdata.d2
- monstats2.txt
- skills.txt (may not always be needed)
- DCC and COF files, with animdata entries (a new token plugin is usually easiest to work with)

Tools needed:
- animdata_edit
- COFEDIT (may not always be needed)
- spreadsheet editor of your choice

Reccommended reading:
- Diablo II Animation Conversion Extended Tutorial
- Adding New Monsters with New Tokens
- Creating a New Token from Existing DCC animations
- Monster Sequence Tutorial


Picking an AI (Basic):
The first topic we will look at is simply how to pick an AI that will work with an animation you are trying to add to the game. First, take a look at the animation files you have chosen, and take note of what modes they have (“A1”, “A2”, “GH”, etc). One way to pick an AI that will work is to simply open up monstats2.txt, scroll over to the columns “mDT” through “mRN”, and scroll through the file to find monsters that have a “1” in every mode that your animations possess. To make this a little easier, I have compiled a list of most of the useful AIs and the animation modes that they make use of (included at the end of this tutorial).
There are a few things to keep in mind when using this method. A few of the modes listed in monstats2 don’t actually refer to files, namely “KB” and “SQ”. “KB” denotes if the monster is affected by knockback, and “SQ” shows that the monster has one or more skills that use a sequence from monseq.txt. Depending on the skills you want your new monster to use, you may have some flexibility here. Many AIs are for monsters that are summoned or resurrected at some point, which may either use a sequence, an “S1” animation mode, or a combination of both. If your new monster is not going to make use of this ability, you can ignore those modes (be sure to clear these columns in the monstats2 row you will be using). Also, some skills can be used with several modes. Some will let you interchange modes like “S1”, “SC”, or “A2”. Others, like Nest, only seem to accept sequences or a specific mode. Take a look in skills.txt at the columns “anim”, “seqtrans”, and “monanim”. These can give you some clues about what modes the game typically accepts if you are having trouble with this. Also, check out kingpin’s excellent tutorial on monster sequences to learn how to make sequences for your monsters.


Matching an Animation to an AI (Advanced):
OK, so you’ve tried using the basic method, but you really had your heart set on using a specific AI and your animation just won’t work with it. Fear not! You can clone existing animation modes to make up for ones you are missing, and it’s really quite easy to do. Lets say your chosen AI uses a run animation, but your new monster doesn’t have one. You can fix this very easily by making copies of your “WL” DCCs and COFs and renaming them. Then, using animdata_edit, copy the WL entry for the token you are using to a new row, and change “WL” to “RN”. Make sure “mRN” has a “1” in it in the monstats2 row this monster will use. Simple, isn’t it? This will work for any of the other animation modes, but does have an extra consideration for attack and cast modes. Modes like “A1”, “A2”, “SC”, etc. typically have triggers set in their COFs and animdata entries. In order to make sure any modes like this that you create by cloning work properly, always start with another mode that uses an event trigger. It is also very important NOT to create a death animation (“DT”) from a mode with a trigger in it, as this results in an invincible, auto-resurrecting enemy (although some of you might want such a thing).
Lastly, remember that if for any reason you want to add or remove a trigger from an animation mode, you must create a new COF file for it. For example, if you want to use an “NU” mode as the basis for a new “SC”, you can’t just rename the files and entries as there is no information contained in the “NU” mode to tell the game when to actually cast the skill. In your new SC animdata line, place a “1” or “2” in the frame you want to use as your trigger. Now, use COFEDIT to generate a new COF based on your new “SC” animation, with the appropriate trigger and frame set in the COFEDIT .ini file (or edit the COF files manually with a hex editor, if you prefer).

Well, that should about cover it! As always, happy modding!


AI/Animation Mode Reference Chart

For your convenience, I have compiled a list of animation modes used by most of the monster AI choices.

AbyssKnight - DT,NU,WL,DD,GH,A1,S1,S3
Ancient - DT,NU,WL,DD,GH,BL,A1,A2,SC,S1
Andariel - DT,NU,WL,DD,GH,A1,SC
Arach - DT,NU,WL,DD,GH,A1,A2
ArcaneTower - DT,NU,DD,A1
AssassinSentry - DT,NU,DD,S1,S2
BaalCrab - DT,NU,WL,DD,A1,A2,SC,S1,S2,S3
BaalCrabClone - DT,NU,WL,DD,A1,A2,SC,S1,S2,S3
BaalMinion - DT,NU,WL,DD,GH,A1,A2
BaalTentacle - DT,NU,DD,GH,A1,S1(summon)
Baboon - DT,NU,WL,DD,GH,A1,A2
BatDemon - DT,NU,WL,DD,GH,A1,S2,S3,S4
Bighead - DT,NU,WL,DD,GH,A1,A2
BladeCreeper - DT,NU,WL,DD,S1
Bloodhawk - DT,NU,WL,DD,GH,A1
BloodLord - DT,NU,WL,DD,GH,A1,A2
BloodRaven - DT,NU,WL,DD,GH,A1,S1,RN
BoneWall - DT,NU,DD,GH,S1(summon)
Brute - DT,NU,WL,DD,GH,A1,A2
Catapult - DT,NU,DD,A1
ClawViper - DT,NU,WL,DD,GH,A1,A2
ClawViperEx - DT,NU,WL,DD,GH,A1,A2
CorruptArcher - DT,NU,WL,DD,GH,A1,RN
CorruptLancer - DT,NU,WL,DD,GH,A1,RN
CorruptRogue - DT,NU,WL,DD,GH,A1,BL,RN
CycleOfLife - DT,NU,WL,DD,A1,S1
DeathMauler - DT,NU,WL,DD,GH,A1,A2
DeathSentry - DT,NU,DD,S1,S2
DesertTurret - DT,NU,DD,A1
Diablo - DT,NU,WL,DD,A1,A2,BL,SC,S1,S2,S3,S4,RN
DoomKnight - DT,NU,WL,DD,GH,A1,BL,S3
DruidBear - DT,NU,WL,DD,GH,A1,A2,S1
DruidWolf - DT,NU,WL,DD,GH,RN,A1,A2,S1
Duriel - DT,NU,WL,DD,GH,A1,A2
ElementalBeast - DT,NU,WL,DD,S1
EvilHole - DT,NU,DD,S3,S4
Fallen - DT,NU,WL,DD,GH,A1,A2,BL,S1(raise),S2(taunt)
FallenShaman - DT,NU,WL,DD,GH,A1,A2
Fetish - DT,NU,WL,DD,GH,A1
FetishBlowgun - DT,NU,WL,DD,GH,A1
FetishShaman - DT,NU,WL,DD,GH,A1,SC
Fingermage - DT,NU,WL,DD,GH,A1,S1
FlyingScimitar - DT,NU,WL,DD,GH,A1,S1(summon)
FrogDemon - DT,NU,WL,DD,GH,A1,A2,S1(emerge)
FrozenHorror - DT,NU,WL,DD,GH,A1,A2
FoulCrowNest - DT,NU,S1,DD
GargoyleTrap - DT,NU,DD,GH,A1
Goatman - DT,NU,WL,DD,GH,A1
GreaterMummy - DT,NU,WL,DD,GH,A1,A2,SC
Griswold - DT,NU,WL,DD,A1
HighPriest - DT,NU,WL,DD,GH,A1,S1
Hydra - DT,NU,DD,A1,S2
Imp - DT,NU,WL,DD,GH,A1,SC,S1,S2
Izual - DT,NU,WL,DD,GH,A1,SC
MaggotLarva - DT,NU,WL,DD,GH,A1,A2,S1(spawn)
MegaDemon - DT,NU,WL,DD,GH,A1,S1
Mephisto - DT,NU,WL,DD,GH,A1,A2
Minion - DT,NU,WL,DD,GH,A1,A2
Mosquito - DT,NU,WL,DD,GH,A1,A2
MosquitoNest - DT,NU,DD,S1
Mummy - DT,NU,WL,DD,GH,A1,A2,S1(raise)
NecroPet - DT,NU,WL,DD,A1,S1(summon)
Nihlathak - DT,NU,WL,DD,GH,A1,A2
NpcBarb - DT,NU,WL,DD,RN,A1,A2
OblivionKnight - DT,NU,WL,DD,GH,S1,S2,S3
Overseer - DT,NU,WL,DD,GH,A1,A2,S1,S2
PantherJavelin - DT,NU,WL,DD,GH,A1,BL
PantherWoman - DT,NU,WL,DD,GH,A1,BL
PinHead - DT,NU,WL,DD,GH,A1,A2
PutridDefiler - DT,NU,WL,DD,GH,A1,S1,S2
QuillMother - DT,NU,WL,DD,GH,A1
Quillrat - DT,NU,WL,DD,GH,A1,A2
Raven - DT,NU,WL,DD,A1,S1(summon)
ReanimatedHorde - DT,NU,WL,DD,GH,RN,A1,A2,S1(raise)
Regurgitator - DT,NU,WL,DD,GH,A1,A2,S1(eat)
SandLeaper - DT,NU,WL,DD,GH,A1,A2
SandMaggot - DT,NU,WL,DD,GH,A1,A2,S1(burrow)
SandMaggotQueen – DT,NU,S1,DD
Sandraider - DT,NU,WL,DD,GH,A1,A2
Sarcophagus – DT,NU,S1,DD
Scarab - DT,NU,WL,DD,GH,A1,A2
ShadowMaster - DT,NU,WL,DD,GH,BL,A1,A2,SC,S1,S2,S3,S4,RN
ShadowMasterNoInit - DT,NU,WL,DD,GH,BL,A1,A2,SC,S1,S2,S3,S4,RN
ShadowWarrior - DT,NU,WL,DD,GH,BL,A1,A2,SC,S1,S2,S3,S4,RN
SiegeBeast - DT,NU,WL,DD,GH,A1,A2
SiegeTower – DT,NU,GH,DD
Skeleton – DT,NU,WL,DD,GH,A1,A2,BL,S1(summon)
SkeletonBow - DT,NU,WL,DD,GH,A1,S1(summon)
SkeletonMage - DT,NU,WL,DD,GH,A1,A2,BL,S1(summon)
Smith - DT,NU,WL,DD,GH,A1
Succubus - DT,NU,WL,DD,GH,A1,S2
SuccubusWitch - DT,NU,WL,DD,GH,A1,S2
SuicideMinion - DT,NU,WL,DD,S1
Summoner - DT,NU,WL,DD,GH,S1,SC
Swarm - DT,NU,WL,DD,GH,A1
Tentacle - DT,NU,DD,GH,A1,S1(emerge)
TentacleHead - DT,NU,DD,GH,A1,S1(emerge)
ThornHulk - DT,NU,WL,DD,GH,A1,A2
Totem - DT,NU,WL,DD
TrappedSoul - DT,NU,DD,A1,A2,S1,S2,S3
Vampire - DT,NU,WL,DD,GH,A1,SC
VileDog - DT,NU,WL,DD,GH,A1
VileMother - DT,NU,WL,DD,GH,A1,S1
Vines - DT,NU,WL,DD,A1,S1(summon)
Vulture - DT,NU,WL,DD,GH,A1,S1,S2
WillOWisp - DT,NU,WL,DD,GH,A1,SC,S1(appear)
Wraith - DT,NU,WL,DD,GH,A1
ZakarumPriest - DT,NU,WL,DD,GH,A1,S1
ZakarumZealot - DT,NU,WL,DD,GH,A1,A2,RN
Zombie - DT,NU,WL,DD,GH,A1,A2,S1(summon),RN
Genesis Mod <link broken - new site coming soon>||Genesis Forum||Adding New Monster Tokens Tutorial

User avatar
I_only_pressed_Esc
Forum Regular
Angel
Posts: 630
Joined: Wed Jan 28, 2004 2:47 am
Location: In the darkest corners of your mind

Re: [1.10] TUTORIAL: Matching New Monster Animations to an A

Post by I_only_pressed_Esc » Mon Jun 07, 2004 10:30 pm

Hi I_Burner
I think you've missed out a few things that also need to be considered.
The aip collumns in monstats.txt and also monai.txt, this surely needs to referenced as it controls the monster.

I find that the fetish AI is one of the best (for me anyway) ;)
Custom health-mana bubbles. Custom loading video's. Custom Hireling graphics.
'Do what thou wilt shall be the whole of the Law'

User avatar
I_Burner
Posts: 38
Joined: Tue Sep 09, 2003 4:19 am

Re: [1.10] TUTORIAL: Matching New Monster Animations to an A

Post by I_Burner » Mon Jun 07, 2004 11:39 pm

I_only_pressed_Esc";p="177102" wrote:Hi I_Burner
I think you've missed out a few things that also need to be considered.
The aip collumns in monstats.txt and also monai.txt, this surely needs to referenced as it controls the monster.

I find that the fetish AI is one of the best (for me anyway) ;)
No. no, no. You've missed the whole point of this tutorial. This is how you can make ANY AI work for ANY animation! This is so you aren't always stuck with simple AIs like Fetish and Viledog, allowing you to unlock "tougher" AIs like BloodRaven.

The aip (AI Parameter) columns are solely for modifying how a particular AI behaves. Using the techniques I have laid out, your animations will work without ever touching these columns. Of course, these columns can alter your monster's behavior, but that's beyond the scope of this tutorial and has been covered elsewhere.

Monai.txt does nothing whatsoever. It's purely a reference chart for looking up what each aip column controls for the different AIs. It's great for when you want to modify an enemy's behavior, but that has nothing to do with this tutorial. Like I said, with these methods you don't have to do a darn thing with AI parameters if you don't want to.
Genesis Mod <link broken - new site coming soon>||Genesis Forum||Adding New Monster Tokens Tutorial

User avatar
I_only_pressed_Esc
Forum Regular
Angel
Posts: 630
Joined: Wed Jan 28, 2004 2:47 am
Location: In the darkest corners of your mind

Re: [1.10] TUTORIAL: Matching New Monster Animations to an A

Post by I_only_pressed_Esc » Tue Jun 08, 2004 4:18 pm

This is what I was meaning about the aip collumns in monstats.txt and using monai.txt, it will help to show what the AI is doing.

An example:
try switching the zombie AI to Bloodraven as they are almost similar, just by refering to the mTR collumns etc.
The zombie now tries to attack you from a distance. Bloodravens AI is mainly for keeping a distance and it doesn't show this in monai.txt as her entry is blank.
So you would have to use a monster that attacks from a distance ie: vampire or corrupt archer and not just any monster whose modes tally up with hers.
Custom health-mana bubbles. Custom loading video's. Custom Hireling graphics.
'Do what thou wilt shall be the whole of the Law'

User avatar
I_Burner
Posts: 38
Joined: Tue Sep 09, 2003 4:19 am

Re: [1.10] TUTORIAL: Matching New Monster Animations to an A

Post by I_Burner » Tue Jun 08, 2004 6:46 pm

You're still missing the point.

I didn't write a tutorial on how the aip columns work. I wrote a tutorial on how to match a new animation to an AI. It assumes that the modder already has some idea of how the AIs work. If someone doesn't know how to alter an AIs behavior, they will need to look elsewhere. It's been covered before, and has nothing to do with the techniques I've described.

You're example also covers a different topic. Changing the Zombie's AI to BloodRaven has absolutely nothing to do with trying to get a new animation to work with a chosen AI. Of course the Zombie will try to attack from a distance when set to to this AI. BloodRaven is a ranged AI. That's not reflected in monai.txt because it's not something that can be altered, ever. Still, since the animation modes match up, the Zombie does DISPLAY PROPERLY, and doesn't vanish (which is all my tutorial is concerned with). If you set a missile to the Zombie's A1 in monstats.txt, it will have no trouble attacking from a distance. But once again, that has nothing to do with my tutorial. If this tutorial was titled "How to make one monster act like another", this example might be relevant. But it's not.

Please stop and take a look at the subject line of this thread. Re-read the post. You're bringing up good information, but you're posting it in the wrong place.
Genesis Mod <link broken - new site coming soon>||Genesis Forum||Adding New Monster Tokens Tutorial

User avatar
I_only_pressed_Esc
Forum Regular
Angel
Posts: 630
Joined: Wed Jan 28, 2004 2:47 am
Location: In the darkest corners of your mind

Re: [1.10] TUTORIAL: Matching New Monster Animations to an A

Post by I_only_pressed_Esc » Wed Jun 09, 2004 11:29 am

Sorrrrrryyyyyyy, it seems severe lack of sleep has made me not take in things fully.
Thinking logically, it is quite clear and simple what you have done. Good tutorial.
Custom health-mana bubbles. Custom loading video's. Custom Hireling graphics.
'Do what thou wilt shall be the whole of the Law'

kyky1417
Posts: 7
Joined: Mon Apr 23, 2018 7:13 am

Re: [1.10] TUTORIAL: Matching New Monster Animations to an AI

Post by kyky1417 » Sun Jun 24, 2018 12:55 pm

hello can you help me make a new monster? for Diablo 2

Post Reply

Return to “Multimedia”