Scriptable Blendshapes | Morph Management - Shape Key Metadata - Code Generator
NXVR Studio
Publisher | NXVR Studio |
---|---|
File size | 207.94MB |
Number of files | 91 |
Latest version | 3.0.0 |
Latest release date | 2024-11-07 09:09:11 |
First release date | 2024-11-07 09:09:11 |
Supported Unity versions | 2018.4.2 or higher |
Problem: Support queries with other publishers can take hours, days or even weeks.
Solution: 24/7 Instant Access to support and extensive code help
We have trained a GPT with code interpreter functionality on the source code, documentation and troubleshooting data of this asset to better assist our customers when they need a long sequence of immediate responses. This enables us to provide support for extensive queries above and beyond what can realistically be expected of asset publishers.
[Link available in the package contents]
---
Problem: Unorganized and Hard-to-Manage Blendshapes
In Unity, blendshapes are typically listed as an unstructured array of names, making it difficult to manage, especially when dealing with dozens or even hundreds of blendshapes. Finding the specific blendshape you need, or grouping them in any meaningful way, becomes a tedious, frustrating task.
Solution: Seamless Organization with Scriptable Blendshapes
Scriptable Blendshapes introduces a logical hierarchy system that allows you to organize blendshapes into meaningful classes, groups, and subtypes. This means no more scrolling through endless lists trying to remember which blendshape does what. With this system, you can group blendshapes by body parts, facial expressions, or any custom category you need, turning chaotic lists into an intuitive and manageable structure. This leads to faster workflows and fewer mistakes in the long run.
------
Problem: Tedious and Error-Prone Blendshape Code Creation
When writing scripts to control blendshapes, the manual process is slow, repetitive, and prone to mistakes—especially in larger projects. Unity provides no out-of-the-box way to streamline this process, which means you’re left to write custom code for each individual blendshape control by hand.
Solution: Instant Visuaual Click-to-Code Generation
With the UB3 Bridge Code Generator, you can generate all the blendshape control code you need instantly. Whether you’re using the UB3 Code Bridge or Unity’s default methods, this tool automatically generates accurate, ready-to-use code snippets. This saves countless hours of development time and ensures that your scripts reference the correct blendshapes every time—no more typos or manual errors slowing you down.
---
Problem: Confusing, Hard-to-Maintain Code for Blendshape Control
Unity’s default method for controlling blendshapes relies on index numbers—an unintuitive and error-prone system. If you’ve ever tried to manage blendshapes through scripting, you know how difficult it is to remember which index corresponds to which blendshape. This leads to code that’s hard to read, maintain, and debug, especially in large projects.
Solution: Human-Readable, Future-Proof, Name-Based Code
With the UB3 Code Bridge from Scriptable Blendshapes, you can say goodbye to confusing index numbers. This plugin lets you control blendshapes using names, classes, and groups, making your code easy to understand and maintain. It’s not only will your code be clearer for you today, but it also ensures that your code is more future-proof. If you modify your blendshape set or index poisitions down the line, you won’t have to rewrite your entire script—your named references will still work perfectly.
-----
Problem: Inconsistent Blendshape Management Across Assets
When working on large projects with multiple characters, maintaining consistency in how blendshapes are organized and managed in script can be nearly impossible in Unity’s default system. Without a centralized way to manage metadata and hierarchy, blendshape data often becomes inconsistent, leading to chaotic workflows and disorganized assets.
Solution: Centralized, Consistent Control with Scriptable Objects
Scriptable Blendshapes introduces a centralized, reusable metadata system that applies across your entire project. With its blendshape hierarchy and metadata tools, you can standardize how blendshapes are organized, categorized, and controlled across multiple characters and assets. This ensures that your workflows remain efficient, organized, and scalable, even as your project grows.
------
Scripable Blendshapes Quick Start Workflow:
1) Open Blendshape Management Tool, assign skinned mesh with blendshapes and create new blendhshape menadata ad blendshape class hierarchy scriptable objects with the provided buttons in the left column
2) Create a blendshape hierarchy by clicking the Edit Class Hierarchy and adding the appropriate Class/Group/Subtype array items for your project
//Example:
Animation (Class)
-Face (Group)
---Eyes (Subtype)
---Mouth (Subtype)
---Brow (Subtype)
-Body (Group)
---Arms (Subtype)
---Legs (Subtype)
3) Assign blendshapes to classes using either the Blendshape Management Tool, or the Batch Blendshape Editor tool found in the "tools" tab in the top bar.
4) Use the UB3 Bridge Code Generator to Implement methods for manipulating blendshapes via new or existing scripts.
//Example
ub3CodeBridge.LerpIncreaseBlendshapeWeightBySubtype("TakeDamage", 100f, 0.2f);
ub3CodeBridge.LerpResetBlendshapeWeightBySubtype("TakeDamage", 0.4f);
**You can also automatically generate code (with comments) for default unity methods with an easy search-and-click interface.
5) Assign blend shape metadata scriptable object and skinned mesh renderer to a UB3 code bridge component in your scene to utilize pre-established public methods or create your own using the metadata from the scriptable objects (.asset)
----
List of methods available through the UB3 Code Bridge:
Methods for Blendshapes by Name
SetBlendshapeWeightByName
GetBlendshapeWeightByName
IncreaseBlendshapeWeightByName
DecreaseBlendshapeWeightByName
LerpBlendshapeWeightByName
LerpIncreaseBlendshapeWeightByName
LerpDecreaseBlendshapeWeightByName
ResetBlendshapeWeightByName
LerpResetBlendshapeWeightByName
Methods for Blendshapes by Class
SetBlendshapeWeightByClass
ResetBlendshapeWeightByClass
LerpBlendshapeWeightByClass
LerpIncreaseBlendshapeWeightByClass
LerpDecreaseBlendshapeWeightByClass
LerpResetBlendshapeWeightByClass
Methods for Blendshapes by Group
SetBlendshapeWeightByGroup
ResetBlendshapeWeightByGroup
LerpBlendshapeWeightByGroup
LerpIncreaseBlendshapeWeightByGroup
LerpDecreaseBlendshapeWeightByGroup
LerpResetBlendshapeWeightByGroup
Methods for Blendshapes by Subtype
SetBlendshapeWeightBySubtype
ResetBlendshapeWeightBySubtype
LerpBlendshapeWeightBySubtype
LerpIncreaseBlendshapeWeightBySubtype
LerpDecreaseBlendshapeWeightBySubtype
LerpResetBlendshapeWeightBySubtype
Other Methods
InitializeBlendshapeMap
ResetAllBlendshapesToDefault