View Issue Details
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003605||The Dark Mod||AI||public||17.11.2013 21:38||26.06.2018 00:43|
|Priority||normal||Severity||normal||Reproducibility||have not tried|
|Product Version||TDM 2.00|
|Target Version||Fixed in Version|
|Summary||0003605: Eyelid bones jitter when AI are talking|
|Description||You 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?|
|Tags||No tags attached.|
In def.script, there is an eyelid channel:
#define ANIMCHANNEL_EYELIDS 4
|Steve, just assigning this to you in case you happen to stumble on anything relevant while looking at the animation code.|
|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.|
|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?|
|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.|
"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. "
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.
The Sleep animation needs to close the eyes.
|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.|
|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|