OneClicks Overview

OneClicks are the equivalent of presets for different (supported) model types. They all generally operate the same way and produce similar results (as much as is possible considering the differences between model/character systems). The application of OneClicks should also be considered a starting point for setting up a character model. We have spent a lot of time testing different settings and configurations and have come up with a current setup that we feel creates a great look-and-feel. However, you should feel free to tweak and adjust any aspect that better suits your needs.

OneClick Installation

  • Make sure SALSA LipSync Suite is installed.
  • If upgrading from previously-installed OneClicks prior to v2.1.0, first remove the existing OneClick directory located here:
    Assets > Plugins > Crazy Minnow Studio > SALSA LipSync > Editor > OneClicks
  • Download and install the latest OneClick Base (REQUIRED for all OneClicks).
  • Download the appropriate OneClick unitypackage and install it.

NOTE: Installation of unitypackage files is quite simple. If you are new to the process, please see this page.

Applying the OneClick

  • Select the model's root in your scene.
  • Apply the OneClick -- GameObject menu: Crazy Minnow Studio > SALSA LipSync > One-Clicks

    If you installed the core examples, the included Promo-male audio clip will be assigned -- otherwise, add an AudioClip of your choice to the SALSA-linked AudioSource.

  • Hit 'Play'.

Currently Available OneClicks

Fuse

Special instructions: NONE

Reallusion CC3 & iClone

Special instructions: NONE

DAZ3D (for Genesis models)

Special instructions: NONE

Autodesk Character Generator (ACG)

Special instructions:
Autodesk supports level-of-detail (LOD) meshes on export. We are aware of four levels of detail and have built that into a helper script that provides an interface to switching these levels and subsequently switching out the SALSA, EmoteR, and Eyes configurations to work with each level. This functionality can occur at runtime, on-the-fly.

NOTE: Support for run-time LOD switching requires SALSA LipSync Suite version 2.0.1+

LOD functionality is built into the OneClick applied to the model. In most OneClicks, the configuration application is simply called and the SALSA Suite modules are added to the model and automatically configured. Autodesk gets an additional component added to the model which provides LOD functionality.

LOD Functionality

The following general rules of functionality are available to supported Autodesk models.

  1. Applying the OneClick to a model automatically applies SALSA, EmoteR, and Eyes and sets the model's highest level of detail as active.

  2. Specifying an LOD that does not exist results in an attempt to apply the next highest LOD until one is found. If the attempt exceeds the available levels for Autodesk (3 -- the fourth level: high), the operation is aborted and no levels are activated.

  3. Specifying an LOD increase [IncreaseLOD()] attempts to increase the LOD detail by one level. If the next level is not available, the process is repeated until a valid level is found. If no valid level is found, the process aborts.

  4. Specifying an LOD decrease [DecreaseLOD()] attempts to decrease the LOD detail by one level. If the next leve is not available, the process is repeated until a valid level is found. If no valid level is found, the process aborts.

  5. Autodesk utilizes up to 4 levels of detail. The OneClick API treats these levels as zero-based [0..3]. If using the OneClick API to change levels of detail at run-time, specify the LOD as an integer between [0..3] and understand the rules above.

    • 0 = crowd (lowest level)
    • 1 = low
    • 2 = mid
    • 3 = high (highest level)

API Information

namespace CrazyMinnow.SALSA.OneClicks

class OneClickAutodeskCGLod(){}


public bool SetLOD(int lodLevel)

Set a specific LOD based on [0..3] available LODs. Note the rules in LOD Functionality above. Returns true when successful and false when an available LOD is not found.


public int GetMaxLod()

Returns the highest LOD available based on [0..3] indexing. See LOD Functionality.


public bool IncreaseLOD()

Increases the level of detail based on the rules in LOD Functionality above. Returns true when successful and false when an available LOD is not found.

NOTE: A helper method is available that allows easy link-up to UGUI button functionality. It does not include the bool return value.
public void Increase()


public bool DecreaseLOD()

Decreases the level of detail based on the rules in LOD Functionality above. Returns true when successful and false when an available LOD is not found.

NOTE: A helper method is available that allows easy link-up to UGUI button functionality. It does not include the bool return value.
public void Decrease()


UMA

Special instructions:

NOTE: OneClickUmaDcs requires SALSA LipSync Suite v2.1.0+ and OneClickBase v2.1.5+

Since UMA is a run-time character system with many options, our setup scripts are slightly different than our other one-clicks and meant primarily to demonstrate what is possible when using the SALSA LipSync Suite with the UMA system. The SALSA Suite leverages the UMA Expression Player system for implementing the OneClick functionality. Using this system, it is easy to also leverage design-time preview mode, making it much more approachable to add/modify ExpressionComponents. It is; however, also possible to use UMA using Bone controller types if you prefer -- however, this would required the designer to implement this option manually.

We have developed a special controller type for use in SALSA Suite components: UMA. This controller type adds a proxy component (UmaUepProxy) to the GameObject that allows the core system to communicate with the UMA OneClick without the requirement of dealing with the dependencies of the UMA system in the core SALSA LipSync Suite. The OneClick for UMA also requires a "driver" component (UmaUepDriver), which is included in the OneClick package for UMA. This driver is the middleware to the UMA system -- it does have a dependency on the UMA package and will generate errors if it is imported into your project without UMA already being present. Once UMA is imported all errors should disappear.

Applying UMA OneClick

OneClickUmaDcs can be applied to any GameObject; however, for correct one-click operation, ensure you apply it to the root object where the UMA avatar is configured. We use the "Getting Started" option to setup an UMA character, leveraging the prefabs for UMA_DCS and UMADynamicCharacterAvatar in-scene.

The OneClick is applied to the UMADynamicCharacterAvatar in-scene.

Preview Mode

SALSA LipSync Suite leverages the avatars used in the UMA Core Tool - Expression Clip Editor (In the Examples folder) for preview. Therefore, for preview mode to work, the UMA / Examples / Expressions Examples folder must be present in your project. Once you have configured your avatar and no further configuration is required, you may remove this folder if desired. You may also remove the prefabs in the Crazy Minnow Studio / Addons / OneClickUMA folder.

NOTE: for preview operation, the UmaUepDriver component must be open in your GameObject's Inspector window.

Selective Eyes Module Implementation (Eye/Head)

If you wish to use your own Head or Eye animation method, you may do so by disabling the options in the UmaUepDriver component (in the Inspector). Simply uncheck the appropriate checkbox. We recommend using these options, but you are free to disable them if you wish.