Additive animation for basic non-boned objects?

I’m trying to apply various relative animations to basic objects (not complex boned characters) in a scene, for example, a sphere or cube, let’s say. A sample relative animation might be to bounce an object up and down, scale, rotate, etc. within the animation sequence. I’ve been pulling my hair out because I cannot get additive animation to work. If my object in the scene is at world space position (10,5,3), but my relative animation wants to move the object from (0,0,0) to (2, 0, 0) locally over time, Unity moves the object to world space (0,0,0) first instead of applying this additively at (10,5,3). What I hope to achieve is a translation from (10,5,3) to (12,5,3) in this case. I’ve not included code because none of it works. The only way I’ve found so far to fix this is by parenting the object so that the relative motion occurs relative to the parent location in world space. I’ve applied this “wrapper” to all of these objects, but this is a horrible hack that I’d like to remove once and for all and complicates my object/scene hierarchy. I hope there is a simple solution to this. Thanks for help/support.

If you look at how bones are imported into Unity, that “horrible hack” is how regular animations work. The lower leg bone is childed to the upper leg, gets the position and angle based on it, then does it’s thing. Allows for out-of-synch partial animations, CrossFades at arbitrary times, other real-time stuff.

If you know you will always run the exact same sequence the exact same way, I guess you could build a rig that uses the “hack,” play it at (0,0,0) and capture the position and rotation each frame in a file. Then have the real code use that to directly set each part, with only 1 extra step to apply the main transform.