I just wrote some insane mathy code for doing complicated warmup, firing, and cooldown animations for enemies. We needed the ability to force an arbitrary frame based on when the enemy was supposed to be firing. Jules drew a ton of madly detailed little animation frames for a particular enemy, so I felt that I had to do it justice with a decent animation system.
Keeping track of which frame is supposed to be happening on which tick of the enemy’s clock is really hard. If my calculations turned out to be off by one tick, dozens of values could change. I ended up creating an OmniOutliner document with row numbering turned on. Then I typed in the animation frames I knew we needed, in the order we needed them. Then, as I dragged the frame numbers around to make sure everything flowed properly, the row numbering updated automatically to let me know which ticks they corresponded to. Then, I just translated the results into code. Awesome!