Commit Graph

278 Commits

Author SHA1 Message Date
eee79641c3 RNA: poll functions restricting object types
D1100,D1105,D1106 by @lichtwerk
2015-02-19 11:59:24 +11:00
f0361fcf54 Pataz-Gooseberry Request: Limits on Volume Preservation for Spline IK
This commit adds a new type of volume preservation mode to Spline IK
which makes it possible to set limits on the minimum and maximum
scaling of bone "fatness".

* The old volume preseving mode has been kept but renamed, to avoid
  breaking old rigs. "Volume Presevation" uses the new method, while
  "Inverse Preservation" is the old one.

* The code and settings for this new xz scale mode are directly lifted
  from the improved Stretch To constraint
2015-01-13 18:06:53 +13:00
20c233f3af Yet another tweak to stretch volume variation.
Make sure the 1.0 value is not affected by smoothing, and min/max limits
never go above or below 1.0 respectively. This was a request by
animators since not modifying the mesh in its rest pose is regarded as
crucial.
2014-10-14 11:51:36 +02:00
f9cbb908a3 Integrated limits for volume preservation in stretch-to constraints.
Currently the volume variation feature in stretch constraints is
unlimited. This has to be compensated by riggers by adding scale limit
constraints, but these are unaware of the stretch orientation and can
lead to flipping. Also the stretch calculation itself is not working
properly and can lead to collapsing volume.

The patch fixes this with several modifications:
- Interpret the volume variation factor as exponent, which works better
  with large values for artistic purposes.
- Add integrated limits to the volume "bulge" factor, so secondary
  constraints for compensation become unnecessary
- Add a smoothness factor to make limits less visible.

Eventually a generic volume preservation constraint would be nicer,
because multiple constraints currently implement volume variation of
their own. This feature could actually work very nicely independent from
other constraint features.

Differential Revision: https://developer.blender.org/D826
2014-10-13 19:58:53 +02:00
157fc43369 Implement option to parent object to undistorted position of 2D track 2014-07-24 21:01:19 +06:00
00b29156e0 Defines: replace ELEM3-16 with ELEM(...), that can take varargs 2014-07-20 01:33:40 +10:00
02808f2774 UI: higher precision for IK poll angle 2014-06-06 09:51:08 +10:00
912151763d Followup to rB8714ae09f894: better not have several RNA properties affect a single DNA one. 2014-04-28 13:25:14 +02:00
3216e4b202 API Cleanup: Use BKE_constraint prefix for constraint api 2014-04-11 11:47:07 +10:00
8714ae09f8 Fix T39563: Tiny unit-display problem in constraint panels.
There is no good solution here, since RNA props can only have one type/unit.
Tried to find the less worse one - have different RNA props for same DNA value
(a bit like the angle/length for camera lens).

Also fixed two other issues with Transform conctraint:
* Angle were still in degrees (yes, another backward-compatibility breacking).
* Scale was absolute, unlike loc/rot.

Also cleaned up a bit the code, replaced some magic numbers by proper enums, ...
2014-04-07 12:17:01 +02:00
6734936c13 RNA API: use bool's for enum itemf callbacks. 2014-01-04 18:10:01 +11:00
35bb5465ae code cleanup: reuse rna_matrix_dimsize_NxN defines between RNA functions 2013-10-10 20:14:04 +00:00
203c6effd5 code cleanup: quiet rna warnings, remove remove_strict_flags() for cmake/rna.
also set_source_files_properties() wasn't working for rna_*_gen.c files,
set dna.c and generated data files with generated property too.
2013-09-20 06:35:28 +00:00
202109a8f5 code cleanup: set enums as static or add RNA_enum_types.h where they are used elsewhere.
also minor style cleanup.
2013-09-11 21:27:14 +00:00
e492fad130 shrink-wrap constraint, improve and remove some limitations.
- ability to change the space the axis is projected in (so you can choose worldspace or -space, was always local-space before).
- support projecting on a negative axis, without this some very simple clamping is not possible if the direction happened not to be positive.
- add distance limit (same as modifier), without this single meshes surrounding an object would make the constraint impossible to use in some cases (it would snap to the wrong side).

note: this removes the ability to project on multiple axes at once but this option only added up directions and didnt project on multiple axes as you might expect.
2013-09-07 12:59:16 +00:00
42a619c781 allow negative offset for floor constraint.
(since this isnt a projection, it just clamps on an axis this can be supported).
2013-09-02 22:24:44 +00:00
7dde355185 fix [#34958] keyframe many items would fail if there was a (") in the text. 2013-04-23 20:10:22 +00:00
838c263be1 Constraint UI:
* Hide Script Constraint from UI, not functional.
* Alphabetical order fix for Motion tracking constraints.
2013-03-23 08:47:29 +00:00
a4e284091b Added descriptions for each constraint type, including common usage
restrictions/limits to reduce confusion
2013-03-17 03:45:15 +00:00
dfa8540cdf use bool for rna funcs. 2013-03-07 02:44:55 +00:00
2c084e280d code cleanup: remove unused arg 2013-02-22 00:51:58 +00:00
37ba969c74 Making a few tooltips more descriptive, in light of recent confusion over the
purpose of some of these features

* ClampTo Constraint, Target Object field: now mentions that it is for curve
objects only
* Dopesheet Editor Modes: now describe what data is editable in each mode. The
wording may be a bit clumsy here, but (apart from Mask Editor one, which I'm not
entirely sure about) should at least be technically correct
2013-01-05 12:27:54 +00:00
f54b6eee45 More wrong "in degrees" busted out of tips! 2012-12-31 15:54:44 +00:00
ba14beb000 Code cleanup: add usual 'BKE_' prefix to 'public' constraint functions from blenkernel... 2012-12-23 11:31:15 +00:00
d8c257faa7 IK Solver:
* Rename Legacy to Standard, it's not being deprecated as far as I know.
* Make option to toggle off Location solving work with Standard.
* Make it converge a bit better in some cases by enforcing a minimum number of
  iterations before giving up.
* Move IK solver choice out of bone panel, it's an armature level setting and
  should be set there.
2012-11-24 00:18:34 +00:00
9b2a0f3824 Comment + whitespace tweaks for constraints
* Radiant -> Radians

* Noted down revision number for when Jahka removed the old constraint blending
logic. I spent some time hunting this down while trying to check if it might've
caused any obvious changes leading to one of the (now closed) bugreports. Better
to note this in the code then.
2012-10-27 13:22:44 +00:00
1298357581 Fix #32964: IK constraint had a "Target" option, which actually is an internal
flag that shouldn't have been exposed in the user interface. Also avoided many
calls to pchan.is_in_ik_chain in UI script, it's somewhat slow.
2012-10-24 22:36:06 +00:00
7e0d1cf652 Typo fix: Tooltip for "Offset Factor" for FollowPath constraint referred to
"bone" instead of "curve"
2012-10-05 13:06:36 +00:00
9f30c7147c Frame matching methods for follow track constraint
This is needed in cases when using blender camera with different
resolution than original footage. Behaves in the same way as
background picture framing.
2012-08-09 16:57:02 +00:00
37dc4006c7 First load of spell and typo fixes (mostly UI messages, but also one or two pieces of code using mis-spelled names). 2012-07-03 17:20:21 +00:00
32478997ec style cleanup 2012-06-27 18:29:47 +00:00
8489e100dc Naming + Style tweaks for newly added flag for Action Constraint
Old names used could conflict with other things too easily in future
2012-06-12 11:54:31 +00:00
2127e62c9b "Fix" for [#30704] Action Constraint mapping bug
Feature request rather than a real bug: allow constrained bone to use "object" part of the linked action, in addition to "same-named bone" part.
2012-06-12 06:22:23 +00:00
Dalai Felinto
dfa307f73f constraints names are not matching (rna and constraint.c). doing rna->constraint.c 2012-06-08 21:04:48 +00:00
f9043865a2 Disable setting non-object actions as the action used by the Action Constraint
(... I could've sworn there used to be some dynamic enums for filtering actions
by root type)
2012-05-17 10:28:30 +00:00
a9f6e54384 style cleanup: mostly whitespace in rna 2012-05-12 11:01:29 +00:00
ff4ff9c8a4 Bugfixes for various ID-block references (Constraints, NLA)
* ID-blocks referenced by Constraints but not being used as the target objects
(such as Actions in the Action Constraint, or Text Blocks in PyConstraints) now
get usercounts for being referenced in this way. This should fix ancient bugs
such as [#19205] and [#8593]. More tests still needed to verify that this
does now play nicely with proxies.

* Changing actions used by NLA strips should now update the usercounts
accordingly
2012-05-05 15:54:08 +00:00
e701f9b670 style cleanup: whitespace / commas 2012-04-29 15:47:02 +00:00
e5bda9f827 Fixed some UI message typos (spotted by Leon Cheung, thx). 2012-04-14 15:44:31 +00:00
134bf10e4d i18n: "labels" of multi-section enums need to be marked for gettext (N_()), as they are not available from python... 2012-04-13 20:25:05 +00:00
f469e0652a Node socket values now only have soft limits, rather than hard limits, so you
can type in any value, and only when sliding the number value there is a limit.
It was already possible to assign any value to a socket with node linking, so
this shouldn't cause any new issues.

Also raised the limits on the math nodes, with a patch by Agustin Benavidez.
2012-03-30 16:09:05 +00:00
55c210b57e Fix [#30709] Renaming a bone renames all drivers' targets using a bone of that name, regardless of the armature.
This fix adds a "ref_id" ID pointer to BKE_all_animdata_fix_paths_rename() & co, which is the ID against which prefix+oldName/NewName is "applied", currently only used for drivers' bones targets. Just pass NULL to get same behavior as previously. A bit annoying to make such a change for such a specific case, but there seems to be no other way to go... :/
2012-03-30 13:04:29 +00:00
5a90ea77bc style cleanup: follow style guide for formatting of if/for/while loops, and else if's 2012-03-24 06:24:53 +00:00
ed43b652ee Code style edits (mostly spliting long lines, and removing trailing spaces).
Note about long lines: I did not touch to two pieces of code (because I don’t see any way to keep a nicely formated, compact code, with shorter lines):
* The node types definitions into rna_nodetree_types.h
* The vgroup name functions into rna_particle.c
2012-03-18 09:27:36 +00:00
0114d78c33 Code cleanup in rna files (huge, higly automated with py script).
Addresses:
* C++ comments.
* Spaces after if/for/while/switch statements.
* Spaces around assignment operators.
2012-03-05 23:30:41 +00:00
38ad71f0fa Cleanup Only: replace numbers with defines. 2012-02-02 07:37:44 +00:00
14fa3be9bf fix for error found while looking into bug [#29998].
rotation limits can exceed 90deg.
2012-02-01 04:11:19 +00:00
67dca2275e Action constraint transform channel was listing X Scale as Z Scale,
resulting in two Z Scale listings in the menu.  Fixed.
2012-01-31 04:23:49 +00:00
0c7a455c07 Action Constraint GUI - Refinements and Clarification
While looking at a bug report, I found that the current GUI for the Action
Constraint actually didn't make sense, mixing up settings so that it wasn't
clear which settings corresponded to which others. This commit cleans up the
layout into a clearer two-column design to have a "from" -> "to" layout, making
all the
relationships between things clear.

For more details see http://aligorith.blogspot.com/2012/01/action-constraint-
gui-revised.html
2012-01-27 01:30:58 +00:00
cd84a43334 Camera tracking: added depth object to Follow Track constraint
If this object is defined, object with Follow Track constraint would be
projected into surface of this depth object.
If object is not set or there's no projection onto it, projection plane
calculated based on original object position would be used.

This allows to make cheap facial mocap.
2012-01-04 17:20:08 +00:00