Read other Blogs

Read other Blogs

Summer of Unreal: Best Storytelling award

Category:

WORK

April 25, 2022

Credits:

Horatiu Roman, Sam Shennan, Christoph Hars, Duncan Decottignies, Bartosz Barlowski, Cyril Chevtchouk, James Taylor, Aleksandar Bundalo, Alexander Trattler, Andrea Iliescu, Dawid Drabik

This short film was made during the Summer of Unreal course, where I, with ~800 others, spent four weeks learning from top pros from the animation and film industry about the latest and greatest in Unreal Engine cinematic production.

Together with the team we learned Unreal 5.0EA, how to make shaders, kitbash using photogrammetry assets from Quixel, how to rig characters using Control Rig and animate, all done in-engine with very little need for external tools.

Thanks to the awesome instructors and team for the Summer of Unreal!

From CAD to Animation: A Complete Journey

Over the past months, I've had the privilege of working alongside Epic Games' exceptional team, talented instructors, and an amazing technical artist to master Control Rig. This tutorial documents the complete workflow for rigging the SO-ARM 100 educational robot entirely within Unreal Engine.

Prerequisites

• Unreal Engine 5.5+ (with Control Rig enabled)

• FreeCAD - Open source CAD software

• SO-ARM 100 STEP files from manufacturer

• Basic understanding of 3D modeling concepts

Phase 1: Converting CAD Models

Step 1: Download STEP Files

STEP files (.step or .stp) are the industry standard for CAD data exchange. Engineers use these for manufacturing, rapid prototyping, and robotics applications.

Why STEP files?

• Parametric data preservation

• Industry-standard format

• Contains accurate assembly hierarchies

• Maintains precise measurements

[SCREENSHOT: SO-ARM 100 STEP files]

Step 2: Convert STEP to glTF Using FreeCAD

Download FreeCAD: https://www.freecad.org/downloads.php

Conversion Process:

1. Launch FreeCAD and open your STEP file (File > Open)

2. Verify the import - check all parts are visible

3. Export as glTF 2.0 (File > Export > glTF 2.0)

4. Choose .gltf format (not .glb) for easier debugging

[SCREENSHOT: FreeCAD import interface]

Why glTF? Native Unreal support, preserves hierarchies, open standard, maintains materials.

Phase 2: Preparing the Mesh in Unreal

Step 3: Import and Transform Correction

1. Import the glTF: Drag and drop into Content Browser

2. Fix Transform Offsets: STEP files often have arbitrary pivot points

3. Use Modeling Mode tools to correct positioning

4. Apply transforms: Right-click mesh → Bake Transform

[SCREENSHOT: Unreal Modeling Mode]

Position the arm from contracted to relaxed/extended state for easier bone placement.

Step 4: Convert to Skeletal Mesh

1. Select all prepared Static Meshes

2. Right-click → Convert to Skeletal Mesh

3. Unreal creates a basic skeleton structure

[SCREENSHOT: Convert to Skeletal Mesh option]

Phase 3: Skeleton and Weight Painting

Step 5: Manual Bone Placement

This is where precision matters. Place bones at servo motor locations.

My Strategy:

• Lock viewport to Left/Side orthographic view

• Use "Place Bones Into Mesh" tool

• Place bones ONLY at servo motor locations

• Bones import as: joint1, joint2, joint3, etc.

[SCREENSHOT: Bone placement in orthographic view]

Step 6: Weight Painting Strategy

My Workflow:

1. Open Skeletal Mesh in Mesh Paint Mode

2. Work part-by-part: Select bone, paint arm segment WHITE (1.0)

3. Keep servo housing BLACK (0.0)

4. Real-time testing: Switch between Paint and Animation modes

5. Rotate bones to check for vertex issues

6. Iterate: Paint → Test → Fix → Repeat

[SCREENSHOT: Weight painting interface]

Critical: Real-time viewport feedback made this incredibly efficient!

Phase 4: Control Rig Implementation

Step 7: Create Modular Control Rig

The moment we've been working toward!

1. Right-click Skeletal Mesh in Content Browser

2. Select: Create → Control Rig → Modular Control Rig

3. Opens Modular Control Rig Editor

[SCREENSHOT: Create Control Rig menu]

Step 8: Add Physics Dynamics

Make the digital robot feel like the physical one!

1. In Modular Rig Hierarchy, locate Chain Dynamics module

2. Drag it into your rig

3. Configure dynamics:

• Adjust Damping for oscillation settling

• Tweak Stiffness to match servo holding force

• Set Mass based on physical arm segments

4. Enable Live Preview and test

[SCREENSHOT: Chain Dynamics settings]

Result: Fully rigged robot with realistic physics in just a few clicks!

The Learning Process: Iteration as Meditation

I've discovered that redoing projects in Unreal is like meditation. There's a rhythm:

1. Observe - Watch professionals demonstrate

2. Attempt - Try it yourself

3. Execute - Complete it, learning from errors

4. Refine - Redo it properly with understanding

Thank You

Massive thanks to the Epic Games Team, incredible instructors, amazing TA, and fellow riggers who made this journey possible.

Special thanks to: Julie Lottering, Chase Cooper, Jeremie Passerin, Matt Ringot, Sara Schvartzman, Ferris Webby, Helge Mathee, Benoit Gaudreau, James Burton, Shenaz Baksh, Sean Spitzer, and Kevin Miller.

Why This Matters

This workflow proves Unreal can be a complete content creation environment. For my work in medical education and AR/VR training with POCUS technology, rigging complex medical devices entirely in Unreal eliminates pipeline friction.

The SO-ARM 100 now moves with precision and purpose—100% rigged in Unreal Engine.

Your Turn!

Have you explored Control Rig for mechanical rigging? Share your experiences in the comments!