Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#4735 closed defect (fixed)

TEENAGENT: Choppy animation

Reported by: SF/muyfa666 Owned by: SF/megath
Priority: normal Component: Engine: TeenAgent
Version: Keywords:
Cc: Game: TeenAgent


The main character's animation is very choppy. Not fluid like the original.

Language of game: English Version of game: Floppy, from GOG Platform and Compiler: Win32

Ticket imported from: #2922931. Ticket imported from: bugs/4735.

Change History (19)

comment:1 by sev-, 14 years ago

Owner: set to SF/megath
Summary: Choppy animationTEENAGENT: Choppy animation

comment:2 by eriktorbjorn, 14 years ago

I wrote about this on the forum already, but just for reference...

I tried capturing the animation frames from both DOSBox and ScummVM. The comparision can be found on

comment:3 by SF/megath, 14 years ago

Thank you, great work!

comment:4 by SF/megath, 14 years ago

could you check on the recent trunk?

comment:5 by eriktorbjorn, 14 years ago

That was one of the changes I tried myself, but I couldn't - and still can't - see much of a difference so I assumed frame 0 was meant as a "this is the actor, standing still" frame and therefore deliberately not included in the walk cycle.

comment:6 by SF/megath, 14 years ago

I'm pretty sure that first frame should be part of the original walking sequence. its code is pretty straightforward. I found magic frame number 7 yesterday, still trying to figure out what it means.

comment:7 by eriktorbjorn, 14 years ago

Well, I don't really have any way of knowing which frames should or shouldn't be used; I don't know reverse engineering. But the main difference to me when I did the DOSBox/ScummVM comparision is that in DOSBox, when Mark sets down his foot it stays there until he lifts it for the next step. In ScummVM he seems to jitter, and at least before your change he moved much further with the same number of animation frames.

One thing I was wondering when I looked at it, but didn't bother to find out: Are all frames in the walk cycle the same width, or is it variable? If it's variable, perhaps the position needs to be adjusted for where his feet are? But that's just idle speculation.

comment:8 by SF/megath, 14 years ago

you're right, it seems to be that width of the steps are different.

comment:9 by SF/megath, 14 years ago

Owner: changed from SF/megath to eriktorbjorn

comment:10 by SF/megath, 14 years ago

check the latest svn build please, seems I figured out how the original animation was handled.

comment:11 by eriktorbjorn, 14 years ago

Owner: changed from eriktorbjorn to SF/megath

comment:12 by eriktorbjorn, 14 years ago

Still doesn't look quite right to me. I've updated the comparision page (re-encoding both videos, since I couldn't remember which parameters I used for the DOSBox one). Note that in the comparision I have once again removed the zeroeth frame from the walk cycle because that seemed to correspond to the frames I saw in DOSBox.

(As before, the animations do not capture the speed of the movement. For the DOSBox video, I slowed it down and hit the screenshot button each time the image changed. For ScummVM, I added some code to TeenAgent::run() to generate fake keydown events to trick it into creating screenshots, and then I removed all duplicate frames to get the same walk cycle.)

comment:13 by SF/megath, 14 years ago

could you check it once again? Seems to be better now :)

comment:14 by SF/megath, 14 years ago

Ola? Could you please check svn version once again?

comment:15 by SF/muyfa666, 14 years ago

With the latest SVN the animation is WAY better. One thing thou, now it seems the main character is walking alot slower than he should.

comment:16 by SF/muyfa666, 14 years ago

Alot slower was a bit too much. He walks a bit slower. ;-)

comment:17 by SF/megath, 14 years ago

So, i'm closing the bug. I will tune various speeds (game/text/hero) later.

comment:18 by SF/megath, 14 years ago

Status: newclosed

comment:19 by sev-, 14 years ago

Resolution: fixed
Note: See TracTickets for help on using tickets.