Age | Commit message (Collapse) | Author |
|
|
|
The Limit Distance Constraint now has a "For Transform" option just
like all the other Limit constraints. This option controls whether the
constraint gets applied to interactive transforms in the 3D View too,
preventing controllers from getting large values without the animator
knowing.
Additional code changes:
* Split code to get constraint targets and grab their matrices for
solving out to a separate helper function:
get_constraint_targets_for_solving()
* Fixed a bug where "found constraint ...." prints would appear in the
console. Looks like some warning print that was forgotten
TODO:
* While coding this, I noticed potential division by zero bugs with
the Limit Distance constraint. Looking into these after this commit.
|
|
ITASC IK solver data wasn't being cleared when constraints were removed, would access freed memory and crash.
|
|
|
|
* Change ICON_NULL --> ICON_NONE to avoid two #defines with the same meaning.
|
|
using a different method.
|
|
|
|
|
|
header static for blenlib, blenkernel and editors.
|
|
mode with drivers
ChildOf constraints added using the PoseBone.constraints.new() method
via Python scripts instead of using the operator (this latter method
is still the preferred/recommended method) were not getting some
critical flags set, causing errors arising from space conversions
being performed more than once.
|
|
While testing Apply Visual transforms last night, I noticed that
setting a constraint to use its owner as its target was allowed and
didn't trigger any warnings. This clearly doesn't do any good and is
different from the old behaviour.
|
|
This was a two-part bug: a user error + API error.
* User Error: before calling bpy.ops.constraint.childof_set_inverse()
for a constraint defined on a bone, you firstly need to explicitly
make that bone the active bone. To do that, you do
armature.bones.active = posebone.bone # or something similar
* API Error: active bone setting was a bit too strict. It only allows
setting the active bone if the new bone comes from the same armature,
but was overlooking the fact that RNA pointers may have been created
through the object using the armature instead.
|
|
check and checking against incorrect pointer before use).
|
|
- report an error if adding a pose constraint with no active pose channel.
- dont run update_pose_constraint_flags() when adding an object constrant to an armature object.
|
|
MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
|
|
Child-of constraint issue: on adding, it wasn't checking owner
correctly for Bones, resulting in a constraint working in wrong
space; it looked as if transform was applied double when moving
the object. Only adding via Py API went wrong btw.
Also found a silly check for drawing constraints, which caused
constraint initialization to happen for every object on every
redraw!
Implementation note: con->flag CONSTRAINT_SPACEONCE was only used
for child-of constraints in Bones, so I've patched it on file
reading to always set the flag. Marked with XXX, so it can be
removed one day. Now at least things get corrected well for
imported armatures.
|
|
functional change)
eg: uiItemR(row, &dvar_ptr, "type", 0, "", 0); -> uiItemR(row, &dvar_ptr, "type", 0, "", ICON_NULL);
|
|
Copy constraints pose mode: didn't update constraint flag to denote
colored bone drawing. Also notifier was missing for redraw.
|
|
only tags the ID and does the actual flush/update delayed, before the next
redraw. For objects the update was already delayed, just flushing wasn't
yet.
This should help performance in python and animation editors, by making
calls to RNA property update quicker. Still need to add calls in a few
places where this was previously avoided due to bad performance.
|
|
'const char's,.
Only one functional change where Transform orientations passed "" to BIF_createTransformOrientation() which could then have the value written into.
|
|
|
|
|
|
|
|
made a number of files build without unused warnings.
|
|
|
|
painting mode
pose operators now run in weightpaint mode when the weight paint objects pose armature is in pose mode.
|
|
This troubles were caused by "break" of ND_OBJECT case in outliner area listener,
so not all cases were handled.
Handle more data and actions in outline listener, but not refresh when it's
actually unneeded (there where problems with it without that "break" -- extra
refreshing could be made).
|
|
IK highlight
+ moved bone envalope scale into transform menu, pose menu is getting huge.
|
|
|
|
- removed DNA_brush_types.h from DNA_scene_types.h (and some other similar cases)
- removed DNA_wave_types.h (never used)
- removed Main.wave
|
|
or get it from the context instead.
|
|
* Constraint template now uses 2 rows as well, when the area width is small.
* UI Code could use some code/layout cleanup still, will look into that soon.
|
|
- CMake building without python or fluidsim working again (broke in recent commit)
- remove BLI_short_filename(), it wasnt used anywhere.
|
|
1) Fixed some weird formatting introduced during math-lib cleanups, and some other inconsistencies
2) Optimised the Maintain Volume constraint by taking the value calculations out
Copy All Constraints Operators:
* Added one for bones too
* These are now included in the menus
* Removed some weird/extra code copying/changing/bleh the actcol/totcol stuff...
|
|
This constraint allows an object or bone to have their rotations applied as if their origin/pivot-point was located elsewhere. The most obvious uses include foot-roll, see-saws, but could also include more complicated rolling-box examples.
== Usage Examples ==
=== Foot Roll ===
1. Add 'Pivot' Constraint to the bone without any target.
2. Set the 'Y' value of the offset to the length of the bone. Usually this should be negative (if you rig with feet facing 'forwards' along -Y axis). This gives you a pivot point relative to the bone's (preconstraint) location, which should be at the tip of the bone here. Disabling the 'Use Relative Offset' would make this offset be relative to 0,0,0 instead of to the owner/bone-head.
3. Ensure that the 'Pivot When' setting is set to '-X Rot', (default) which means that the pivot will only used when the rotation on the X-Axis is negative to get tip-toe 'roll'.
=== See Saw ===
1. Add a 'Pivot' constraint too see-saw plank object, this time with a target that you wish to have as the pivot-point. It's possible to do this without too (as before), but is less intuitive.
2. Optionally, if you want the plank slightly raised, set the z-offset value, which should make the pivot-point used to be relative to the target with the z-offset applied.
3. Ensure that 'Pivot When' is set to 'Always', which means that the pivot will always be used, irrespective of the rotation.
== Notes ==
* The 'Pivot When' setting has been integrated in the constraint, since this is something that will often be required for these setups. Having to set up additional drivers to drive the constraint to do this kindof beats the purpose of providing this.
* The 'Offset' functionality is probably not presented as clearly as it could be. We may need to go over this again.
* For foot-roll - if any scaling of the foot is required, simply set up a driver on the y-offset to make this dynamically respond to the "scale" RNA property of the bones (don't use the "Transform Channel" vartype since that won't work correct here). However, this shouldn't be common enough to warrant special treatment.
|
|
According to Matt the RMB->Copy to selected wouldn't work for logics because the copy we need is for the whole logic (s/c/a). So (at least for the time been), copy logic is possible again.
It work as 2.49 (replacing the existent logic).
Add Logics is a python menu to give quick access to add logics. I have to see how to put that in Add Menu. I should be easy, but I'll leave it for later.
|
|
things are nasty to edit/extend)
|
|
While I was looking in outliner.c, made some changes to let extra passes display
there such as environment (commented out before due to a previous limitation).
Also changed outliner object visbility/selectability/renderability toggles to use
RNA buttons so you can insert keyframes with RMB menu etc.
|
|
childOf_clear_inverse incorrectly
Adding some NULL checks to all the constraint operators. This is not ideal, but at least the crashes are gone now. More work is needed to properly fix this...
|
|
|
|
needed because proxies are causing libs to be linked directly when they should be kept indirect (likely slowing load times though I didnt time this)
|
|
This is similar to commit revision 22078, but for constraint operators rather
than modifiers, making it possible to use them from scripting.
|
|
the C code to copy the constraint was already there (same as 2.49) so this operator simply exposes it.
I'm using the name Copy Constraints to Others based on what we have in material operators (e.g. Copy Material to Others).
If we bring back the whole Copy Attributes menu (old Ctrl+C) having the individual operators is still important for scripts. Nevertheless I'm not comfortable with the name (to Others sounds unnecessary verbose) but so far having the functionality back is important (request from Caju Studio). I'll be glad to make any change later if needed.
(no shortcut for that, to use it go to userpref->keymap and assign a shortcut for this operator or add it to the toolshelf)
|
|
Added convenience function ED_object_active_context(C) to get either the
object in the data context, or if not, the active object.
|
|
Only source/blender/editors/ dir, should not give errors on different platforms
Only removing: UI_*.h, ED_*.h, WM_*.h, DNA_*.h, IMB_*.h, RNA_*.h, PIL_*.h
|
|
|
|
hotkey automatically added an Empty for Target. This should not have been.
|
|
pose channels that have constraints.
|
|
and once from the constraint panel callback)
comment the update call in the panel function.
also avoid one bone lookup which was taking a fair bit of CPU when profiling.
|
|
|