Commit Graph

49 Commits

Author SHA1 Message Date
Campbell Barton
d9f86e3c73 pedantic pep8 warnings, mostly white space. 2010-07-05 22:22:22 +00:00
Thomas Dinges
ce94f52dbc Fix for [#22714] Constraints stack : move up and move down buttons problem
* 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.
2010-07-04 09:42:00 +00:00
Campbell Barton
1028284301 pep8, whitespace edits 2010-06-09 19:12:03 +00:00
Joshua Leung
4ebc634168 == Pivot Constraint ==
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.
2010-05-27 10:50:06 +00:00
Thomas Dinges
e1bf9d30bc Properties Window:
*The narrowui value was hard coded in all ui scripts, made an user preferences option. Basically this value determines on which area width, it should switch between dual/single column layout. 

ToDo: The Changes only take effect when reloading scripts/restarting Blender (after saving as default). Will maybe add the "Reload Scripts" operator next to the button in the future. 

* Small fix for Fluid Add Button, when in single column mode. Didn't expand like the other "Add" Buttons.
2010-05-16 10:21:00 +00:00
Joshua Leung
ce9d5c43e2 Spline IK - Influence Control
Made the 'Influence' slider work for Spline IK too, and made that setting visible now that it works. 

Note that there is still some popping that can occur when going to/from influence = 0.0. I'm not sure exactly what's causing this yet, but hopefully it won't be too noticeable in practice.
2010-04-23 05:14:00 +00:00
Campbell Barton
9105f6f0bd rna naming, *_frame --> frame_* 2010-04-01 21:44:56 +00:00
Roland Hess
d617294c49 New "Maintain Volume" constraint. When attached to a bone, you specify a "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. 2010-03-16 12:55:56 +00:00
Benoit Bolsee
447cd8d791 Restore iTaSC UI. 2010-03-07 09:53:59 +00:00
Campbell Barton
97bdfe6f1b pep8 cleanup + correction for external player operator return value. 2010-02-22 23:32:58 +00:00
Campbell Barton
23efeff6a9 [#21177] Text editor
Running scripts directly didnt call the register function, even though this is not essential its good to be able to run a script directly and see changes in the UI.
2010-02-16 09:55:07 +00:00
Campbell Barton
39c04315e2 change python scripts so modules which register with blender have a register() function rather then making import automatically run the register functions (generally considered bad practice by python people) 2010-02-14 11:21:21 +00:00
Campbell Barton
081c1205a3 correct fsf address 2010-02-12 13:34:04 +00:00
Campbell Barton
95069f2909 pep8 changes 2010-01-31 14:46:28 +00:00
Campbell Barton
ebbd1e0b20 bugfix [#20579] Context pinning error (pose mode) 2010-01-30 23:48:49 +00:00
Thomas Dinges
c005d19c42 Small UI Tweak:
Let "Add Constraint" Button use the whole space, like the "Add Modifier" Button.
2010-01-30 08:45:31 +00:00
Joshua Leung
a7d268d38e Cessen Rigging Request: "Copy Transforms" Constraint
This constraint simply copies the transformation matrix of the target, and assigns it to the owner.
2010-01-02 04:14:17 +00:00
Joshua Leung
a4913896b8 Floor Constraint: Evaluation space options are now available for this constraint too 2009-12-30 10:29:26 +00:00
Campbell Barton
e7b4d36fd6 * new metarig type for the durian dragon leg (original rig by Cessen)
* option to roll the delta of the arm rig.
* fix to copy metarig type
* renamed EditBone.align() --> EditBone.align_roll()
* Added EditBone.align_orientation(other)
* Added bone.vector: same as (bone.tail - bone.head)
2009-12-14 20:56:19 +00:00
Roland Hess
921d4b8eb0 Applies Patch 20200
Shuffle IK Restriction and iTaSC parameter panels into more fitting context.
2009-12-14 03:01:42 +00:00
Campbell Barton
b5740b0e77 remove ICON prefix from the enum, for python this is redundant eg.
layout.prop("setting", icon='ICON_BLAH_BLAH')

Also reverted previous commit, the cursor subtype just needed to be added to the switch statement.
2009-12-10 10:23:53 +00:00
Joshua Leung
16efe1ac46 UI Scripts Bugfixes:
* Toolbar shows "Loopcut and Slide" instead of "Loopcut" now
* Follow Path "Offset" option was broken by one of the "use_*" prefix commits
2009-11-29 02:14:34 +00:00
Campbell Barton
8b897879cd pep8 cleanup in ui and op dirs, added popup to select pattern 2009-11-28 23:37:56 +00:00
Roland Hess
c6b4c2716a Head/Tail property was never added for Track To and Stretch To constraint types. Added to RNA and changed UI check. 2009-11-28 03:45:40 +00:00
Campbell Barton
9d026b30e7 more rna property renaming, axis_x --> use_x, rotationx --> use_rotation_x 2009-11-26 18:45:08 +00:00
Campbell Barton
0a7b235199 rename rotate_like_x --> use_x, for copy loc/size/rot constraints.
including rotate in the property name isnt needed since its a copy rotation constraint.
2009-11-26 17:54:16 +00:00
Campbell Barton
553374bd4c selected_pchans --> selected_pose_bones, same for visible_pchans
added use_ prefix to bools offset --> use_offset, tail --> use_tail for eg.
2009-11-25 15:00:29 +00:00
Campbell Barton
e0fc6d0c33 more ui api changes.
- remove functions such as operator_int(), operator_enum(), operator_string
  this mixed with keyword arguments in a way that made them hard to read.
  Instead, have operator() always return properties rather then needing an argument.

- rename prop_pointer() --> prop_object(), pointer is more a C thing.

- missed item_enumR(), rename to prop_enum()
2009-11-23 11:43:38 +00:00
Campbell Barton
caab05ec8c rna UI api rename...
note: this aims to follow pep8 however I chose to use 'prop/props' rather then 'property/properties' because it would make function names too long.

itemR() --> prop()
items_enumR() --> props_enum()
item_menu_enumR() --> prop_menu_enum()
item_pointerR() --> prop_pointer()
itemO() --> operator()
item_enumO() --> operator_enum()
items_enumO() --> operator_enums()
item_menu_enumO() --> operator_menu_enum()
item_booleanO() --> operator_boolean()
item_intO() --> operator_int()
item_floatO() --> operator_float()
item_stringO() --> operator_string()
itemL() --> label()
itemM() --> menu()
itemS() --> separator()

batch script used http://www.pasteall.org/9345
2009-11-23 00:27:30 +00:00
Joshua Leung
6555eca6fe 2009-11-23 00:03:51 +00:00
Benoit Bolsee
d83b251486 Repair display of iTaSC IK constraint. Fix crash in GE with high priority action overwriting low priority action. 2009-11-22 22:42:57 +00:00
Campbell Barton
6073bc9bc3 pep8 cleanup & default select axis to negative (artist requst, make sense if you model the RHS and spend most time looping at the models front) 2009-11-21 00:05:43 +00:00
Thomas Dinges
2577bfddfd Renamed "col2" to "wide_ui" which is more meaningful. 2009-11-19 13:26:51 +00:00
Campbell Barton
49c47fbf30 python pose_channels -> bones 2009-11-18 11:50:31 +00:00
William Reynish
fd64e0d662 Single column UI for constraints 2009-11-17 15:59:54 +00:00
Joshua Leung
1df6575074 Spline IK: UI/Scaling Tweaks
* Renamed "Keep Max Length" to "Y Scaling" which has the opposite meaning

* Improved the way that Y-Scaling off behaves. Most of the time, bones that do not fit on the curve are now "blended off" their default rotations instead of being scaled to zero.

* Added option to offset an entire chain by moving the root bone of the chain. This is named "Chain Offset"
2009-11-12 12:20:57 +00:00
Campbell Barton
30c4c4599d pedantic enum string consistancy 2009-11-07 22:12:03 +00:00
Campbell Barton
4e61f8a836 pep8 whitespace commit
bpy/rna api (no functionality change, just move getting the srna py base into a function)
2009-11-07 22:07:46 +00:00
Joshua Leung
06d5d53a24 Bugfixes + Spline IK Tweaks:
* #19819: 'Select' operator for Hooks was crashing when Hooks didn't have any vertices assigned yet

* Default twist resolution mode for curves is now 'Minimise'. This seems to work better for Curve Deforms and other purposes. Can be changed if other ways are better after some more testing.

* Spline IK now has more options for controlling how the x and z axis scaling is determined. There is now a choice between using the radius of the curve, the x+z scaling from the bones, or no scaling (default). This does break old files a bit, but this is to have a more stable base for later.
2009-11-05 10:09:45 +00:00
Joshua Leung
3c6b721fc9 Bugfix #19777: Owner Space not Target Space for Action Constraint was getting exposed via the UI.
The former is useless and probably dangerous to enable here, while only the latter is useful for anything.
2009-11-04 05:45:57 +00:00
Campbell Barton
cbc5a78576 whitespace commit, (was some tabs mixed with spaces too) 2009-11-03 07:23:02 +00:00
Matt Ebb
4b8c64246e * Added a new 'bone constraint' property editor icon and panel titles to distinguish bone constraints from object constraints
It was a bit too confusing and people were easily getting them mixed up.
2009-11-02 11:36:45 +00:00
Joshua Leung
334a80a4f8 Spline IK Experimental Features:
1) "Even Divisions" - This option ignores the length of bones when considering how they should fit along the curve. This is useful for getting a smoother curve fit without having to worry about getting the bone lengths spot on. By default, this is disabled.

2) "Keep Max Length" - This option prevents the bone chain from extending past its natural length when the spline is stretched beyond that length. When the spline length is substatially shorter though, this bones get scaled to zero; making this option possibly useful for doing "growing tips". 
This is essentially a 'no scale' option, although the behaviour when the curve is shorter is really a compromise since the curve cannot be accurately satisfied + left intact without some scaling being applied due to the way this works.

3) "Radius to Thickness" - The average radius of the spline between at the head+tail of each bone determines the x+z scaling of the bone.
2009-11-02 10:04:37 +00:00
Campbell Barton
2cf22b53bc add_mesh_torus now passes the pep8 test 2009-11-01 18:07:35 +00:00
Martin Poirier
9ea292290b Correct GPL license header for all python scripts 2009-11-01 15:21:20 +00:00
Joshua Leung
2068eaf1b7 Rigging Goodies: Spline IK Constraint
At last, this commit introduces the Spline IK Constraint to Blender. Spline IK is a constraint that makes n bones follow the shape of a specified curve. 

Simply add a chain of bones, add a curve, add a Spline IK Constraint to the tip bone and set the number of bones in the chain to make it work. Or, try the following test file:
http://download.blender.org/ftp/incoming/250_splineik_spine01.blend

Screenshots of this in action (as proof):
http://download.blender.org/ftp/incoming/b250_splineik_001_before.png
http://download.blender.org/ftp/incoming/b250_splineik_001_after.png

I've implemented this in a similar way to how standard IK solvers are done. However, this code is currently not an IK plugin, since I imagine that it would be useful to be able to combine the 2 types of IK. This can be easily changed though :)

Finally, a few notes on what to expect still:
* Constraint blending currently doesn't affect this. Getting that to work correctly will take a bit more work still.
* Options for not affecting the root joint (to make it easier to attach the chain to a stump or whatever), and non-uniform scaling options have yet to be added. I've marked the places where they can be added though
* Control over the twisting of the chain still needs investigation. 

Have fun!
2009-11-01 11:29:40 +00:00
Campbell Barton
d964808846 made scripts pass the pep8 test (though not fully pep8 yet)
added comment in header to know if a script has been converted or not.
2009-10-31 23:35:56 +00:00
Campbell Barton
41c0236aaa GPL2 header from firebird (without disclaimer), notice theres no copyright attributed and only the GPLv2 (without the v2 or later clause).
Contributors list isnt used much in our C code so probably its easier if people just use svn blame for this.

Can change if this isnt acceptable but I guessed people didnt care so much since most scripts had no header.
2009-10-31 20:16:59 +00:00
Campbell Barton
944a8d33fe renamed buttons ui files to properties to match UI name change, needed to update some imports too 2009-10-31 19:57:59 +00:00