My idea is to have the ability to specify various types of animations as well as their frames and playback speed. Certain of these could then be used for automated control and others for more custom control. For example, you might have a function to load a list of animations from a file that might look as follows:
animIdle, "Idle 1", 0, 30, 100
animIdle, "Idle 2:, 31, 60, 100
animAttack, "Punch", 61, 100, 100
animAttack,"Kick", 101,150, 100
animAttack, "SloMo Kick", 101, 150, 50
Then you might do something like SetState(animIdle) and it would randomly choose between the possible idles or even cycle through them randomly. Same for attacks or walking, running, or whatever else you might have multiple possibilities for. You could also just specify them manually as well.
As an alternative to loading these from a file, you might be able to just add them one at a time in script as follows:
npc.AddAnimation(animIdle, "Idle 1", 0, 30, 100);
npc.AddAnimation(animIdle, "Idle 2", 31, 60, 100);
System Specs: OS - Windows 7 Home Premium 64-bit SP1, CPU - AMD Phenom II X4 945, 3.0Ghz, RAM - 8Gb DDR3, GFX Card - 2048MB NVIDIA GeForce GT 640, FPSC-R Version - Beta 1.0071