[Alpha] Alternative Blendshape Controller plugin for VNyan
A downloadable tool
This is an early version of the alternative blendshape controller plugin. This plugin is a successor to the MDD animations plugin, and in its current state makes the MDD animations plugin largely obsolete*. In its current state, the plugin can be used to look up and trigger mesh blendshapes directly in VNyan and create animations from a sequence of them. This includes blendshapes for props, worlds, throwables, etc.
Blendshapes:
To set up a normal blendshapes, open the menu and select the Simple Blendshapes tab. Click the green "+" in the top right, and a new panel will appear. Here specify a name for the blendshape, the name of the mesh of the blendshape, the index of the blendshape on the mesh (zero-indexed), the value it should default to when activated, and the number of frames over which ti should get to that value. You can press the "S" buttons to look up all loaded meshes with blendshapes on them and the blendshapes with indices on the selected mesh respectively. To toggle the blendshape, create a Call Trigger node with the name specified under Blendshape Name.
The value sockets on the Call Trigger node can be used to override the settings in the plugin menu. Value 1: Use this sockets to specify an exact target value as override; Value 2: Use this socket value to specify an incremental value to increase/decrease the blendshape value by each time the node is activated; Value 3: specify a new smoothing value; Text 3: Due to limitations of Unity values, setting Value 1 to 0 will do nothing. Set Value 6 to "Reset" to explicitly set a blendshape value to 0.
Animations:
The blendshape animations work largely similar to the old MDD animations plugin, in that it is set up to allow linearly interpolating missing frames to save on resources. For detailed instructions on how to set up a blendshape animation, please see the MDD animations github: https://github.com/NeocortexVT/Neo_SparseMDD NOTE: DO NOT CREATE BLENDSHAPE CLIPS IF YOU PLAN ON USING THIS PLUGIN. To set up the blendshape animation in VNyan, open the UI for this plugin and go to the Blendshape Animations tab. Click the green plus on the top right to create a new entry. Specify a name for the animation and the name of the mesh that the blendshapes that form the animation are on (click the "S" for a lookup window). If you have pruned blendshapes for the animation at different rates across the animation, specify the index of each last blendshape in a series with the same pruning rates (if you have pruned everything at the same rate, put the index of the last blendshape in the animation here; click the "S" for a lookup window). Under Pruning Values, specify the pruning rates for each series (if you have not done any pruning, just put a 1 here). First Index is used if a mesh has any blendshapes not used for the animation preceding the animation-related blendshapes on the mesh. Trigger Frames is a list of FRAMES (not blendshapes) of the animation upon which the plugin will call a trigger, which can be used to automatically trigger other events at certain points during the animation. Playback Setting specifies the method animations are played: Default = play once; Reverse = play once in reverse (may be bugged?); Loop = Keep looping the animation; ReverseLoop = Play the animation forwards and then backwards, on a loop. To deactivate a looping animation, simply trigger the animation again, after which it will finish its current loop and then end. Auto Reset specifies whether the animation will automatically reset to its starting state when finished, or stay in the final position.
As with simple blendshapes, the Call Trigger node values can be used to override some settings: Text 2 can be set to either "Reset" or "Revert" which will immediately stop and reset the specified animation. "Reset" will set the blendshape values to the starting position of the last specified animation type (all to 100 for reversed animations, 0 for the rest). "Revert" will set all animation values back to what they are set to in the UI and reset the blendshape values accordingly (all to 100 for reversed animations, 0 for the rest). Text 3 can be set to a specific playback setting ("Default", "Reverse", "Loop", "ReverseLoop"). Future plans are to implement playback speed options for the animations and an input to override trigger frames.
There are a few special trigger names that are used by the plugin, which can be listened for with the Trigger node:
- ABC_ExitAnimation: Is called whenever an animation finshes playing. Text 1 carries the name of the animation.
- ABC_TriggerFrame: Is called whenever a trigger frame of an animation is finshed playing. Text 1 carries the name of the animation. Value 1 carries the number of the frame that triggered it.
- ABC_ExitBlendshape: Is called whenever a blendshape has reached its target value. Text 1 carries the name of the blendshape. Value 1 carries the target value that was achieved.
Future plans (due to obligations/other projects, these may take a while to implement):
- Implement tracking blendshapes and corresponding blendshape blending, toggle individual tracking blendshapes.
- Perform optimisations to handle tracking blendshapes and many copies of meshes.
- An option to automatically make entries for all blendshapes on a given mesh (either all, or within a range of indices).
- In its current state, the plugin does not override the VRM blendshape proxy. This means that any mesh blendshapes that are associated with VRM blendshape clips cannot be set by the plugin. Depending on the implementation, this will be added in the future. *To animate blendshapes with VRM blendshape clips, use the old MDD animations plugin for the time being.
- If multiple copies of the same mesh exist (for example for throwables), only the oldest existing copy that was spawned can currently be controlled by the plugin. Future versions may have features to control specific/all copies.
Please let me know if there are any issues or requests.
Published | 1 day ago |
Status | In development |
Category | Tool |
Author | NeocortexVT |
Tags | animations, blendshapes, Controller, mdd, plugin, vnyan |
Leave a comment
Log in with itch.io to leave a comment.