Vertex Animation Manual

Hello World

In this manual, we will cover the usage and details of the Skele's Mesh-Manipulator.

With Mesh-Manipulator, developers could morph meshes & create vertex animations;

 

Here're two simple examples videos:

 

 

Okay, now let's get started ლ(╹◡╹ლ)


 Open & Close Mesh-Manipulator

Mesh-Manipulator has an EditorWindow, to bring it up, select the MenuItem located at 'Window/Skele/Mesh Manipulator' or use the hotkey 'Ctrl+Alt+M'

 StartMeshManipulator

 The EditorWindow looks like this:

StartMM

To get started, just click the "Start Edit" button to activate it.

Be noted that, the "Start Edit" button will be disabled if current selection doesn't contain a MeshFilter/SkinnedMeshRenderer; 

Also when the editor is activated, you cannot change the selection of GameObject;

To stop the editor, click the "End Edit" button in the image below.

EndMM

==============================================================

* What's the difference of MeshFilter & SkinnedMeshRenderer?

MeshFilter is for non-skinned mesh, i.e.: it's just a piece of mesh, it will not deform with bone, there's no bone related to this mesh;

SkinnedMeshRenderer is for skinned mesh, it contains array of bones and corresponding bone-weight info used to deform the mesh with bones.

* Can I use Mesh-Manipulator as Modeller?

No, Mesh-Manipulator is designed to morph existing meshes and make vertex animation.

It doesn't add/del mesh primitive ( vertex / edge / face );

==============================================================


 Navigation

In this page, we'll cover the navigation part.

The navigation is mostly the same as navigation in Unity.

Movement of camera: Hold RMB, W/S/A/D/Q/E - forward/backward/straft-left/strafe-right/downward/upward

Rotation of camera: Drag mouse with RMB held;

Alt+LMB: Rotate around pivot

Mousewheel: zoom in/out

MMB: Pan view 

Q: Focus camera on current pivot

 

We'll talk about the selection in next page;


 Selection

The first steps of modifying mesh is to select the target, not in the level of GameObject/Component, but in the level of vertices.

Mesh-Manipulator provides many ways to select vertices in target mesh, including click selection, border selection, All/None selection and loop-selection.

You could use the most appropriate methods according the use-cases.

Now, let's examine them one by one. 

 

Click selection

The most basic selection method is to click on the vertices (abbr. vert).

You might already notice that when Mesh-Manipulator is activated,the edge of mesh faces is drawn in black on the mesh surface. (the face edges are already processed by trying best merging overlapping vertices & merging triangles to form quads)

If you click on a vert, it will become selected and tinted yellow, meanwhile all other verts are deselected;

To add/remove vertices from selection, hold the "shift" and click vert, it will toggle the selection state of specified vert;

Be sure to remember that "shift" can be combined with all the other selection methods too.

MMClickSel1

We could use hotkey "Z" to toggle transparent mode, in which the mesh's material is changed to transparent and we can select the vert at the back side.

MMSel2


 Mesh Morph

In this page we'll talk about the how to morph the meshes.

We've been trying best to match the basic operations with the daily operations of Unity, in order to minimize the learning cost.

You could manipulate the vertices of meshes like how you treat the common GameObjects. 

Be sure to remember that you could use Ctrl+Z/Y to undo/redo the operations;

 

Move/Rotate/Scale

Move/Rotate/Scale vertices is the same as doing that on GameObjects;

1. select the target vertices;

2. use W/E/R to switch between Move/Rotate/Scale handle tool;

3. drag the handle to manipulate;

MMMorph1


 Save as Prefab

By default, the modified mesh is serialized in the scene file. (the xxx.unity file)

In this form, you could not access it in other scenes or save it as prefab.

You could save the mesh as prefab with the method below, so you can access it in other scenes.

MMPrefab 

Click the "Prefab" button on the GUI, it will prompt you to select a location to save the prefab.

Be noted that, if you've already done that before, then you don't have to do it again to make prefab, just drag it into project window will do.

In another word, it will not create two mesh asset for one object.


 Make Vertex Animation

Okay, as we're done talking about how to deform the meshes, now let's check out how to make animation with them :D

You could get an overview with this video:

===================================================================

shape animation

The key component in our vertex animation (or shape animation) implementation, is the MorphProc MonoBehaviour.

First, click the "MorphProc" button on the GUI, it would add the MorphProc MonoBehaviour on the target GameObject. Be noted that, the shape at the time will be taken as the base shape, which is the starting point of each morph.

NOTE: Don't add MorphProc manually.

Second, modify the mesh to the desired shape, and click the "New Deform" button on the MorphProc inspector, this will add a new "shape" into MorphProc.

Each "shape" has a weight in [0, 100] range, where 0 means no effect, 100 means full effect;

You could tweak the weight in inspector and see how it respond to your tweak.

Multiple shapes can take effect together, they work in an additive method, not override method.

MorphProc1

Third, After we get shapes ready, we could make shape animations.

Bring up the Animation View (if you're not familiar with Animation View, check this tutorial), and add keyframes on the weight for shapes.

(You could use curves to tweak the change rate of the weight value, like in the image below)

Voila! the shape animation clip is well made, you could play it in preview and play it in game-mode;

MorphProc2

 

 


 HotKeys

These are the hotkeys for Mesh-Manipulator of Skele, you could also find this list by clicking the "Shortcuts" button on the GUI.

W/E/R: move/rotate/scale
Q: Focus on pivot
A: Select all/none
Z: Toggle transparent mode
B: Toggle Border-selection
O: Toggle Soft-selection
S: Toggle Pivot-Orientation
D: Toggle Pivot-Position
[ ]: Tune the soft-selection range 
ESC: Cancel

Ctrl+RMB: Set 3D-cursor position
Ctrl+LMB: Loop selection

Alt+LMB: Rotate around pivot
Mousewheel: zoom in/out
MMB: Pan view