Rookie Awards 2024 - Open for Entries!
Scorpions in the desert
Share

Scorpions in the desert

Jacob Döhner
by jacobdoehner and lauraludwig on 17 Oct 2021

This project was a collaboration with Laura Ludwig who did an amazing job on texturing, lighting the scene and compositing. I was responsible for cameras, some rig improvements, the animation.

4 1480 0
Round of applause for our sponsors

Project Description

The Scorpions in the desert was the first project I worked on for my demo reel and is collaboration with Laura Ludwig, a very good friend of mine here at PIXL VISN Media Arts Academy who specialized in Lighting, LookDev and Compositing. While I was planning my demo reel and gathering ideas for possible projects Laura asked me to join her project and create a small animation of a scorpion rig from Cave Academy. I really liked her ideas and shots and also thought it would be a good idea to start my demo reel with a simpler animation, so I joined the project.

Getting started | Preparation And Layout

First, I always start exploring the rig, create some movements and test its limits to make sure everything I planned for the animation would work out in the end. As I was testing the rig I noticed that there were no space switches for the pole vector and they were in world space so I would have to animate them every time the rig’s legs would move. Therefore I created a space switch, making it possible to switch the pole vectors between world, root and leg space.

In the next step, Laura and I planned the animation, cameras and the overall composition. Initially, Laura only planned working with one scorpion in the scene but after I had a meeting with my animation teacher Fonzo Romano, he suggested to place a second scorpion in the scene as it would not only make the animation more interesting when there is an interaction between the scorpions but also improve storytelling and the composition in the end.

Laura liked the idea of a second scorpion, so I created a previs version of the animation so we could rearrange the cameras. We used different techniques, like the rule of thirds, golden ratio and looked for arcs in the picture to guide the viewer’s eyes to the scorpions in a natural way. Our goal was to create cinematic shots that even though they are really short, directly tell the story from the first second on. 

Animation | Creating An Expression Driven Walk Cycle

As we had planned the shots and the animation, I started with a walk cycle as a base of my animation. After 1-2 days, I finished the walk cycle of my scorpion and created two motion paths, one on the ground and one on the skull. I parented the main control of the rig to another control (1) so I was still able to animate the main control when the rig was attached to the motion path.

In my demo review class, my teacher Robb Innes showed me a way to control the speed of the walk cycle with an expression and in relation to the motion path. This works by creating an unlimited float attribute (e.g. called „cycle”) on any control, in my case a new control (2) which also later functions as an up vector when attaching the rig to a motion path. This attribute works as a driver and determines the speed of the walk cycle. At this point, I faced a problem because I had already animated the walk cycle and connecting the animation to the attribute would not work the way Robb showed me. 

After experimenting for a bit I found another, quite easy way to connect the existing animation to the attribute: First, I converted the value of the cycle attribute to a time value by using a unitToTimeConversion node. I selected one of the animated controls and loaded all its inputs in the Node Editor. Every animation of an animated control is stored in so-called mergedLayer nodes. These nodes have a time input that, if not connected, uses the time value according to the current frame in the timeline. 

The value of the cycle attribute should represent the current frame in the timeline, meaning a value of 1 is frame 1 or a value of 13 is frame 13. Therefore, I had to change the conversion factor of the unitToTimeConversion node from 1 to 250 (because at default settings a value of 1 output as 0.04). After that, I connected the output of the unitToTimeConversion node and plugged it into the inputs of each translation and rotation mergedLayer node. This overrides the time value of these nodes and uses the value from the cycle attribute instead. Once everything was connected, the speed of the animation was controllable with the cycle attribute.

Now, I had to repeat these steps above for every control that was part of the walk cycle but it would have taken quite some time to connect everything manually, so I quickly wrote a small simple expression that automatically connects the output of the unitToTimeConversion node to the mergedLayers node of each control. Finally, the complete walk cycle was controllable through the cycle attribute on the new control. To create a relation between the speed of the walk cycle and the speed of rig on the motion path, I simply needed to create an expression for the cycle attribute and find the right conversion factor (depending on the length and direction of the motion path):

This method is really easy and efficient to use because you can still make changes to the walk cycle animation without having to disconnect and connect everything again. If you want to add any additional animation on top of your walk cycle, you just have to create a new animation layer and set its mode to additive. The walk cycle animation keys are stored in the Base Animation layer and the additional animation on the new aniamtion layer will be stored in different mergedLayer nodes and are therefore not connected to the cycle attribute. In the last step, I created a smart control (3) for the antenna of the scorpions to have the possibilty to quickly curl and spread them. Now, the rig was ready and I could finally start working on the animation in more detail.

This method is really easy and efficient to use because you can still make changes to the walk cycle animation without having to disconnect and connect everything again. If you want to add any additional animation on top of your walk cycle, you just have to create a new animation layer and set its mode to additive. The walk cycle animation keys are stored in the Base Animation layer and the additional animation on the new aniamtion layer will be stored in different mergedLayer nodes and are therefore not connected to the cycle attribute. In the last step, I created a smart control (3) for the antenna of the scorpions to have the possibilty to quickly curl and spread them. Now, the rig was ready and I could finally start working on the animation in more detail.

Once I had made all corrections and was happy with my animation I contacted Philipp Willer, Lead animator at Pixomondo, and asked for feedback on my animation. Overall, he already liked the animation I did but showed me that there was room for improvement considering shapes and silhouettes. Oftentimes, certain parts of the body, like the claw, were covered by other parts of the body, so the silhouette was not clear. To make sure I always have clear shapes in my animation I can use the C-shapes as shown in Fig.06. If these arcs are always visible and clear the shapes in the animation will also be clear and improve by a lot.

Finally, after all the corrections I have made, I just needed to bake the legs of the scorpions and make sure they are on the ground. This is always my last step because when I have to make bigger changes in the animation I have to bake the legs all over again. For this step, it is also important to use high-resolution geometry with the displacement map baked on to make sure the legs/feet are later not intersecting with the geometry or floating in the air.


Comments (0)

This project doesn't have any comments yet.