Page MenuHome

Blender development todo list -- Animation System
Open, NormalPublic

Description

NOTE: this is a direct dump of https://wiki.blender.org/index.php/Dev:Source/Development/Todo/Animation (without cherrypicking the [still] valid items)

Armature

  • Separate <s>and Join</s> tools should move animdata around too (using BKE_animdata_separate_by_basepath), see report: T31966
  • B-bones (beziers) still use old code that keeps Z axis up, which causes twisting in cases. the solution as used for curve-deform could be copied here as well. T26090
  • B-bones handling of rotations sometimes is wrong (hard to fix, maybe same/related issue as the one above, see T39491, T41678).
  • Armature editmode undo/redo issue: since armature edits sync with Pose all the time, a delete/undo command will still not retrieve all bone group, constraint and driver infos in pose-bones. T28350
  • Skeleton Sketching does not correctly compute bone envelope sizes, resulting in near/effectively zero but non-zero size values. T34541
  • Flip Names removes Bone numbers T34282
  • Better handle of Pose transforms when applying Object-level transforms to data (T41699)?
  • The Dual Quaternions algorithm behind the "Preserve Volume" function (Armature Modifier) needs an update (T43188) - [http://rodolphe-vaillant.fr/?e=59 Paper]

Rigging

  • Copy Menu - the future of tools like this is currently unclear. Certainly for rigging though, they are often the only useful way to do mass changes.
  • Proxy Objects (armature, group): the system works, but has limits. It can only proxy once (not duplicates), motion paths don't draw for it either (T26256). The feature was added in 2007 but never further upgraded or improved.
  • Proxy Bones: there's no or incorrect syncing of bone transform limits. T32116
  • IK solver does not handle situations where you want only stretch when needed, would need to be implemented explicitly (report T32174)
  • Warning: if you use "Automatic weighting" (Laplacian "bone heat") you need to ensure the normals are correct, so don't use negative scaled models.
  • X-mirror for Armature editmode changes roll values on Transform, but with ESC it doesn't restore these rolls.
  • Setups with "Maintain Volume" modifier fail for some Bone rotations (work around included) T31975
  • Can't undo hiding the bone T38911
  • Bone '''Inherit Scale''' could be made to work with negative values T40506
  • Automatic Weights are slow on high-density meshes T53494

Constraints

  • Constraints involving rotations - in particular, childof, transform, copy rotation - with influence < 1 are known to behave weirdly due to limitations with the underlying math. In particular, matrix decomposition issues mean that rotations are only guaranteed to be clamped to lie with +/- 180 degrees (causing issues with gears and other setups where the magnitude+direction of rotation matters), and negative scale factors cannot actually be individually identified with any accuracy. These are well known limitations of the current system, which are non-trivial and currently intractable problems. (e.g. T40671, T37623, T40873, and many many others before them)
  • PyConstraints - these are quite high on the priority list to restore, but are still waiting on a few technical issues to be resolved still
  • Transform Constraint functions quite limited. Postponed to fix. T27286
  • Note: the "Child of" constraint functions best if the bone itself is not parented.
  • Bug report about "Child of" and "transform" constraints failing T29100
  • "Apply visual transform" fails with IK constraint. T27743
  • Mirror tool (Object mode) doesn't work for Child-of constraints always T32248
  • Pivot Constraint is broken currently, doesn't function at all. e.g. T32963
  • Copy Transforms constraint jumps when changing influence (especially when shear is involved) T34532
  • Maintain volume constraint behaves wrong ({{GitCommit|48079)
  • Parenting object with constraint causes tansform ({{GitCommit|45531)

Dependency Graph

The 2.5 spec "animate everything" works, but what's missing is a clean dependency solver to ensure anything you relate gets displayed in real time on changing properties or while posing/animating. Here we collect known issues to solve later.

  • Driver example T26734 T35863
  • B-Bone ease driver doesn't update well T28312
  • Constraint with vertex group target on subsurf mesh not working T29059
  • New dependency graph for all datablocks (Specially for all kind of material and texture datablocks, ie: Stucci parameters). T20956, T23426, T23639, T22698, T24562, custom props 3 T32495, custom props 4 T28286
  • Bones and the object dependency graph?
  • Drivers using object data (e.g. lamp distance) do not update on changes immediately (T27424)
  • Image Sequence Not Updating in 3D Viewport when it's properties are driven with a driver (T30514)
  • Wonderful complex dependency of Cloth with Duplication and NLA T29838
  • Dependency graph and layer switching error (T27032, T27032)
  • Group duplicators + deform, error related to drawing modes and layers. T24774
  • Object has modifier dependency on an object inside a linked group. T26724
  • Cloth sim inside a linked group updates badly (pointcache issue too). T27287
  • Object uses a constraint dependency to an object inside a linked group. T27694
  • Updates with custom properties very slow: T31647
  • Proxy: needs to be created with group-instance on location where it starts - to make pointcaches work. T32944
  • Multiple duplications of group, 1 proxy error: T31891
  • Two scenes, in two windows, with partial shared data - bad updating. T33560
  • Viewport dupligroup evaluated in original location, render dupligroup in dupli transformed location gives difference between viewport and render (T33591, T33595)
  • Instances linking to group that link to group with animated characters doesn't work. T34025
  • Dupligroup with Array modifier but control object not in group. Undefined result. T35562
  • Dupliframes on armature - armature cannot be posed once keyframes exist.T35929
  • Lack of refresh on layer visiblity change T37262
  • Changing texture doesn't refresh deform modifier T39717
  • Drivers using own transform channels are not reliable T50066

Animation System

Notes:

  • When constructing data paths, only use the "" form for strings. Even though Python supports both interchangably, we only use the <code>""</code> form for strings used for names. Using the <code>' '</code> form instead may lead to unexpected evaluation results.
  • Properties for GLSL shaders are not animated during anim playback, they are compiled for speed.
  • Driver test cases (should be in regression): T24012
  • Opening 2.4x files with objects with shared Actions results in missing animations.
  • Unable to bake actions for multiple selected objects T38308

Todo:

  • Frame-mapping (map to, old) is still half implemented. Candidate to be removed?
  • <s>Remove animation data from objects, when all their animation is deleted.</s>
  • Non-relative vertex keys aren't really usable currently, see T22431
  • Animation 'overrides', or some kind of functionality to keep recently changed (but already keyframed) values from changing on scene updates would be nice to have, see T26019.
  • Support for passing string/pointer values into scripted expressions using Driver Variables as containers for this T26306
  • Animation playback: the way how the timer manages 'current frame' is not well implemented. Error for example happens when using redo-operator on playback. Needs revision.
  • Animating collections (like object layers): per-element curves might apply incorrect because of restrictions for overall collection, T29883
  • An easy way to clear Custom and rig UI Proprieties from the selected PoseBone, setting up the default values - like Alt+R for Rotation. Alt+C looks to be a good hotkey to clear Custom Proprieties from PoseBones
  • Mirroring Bone Pose working for Bone Custom Proprieties and Custom UI Proprieties
  • Duplicate objects could check all RNA paths, and fix ID names in it for new names. T31161 T36626
  • Changes such as selecting/renaming groups in anim editors don't affect bones. This was never meant to work, since "Group channels != Bone channels" (even though when dealing with bones, the default behavior is to group together bone fcurves to make them easier to find). Anyways, for usability, it would be nice to eventually get this sync working again. But, "Not-A-Bug-For-The-Tracker (TM)"!. Examples: T35798
  • NLA Strips need "cycle offset" for the case where a strip gets split in the middle of a repeat. However, cannot implement this without a thorough unit test set for this code T27503
  • NLA influence animation has to be done without EditMode on strips. Inside EditMode doesn't work yet (was meant for animating time).
  • Drivers duplication won't preserve targeted objects T39079
  • FCurve easing could use normal of handles T39916
  • Undo re-orders dope sheet items which have cyclic dependencies T38491.
  • Editing keyframes in Graph Editor currently does not force motion paths to get recalculated. T42181
  • "Separate" shouldn't result in two curves that share one action T36999
  • Existing FCurve interpolation methods are not really good for quaternions T45473

Details

Type
To Do

Related Objects

Event Timeline

Philipp Oeser (lichtwerk) lowered the priority of this task from Needs Triage by Developer to Normal.Jun 7 2018, 12:53 PM
Philipp Oeser (lichtwerk) created this task.