Advanced Dynamics

SALSA 2.0 offers an Advanced Dynamics setting which is really quite simple, but produces a better movement nuance with certain animation controller types (blendshape, bone, and in switcher arrays). Advanced dynamics creates additional varition to help remove static (stale) trigger response when audio analysis levels are comparable over multiple sample points.

How It Works

When using Advanced Dynamics, an intermediate is computed as a percentage value between the current active and next triggers, based on the audio analysis value. For example, assume the current analysis value is .5f and the valid trigger is .4f. The next trigger is .6f, giving a trigger range of .2f. The analysis value of .5f has surpassed the valid trigger by .1f (0.5 - 0.4 = 0.1), effectively travelling half way through the trigger range (0.6 - 0.4 = 0.2). The computed fractional is therefore 50% (.5) of the trigger range (.1 / .2 = 0.5). Using Advanced Dynamics, the animation would stop at 50% of its maximum setting, creating a variation of the original animation.

The drawback to this approach is the fractional computation could be a very low percentage (even 0%) of the max, creating the impression nothing has happened and this is probably not desirable. For this reason, the bias adjustment (Primary Bias) is available to ensure a minimum amount of shape animation will occur. This bias is combined with the computed fractional and clamped to a normalized value, ensuring a minimum visible amount of animation occurs.

Secondary Mix

An additional dynamics option is available for blendshape viseme configurations. When SALSA visemes are configured with blendshapes, this option will mix another configured viseme with the current viseme. Secondary Mix also uses fractional computation and only occurs on frames where the same trigger is repeated over two or more processing loops (calculated by the Update Delay) and remains stagnant (does not change). When a trigger is stagnant, the animation shape appears stuck (non-moving) and doesn't feel natural. This method attempts to provide a slight variation on trigger frames. Using Secondary Mix settings > 0.0 results in mixing behavior. Increasing the mix setting adds more fractional mix, similar to the operation of the Primary Bias setting.

Secondary Mix can be used to great effect, especially in SALSA setups with fewer shapes. However, this option should be used sparingly as it can amplify the configured shapes depending on their mesh configurations, which may or may not be desirable.

NOTE: As of v2.4.0+, it is no longer possible to override the secondary mix timings and handler. Secondary Mix now adheres to the primary triggered viseme's timings. Secondary Mix no longer uses a round-trip handler and turns off when the primary triggered viseme turns off. This new, simpler implementation produces much smoother results.

Rollback Option

When using 2D animation sequences, the Rollback option creates animation where there would otherwise simply be a flipped frame from one viseme to the next. When using blendshapes, configured visemes likely use different shapes or at the very least need to animate from one shape to another or from one weighted value to another. 2D switcher animations (sprite, texture, etc.) do not share this dynamic and if a value of animation has been reached, switching to another viseme (switcher animation sequence), the result is simply that the frame element is replaced with the end frame of the next viseme -- resulting in no animation. Rollback forces a rewind of the animation progression to ensure that some level of animation is created when the next viseme is activated.