For those who want to learn how to apply the shattered look and animation to a character, this article is for you. Download the example character file and follow along as we explain the workflow and techniques we used to bring this animation to life.
At the end of this article we'll also go into how you can apply this to your own character and production.
Check out the previous article for more context and design lessons for the shattered character Mikassa in Project Gold.
In this file you will find our main character Mikassa with a pre-made setup to immediately start working.
Use this to experiment and try out the tools yourself as you read the following chapters in this article.
In case you'd like to start making the shards from scratch, you can delete objects in the 'Cracks' collection and delete all geometry inside the 'HLP-fracture_origins' object.
When you open the file, you will see two viewports that are synced together for convenience. This way, you can work on the shards (left) and see it applied on an animation (right) at the same time. If you don't want them to be synced you can exit the camera view on each viewport.
The cracks are defined by drawing curves onto the T-Posed body GEO-mika-body.local-t_pose
(left viewport). All curve objects are placed in a collection called 'Cracks', which is used as an input for the Geometry Nodes modifiers that generates the shards.
The curves don't need to be placed with perfect precision. There is additional logic in the modifiers to weld curves that are nearby and remove overlapping ends. Just be careful to not draw shards that are smaller than the faces of the topology. In both of these cases there is more settings explained at the bottom of the article to fix any issues that are causes by this.
The Draw Tool was primarily used for this in Curve Edit Mode. For creating the shards step-by-step, we'd first split all the broad limbs and body parts up, so the character can roughly move and be posed. Then more cracks and adjustments can be iteratively applied to define smaller and smaller shards.
All curves are created as poly-curves so it's easier to draw & snap the entire curve on the geometry of the body.
It's best to use separate curve objects for individual body parts and especially the face. Consider also using separate objects for broad and detailed fractures. The advantage in this is less visual noise. At the time of writing, poly-curves are always shown through other geometry in edit mode, making it difficult to see and select specific curves. It also allows to make multiple versions via separate objects. If you want to have some design iteration on the placement and density of the shards, that's vital.
Just keep in mind that every object in the collection will be used for generating shards. If you want some objects to be excluded, move them to a new collections to organize your versions. Move the objects/collections in and out of the 'Cracks' collection when they are needed.
To save time and make the shards symmetrical at first, you can add a mirror modifier to the curve objects. Just make sure the origin location and rotation is reset/applied so the mirroring is aligned with the character.
The mirror modifier cannot be applied on curve objects and just serves as a temporary preview. To apply the mirroring you need to later remove the modifier and instead duplicate and mirror the curves manually in edit mode. You can also optionally use the new 'Curves' type object that is typically used for hair and Geometry Nodes, but this has limited editing features at the time of writing this.
The rigged character (right side) that is used to previz the shards is not just something you can pose. It's ideal to link in multiple test animations to stress test the shard deformations. These 'Actions' can then be switched out in the action editor (at the bottom) while the rig is selected. Now you can inspect the deformation by scrubbing through the timeline.
Due to the heavy computation of the modifiers, you might have a very slow framerate. If you want to play the animation in real-time, it's best to use 'Viewport Render Animation (commonly called "playblasting").
The shards might be hard to see when they are not spread apart on the model. You can enable the 'Instance Shards' toggle in the GN-shard_surface_deform
modifier of the deformed mesh (right side) to see outlines for each shard that is generated. Be mindful that this is at the cost of performance.
To optimize the framerate you can also use the Bake node in the GN-shard_fracture_cut
modifier to stop the modifier from recalculating the shards. This node can be found in the bottom-left corner of the demo file UI.
This will essentially freeze the modifier - so make sure to disable this once you want to create new shards again.
The more shards you create and test on animations, you'll notice that their rotation can be unpredictable. An additional object called HLP-fracture_origins
in the 'Helpers' collection is used to set optional custom pivot points to shards.
These pivot points anchor the shards to that point on the original rigged character body. It doesn't give full control over the rotation but enough to fix some nasty intersections and random rotations.
To use this, select the object and switch to edit mode. Now you can create, duplicate and snap vertices to the surface of the body. The effect can be seen live. Each shard will use the vertex that is in contact with it.
Just be careful to not use more than once vertex on a single shard. This is why placing these pivots extensively is best done once the shards are closer to their final design. Or at least be prepared to rework the pivots.
To avoid some intersections or extremely wide gaps, you can also change the rigidity
attribute on each vertex. This will change how flexible the shard is that is using this pivot point.
To change the value on the selected vertices, use Set Attribute
in the Header under the menu 'Mesh'. To make this more accessible you can add a shortcut to the menu operator (via Right Click) or add it to the Quick Favorites.
To define the body pose for generating the shards, we alter the CH-mikassa.rest
version of the Mikassa rig, behind the main body we draw the shards on (left viewport).
Like showcased in the previous article, optimize the resting pose to give each pose/deformation enough shard-surface to avoid big gaps.
The hidden GEO-shards
object is using that Mikassa rigged body as a basis. On the GN-shard_fracture_cut
modifier of this object are also helpful settings:
There's more to come: technical insight into how the Geometry Nodes setup works, and how the shards were integrated into our rigging and animation in the production. Stay tuned for more!
If you have questions or something seems confusing, feel free to comment below. Thanks for reading!
Join to leave a comment.