Summary
Animation randomization is implemented, and the settings are added to the cosmetics view.
Implementation
Randomization is performed similar to other categories, using randomization levels, type and max lists, and some additional filtering to remove troublesome animations. Seven types of animations are used, aligning with several of the columns within the "animations" table: attack, damage, parry, movement, pause, looping, and various (fireforget). Walking and running were combined to create the movement type so there is more variety within that type. The other columns are ignored as they are handled by the others or by the filters.
Filters
To ensure the animations shuffled are usable, valid, and don't cause breaking issues within the normal course of play, several filters were implemented. To assist this process, the animation descriptions from Kotor 2's animations table were correlated to the Kotor 1 table.
First, any animations that were described as "Appears Unused" or had a blank description were filtered.
Next, any animation that has a duplicate name is removed, leaving only the first entry in the table.
Finally, when each type of animation is randomized, those that are used for creatures (monsters) are randomized and filtered beforehand.
Also, alignment stances are filtered beforehand to avoid getting stuck in place. (Other animations also seem to cause this issue. Further testing is required.)
User Interface
The animation rando settings were added to the Cosmetics view. Instead of adding a new box and pushing everything further down, I made Animations and Models share the same row, with the Models box on the right side of the page.
Summary Animation randomization is implemented, and the settings are added to the cosmetics view.
Implementation Randomization is performed similar to other categories, using randomization levels, type and max lists, and some additional filtering to remove troublesome animations. Seven types of animations are used, aligning with several of the columns within the "animations" table: attack, damage, parry, movement, pause, looping, and various (fireforget). Walking and running were combined to create the movement type so there is more variety within that type. The other columns are ignored as they are handled by the others or by the filters.
Filters To ensure the animations shuffled are usable, valid, and don't cause breaking issues within the normal course of play, several filters were implemented. To assist this process, the animation descriptions from Kotor 2's animations table were correlated to the Kotor 1 table.
User Interface The animation rando settings were added to the Cosmetics view. Instead of adding a new box and pushing everything further down, I made Animations and Models share the same row, with the Models box on the right side of the page.