Since I have added my animation previewing tool which enables bone node creation for Animated Models in scenes, I’ve introduced a bug where root joint hierarchies get duplicated for each Animated model, each time a scene gets saved and reloaded. This is because the skeleton nodes are not marked as temporary when the skeleton gets created, and then gets saved to the scene.
My question is:
Can I go ahead and set these nodes to temporary when the bone hierarchy gets created? The scene serialization already excludes temporary nodes. Is there a scenario where we wouldn’t want the bone hierarchy to be temporary?
No problem, it happens and reinforces that we need serialization unit tests…
The main conflict we would run into here would be with prefabs, which prefabs 2.0 will clean up when we switch over to using tags for them instead of piggy backing on the temporary flag. I did a search in the project for the references to Serializable ::SetTemporary, Serializable::IsTemporary and here are the 2 possible trouble spots:
In the PrefabComponent here:
and here in the PrefabImporter:
You can see that we’re riding the temporary flag, this was before we had Node tags. What do you think of tagging temporary bone nodes with an “atomic-temporary” flag and then we can check that during node serialization. It will basically act as a temporary flag without messing with existing prefabs, and as these won’t be serialized, is an implementation detail we can hide until we’re ready to dial in Prefabs 2.0
Let me know, and btw, if this issue isn’t tracked, can you please add it and attach it to the Atomic Build 3 milestone?
Also, will existing scene and examples have these nodes in them since the change? I think this could be difficult to automatically clean out of projects, so a good thing for release notes, thanks!