How can I make a sphere-like object pulsate with the beat of a song? Is this possible to do in Blender, or do I need to get Adobe After Effects?
Here is an example of what I mean: https://www.youtube.com/channel/UC_aEa8K-EOJ3D6gOs7HcyNg
Blender Stack Exchange is a question and answer site for people who use Blender to create 3D graphics, animations, or games. It only takes a minute to sign up.
Sign up to join this communityHow can I make a sphere-like object pulsate with the beat of a song? Is this possible to do in Blender, or do I need to get Adobe After Effects?
Here is an example of what I mean: https://www.youtube.com/channel/UC_aEa8K-EOJ3D6gOs7HcyNg
I had so much fun re-creating this effect that I ended up doing it twice. You can see the final results (with sound) here.
Unfortunately a step-by-step guide to creating exactly what I made would be a bit long for an answer, so instead I'll summarize the process, with lots of links to other more specific answers.
The basic idea is this:
Create an empty (⇧ ShiftA> Empty) and keyframe an arbitrary transform channel (I) (using an empty's transform makes setting up drivers a little quicker later on)
Use Graph editor > Bake Sound to Fcurve.
If you want to get fancy you can bake several empties (or several transform channels) with different frequency ranges (for example, if you want to change the scale with the amplitude of bass sounds while changing the color with higher pitched sounds)
Use drivers to control whatever settings you want (object scale, subdivision levels, or even cycles materials) based on the empty's baked transform channel.
The reason for baking to an intermediate empty rather than directly to the property you want to animate is solely for ease of tweaking. With a driver you can e.g. use an expression to adjust the amplitude later on, or use multiple drivers to drive multiple properties off of a single empty.
With that in mind, I used a cube with some modifiers to create the sphere:
Other points of interest in this screenshot:
min()
provides a quick way to limit the maximum value the driver will produce; e.g. min(somenumber, 1)
can only ever return numbers < 1.To create the dots I duplicated this cube and used dupliverts to render the second cube's vertices as icospheres, and added a driver to the subdivision level on the subsurf modifier.
This is super easy & Fun: