* get/set funcs
* unifying rna_props for Constraint Actuator
* Collision sensor
* Ray sensor
* State Actuator
* We need icons! at least one for Sensor, one for Controller and one for Actuator
* Layout artists:
Keyboard sensor really need some help :)
The other as well. I mainly copied the layout from 2.49 with some adjustments here and there.
* some get/set functions in rna_actuator.c are exactly the same (e.g. rna_ConstraintActuator_range_get, rna_ConstraintActuator_spring_get) and other could be easily distributed. maybe something for later.
While I was looking in outliner.c, made some changes to let extra passes display
there such as environment (commented out before due to a previous limitation).
Also changed outliner object visbility/selectability/renderability toggles to use
RNA buttons so you can insert keyframes with RMB menu etc.
- effector list wasnt NULL'd on copying a particle system
- copying an object would initialize the cloth modifier, then copy it, witout freeing its effector weights created in cloth_init().
- s/c/a type enum update function replaced by set function
- rna_Sensor_type_itemf and rna_Actuators_type_itemf implemented (but not working ... it was working yesterday before I updated the set func, so need further investigation). Matt, if you have any clue on that ...
Roadmap:
i) I definitively gotta unify the maxloc, minloc rna properties.
the way it's right now (based on 2.49 makes the layout code really clunky
ii) - actuator missing - State Actuator (I'll probably need help on that).
iii) - sensor missing - collision and ray (they are partly implemented, but the enums are a mess there).
iv) - get/set funcs missing (not many) and default values (not many)
v) - have more lookup functions for properties and material (I'll definitively need help on that).
Eventually will fix (iii, iv and v) changing bge and dna code and doing a subversion/do_version.
Notes:
1) I had to pass Context to the draw_actuator_sound in order to access the open_sound_operator
uiTemplateID(layout, C, ptr, "sound", NULL, "SOUND_OT_open", NULL);
According to Campbell they are better ways to do that (mdef bind for reference). but for now it works.
2) for the record: action actuator is equal to shape actuator (but runs in armature)
3) in Constraint Actuator I think I should unify all the limit_loc_max_, loc_min, ... properties. I was thinking about replacing it with a single limit_loc_max, limit_loc_min, range, distance, and use get/set funcs to find the correct one.
Just about all sequencer operator poll functions were requiring an active
sequence editor space type. This wasn't necessary for most of them, and prevented use
from scripts, console, etc.
- link now brings up a search box so when there are 100's of groups its less annoying.
- utility functions for id-enums so only local objects can be displayed in a search list (used for group_link)
- renamed operator properties from typle to scene, group, action etc.
Adding some NULL checks to all the constraint operators. This is not ideal, but at least the crashes are gone now. More work is needed to properly fix this...
* Re-structured code (can delete the old function entirely when this is done)
* Fixed links/inlinks
* Fixed some bugs in add and remove controller/actuator
* Cleaned up some ui layouts
* Use key event types in keyboard sensor
* Implemented object controller 'state' in RNA/layout engine (still needs tweaks)
* Matt, I'm marking some "property" rna properties that will need some speacial lookup.
Talking with Campbell we thought that it will be nice to have the lookup with autocomplete for the properties, but giving you the freedom to type whatever prop_name you want (so you can use python created properties).
That way we would still store it as a string.
Whenever the property doesn't exist (or was renamed, therefore can't be found) the property name tints in red ...
Is that possible?
* Matt: in draw_actuator_random I used a uiItemL for one of the modes. Is there another way to do that (having the label in the rna file?). I noticed draw_nodes has some cases of that as well.
* Andrea, the actuator_game property filename (in rna_actuator) is the one that needs to open the filebrowser but saving the result as relative path (or to have relative path as the default in this case)
To test use debug mode > 0 (Ctrl+Alt+D)
* primarly the goal is to put all the bricks there, and then to worry about the proper layout
* sensor header added (need to be more compressed). Also checkbox will not work that well here in my opinion.
we need to see what can be used instead (icons?)
* sensors, and actuators in alphabetical order
* a lot of sensors using the rna (//XXXSENSOR in the ones not using it)
* the logic_window.c code for controller and actuator is there only to display the draw functions for controller and actuators. But the code it's a really bad copy of the sensor code, so it will be fixed later (Matt? :)
* I would love if the non-expanded mode were more compact, more like in 2.49 (the name non-editable).
but this is the kind of think we can worry in the end.
Also instead of "move up/move down" it would be nice to drag/drop the sensors/controllers/actuators
* to do: rna_actuators: to rename type to mode for the enum
Condition for this to work (.blend file must be saved) was poorly communicated
in the UI (printfs are no good for this - ideally should use reports). Tweaked this a bit.
Made Multicam-Editing really work:
* added a panel within N-keys, so that one can start/stop playback
and cut between cameras directly from the panel
* made "active_strip" RNA editable, to make that work correctly
(is usefull anyways :) )
Curve->lastselbp field was renamed to Curve->lastsel and now not last
either BPoint or BezTriple is storing here. It's not easy to determine
type of selected point, but operator which depends on such point reviews
the full nurbs, so this shouldn't be a problem.
Made changes to curve undo stuff to restore last selected point on undo/redo.
Added new theme color for curve last selected point.
This commit puts the ground work in place, swapping out the crusty old Logic Editor
UI code for the new RNA-based layout engine. It's disabled with ifdefs at the moment
because it's incomplete, but Dalai can now do the grunt work to fill it all out and get it running.
Also includes a bug fix to LINK buttons, and two new logic operators to add and delete sensors.
Dalai, just switch the #if 0 and #if 1 in logic_window.c:3412 and 3469
Edit mode back geometry occlusion on
Render size to %100 (%25 default is confusing)
Allow negative frames disabled by default (the use cases of this are
very few for it to be on by default)
(ui range precision to 2 instead of 4, since 4 doesn't seem to work here).
From the tracker:
"""
The smallest size allowed for empty_draw_size is 0.1. This is un-necessarily limiting and, depending on the scene, much
too large resulting in visual confusion in the 3D View.
Opening old files initially results in small empties, but when you click on them they 'grow' to the new minimum. This
seems to show that previous blender versions didn't have this bug.
Please remove the limitation, or, if needed, make it a much smaller number, so that empties are easier to see and distinguish from one another in small scenes/setups
"""
Currently for ColorBands, when pressing the Add button, new elements are
set with a medium gray in a medium position which often is not desired
behaviour.
This patch when possible sets new elements as averaged values between
the current element and its preceding neighbour
Campbell's changes to make this use fnmatch by default had the case-sensitivity setting inverted. This meant that convenient searches in lowercase were no longer possible by default.
* Removed some un-needed armature code stubs
* Manually copying over the values of constraints in the constraint copy() callbacks should NOT be needed. Removed this from the Spline IK constraint. The manual process is only a hacky aspect of the modifier stack only!
- IPO-blocks for curves were not getting handled correctly (i.e. no conversion and relinking was taking place) when converting from 2.4x to 2.5
- Old 'speed' IPO's now have their values multiplied by the path length when they are loaded from old 2.4x files so that they work correctly in 2.5.
Also...
- Cleaned up a few instances of scruffy code formatted in some weird ad-hoc way.
- Debug prints for the start/end of the file conversion process are now all hidden behind debug-only checks. Unless the way the conversions are done is significantly changed at some point, this should be sufficient...
- return euler rotation values from rna now have correct rotation order.
- mathutils.Euler stored rotation order off by 1. (didnt work at all)
- Euler/Quat/Color sliceing working again.
- mathutils.Color.hsv attribute. eg. material.diffuse_color.hsv = 0.2, 0.8, 0.4
- Vector/Euler/Quaternion/Color now only take a single seq arg.
- internal function for parsing arrays. (cleanup messy internal list/vector/tuple/seq parsing)
- didnt update rigify yet.
This adds MULTICAM-editing support for blender. (Well, the beginning of.)
There is now a new effect track, named MULTICAM, which just selects
one of the lower tracks.
Doesn't sound that exciting, but if you combine this with A/B-Trim (moving
split points of two directly connected tracks around, while magically
resizing both strips, something to be added), you just do:
* add several tracks for your camera angles
* (optionally) sync those tracks
* add one multicam track on top
Use that multicam-track to edit your movie. (Either using fcurves on the
multicam source selector or using knife-tool and A/B-Trim.)
Compare that to:
* add several tracks
* add cross fades between them
* do some python scripting to add several fcurves to make that beast
somewhat work.
* cry out loud, using it, if you have to move cut points around
Alternatively, even harder:
* just edit the old way and put strip after strip
You might think, that this isn't really helpfull for animators, but
consider using scene-strips (in OpenGL-mode) for input, that are set for
different camera angles and can now be intercut a lot more easily...
Also: small fix on the way: the speed effect can now be used in cascade.
(Don't know, if anyone used it that way, but now it works.)
eg. character.blend -> anim.blend -> comp.blend
... Would link the character.blend directly into comp.blend because on driver ID's.
In this case id_lib_extern doenst need to be called because the object its linked from is a library.
Tested with GameLogic.mouse.position and mouse over sensor.
It should be working with other mouse sensor as well. If not, please help to test and report a bug.
(couldn't test blenderplayer but it should be working there as well).
(Benoit, this is the same patch that I sent you. I hope it's OOP enough. Looking forward to hear from you on that)
I believe that this was the last "mouse" related bug we had reported. MouseLoook scripts should be working 100% in Blender/BGE 2.50 now \o/
* Take border render into account when drawing grid before for render
result becomes visible.
* Use antialiasing for rendering icon previews.
* Fix Full Sample not drawing render result while rendering.
* Mesh Deform Modifier: also forgot to commit this file.
is still set very low so in many cases it could be even smaller, but being
a bit conservative here to try to avoid breaking rigs.
This is not forward-compatible, i.e. loading new files in older blender
versions will loose the binding.
'Mask layers' should be visible always, they still work to mask out objects on
layers when zmask isn't on (zmask is slightly different.. a bit confusing)
Icon tweaks too
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.
Previously, because the 'Scene' item is encountered first, all sub-items like this would be ignored. Now, when a non-matching item is encountered, it's subtree is checked as per normal, as long as the item was expanded (so that its subtree is still visible).