You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project is working toward a complete character skinning & animation library for the web. First most, this library is focused on being independent from any rendering engine with examples of how to use it in webgl based engines like threejs. The one big focus is recreating the IK Rig & IK Animations type system that was demoed several years ago from Ubisoft's GDC talk on IK Rigs. With many game engines like Unity and Unreal developing their own IK Rig like systems, this project helps fill the void for web based engines like threejs, babylon, etc. Hopefully with enough help we can create something just as good as the big boys, maybe even better since its free & open source.
12
13
13
14
### Setup ###
@@ -17,7 +18,9 @@ npm install
17
18
npm run dev
18
19
```
19
20
20
-
### Usage ###
21
+
**[ NOTE ]** To be able to run the example, you'll need to go into /examples/_res/ and follow the instructions to clone the resource repo. The files are quite large, so they are kept in a seperate repo to keep this project as light weight as possible.
22
+
23
+
## Usage ###
21
24
22
25
This example is the basic boiler plate example of how to pull mesh & skeletal data from a GLTF2 file then using a custom THREE.JS Material to render mesh that can be posed or animated.
23
26
@@ -51,50 +54,52 @@ App.add( mesh );
51
54
* Bone Springs ( Rotation & Translation )
52
55
* Basic Animator based on Tracks
53
56
* Basic Animation Retargeting for similar skeletal meshes
54
-
* IK Rigs - Basic Biped
57
+
* IK Rigs
58
+
* Biped ( Human )
59
+
* Quadruped *( Prototype Phase )*
55
60
* IK Animation Retargeting using IK Rigs
56
-
* IK Solvers - Aim/SwingTwist, SwingTwistEnds, Limb
61
+
* IK Solvers
62
+
* Aim / SwingTwist
63
+
* SwingTwist - Ends
64
+
* SwingTwist - Chain
65
+
* Limb
66
+
* Arc
67
+
* ArcSin
68
+
* Fabrik
69
+
* Natural CCD
70
+
* Piston
71
+
* Spring
72
+
* Trapezoid
73
+
* ZSolver
74
+
* Catenary / Rope
57
75
* GLTF2 Asset Parsing for cherry picking what you need to load.
76
+
* A few examples using BabylonJS for rendering
58
77
* Several examples using ThreeJS for rendering
59
78
* Some extra fun examples like converting animations to Data Textures
60
79
* Running Full Skinned animation on the GPU with GLSL Example
61
-
* Using Instancing & Data Texture to animate a collection of randomly placed & rotated meshes.
80
+
* Using Instancing & Data Texture to animate a collection of randomly placed & rotated meshes
81
+
* Ready Player Me Example : Parsing, TPose Generation & Auto IK Rigging
82
+
* Bone Slots : A way to programmically attach assets to bones
83
+
* IK Animation Additives
84
+
62
85
63
86
---
64
87
## Future Plans ##
65
88
-[x] Rewrite IK Rigs
66
89
-[x] Port over starting IK Solvers ( Aim / SwingTwist, Limb, SwingTwistEnds )
67
90
-[x] Rewrite IK Animation Retargeting
68
-
-[] Port over extra single pass IK Solvers ( Z, Piston, Arc, ArcSin, Trapezoid, Spring )
69
-
-[] Create an implementation of FABIK
70
-
-[] Create solver based on Catenary Curve
91
+
-[x] Port over extra single pass IK Solvers ( Z, Piston, Arc, ArcSin, Trapezoid, Spring )
92
+
-[x] Create an implementation of FABIK
93
+
-[x] Create solver based on Catenary Curve
71
94
-[ ] Port over Trianglution Solver ( Alternative to CCD )
72
-
-[] Port over Natural CCD ( Extended version of CCD )
95
+
-[x] Port over Natural CCD ( Extended version of CCD )
73
96
-[x] Complete FullBody IK Prototype
74
97
-[ ] Revisit FullBody IK, Make it mores stable & user friendly
75
98
-[ ] Figure out how to implement VRIK
76
-
-[] Bone Slots / Attachments
99
+
-[x] Bone Slots / Attachments
77
100
-[ ] Actions or State Machine based Animator
78
-
-[] Build Examples in other Rendering Engines like BabylonJS
101
+
-[x] Build Examples in other Rendering Engines like BabylonJS
79
102
-[ ] Remake Auto Skinning ( Need WebGPU compute shaders for this )
80
103
-[ ] Bone Constraints
81
104
-[ ] Procedural Animation ProtoTyping
82
-
-[ ] Far Future - Create & Share animations with a Web Editor Tool
83
-
84
-
---
85
-
## Nice To Have ##
86
-
There are some things I've been wanting for my prototyping for awhile. Here's a list of things if people want to donate Or create for the project for a negotiable sum.
87
-
88
-
*`Project Character ( Ossos-Chan? )`
89
-
***Purpose** : A nice character to prototype with for everyone. Can also end up being the project mascot. Being female with some features like hair, cat ears & tail is something that will be used for working with bone springs. If the parts are detachable then it can work into the Slots/Attachments future prototype feature.
90
-
***Thoughs** :
91
-
* Would like a female with detachable cat ears & tail
92
-
* Prefer stylized designs ( Really digging the Art Direction of Arcane )
93
-
* Just a base mesh, does not need to be skinned or textured
94
-
95
-
*`Collection of Mobility Animations`
96
-
***Purpose** : Less data overall if not baked which gives me a chance to experiment with different interpolations for animation beyond just linear / cubic. Would be a nice thing to have for the community to use as a starting point for their projects.
97
-
***Thoughs** :
98
-
* Something that looks nice & blends well together, doesn't look choppy
0 commit comments