logo80lv
Articlesclick_arrow
Research
Talentsclick_arrow
Events
Workshops
Aboutclick_arrow
profile_loginLogIn

Recreating Ubirajara Jubatus Dinosaur in Blender & Houdini

Sebastian Schoellhammer showed the workflow behind the Ubirajara Jubatus project, explained the grooming process, and shared how the rendering was done with Houdini's Karma.

Introduction

My name is Sebastian Schoellhammer, I started my career in CG more than 20 years ago with a huge passion for games. My first real job was creating the “creatures'' for Black&White 2, and I’m still grateful to Lionhead Studios for hiring a total greenhorn like me at the time.

I moved on to work in a small Italian film studio called 263 Films where we tried to create a full CG film about Anne Frank. My job was mostly to sculpt the characters from old photographs (and try to capture Anne’s smile). While the project and company sadly went under, it was an amazing and meaningful experience. I took an 18-month sabbatical backpacking the world and somehow ended up in Japan and then in Square Enix’s R&D department. Throughout my career, I’ve always been a bit technical, helping out other artists with scripts but here I was an official Technical Artist for the first time (and their first). I spent 4 years looking into advanced real-time rendering that helped shape tech used in the Final Fantasy games.

Shortly after Fukushima happened, I moved to New Zealand and worked for Weta for three years. My main projects were the first two of The Hobbit movies where I did a lot of technical modeling and wrote plugins and tools. I spent a few months devising a system for the Mirkwood spider webs – one of the things I’m most proud of in my career! I returned to Germany, moved to Berlin in 2016, and did mostly VFX and techart for mobile games from then on.

The spiderwebs in action (image taken from The Hobbit)

The Ubirajara Jubatus Project

Early this year, I quit my job and started freelancing again which gave me more time for my own projects such as this. 

My goal was pretty simple: try again some high-end techniques after being bound by mobile device performance for so long! Fur, hair, and millions of triangles – yes, please!  I had done a furry dinosaur before but it was rather fantastical, so this time I did a bit of research. “Jubatus” is a fairly popular dino, so there was quite a bit of reference on the web. I also took some creative license, for example, with the feathers thinking they could have been paradise bird-like.  

References I accumulated throughout the project

For modeling and rigging, I used Blender, which I’ve been learning to replace Maya in my toolset. The modeling was straightforward, I finished the final topology before doing any sculpting as the design was pretty much set from the beginning.

The textures were done in Substance 3D Painter, the main priority was of course the head because all the rest is covered in fur. Everything is just using one DIM to keep things simple but I reserved a lot more UV space for the head and feet.

Material, Base Color, Roughness

I was never much of an expert when it comes to rigging so Rigify was a lifesaver, making this the quickest part of the work. I didn’t even have to do any manual skinning (also thanks to the fur which hides some issues). 

Rigify rig

Establishing a pipeline using Blender and Houdini was also important to me. I set up the project “properly” with a shot scene referencing the assets. Blender's linking worked great and it was easy to make changes to the rig after I had started animating. 

Going into Houdini then was just a simple alembic cache with the dinosaur and camera. To have a reference for animating, I exported the final environment from Houdini back to Blender as USD. It’s great how easily data can flow between applications these days!

Houdini

I started dabbling with Houdini a few years ago, but not really needing it for work at the time, it was very on and off – and each time I came back to it I had forgotten half of what I knew. I’ve been using it seriously for maybe a year or two now and I’m glad I’m finally sticking with it.  

What I love about Houdini is that anything is possible (like writing a renderer, for example) in multiple ways. It gives me a great feeling of security that I can’t be blocked by anything (apart from my computer or stupidity).

I have written plug-ins and tools for Maya for a good while but seeing how incredibly easy those things are in Houdini – thanks to its procedural architecture – makes me never want to go back.

Silly ray-tracer I wrote with VEX

Grooming

Honestly, the grooming was very straightforward as I mostly used off-the-shelf tools. After a first attempt, I added a second groom for the face to get more detail. I did not use the new manual grooming but rather the procedural workflow and it seems more fitting for a creature like this. The direction is controlled with curves and I added some lift and frizz.   
For simulation, I also just used the default settings.

I transferred the melanin value for the fur from a texture I painted in Substance 3D Painter and added some additional noise.

Melanin texture

Groom guides

Groom setup

Guides with final hair

The big feathers were created procedurally based on meshes coming from the Blender animation. I built them mostly flat in UV space and then projected them back into their world position. On top of the resulting curves, I finally ran a vellum curve sim to get some secondary motion.

Big feather process

Animation

Over all the years I’ve done CG, animation was the only discipline I always felt really uncomfortable with. When I think about it, animation and sculpture are conceptually very similar, one blocks, then adds detail – the only problem is that, for me at least, animation is a lot less intuitive. When I sculpt, I constantly add something, smooth, add and remove in a fluent process. Gradually I will end up with the shape I want, whereas in animation I very quickly get entangled in a mess of curves. I sigh, curse, and then I usually scrap everything and go back to modeling.

This time I tried to work with poses only where I just key all controls (or at least a set). So in this animation, I didn't touch a single curve, but just moved and copied around poses. It still got messy once I added detail by shifting keys to make an overlapping motion but overall the experience was much better. Of course, I’m still a bloody beginner at best but I didn’t feel as powerless as usual. Also thanks to my good animator friend Remi Tjon Ajong (PUBG) who gave me super valuable feedback along the way.

Environment

My original intention for this was an interactive real-time piece. I did some initial tests just to see that I could get my character including fur into Unreal Engine. It would have been sensible to build the environment right there, but I felt that I could maybe even get more fidelity and control if I were to do it in Houdini. This would also be useful to get a visual target once I would go real-time. 

Additionally, it was a great excuse to try out stage, LOPs, and USD, something I meant to do for a while!

Early Houdini to Unreal export test

The environment (Brazil, 120 million BC) was mangrove-like, oak trees and ferns existed, so I made up something along those lines. I wanted to emphasize the dinosaur's small size (roughly 1 meter with the tail) and fragility, so I put this massive stump into the background.

I started with a super rough sketch and blocked some bigger shapes and the landscape in Blender.

At first I meant to have him starting out asleep

Blender mockups:

When I roughly knew what I wanted, I created some USD assets from Quixel Megascans, which I mostly placed manually using the layout tools. For an in-depth tutorial on this, check out Adrian Lambert's series on LOPs and USD.

I also scattered some smaller bits like twigs and leaves procedurally. The moss is placed depending on the ground texture’s green areas to add more closeup detail to the ground. 

A little bit more complicated was the nest-like structure where I thought the dino would sleep. I made this in SOP land using a simulation and then brought the data back into stage as points and instanced the original USD assets onto them. Probably it was not worth the trouble in the end but I wanted to try this workflow (the interactive physics-guided layouting in stage honestly did not really work for me.)

I had just watched Steven Knipping's “Fast Rivers” tutorial so I used that knowledge to make the FLIP river. It’s too in-depth to describe here but I can very much recommend the series to the interested. One detail I’m proud of is some leaves that float by – this was simply done by advecting particles by the fluid and then instancing leaves onto those points.

I also made some simulated and cache-animated ferns that I wanted to place around on stage, but sadly, the animation introduced noise on the fur when using Karma due to a bug. While in the final version the ferns are static, here is an example:

Final LOP Graph

Rendering

First of all, rendering is completely done in Karma. It’s super fast and I’m very happy that Houdini has this GPU renderer now.

The lighting is pretty simple: I used an HDR and there are some additional spotlights to draw attention to the character. It’s fairly subtle in the final animation but there are some light flecks in the background where I wanted to simulate the sun shining through the foliage. For this, I created a plane with some animated noises controlling transparency (Karma has light gobos now, but sadly, they don’t allow any procedural textures that I needed for this.)

Lighting setup

In the end, a frame took roughly 6 minutes to complete. This seems little but with 500 frames it took me a whole week to render everything. I need the machine to work throughout the day so I could only render at night.

For some final color corrections, I used DaVinci Resolve, this is also where I added sound. I bought a 5000 sound library for unity years ago and it luckily included 99% of what I needed, except the sniffing – this is me.

Tips for Beginners

I do mostly two things: I like to watch random tutorials but also have concrete projects that I want to realize. I think it’s important to not just follow instructions but make use of the knowledge to make something new. For me, that’s the best way to remember and grasp concepts properly. 

The learning curve in Houdini is pretty steep indeed, but luckily, there is a huge amount of great resources out there these days. Here are some of my favorite sites/instructors:

The most important thing is to learn continually each day rather than in bursts of motivation and big gaps, but that is probably true for every study.

Lastly, here's all my social info, in case you need it: Twitter, ArtStation, Instagram, and LinkedIn.

Sebastian Schoellhammer, 3D Generalist

Interview conducted by Arti Burton

Join discussion

Comments 2

  • Anonymous user

    Hey, thank you for this fantastic tutorial! Really helpful and motivating to see the breakdown for how to achieve AAA quality in a CG scene, thank you @Sebastian 🙏

    1

    Anonymous user

    ·a year ago·
  • Schoellhammer Sebastian

    Thank you :)

    0

    Schoellhammer Sebastian

    ·a year ago·

You might also like

We need your consent

We use cookies on this website to make your browsing experience better. By using the site you agree to our use of cookies.Learn more