Mouth lead: nudge performance tracks ahead of the clock
Smoothing does not literally delay anything - a centred moving average has zero phase lag - but it blurs onsets, so the visually salient moment of a mouth opening moves later even though the mean does not. Animators also draw mouth shapes a frame or two ahead of the sound as standard practice, so this is the normal control rather than a workaround. Only the performance tracks shift; the head and audio stay put, since it is the mouth that should anticipate. In photo-underlay modes the vector mouth will therefore no longer match the frame behind it, which is expected. The lead is baked into the exported take - key f carries the pose from source frame f+lead - so the Animator Pro renderer never needs to know about it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
a146d271b6
commit
d18791e6ad
4 changed files with 64 additions and 14 deletions
|
|
@ -109,6 +109,7 @@
|
|||
<input type="range" id="scrub" min="0" max="0" value="0" style="width:100%;margin-top:10px">
|
||||
<div class="legend">
|
||||
<kbd>←</kbd> <kbd>→</kbd> step · <kbd>X</kbd> delete · <kbd>K</kbd> keep · <kbd>B</kbd> background ·
|
||||
<kbd>[</kbd> <kbd>]</kbd> lead ·
|
||||
click to select · double-click or shift-click to toggle ·
|
||||
the mouth keeps <b>every</b> frame regardless
|
||||
</div>
|
||||
|
|
@ -119,6 +120,7 @@
|
|||
<div class="panel" style="flex:1 1 400px">
|
||||
<h2>knobs</h2>
|
||||
<label class="ctl"><span>vertices</span><input type="range" id="verts" min="4" max="16" step="2" value="8"><output id="vertsv"></output></label>
|
||||
<label class="ctl"><span>mouth lead ±f</span><input type="range" id="lead" min="-6" max="6" value="0"><output id="leadv"></output></label>
|
||||
<label class="ctl"><span>contour avg ±f</span><input type="range" id="contourSmooth" min="0" max="4" value="1"><output id="contourSmoothv"></output></label>
|
||||
<label class="ctl"><span>anchor avg ±f</span><input type="range" id="smoothWin" min="0" max="8" value="2"><output id="smoothWinv"></output></label>
|
||||
<label class="ctl"><span>closed-mouth cut</span><input type="range" id="apertureThresh" min="0" max="400" value="120"><output id="apertureThreshv"></output></label>
|
||||
|
|
@ -132,6 +134,10 @@
|
|||
<label class="ctl"><span>teeth dwell</span><input type="range" id="teethDwell" min="0" max="6" value="1"><output id="teethDwellv"></output></label>
|
||||
<label class="ctl"><span>suggest tolerance</span><input type="range" id="tol" min="2" max="60" value="14"><output id="tolv"></output></label>
|
||||
<div class="legend">
|
||||
<b>mouth lead</b> shifts the performance tracks earlier (positive) against
|
||||
the audio and the head. Averaging has no phase lag but it blurs onsets, so
|
||||
an opening reads later than it is; animators also draw mouths a frame or
|
||||
two ahead of the sound as standard practice. <kbd>[</kbd> <kbd>]</kbd>.<br>
|
||||
<b>contour avg</b> 0 = off, 1 = ±1 frame. Removes per-frame landmark
|
||||
jitter. Push past 2 and it starts eating articulation.<br>
|
||||
<b>anchor avg</b> smooths the head transform only — never the contour.<br>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue