- added import and export scripts for 3ds and md2 (Quake 2) models
contributed by author Bob Holcomb. Thanks!
- updated ac3d importer to be more forgiving and exporter to get rid of
deprecated call.
More additions and possibly fixes to come.
Note: we're forming a group to take care of importers and exporters and
improve the situation as a whole in Blender. Discussions should happen
at the bf-scripts-dev mailing list:
http://projects.blender.org/mailman/listinfo/bf-scripts-dev
Thanks Tom Musgrove (LetterRip) for helping a lot with scripts.
Phew... a whole day revision of library linking system... there was a bug
when objects got linked, then removed, and then linked via a group... this
was a weak part in the library system, when data is used both "direct"
(like local object is linked to scene) and "indirect" (when group from a
library has same object).
The crucial fixes are easier to find by reading the diff... this system
is just braincrunching complex! Just as note to self then;
- ID_ID oldmap-lookups are now protected
- removed adding oldmap lookups for already read data
For Matt & Basse: you can do a very good cleanup of old files by putting
the "rt" button on 127, and then save file. This will skip writing any
reference to library data in the file, with exception of group links.
Reload a file might give some link errors, but a 2nd save and load then
should result in a clean file.
- On file reading, a check is added to see if a Pose has channels to
missing bones. Poses are supposed to match an Armature completely.
(Thanks for crash file, Johnny!... but how did you do it!)
- Own collection: added depsgraph update on setting all layers (with the
ACCENTGRAVEKEY). This also could potentially crash with modifiers
- Renamed Xkey menu in NLA to more properly tell what it does. :)
- malformed nmeshes could crash Blender with a sigsegv. Related to old
behavior that accepted "faces" with one or two verts.
- removing unused var (store_edges) + doc update.
This is the case:
- Empty has Group duplicator
- Empty has NLA strips to animate the group
On linking the Empty to another group (with button in ObjectButtons), it
checks for the current strips in NLA, and tries to find the proper objects
in the new Group, based on name matches.
If not found, it sets the strip-objects to zero.
don't work consistant;
BLI_makestringcode()
This one works correct for paths that go up; it then makes a relative
path like : //../lib/file.blend
BLI_convertstringcode()
This one delivers different paths when it expands, the previous case
will just append the relative path, like /work/project/../lib/file.blend.
That string cannot be compared with the original... which happened to find
out if a library was read already.
Solution for now is that only the relative paths are compared, but it
won't work if multiple relative levels are used... like for libraries
that link recursive. To solve that, the entire 'relative' concept has to
be redesigned.
Image.New(name, w,h,depth)
Image.start- for animtex
Image.end - for animtex
Image.speed - for animtex
Image.packed - read only bool
See the pydocs for details.
data (local data links to lib data) and "indirect" (lib links to same lib
data).
A real solution should be found though... there's a conflict in the code
I don't fully grasp yet.
when it duplicated mesh data.
I'm not thrilled with how I implemented this code, but currently don't
know a better way. If someone more familiar with how blender duplicates
objects and converts things to meshes wants to have a look, it would be
appreciated.
Apparently python allows to create Key blocks without proper *from pointer
back to the owner of the Key. The Key unfortunately wasn't mean to be a
dynamic block linkable to any Mesh...
This patch sets the from pointer on any call to do_mesh_key, which is safe
to do anyway. I made a note to get rid of that convention once, but at
least now we got non-crashing blenders. :)
(In bugreport noted that we need to check Python code for it too!)
Adding Ipos to Sound strips in Sequencer didn't work anymore. Adding a new
curve with CTRL+click also wasn't smart enough to detect that only one
channel existed there... fixed that too.
Another ancient bug in unified render... the lamphalo wasn't filled in
correctly over sky, especially when the background had halos (or stars).
Only shows when using filters other than box though.
wire frame became very limited... the information of faces (vertex colors
and UV reside there) got lost.
Solved it nicely with creating a large index table, and use bsearch() to
get quickly the matching information.
Then I noticed the render code needed fixes too for wire, no proper UV's
were calculated over the wire edge.
The tool "Single User" -> "Object data" missed a tag to recalculate the
geometry. This caused meshes to disappear after entering editmode on the
former linked mesh.
Previously the only way to get the current image was flaky and relyd on the image being assigned to a mesh.
try:
me = Scene.GetCurrent().getAttiveObject().getData(mesh=1)
image = me.faces[me.activeFace].image
except:
image = None
...Can new be replaced by the following, and works even when there is no mesh.
image = Image.GetCurrent()
epydocs:
Get the currently displayed Image from Blenders UV/Image window.
When multiple images are displayed, the last active UV/Image windows image is used.
Strips with a repeat fraction (like 3.51) should also "hold" on the
fraction of .51 when indicated so.
Patch provided by Roland Hess, but cleaned up (exisiting) mess a bit too.
Unified render didn't treat the alpha for raytraced transparent correct...
unified is based on layering with alpha, so it cannot support alpha in
raytraced transparent correctly.
I'm going to kill unified one day... its giving me headaches. :)
* this resolves a number of outstanding issues with the armature api and gets this ready for release
- add/remove bones possible
- rolls work correctly now!
- ik'ing to parent should work
- flags for tip/root/bone selection
- etc.
30, the databrowse option didnt work.
Made popup menu to go to 60 now, in 3 collums max. Databrowse works too
now.
Next commit; check all other databrowsers for it.
- If a library became unreadable, with a print like:
ERROR: can't find lib //../../../../../../..//jorma_light.blend
Then set the F10 "rt" button to 111. :)
That will read files with a stripping routine to fix it.
- For lost actions in strips: press Lkey in NLA editor, this is the new
"re-link action" option. To get it work, dont forget to fill in the
proper Armature in NKey panel.
The real fix, for the code that corrupted relative paths, will be
part of the bf-blender branch merging, which follows.
particle generator can be duplicated.
Note that the particles are only generated once, on the original, and just
get duplicated.
For static particles it worked already OK.
Added note for previous grouping commit; group-duplicators should support
fully all animation systems, including modifiers and particles.