update by the script author - may have killed some changes cambo did to the previous version but the layout of the script is too significantly different to merge them.
Window.c was calling undo_push_mesh, even for non mesh objects, exiting editmode would crash for any non mesh object (found with the armature symmetry script), bad juju.
Snap/Grid icon button in 3D view header (edit mesh). FIXME NOTICE: make nice looking icons (yes, that's for you Matt)
When snap is on, a drop down appears for the target method (closest, median, center)
Hotkey to toggle snap is Shift-Tab (this was previously used for a not totally equivalent to Tab. Ton said OK to scrap it). That hotkey is currently restricted to edit mesh (where snap is currently restricted).
Changed a couple of ugliness on how snap settings are stored.
big speedup to loop detection
added support for skinning open loops (could be improved, dosnt work that well when open loops have different vert counts)
speedup elsewhere with LC's
the tip isnt used for a label anyway. added comments explaining whats going on. only effects clever numbuts internaly.
type fixes for weightpaint_envelope_assign.py
-Added missing access to Node win theme (thanks Mickaël Le-bihan for pointing) and also options group and group_active.
-Added Node space to Window.Types dict.
-Tiny update to the save theme script version numbers (keeping 2.42 for now to avoid popups, but should change to 2.43 right before release).
BTW: Happy New Year everyone :).
* added .iconTheme variable
* bugfix. drawType was not being saved because Py_BuildValue and __members__ was missing an "s"
* added Blender.Get('icondir')
scn.objects.selected = [] # deselect all
scn.objects.selected = scn.objects # select all
scn.objects.context = [ob1, ob2...]
Added epydoc examples and updates importer scripts to use this de-select-all method.
continual script stuff, minor stuff..
fix for bad return in group.
Added back group.objects.append/remove but print deprectaed warning. also some epydoc changes.
weightpaint_envelope_assign - can update active vgroup only
weightpaint_normalize - fixups
BKE_plugin_types - made the max length 32 ratehr then 16 so you can fill the text space in pupBlock
- moved to the weightpaint menu
- Use a group for envelope objects, no special names.
- Can use non mesh data for envalopes (anything that can be converted into a mesh - metaballs, text, surface)
- Dosnt rely on applying loc/size/rot for it to work properly
- Uses a good point-inside-mesh method (optimized with mesh and face bounding checks)
- uses Mesh instead of NMesh
todo, only update active vgroup
Stupid typo in script, you couldn't go into
a subgroup if it was the first property in
the list.
Also, name collision code needed a little work.
This could result in overwriting properties
with the New button, which should instead
work as the rest of blender and add .XXX
to the name.
Added a test gui script for ID Properties. To use,
just select ID Property Browser from the help menu.
You can browse, create and edit ID Properties
for several library block types. Should be
fairly straightforward to use.
This is a test gui script; once an actual ID property
gui is implemented in blender it will be removed. It
is *not* going to be in the release, obviously, so once
the real gui is implemented this script will be removed.
Also, this being a testing non-release script it seems to me
to be okay to add it without all the proper review stuff. If
not, I can remove it.
I believe a test script is really, really needed to properly
test/review id properties, so I feel this is worth it.
- Dont allow it to apply the matrix twice to a linked-dupe. (Same as Apply Loc/Size/Rot)
- Make sure that the source object is active, not just the first selected object.
- Use Mesh instead of NMesh.
- use mesh.transform(mat) rather then vert by vert vec*mat
Other scripts had pupBlock changes for better layout.
Click project, a nifty 3 click way to use a face to set a projection aurientation and then 2 more clicks for the U and V scales
with realtime updating as you move the mouse
should be faster then using view project all the time because you dont have to line the view up with the faces.
off_export - minor changes
uv_archimap - cleanup. slightly slower but less duplicate code
uv_from_adjacent - nothing
BPY_menus - renamed py slot UvCalculation to UVCalculation to be consistant
Changed...
me = NMesh.GetRaw(ob.data.name)
To
me = NMesh.GetRaw(ob.getData(name_only=1))
The line above converts the entire mesh to a python thick wrapper just to get its name, then only to that that same mesh again??
A lot of older scripts did this but theres no reason to do it.
in most (all?) cases..
me = ob.data - should be ok, but theres a subtle difference and I dont want to break anything.
xfig_export, xsi_export and videoscape_export need error checking too.
Minor changes to radiosity_export, updated to work with the new API (vertexColors MTFace)
obdatacopier - was getting the selection but not using it. made it ignore some read only properties.
BPyMesh - minor change: use face iterator rather then making a tuple()
console.py - if the scriptdir didnt exist it would do an error, now just ignore and dont try to do the console_autoexec.py stuff
doc_browser.py - If you typed in an invalid module it would give an error and exit, now have a message instead.
added restrictDraw/Select/Render to objects in python
updated group and scene docs for last commit
made 3ds import use new scn.objects rather then Object.New() - (removed import as instance for now)
fixes off import error from this report http://blenderartists.org/forum/showthread.php?t=84182
curve2vecs(ob, WORLDSPACE= True):
'''
Takes a curve object and returns a list of vec lists (polylines)
one list per curve
This is usefull as a way to get a polyline per curve
so as not to have to deal with the spline types directly
'''
There was an integer division error in md2_export.py,
where values were getting clamped to either 0 or 1.
Fixed it by putting the appropriate vars in float().
Reported by deltab on IRC.
Python 2.4+ supports large list processing with generators, but
Python 2.3 will break if you use that syntax. Until we depend on
the newer versions, I have commented out the generator syntax and
only use the list-comprehension type instead.
Added a callback instance_init() so that any particular instance of a
texture plugin can initialize data. Updated the clouds2 and tile example
plugins to have a (dummy) call back.
* SVG export support (thanks to Jarod's patch in the tracker)
* Faster tga export (from Jarod's patch too)
* Fixes from the review thread and the wiki:
** No longer adds the extension (tga or svg) if already there
** Adds the object name in between the filename and extension (and not after the extension if it was already present)
** Renamed options here and there.
The VRML97 exporter was rounding a lot of stuff to three decimal points.
This is silly, since the spec says single-precision floats are used for
most things, which gives about 7 decimal points precision.
Added a new script - 'Dump All Images to Path'
This script copies all the images used by 1 blend to a spesified path and references the new images from Blender
Usefull for moving projects between computers or when you reference many images. naming collisions and multiple images using the same image path are delt with properly only creating new image names when needed.
Blender images will reference the newly copied files - So be mindfull when you save your blend after running the script.
Notes, images with the path "Untitled will be ignored"
Image path collisions are managed by enumerating the path names so images will never be overwritten at the target path.
an error in Scene.c - scn.Layers disallowd all layer bits to be set.
made image_billboard.py rotate all images to be verticle for more efficient packing, added the option not to pack resulting images into 1.
________________________
Render Billboard Script
This can texture a simple billboard mesh from any number of selected objects.
Renders objects in the selection to quad faces on the active mesh.
Usage
* Light your model or enable the shadless flag so it is visible
* Make a low poly mesh out of quads with 90d corners. (this will be you billboard mesh)
* Select the model and any lamps that light it
* Select the billboard mesh so that it is active
* Run this script, Adjust settings such as image size or oversampling.
* Select a place to save the PNG image.
* Once the script has finished running return to the 3d view by pressing Shift+F5
* To see the newly applied textures change the drawtype to 'Textured Solid'
uv_archimap still had python based line intersect
added plane2matrix function to BPyMathutils
added an optional arg to imageFromObjectsOrtho - camera_matrix
camera_matrix can be used to define a plane in 3d space where X and Y scale is used to set the width and height of the area to render.
Added Mesh .key .removeAllKeys() and .insertKey() for MDD support (was using NMesh just for keys before)
Since this is aparently an experemental feature in NMesh we may want to change this.
BPyRender.imageFromObjectsOrtho() returns an image
Made all image bake scripts ask before overwriting a file. as well as displaying the newly created image once its rendered.
This is another proportional edit falloff that slightly randomises the
influence. It's not strictly random, it's blended with linear falloff so that
it's a bit smoother. The nice thing is that it works with all transforms, axis
locking etc, including the special ones like to sphere, shrink/fatten/etc. It
can be used for all sorts of things like roughening surfaces. I most recently
used it to add a bit of randomness to the folds of some cloth. I
made a short demo video here: http://mke3.net/blender/etc/prop_random-h264.mov
Also included nicer icons for the falloff types.
import_obj - comments, docstring additions, cleanup.
OBJ export: -renamed export_obj
faster edge exporting (use edges LOOSE flag rather then finding zero face user edges)
check for file before overwriting
use object iterators
http://mediawiki.blender.org/index.php/ScriptDev/Guidelines
* Recursive search was enabled by default, if your OBJ happened to be at root path, loading the OBJ could take ages. Made recursive searching optional.
* MAX's MTL exporter replaces spaces with underscores, image loading checks for this and loads the name with spaces if the one with underscores dosnt exist. not realy a problem with the importer but annoying to manually replace lots of images.
exactly the same as mesh_create_derived_render(ob) except it uses the view modifier settings.
Added an optional arg to getFromObject to 'render' so you can choose to get the mesh displayed in the 3d view or generate one with render settings.
Solved bug 4612 getFromObject now works with soft body meshes (error was caused by getting the derived mesh from a copy of the object)
removed workaround for softbody bug in object_apply_def.py
The original obj importer was ok but it gradually got slower
as it had to support quirks of rare files.
This importer supports these quirks without bad workarounds and ~250 less lines.
* Moved from NMesh to Mesh
* Import smooth groups as hard edges
* Import Lines from sketchup (Thanks Wavk)
* Uses less memory
* faster (On a 70meg poser test model, benchmarked from 130sec to 41.2sec)
Not yet supported from the old importer-
* Scaling down to a bounding area
* Importing multiple obj's at once
* Using existing materials in the .blend
* Importing as a group instance.
also make use of meshes faces.extend() indexList option- which means lots of checking can be removed.
indexList is not relyable at the moment so some files wont import but this will be fixed.
Everyone else was using gzip. On the latest downloads many of them
are using bzip2, (I think everyone using scons)
So I decided to update make release so that everyone is using
gzip2. I don't mean to step on anyones toes, I know at least some of
the platform maintainers do not use make though so feel free to change
it back and or to something different for your platform.
While I was at it I also changed default path of OPENEXR to /usr on linux.
Was suggested on mailing list by Matt.
(I'm pretty sure the linux maintainer is using scons)
Kent
locations are: smart, middle, v1, and v2
where smart is an attempt to generate a loc that will collapse without loosing volume.
This can now collapse a subdivided cube properly.
before funky stuff like IPO bezier curve fitting etc are added.
* Fixed problem with zero length bones being removed.
* Sped up import by writing to ipo curves rather then inserting keyframes
* detect linear rate of change and ommit unneeded ipo points.
* cleanup
Added better docscrings
Added a texture baker for procedural textures,
Its able to make a WYSIWYG image from the texture, by using the texmesh property, so texture coords arnt lost up when flattening the mesh.
Use a high res image not to see any seams
Some optimizations and Ctrl will escape the script properly if you want to skip merging the islands.
Thanks to Melchior FRANZ for the report and debug blend
- bake wire
- bake image
- bake vcol
- bake normals
Fitting all the options for these into 1 PupBlock was not good.
An example of 4 different baking made from these scripts
http://members.iinet.net.au/~cpbarton/temp.png
* NMesh to Mesh
* Optimized vertex importing
* Import NGons properly and make them blender FGons
* lots of other small updates
image_bake_from_uvs - ignore meshes without faceUV's
bvh2arm was for importing empties in a BVH, direct bvh armature import should be good for next release. and Iv removed the Old bvh importer anyway.
Will add a slot in the imaeg meny for image scripts, renamed scripts to go there.
Added options to use material colors (can be multiplied with vcol)
Added wire option for UV Export type functionality. (implys no bleeding)
Added Option to render with no oversampling
changed alpha blending
Use a best fit mirror location to match pairs rather then bone names only.
Location matching works well, but name matching method can be added in also if its needed.
usefull for baking radiosity back into an image (with non overlapping UV's) and also has an option for including the texface image, and using normals (instead of colors)
Added BPyRender with a utility function to render off an ortho image from a number of objects.
applied bugfix by Stephane Soppera, removing two warnings and declaring
pointers explicitly as unsigned char*. (has worked without it, since the
compiler flags declare all (char*) in blender to be unsigned...)
export would cause a problem since the temporary meshes created
would often reuse the same name for many objects. This fix mangles
the object name and uses this for the temporary mesh name to avoid
this problem. (The naming is important, since vrml has 'DEF' and 'USE'
statements that are used like C macros, so if two meshes have the
same name the exporter will try to 'recycle' data to keep file sizes
low).
- Updating Blender Lip Synchro to the newest version sent by the author,
Benoit Foucque (Dienben). Thanks!
I'm committing a version with a few minor (tested) changes to make it
easier and to fix a small problem, the author received the changes a few
days ago. He would try to send another update implementing a couple
suggestions, but it may not come in time, so better have this. Anyway,
interested users can check his blog for test files and more information:
http://blenderlipsynchro.blogspot.com/