Create Realistic Planetary Rings in After Effects | No Plugins Needed!
Tutorial showing how to take advantage of the Advanced 3D Renderer to add a ring to world.
You’ll learn how to:
• Build a procedural ring using Fractal Noise and Polar Coordinates
• Add fake shadows and lighting that respond to your scene (older versions of AE, not needed for the latest release)
• Use CC Particle World to simulate rock-filled space rings
• Create realistic shadow interactions between your ring and planet (older versions of AE, not needed for the latest release)
Bonus: Free step-by-step PDF guide in the description!
This video builds on my earlier tutorial, where I showed how to create your own planets directly in After Effects, building up the textures and exporting them to use with a 3D wavefront OBJ file. Following on from that project, we now get to take advantage of the planet being in 3D space by adding a 2.5D comp of a ring system and have it loop around our sphere. But if you want to go further and depict the rocks that make up the rings, then I also demonstrate how to use the included CC Particle World to create hundreds of particles of rock images and have them surround the planet. But because that doesn’t loop correctly, I have also made and shared a hemisphere you can use to create a 3D Luma Matte for the particles so that they appear to go behind the planet.
Can’t see this video? Click here! If you are in Safari, hover over “Safari” in your menu, click “settings for creativecow.net” and toggle the “Auto-Play” to “Allow All Auto-Play”.
Expressions
CC Particle World Code:
Position X:— CODE START —
x=thisComp.layer(“Emitter”).transform.position[0]-thisComp.width/2;
x/thisComp.width;— CODE END —
Position Y:— CODE START —
y=thisComp.layer(“Emitter”).transform.position[1]-thisComp.height/2;
y/thisComp.width;— CODE END —
Position Z:— CODE START —
z=thisComp.layer(“Emitter”).transform.position[2];
z/thisComp.width;— CODE END —
Angle the ring shadow away from the Sun (add to Z rotation):— CODE START —
var light = thisComp.layer(“Sun”).toWorld([0, 0, 0]) // name of your light layer
var planet = thisComp.layer(“Planet NULL”).toWorld(thisComp.layer(“Planet NULL”).anchorPoint);
var dir = light – planet;
radiansToDegrees(Math.atan2(dir[0], dir[2])) + 180;— CODE END —
Random frame expression:— CODE START —
random(0,4)/30— CODE END —
Emitter expression:— CODE START —
var L = thisComp.layer(“Emitter position”);
L.toWorld([0,0,0])— CODE END —
Enjoying this tutorial? Sign up for the Creative COW Newsletter!
Sign up for the Creative COW newsletter and get weekly updates on industry news, forum highlights, jobs, inspirational tutorials, tips, burning questions, and more! Receive bulletins from the largest, longest-running community dedicated to supporting professionals working in film, video, and audio.
Enter your email address, and your first and last name below!



Responses