Age | Commit message (Collapse) | Author |
|
limits etc) by Juha Mäki-Kanto + ui changes pour moi
From the tracker:::
Issues fixed:
- ConeTwist-constraint's params weren't making it to the CcdPhysicsEnvironment, also added Hinge's params.
- UI wasn't using angles where applicable.
- btHingeConstraint's constructor can create frame-matrices which don't align so the hinge doesn's start at 0 degree tilt.
This is an issue when setting limits.
Changes:
- UI: Hinge limits can be set (and disabled).
- UI: ConeTwist only has max-limits and only the twistX can be disabled
- PyApi via rna_constraint.c: added the functions limit_xyz_min, limit_xyz_max (for 6dof), limit_angle_xyz_min,
limit_angle_xyz_max (for 6dof), limit_angle_x_min, limit_angle_x_max (for hinge).
- PyApi: dropped python-function limit_cone_min.
.:. Extra:
UI Changes:
- renamed "RigidBody Joint" to "Rigid Boidy Joint"
- reorganized UI to conform with other parameters (e.g. Limit Rot)
- added dis/active all over the place :)
|
|
|
|
For Constraints, there's now a working "Local" Space for Objects
without parents. This is defined as relative to the object's rotated
set of axes which results from rotation that gets set via "rotation"
transform properties.
I'm not sure whether this different behaviour between parented and
unparented objects will be too confusing (and thus require separate
settings + a round of version patching), so I'll wait until we get
proper testing from experienced riggers first.
|
|
- move GS() define into DNA_ID.h
- add BLI_utildefines as an automatic include with makesrna generated files.
|
|
MAKE_ID, FILE_MAXDIR, moved the generic defines to BLI_utildefines.h.
no functional changes.
|
|
from Dan Eicher (dna)
|
|
Floor constraint didn't work: the defines for the enums were using
the wrong ones, the right ones are not logical... but code and dna
and old files assume these. Now it works :)
|
|
add a check in makesrna, found FollowPathConstraint.offset was a float wrapped as an int.
|
|
* RNA fix for my last commit, we want the last 3 items of the array, not the first 3, added get/set functions.
|
|
* Added the options in UI and RNA
Funny Note: This was on my own to-do list (see commit 20577 in the py file from 2009-06-02 when I ported the UI from C to Python) :P
|
|
from Dan Eicher (dna)
|
|
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).
|
|
|
|
*Enable/Disable Checkbox was inverted.
|
|
|
|
Added an operator "Update Animation Data",
access from the search menu to update drivers and fcurves.
|
|
|
|
least its very unlikely).
|
|
|
|
Lattice modifier only shows lattices types, Shrink wrap only meshes etc.
|
|
or get it from the context instead.
|
|
These are not animated and are best not change names like this too late in the release.
ActionGroup.selected -> select: boolean Action Group is selected
BezierSplinePoint.hidden -> hide: boolean Visibility status
BezierSplinePoint.selected_control_point -> select_control_point: boolean Control point selection status
BezierSplinePoint.selected_handle1 -> select_left_handle: boolean Handle 1 selection status
BezierSplinePoint.selected_handle2 -> select_right_handle: boolean Handle 2 selection status
Bone.restrict_select -> hide_select: boolean Bone is able to be selected
Bone.selected -> select: boolean
CurveMapPoint.selected -> select: boolean Selection state of the curve point
EditBone.restrict_select -> hide_select: boolean Bone is able to be selected
EditBone.selected -> select: boolean
EditBone.selected_head -> select_head: boolean
EditBone.selected_tail -> select_tail: boolean
EditBone.locked -> lock: boolean Bone is not able to be transformed when in Edit Mode
EditBone.hidden -> hide: boolean Bone is not visible when in Edit Mode
NEGATE * FCurve.disabled -> enabled: boolean F-Curve could not be evaluated in past, so should be skipped when evaluating
FCurve.locked -> lock: boolean F-Curve's settings cannot be edited
FCurve.muted -> mute: boolean F-Curve is not evaluated
FCurve.selected -> select: boolean F-Curve is selected for editing
NEGATE * FCurve.visible -> hide: boolean F-Curve and its keyframes are shown in the Graph Editor graphs
FCurveSample.selected -> select: boolean Selection status
GPencilFrame.selected -> select: boolean Frame is selected for editing in the DopeSheet
GPencilLayer.locked -> lock: boolean Protect layer from further editing and/or frame changes
GPencilLayer.selected -> select: boolean Layer is selected for editing in the DopeSheet
Keyframe.selected -> select: boolean Control point selection status
Keyframe.selected_handle1 -> select_left_handle: boolean Handle 1 selection status
Keyframe.selected_handle2 -> select_right_handle: boolean Handle 2 selection status
MeshEdge.selected -> select: boolean
MeshEdge.hidden -> hide: boolean
MeshFace.hidden -> hide: boolean
MeshFace.selected -> select: boolean
MeshVertex.hidden -> hide: boolean
MeshVertex.selected -> select: boolean
MotionPathVert.selected -> select: boolean Path point is selected for editing
NlaStrip.selected -> select: boolean NLA Strip is selected
NlaTrack.locked -> lock: boolean NLA Track is locked
NlaTrack.muted -> mute: boolean NLA Track is not evaluated
NlaTrack.selected -> select: boolean NLA Track is selected
Object.restrict_render -> hide_render: boolean Restrict renderability
Object.restrict_select -> hide_select: boolean Restrict selection in the viewport
Object.restrict_view -> hide: boolean Restrict visibility in the viewport
Object.selected -> select: boolean Object selection state
ObjectBase.selected -> select: boolean Object base selection state
PoseBone.selected -> select: boolean
Sequence.right_handle_selected -> select_right_handle: boolean
Sequence.selected -> select: boolean
SplinePoint.selected -> select_control_point: boolean Selection status
TimelineMarker.selected -> select: boolean Marker selection state
Sequence.left_handle_selected -> select_left_handle: boolean
ActionGroup.locked -> lock: boolean Action Group is locked
Bone.hidden -> hide: boolean Bone is not visible when it is not in Edit Mode (i.e. in Object or Pose Modes)
SplinePoint.hidden -> hide: boolean Visibility status
FModifier.muted -> mute: boolean F-Curve Modifier will not be evaluated
note: rebaned uv_select to select_uv
|
|
* Some code cleaning.
* Removed icon and emboss for the "enabled" bool, use default checkbox now.
|
|
* 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.
|
|
* Alphabetical order fix: [P]ivot comes before R and S ;-)
|
|
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.
|
|
* Slight alignment change in header, to match modifiers box a bit better. Basically the "name" filed expands with the size of the properties panel now, which looks better imho.
* Code cleanup: Removed some old drawing functions, and the Python Constraint UI Code, which was not functional anyway.
|
|
|
|
|
|
|
|
|
|
"free" axis. Upon scaling, this free axis scales normally, but the constraint forces the other two axes to adjust themselves appropriately so that overall bone volume is maintained. So, setting "Y" as the free axis (the default) creates a bone that automatically squashes and stretches when scaling. Thanks to Aligorith, Fweeb, Cessen and others for the feedback.
|
|
|
|
|
|
|
|
Made the 'Offset Factor' setting use a separate variable from the 'Offset' setting in the DNA stuff. While we could get away with this sort of thing in the past, it turns out that with the Datablocks viewer these days, settings sharing an internal var but with different ranges/behaviour doesn't work well anymore, since later instances override earlier ones.
|
|
* Removed old code
|
|
Rotations are now stored internally as radians, while exposing degrees in the UI -
in the graph editor and UI controls. This is done in two areas:
1) Using the unit system to convert RNA data to display as degrees in the UI controls
2) FCurves now use degrees for rotation, so you can edit in the graph editor what
you see in the UI.
All rotation data is consistently accessible in DNA and RNA as radians, degrees are only
used for the UI controls and graph editor.
This commit includes conversions will convert old files (stored data and also fcurve data)
to the new units, hopefully everything should go smoothly!
Part of this also changes a few properties that were hard-coded as degrees before (such
as IK pole angle and brush texture rotation) to also use the same consistent system of
radians (dna/rna) and degrees (ui).
Thanks to Joshua for hints and review here too.
|
|
This constraint simply copies the transformation matrix of the target, and assigns it to the owner.
|
|
* Property update functions no longer get context, instead they get only
Main and Scene. The RNA api was intended to be as context-less as
possible, since it doesn't really matter who is changing the property,
everything that uses the property should be updated.
* There's still one exception case that use it now, screen operations
still depend on context too much. It also revealed a few places using
context where they shouldn't.
* Ideally Scene shouldn't be passed, but much of Blender still depends on
it, should be dropped when we try to support multiple scene editing.
Change was planned for a while, but need this now to be able to call
update without a context pointer.
|
|
|
|
types. Added to RNA and changed UI check.
|
|
|
|
including rotate in the property name isnt needed since its a copy rotation constraint.
|
|
the RNA constraint api was checking the current context when getting the constraint driver path and renaming constraints.
this made scripts not work properly so changed this to search for the constraint pose channel user within the object (if the object its self is not the user).
|
|
to manually slide bone joints along the curves for extra tweaking. It's only recommended to be used by advanced users for extra control over the points.
* Added some missing file-reading code to try and get things working better
|
|
added use_ prefix to bools offset --> use_offset, tail --> use_tail for eg.
|
|
"Y Stretch" option was broken in UI due to mismatch between RNA and scripts.
|
|
|
|
|