I’ll be making a more in depth overview / devlog video of this project soon, but to give a general idea:
The solution I ended up with (went through a few approaches) was to have each arm a separate blueprint that it spawns (I initially had a niagara system / custom module to do all the arms within one, but I was running into some issues/difficulties that way).
Each of the main arms is doing some prediction/planning where to land in BP, with the main body ‘rolling’ the target points around (so it’s not just moving laterally, the sphere rolls and brings the ‘foot’ targets with it), which is one of the main things I wanted to figure out the math for / experiment with as I’d not done that ‘rolling’ style before with proc anim.
Each of this tentacle BP things had a cable component (no gravity and a few other tweaks) that went from the spawn point on the sphere, to the target point.
The target points were interpolated based on the distance, so when they fell ‘out of range’ it’d find a new spot to land based on the speed/movement/direction of the orb and gradually move there.
Then in each of these BPs, I took the points of the cable, and converted it to a spline (eg. setting each spline point to a corresponding cable ‘particle’ position). These individual arm BPs had a single niagara system, which was a ribbon emitter that used a spline input (automatically gets the spline from the parent).
And to add to the effect, instead of just the main arms which used the above method, I also made some simpler niagara beams that would just point and lock to nearby places, and disappear when they went out of range. So about 10 of the arms are cable/splines, and the rest are just doing straight lines to nearby points.
Then the actual body (sphere orb part) is being animated procedurally in BP, based on finding the average location for all the tentacles that are locked in place. EG, on a surface, not the ones mid-transition. Which gives it the jerky/fast moving interpolations.
The actual animation of the actor in sequencer is very basic, so without the orb being procedurally animated it would have pretty linear/static motion, or taken ages to animate. From the in editor screenshot you can see how many keyframes the orb had, not too many, just transitioning between the main locations and the rest was done with the BP setup.
Then the helicopters are animated with control rig (blades spinning, their rotation when moving/flying, and a general random offset when they’re flying), which again, were animated in a very simple fashion with 3-4 location keyframes.