Blender Git Statistics -> Branches -> temp-angavrilov-constraints
"Temp-angavrilov-constraints" branch
Total commits : 9
Total committers : 1
First Commit : June 22, 2021
Latest Commit : June 22, 2021
Commits by Date
Date | Number of Commits | |
---|---|---|
June 22, 2021 | 9 |
Committers
Author | Number of Commits |
---|---|
Alexander Gavrilov | 9 |
Popular Files
Filename | Total Edits |
---|---|
constraint.c | 3 |
DNA_constraint_types.h | 3 |
armature_add.c | 3 |
rna_constraint.c | 3 |
DNA_action_types.h | 2 |
armature.c | 2 |
deg_builder_relations.cc | 2 |
versioning_300.c | 2 |
rna_action.c | 2 |
overlay_armature.c | 2 |
Latest commits
June 22, 2021, 13:43 (GMT) |
Temporary Hack: provide B-Bone scale versioning for files with old patch. Run the versioning code for the conversion of bbone scale to an xyz vector if it has fields that correspond to the old version of the patch before that change requiring versioning. The actual Y (length) scale value from the old patch isn't versioned and will be lost, requiring manual fixing. |
June 22, 2021, 13:43 (GMT) |
Animation: support filtering for curves with a cycle period mismatch. Since the looping behavior is defined per curve rather than at action level, it is possible for curve loop periods to get out of sync with each other. This commit adds an option to compare curves against the frame range specified in the action, and treat those with a mismatch as errors for the purpose of F-Curve filtering. When enabled, the check verifies that curves within the action have valid cyclic extrapolation, and the action period evenly divides by the curve period (since a curve looping at e.g. half of the action period length still repeats in sync with the action). |
June 22, 2021, 13:43 (GMT) |
Animation: allow specifying a custom frame range for actions. Some operations, e.g. adding a new action strip to NLA, require knowing the active frame range of an action, but currently it can only be deduced by scanning the keyframes of the curves within it. This is not ideal if e.g. curves are staggered for overlap. As suggested by Nathan Vegdahl, this patch adds Action properties that allow manually specifying its active frame range, and whether it is intended to be cyclic. The settings are exposed in a popover in Action Editor. When enabled, the range is highlighted in the background using a striped fill to distinguish it from the solid filled regular playback range. When set, the frame range is used by NLA. In addition, the Cycle-Aware Keying option automatically sets up F-Curves newly added to a cyclic action to use cyclic extrapolation with the correct period. |
June 22, 2021, 13:43 (GMT) |
Bone Overlay: support bone wireframe opacity settings. When weight painting the bone overlay is extremely intrusive, effectively requiring either extensive use of hiding individual bones, or disabling the whole bone overlay between selections. This addresses the issue by adding two bone opacity sliders that are used for the 'wireframe' armature drawing mode. One directly controls the opacity in a uniform way. The other one allows fade based on the depth between the near and far clip planes in order to provide an automatic visual cue about which bones are closest. |
June 22, 2021, 13:43 (GMT) |
Copy Transforms: implement Remove Target Shear and more Mix options. This constraint can be naturally viewed as a prototype for a future 4x4 matrix math node (or subset thereof), since its basic semantics already is matrix assignment. Thus it makes sense to add math options to this constraint to increase flexibility in the meantime. This patch adds support for several operations that would be useful: - An option to remove shear in the incoming target matrix. Shear is known to cause issues for various mathematical operations, so an option to remove it at key points is useful. Constraints based on Euler like Copy Rotation and Limit Rotation already have always enabled shear removal built in, because their math doesn't work correctly with shear. In the future node system shear removal would be a separate node (and currently Limit Rotation can be used as a Remove Shear constraint). However removing shear from the result of the target space conversion before mixing (similar to Copy Rotation) has to be built into Copy Transforms itself as an option. - More ways to combine the target and owner matrices. Similar to multiple Inherit Scale modes for parenting, there are multiple ways one may want to combine matrices based on context. This implements 3 variants for each of the Before/After modes (one of them already existing). - Full implements regular matrix multiplication as the most basic option. The downside is the risk of creating shear. - Aligned emulates the 'anti-shear' Aligned Inherit Scale mode, and basically uses Full for location, and Split for rotation/scale. (This choice already existed.) - Split Channels combines location, rotation and scale separately. Looking at D7547 there is demand for Split Channels in some cases, so I think it makes sense to include it in Copy Transforms too, so that the Mix menu items can be identical for it and the Action constraint. Differential Revision: https://developer.blender.org/D9469 |
June 22, 2021, 13:43 (GMT) |
Armature: apply Y scale to B-Bone segments. This fixes a strange behavior where the segments were not actually scaled in the Y direction to match their actual length, thus producing gaps or overlap depending on the shape of the curve. For transformation the change should be very small if enough segments are used, but this will affect the results of the Copy Transforms and Armature constraints, so a backwards compatibility option is provided. Newly created bones default to the new behavior. |
June 22, 2021, 13:43 (GMT) |
Constraints: support a new Local Space (Owner Orientation) for targets. Add a new transformation space choice for bone constraints, which represent the local transformation of the target bone in the constraint owner's local space. The use case for this is transferring the local (i.e. excluding the effect of parents) motion of one bone to another one, while ignoring the difference between their rest pose orientations. Owner Local Space replaces the following setup: * A `child` bone of the `target`, rotated the same as `owner` in rest pose. * A `sibling` bone of the `target`, positioned same as `child` in rest pose and using Copy Transforms in World Space from `child`. * The `owner` bone constraint uses Local Space of `sibling`. (This analogy applies provided both bones use Local Location) Since the space list is getting long, also add a couple of separators. Differential Revision: https://developer.blender.org/D9493 |
June 22, 2021, 13:43 (GMT) |
Constraints: refactor the D7437 patch adding Custom Space for constraints. As mentioned in the comments to that patch, I had an idea for a different way to do some technical aspects, but it was too complicated to force changes in the original patch. Thus I submit this follow up patch. First, instead of modifying all the get_constraint_targets and flush_constraint_targets callbacks, introduce wrapper functions for accessing constraint targets, convert all code to use them, and handle the new reference there uniformly for all constraints. This incidentally revealed a place in the Collada exporter that didn't clean up after retrieving the targets. Also, tag the special target with a flag so other code can handle it appropriately where necessary. This for instance allows dependency graph to know that the Use B-Bone Shape option doesn't affect this specific target. Finally, rename and simplify the function for initializing the custom space, and make sure it is called everywhere necessary. Differential Revision: https://developer.blender.org/D9732 |
June 22, 2021, 13:43 (GMT) |
Depsgraph: connect up drivers on various physics properties. It seems drivers for physics properties weren't being linked to evaluation nodes. This connects settings used by modifiers to Geometry; particle settings and rigid body data to Transform which seems to contain rigid body evaluation; and force fields to object Transform, since fields can exist on empties. Differential Revision: https://developer.blender.org/D10088 |
MiikaHweb - Blender Git Statistics v1.06