The Animation System now respects the Transform Locks too (i.e. lock x-location, etc.) when writing settings. This means that it is no longer necessary to set up "constant drivers" to make sure some values don't get accidentally animated.
Internally, added a new callback for properties in RNA, which is responsible for checking if the item at some array-index is editable. This needs to be manually called for each place which uses rna to set settings for arrays (see the code changes in anim_sys.c for changes how to do this; the same thing needs to be done in the UI code too, and probably in py-api too)
* Fixed a few compile warnings for scons+mingw
* Driver variables are now added with the ID-type set to ID_OB (objects) by default since this is more convenient
Even a static mesh can be used as replacement: the mesh
will be instantiated with the soft body settings of the
object. The position and orientation of the soft body
is preserved after the replacement.
Known limitation: the velocity of the soft body is reset
aftet the replacement. This is because soft body don't
have a well defined velocity.
Need to stop accumulating warp coordinates after the first cursor warp (store time of new generated event and skip warp for events time smaller).
There's some interesting X11 code in there, if people are curious.
* Removed ED_anim_dag_flush_update and ED_anim_object_flush_update. These
were wrapping DAG_* calls and were intended be used instead of them when
doing a DAG update from editors. That goes against the design in my opinion,
no matter who calls the DAG, that should update the editors correctly, so
any special checks in such functions for editors should be avoided.
* Driver RNA properties now do updates again, including DAG scene sorting,
text buttons no longer update as you type anymore, so this should be
safe I think.
* Remove scene.update() RNA function, all properties/functions should do this
automatically, if changing some property or calling a function/operator
does not do the correct update, that should be fixed.
Reshuffled the code a bit so that the parent-type gets set before the parent inverse matrices are calculated.
Thanks to Claas Eicke Kuhnen (cekuhnen) on Blender Artists for catching this.
* Insert Keyframe (IKEY) now only shows the menu requesting to choose a KeyingSet to use if there is no active KeyingSet. To get the old behaviour, the "always_prompt" boolean property for the "ANIM_OT_insert_keyframe_menu" operator should be supplied.
* After inserting/deleting keyframes without the menu, a popup menu confirming that the keyframes have been modified is shown. Please note that you do not need to click on this popup.
TODO:
Make the confirmation popup fade out after a fixed time.
the To Do was more like self-remaining since no one else is currently working with stereo :)
I will get back to that once 2.5alpha0 is out. In the mean time let's have a cleaner interface.
these are applied by adding constraints, drivers, control bones etc. making it possible to re-apply changes & improvements to many rigs at once.
testcase makes a finger rig (like in BBB) from 3 bones, the base tagged with an id property "type":"finger".
still missing is a way to update the driver dep's
also fixed an error in the property UI when the active bone is not on the active layer.
This means you can have a pose bone for eg and get the path...
pose.bones["Bone"]
uses rna internal functions, so will work for sequence strips etc.
- StructRNA.get(), used for getting ID props without exceptions...
val = C.object["someKey"]
or..
val = C.object.get("someKey", "defaultValue") # wont raise an error
- change rna property for testing if rna props are editable, test the flag rather then calling the function since the function depends on blenders state.
- fix a python exception with the ID-Property popup UI (when editing in more then 1 step)
duplicate_pose_channel_data(), the code to do this was inline in editarmature.c
duplicating editbones now duplicates posebone id-props
also removed an if test for &channew->constraints since it will always be true.
fixes a crash that happens when formatting a python exception into a report. - for now use pythons string formatting function.
happens when running the simple operator template so not sure if its worth re-tagging :S