[Closed] autoback save only scene changes
In our office, people complain that they spend a lot of time while autoback is saving especially big files. These autobacks are very needed in case max crashes. Even with ssd, if you have scenes with more then 500Mb (at us they have more then 2GB) then you have to wait a lot.
I thought to ask you, what do you think about making a script that will get last scene state when the file was manually saved, and from this moment on, save selected objects only, that where modified (geometry, modifiers), all scene and MatEdit materials to temp files. In case of max crash, or accidentally turned off the PC, you will have all those changes in your last backed up file, then just merge those models and materials to your last saved scene replacing existing models and materials.
is this idea a good/correct concept, or there are serious reasons not to do so?
it’s a good idea. for some specific scene setups it would be nice to have “auto-backup by layer” for example, which happens more often than a regular (full scene backup).
it’s pretty easy to script this ‘isolated’ backup.
Perhaps for very simple scenes where only geometry or materials change, and objects aren’t parented or otherwise dependent on other objects. Doing this for rigs or animation would be… complicated. To say the least.
Even then, you’d likely have to detect the changes programmatically, which means going through every single possible parameter, every vert of every object and comparing against a saved state. For big or complicated scenes that in itself might take much longer than a save.
Autoback is fully optional. They can choose to disable it and save only when it is convenient for them.
To actually fix your problem you’d probably have to come up with ways not to have 2GB scenes. Xrefs can help you not have in your scene stuff that almost never changes, and baking displacement maps can mostly solve the problem of having huge collapsed meshes.
I agree about xref, but I’m afraid it would be difficult to force them use xrefs, because xrefs are not editable in current scene, that’s why they don’t use them at all.
oh, Denis, by layer. I didn’t think about it. That’s really a nice idea
I think there should be a way of autodetecting – if you change/create/apply any material or change/create any geometry/object then add them automatically to isolate autoback layer.
Then again, why have the constraint of autobacking a layer, it often happens that an artist would be working on more than one layer, but only a few objects in each. It may be easy to write a tool that autobacks specific picked nodes: artist selects a bunch of objects and hits a “Disable default-autoback and custom-autoback only these objects from now on” button, then continues working.
Detecting new nodes will likely have to be done same way as when merging: see what nodes didn’t exist at pick time. I’m not entirely sure if relying on .inode.handle is safe even in this context.
One could try adding new nodes to the saved list with #nodeCreated, #nodeCloned and #sceneNodeAdded callbacks, but I personally don’t trust them; I’ve had them miss nodes occasionally.
I think there should be a way of autodetecting – if you change/create/apply any material or change/create any geometry/object then add them automatically to isolate autoback layer.
Even if you do that, the downside is that with such a workflow the scene can no longer be realistically organized into layers, and it’ll devolve into two: “0 (default)” and “autoback”; the artists can’t be assed to put every single changed object back where they initially were. This is bound to make quite a few people unhappy, especially with complex scenes.
as i guess we are talking about some ‘environment’ scenes. these can be really big. but always i my practice i saw very well organized ‘environment’ scenes. and most often artists use layers.
so the using of ‘alive’ and ‘static’ layers can help to make a selective backup.
another thing that i did… i t’s a ‘in advance warning’ about a coming backup. i’ve showed a ‘prompt window’ (i was semitransparent window in an active view) which showed countdown to backup and two options: do it now, and skip to the next time.
my users loved this feature. people usually stress not because of any backup or its long time.
the problem is that happens ‘randomly’, and interrupts working process in the most inconvenient time.
Very funny, yes we use layers a lot. A warning is also a good way of preventing stress I think the user should have the options:
advance warning
custom objects back up ( for fast savings)
Or may be which objects/layers do not need back up, I don’t really know.
I don’t see very clear the ‘partial backup’. How do you rebuild the scene? How can you guess if there are objects in the ‘base backup scene’ that should be deleted (for example)? Perhaps working by layers, yes, but artists should be very neat working.
I like the ‘warning’ idea. Perhaps it would be nice if artists could pause it until pressing a button.