Skip to content

joscanper/unity_facesync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unity FaceSync

Simple face blendshape control system for Unity.

1. Installation

Simply checkout the project or unzip on your Unity project folder. Make sure the settings path is located somewhere like:

YourUnityProject/Assets/FaceSync/FaceSync/Settings

2. Setting up BlendShapeIDs

Before starting you will need a mesh exported with blendshapes. Blendshapes will appear on the SkinnedMeshRenderer component.

For each blendshape you are planning to use from your mesh you will need a BlendShapeID.

To create a new FaceSyncBlendShapeID asset right click on your Project view : Create/FaceSync/BlendShapeID

Fill the Identifier field with the name of the mesh blendshape this asset refers to (It has to be one of the BlendShapes that appear in the SkinnnedMeshRenderer list).

3. Setting up BlendSets

We can use BlendSets in our FaceSyncData (more about this below) in order to show expresions, lipsync, blinking and whatever we want to do with our mesh blendshapes.

For example, if we want to configure our character for lip syncing we will need an alphable of BlendSets.

The following mouth alphabet would require 6 BlendSets.

To create a new FaceSyncBlendSet asset right click on your Project view : Create/FaceSync/BlendSet

Once created, add the BlendShapeIDs you want to use and adjust their values.

A BlendSet will need one or more BlendShapeIDs with their respective values in order to be shown on your character.

In order to preview the BlendSet on your character, attach the component FaceSyncBlendSetPreview to the object with the SkinnedMeshRenderer and assign the data file.

Keep adding BlendSets and BlendShapeIDs until you have a complete mouth alphabet (Check the ones used in the demo).

You can use BlendSets for other things like expressions, blinking, looking around, etc.

4. Setting Up detection rules

Detection rules are used as a substitute to speech recognition (it might be added in a future) and will speed up your workflow since you won't need to assign all BlendSets manually for a dialog line. For example you can write "Hello, how are you?" and autodetection will search for suitable BlendSets to use for that line.

To create a new FaceSyncDetectionRules asset right click on your Project view : Create/FaceSync/Detection Rules

Now you can add multiple rules to it like : "a" for your blendset that plays that vowel or "th" for the corresponding blendset.

Place the rules that have longer identifiers first so they are detected correctly.

You can assing the same BlendSet to different identifiers, for example, in the alphabet show above "a" and "i" would use the same BlendSet.

Finally, add your rules to FaceSync Settings asset, located at FaceSync/Data/Settings.

5. Creating a character dialog

With BlendShapeIDs, BlendSets and detection rules configured you can now create a FaceSyncData asset which will contain your character dialog.

To create a new FaceSyncData asset right click on your Project view : Create/FaceSync/Sync Data

First, assign the audio clip that will be used, second, write the dialog that will be used to detect phonemes.

If you have setup the detection rules properly, click "Detect Keyframes" ant the timeline will get filled with blendsets.

In order to preview the sync data on your character, attach the component FaceSyncDataPreview to the object with the SkinnedMeshRenderer, assign the data file, run your game and click the "Play" on the component.

Blinking & eyes movement

In order to add blinking to your character, create a BlendSet with the character eyes closed (Again, check the demo).

You can attach the component FaceSyncRandomPlayer to your SkinnedMeshRenderer and add the blink BlendSet to the Entries list.

Similarly, if your character eyes are controlled with BlendShapes you can create 4 BlendSets for looking up, down, left and right and add them to the FaceSyncRandomPlayer component.

About

Face BlendShapes control system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages