Lab: Skinema

How to 3D

Chapter 5: Graphics Pipeline

Lab: Skinema

In this chapter, you've been learning about the graphics pipeline, the series of computational hurdles that geometry must overcome before landing in the framebuffer. You'll explore several of those hurdles in this lab by rendering two models, one that you animate manually in Blender and one character with motion captured animation.

Character

Your challenge is to render two animated models. Follow these steps:

In Blender, model a simple object of your choosing. Let's call it model A.
Build an armature and make it the parent of model A. Assign bone weights to the vertices automatically.
Pose model A into at least two animation clips.
Export model A to .gltf and .bin files.
Install the Rokoko plugin in Blender. It retargets motion capture animations onto a skinned model.
Import the motion capture animation that one of your fellow students recorded. Check Scale FPS in the import settings so that the frame rate is correct.
Find a pre-skinned character model B on Mixamo. Browse Characters, not Animations, to find an unanimated model. Pick one that's not too crazy. Export as an FBX file.
Import the FBX of model B in Blender.
Ensure model B is composed of only a single part—because the glTF importer only processes one part. Delete any extra parts.
Retarget the motion capture animations onto model B by following the instructions from Rokoko.
Export model B to a .glb file. This is a binary and single-file version of .gltf.
The motion capture animation needs to be sliced up into separate clips. Upload the .glb file to Clipper.
Select the retarget animation and extract out at least two clips.
Delete all but the extracted clips.
Export model B to .gltf and .bin files.
Clone one of your existing renderers and name it skinema.
Render both model A and model B in the same scene.
Play one of model A's clips and one of model B's clips immediately on load. In the vertex shader, change the joint count to a high number, like 100. If you want to be exact, query the lengths of the arrays returned by skinTransforms.
When some key or mouse event occurs, toggle between clips on the two models.

Submission

To receive credit for your lab work, follow these steps:

Non-host, download the skinema folder before the host closes the session.
Share a video of your renderer in a post in the #lab channel in Discord. No voiceover is necessary. Tag your group members with @.
Push your code to your individual GitHub repository that your instructor made for you.

Only labs submitted on time will be granted credit. Late labs or forgot-to-submits are not accepted because Monday at noon is when your instructor has time to grade.

← Lab: Stick Shift Continued