Infinity AnimationsYou can view this readme with a different layout if your browser supports alternate stylesheets.

(core component only)

I. About

This is a patch for Throne of Bhaal v26498 executables, allowing you to assign new creature and character animation slots.

II. Rules On Claiming Animation slots (read first!)

If you'd like to add your own animation to the game, please take the time to read and follow the guidelines outlined below. The process is very simple and should not take more than a few minutes. If everyone (that includes you) can stick to these guidelines, moderation or approval of claims will not be required.

I. Add only what you have, not what you might need.
Only make claims for animations that you already have implemented in the game. If you are in the process of developing for a mod, do NOT make claims in advance. Only finished content qualifies to be added.

II. Your content must be publicly available.
Only content that is publicly available qualifies for an animation slot. If your mod is still in development, either wait until it is released before claiming, or upload the animation(s) in question to add your entries. Ideally, your animation files should be available as a separate archive and linked to from the Infinity Animations forum, but this is not required as long as they are otherwise openly released (in this case, you implicitly grant permission to use and redistribute them in such context however). A download link to the files in question should be posted in either case.

III. Check for duplicates before you make a claim.
Especially where ported animations are concerned, someone else might already have added them to the game. Please do not clutter the available slots with duplicate entries that could be avoided.

IV. Only add animations that enrich the game.
This is not as clear-cut as the other rules, but the point stands. Ask yourself if your addition really adds anything to the game before making a claim. That is, 1:1 copies of current animations would most certainly not qualify, while a new animation subtype of an existing creature might. Joke entries (such as a jumping dot animation) might qualify in the context of an appropriate mod. Use common sense.

V. Make sure your content is as final as possible before adding it.
Smaller updates and fixes to your animations (or adding object animations, etc.) are generally okay, but please try to avoid making larger changes or complete replacements of entries you added. Just because you added them does not mean they are exclusively yours, or no one else will use them in their mods.

VI. Check your spelling and use clear descriptions.
Animation descriptors should be in legible English, and accurately describe the animation where possible. "PINK BEHOLDER, SMALL" would be a good description, "OBSERVATEUR ROSE PETIT" or "BEH_MEGAMOD 112" (even worse) would not be desirable. Proper names such as "FALL FROM GRACE" are fine.

If you've read and understood these guidelines and feel your claim qualifies read on in the next section. v

III. Using the Reference Picker

It is highly recommended to use the supplied tool to add an animation entry. While it is possible to manually add entries, the current version of this tool is not great at recovering defective entries (which can easily occur when manually editing). Inaccurate list entries may lead to incompatibilities or conflicts that could affect other mods, potentially leading to a situation where it will have to be reverted to a pre-bugged state, animations re-added, etc.

As such, this section will cover the assisted method of adding animations using the IA Reference Picker.

IV. Adding an Animation Entry

This is a step-by-step overview of the process.

Step 1: Run the supplied tool from your install location of choice (see above)
You should now see the main window (AnimID picker), giving you the clear text options of claiming an animation, browsing the current IDs, or opening the reference chart. Opening the reference chart will give you an overview of the supported animation slot types (where p stands for paletted, np stands for not paletted and pnp for both). If you are unsure about your animation type or would like to have the reference at hand, now would be a good time to open it.

Step 2: Click on 'claim an animation'
You should now get a large-ish text field prompting you to get the current animation list. It would be a very good idea to in fact do so.

Step 3: Get the current list from the forums
Go to the Infinity Animations forum and open the pinned Animation Listings topic. This hyperlink should take you to the thread directly. Find the last post in the topic. It should contain a codebox listing animation slots, looking sort of like this:

0x100d	ĆAM 	ANNAH                             	LARGE  5 Lt  BGI MONSTER LONG 4 PART unpaletted
0x100e	ĆAN 	EMPTY                             	LARGE  5 Lp  BGI MONSTER LONG 4 PART unpaletted
0x100f	ĆAO 	PINK BEHOLDER, SMALL              	LARGE  5 Lx  BGI MONSTER LONG 4 PART unpaletted
0x1010	ĆAP 	EMPTY                             	LARGE  5 Lp  BGI MONSTER LONG 4 PART unpaletted
0x1011	ĆAQ 	-----                             	LARGE  5 Lx  BGI MONSTER LONG 4 PART unpaletted
0x1012	ĆAR 	EMPTY                             	LARGE  5 Lp  BGI MONSTER LONG 4 PART unpaletted
0x1013	ĆAS 	THIS IS AN EXAMPLE                	LARGE  5 Lx  BGI MONSTER LONG 4 PART unpaletted

Copy the *entire list* (this is important), including all EMPTY and ----- entries, up to the last symbol (i.e. make sure you didn't forget to select the last 'd' of unpaletted of the last entry or anything like that) and paste it into the text field.

Click 'Continue' to proceed. You should see a progress window while the list is being processed.

Step 4: Choose animation slot type
If you didn't get an error so far, chances are the list is not bugged, which is a good sign. You should now have a window with loads of buttons, listing the different animation slot types available for addition. At this point you should be *absolutely certain* of the type of slot you need for your animation (it can't be changed later). Consult the reference chart (see above) if in doubt.

Click the appropriate button to proceed.

Step 5: Select animation sub-properties
You should now see a window called Almost there.... Here you can choose the specifics of your animation from available options, including foot circle size and subtype (commonly unpaletted or paletted, more for character slots) and whether your animation needs a paperdoll.

Important: Your animation will only need a paperdoll if your creature is joinable or can be polymorphed into. If this is not the case, please set this option to 'no', which is the default setting. Doing so will preserve open slots for other animations. Only set this to 'yes' if it is absolutely vital to have a correct paperdoll.

Note that only available options are listed (so IWD slots will only give you the 'unpaletted' subtype, for instance). Click 'Go' after you have made your choices.

Almost all combinations of the given options are supported. If you pick a combination that is not available, or all slots of the given type are claimed, you will be informed that no matching slot could be found and the program will terminate (you will have to go through the above process again).

Step 6: Confirm
If you picked a valid configuration, the search progress bar should interrupt to show the Verify window, which will show you detailed informations about the candidate matching your criteria picked out for you. Verify that the given animation type, subtype, foot circle size and paperdoll options are correct. If they are, proceed with 'OK'. (If they are not, cancel and repeat the above steps.)

Step 7: Enter a name
Enter a descriptive identifier for your animation (see the naming guidelines above). Once again, click OK to proceed. You should now see a progress bar as the tool prepares the new list.

Step 8: Last but not least, the most important step of them all
You should now see a window called New List (do not edit), along with a smaller window below it listing valid ANIMATE.IDS and ANISND.IDS entries for your animation. Ignore these for now.

In the larger window you should see a list similar to the one you copied and pasted before. In all cases the list should contain more entries than it did before. For our example, let's say it looked like this:

0x100d	ĆAM 	ANNAH                             	LARGE  5 Lt  BGI MONSTER LONG 4 PART unpaletted
0x100e	ĆAN 	EMPTY                             	LARGE  5 Lp  BGI MONSTER LONG 4 PART unpaletted
0x100f	ĆAO 	PINK BEHOLDER, SMALL              	LARGE  5 Lx  BGI MONSTER LONG 4 PART unpaletted
0x1010	ĆAP 	EMPTY                             	LARGE  5 Lp  BGI MONSTER LONG 4 PART unpaletted
0x1011	ĆAQ 	-----                             	LARGE  5 Lx  BGI MONSTER LONG 4 PART unpaletted
0x1012	ĆAR 	EMPTY                             	LARGE  5 Lp  BGI MONSTER LONG 4 PART unpaletted
0x1013	ĆAS 	THIS IS AN EXAMPLE                	LARGE  5 Lx  BGI MONSTER LONG 4 PART unpaletted
0x683d	˘A˘A	PISCATA ROSEA                     	NORMAL 3 Ct  CHARACTER BGII WQL paletted

You need to copy and post this complete list to the Animation Listings thread on the Infinity Animation forums. Here is the hyperlink again, for your convenience. To facilitate doing so, below the listing you will find a 'Copy to clipboard' button. If you click it, its text should change to *copied* and the above list content should be ready to be pasted into the thread in your clipboard (note that this will erase your current clipboard).

In order to preserve the formatting and keeping it from looking like a mess, paste the content into [codebox] [/codebox] tags. Preview your post. If your post accurately matches the list displayed in the New List (do not edit) window, submit it. Don't forget to upload your animation set and post it in the content thread if it isn't yet available.

Congratulations, you have just claimed an animation entry!

Other things you might want to notice before hitting 'Done!'
On the top of the window you should see a progress bar indicating the percentage of completely free animation entries available (so you don't feel bad about taking up animation entry space (: ). To the right of it is a button called 'batch rename files'.

You can use this button to do exactly what the label suggests. Upon clicking it, you will be able to navigate to a directory (you will be offered the last chosen directory by default). Ideally this should be a subfolder containing just your animation files with their old prefix (e.g. MBEG).

You will then be asked to enter the animation's current identifier (e.g. MBEG). All files matching the entered prefix in the selected folder will be renamed to fit the newly added animation entry (in the above example, ˘A˘A). The button will indicate the number of files renamed during the process.

When you're finished with everything else, you can copy or note down the ANIMATE.IDS and ANISND.IDS from the small window below. These are the entries you're going to want in your .ids files so your animation slots show up properly in Near Infinity and other tools. If you are building an installer for your mod, you might find the WeiDU output more useful (click the appropriate button) to have them added to the game .ids files.

Hitting Done! will quit the program.

On total conversions
If you are modding in the context of a total conversion with no links to the original game/other mods you may skip the entire process above and keep track of your own set of references of course. Such references should not be posted in the animation listing.

V. Sound Information

Every animation slot has a few standard sounds assigned to it (walking noises, etc.). For the sake of simplicity these are all linked to existing animation slot information so, for instance, any IWD type slot added will have the same soundset. Where this is undesirable, you can change the sounds by creating a 2DA file named as the identifier of the animation (i.e. ˘A˘A.2DA for our piscata rosea animation above). You can use one of the existing ones (e.g. MAIR.2DA) as a template.

VI. Browsing Existing IDs

The Reference Picker also allows you a more detailed overview of the currently implemented animations.

To access it, select browse the current IDs from the main window.

You will be asked for the current animation list. Follow the instructions under Step III of "Adding an Animation Entry" (it is exactly the same).

After the list has updated and been processed, you should be presented with the Information window. The bar at its top indicates the animation slot usage, displaying the percentage of free, partially free and taken animation slots.

Partially free animation slots are available for animations with the limitation that they cannot have their own paperdoll (this is because some different animation slot types can coexist, but would have conflicting paperdoll files).

To the right is a list of all animations that have been added in the scope of this mod (you might have to click on one to initialise the information). It is listed by identifier and description name. In the centre of the window, the corresponding details will be listed, while on the far left a list of all files this animation slot occupies can be found.

The reference browser also supports preview icons of the slotted animations. To have them show up in the window, place a .gif file named as the slot ID in the preview/ directory (i.e. the animation ID 0x1001 would look for 0x1001.gif). The icon will show below the slot information.

Pressing 'Return' will close the information browser, returning to the main window.

Note: The hypothetical number of available slots is not actually Infinity, but well in the thousands, so don't be concerned if it shows 100% available even if some slots are used.

VII. Building .IDS files

Both from the ID browser and the new animation listing, you can build .ids files by clicking Build .IDS.

Doing so will not close the previous window or stop you from interacting with it. Instead, it will open a new window displaying complete .IDS files (each in their own tab) built from the original game animations and the list you entered in Step III.

BGII/IWD style
The ANIMATE.IDS listing allows you to toggle between Baldur's Gate II and Icewind Dale formatting for your own use. As the IDS is only a modding reference for NearInfinity or other related tools, it is up to personal taste whether you'd like to have list output matching standard BGII formatting (e.g. GOBLIN_AXE) or IWD's prettier spaced referencing (e.g. Goblin, Axe). Any installer output when adding animation entries will match BGII's standard format.

The setting is remembered.

VIII. Animation Slot Reference

This is the information shown in the reference chart, along with (eventually more) additional information. Note that BGII animations are limited to a size of 255x255 pixels -- if you need a larger animation you will have to use one of the 4-part or dragon slots. Note that this includes equipped objects: if the object plus base animation exceeds 255x255 pixels it will not display properly, or crash.

Baldur's Gate I types



⁂ BGI MONSTER LONG 4 PART
16 Directions unmirrored (10 + 6E)
G11 G11E G12 G12E G13 G13E G14 G14E // 16 Seq.
G21 G21E G22 G22E G23 G23E G24 G24E // 80 Seq.
G31 G31E G32 G32E G33 G33E G34 G34E // 48 Seq.

This is exactly the same as the BGI MONSTER LONG animation scheme, with each of G1, G2, and G3 split into four parts.

Examples: Large Wyvern, BGI Tanar'ri

⁂ BGI MONSTER LONG
16 Directions unmirrored (10 + 6E)
G1 G1E // 16 Seq.
G2 G2E // 80 Seq.
G3 G3E // 48 Seq.

Examples: Carrion Crawler, Small Wyvern

⁂ BGI SIMPLE CASTER (BOW)
8 Directions unmirrored (5 + 3E)
G1 G1E // 48 Seq.
G2 G2E // 24 Seq.

Optionally supports bow animations (BG1, BG1E, BG2, BG2E). Has casting animations.

Examples: Sirine

⁂ BGI SIMPLE CASTER (S1)
8 Directions unmirrored (5 + 3E)
G1 G1E // 48 Seq.
G2 G2E // 24 Seq.

Optionally supports sword animations (SG1, SG1E, SG2, SG2E). Has casting animations.

Examples: Ogre Mage

⁂ BGI ANKHEG (currently broken)
8 Directions unmirrored (5 + 3E)
G1 G1E // 32 Seq.
G2 G2E // 24 Seq.
G3 G3E // 16 Seq.
+D (ground effects below; DG1, DG1E...)

Currently not functional, will loop the idle animation for all sequences. (I figured it would not be the most popular type of animation slot, so this may or may not change soon.)

Examples: Ankheg

⁂ BGI SIMPLE MONSTER
8 Directions unmirrored (5 + 3E)
G1 G1E // 48 Seq.
G2 G2E // 24 Seq.

Note on paperdolls: These animation slots do support paperdolls, but their naming system might be inconsistent at this point. Try [ID]INV, [ID]0INV, [ID]1INV... one of these should work.

Same as the caster animations, but has extra attack animations instead of casting ones.

Examples: Werewolf

⁂ CHARACTER BGI
8 Directions unmirrored (5 + 3E)
A1 A1E A2 A2E A3 A3E A4 A4E A5 A5E A6 A6E SA SAE SX SXE // 8 Seq. (A1 has 16)
CA CAE // 62/64 Seq.
G1 G1E // 72 Seq.
W2 W2E // 8 Seq.
+ Armour Levels (4)
+ Arbitrary (originally WP) Object anim.
+ CSHD

Where CBGI is the animation identifier...
[CBGI][1]A1 (id + armour level 1-4)
[CBGI][1]INV
Objects are...
[BGI][S1]A1 (3 last letters of id + object id)
[BGI][S1]INV

Note that differing from other animation types equipping non-existent objects CRASHES for characters.

Keep in mind all BGI character animations display the CSHD shadow animation.

If you'd like to have an animation using existing object animations (e.g. because it's an edit of an existing animation), choose one of the CHARACTER BGI WPM/L/S animation slots with the desired size category.


Baldur's Gate II types



⁂ DRAGONS (XDR)
9 Directions mirrored
9 Animation parts
5 Animations (5: 1 split no base; 4: 2 split)

Animation + Part + Split + Direction

Where XDR1 is the identifier...
[XDR1][1][9][0][2] is the first animation, 9th part (bottom right corner), first split,facing south west (third direction).

Parts are arranged top left to bottom right.

⁂ BGII SPLIT
9 Directions mirrored
G1 G11 G12 G13 G14 G15 // 54 Seq.
G2 G21 G22 G23 G24 G25 G26 // 63 Seq.

You can add objects to these much as you would to characters. The object animations are unsplit, G1[ID] G2[ID]. As opposed to character slots, equipping a non-existent item does not crash. An item with the inventory appearance set to BW (Bow) would thus look for the animations G1BW, G2BW.

Examples: Solar, Troll

⁂ BGII SPLIT 4 PART
9 Directions mirrored
G11 G12 G13 G14 // 54 Seq.
G111 G121 G131 G141 // 54 Seq.
G112 G122 G132 G142 // 54 Seq.
G113 G123 G133 G143 // 54 Seq.
G114 G124 G134 G144 // 54 Seq.
G115 G125 G135 G145 // 54 Seq.

G21 G22 G23 G24 // 63 Seq.
G211 G221 G231 G241 // 63 Seq.
G212 G222 G232 G242 // 63 Seq.
G213 G223 G233 G243 // 63 Seq.
G214 G224 G234 G244 // 63 Seq.
G215 G225 G235 G245 // 63 Seq.
G216 G226 G236 G246 // 63 Seq.

This is essentially the same as the BGII SPLIT animation type, except split into four parts arranged as shown above.

Examples: Demogorgon

⁂ BGII UNSPLIT EXT.
9 Directions mirrored
G1 // 72 Seq.
G2 // 63 Seq.

An expanded variant of the BGII SPLIT animation type, with all sequences in one file rather than distributed. Supports object animations as well (see above).

Examples: Melissan, Death Tyrant

⁂ CHARACTER BGII
9 Directions mirrored
A1 A2 A3 A4 A5 A6 A7 A8 A9 SA SS SX // 9 Seq.
CA // 72 Seq.
G1 (not split) // 99 Seq.
+ Armour Levels (4)
+ Arbitrary (originally WQ) Object anim.

Where CBGT is the animation identifier...
[CBGT][1]A1 (id + armour level 1-4)
[CBGT][1]INV
Objects are...
[BGT][S1]A1 (3 last letters of id + object id)
[BPT][S1]INV (second character is forced to P!!)

^ This behaviour is due to BGII animations using WQ objects with WP paperdolls. It only applies to INV files. For the character slots this P will always fall on the second unique letter (µ or ˘, with the two identifying letters remaining intact.)

Note that differing from other animation types equipping non-existent objects CRASHES for characters.

This animation type differs from the one used for the original game files in that I've decided not to split the G animation series. It's exactly the same content, just kept in one file (see BGII SPLIT/BGII UNSPLIT). Essentially, if you'd like a duplicate or edit of a current character animation, you will have to join the G1 G11 G12... files into a single G1 file. This is done mainly to save override clutter (and makes it easier to create content to boot).

If you'd like to have an animation using existing object animations (e.g. because it's an edit of an existing animation), choose one of the CHARACTER BGII WQM/L/N/S animation slots with the desired size category.

IWD types



⁂ IWD
8 Directions unmirrored (5 + 3E)
A1 A1E A2 A2E A3 A3E A4 A4E // 5 Seq. 8 Seq. resp.
CA CAE // 5 Seq. 8 Seq. resp.
DE DEE // 5 Seq. 8 Seq. resp.
GH GHE // 5 Seq. 8 Seq. resp.
GU GUE // 5 Seq. 8 Seq. resp.
SC SCE // 5 Seq. 8 Seq. resp.
SD SDE // 5 Seq. 8 Seq. resp.
SL SLE // 5 Seq. 8 Seq. resp.
SP SPE // 5 Seq. 8 Seq. resp.
TW TWE // 5 Seq. 8 Seq. resp.
WK WKE // 5 Seq. 8 Seq. resp.

+ Object (SA1, MA1...)

IWD animations can coexist with a BGII SPLIT/UNSPLIT animation (which in turn can coexist with some 4 PART animations, etc.) for the same identifier as long as either of them does not need a paperdoll, in fact they often do so with the original game files.

Any type of object can be added to an IWD slot. However, the last character of the object id is stripped off (e.g. WH becomes W).

Equipping a non-existent object does not cause the game to crash, as it does with character animations.

Porting suggestions


⁂ Planescape Torment

PST animations generally have the following scheme:

5 Directions mirrored
AT1 AT2 // 5 Seq.
C2S // 5 Seq. (combat->idle)
CF1 // 5 Seq. (taunt)
(CF2)
DFB // 5 Seq. (fall)
GUP // 5 Seq. (get up)
HIT // 5 Seq. (hit)
S2C // 5 Seq. (idle->combat)
SF1 // 5 Seq. (stretch)
SP1 // 5 Seq. (spell)
SP2 // 5 Seq. (spell)
SP3 // 5 Seq. (spell)
(SP4)
STC // 5 Seq. (combat idle)
STD // 5 Seq. (idle normal)
TK1 // 5 Seq. (talk)
TK2 // 5 Seq. (talk)
TK3 // 5 Seq. (talk)
(TK4, TK5, TK6)

9 Directions mirrored
RUN // 9 Seq. (run)
WLK // 9 Seq. (walk)

This means PST animations should be ported into BGII UNSPLIT EXT. or BGII character type slots where possible, preserving most of their various non-combat animations and their extended walking / running directions. These would be lost porting to an IWD or BGI animation slot. Since they use five directions mirrored for most animation parts, you'll have to pad them to fit accordingly, and join them into G1 & G2 files with the sequences set up properly.

IX. Manual Install

To install without the provided WeiDU installer:
i. Exe patching is done via Colin Percival's freely available tools bsdiff/bspatch available here.
ii. Copy the .patch file (found in infinityanimations/patch) and bspatch to your game directory.
iii. From a command prompt enter something like:
bspatch BGMain.exe BGMain_patched.exe Infinity10010043.patch
iv. Run the game from BGMain_patched.exe, or rename it to BGMain.exe (be sure to keep the original executable just in case).



For the animation slot mapper:
extract the directory Reference Picker/ and its contents to any location.

The file anims.list is necessary for the tool to run. DO NOT MODIFY THIS FILE.

X. Version Changelog (core component only)

(r.10010043)
· fixed a bug with IWD animation slots in BGII

(r.09102252) update
· updated documentation and Reference Picker
· added alternate stylesheet ;)

(r.09102252)
initial release