Micro Expressions
Create expression animations using a bezier editor tool to give your characters a unique personality.
(Model: Julia Sanders by @whatsupbrody, hair by @oeshii )
Why this plugin?
While there's many plugins available to randomise expressions, I found them to be a bit robotic, and I felt there was no satisfying way to build unique "personality" into a character. I found timeline quite challenging to create complex expressions, and the lack of custom bezier made some sequences practically impossible.
So I created a custom bezier editor sequencer that allows very fine control over morphs, eye and head rotation - the things you need to bring character's facial expressions to life.
Use Cases
I use this in three ways;
Installation
Add the plugin to a Person Atom.
You can configure a custom Keybinding to open the editor window via AcidBubbles' Keybindings plugin
Editor Overview
The editor appears in the right side of the screen and allows you to do everything to create and edit animations, without having to mess about in the plugins tab.
I wanted to make this as easy as possible given the constraints of VAM's UI, while making it convenient to work with timeline if you're animating.
Create Animation
Click create icon to create a new animation. You can set the name, apply tags and set the duration of the animation through the properties on screen.
Add Target
Next, add some targets. You can add Morphs, Eye target or head rotation targets
Add Morph
To add a morph, find the morph you want on the Morphs tab and click the "Copy UID" button. Then click the Add Morph icon (the emoji+).
Add Eye Target
Add Eye target with the Add Eye Target button (eye+). This will add beziers for X (up/down), Y (left/right) and z (distance). You can delete the axes you're not interested in using.
Add Head Rotation
Add Head Rotation with the Add Head Target button (head+). This will add beziers for X (up/down), Y (left/right) and Z (tilt). You can delete the axes you're not interested in using.
Tags
You can add tags to an animation as a comma separated list. You can then use these to play a random animation that matches one of the specified Tags using a trigger, or from timeline. Examples might be idle, happy, sad etc.
Time
Set the duration for the animation. Generally this plugin is designed for short animation sequences.
Edit Modes
There are three edit modes; from left to right:
* Manual - stops the animation, use manual scrubbing to play
* Repeat - plays the animation in a loop
* Script - Waits for a Trigger to start an animation eg timeline
Show/Hide
Click the show/hide button to toggle the editor. This is useful if you have other plugins occupying the same location such as the excellent Posing Helper by @Ruvik
Bezier Editor
When you add a target you can play around with the bezier editor to add control points using the mouse pointer. The mouse controls are:
Scaling
Use the grab handles to the right of the editor to scale the maximum and minimum values. The top of the bezier will represent the max value and min value is the minimum. The line in the middle is the zero point.
Runtime Settings
Preset
Load or save a preset.
Mode
Automatic mode plays animations that match the specified Tags randomly with a pause between Pause Min/Max seconds in-between.
In script mode, Animations are triggered via script (eg timeline)
Head Control
If you are using this along side other plugins that control head movement like MacGruber's Gaze etc, you can choose Torque and head rotation will work alongside it. Other plugins that control the head may also co-operate with it, but no guarantees.
If you are planning on recording animations within timeline, choose Rotation so that timeline will be able to record the key frames. Make sure that Rotation is set to On for the head control.
Disable Head Control if you find it doesn't play well with your other plugins.
Eye Target
Defines whether to default eye target back to the player or the target at the end of an animation. If using interactively, you probably want Player.
If you're using this with timeline, choose Target so that the eye target frames are captured.
Disable Eye Target if you find it doesn't play well with your other plugins.
Using Timeline Recording
You can use this plugin to setup animations via the bazier editor, then record the keyframes in timelime - a bit like motion capture. This is handy if you want the granularity of the custom editors editors, but don't want to ship the plugin in the final scene.
To do this, first set Head Control to Rotation and Eye Control to Target. Set up your animations as desired. When you are ready to record, add the morphs, head control and Eye Target controls as targets in timeline and arm the recording. You can then play the animation and timeline will capture the keyframes. See Timeline documentation for more details.
Scripting Options
There are storables available to:
Play an animation by Id - plays the animation immediately
Queue an animation by Id - queues the animation
Play an animation by Tag - plays a random animation matching one of the tags specified immediately.
Queue an animation by Tag - queues a random animation matching one of the tags specified
Tags
When specifying a tag, you can have multiple values eg Happy, Excited will play a random animation that is tagged as either Happy or Excited.
Tips
You should make sure to start and end at the zero point generally to avoid sudden changes when an animation starts
The first and last control points can me moved anywhere on the editor. This can simplify animations by reducing the number of control points needed.
To avoid it being too repetitious make several animations within the same tag, and keep things subtle.
Use eye target to simulate Saccades, this adds a lot of realism.
There is a small sample preset that ships with the plugin you can review.
Bug Reports & Feedback
If you find bugs or have suggestions, please let me know.
Create expression animations using a bezier editor tool to give your characters a unique personality.
(Model: Julia Sanders by @whatsupbrody, hair by @oeshii )
Why this plugin?
While there's many plugins available to randomise expressions, I found them to be a bit robotic, and I felt there was no satisfying way to build unique "personality" into a character. I found timeline quite challenging to create complex expressions, and the lack of custom bezier made some sequences practically impossible.
So I created a custom bezier editor sequencer that allows very fine control over morphs, eye and head rotation - the things you need to bring character's facial expressions to life.
Use Cases
I use this in three ways;
- As an expression randomiser; When in Automatic mode, the plugin will play animations randomly with a random pause in-between. You can apply tags to animations, and have the matching tags play automatically. For example; sad, happy or excited.
- Scripted; play an animation through a trigger; for example from timeline or another plugin. You can play an animation by it's name, or play a random one matching a specified tag.
- For Baking Animations; Setup animations using the bezier editors, then record the keyframes in timeline, essentially "baking" the animation, similar to motion capture.
Installation
Add the plugin to a Person Atom.
You can configure a custom Keybinding to open the editor window via AcidBubbles' Keybindings plugin
Editor Overview
The editor appears in the right side of the screen and allows you to do everything to create and edit animations, without having to mess about in the plugins tab.
I wanted to make this as easy as possible given the constraints of VAM's UI, while making it convenient to work with timeline if you're animating.
Create Animation
Click create icon to create a new animation. You can set the name, apply tags and set the duration of the animation through the properties on screen.
Add Target
Next, add some targets. You can add Morphs, Eye target or head rotation targets
Add Morph
To add a morph, find the morph you want on the Morphs tab and click the "Copy UID" button. Then click the Add Morph icon (the emoji+).
Add Eye Target
Add Eye target with the Add Eye Target button (eye+). This will add beziers for X (up/down), Y (left/right) and z (distance). You can delete the axes you're not interested in using.
Add Head Rotation
Add Head Rotation with the Add Head Target button (head+). This will add beziers for X (up/down), Y (left/right) and Z (tilt). You can delete the axes you're not interested in using.
Tags
You can add tags to an animation as a comma separated list. You can then use these to play a random animation that matches one of the specified Tags using a trigger, or from timeline. Examples might be idle, happy, sad etc.
Time
Set the duration for the animation. Generally this plugin is designed for short animation sequences.
Edit Modes
There are three edit modes; from left to right:
* Manual - stops the animation, use manual scrubbing to play
* Repeat - plays the animation in a loop
* Script - Waits for a Trigger to start an animation eg timeline
Show/Hide
Click the show/hide button to toggle the editor. This is useful if you have other plugins occupying the same location such as the excellent Posing Helper by @Ruvik
Bezier Editor
When you add a target you can play around with the bezier editor to add control points using the mouse pointer. The mouse controls are:
- Right Mouse Click - add a new control point
- Shift Right Mouse Click - remove a control point
- Click & Drag a control point with the left mouse button to move it
- Click & Drag on the background to scrub the animation
- Control + Left Click a control point to select it. You can then drag all selected control points horizontally by holding down shift. The selected points can be across multiple editors.
Scaling
Use the grab handles to the right of the editor to scale the maximum and minimum values. The top of the bezier will represent the max value and min value is the minimum. The line in the middle is the zero point.
Runtime Settings
Preset
Load or save a preset.
Mode
Automatic mode plays animations that match the specified Tags randomly with a pause between Pause Min/Max seconds in-between.
In script mode, Animations are triggered via script (eg timeline)
Head Control
If you are using this along side other plugins that control head movement like MacGruber's Gaze etc, you can choose Torque and head rotation will work alongside it. Other plugins that control the head may also co-operate with it, but no guarantees.
If you are planning on recording animations within timeline, choose Rotation so that timeline will be able to record the key frames. Make sure that Rotation is set to On for the head control.
Disable Head Control if you find it doesn't play well with your other plugins.
Eye Target
Defines whether to default eye target back to the player or the target at the end of an animation. If using interactively, you probably want Player.
If you're using this with timeline, choose Target so that the eye target frames are captured.
Disable Eye Target if you find it doesn't play well with your other plugins.
Using Timeline Recording
You can use this plugin to setup animations via the bazier editor, then record the keyframes in timelime - a bit like motion capture. This is handy if you want the granularity of the custom editors editors, but don't want to ship the plugin in the final scene.
To do this, first set Head Control to Rotation and Eye Control to Target. Set up your animations as desired. When you are ready to record, add the morphs, head control and Eye Target controls as targets in timeline and arm the recording. You can then play the animation and timeline will capture the keyframes. See Timeline documentation for more details.
Scripting Options
There are storables available to:
Play an animation by Id - plays the animation immediately
Queue an animation by Id - queues the animation
Play an animation by Tag - plays a random animation matching one of the tags specified immediately.
Queue an animation by Tag - queues a random animation matching one of the tags specified
Tags
When specifying a tag, you can have multiple values eg Happy, Excited will play a random animation that is tagged as either Happy or Excited.
Tips
You should make sure to start and end at the zero point generally to avoid sudden changes when an animation starts
The first and last control points can me moved anywhere on the editor. This can simplify animations by reducing the number of control points needed.
To avoid it being too repetitious make several animations within the same tag, and keep things subtle.
Use eye target to simulate Saccades, this adds a lot of realism.
There is a small sample preset that ships with the plugin you can review.
Bug Reports & Feedback
If you find bugs or have suggestions, please let me know.