Abstract facial expressions system of human models for Unity.
- Blink system (eyelid animation)
- Support blend shape on
SkinnedMeshRenderer
. - Support
Animator
. - Provide procedural blink animation generation with random.
- Support blend shape on
- LipSync system (lip animation)
- Support blend shape on
SkinnedMeshRenderer
. - Support
Animator
. - Provide audio volume based lip sync.
- Support blend shape on
- Emotion system
- Support blend shape on
SkinnedMeshRenderer
. - Support
Animator
. - Support generic emotion definition.
- Provide basic emotion defined by Paul Ekman.
- Support blend shape on
Core APIs are as follows:
- Data
XXXSample
: Set of morphing target and weight.XXXAnimationFrame
: Set ofXXXSample
and duration just a frame.
- Morpher
IXXXMprpher
: Morphs models by specifiedXXXSample
.
- Animator
ISequencialXXXAnimator
: Animates models by specified collection ofXXXAnimationFrame
.IFramewiseXXXAnimator
: Animates models by inner state per game engine frame.
Morpher and animator is abstracted by interfaces.
It is possible to implement them according to how you want to control yur human model.
- VRM
- Blink, lip and emotion animators for VRM model.
- VOICEVOX
- VOICEVOX audio query based lip animation.
- uLipSync
- Voice analysis based lip animation by uLipSync.
Add following dependencies to your Packages/manifest.json
:
{
"dependencies": {
"com.mochineko.facial-expressions": "https://github.com/mochi-neko/facial-expressions-unity.git?path=/Assets/Mochineko/FacialExpressions#0.4.4",
"com.mochineko.relent": "https://github.com/mochi-neko/Relent.git?path=/Assets/Mochineko/Relent#0.2.0",
"com.mochineko.relent.extensions.unitask": "https://github.com/mochi-neko/Relent.git?path=/Assets/Mochineko/Relent.Extensions/UniTask#0.2.0",
"com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask",
...
}
}
.
All dependencies are in package.json.
If you use VOICEVOX extension, please add following dependencies:
{
"dependencies": {
"com.mochineko.facial-expressions.extensions.voicevox": "https://github.com/mochi-neko/facial-expressions-unity.git?path=/Assets/Mochineko/FacialExpressions.Extensions/VOICEVOX#0.4.4",
"com.mochineko.voicevox-api": "https://github.com/mochi-neko/VOICEVOX-API-unity.git?path=/Assets/Mochineko/VOICEVOX_API#0.2.2",
...
}
}
.
If you use VRM extension, please add following dependencies:
{
"dependencies": {
"com.mochineko.facial-expressions.extensions.vrm": "https://github.com/mochi-neko/facial-expressions-unity.git?path=/Assets/Mochineko/FacialExpressions.Extensions/VRM#0.4.4",
"com.vrmc.gltf": "https://github.com/vrm-c/UniVRM.git?path=/Assets/UniGLTF#v0.108.0",
"com.vrmc.vrm": "https://github.com/vrm-c/UniVRM.git?path=/Assets/VRM10#v0.108.0",
"com.vrmc.vrmshaders": "https://github.com/vrm-c/UniVRM.git?path=/Assets/VRMShaders#v0.108.0",
...
}
}
.
If you use uLipSync extension, please add following dependencies:
{
"dependencies": {
"com.mochineko.facial-expressions.extensions.ulipsync": "https://github.com/mochi-neko/facial-expressions-unity.git?path=/Assets/Mochineko/FacialExpressions.Extensions/uLipSync#0.4.4",
"com.hecomi.ulipsync": "https://github.com/hecomi/uLipSync.git#upm",
"com.neuecc.unirx": "https://github.com/neuecc/UniRx.git?path=Assets/Plugins/UniRx/Scripts",
...
}
}
.
- Sample to use VOICEVOX and VRM.
- Sample to use audio volume based lip sync.
- Sample to use uLipSync and VRM.
See CHANGELOG.
See NOTICE.
Licensed under the MIT license.