View Issue Details

IDProjectCategoryView StatusLast Update
0003605The Dark ModAIpublic26.06.2018 00:43
ReporterSpringheelAssigned To 
PrioritynormalSeveritynormalReproducibilityhave not tried
Status newResolutionopen 
Product VersionTDM 2.00 
Target VersionFixed in Version 
Summary0003605: Eyelid bones jitter when AI are talking
DescriptionYou can see the eyes flutter for the duration of the mouth moving during AI barks. Some kind of conflict between the eye blinking and talking code?
TagsNo tags attached.

Relationships

related to 0002247 new Facial Animations 

Activities

Springheel

Springheel

20.11.2013 01:44

administrator   ~0006245

In def.script, there is an eyelid channel:

#define ANIMCHANNEL_EYELIDS 4
Springheel

Springheel

05.08.2014 15:56

administrator   ~0006822

Steve, just assigning this to you in case you happen to stumble on anything relevant while looking at the animation code.
SteveL

SteveL

06.08.2014 16:41

developer   ~0006827

Cheers, yes I'm happy to have a crack at as many outstanding anim problems as time allows this dev cycle. My plan for this evening is to make a special build that'll let me isolate single animations and trigger lod changes on demand with the player model and all meshes held stationary except for the one animated mesh I want to investigate. That's for the head bob problem, but it'll be a handy tool for most things animation-related too.
SteveL

SteveL

30.08.2014 23:21

developer   ~0006913

I can't see this happening. I stood by a citywatch and an inventor for a few minutes just now and pressed up close whenever one started speaking, but the eyelids weren't fluttering during the lip sync. I saw only the usual blink or two. I tried on timescale 0.5 too. Can you confirm whether you can still see the problem?
Springheel

Springheel

31.08.2014 02:50

administrator   ~0006914

Yes, I noticed it a few days ago, actually. I usually have to be looking through the spyglass to see it...I'll see if I can find a way to reproduce it reliably.
Springheel

Springheel

21.09.2014 00:42

administrator   ~0007022

"Heads only have 2 effective anim channels: ALL and EYELIDS. No others are defined. Lip sync plays on animchannel_all, and it does something unique: it plays the frames of the animation out of sequence, by selecting a frame based on the sound. So we'll need to avoid mixing it with custom anims. Then again custom anims will play on animchannel_all too, so lip syncs can be allowed to override custom anims if a bark kicks in.

That's almost certainly what's causing a clash with blinking 0003605, even if I haven't been able to observe it yet. The lip sync will be interpolating its own positions for the eyelids with the blink animation.

I reckon we should consider mapping all non-eyelid joints to ANIMCHANNEL_HEAD, so that lip sync and custom anims can be independent of blinking. "
SteveL

SteveL

22.09.2014 17:09

developer   ~0007031

I'll look into the feasibility of mapping non-eyelid joints to animchannel_head and using that as the default for current code instead of animchannel_all.

Currently everything apart from blinking uses animchannel_all on the head, which includes the eyelid joints and so can cause a conflict with blinking. Notably, any anims played on the AI by the game scripts with "animchannel_head" get intercepted in the game dll and passed to the AI's head instead, using "animchannel_all".

If we can change that to use animchannel_head instead then the change shouldn't get too complicated.

Are you aware of any head anims in current use that need to control the eyelids? Other than the blink anims that is.
Springheel

Springheel

22.09.2014 21:27

administrator   ~0007034

Last edited: 22.09.2014 21:32

View 3 revisions

The Sleep animation needs to close the eyes.

Springheel

Springheel

26.06.2018 00:43

administrator   ~0010588

One question is why does the lipsync animation do anything at all to the eyelid bones? There is no reason why they should move during that animation, even if frames are being played out of order.

Issue History

Date Modified Username Field Change
17.11.2013 21:38 Springheel New Issue
20.11.2013 01:44 Springheel Note Added: 0006245
05.08.2014 15:55 Springheel Assigned To => SteveL
05.08.2014 15:55 Springheel Status new => assigned
05.08.2014 15:56 Springheel Note Added: 0006822
06.08.2014 16:41 SteveL Note Added: 0006827
30.08.2014 23:21 SteveL Note Added: 0006913
30.08.2014 23:21 SteveL Status assigned => feedback
31.08.2014 02:50 Springheel Note Added: 0006914
31.08.2014 02:50 Springheel Status feedback => assigned
02.09.2014 18:50 SteveL Relationship added related to 0002247
21.09.2014 00:42 Springheel Note Added: 0007022
22.09.2014 17:09 SteveL Note Added: 0007031
22.09.2014 17:09 SteveL Status assigned => feedback
22.09.2014 21:27 Springheel Note Added: 0007034
22.09.2014 21:27 Springheel Status feedback => assigned
22.09.2014 21:31 Springheel Note Edited: 0007034 View Revisions
22.09.2014 21:32 Springheel Note Edited: 0007034 View Revisions
15.02.2017 04:40 grayman Assigned To SteveL =>
15.02.2017 04:40 grayman Status assigned => new
26.06.2018 00:43 Springheel Note Added: 0010588