Logo - Crazy Minnow Studio - game, asset, tool development

Welcome to Crazy Minnow Studio! We are a small indie software development team primarily focused on game development using the Unity engine. Our pipeline includes: games, game development tools and assets, and video tutorial production. Check out our Unity lip sync asset, SALSA Lip-Sync, available on the Unity Asset Store. Follow our blog for updates on our Unity asset and game development, as well as other happenings in indie game development.

SalsaSync - Flexible SALSA map for custom characters

We offer 1-click synchronization scripts for many of the mainstream character generation systems,  but what do you do if you want to use SALSA with your custom made characters that don't have SALSA spec BlendShapes, or a character system we don't have a 1-click setup script for? This is why we created SalsaSync, a flexible universal free add-on for mapping SALSA and RandomEyes processed values onto your characters BlendShapes and bones. We love the ease of our 1-click setup scripts, but it's not possible for us to provide that for every custom character combination. SalsaSync trades 1-click ease of use for maximum flexibility, and a focus on providing you a tool to support the widest possible range of character configurations.


10/27/2017 - v2.5.0 Fixed a bug where blink values were not adhered to in the final output. Added a bone-based blink control option to support our new MakeHuman workflow.


Free add-on for mapping SALSA and RandomEyes output values to your custom characters

Be sure to install the SALSA with RandomEyes Asset before adding this add-on.

  1. Add the Salsa3D component to your character.
  2. Add the RandomEyes3D component to your character.
  3. Add the SalsaSync component to your character.
  4. Use the SALSA manual (speech shape reference) to approximate the SALSA spec shapes for saySmall, sayMedium, and sayLarge.
  5. Jaw movement: (If your jaw movement is separate from your speech BlendShapes)
    1. If your character uses one or more BlendShapes for jaw movement, link them to Jaw Shapes in the CM_SalsaSync inspector.
      1. NOTE: This also includes implements such as facial hair (i.e. moustaches, beards, etc.).
    2. If your character uses a jaw bone for jaw movement, link it to the Jaw Bone field and set the Jaw Local Rotation Axis to the local rotation axis of your jaw bone. The orientation you select will open the jaw. Consider the local axes handles and find the handle that opens the jaw (swings it down):
      1. Looking down the handle from cone to origin, determine if you need to turn the handle clockwise or counter-clockwise to open the jaw.
      2. Consider clockwise to be "positive" and counter-clockwise to be "negative".
      3. Next determine the axis by its color:
        1. Red = X
        2. Green = Y
        3. Blue = Z
      4. In the eye axis graphic below ("Local axis rotation examples.") consider the axes group with the blue ball. If your jaw were driven by a bone with this orientation you would:
        1. Select the red (X) handle. Looking at it from cone to ball (origin), you would need to turn the handle counter-clockwise (negative) to swing the jaw open.
      5. If your bone group orientation were like the second group (red ball):
        1. You would select the green (Y) handle. Looking down this axis from cone to ball (origin), you would turn it clockwise (positive) to open the jaw.
  6. Link to one or more blink BlendShapes if you have them.
  7. Choose one of the Eye Control options (BlendShapes or Bones).
    1. BlendShapes: Link to for eye position BlendShapes: lookUp, lookDown, lookLeft, lookRight.
    2. Bones: In the same manner as was used with the jawbone linkage above, link to the left and right eye bones. Next you will need to set the axes orientation for the bones. SalsaSync assumes both eye bone rigs use the same orientation. Ensure you are looking at the local axes transform and select the axis orientation for looking up and looking to the right (this is enough information for SalsaSync to control the eyes). In the graphic example below ("Local axis rotation examples."):
      1. Refer to the blue ball axes group, assuming your bone orientation was similar, you would configure SalsaSync in this manner:
        1. To look up, you would select the red (X) axis. Looking from cone to ball (origin) your would rotate the axis clockwise (positive).
        2. To look right, you would select the green (Y) handle. Looking from cone to ball (origin) you would rotate the axis clockwise (positive).
      2. Now, refer to the red ball axes group:
        1. To look up, you would select the green (Y) handle and this time, you'd rotate it counter-clockwise (negative) to roll the eye up.
        2. To look right, you would select the red (X) handle and for this example, you'd rotate the red handle counter-clockwise (negative) to look to the right.

Local axis rotation examples.

SALSA speech BlendShape reference images:

Example inspector settings for a custom iClone character.

Example inspector settings for a Fuse creator kit character.

Here is an Inspector example that demonstrates using SalsaSync to create a custom map to a modified iClone character.

NOTE: While every attempt has been made to ensure the safe content and operation of these files, they are provided as-is, without warranty or guarantee of any kind. By downloading and using these files you are accepting any and all risks associated and release Crazy Minnow Studio, LLC of any and all liability.

Download Files

Simple Automated Lip Sync Approximation
~ We look forward to seeing what you create! ~

Buy SALSA on the Asset Store

Categories:SALSA, Tutorials

Comments:No comments yet