Geonode (and more) experiments for animation

mesh decals wave example.zip (2.1 MB)

I’ve decided to make a topic for my experiments with Geometry Nodes-based special effects. Maybe somebody will find it useful. The thematic will be mostly cartoon-style deformations: morphing, squash and stretch, perhaps utilities for rigging “2d style” heads

The first utility in a list will be a “mesh decal” system. It applies displacement on an object at the position of an empty. MeshDecalHeight uses the Z height of specified “decal object” as displacement intensity. MeshDecalVD is trickier to use: it computes difference between two objects (DecalBase and DecalShape; must have same number of vertices and same UV map) to use as “vector displacement”. Should allow for adding details like ears in topology-independent way. Also, potentially rigging cartoon mouths that change position on the face. MeshDecalObject is applied to “decal object” itself (to avoid Join Geometry node which is buggy), and projects it on the Surface object. All of them support the rotation of the empty. MeshDecalVD and MeshDecalHeight also can output decal UV attribute for use with shader editor

14 Likes

¡This is highly interesting! It starts already to offer plenty of ideas on plausible applications of Geometry Nodes for 3D Animation features. This is probably the next major ‘Rigging’ subject in Blender I’m going to attempt to learn; your already few presented Rigging & Animation examples and experiments are quite valuable in this sense.

I am currently having few issues with this system so the application to actual face is “TBD” at this stage. Can not tell if it is because of bad math in Geometry Nodes or what I envisioned cannot be done with enough precision. Nevertheless, those “decals” are already good enough for tasks that do not have to be super precise, such as adding clothing folds that can be keyframed manually

1 Like

Cool wave ! Very dynamic result

2 Likes

I believe you’ll find some alternative to it on Geometry Nodes; keep researching.
Unfortunately, right now I cannot share any understanding regarding this precision issue (which seems important), because GN even on a very basic level is still above my skills as we know it. But I have a plan for the next few months to begin learning it. Things should be getting more interesting. Also, as I understand that we cannot just sit and wait until 2025 for the major developments regarding the ‘Future of Rigging/Animation in Blender’; GN are right on the next door.

I think I’ll be able to solve the inconsistencies using UV tangent coordinate space instead of object space. The main issue with that is the mesh will require UVs and custom tangent vector (which is somewhat cumbersome to generate). The current object space version is UV and topology-independent

Houdini has tools to generate tangent fields, I would love something like that for geonodes.

Obviously it’s something one could do with a solver as opposed to a dedicated node, but I would welcome any one of these. (See also Entagma videos about it, and I’m done polluting your thread heheh)

You do not “pollute” anything; all the systems I will be posting here are in active development, and I appreciate any input. I do have a solution for tangents, but it is strange to say the least. It is not enough to assign some vector as tangent, it also has to be transformed by Armature modifier and such. So I couldnt think about anything better than generating a mesh made of triangle markers (which by itself can be weighted), so other geonode modifiers can read the vector from it. I’ll include the variant of it that supports UV tangents later


tangent demonstration.blend (2.8 MB)

2 Likes

GNShapeTransfer.blend (1.0 MB)
I’ve thrown together an example of geonode-based “shape key” transfer to an object with different topology. Useful when you, for example, made edit to the main body of the character and need to update the clothing layers accordingly. It can be achieved with standard tools, but I feel this method is the fastest

4 Likes

SquashSingleAxis.blend (1.8 MB)

I made a simple system for squashing an object against a virtual plane defined by an empty. It supports custom radial squash profile (Y of an input curve) and can also output distance field for use in a shader

6 Likes

spiral stair generator.blend (1.3 MB)
https://i.gyazo.com/b9f17240532fb10f376df5fd2de0debf.mp4 Made a geonode setup for making spiral stairs. Not nesessary for animation, but useful. Mostly complete, the only problem is that the top part of the guardrail doesnt have UVs (no idea how to generate them for built-in Curve to Mesh node). The rest of UVs come from corresponding instanced objects

1 Like

Found a bug in stairs generator: replacing the step prefab with a custom one throws off the alignment of the railing (made using a curve) for some reason. Needs further investigation

spiral stair generatorV0.2.blend (1.4 MB)
Did a band-aid fix for this issue. Using Attribute Statistics/Mean instead of Median to generate points in a curve seemingly took care of inconsistency. Also, certain custom shapes of a step mesh cause gaps to appear between steps; added a GapCorrrection parameter to fix that (set it to less than 1 if gaps occur)

spiral stair generatorV0.3.blend (2.7 MB)
I think I’ll stop on this version. Thanks to @zeroskilz for the help with Curve to Mesh UVs

1 Like

WorldSpaceShapeKey3.4.blend (1.8 MB)
A world space “shapekey” utility. Takes the objects’ world transforms into account. Also, given that it operates on an end result of all modifiers, it can be used to morph between two objects animated by different armatures. Comes in 3 different styles

2 Likes


texture baking 2.92.blend (3.0 MB)
Not Geonodes, but I’ve found another way of making flow maps (useful for fake fur shaders or texture scrolling effects) . Output the object’s tangent as material color, then draw bunch of curves in freehand mode and render from the top down perspective. There are materials for baking other types of maps in the scene as well

3 Likes


parallax fur demo.blend (2.5 MB)
One use case for flow maps is this fake fur shader based on parallax mapping. The effect is contained in ParallaxFur10S or Parallax20S node groups (number refers to number of height samples). Instructions are inside

2 Likes

Right. I need to get into geonodes this month. Will try to contribute to your idea.

1 Like


living fence.blend (3.9 MB)
I made a Blender material for easy living fences and perhaps tree canopies. Works by generating view aligned leaf texture instances on top of 3d Voronoi texture, so doesn’t need UV mapping. Colorize using Mix node somewhere at top part of the node tree. Replacing leaf texture and normal is a little harder, you’ll need so called texture atlas

3 Likes

living fence.blend (3.9 MB)
Fixed some transparency bugs + added a mix value with object’s original normals since material may appear too flat

1 Like