Skip to content

Commit 2cfc85a

Browse files
committed
Updates for v0.0.3 release
1 parent f9d86e4 commit 2cfc85a

6 files changed

Lines changed: 51 additions & 166 deletions

File tree

README.md

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
[![Ko-Fi](https://img.shields.io/badge/Ko_Fi-donate-orange?style=flat-square&logo=youtube)](https://ko-fi.com/sketchpunk)
77
[![Patreon](https://img.shields.io/badge/Patreon-donate-red?style=flat-square&logo=youtube)](https://www.patreon.com/sketchpunk)
88

9+
![screenshot](/_images/layout_keyboard.png?raw=true)
910

10-
### Character Animation Library ###
11+
## Character Animation Library ###
1112
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.
1213

1314
### Setup ###
@@ -17,7 +18,9 @@ npm install
1718
npm run dev
1819
```
1920

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 ###
2124

2225
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.
2326

@@ -51,50 +54,52 @@ App.add( mesh );
5154
* Bone Springs ( Rotation & Translation )
5255
* Basic Animator based on Tracks
5356
* Basic Animation Retargeting for similar skeletal meshes
54-
* IK Rigs - Basic Biped
57+
* IK Rigs
58+
* Biped ( Human )
59+
* Quadruped *( Prototype Phase )*
5560
* 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
5775
* GLTF2 Asset Parsing for cherry picking what you need to load.
76+
* A few examples using BabylonJS for rendering
5877
* Several examples using ThreeJS for rendering
5978
* Some extra fun examples like converting animations to Data Textures
6079
* 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+
6285

6386
---
6487
## Future Plans ##
6588
- [x] Rewrite IK Rigs
6689
- [x] Port over starting IK Solvers ( Aim / SwingTwist, Limb, SwingTwistEnds )
6790
- [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
7194
- [ ] 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 )
7396
- [x] Complete FullBody IK Prototype
7497
- [ ] Revisit FullBody IK, Make it mores stable & user friendly
7598
- [ ] Figure out how to implement VRIK
76-
- [ ] Bone Slots / Attachments
99+
- [x] Bone Slots / Attachments
77100
- [ ] 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
79102
- [ ] Remake Auto Skinning ( Need WebGPU compute shaders for this )
80103
- [ ] Bone Constraints
81104
- [ ] 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
99-
* Walk, Run, Idle, Crawl, Jump. Maybe Flying & Swimming
100-
* Prefer not to be baked
105+
- [ ] Far Future - Create & Share animations with a Web Editor Tool
61.3 KB
Loading

changeLog.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22
VERSION : 0.0.0.3
33

44
New
5-
- Armature object can be cloned.
5+
- Armature object can be cloned
66
- New IK Solvers:
77
- ArcSolver
88
- ArcSinSolver
9-
- FabrikSolver
10-
- NaturalCCDSolver
119
- PistonSolver
1210
- SpringSolver
1311
- SwingTwistChainSolver
@@ -16,6 +14,11 @@ New
1614
- FabrikSolver
1715
- NaturalCCDSolver
1816
- CatenarySolver
17+
- BabylonJS Examples
18+
- ReadyPlayerMe : Loading & TPose Generation
19+
- Quadruped IK Rig ( Prototype )
20+
- Bone Slots : Attachment locations to bones
21+
- IK Animation Additives
1922

2023
Changes
2124
- Bone.pidx is no longer nullable. -1 is used to denote there is no parent

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name" : "ossos",
3-
"version" : "0.0.2",
3+
"version" : "0.0.3",
44
"author" : "Pedro Sousa ( Vor @ SketchPunk Labs )",
55
"description" : "Character Animation System",
66
"keywords" : [ "animation", "skeleton", "inverse kinematrics", "armature", "ikrig" ],
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import EffectorScale from './EffectorScale';
2+
import IKPoseAdditives from './IKPoseAdditives';
3+
import PositionOffset from './PositionOffset';
4+
5+
export{
6+
EffectorScale,
7+
IKPoseAdditives,
8+
PositionOffset,
9+
};

src/ikrig/solvers/SwingTwistChainSolver.ts

Lines changed: 0 additions & 132 deletions
This file was deleted.

0 commit comments

Comments
 (0)