Keying 1 axis for multiple objects

(Jr) #1

Hello, everyone. I have a question… Is there really no possible way to key a single channel in Blender for several objects? I am a noob at blender and I am baffled with this. I’ve tried to create keying sets or linking then unlinking animations for multiple objects. But first method lacks in, that it keys set channels in those object independent of me have them selected or not. The second method destroys all previous animation if it was done on the objects earlier…

I am in a bind here. Please maybe some one could explain to me?

P.s. I could use existing keying set - like location or rotation or locrot and etc. But this solution throws in a numerous amount of unnecessary keys in other 2 channels. And I do need to work with 400+ objects at once.

Big Thank you in advance, I tried searching for solution my self, but I am not well acquainted with terminology of blender yet.

(Clockmender) #2

I am not sure I have completely understood exactly what you are trying to do here, but some ideas for you:

  1. Make multiple objects all rotate about a common point: Parent them all to one “control” object and rotate that one object. This could be a bone in an armature BTW.

  2. Make multiple objects rotate about their individual origins: Add a driver to each object that uses a common “target” object, so you rotate the target object and al the rest rotate automatically. You can vary the driver values to rotate the objects different amounts. You can also do the with Transformation Constraints.

  3. Make multiple objects rotate about a set of control objects: I would use Animation Nodes here and then Loop sub-routines in AN to control all the objects using variables based on their position in the object list, or some other value, like their Group name.

So, what would really help here is for you to post an image of your scenario, or the blend file for us to look at so we know exactly what you want. Object Instances (Animation Nodes again) may also be the way to go if you want lots of objects to do lots of things, provided they all look the same, examples here:

We need to know more specifically what you want to do Sir!

Cheers, Clock. :beers:

PS. if you are new here and cannot post a blend file yet, just post it to then post the link to your file.

(Jr) #3

Yes you are right, showing it with image is simpler. But My task is simple as well… All I want to do is add key to one channel for multiple objects. I don’t need to link them or drive them. I just need them to have animated only that one channel:

Now I can key xyz in one transform or I can add single key to a single object from selected group…
It would not be hard to do so if I had only this many objects. You go to one press single key, you go to other - press single key… But I have more then thew hundred of them. And I can’t use animation nodes the job is too specific…

I was thinking, maybe there is a way to create a keying set that would be similar to “rotation” but would drive - “rotation Y” for example :confused: ???

(stilltrying) #4

If your just going to copy the same keyframe animation data from one to another, you can do a little python script. This will copy animation data keyframes from all selected objects from the active object. Select an object. Animate it. Select all objects with the one with the animation data last (the active object). Run the script. thanks to Chebhoa. They all with use the same action.

import bpy

active_obj = bpy.context.object
ad = bpy.context.object.animation_data

properties = [p.identifier for p in if not p.is_readonly]
objects = [o for o in bpy.context.selected_objects if o.type == active_obj.type]

for obj in objects :
    if obj.animation_data == None :
    ad2 = obj.animation_data

    for prop in properties:
        setattr(ad2, prop, getattr(ad, prop))

(Jr) #5

Thanks… This is one of possible work arounds… I am in the need of a simpler solution, because I may need to add keys to objects that have animation already. I found that simplest solution in my case just to add keys to all 3 - XYZ. Then, just filter out the need axis, and delete the rest.

But I think this is a neet little script, because in previous works I struggled with copy/pasting animations on large scale… so - BiG Thanks!!!