Commit Graph

48 Commits

Author SHA1 Message Date
0c813b2a0e autorigging front end, access in pose mode armature panel (at the bottom)
demo: http://download.blender.org/durian/metarig_demo.ogv
sintel base rig also, would like to include more generic/simple rigs eventually
2009-12-17 19:48:30 +00:00
4cddc9e146 rescale metarig types to roughly match 1.0 == 1m for body parts, also fix py error with bone UI 2009-12-17 13:17:24 +00:00
3ea2d08e1a pep8 changes 2009-12-16 13:27:30 +00:00
b0abe98d59 - original bones in last layer
- dont rename root bone
- use Rigify exceptions
2009-12-15 18:53:16 +00:00
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
d725fdb612 missing import 2009-12-14 14:51:42 +00:00
d88c776614 edits to the bone copy metarig type from Cessen, pointcache warning fix 2009-12-14 14:42:46 +00:00
3bf27683be automatic layer placement, users can set the layers if they want.
predefined layer types 'main', 'extra', 'ik', 'fk'
2009-12-14 14:21:06 +00:00
9f965ba62b pep8 warnings, remove unused imports 2009-12-13 22:48:11 +00:00
3449d3f9b3 use python3 syntax for defining a set. 2009-12-13 16:20:18 +00:00
a1656300ba script for automating pep8 checks.
On ubuntu/debian install these tools...

   sudo apt-get install pylint pyflakes python-setuptools python-pip
   sudo pip install pep8

then run from blenders source dir...
   python release/test/pep8.py

This searches for the comments "# <pep8 compliant>" and "# <pep8-80 compliant>", running the checking tools on these scripts only.

* some minor pep8 corrections too.
2009-12-13 13:59:16 +00:00
c1bfd014bd * rna: memory leak fix for RNA_property_enum_value()
* rigify: generate root-most bones before children, this makes parenting to dynamically created bones work.
2009-12-13 12:26:19 +00:00
026364dcca rigify
* optional default blend argument, use for better leg & arm defaults
* way to define arbitrary options for bones that can then be passed to the generator function, only used to set elbow target parent at the moment.
2009-12-11 16:30:27 +00:00
fb28896cf7 * added an armature submenu where python defined armatures can go.
* bpy.utils.display_name(), which makes filenames and module names look nicer in menus eg... /home/me/foo_bar.py  --> "Foo Bar"
* missing rna_path --> data_path renaming
2009-12-11 14:16:59 +00:00
8b32402f38 * root bone override fixed
* delta was disabled
* simple copy metarig type
* proper exception when a type isnt found
2009-12-10 23:24:31 +00:00
97abf6ad96 * rename 'rna_path' --> 'data_path', rna and dna are for internal use and are not descriptive.
* armature.pose_position: POSE_POSITION, REST_POSITION --> POSE, REST
* rigify now forces rest pose mode
* updated neck_flex to keep original bones unchanged
2009-12-10 22:23:09 +00:00
2576268fb8 missed a header last commit, added custom exceptions to rigify so they can be caught and converted into reports and have normal errors display the stack trace as useual. 2009-12-10 18:28:22 +00:00
5c5ec6f0a7 fix for some errors and local root bone override 2009-12-10 14:32:37 +00:00
aaa181818e missed editing the sample rigs, Cessen likes palm_curl.py better 2009-12-10 13:45:16 +00:00
e93c0e4ecf renaming metarig types since we may well have multiple arm/finger/leg types 2009-12-10 13:34:21 +00:00
6e6e675191 move generic functions out of rigify's __init__.py into rigify_utils.py since rigify its self does not use them, only some of the metarig types. 2009-12-10 12:58:03 +00:00
f26e188a7c - rigify context changes & example for delta
- sequencer transform had 0.0 for rotation minimum
- missed icon rename in last commit
2009-12-10 11:56:31 +00:00
3535be3f6f patch from Cessen, tweaks and fixes to metarig elements 2009-12-09 22:44:26 +00:00
daf043b3fe if bone type root is defined, all new parentless bones become children of it 2009-12-09 15:13:03 +00:00
5dd68e8cb6 some more rig options, fix typo 2009-12-09 14:29:55 +00:00
a41131db24 - added editbone.matrix, readonly, utility property that calculates the matrix from the bone roll
- spine fixes
- arm now uses the average Z axis to place the poll target
2009-12-09 14:25:56 +00:00
d6c583cc54 - use the bone that the type was set for automatic assigned blending property (when blending 2 chains)
- delete the type property from the generated rig so running again wont confuse things
2009-12-09 12:36:13 +00:00
0e713ba1d0 - rewrote arm rig so it creates 2 chains and blend them automatically (like the leg)
- use reverse order for palm fingers (pointer first)
- allow copying bone class instances to exclude some bones
- doc generation had a python error (incedently updated online docs linked from the splash)
2009-12-09 12:00:28 +00:00
ee74e720a8 - modify for Cessens updated spine
- Neck example didnt account for some possible problems when linking to the body
- foot IK were referencing the wrong bones
- updated some example rigs
- graph constraint arrow direction was incorrect
2009-12-08 17:00:53 +00:00
fb7fed6706 minor fixes 2009-12-08 14:02:06 +00:00
fccceaa87f - pyrna support for (value in array), currently only 1 dimensional arrays.
- use python malloc's in bpy_array.c
- automatically blending bone locations is disabled if the target bone has locked location
- neck had incorrect roll
2009-12-08 09:40:30 +00:00
f4fa39a551 white space commit (spaces -> tabs and clearing whitespace) 2009-12-08 07:11:43 +00:00
ce49719a0c use the SUM driver type to avoid adding all values on each bone.
also avoids hitting the 255 string limit if you want to add 100's of values. eg.
>>> b05/max(0.001, [globals().update({"LOCALS":locals(), "ADD":float.__add__, "reduce":__import__("functools").reduce}), 0.0][1], max((, [LOCALS["b%.2d" % (i+1)] for i in range(5)])))

Since this more simple expression reaches the limit fairly quick...
>>> b05/max(0.001,b01+b02+b03+b04+b05)
2009-12-07 20:49:12 +00:00
f8f7f57557 - bone.basename now only gets the name before the first '.', since names like finger.01.L are common
- updated delta not to remove a bone
- spine and neck rigs interpolation bones are now axis aligned to the control bone
- palm tag is expected on the pointer finger rather then the wrist
- operate on bone children first working up the chain (not essential but more pradictable)
2009-12-07 17:21:30 +00:00
5ebe54f470 pep8 edits and fix some warnings 2009-12-05 22:03:07 +00:00
651336d5df fixes for automatic tests and some errors in last commit 2009-12-05 20:45:51 +00:00
65edb7341f split up metarig hierarchy evaluation and modifying the metarig into 2 steps,
original bone names cant be changed anymore but this means the bones can be re-parented without confusing scripts that run after the rig is modified.
support for defining a bone to have multiple types and  automatically blending between 2 generated rigs
2009-12-05 19:26:28 +00:00
19c0a169b8 touches for demo'ing 2009-12-04 16:35:31 +00:00
a9b9993414 rna function
editbone.align(vector), to align the bones z axis to a localspace direction.

finished leg rig pose mode data
2009-12-04 02:32:34 +00:00
ab1290d62e leg rig type & metarig example, still need to add IK's
fixed some small bugs too.
2009-12-03 22:44:11 +00:00
685d418f3a - curve geometry curve panel wasnt displaying with no active spline
- graph export didnt work for constraints with no subtarget
- utility functions for duplicating a set of bones and blending between 2 sets
2009-12-03 14:20:35 +00:00
7706261e79 change bone storage class so __slots__ can be used for looping over attributes without getting functions 2009-12-02 19:13:54 +00:00
ce36cdac04 - bpy.data.add_armature()
- rigify testnig function, creates all example metarigs, processes and generates graphs for before and after.
2009-12-02 15:37:07 +00:00
2bf618368a - include example input rigs for each autorig type, running metarig_template() in each submodule generates the armature and pose bone ID properties.
- rigify.write_meta_rig() exports rigs as python scripts
2009-12-02 11:55:47 +00:00
50c8c28c60 - finished spine rig generator, (drivers, constraints)
- bug with args passed for class slots being modified in place.
- sort graphviz bones & drivers (useful for diffing 2 armatures)
2009-12-02 02:56:22 +00:00
c27f3adadc - rig spine type WIP, editmode done, still needs pose constraints and drivers.
- bone.translate(vec) utility function
2009-12-01 22:45:56 +00:00
99e765ee00 added autorig neck type
new bone properties
- bone.basename (name without the extension), "Some.Bone.001" --> "Some.Bone"
- bone.children_recursive_basename, gives a chain of children that have the same basename
2009-12-01 00:44:53 +00:00
a2140192fe convert rigify into a package. advantage is new types can be added into the package without modifying any existing files, the bone 'type' property will find the matching submodule 2009-11-30 12:31:11 +00:00