- Cvs logs:
* bone heat weighting. This is a new automatic vertex weighting method, next todo the existing.
Envelope based method. The details are here:
blender.org - Skinning.
This is based on section 4 of the paper:
Automatic rigging and animation of 3d characters.
Ilya baran and jovan popovic,
Siggraph 2007.
* transformation constraint.
This commit adds a new constraint todo Blender: the transformation constraint. This constraint gives you more Freedom todo choose how transforms are copied from one object/bone todo another object/bone.
You can assing the Loc/root/scale channels of a source todo the Loc/root/scale channels of a destination, specifying the range of motion (per axis) from the source todo consider, and the range of motion (per axis) that Will be applied todo the destination. Also, for each destination axis, you can choose which of the source axes todo copy from.
* constraints system.
After just over a wek of coding, ive finished doing a major refactor/cleanup of the constraints code. In the process, quite a few old kludges and ugly hacks have ben removed. Also, some new features which Will greatly benefit riggers have ben implemented.
What new.
* the long-awaited ``childof constraint:
This allows you todo animate parent influences, and choose which transformation channels the parent afects the child on (i, no translation/rotation/scaling). It should be noted that disabling some combinations may not totally work as expected. Also, the set inverse and clear inverse buttons at the bottom of this constraint panel set/clear the inverse correction for the parent effects. Use these todo make the Owner not stick/be glued todo the parent.
* constraint/target evaluation spaces:
In some constraints, there are now 1-2 combo boxes at the bottom of their panel, which allows you todo pik which `co-ordinate space they are evalúated in. This is much more flexible than the old local options for Bones only were.
* action constraint - Loc/root/size imputs.
The action constraint can finally use the target location/rotation/scaling transforms as input, todo control the Owner of the constraint. This should work much more reliably than it used todo. The target evalúation should now a los be more accurate due todo the new space conversión Stuff.
* transform - No longer in crazy space (tm).
Transforming objects/Bones with constraints applied should no longer occur in crazy space. They are now correctly inverse-corrected. This a los applies todo old-style object tracking.
=== general code changes ===
* solve_constraints is now in constraints, c. Ive removed the old `blend consecutive constraints of same type junk, which made the code more complex than it neded todo be.
* evalúate_constraint is now only passed the constraint, and two matrices. A few unused variables have ben removed from here.
* a tempolary structure, bconstraintob, is now passed todo solve_constraints instead of relying on an ugly, static workobject in some cases. This works much better.
* made the formatting of constraint code consistent.
* there a versión patch for older files so that constraint settings are correctly converted todo the new system. This is currently done for majorversion <= 244, and subversion < 3. Ive bumped up the subversión todo 3 for this purpose. However, with the imminent 2.45 release, this may ned todo be adjusted accordingly.
* loceulsizetomat4 and locquatsizetomat4 now work in the order size, root, location. Ive a los added a few other math functions.
* mat4blendmat4 is now in arithb. Ive modified it method slightly, todo use other arithb functions, instead of its crazy blending Scheme.
* moved some of the rigidbodyjoint constraint code out of blenkernel, and into src. It shouldnt be setting its target in its data initialisation function based + accessing scene Stuff where it was doing so.
Future work.
* geometry todo ACT as targets for constraints. A space has ben reserved for this already.
* tidy up UI buttons of constraints.
* added the invisible bone envelopes todo vertex groups command todo the 3d view weight Paint -> Paint menú.
* adds the following selection methods todo the sequence editor:
Ctrl-RMB and alt-RMB now call for diferent selection methods that are helpful when working within a single channel that Holds several strips. The Control modifier signals right and the Alt modifier signals left.
Ctrl-RMB clicking a strip Will select that strips left handle and the adjacent handle of any strip that abuts it on the left, allowing you todo move the Boundary between the strips without changing their outer End Points. Ctrl-RMB clicking again on that strip Will add todo the selection all strips todo the left of it, allowing you todo slide the entire set of strips out of the bien for a new one.
Alt-RMB works the same, but todo the right.
Ctrl-alt-RMB on a strip selects the surrounding handles only, allowing you todo move the targeted strip and have the surrounding two strips adjust todo follow.
* option when creating a new screen todo create an Empty one.
(One with one window) while its one more click, y think this is pretty dang useful.
* sequence editor: shift+r, remap paths (alos in pull down menú) this allows todo remap the root of a Path todo another directory. Works on all selected image strips. That bien you can make absolute paths relative, for example. Example: original Path: /mnt/orange/finals/06_which_way/06_03b/ todo be remapped: /mnt/orange/finals/ remap to: // new Path: //06_which_way/06_03b/.
* Sculpt Mode added a new input control that Smoth the brush stroke. This option controlled by the menú item Sculpt>input control>smooth stroke. When enabled, the brush has a delayed effect on the model, a green line is drawn todo indicate the smoothed Path of the stroke. After ~200 píxeles, the first half of the stroke Will be applied todo the model, the process then repeats, with a new segment of the stroke being applied todo the model After every 200 píxeles. On mouse up, any remaining portion of the stroke Will be applied.
* pyconstraints at last.
The ability todo code constraints in Python. This opens up Many interesting rigging possibilities, as well as making prototyping constraints easier. - A pyconstraint script must begin with the line #bpyconstraint - It must a los define a doconstraint function, which performs the Core actions of the constraint. - Pyconstraints use idproperties todo estore custom properties for each pyconstraint instance. The scripter can choose which of these id-properties todo Exposé todo a user todo control the behaviour of the constraint. This must be done using the draw. Pupblok method. Credits todo Joe eager (Joedh) for coding the original patch on which this is based. Ive made heavy revisións todo large parts of the patch. For more detailed información, and some demo scripts, se the following page:
Aligorith - Pyconstraints.
* curve selection tool refactor.
This commit refactors curve selection system todo use certain curve selections functions that encapsulate setting of selection flags. New function todo select adjacent control points was introduced todo. Refactoring made it posible todo simplify certain existing selection functions quite a bit. New functionality was delivered as well. Select more/less works now with Nurbs as expected. Alos two new curve selection functions were added: select every nth and select random se
blenderdev/curve selection tools - Blenderwiki for further información.
* armature - Duplicating Bones duplicating Bones now a los duplicates the transform loocks, and IK Dof settings, along with constraints.
* interface Ortho/perspectiva reporting in the view names added groups todo the ops view.
* meta elements added inverse and random select for metaelems.
* UVS select inverse function in the UV editor, by juho vepsalainen.
* Mesh -> custom properties for Mesh entities in order todo give import/export script authors the ability todo add properties todo inidividual Faces, vértices and Edges in the same manner as they are able todo do with id structures thre new custom data types have ben added todo Blender for float, integers and string. Things todo note: -since property layers are custom data, they are added todo all vértices, Edges or Faces at once. -only one property layer for each unique property name may exist. In other words, you cannot have a float layer as well as an integer layer both with the same name. -no user interfaz for this exists at the moment. The following methods and attributes have ben added todo the Blender. Mesh Python module and it object types: ->mvert/edge/faceseq: addpropertylayer(name, type) removepropertylayer(name) renamepropertylayer(original name, new name) properties(readonly list.) ->mvert/edge/face getproperty(name) setproperty(name, value) ->Mesh module propertytypes (readonly dictionary).
* multires.
When loading multires files, clear the temporary connectivity data in add_levels, moved the call todo update_levels todo the beginning rather than the end. This is slightly faster, as there one less level todo update. Alos fixes a bug (introduced in rev. 10836?) that made multires add_level difer slightly from the subdivide modifier removed two unused structs from multires replaced one-line get_float function with a macro during add_level, move the freing of temp data todo After the update_level, so that this data isnt calculated twice small optimization todo multires based on profiling data, calculation of Edge boudndaries is now cached along with multires mapping data todo improve the performance of the Catmull Clark code removed an unneded call todo create the temporary data when loading files removed an unused integer from multiresface modified the vert_edge_map and vert_face_map arrays in multireslevel so that the data is estored only for as long as it is neded - For adding levels and updating levels. Once the modifications are Compleete, the mapping data is deleted, which provides a large reduction in memory usage for a minor increase in processing time for updating levels moved the multires vertex data from structure multireslevel todo structure multires. There no longer any reason todo estore data seperately for each level, it was just taquíng up extra memory refactored the multires update process (which handles propagating changes todo other levels).
* NLA editor Snap tool in the NLA editor, now works for the keyframes displayed for each object todo. There one case ive todo chek up on later, as there might be interesting conflicts.
* action editor.
Snap and mirror tools for the action editor, now respect NLA scaling again. I accidentally omitted the relevant code when recoding small action editor característica todo hopefully make keyframing quicker. Just press the ikey in the action editor. Feedbak on the (annoyance factor of the) popups welcome hiding Bones in the 3d-view with the (hkey) now hides the corresponding action channels todo ive just spent two days rewriting the action editor todo Unify its code and bring it under control again (it was 107kb, now it is around 73 Kb) * this means that there are no longer sepárate functions for each tool for actions and shape keys in the action editor, and a los no more missing tools for either * also, ive gotten rid of the ned for those complicated, hierarchial loops used for action channels, as they were a pain todo kep consistent with each other * baking functions have ben removed. Se user-level-changes for more details * reorganised and completely rewrote code in editaction, c, thus the lengthy dif user level changes: * for the meantime, border-selecting action channels has ben disabled * baking functions have ben removed. As far as i have ben able todo find out, these were really non-functional anyway. Besides, y dont think they really belonged in editaction, c * editing Shape Key keyframes now yields the same característica set as for those in action channels * there shouldnt be any major bugs left, but i might have missed something.
* Shader nodes geometry node:
Front/bak output this is used as a mask for determining whether youre looking at the front side or bak side of a Mesh, useful for blending materiales, my practical ned was giving diferent materiales todo the pages of a magazine:
http://mke3.net/blender/etc/frontback-h264.mov give 1.0 if it the front side, and 0.0 if it the bak side extended material node this is the same as the material node, but gives more available imputs and outputs, (básically just connecting up more of shadeinput and shaderesult todo the node). I didnt want todo add it todo the normal simple material node since you dont always ned all that Stuff, and it would make the node huge, but when you do ned it, it nice todo have it.
* comp nodes invert node inverting is something that happens all the time in a node setup, and this makes it easier. It ben posible todo invert previously by adding a mix node and subtracting the input from 1.0, but it not the best bien of doing it. This node: - Makes it a lot faster todo set up, rather than all the clicking required with the mix node - Is a lot more usable amidst a complex comp setup, when youre looking at a node tre, it very helpful todo be able todo se at a glance what going on. Using subtract for inverting is easily mixed up with other nodes in which you are actually subtracting, not inverting, and looks very similar todo all the other mix nodes that usually litter a comp tre. - Has options todo invert the RGB channels, the Alpha Channel, or both. This sabes adding Lots of extra nodes (sepárate RGBA, subtract, set alpha) when you want todo do something simple like invert an Alpha Channel. Id like todo add this option todo other nodes todo. There a los a Shader node versión todo.
* this speed up the vertex group editing workflow a bit. The hotkey Control-g in editmode for meshes and lattices, brings up a menú giving the user options todo assing/remove selected vértices todo a new/the active vertex group. The hotkey Control-shift-g in editmode for meshes and lattices, brings up a menú giving the user options todo change the active vertex group and deleete the current vertex group.