Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-09-16Action Constraint: Add manual time factor input controlChris Clyne
Adds an optional slider to the action constraint so that it can be driven without a constraint target. This is very helpful for more complex rigging and mechanical rigs, as it means the action constraint can be controlled with a driver/custom property directly, currently if we want to use a driver to control it we must add a "dummy" bone/object inbetween to act as a control. Reviewed By: Sebastian Parborg, Sybren A. Stüvel, Demeter Dzadik, Julian Eisel Differential Revision: http://developer.blender.org/D8022
2020-09-02UI: Use instanced panel custom data instead of list indexHans Goudey
For modifier shortcuts we added a "custom_data" field to panels. This commit uses the same system for accessing the list data that corresponds to each panel. This way the context is only used once and the modifier for each panel can be accessed more easily later. This ends up being mostly a cleanup commit with a few small changes in interface_panel.c. The large changes in the UI functions are due to the fact that the panel custom data is now passed around as a single pointer instead of being created again for every panel. The list_index variable in Panel.runtime is removed as it's now unnecessary. Differential Revision: https://developer.blender.org/D8559
2020-08-03Cleanup: remove trailing space, newlines at eofCampbell Barton
2020-07-10UI: Improve transform constraint layoutHans Goudey
- Remove the "mapping" subpanel and moves the source axis selection ot the destination subpanel. - Rename "Source" and "Destination" to "Map From" and "Map To" to make the action more clear - Gray out source axes when their data isn't selected. These changes were discussed in D8041.
2020-07-01UI: Fix alignment in kinematic constraint layoutHans Goudey
2020-07-01UI: Constraints: Use single column for IK constraintAaron Carlisle
2020-06-21UI: Only show constaint head/tail property with subtargetHans Goudey
2020-06-21 UI: A few small fixes for constraint layoutsHans Goudey
- Head / Tail was stuck on two rows. It seems there is an issue with headings here, which means the first property has to place its own label. (So for example the small button can't be first in the row.) - Some misalignment and decorator fixes for aligned toggles
2020-06-19Cleanup: SpellingHans Goudey
2020-06-19UI: Fix all constraint subpanels emptyHans Goudey
Silly typo in earlier fix
2020-06-19UI: Drag and Drop Constraints, Layout UpdatesHans Goudey
This patch implements the list panel system D7490 for constraints. In this case the panels are still defined in Python. The layouts are also updated to use subpanels and the a more organized single column layout. There may be more tweaks necessary for the layouts. Reviewed By: Severin, billreynish, Mets Differential Revision: https://developer.blender.org/D7499
2019-12-24Action Constraint: introduce a mix mode setting.Alexander Gavrilov
Currently the action channels are applied after the existing transformation, as if the action controlled a child of the bone. This is not very natural, but more importantly, the transform tools are not designed to work conveniently with an additional 'pseudo-child' transformation, resulting in effects like an unexpected pivot location. Implementing a Before mode that integrates the action channels as if applied to a parent allows using the special transform tool code intended for dealing with such constraints. Note that in either mode, Action constraints should be added in reverse order, putting a new constraint before the existing ones that the Action was keyframed to work together. In order to implement the option, extract a utility from the Copy Transform constraint code for combining transforms with special anti-shear scale handling that matches the Aligned Inherit Scale mode. The Before mode also requires switching the constraint to the Local owner space, while the After mode can still use the World space for efficiency as before. Since the constraint doesn't have an Owner space option in the UI, this has to be handled in an RNA setter. For full backward compatibility, the original simple matrix multiplication mode is preserved as the third option, but it is not recommended due to creating shear. Differential Revision: https://developer.blender.org/D6297
2019-11-07Stretch To: implement a mode similar to Damped Track for rotation.Alexander Gavrilov
Most of the time Stretch To is used in actual rigs, like BlenRig or Rigify, in combination with Damped Track to handle rotation before the stretch, because it produces rotations more appropriate for organic deformation, and doesn't flip because of internal gimbal lock. The prevalence of this pattern suggests that Stretch To should support that kind of rotation directly as an option. Differential Revision: https://developer.blender.org/D6134
2019-09-06Transformation Constraint: implement a Mix Mode option.Alexander Gavrilov
Allow selecting how the new location/rotation/scale is combined with the existing transformation. This is most useful for rotation, which has multiple options, and scale, which previously could only replace.
2019-09-06Copy Transforms: add a mixing mode option.Alexander Gavrilov
Allow combining location, rotation and scale at the same time, using one constraint. The mixing modes are based on matrix multiplication, but handle scale in a way that avoids creating shear. Reviewers: brecht Differential Revision: https://developer.blender.org/D5640
2019-09-06Copy Rotation: implement new mixing modes that actually work.Alexander Gavrilov
Upon close inspection, the way the Offset mode works in the Copy Rotation constraint makes no sense, and in fact, destroys the rotation of its owner unless either it's single axis, or the order is set specifically to `ZYX Euler`. Since it can't simply be changed because of backward compatibility concerns, replace the checkbox with a dropdown that provides a set of new modes that actually make sense. Specifically, add a mode that simply adds Euler components together, and two options that use matrix multiplication in different order. The Python use_offset property is replaced with compatibility stubs. Reviewers: brecht Differential Revision: https://developer.blender.org/D5640
2019-09-01Copy Rotation & Transform: add Euler order override options.Alexander Gavrilov
For reasons similar to drivers, it should be possible to set an explicit Euler rotation order in constraints that use Euler angles. The Transform constraint in a way approaches drivers in its use, in that it effectively alters channels using values of other channels after applying a fixed form mathematical expression. For this reason, instead of just specifying the euler order for its inputs, it uses the same enum as driver variables. However Quaternion components are converted to a weighted pseudo-angle representation as the rest of the constraint UI expects angles.
2019-08-29Copy Scale: support copying arbitrary non-uniform scale as uniform.Alexander Gavrilov
Uniform scale is superior to non-uniform scale in that it works with parenting without causing shear. Thus it is a valid desire in some cases to turn arbitrary scale into guaranteed uniform scale. Implementing this in the Copy Scale constraint allows one for instance to 'inherit scale as uniform' by disabling Inherit Scale, and using Copy Scale from parent with Offset and Make Uniform. Reviewers: brecht Differential Revision: https://developer.blender.org/D5614
2019-06-28Remove Sticky option from the Floor constraintSergey Sharybin
This option from the very beginning of its existence needed more work to make it work correct and this was never done. This option was working fine during continuous playback, when there are no skipped frames, but it was failing when AV-sync of framedrop was enabled. It was never working correct when jumping between frames, including rendering on a farm which usually does frame-range based rendering. With copy-on-write things became even more tricky, since the "stuck" flag was never preserved between re-evaluations. Fixes T65683: Sticky Option in Floor Constraint for Bones Not Working
2019-05-21Cleanup: pep8Campbell Barton
2019-05-08Copy Scale: support raising the copied scale to an arbitrary power.Alexander Gavrilov
Since scale is multiplicative, the appropriate way to partially copy it is to use power. However, the influence slider of constraints uses linear interpolation. Thus, there is no way to correctly split scale via constraints without adding this feature. In addition, this allows inverting scale by using negative powers, fulfilling the function of Copy Rotation's Invert checkboxes.
2019-05-08Disable Constraint and Keep TransformSybren A. Stüvel
A 'Disable and Keep Transform' button for constraints was added. This allows animators to disable a constraint without moving the constrained object/bone, making it easier to toggle constriants on and off without any visual consequence. Typical usage would be a character picking up an object (enable 'Copy Transform' constraint) and placing it somewhere else (disable the constraint). Note that there could still be movement when there are muliple constraints active. For example, when using this constraint stack - #1: Copy Transform from Empty.001 - #2: Copy Rotation from Empty.002 and disabling constraint #2, constraint #1 is still active and will still modify the visual transform of the object. According to our in-house animators, this is expected behaviour. Reviewers: campbellbarton, dfelinto, sergey Reviewed By: campbellbarton Subscribers: brecht Tags: #animation Differential Revision: https://developer.blender.org/D4677
2019-05-07Spline IK: support using both original scaling and volume preservation.Alexander Gavrilov
Add a new option that makes the Spline IK solver apply volume preservation on top of the original scaling, considering the pre-IK scale of the bone as the goal volume to be preserved. This basically works similar to the Stretch To constraint, and allows easily rigging a stretchy chain that uniformly follows its parent's scaling. Since the Stretch To behavior is more familiar, the new option is on by default for newly created Spline IK constraints.
2019-05-06Maintain Volume: introduce an option switching between modes.Alexander Gavrilov
After a lot of thinking about this, I decided that all operation modes that I've tried over the past couple of years, including the original 2.79 one, have their uses after all. Thus the only reasonable solution is to add yet another option. The modes are: - Strict: The current 2.80 mode, which overrides the original scaling of the non-free axes to strictly preserve the volume. This is the most obvious way one would expect a 'Maintain Volume' constraint to work. - Uniform: The original 2.79 mode, which assumes that all axes have been scaled the same as the free one when computing the volume. This seems strange, but the net effect is that when simply scaling the object uniformly with S, the volume is preserved; however, scaling the non- free axes individually allows deviating from the locked volume. This was obviously intended as a more or less convenient UI tool. - Single Axis: My own variant of the intent of the Uniform scale, which does volume-preserving if the object is scaled just on the Free axis, while passing the non-free axis scaling through. I.e. instead of uniform S scaling, the user has to scale the object just on its primary axis to achieve constant volume. This can allow reducing the number of animation curves when only constant volume scaling is needed, or be an easier to control tool inside a complex rig.
2019-04-19Cleanup: mark unused arguments in UI scriptsCampbell Barton
Quiet's pylint W0613 warning, also remove some unused args.
2019-04-16Spline IK: support changing individual bone length via Y scaling.Alexander Gavrilov
Previously Spline IK provided only two choices: either scale the length of the bone chain to fit the length of the curve, or don't scale the bone in the Y dimension at all (ignoring effects of actually fitting to the curve due to curvature and curve object scale). This patch adds a new option to use the pre-IK Y scale of the bones to adjust their length when fitted to the curve, allowing individual posing control over the length of the segments. Reviewers: brecht Differential Revision: https://developer.blender.org/D4687
2019-03-27Fix T61559: show object constraints also when in pose mode, remove warning.Brecht Van Lommel
This was originally added in 6feddb8b61df, but the warning is quite clumsy and we also don't limit editing object transforms that way. The add constraint button at the top now also indicates if it's for objects or bones, which was not the case before and probably was part of the confusion. If it does still cause issues we can always change back or hide the tab.
2019-03-14Cleanup: unused importsCampbell Barton
2019-01-30Cleanup: line lengthCampbell Barton
2018-12-18Cleanup: python quotesCampbell Barton
2018-11-23Cleanup: single quote enumsCampbell Barton
2018-11-06Shrinkwrap: new mode that projects along the target normal.Alexander Gavrilov
The Nearest Surface Point shrink method, while fast, is neither smooth nor continuous: as the source point moves, the projected point can both stop and jump. This causes distortions in the deformation of the shrinkwrap modifier, and the motion of an animated object with a shrinkwrap constraint. This patch implements a new mode, which, instead of using the simple nearest point search, iteratively solves an equation for each triangle to find a point which has its interpolated normal point to or from the original vertex. Non-manifold boundary edges are treated as infinitely thin cylinders that cast normals in all perpendicular directions. Since this is useful for the constraint, and having multiple objects with constraints targeting the same guide mesh is a quite reasonable use case, rather than calculating the mesh boundary edge data over and over again, it is precomputed and cached in the mesh. Reviewers: mont29 Differential Revision: https://developer.blender.org/D3836
2018-11-06Implement an Armature constraint that mimics the modifier.Alexander Gavrilov
The main use one can imagine for this is adding tweak controls to parts of a model that are already deformed by multiple other major bones. It is natural to expect such locations to deform as if the tweaks aren't there by default; however currently there is no easy way to make a bone follow multiple other bones. This adds a new constraint that implements the math behind the Armature modifier, with support for explicit weights, bone envelopes, and dual quaternion blending. It can also access bones from multiple armatures at the same time (mainly because it's easier to code it that way.) This also fixes dquat_to_mat4, which wasn't used anywhere before. Differential Revision: https://developer.blender.org/D3664
2018-10-18Cleanup: styleCampbell Barton
2018-10-17Shrinkwrap: implement the use of smooth normals in constraint & modifier.Alexander Gavrilov
- Use smooth normals to displace in Above Surface mode. - Add an option to align an axis to the normal in the constraint. I've seen people request the alignment feature, and it seems useful. For the actual aligning I use the damped track logic. In order to conveniently keep mesh data needed for normal computation together, a new data structure is introduced. Reviewers: mont29 Differential Revision: https://developer.blender.org/D3762
2018-10-01Shrinkwrap Constraint: implement projection features from the modifier.Alexander Gavrilov
Allow raycasting in two directions and culling front or back faces. Also implement a new Invert Cull option in both constraint and modifier that can be used to aim for faces aligned with the project axis direction when raycasting both ways. Reviewers: mont29 Differential Revision: https://developer.blender.org/D3737
2018-09-26Implement additional modes for Shrinkwrap to a surface.Alexander Gavrilov
In addition to the original map to surface and Keep Above Surface, add modes that only affect vertices that are inside or outside the object. This is inspired by the Limit Distance constraint, and can be useful for crude collision detection in rigs. The inside/outside test works based on face normals and may not be completely reliable near 90 degree or sharper angles in the target. Reviewers: campbellbarton, mont29 Differential Revision: https://developer.blender.org/D3717
2018-08-28Cleanup: pep8Campbell Barton
2018-08-28RNA: UILayout.split(..) 'percentage' to 'factor'Campbell Barton
Misleading name since it's between 0..1. Use as a keyword argument to prepare for keyword only args. Also document that leaving unset has special behavior.
2018-08-28UI: text keyword argument to labelCampbell Barton
Prepare for keyword only args
2018-08-13Implement multiplicative Copy Scale and make it the new default.Alexander Gavrilov
Scale is a multiplicative quantity, so adding it doesn't make sense. However, for backward compatibility reasons, and in case somebody actually desires the old additive behavior, the old way remains as an option. Without this change the only way to properly combine scale is via parenting or the complicated Transformation constraint. The new mode is turned on by a flag for file compatibility, but the RNA option is reversed so that the new behavior feels more default. Reviewers: aligorith Differential Revision: https://developer.blender.org/D3558
2018-06-05Cleanup: pep8Campbell Barton
Use 'autopep8 --ignore E721,E722' on our UI code, only minor changes.
2017-07-24Cleanup: trailing spaceCampbell Barton
2017-03-19Moving classes to separate listing broke panel orderCampbell Barton
Although this wasn't so obvious since it only showed up for factory settings and in the preferences window. Panel display order depends on registration order, Sorry for the noise. On the bright side we no longer need to move classes around to re-arrange panels.
2017-03-18PyAPI: remove bpy.utils.register_module()Campbell Barton
In preparation for it being removed, see: T47811
2016-08-06Basic Alembic supportKévin Dietrich
All in all, this patch adds an Alembic importer, an Alembic exporter, and a new CacheFile data block which, for now, wraps around an Alembic archive. This data block is made available through a new modifier ("Mesh Sequence Cache") as well as a new constraint ("Transform Cache") to somewhat properly support respectively geometric and transformation data streaming from alembic caches. A more in-depth documentation is to be found on the wiki, as well as a guide to compile alembic: https://wiki.blender.org/index.php/ User:Kevindietrich/AlembicBasicIo. Many thanks to everyone involved in this little project, and huge shout out to "cgstrive" for the thorough testings with Maya, 3ds Max, Houdini and Realflow as well as @fjuhec, @jensverwiebe and @jasperge for the custom builds and compile fixes. Reviewers: sergey, campbellbarton, mont29 Reviewed By: sergey, campbellbarton, mont29 Differential Revision: https://developer.blender.org/D2060
2016-07-07Revert "ChildOf Constraint: Hide the Loc/Rot/Scale toggles"Joshua Leung
This reverts commit 4fd78bb06faa31f265af6a5f247cf4255b5ac479. After further testing, it turns out that these options are less-broken than I remember them being (and have been hearing about). Specifically, as long as you disable all 3-axes of a transform component (i.e. all location, all rotation, all scale) you're not likely to have problems, whereas if you only disabled one axis (i.e. y-rotation), you may have problems in some cases. So, restoring these to the UI.
2016-06-23ChildOf Constraint: Hide the Loc/Rot/Scale togglesJoshua Leung
The RNA properties are still there (in case you really need them), except now they will not be shown in the UI anymore, as this constraint really didn't work well/at all when any of those was disabled. Most people shouldn't really need to worry about this change. If anyone wants a matrix-math challenge, they're welcome to try getting those working for real, so that we can show these toggles again.
2016-05-17Bendy Bones: Advanced B-Bones for Easier + Simple RiggingJoshua Leung
This commit/patch/branch brings a bunch of powerful new options for B-Bones and for working with B-Bones, making it easier for animators to create their own rigs, using fewer bones (which also means hopefully lighter + faster rigs ;) This functionality was first demoed by Daniel at BConf15 Some highlights from this patch include: * You can now directly control the shape of B-Bones using a series of properties instead of being restricted to trying to indirectly control them through the neighbouring bones. See the "Bendy Bones" panel... * B-Bones can be shaped in EditMode to define a "curved rest pose" for the bone. This is useful for things like eyebrows and mouths/eyelids * You can now make B-Bones use custom bones as their reference bone handles, instead of only using the parent/child bones. To do so, enable the "Use Custom Reference Handles" toggle. If none are specified, then the BBone will only use the Bendy Bone properties. * Constraints Head/Tail option can now slide along the B-Bone shape, instead of just linearly interpolating between the endpoints of the bone. For more details, see: * http://aligorith.blogspot.co.nz/2016/05/bendy-bones-dev-update.html * http://aligorith.blogspot.co.nz/2016/05/an-in-depth-look-at-how-b-bones-work.html -- Credits -- Original Idea: Daniel M Lara (pepeland) Original Patch/Research: Jose Molina Additional Development + Polish: Joshua Leung (aligorith) Testing/Feedback: Daniel M Lara (pepeland), Juan Pablo Bouza (jpbouza)
2016-01-31Cleanup: pep8Campbell Barton