Animation

Everything about development and the OpenMW source code.
Post Reply
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Animation

Post by Zini »

Here are my thoughts about integrating the animation code:

Low level data structure enhancements should go into the nif-related components. All other animation related code should go into the mwrender subsystem. Do not touch engine or any of the other components or subsystems!

NPCs and Creatures are different from other object types, because they are more complex and need to hold additional state while in the the OGRE scene. I propose the following design:

- an Animation base class; interface for a single actor
- a NpcAnimation class, derived from Animation; rendering of a single NPC
- a CreatureAnimation class; derived from Animation; rendering of a single Creature
- a Actors class, which replaces the current dummy classes Npcs and Creatures

The Actors class manages a list of Npc/CreatureAnimation objects. it should provide an interface similar to Objects. But instead of meshes and light the basic building blocks should be NPCs and Creatures (we already saw in the previous implementation attempt that it wasn't feasible to split these into more basic building blocks).

Once a Npc/CreatureAnimation object has been created and been placed in Actors' container, the Actors class should only manipulate these via the Animation interface.

Please note all of the Animation code should go into Npc/CreatureAnimations. Actors should not do more than manage these objects.

Currently we can't support clothing and armour. These features will have to wait until the world model has caught up with the rendering implementation (I consider implementing the world model part for 0.13.0).
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Animation

Post by Zini »

Forgot to add: Please create a new branch from my animation2 branch. It contains the animation script instructions that you can use for testing. See also the two new functions in the rendering manager.

A note about testing from the console: IDs of creatures (and I believe sometimes of NPCs too) aren't unique. When specifying an ID, OpenMW should usually prefer those references in the active cells. So as long as there is no more than one reference with the same ID in the active cells, you should not get any problems.
jhooks1
Posts: 780
Joined: 06 Aug 2011, 21:34

Re: Animation

Post by jhooks1 »

NPCs without clothing or armor are boring. Why can't we support clothing and armor? Clothing and armor work fine in the animation branch. I spent a lot of time getting robes to work, and I would like clothing/armor in .12

Is there a task I can do so we can support clothing and armor?

I don't know if you have done this already, but can you make a command to turn on animation for all creatures and npcs in a cell? Having to find the npc id may be annoying.
jhooks1
Posts: 780
Joined: 06 Aug 2011, 21:34

Re: Animation

Post by jhooks1 »

Also, if groupName is what I think it is, I don't have text parsing like that supported at this time. You can either play the whole animation file (which lasts about 6 minutes for npcs), or you can specify a start time index and an end time index.

Here is an excerpt from the indices text file I have the nif loader outputting (btw we should have a startup command to output the animation index files):
Time: 65.4|Idle7: Start
Time: 66.0667|Idle7: Loop Start
Time: 68.7333|Idle7: Loop Stop
Time: 70.7333|Idle7: Stop/

To play "Idle7:" you would have to specify the start index as "Idle7: Start" and the stop index as "Idle7: Stop/"


Some of the index names can be very large and obscure:
Time: 327.933|WeaponTwoWide: Chop Min Attack
Time: 328.067|WeaponTwoWide: Chop Max Attack
Time: 328.2|WeaponTwoWide: Chop Min Hit
Time: 328.4|WeaponTwoWide: Chop Hit/WeaponTwoWide: Chop Large Follow Start/
Time: 328.733|WeaponTwoWide: Chop Large Follow Stop/
Time: 328.8|WeaponTwoWide: Chop Medium Follow Start
Time: 329.133|WeaponTwoWide: Chop Medium Follow Stop//
Time: 329.2|WeaponTwoWide: Chop Small Follow Start
Time: 329.467|WeaponTwoWide: Chop Small Follow Stop//
Time: 329.533|WeaponTwoWide: Slash Start
Time: 329.667|WeaponTwoWide: Slash Min Attack
Time: 329.8|WeaponTwoWide: Slash Max Attack
Time: 329.933|WeaponTwoWide: Slash Min Hit
Time: 330.067|WeaponTwoWide: Slash Hit/WeaponTwoWide: Slash Large Follow Start
Time: 330.467|WeaponTwoWide: Slash Large Follow Stop
Time: 330.533|WeaponTwoWide: Slash Medium Follow Start
Time: 330.933|WeaponTwoWide: Slash Medium Follow Stop/

The slashes were new line characters in the original files. I chose slashes because it looks nicer and is easier to specify.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Animation

Post by Zini »

NPCs without clothing or armor are boring. Why can't we support clothing and armor?
Because our world model does not support equipping items yet. I haven't given any though on how to do this and I suspect it will be tricky to get right.
Also, we have no UI for actually equipping items and the NPC's inventories are empty on startup (filling them up according to the ESM/ESP records is slightly less easy than it sounds).
No way to get that working on short notice. I'll promise I look into it for 0.13, which should not be too far away with a bit of look.
I don't know if you have done this already, but can you make a command to turn on animation for all creatures and npcs in a cell? Having to find the npc id may be annoying.
I would prefer not to create new script instructions for now. Also, we need to run specific animations (see below), so a run all wouldn't cut it. You can easily look up the IDs in the CS or the UESPWiki.
Also, if groupName is what I think it is, I don't have text parsing like that supported at this time.
well, that is how MW works. And that is also how OpenMW will have to access the animation system.
jhooks1
Posts: 780
Joined: 06 Aug 2011, 21:34

Re: Animation

Post by jhooks1 »

Zini wrote:
NPCs without clothing or armor are boring. Why can't we support clothing and armor?
Because our world model does not support equipping items yet. I haven't given any though on how to do this and I suspect it will be tricky to get right.
Also, we have no UI for actually equipping items and the NPC's inventories are empty on startup (filling them up according to the ESM/ESP records is slightly less easy than it sounds).
No way to get that working on short notice. I'll promise I look into it for 0.13, which should not be too far away with a bit of look.
I have the animation branch accessing the npc's inventory and it works fine in the animation branch.
Zini wrote:
Also, if groupName is what I think it is, I don't have text parsing like that supported at this time.
well, that is how MW works. And that is also how OpenMW will have to access the animation system.
I don't know how you would do this on animations that contain more than just a "Stop" and "Start"

Time: 299.067|HandToHand: Equip Start
Time: 299.533|HandToHand: Equip Stop//
Time: 299.6|HandToHand: Slash Start
Time: 299.8|HandToHand: Slash Min Attack
Time: 299.933|HandToHand: Slash Max Attack
Time: 300|HandToHand: Slash Min Hit
Time: 300.133|HandToHand: Slash Hit
Time: 300.2|HandToHand: Slash Large Follow Start/
Time: 300.733|HandToHand: Slash Large Follow Stop/
Time: 300.8|/HandToHand: Slash Medium Follow Start/
Time: 301.267|/HandToHand: Slash Medium Follow Stop/
Time: 301.333|/HandToHand: Slash Small Follow Start
Time: 301.667|/HandToHand: Slash Small Follow Stop
Time: 301.733|HandToHand: Thrust Start
Time: 301.8|HandToHand: Thrust Min Attack
Time: 301.933|HandToHand: Thrust Max Attack
Time: 302.067|HandToHand: Thrust Min Hit
Time: 302.2|HandToHand: Thrust Hit
Time: 302.267|/HandToHand: Thrust Large Follow Start
Time: 302.667|/HandToHand: Thrust Large Follow Stop
Time: 302.733|/HandToHand: Thrust Medium Follow Start/
Time: 303.067|/HandToHand: Thrust Medium Follow Stop/
Time: 303.133|HandToHand: Thrust Small Follow Start/
Time: 303.4|HandToHand: Thrust Small Follow Stop/
Time: 303.467|HandToHand: Chop Start
Time: 303.6|HandToHand: Chop Min Attack
Time: 303.8|HandToHand: Chop Max Attack
Time: 304|HandToHand: Chop Min Hit
Time: 304.133|HandToHand: Chop Hit/
Time: 304.2|HandToHand: Chop Large Follow Start/
Time: 304.4|HandToHand: Chop Large Follow Stop/
Time: 304.467|/HandToHand: Chop Medium Follow Start/
Time: 304.733|/HandToHand: Chop Medium Follow Stop/
Time: 304.8|/HandToHand: Chop Small Follow Start
Time: 305|/HandToHand: Chop Small Follow Stop
Time: 305.067|HandToHand: Unequip Start
Time: 305.333|HandToHand: Unequip Stop

For Hand to Hand I see start, stop, hit, and attack

EDIT: Other endnames include - Release, Attach, Detach
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Animation

Post by Zini »

I have the animation branch accessing the npc's inventory and it works fine in the animation branch.
That is the inventory. Not the same as equipped items. Also, you are probably accessing the data structure in the ESX record, which is actually not the real inventory.
I don't know how you would do this on animations that contain more than just a "Stop" and "Start"
Not sure about that. Maybe these animations can't be run from a script. Would be useful to test it in the original MW game.
Are we talking about combat animations only? Maybe they are handled differently.
jhooks1
Posts: 780
Joined: 06 Aug 2011, 21:34

Re: Animation

Post by jhooks1 »

Zini wrote:
I have the animation branch accessing the npc's inventory and it works fine in the animation branch.
That is the inventory. Not the same as equipped items. Also, you are probably accessing the data structure in the ESX record, which is actually not the real inventory.
Ok, so it's not the real inventory or designated equipped. From the way I recall though, npcs would equip the items that give them the highest armor rating as soon as they get access to them. Isn't this a good enough temporary solution? It shouldn't be hard at all to change once we get a proper equipment inventory working.
Zini wrote:
I don't know how you would do this on animations that contain more than just a "Stop" and "Start"
Not sure about that. Maybe these animations can't be run from a script. Would be useful to test it in the original MW game.
Are we talking about combat animations only? Maybe they are handled differently.
It seems to be mostly combat, probing, and spell casting that is different from the standard start/stop/loop start/loop start. Maybe a modder may know what each one of these instructions does? Otherwise, to figure them out - we could put them in openmw, designate the start and stop points, set it to loop, and watch.

Here is the openmw output of base_anim

Code: Select all

Time: 0|Idle: Start
Time: 2.66667|Idle: Stop/
Time: 2.73333|Idle2: Start
Time: 4.53333|Idle2: Loop Start
Time: 16.8667|Idle2: Loop Stop
Time: 17.7333|Idle2: Stop/
Time: 29.7333|Idle3: Start
Time: 35.0667|Idle3: Stop/
Time: 35.4|Idle4: Start
Time: 40.7333|Idle4: Stop/
Time: 41.0667|Idle5: Start
Time: 46.4|Idle5: Stop/
Time: 46.4667|Idle6: Start
Time: 65.1333|Idle6: Stop
Time: 65.4|Idle7: Start
Time: 66.0667|Idle7: Loop Start
Time: 68.7333|Idle7: Loop Stop
Time: 70.7333|Idle7: Stop/
Time: 71.0667|Idle8: Start
Time: 72.4|Idle8: Loop Start
Time: 74.4|Idle8: Loop Stop
Time: 76.4|Idle8: Stop/
Time: 76.4667|Idle9: Start
Time: 83.1333|Idle9: Stop
Time: 83.4|Idlehh: Start/
Time: 86.0667|Idlehh: Stop
Time: 86.4|Idle1h: Start/
Time: 89.0667|Idle1h: Stop
Time: 89.4|Idle2c: Start
Time: 92.0667|Idle2c: Stop
Time: 92.4|Idle2w: Start
Time: 95.0667|Idle2w: Stop
Time: 95.1333|IdleSwim: Start
Time: 97.1333|IdleSwim: Stop
Time: 97.2|Torch: Start
Time: 99.8667|Torch: Stop
Time: 100|Hit1: Start/
Time: 100.333|SoundGen: Moan
Time: 101|Hit1: Stop/
Time: 101.067|Hit2: Start/
Time: 101.467|SoundGen: Roar
Time: 102.2|Hit2: Stop
Time: 102.267|Hit3: Start/
Time: 102.667|SoundGen: Scream
Time: 103.267|Hit3: Stop
Time: 103.333|Hit4: Start/
Time: 104.333|Hit4: Stop/
Time: 104.4|Hit5: Start/
Time: 104.8|SoundGen: Roar
Time: 105.4|Hit5: Stop
Time: 105.467|Death1: Start
Time: 107.133|Death1: Stop
Time: 107.2|Death2: Start
Time: 108.6|Death2: Stop
Time: 108.667|Death3: Start
Time: 109.133|SoundGen: Moan
Time: 110.867|Death3: Stop
Time: 110.933|Death4: Start
Time: 111.133|SoundGen: Scream
Time: 112.6|Death4: Stop/
Time: 112.667|Death5: Start
Time: 113|SoundGen: Roar
Time: 114.2|Death5: Stop
Time: 114.333|Knockdown: Start
Time: 117|Knockdown: Stop
Time: 117.067|Knockout: Start/
Time: 117.933|SoundGen: Land
Time: 118.067|Knockout: Loop Start/
Time: 118.8|Knockout: Loop Stop
Time: 120.4|Knockout: Stop
Time: 120.733|SwimDeath: Start
Time: 122.4|SwimDeath: Stop
Time: 122.733|SwimKnockout: Start
Time: 123.067|SwimKnockout: Loop Start/SwimDeathKnockout: Start/
Time: 126.4|SwimKnockout: Loop Stop/SwimDeathKnockout: Stop
Time: 126.733|SwimKnockout: Stop
Time: 127.067|SwimWalkForward: Start
Time: 127.4|SwimWalkForward: Loop Start
Time: 128.267|SoundGen: Left
Time: 128.733|SoundGen: Right
Time: 129.067|SwimWalkForward: Loop Stop
Time: 129.4|SwimWalkForward: Stop
Time: 129.467|SwimWalkBack: Start
Time: 129.8|SwimWalkBack: Loop Start
Time: 130.533|SoundGen: Right
Time: 131.4|SoundGen: Left
Time: 131.467|SwimWalkBack: Loop Stop
Time: 131.8|SwimWalkBack: Stop
Time: 131.867|SwimWalkLeft: Start
Time: 132.2|SwimWalkLeft: Loop Start
Time: 132.867|SoundGen: Right
Time: 133.533|SwimWalkLeft: Loop Stop/SoundGen: Left
Time: 133.867|SwimWalkLeft: Stop
Time: 133.933|SwimWalkRight: Start
Time: 134.267|SwimWalkRight: Loop Start
Time: 134.933|SoundGen: Left
Time: 135.6|SwimWalkRight: Loop Stop/SoundGen: Right
Time: 135.933|SwimWalkRight: Stop
Time: 136|SwimRunForward: Start
Time: 136.333|SwimRunForward: Loop Start
Time: 136.533|SoundGen: Left
Time: 136.867|SoundGen: Right
Time: 137.133|SoundGen: Left
Time: 137.333|SwimRunForward: Loop Stop/SoundGen: Right
Time: 137.667|SwimRunForward: Stop
Time: 137.733|SwimRunBack: Start
Time: 138.067|SwimRunBack: Loop Start
Time: 138.4|SoundGen: Right
Time: 138.733|SoundGen: Left
Time: 139.067|SoundGen: Right
Time: 139.4|SwimRunBack: Loop Stop/SoundGen: Left
Time: 139.733|SwimRunBack: Stop
Time: 139.8|SwimRunLeft: Start
Time: 140.133|SwimRunLeft: Loop Start
Time: 140.467|SoundGen: Right
Time: 141.133|SoundGen: Left
Time: 141.467|SwimRunLeft: Loop Stop
Time: 141.8|SwimRunLeft: Stop
Time: 141.867|SwimRunRight: Start
Time: 142.2|SwimRunRight: Loop Start
Time: 142.533|SoundGen: Left
Time: 143.2|SoundGen: Right
Time: 143.533|SwimRunRight: Loop Stop
Time: 143.867|SwimRunRight: Stop
Time: 144.2|SwimTurnLeft: Start
Time: 144.533|SwimTurnLeft: Loop Start
Time: 145.867|SwimTurnLeft: Loop Start
Time: 146.2|SwimTurnLeft: Stop
Time: 146.533|SwimTurnRight: Start
Time: 146.867|SwimTurnRight: Loop Start
Time: 148.2|SwimTurnRight: Loop Stop
Time: 148.533|SwimTurnRight: Stop
Time: 148.867|WalkForward: Start
Time: 149.067|WalkForward: Loop Start
Time: 149.2|SoundGen: Right
Time: 149.733|SoundGen: Left
Time: 150.067|WalkForward: Loop Stop
Time: 150.2|WalkForward: Stop
Time: 150.267|WalkBack: Start
Time: 150.4|WalkBack: Loop Start/
Time: 150.467|SoundGen: Left
Time: 150.933|SoundGen: Right
Time: 151.4|WalkBack: Loop Stop
Time: 151.6|WalkBack: Stop
Time: 151.667|WalkLeft: Start
Time: 151.8|WalkLeft: Loop Start//
Time: 152.267|SoundGen: Left
Time: 152.733|WalkLeft: Loop Stop/SoundGen: Right/
Time: 153|WalkLeft: Stop/
Time: 153.067|WalkRight: Start
Time: 153.2|WalkRight: Loop Start//
Time: 153.667|SoundGen: Right
Time: 154.133|WalkRight: Loop Stop/SoundGen: Left/
Time: 154.4|WalkRight: Stop/
Time: 154.467|TurnLeft: Start
Time: 154.6|TurnLeft: Loop Start
Time: 154.733|SoundGen: Left
Time: 155.133|SoundGen: Right
Time: 155.333|TurnLeft: Loop Stop
Time: 155.467|TurnLeft: Stop
Time: 155.533|TurnRight: Start
Time: 155.667|TurnRight: Loop Start
Time: 155.867|SoundGen: Right
Time: 156.267|SoundGen: Left
Time: 156.467|TurnRight: Loop Stop
Time: 156.533|TurnRight: Stop
Time: 156.6|RunForward: Start
Time: 156.8|RunForward: Loop Start
Time: 157.133|SoundGen: Right
Time: 157.6|SoundGen: Left
Time: 157.733|RunForward: Loop Stop
Time: 157.933|RunForward: Stop
Time: 158|RunBack: Start
Time: 158.2|RunBack: Loop Start
Time: 158.467|SoundGen: Right
Time: 158.933|SoundGen: Left
Time: 159.133|RunBack: Loop Stop
Time: 159.333|RunBack: Stop
Time: 159.4|RunLeft: Start
Time: 159.533|RunLeft: Loop Start
Time: 160|SoundGen: Left
Time: 160.533|RunLeft: Loop Stop/SoundGen: Right
Time: 160.733|RunLeft: Stop
Time: 160.8|RunRight: Start
Time: 160.933|RunRight: Loop Start
Time: 161.4|SoundGen: Right
Time: 161.933|RunRight: Loop Stop/SoundGen: Left
Time: 162.133|RunRight: Stop
Time: 162.2|SneakForward: Start/
Time: 162.333|SneakForward: Loop Start//
Time: 162.733|SoundGen: Right
Time: 164.067|SoundGen: Left
Time: 165.4|SneakForward: Loop Stop/
Time: 165.533|SneakForward: Stop/
Time: 165.6|SneakBack: Start/
Time: 165.733|SneakBack: Loop Start//SoundGen: Left
Time: 167.2|SoundGen: Right
Time: 168.8|SneakBack: Loop Stop//
Time: 168.933|SneakBack: Stop/
Time: 169|SneakLeft: Start
Time: 169.2|SneakLeft: Loop Start/
Time: 170.133|SoundGen: Left
Time: 171.6|SoundGen: Right
Time: 172.133|SneakLeft: Loop Stop
Time: 172.333|SneakLeft: Stop
Time: 172.4|/SneakRight: Start
Time: 172.6|SneakRight: Loop Start
Time: 173.133|SoundGen: Left
Time: 174.2|SoundGen: Right
Time: 175.533|/SneakRight: Loop Stop
Time: 175.733|/SneakRight: Stop
Time: 175.8|Jump: Start
Time: 176.067|Jump: Loop Start/Jump: Loop Stop/
Time: 176.2|SoundGen: Land
Time: 176.467|Jump: Stop
Time: 176.533|WalkForwardhh: Start
Time: 176.733|WalkForwardhh: Loop Start
Time: 177|SoundGen: Right
Time: 177.533|SoundGen: Left
Time: 177.733|WalkForwardhh: Loop Stop
Time: 177.867|WalkForwardhh: Stop
Time: 177.933|WalkBackhh: Start
Time: 178.067|WalkBackhh: Loop Start/
Time: 178.133|SoundGen: Left
Time: 178.6|SoundGen: Right
Time: 179.067|WalkBackhh: Loop Stop
Time: 179.267|WalkBackhh: Stop
Time: 179.333|WalkLefthh: Start
Time: 179.467|WalkLefthh: Loop Start//
Time: 179.933|SoundGen: Left
Time: 180.4|WalkLefthh: Loop Stop/SoundGen: Right/
Time: 180.667|WalkLefthh: Stop/
Time: 180.733|WalkRighthh: Start
Time: 180.867|WalkRighthh: Loop Start//
Time: 181.333|SoundGen: Right
Time: 181.8|WalkRighthh: Loop Stop/SoundGen: Left/
Time: 182.067|WalkRighthh: Stop/
Time: 182.133|TurnLefthh: Start
Time: 182.267|TurnLefthh: Loop Start
Time: 182.4|SoundGen: Left
Time: 182.8|SoundGen: Right
Time: 183|TurnLefthh: Loop Stop
Time: 183.133|TurnLefthh: Stop
Time: 183.2|TurnRighthh: Start
Time: 183.333|TurnRighthh: Loop Start
Time: 183.533|SoundGen: Right
Time: 183.933|SoundGen: Left
Time: 184.133|TurnRighthh: Loop Stop
Time: 184.2|TurnRighthh: Stop
Time: 184.267|RunForwardhh: Start
Time: 184.467|RunForwardhh: Loop Start
Time: 184.8|SoundGen: Right
Time: 185.267|SoundGen: Left
Time: 185.4|RunForwardhh: Loop Stop
Time: 185.6|RunForwardhh: Stop
Time: 185.667|RunBackhh: Start
Time: 185.867|RunBackhh: Loop Start
Time: 186.133|SoundGen: Right
Time: 186.533|SoundGen: Left
Time: 186.8|RunBackhh: Loop Stop
Time: 187|RunBackhh: Stop
Time: 187.067|RunLefthh: Start
Time: 187.267|RunLefthh: Loop Start
Time: 187.733|SoundGen: Left
Time: 188.267|RunLefthh: Loop Stop/SoundGen: Right
Time: 188.4|RunLefthh: Stop
Time: 188.467|RunRighthh: Start
Time: 188.667|RunRighthh: Loop Start
Time: 189|SoundGen: Right
Time: 189.467|SoundGen: Left
Time: 189.667|RunRighthh: Loop Stop
Time: 189.8|RunRighthh: Stop
Time: 189.867|SneakForwardhh: Start
Time: 190|SneakForwardhh: Loop Start/
Time: 190.4|SoundGen: Right
Time: 191.733|SoundGen: Left
Time: 193.067|SneakForwardhh: Loop Stop
Time: 193.2|SneakForwardhh: Stop
Time: 193.267|SneakBackhh: Start
Time: 193.4|SneakBackhh: Loop Start/SoundGen: Left
Time: 194.867|SoundGen: Right
Time: 196.467|SneakBackhh: Loop Stop/
Time: 196.6|SneakBackhh: Stop
Time: 196.667|SneakLefthh: Start
Time: 196.867|SneakLefthh: Loop Start
Time: 197.133|SoundGen: Left
Time: 198.467|SoundGen: Right
Time: 199.8|SneakLefthh: Loop Stop
Time: 200|SneakLefthh: Stop
Time: 200.067|SneakRighthh: Start
Time: 200.267|SneakRighthh: Loop Start
Time: 200.533|SoundGen: Left
Time: 201.867|SoundGen: Right
Time: 203.2|SneakRighthh: Loop Stop
Time: 203.4|SneakRighthh: Stop
Time: 203.467|Jumphh: Start
Time: 203.733|Jumphh: Loop Start/Jumphh: Loop Stop/
Time: 203.867|SoundGen: Land
Time: 204.133|Jumphh: Stop
Time: 204.2|WalkForward1h: Start
Time: 204.4|WalkForward1h: Loop Start
Time: 204.667|SoundGen: Right
Time: 205.2|SoundGen: Left
Time: 205.4|WalkForward1h: Loop Stop
Time: 205.533|WalkForward1h: Stop
Time: 205.6|WalkBack1h: Start
Time: 205.733|WalkBack1h: Loop Start/
Time: 205.8|SoundGen: Left
Time: 206.267|SoundGen: Right
Time: 206.733|WalkBack1h: Loop Stop
Time: 206.933|WalkBack1h: Stop
Time: 207|WalkLeft1h: Start
Time: 207.133|WalkLeft1h: Loop Start//
Time: 207.6|SoundGen: Left
Time: 208.067|WalkLeft1h: Loop Stop/SoundGen: Right/
Time: 208.333|WalkLeft1h: Stop/
Time: 208.4|WalkRight1h: Start
Time: 208.533|WalkRight1h: Loop Start//
Time: 209|SoundGen: Right
Time: 209.467|WalkRight1h: Loop Stop/SoundGen: Left/
Time: 209.733|WalkRight1h: Stop/
Time: 209.8|TurnLeft1h: Start
Time: 209.933|TurnLeft1h: Loop Start
Time: 210.067|SoundGen: Left
Time: 210.467|SoundGen: Right
Time: 210.667|TurnLeft1h: Loop Stop
Time: 210.8|TurnLeft1h: Stop
Time: 210.867|TurnRight1h: Start
Time: 211|TurnRight1h: Loop Start
Time: 211.2|SoundGen: Right
Time: 211.6|SoundGen: Left
Time: 211.8|TurnRight1h: Loop Stop
Time: 211.867|TurnRight1h: Stop
Time: 211.933|RunForward1h: Start
Time: 212.133|RunForward1h: Loop Start
Time: 212.467|SoundGen: Right
Time: 212.933|SoundGen: Left
Time: 213.067|RunForward1h: Loop Stop
Time: 213.267|RunForward1h: Stop
Time: 213.333|RunBack1h: Start
Time: 213.533|RunBack1h: Loop Start
Time: 213.8|SoundGen: Right
Time: 214.267|SoundGen: Left
Time: 214.467|RunBack1h: Loop Stop
Time: 214.667|RunBack1h: Stop
Time: 214.733|RunLeft1h: Start
Time: 214.867|RunLeft1h: Loop Start
Time: 215.333|SoundGen: Left
Time: 215.867|RunLeft1h: Loop Stop/SoundGen: Right
Time: 216.067|RunLeft1h: Stop
Time: 216.133|RunRight1h: Start
Time: 216.267|RunRight1h: Loop Start
Time: 216.733|SoundGen: Right
Time: 217.267|RunRight1h: Loop Stop/SoundGen: Left
Time: 217.467|RunRight1h: Stop
Time: 217.533|SneakForward1h: Start
Time: 217.667|SneakForward1h: Loop Start/
Time: 218.067|SoundGen: Right
Time: 219.4|SoundGen: Left
Time: 220.733|SneakForward1h: Loop Stop
Time: 220.867|SneakForward1h: Stop
Time: 220.933|SneakBack1h: Start
Time: 221.067|SneakBack1h: Loop Start/SoundGen: Left
Time: 222.533|SoundGen: Right
Time: 224.133|SneakBack1h: Loop Stop/
Time: 224.267|SneakBack1h: Stop
Time: 224.333|SneakLeft1h: Start
Time: 224.533|SneakLeft1h: Loop Start/
Time: 225.467|SoundGen: Left
Time: 226.933|SoundGen: Right
Time: 227.467|SneakLeft1h: Loop Stop
Time: 227.667|SneakLeft1h: Stop
Time: 227.733|/SneakRight1h: Start
Time: 227.933|SneakRight1h: Loop Start
Time: 228.467|SoundGen: Left
Time: 229.533|SoundGen: Right
Time: 230.867|/SneakRight1h: Loop Stop
Time: 231.067|/SneakRight1h: Stop
Time: 231.133|Jump1h: Start
Time: 231.4|Jump1h: Loop Start/Jump1h: Loop Stop/
Time: 231.533|SoundGen: Land
Time: 231.8|Jump1h: Stop
Time: 231.867|WalkForward2c: Start
Time: 232.067|WalkForward2c: Loop Start
Time: 232.2|SoundGen: Right
Time: 232.733|SoundGen: Left
Time: 233.067|WalkForward2c: Loop Stop
Time: 233.2|WalkForward2c: Stop
Time: 233.267|WalkBack2c: Start
Time: 233.4|WalkBack2c: Loop Start/
Time: 233.467|SoundGen: Left
Time: 233.933|SoundGen: Right
Time: 234.4|WalkBack2c: Loop Stop
Time: 234.6|WalkBack2c: Stop
Time: 234.667|WalkLeft2c: Start
Time: 234.8|WalkLeft2c: Loop Start//
Time: 235.267|SoundGen: Left
Time: 235.733|WalkLeft2c: Loop Stop/SoundGen: Right/
Time: 236|WalkLeft2c: Stop/
Time: 236.067|WalkRight2c: Start
Time: 236.2|WalkRight2c: Loop Start//
Time: 236.667|SoundGen: Right
Time: 237.133|WalkRight2c: Loop Stop/SoundGen: Left/
Time: 237.4|WalkRight2c: Stop/
Time: 237.467|RunForward2c: Start
Time: 237.667|RunForward2c: Loop Start
Time: 238|SoundGen: Right
Time: 238.467|SoundGen: Left
Time: 238.6|RunForward2c: Loop Stop
Time: 238.8|RunForward2c: Stop
Time: 238.867|RunBack2c: Start
Time: 239.067|RunBack2c: Loop Start
Time: 239.333|SoundGen: Right
Time: 239.733|SoundGen: Left
Time: 240|RunBack2c: Loop Stop
Time: 240.2|RunBack2c: Stop
Time: 240.267|RunLeft2c: Start
Time: 240.467|RunLeft2c: Loop Start
Time: 240.933|SoundGen: Left
Time: 241.467|RunLeft2c: Loop Stop/SoundGen: Right
Time: 241.6|RunLeft2c: Stop
Time: 241.667|RunRight2c: Start
Time: 241.867|RunRight2c: Loop Start
Time: 242.267|SoundGen: Right
Time: 242.667|SoundGen: Left
Time: 242.867|RunRight2c: Loop Stop
Time: 243|RunRight2c: Stop
Time: 243.067|TurnLeft2c: Start
Time: 243.2|TurnLeft2c: Loop Start
Time: 243.333|SoundGen: Left
Time: 243.733|SoundGen: Right
Time: 243.933|TurnLeft2c: Loop Stop
Time: 244.067|TurnLeft2c: Stop
Time: 244.133|TurnRight2c: Start
Time: 244.267|TurnRight2c: Loop Start
Time: 244.467|SoundGen: Right
Time: 244.867|SoundGen: Left
Time: 245.067|TurnRight2c: Loop Stop
Time: 245.133|TurnRight2c: Stop
Time: 245.2|SneakForward2c: Start
Time: 245.333|SneakForward2c: Loop Start/
Time: 245.733|SoundGen: Right
Time: 247.067|SoundGen: Left
Time: 248.4|SneakForward2c: Loop Stop
Time: 248.533|SneakForward2c: Stop
Time: 248.6|SneakBack2c: Start
Time: 248.733|SneakBack2c: Loop Start/SoundGen: Left
Time: 250.2|SoundGen: Right
Time: 251.8|SneakBack2c: Loop Stop/
Time: 251.933|SneakBack2c: Stop
Time: 252|SneakLeft2c: Start
Time: 252.2|SneakLeft2c: Loop Start
Time: 253|SoundGen: Left
Time: 254.6|SoundGen: Right
Time: 255.133|SneakLeft2c: Loop Stop
Time: 255.333|SneakLeft2c: Stop
Time: 255.4|SneakRight2c: Start
Time: 255.6|SneakRight2c: Loop Start
Time: 255.733|SoundGen: Left
Time: 257.2|SoundGen: Right
Time: 258.533|SneakRight2c: Loop Stop
Time: 258.733|SneakRight2c: Stop
Time: 258.8|Jump2c: Start
Time: 259.067|Jump2c: Loop Start/Jump2c: Loop Stop/
Time: 259.2|SoundGen: Land
Time: 259.467|Jump2c: Stop
Time: 259.533|WalkForward2w: Start
Time: 259.733|WalkForward2w: Loop Start
Time: 259.867|SoundGen: Right
Time: 260.4|SoundGen: Left
Time: 260.733|WalkForward2w: Loop Stop
Time: 260.867|WalkForward2w: Stop
Time: 260.933|WalkBack2w: Start
Time: 261.067|WalkBack2w: Loop Start/
Time: 261.133|SoundGen: Left
Time: 261.6|SoundGen: Right
Time: 262.067|WalkBack2w: Loop Stop
Time: 262.267|WalkBack2w: Stop
Time: 262.333|WalkLeft2w: Start
Time: 262.467|WalkLeft2w: Loop Start//
Time: 262.933|SoundGen: Left
Time: 263.4|WalkLeft2w: Loop Stop/SoundGen: Right/
Time: 263.667|WalkLeft2w: Stop/
Time: 263.733|WalkRight2w: Start
Time: 263.867|WalkRight2w: Loop Start//
Time: 264.333|SoundGen: Right
Time: 264.8|WalkRight2w: Loop Stop/SoundGen: Left/
Time: 265.067|WalkRight2w: Stop/
Time: 265.133|TurnLeft2w: Start
Time: 265.267|TurnLeft2w: Loop Start
Time: 265.4|SoundGen: Left
Time: 265.8|SoundGen: Right
Time: 266|TurnLeft2w: Loop Stop
Time: 266.133|TurnLeft2w: Stop
Time: 266.2|TurnRight2w: Start
Time: 266.333|TurnRight2w: Loop Start
Time: 266.533|SoundGen: Right
Time: 266.933|SoundGen: Left
Time: 267.133|TurnRight2w: Loop Stop
Time: 267.2|TurnRight2w: Stop
Time: 267.267|RunForward2w: Start
Time: 267.467|RunForward2w: Loop Start
Time: 267.8|SoundGen: Right
Time: 268.267|SoundGen: Left
Time: 268.4|RunForward2w: Loop Stop
Time: 268.6|RunForward2w: Stop
Time: 268.667|RunBack2w: Start
Time: 268.867|RunBack2w: Loop Start
Time: 269.133|SoundGen: Right
Time: 269.6|SoundGen: Left
Time: 269.8|RunBack2w: Loop Stop
Time: 270|RunBack2w: Stop
Time: 270.067|RunLeft2w: Start
Time: 270.267|RunLeft2w: Loop Start
Time: 270.733|SoundGen: Left
Time: 271.267|RunLeft2w: Loop Stop/SoundGen: Right
Time: 271.4|RunLeft2w: Stop
Time: 271.467|RunRight2w: Start
Time: 271.667|RunRight2w: Loop Start
Time: 272.067|SoundGen: Right
Time: 272.6|SoundGen: Left
Time: 272.667|RunRight2w: Loop Stop
Time: 272.8|RunRight2w: Stop
Time: 272.867|SneakForward2w: Start
Time: 273|SneakForward2w: Loop Start/
Time: 273.4|SoundGen: Right
Time: 274.733|SoundGen: Left
Time: 276.067|SneakForward2w: Loop Stop
Time: 276.2|SneakForward2w: Stop
Time: 276.267|SneakBack2w: Start
Time: 276.4|SneakBack2w: Loop Start/SoundGen: Left
Time: 277.867|SoundGen: Right
Time: 279.467|SneakBack2w: Loop Stop/
Time: 279.6|SneakBack2w: Stop
Time: 279.667|SneakLeft2w: Start
Time: 279.867|SneakLeft2w: Loop Start
Time: 280.133|SoundGen: Left
Time: 281.467|SoundGen: Right
Time: 282.8|SneakLeft2w: Loop Stop
Time: 283|SneakLeft2w: Stop
Time: 283.067|SneakRight2w: Start
Time: 283.267|SneakRight2w: Loop Start
Time: 283.533|SoundGen: Left
Time: 284.867|SoundGen: Right
Time: 286.2|SneakRight2w: Loop Stop
Time: 286.4|SneakRight2w: Stop
Time: 286.467|Jump2w: Start
Time: 286.733|Jump2w: Loop Start/Jump2w: Loop Stop/
Time: 286.867|SoundGen: Land
Time: 287.133|Jump2w: Stop
Time: 287.467|SpellCast: Equip Start
Time: 287.667|SpellCast: Equip Stop/IdleSpell: Start
Time: 289.267|IdleSpell: Stop/SpellCast: Unequip Start
Time: 289.467|SpellCast: Unequip Stop
Time: 289.533|SpellCast: Self Start
Time: 290.467|SpellCast: Self Release
Time: 291.533|SpellCast: Self Stop
Time: 291.6|SpellCast: Target Start
Time: 292.533|SpellCast: Target Release
Time: 293.6|SpellCast: Target Stop
Time: 293.667|SpellCast: Touch Start
Time: 294.6|SpellCast: Touch Release
Time: 295.667|SpellCast: Touch Stop
Time: 295.733|SpellTurnLeft: Start/
Time: 296|SpellTurnLeft: Loop Start
Time: 297.067|SpellTurnLeft: Loop Stop
Time: 297.333|SpellTurnLeft: Stop
Time: 297.4|SpellTurnRight: Start/
Time: 297.667|SpellTurnRight: Loop Start
Time: 298.733|SpellTurnRight: Loop Stop
Time: 299|SpellTurnRight: Stop
Time: 299.067|HandToHand: Equip Start
Time: 299.533|HandToHand: Equip Stop//
Time: 299.6|HandToHand: Slash Start
Time: 299.8|HandToHand: Slash Min Attack
Time: 299.933|HandToHand: Slash Max Attack
Time: 300|HandToHand: Slash Min Hit
Time: 300.133|HandToHand: Slash Hit
Time: 300.2|HandToHand: Slash Large Follow Start/
Time: 300.733|HandToHand: Slash Large Follow Stop/
Time: 300.8|/HandToHand: Slash Medium Follow Start/
Time: 301.267|/HandToHand: Slash Medium Follow Stop/
Time: 301.333|/HandToHand: Slash Small Follow Start
Time: 301.667|/HandToHand: Slash Small Follow Stop
Time: 301.733|HandToHand: Thrust Start
Time: 301.8|HandToHand: Thrust Min Attack
Time: 301.933|HandToHand: Thrust Max Attack
Time: 302.067|HandToHand: Thrust Min Hit
Time: 302.2|HandToHand: Thrust Hit
Time: 302.267|/HandToHand: Thrust Large Follow Start
Time: 302.667|/HandToHand: Thrust Large Follow Stop
Time: 302.733|/HandToHand: Thrust Medium Follow Start/
Time: 303.067|/HandToHand: Thrust Medium Follow Stop/
Time: 303.133|HandToHand: Thrust Small Follow Start/
Time: 303.4|HandToHand: Thrust Small Follow Stop/
Time: 303.467|HandToHand: Chop Start
Time: 303.6|HandToHand: Chop Min Attack
Time: 303.8|HandToHand: Chop Max Attack
Time: 304|HandToHand: Chop Min Hit
Time: 304.133|HandToHand: Chop Hit/
Time: 304.2|HandToHand: Chop Large Follow Start/
Time: 304.4|HandToHand: Chop Large Follow Stop/
Time: 304.467|/HandToHand: Chop Medium Follow Start/
Time: 304.733|/HandToHand: Chop Medium Follow Stop/
Time: 304.8|/HandToHand: Chop Small Follow Start
Time: 305|/HandToHand: Chop Small Follow Stop
Time: 305.067|HandToHand: Unequip Start
Time: 305.333|HandToHand: Unequip Stop
Time: 305.667|Crossbow: Equip Start
Time: 305.867|Crossbow: Equip Attach
Time: 306.2|Crossbow: Equip Stop/Crossbow: Shoot Start
Time: 306.4|Crossbow: Shoot Min Attack/Crossbow: Shoot Max Attack/Crossbow: Shoot Min Hit
Time: 306.533|Crossbow: Shoot Release/Sound: CrossbowShoot
Time: 306.733|Crossbow: Shoot Follow Start/Sound: CrossbowPull
Time: 307.467|Crossbow: Shoot Follow Attach
Time: 307.733|Crossbow: Shoot Follow Stop
Time: 307.867|Crossbow: Unequip Start
Time: 308.133|Crossbow: Unequip Detach
Time: 308.333|Crossbow: Unequip Stop
Time: 308.467|BowAndArrow: Equip Start
Time: 308.6|BowAndArrow: Equip Attach
Time: 308.933|BowAndArrow: Equip Stop/
Time: 309|BowAndArrow: Shoot Start
Time: 309.2|BowAndArrow: Shoot Attach//
Time: 309.733|Sound: BowPull
Time: 309.933|BowAndArrow: Shoot Min Attack
Time: 310.333|BowAndArrow: Shoot Max Attack
Time: 310.4|BowAndArrow: Shoot Min Hit
Time: 310.467|BowAndArrow: Shoot Release/Sound: BowShoot
Time: 310.533|BowAndArrow: Shoot Follow Start
Time: 310.933|BowAndArrow: Shoot Follow Stop/
Time: 311|BowAndArrow: Unequip Start
Time: 311.067|BowAndArrow: Unequip Detach
Time: 311.133|BowAndArrow: Unequip Stop
Time: 311.2|ThrowWeapon: Equip Start
Time: 311.4|ThrowWeapon: Equip Attach
Time: 311.667|ThrowWeapon: Equip Stop/ThrowWeapon: Shoot Start
Time: 311.8|ThrowWeapon: Shoot Min Attack
Time: 311.867|ThrowWeapon: Shoot Max Attack
Time: 311.933|ThrowWeapon: Shoot Min Hit
Time: 312|ThrowWeapon: Shoot Release
Time: 312.067|ThrowWeapon: Shoot Follow Start
Time: 312.4|ThrowWeapon: Shoot Follow Attach
Time: 312.533|ThrowWeapon: Shoot Follow Stop/ThrowWeapon: Unequip Start
Time: 313.067|ThrowWeapon: Unequip Detach
Time: 313.2|ThrowWeapon: Unequip Stop
Time: 313.4|WeaponOneHand: Equip Start
Time: 313.6|WeaponOneHand: Equip Attach
Time: 313.867|WeaponOneHand: Equip Stop
Time: 313.933|WeaponOneHand: Slash Start
Time: 314.267|WeaponOneHand: Slash Min Attack
Time: 314.4|WeaponOneHand: Slash Max Attack
Time: 314.533|WeaponOneHand: Slash Min Hit
Time: 314.733|WeaponOneHand: Slash Hit
Time: 314.8|WeaponOneHand: Slash Large Follow Start
Time: 315.067|WeaponOneHand: Slash Large Follow Stop/
Time: 315.133|WeaponOneHand: Slash Medium Follow Start
Time: 315.467|WeaponOneHand: Slash Medium Follow Stop
Time: 315.533|WeaponOneHand: Slash Small Follow Start
Time: 315.867|WeaponOneHand: Slash Small Follow Stop
Time: 315.933|WeaponOneHand: Chop Start
Time: 316.067|WeaponOneHand: Chop Min Attack
Time: 316.333|WeaponOneHand: Chop Max Attack
Time: 316.6|WeaponOneHand: Chop Min Hit
Time: 316.733|WeaponOneHand: Chop Hit
Time: 316.8|WeaponOneHand: Chop Large Follow Start
Time: 317.133|WeaponOneHand: Chop Large Follow Stop/
Time: 317.2|WeaponOneHand: Chop Medium Follow Start
Time: 317.533|WeaponOneHand: Chop Medium Follow Stop
Time: 317.6|WeaponOneHand: Chop Small Follow Start
Time: 317.933|WeaponOneHand: Chop Small Follow Stop
Time: 318|WeaponOneHand: Thrust Start
Time: 318.133|WeaponOneHand: Thrust Min Attack
Time: 318.267|WeaponOneHand: Thrust Max Attack
Time: 318.4|WeaponOneHand: Thrust Min Hit
Time: 318.533|WeaponOneHand: Thrust Hit
Time: 318.6|WeaponOneHand: Thrust Large Follow Start/
Time: 319|WeaponOneHand: Thrust Large Follow Stop/
Time: 319.067|WeaponOneHand: Thrust Medium Follow Start
Time: 319.533|WeaponOneHand: Thrust Medium Follow Stop
Time: 319.6|WeaponOneHand: Thrust Small Follow Start
Time: 319.933|WeaponOneHand: Thrust Small Follow Stop
Time: 320|WeaponOneHand: Unequip Start
Time: 320.267|WeaponOneHand: Unequip Detach
Time: 320.467|WeaponOneHand: Unequip Stop
Time: 320.8|WeaponTwoHand: Equip Start
Time: 320.933|WeaponTwoHand: Equip Attach
Time: 321.133|WeaponTwoHand: Equip Stop
Time: 321.2|WeaponTwoHand: Chop Start
Time: 321.4|WeaponTwoHand: Chop Min Attack
Time: 321.733|WeaponTwoHand: Chop Max Attack
Time: 321.933|WeaponTwoHand: Chop Min Hit
Time: 322|WeaponTwoHand: Chop Hit/WeaponTwoHand: Chop Large Follow Start
Time: 322.333|WeaponTwoHand: Chop Large Follow Stop//
Time: 322.4|WeaponTwoHand: Chop Medium Follow Start/
Time: 322.8|WeaponTwoHand: Chop Medium Follow Stop//
Time: 322.867|WeaponTwoHand: Chop Small Follow Start
Time: 323.2|WeaponTwoHand: Chop Small Follow Stop/
Time: 323.267|WeaponTwoHand: Slash Start
Time: 323.467|WeaponTwoHand: Slash Min Attack
Time: 323.733|WeaponTwoHand: Slash Max Attack
Time: 323.867|WeaponTwoHand: Slash Min Hit
Time: 324|WeaponTwoHand: Slash Hit
Time: 324.067|WeaponTwoHand: Slash Large Follow Start/
Time: 324.4|WeaponTwoHand: Slash Large Follow Stop//
Time: 324.467|WeaponTwoHand: Slash Medium Follow Start/
Time: 324.8|WeaponTwoHand: Slash Medium Follow Stop//
Time: 324.867|WeaponTwoHand: Slash Small Follow Start
Time: 325.2|WeaponTwoHand: Slash Small Follow Stop/
Time: 325.267|WeaponTwoHand: Thrust Start
Time: 325.533|WeaponTwoHand: Thrust Min Attack
Time: 325.733|WeaponTwoHand: Thrust Max Attack
Time: 325.867|WeaponTwoHand: Thrust Min Hit
Time: 325.933|WeaponTwoHand: Thrust Hit/WeaponTwoHand: Thrust Large Follow Start//
Time: 326.267|WeaponTwoHand: Thrust Large Follow Stop//
Time: 326.333|WeaponTwoHand: Thrust Medium Follow Start//
Time: 326.6|WeaponTwoHand: Thrust Medium Follow Stop//
Time: 326.667|WeaponTwoHand: Thrust Small Follow Start/
Time: 326.933|WeaponTwoHand: Thrust Small Follow Stop/
Time: 327|WeaponTwoHand: Unequip Start
Time: 327.2|WeaponTwoHand: Unequip Detach
Time: 327.333|WeaponTwoHand: Unequip Stop
Time: 327.4|WeaponTwoWide: Equip Start
Time: 327.533|WeaponTwoWide: Equip Attach
Time: 327.733|WeaponTwoWide: Equip Stop
Time: 327.8|WeaponTwoWide: Chop Start
Time: 327.933|WeaponTwoWide: Chop Min Attack
Time: 328.067|WeaponTwoWide: Chop Max Attack
Time: 328.2|WeaponTwoWide: Chop Min Hit
Time: 328.4|WeaponTwoWide: Chop Hit/WeaponTwoWide: Chop Large Follow Start/
Time: 328.733|WeaponTwoWide: Chop Large Follow Stop/
Time: 328.8|WeaponTwoWide: Chop Medium Follow Start
Time: 329.133|WeaponTwoWide: Chop Medium Follow Stop//
Time: 329.2|WeaponTwoWide: Chop Small Follow Start
Time: 329.467|WeaponTwoWide: Chop Small Follow Stop//
Time: 329.533|WeaponTwoWide: Slash Start
Time: 329.667|WeaponTwoWide: Slash Min Attack
Time: 329.8|WeaponTwoWide: Slash Max Attack
Time: 329.933|WeaponTwoWide: Slash Min Hit
Time: 330.067|WeaponTwoWide: Slash Hit/WeaponTwoWide: Slash Large Follow Start
Time: 330.467|WeaponTwoWide: Slash Large Follow Stop
Time: 330.533|WeaponTwoWide: Slash Medium Follow Start
Time: 330.933|WeaponTwoWide: Slash Medium Follow Stop/
Time: 331|WeaponTwoWide: Slash Small Follow Start
Time: 331.333|WeaponTwoWide: Slash Small Follow Stop/
Time: 331.4|WeaponTwoWide: Thrust Start
Time: 331.533|WeaponTwoWide: Thrust Min Attack
Time: 331.667|WeaponTwoWide: Thrust Max Attack
Time: 331.8|WeaponTwoWide: Thrust Min Hit
Time: 331.867|WeaponTwoWide: Thrust Hit/WeaponTwoWide: Thrust Large Follow Start//
Time: 332.2|WeaponTwoWide: Thrust Large Follow Stop/
Time: 332.267|/WeaponTwoWide: Thrust Medium Follow Start//
Time: 332.6|/WeaponTwoWide: Thrust Medium Follow Stop//
Time: 332.667|/WeaponTwoWide: Thrust Small Follow Start/
Time: 332.933|/WeaponTwoWide: Thrust Small Follow Stop/
Time: 333|WeaponTwoWide: Unequip Start
Time: 333.333|WeaponTwoWide: Unequip Detach
Time: 333.533|WeaponTwoWide: Unequip Stop
Time: 336.267|Shield: Block Start
Time: 336.6|Shield: Block Hit
Time: 337.6|Shield: Block Stop
Time: 337.933|PickProbe: Equip Start
Time: 338.133|PickProbe: Equip Attach
Time: 338.4|PickProbe: Equip Stop
Time: 338.467|PickProbe: Start
Time: 339.4|PickProbe: Stop
Time: 339.467|PickProbe: Unequip Start
Time: 339.733|PickProbe: Unequip Detach
Time: 339.933|PickProbe: Unequip Stop
Time: 340.133|DeathKnockdown: Start
Time: 341.467|DeathKnockdown: Stop
Time: 341.8|DeathKnockout: Start/
Time: 343.133|DeathKnockout: Stop
Time: 343.8|SwimKnockdown: Start/
Time: 344.667|SwimDeathKnockdown: Start
Time: 346.333|SwimDeathKnockdown: Stop/
Time: 346.8|SwimKnockdown: Stop
Time: 346.867|IdleCrossbow: Start
Time: 349.533|IdleCrossbow: Stop/
Time: 349.6|IdleSneak: Start
Time: 352.267|IdleSneak: Stop/
Time: 352.333|IdleStorm: Start
Time: 352.533|IdleStorm: Loop Start
Time: 355.2|IdleStorm: Loop Stop
Time: 355.333|IdleStorm: Stop
Time: 355.4|InventoryHandtoHand: Start/InventoryHandtoHand: Stop
Time: 355.467|InventoryWeaponOneHand: Start/InventoryWeaponOneHand: Stop
Time: 355.533|InventoryWeaponTwoHand: Start/InventoryWeaponTwoHand: Stop
Time: 355.6|InventoryWeaponTwoWide: Start/InventoryWeaponTwoWide: Stop

EDIT: Made a commit with the new BSAArchive and some changes to NIFLoader (there will be a lot more). It seems there is lag sometimes when changing cells, not sure if this happened pre mwrender or not.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: Animation

Post by Zini »

Ok, so it's not the real inventory or designated equipped. From the way I recall though, npcs would equip the items that give them the highest armor rating as soon as they get access to them.
It isn't that simple, unfortunately. There is the Equip instruction (not fully working in MW, we need to look into that eventually), there is the player and probably a few more factors I can't recall right now.

As a simple placeholder you could select a single set of clothing and render it on all NPCs for now. That should at least get the actual render-side of the code in. But if you do that, please make sure that OpenMW does not crash if these pieces of clothing don't exist in the ESX records (i.e. someone is using a TC instead of Morrowind.esm).
It seems to be mostly combat, probing, and spell casting that is different from the standard start/stop/loop start/loop start.
So basically these are skill-related animations. That makes sense.
Maybe a modder may know what each one of these instructions does? Otherwise, to figure them out - we could put them in openmw, designate the start and stop points, set it to loop, and watch.
I am a modder, but I have never worked seriously with animations (the only time I tried it, did not work out too well).

We need to figure out two things:

- how do these more complex animation interact with the scripting instructions (does something reasonable happen, does MW crash or whatever?)

- we need to set up a second interface in RenderingManager for skill-related animations. I don't have any idea yet how this should look (we don't have any skill implementation yet anyway). Might be better to factor that out into a separate task and address it later.
It seems there is lag sometimes when changing cells, not sure if this happened pre mwrender or not.
With lag you mean a longer cell load? That is possible. We skipped some possible optimisations during the refactoring. I haven't noticed any difference though. There was always a small delay on cell load. Would be interesting to have someone with a slower box to compare the performance pre- and post-refactoring.
K1ll
Posts: 184
Joined: 06 Aug 2011, 21:54

Re: Animation

Post by K1ll »

Zini wrote: With lag you mean a longer cell load? That is possible. We skipped some possible optimisations during the refactoring. I haven't noticed any difference though. There was always a small delay on cell load. Would be interesting to have someone with a slower box to compare the performance pre- and post-refactoring.
My old laptop probably is the slowest box here. I'll do the comparison this weekend.
Post Reply