Rigging a T-Rex from Vertex 2019 Presentation?


#1

There’s a great presentation in the Vertex conference here regarding T-Rex.

The author mentioned about rigging the folds and muscle simulation natively inside Cinema4D. The presentation just glossed over it and proceeded to explain how he did the rendering in ProRender.

By any chance, does anyone know any additional material regarding the rigging section?


#2

i think he used mainly jiggle deformers restricted to vertex maps, since he mentioned he faked the muscle system. i can write him a message tomorrow (sitting at an airport right now) and point him to this thread if you like.


#3

Hi @everfresh

Thanks for the offer that would be really nice. I’m really interested how he set it up.

For the folds, the only think I can think of is separate maps.
So different displacement map for a rest pose and a different displacement map when foot is lifting. But as to how it was set-up, I’m out of words. Pose Space Deformation. Maybe?


#4

Hello,

I’m the guy who made that rig :slight_smile: Thanks everfresh for pointing me to that topic!

The presentation at Vertex was mainly about how I used ProRender - unfortunately there was no time to discuss the rigging process, although I would have loved to, because the whole T.rex rig is full of rigging experiments (automatically moving eyes, tearing saliva, feathers moving in the wind, etc.)

I’m currently facing a tight deadline, so I don’t have time to explain the setups in detail right now, but rest assured that I will come back next week and provide you with a more detailed explanation and a simplified file.

Just for now, in short:

  • The muscles are nothing but twist deformers and a bit XPresso, no simulation at all here.
  • The skin folds are simulated by the smooth deformer in relax mode. I was a bit tricky to set up since it had to work on a relatively high resolution mesh, and I wanted to keep it fully procedural. No blending of displacement maps or PSD deformation was used in the setup.
    Once you know it, it’s actually pretty simple.

I will go into more detail and can write up a small tutorial about the process if you want!

Have a nice weekend
Günter


#5

A more detailed tutorial would be great. =)


#6

@GNiko

Thanks for taking the time to answer. It was indeed an interesting set-up specially with the use of twist/smooth deformers, since I haven’t witnessed that kind of set-up before. Like @everfresh , my hunch was the jiggle deformer.

Thanks again! Have a great weekend ahead!


#7

So here’s a little tutorial on how to create skin folds:
(Unfortunately I have to split it up in multiple posts, since new users can only upload one image per post):

As already said, I used the smoothing deformer. The basic setup is pretty simple: make it a child of your mesh, switch the mode to „relax“, then initialize it. Now if you deform the mesh, it creates quite naturally looking folds, if the mesh has enough polygons.

And this is the crux:
We want to use the smoothing deformer on a high resolution mesh, but don’t lose the procedurality by converting the SDS to real editable polygons. (If I would do so, I wouldn’t be able to use my joint-based rig anymore).

The first thing I tried, naturally, was this: Just place the SDS together with the smoothing deformer under a null. Then hit initialize, then deform: nothing happens. It seems for some reason the SDS (or probably generators in general) are not recognized in the initialization process (even though it seems something gets stored in the smoothing deformer, indicated by the memory usage).
So this won’t work.


#8

After trying a lot of different approaches unsuccessfully, I finally found a way to „trick“ the smoothing deformer to work on an SDS object:
Create a copy of the SDS in undeformed state (turn off all deformers, then use “current state to object”), place it on the same level as the original SDS and the smoothing deformer, and THEN hit initialize. By doing so, the deformer takes all polygons into account, including all the polys generated by the SDS.

After that, we can just delete the high-res polygonal copy, and the smoothing still works on the SDS.
The low-res SDS cage on the other hand, can still be deformed by joints or any other kind of deformer. So we have a fully procedural setup for simulating folds on a character.


#9

If we now deform the original cage, the SDS mesh gets wrinkled. We can now play with iterations and stiffness settings to tune the folding to our liking, and place the whole thing in another SDS to smooth the wrinkles out:

Edit: Great. New users can only reply three times to a topic, only add one image and no attachments. So here’s the rest, without any further pictures unfortunately:

Some things worth mentioning:

  • Considering this as some kind of simulation, it is surprisingly fast. It only takes a few seconds on the T.rex, which has approx. 875000 polygons on SDS level 4.

  • Since the deformer naturally also smoothes out small details like scales, which I didn’t want, I just created 2 different displacement maps:
    a) a level 4 to 1 dispmap for all the coarser details. This map gets applied with a displacement deformer, because we need the displacement on the mesh for the simulation - if we would apply it via a material, the displacement would only be added at render time, and would not be considered for the simulation.
    b) a level 6 to 4 dispmap for all the small details like scales. This map is applied on by the material, so it’s only considered at render time, and therefore can’t get smoothed out by the smoothing deformer.

  • Make sure to keep the editor and render subdivisions of the SDS object on the same level. Otherwise, you won’t see any folds in the rendering, because a different amout of polys is created and the smoothing deformer won’t work anymore.

  • For animating, you will need to turn the SDS, displace & smoothing deformer off. They all add up heavily and make the editor slow. For rendering though, the speed hit is relatively small.

  • If you want to exclude certain mesh areas from the skin simulation, you would normally paint a vertex map and place it in the „stiffness“ slot of the smoothing deformer. This won’t work anymore, since the deformer doesn’t work on the lowres cage, but instead on the highres SDS.
    However, we can use the almighty fields instead: Just drag the vertex map into the fields list, and we can exclude some mesh areas from the sim.

I would love to provide you with a simplified file, since I registered as a new user I’m not allowed to add any attachments.
If you want you can PM me your email and I’ll set it to anyone who’s interested.

If you have any further questions, don’t hesitate to contact me!


#10

@GNiko

Thanks for the response!
Appreciate it a lot.
I’m trying to follow your tutorial but for some reason I don’t encounter wrinkles. By any chance, is your low poly bend cube already distorted? So as to create the wrinkles?

You can check the file here:
https://www.dropbox.com/s/2e9v3xior6rd2ai/c4d147_wrinkle_generate.rar?dl=0


#11

you had the smoothing on stretch instead of relax and not in the hierarchy…
c4d147_wrinkle_generate.c4d (631.4 KB)

edit: at least in your uploaded file… in your screenshot it seems to be ok, but the smoothing deformer there was one level too deep in the hierarchy.


#12

@everfresh

Thanks for revised file. Works as expected

@GNiko

Thanks again for the tutorial.

Have a great day ahead, you too! :slight_smile: