This was another "big" idea, which should allow for more flexible animation along with bezier curves and whatever other interpolation stuff we could add.
Basic point for modifier expansion was to make them able to record separate parts of them, like each physical bone in physical bones individually, same for nonphysical bones, or flexes for face flexes. This could put a strain on having to calculate interpolation for each part of an entity like that during playback, however, but the freedom it provides could be worth it.
Having some way for modifiers to be able to filter themselves out could be nice as well, as I think some of them already don't record themselves if entity doesn't have the stuff they need - perhaps there could be a way to use those filters to exclude modifiers from appearing at all in the would-be selection tab in such case. #14
I was also thinking that having a way for modifiers to be modified in relation to other ones could allow for more flexibility, like let's say having physics bones modifiers be "locked" to local coordinates of some other physbones, or perhaps positions of entities. That would require some way to lock bones to each other, and then also make it work cross-modifiers for "position and rotation" support. I was thinking it could work by introducing some "local" vector, that it records when we record the entity and is calculated relative to parent, but it keeps the world coordinates vector too, so it won't need to calculate them during playback. Something like this will probably require a hook system to be able to fire off callbacks to "parented" bones to recalculate their world positions when parent gets modified, at worst that could result in freezes when there's a lot of bones like that being tied to a bone or set of them that were recorded. I assume this could also help with #12 somewhat?
Possible other things that would have to be done to support this:
This was another "big" idea, which should allow for more flexible animation along with bezier curves and whatever other interpolation stuff we could add.
Basic point for modifier expansion was to make them able to record separate parts of them, like each physical bone in physical bones individually, same for nonphysical bones, or flexes for face flexes. This could put a strain on having to calculate interpolation for each part of an entity like that during playback, however, but the freedom it provides could be worth it.
Having some way for modifiers to be able to filter themselves out could be nice as well, as I think some of them already don't record themselves if entity doesn't have the stuff they need - perhaps there could be a way to use those filters to exclude modifiers from appearing at all in the would-be selection tab in such case. #14
I was also thinking that having a way for modifiers to be modified in relation to other ones could allow for more flexibility, like let's say having physics bones modifiers be "locked" to local coordinates of some other physbones, or perhaps positions of entities. That would require some way to lock bones to each other, and then also make it work cross-modifiers for "position and rotation" support. I was thinking it could work by introducing some "local" vector, that it records when we record the entity and is calculated relative to parent, but it keeps the world coordinates vector too, so it won't need to calculate them during playback. Something like this will probably require a hook system to be able to fire off callbacks to "parented" bones to recalculate their world positions when parent gets modified, at worst that could result in freezes when there's a lot of bones like that being tied to a bone or set of them that were recorded. I assume this could also help with #12 somewhat?
Possible other things that would have to be done to support this: