Starting with tree.js I tried bones and skeleton.
The result was the simple figure Bumblebee Mara .
It uses the old geometry and I recently renewed it with BufferGeometry
BumblebeeMara .
I now wanted to fathom whether it is possible to procedurally generate a more complex figure without modeling software. The figure should allow a number of poses and perform movements. Some preparations can be found there:
Skinned mesh with dynamic knees
Example of how to use CCDIkSolver with a generic SkinnedMesh? - #14 by hofk
The skeleton figure Pino can be moved with keyboard events. The corresponding assignment can be found in the EventListener ‘keydown’ at the end of the code. Besides the movement of the bones, the lying nose can be animated.
Due to the modular structure it is possible to create further movements. So far a rotation around an angle and an oscillation around a center is implemented. Thereby the speed is controllable.
At the endpoints of the oscillation a soft reversal of the direction of motion is implemented with the help of a factor. Of course, the movement can also be controlled by other means than keyboard events.
The variable shape of the figure is made possible with the help of a highly variable user-defined geometry. Arrays or functions can be used for shaping. With the testMesh one can try out different variants.
The individual geometries are linked to a single geometry using a link( ) function. Multimaterial is supported.
On Github threejsResources/Skeleton at master · hofk/threejsResources · GitHub
UPDATE:
I had forgotten to dispose of the individual geometries after linking.
Completed at the end in
function link( geoms ) {
...
for ( let i = 0; i < geoms.length; i ++ ) {
geoms[ i ].dispose( );
}
...