1
$\begingroup$

I have several linked scene copies where I want to animate objects, cameras, and lighting for architectural animations; such as a door-opening during a walk-through, or sunlight and other lighting dynamically changing for a time-of-day animation with a static camera.

For example, if I animate a door opening/closing for my Scene.walkThrough scene, I want this animation action disabled for my Scene.fullday scene.

Another example is where I want an armature character to walk in one scene and jog in another scene, to collect all these basics in one file and also use NLA in another scene.

I do not seem to be able to assign an animation action to strictly one scene. Is there a way?

enter image description here

I realize that I could have a base blend file that gets linked in one of several files where I can supply the animation, but I am hoping to avoid this and would think that scenes have some way to especially separate out an animation action.

I also realize that a partial work-around would be to use NLA to apply several Actions at different frames, and then have the Scenes limited to the range of frames for that Action. This seems clunky at best.

Note that it is possible in 3ds Max to do this -- one gets a "Base" animation and then per-Scene overrides or additions.

$\endgroup$
5
  • 1
    $\begingroup$ I could be mistaken, but I think collection instances can achieve this? $\endgroup$
    – RPaladin
    Jun 1, 2021 at 23:02
  • 2
    $\begingroup$ I don't think you can do this. Animation data (active action, NLA tracks) is stored with the object—the same object linked into two scenes always has the same animation data. Different scenes can have different current frames though. $\endgroup$
    – scurest
    Oct 14, 2021 at 0:38
  • $\begingroup$ @scurest - different start/end frames per scene may be one workaround, although changing the animation frame count in one scene could have a nasty ripply workflow. No way to make one scenes start/end frame as a Driver to another scenes start/end frame. All this a "workaround" for a missing feature, I believe. $\endgroup$
    – james_t
    Dec 7, 2021 at 19:00
  • 1
    $\begingroup$ @Paladin -- your suggestion above was key to the solution that I have written up below. I won't tell you about how many hours I spent trying to figure this out, separated by days of mental baking time! $\endgroup$
    – james_t
    Jan 16, 2022 at 20:45
  • $\begingroup$ @scurest -- see my answer below. It was "almost impossible" to figure out, but it is possible. $\endgroup$
    – james_t
    Jan 16, 2022 at 20:45

1 Answer 1

2
$\begingroup$

Bottom Line, In Blender Linked scenes work by duplicating current collections and all collections within them. So essentially, if you want to keep anything unique in a linked scene, Create a new collection in the linked scene and move the objects you want to make unique to this newly created collection. This will not reflect in the original scene. Hope it helps.

Through discussions on devtalk and from a hint from @Paladin above, I finally figured out a method (he said in exhaustion!).

  1. Link the character from its definition file to your new action-scenes file, do not do a Library Override
  2. Create a Parent Common collection for any other shared objects
  3. Scenes: duplicate Linked Copy for N action scenes (Scene.Walk, Scene.Run, …)
  4. In each Scene, create a new collection (will be independent to that scene, (like “Walk”, “Run”,…); this will not be available in the other scenes.
  5. On character collection in Outliner, right-click: “Instance to scene” and move to the new character parent collection (“Walk”, “Run”,…)
  6. for the scene instanced character, Object :: Apply :: Make Instances Real (meshes are still linked, saving space)
  7. disable, hide, no render the original Linked char, in each scene
  8. create all other common scene objects (with possible common animations)
  9. For organization, you can go to the Action Editor and rename the actions to things like "MyChar.Walk", "MyChar.Run" and so on.

This uses very little file space, and still has links to inherit all mesh or other changes in the linked character file.

$\endgroup$
1
  • $\begingroup$ There are still some synchronization glitches through release 4.0, but 4.2 is very promising. The glitches become noticeable if you update the library/linked file (base character) when you make edits or add meshes there. Glitches like incorrect hierarchy (meshes parented to armature) get broken and need re-sync on every animation file::open. Another is disconnect of Action from mesh or armature that need to be recovered. $\endgroup$
    – james_t
    Mar 28 at 16:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .