Skip to content

sachaamm/eMoji

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eMoji


Generative face animation and modelling Tool

---Key Controls---

CAMERA :
TURN > Mousewheel click
DRAG > Right Click
ZOOM > Mousewheel


OVERVIEW


the eMOJI Unity Asset is a project which allows you to animate face of your character, generate severals faces,
generate Hair procedurally, with FBX Files or other 3D formats , but you can add face animation over FBX rigged animations.
You can edit, save , or load during runtime baked animations , thought to be low- ressources process.
the eMOJI Unity Asset can also be used for generic Vertex Anim over regular shapes ( and will use differents tools to edit the vertex position )
He allows you also to edit the uv map for your character , change the skin color , select material , and perhaps in future generate cloth.
We want also to generate humans with age parameter , including body proportions . For the character model , we want to notice that we
used MakeHuman software , a great free software , which provide a good quality face indexing with a reasonable number of poly.
Because of this good quality face indexing, we are just intent to change the vertices positions for the animations and the character creation.


TROUBLES ##


FBX Transposing
FBX index linking for your vertices is different usally than other 3D formats , as DAE for example.
RayTracing over mesh collider from a .fbx file is inefficient in Unity , as I tried for my experience ( but I have to confirm or infirm it ... )
So we have to transpose the mesh indexes from FBX to DAE , a process which complexify the code.

Unity integration
eMoji should be great as an external application to be exportable on each game engine , projects and more.
We built eMoji in Unity in a first step because of all features specially raytracing , click to realWorldPos , or FBX rigged animations reading.
Because we want to provide generative solutions with a reasonable cost for each machine , we will think about it in a future time , but it should required
too heavy works to solve it quickly , because in this case we should create our own engine , including neceserally raytracing with mesh colliding and to
build and load rigged animations from fbx files standards.
Recently, I was also very interested to work more on Unreal Engine for my future projects , just to get better graphics results and quick programming with Blueprint, and
this is why I really want to code this in an eportable appplication.

Shared Mesh
Because of the optimized fbx resource requiring , Unity use a sharedMesh model with FBX files, stored in cache , so we cannot modifiy separately 2 characters depending on the same
sharedMesh.

Concurrence
Obviously , we know they are so many talented programmers teams who already works on this idea of character generation , if I want to quote some of them I will quote Mixamo , Faceshift ,
Black desert and also more ( but so talented ) not very well-known projects from 3D programmers
(Youtube links)
I want to quote SALSA also , which is a great asset providing generative facial animation with written text.
This is absolutely the goal of this project , generative approach of character creation.
To end the troubles section , I want to say that the further goal is not to build a high realistic characters ( because Unity graphics doesn't afford the best , expect if you're a talented shader programmer)
but more to offer generative and exportable solutions for baked face animations , generative animation and generative creation of character ( with hairs and clothes )


## RESEARCHES

Hair shaders

## PRINCIPLES ##


DESIGN YOUR FACE ANIMATION ###


1 - Basically, you first put your models on eMoji and start tracking .
OR
You choose the model provided for the exampless , which contains already vertice groups
The vertices grid corresponding to your fbx file vertices positions ( after index transposing ) ,adjust the bouding box where you gonna load all vertices from the FBX file.
2 - You select vertices you want to add to your vertice selection , navigating around your mesh.
3 - When your vertice selection is done , you can save your selection as a file.
4 - Then , you select the vertice selection and you can edit your vertice , for example if you selected the nose of your character you can turn it bigger , etc ...
5 - When you're done with your nose editing , you save it in a keyframe . Go to an other keyframe , and edit an other state of your character nose. When you're done,
you just have to run the animation and save it when you want . You can edit keyframes, and vertices positions are interpolated in the animation.
Finally you just have to save the anim file and you're done. You will be able to load it in runtime of your game calling it from everywhere.


### GENERATE A FACE ANIMATION IN RUNTIME ###

### DESIGN YOUR CHARACTER ###
1 - Basically, you first put your models on eMoji and start tracking .
OR
You choose the model provided for the exampless , which contains already vertice groups
The vertices grid corresponding to your fbx file vertices positions ( after index transposing ) ,adjust the bouding box where you gonna load all vertices from the FBX file.
2 - You select vertices you want to add to your vertice selection , navigating around your mesh.
3 - When your vertice selection is done , you can save your selection as a file.
4 - Then , you select the vertice selection and you can edit your vertice , for example if you selected the nose of your character you can turn it bigger , etc ...
5 - You can also design the hair of your character and your clothes.
6 - When you're done , you just have to save your character in a file , and you can load it in runtime of your game calling it from everywhere.


### GENERATE A CHARACTER IN RUNTIME ###


### GENERATE HAIR IN RUNTIME ###


SCRIPTS ##



---ANIMATION---

BakedAnimationController.cs > Permet de creer , editer et jouer des animations bakees , cest a dire des animations qui sont gerer en fonction de vertex groups
FaceMorpher.cs
RiggingController.cs
SkinnedFaceController.cs
TrackerAnimator.cs

---APPEARENCE---

BuildSkinColor.cs
ChangeSkinTexture.cs

---CAMERA---

DragCamera.cs
NavigateCamera.cs
ResetCameraPos.cs
RotateAround.cs
SwitchCameraClipping.cs

---DEBUG---

DebugMeshs.cs
RaytracingDebug.cs

---DISPLAY---

ChangeGridCubeSize.cs
HitpointScript.cs

---EYE---

ConstrainEyeRotation.cs
EyeFocusMover.cs
MoveEye.cs
MoveEyeGoal.cs

---FILE---

LoadAnimFile.cs
LoadFile.cs
LoadMeshFile.cs
ReadFaceFile.cs
SaveAnimFile.cs
SaveFaceFile.cs
SaveFile.cs
SaveMeshFile.cs
SkinnedLoadFile.cs

---GUI---

GUIOptions.cs
SkinnedGUIOptions.cs

---MESH---

FbxToMeshCollider.cs
LinkDaeToFbx.cs

---PROCEDURAL HAIR---

BuildHairGrid.cs
BuildHairPoints.cs
BuildPearls.cs
HairGenerator.cs
HairGenerator_1.cs
HairGenerator_Modulate.cs
HairGenerator_Old.cs
TerrainGenerator.cs

---TRACKING---

FaceTracking.cs
HumanGrid.cs
HumanGrid2.cs
SkinnedFaceTracing.cs
SkinnedFaceTracing_Old.cs


About

Generative face animation and modelling Tool

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages