2.4x port by Ivo Grigull (loolarge)
from the tracker:
It should be working ok, but it does not have all options that the old script had. You can only specify the start frame
where to insert the animation, but not skip frames for have a different fps.
However, like the old script this will bloat the memory a bit, at some later point i would like to write a script that
only reads the current frame from the file when you move the timeline.
- euler/quat rotation option
- scale, startframe options back.
- fix for adding an armature which used operators can could fail, use the data api instead.
- remove old junk
Examples.
euler = Euler(1, 2, 3)
euler.order = 'ZXY'
euler = matrix.to_euler('XZY')
Still missing rna support. this still wont give the right order, defaulting to XYZ.
eul = object.rotation_euler
Running scripts directly didnt call the register function, even though this is not essential its good to be able to run a script directly and see changes in the UI.
Thanks to example .3ds file and bug report from stridernzl.
1) The API function for adding textures to meshes was not working correctly, resulting in a Null texture slot being created (i.e. a texture slot was created, but the given texture could never be assigned to this).
Fixed by making the function always require a texture as input (as with other places that use pointers as arguments).
2) In "Textured" draw mode, the imported meshes were shown white (i.e. without any textures).
It appears that that the old old setting (mesh.faceUV) is no longer valid/wrapped in RNA, so worked around this by setting the 'tex' setting for UV-faces on. From the UI, this seems to do the same thing as entering editmode and assigning an image to the faces from the image editor.
---
I've also removed a few lines of commented 2.4x code that is no longer valid. Hopefully there wasn't anything too valuable that I accidentally removed in this process ;)
Also meant to mention, on the todo: show the confirmation before closing the file selector,
rather than afterwards where it's inconvenient and easy to miss...
blender supports type changing for textures in a way that python doesnt.
add a new general function.
Example usage:
tex = bpy.data.textures.new("Foo")
tex.type = 'IMAGE'
tex = tex.recast_type()
Macro to give the number of users accounting for fake user.
ID_REAL_USERS(id)
Use this so you can remove a datablock if it has a fake users as well as apply transformations to it in the 3D view.
Move api function bpy.data.add_texture() --> bpy.data.textures.new()/remove()
change how data is added. eg.
bpy.data.add_mesh(name) --> bpy.data.meshes.new(name)
bpy.data.remove_lamp(lamp) --> bpy.data.lamps.remove(lamp)
image and texture stil use add_* funcs
thumbnails on the web interface (resized with imagemagick or compatible if present, fullsize otherwise)
Clicking on the "show" link shows the thumbnail associated with one frame. Clicking on a second one shows all frames in the range. Clicking on more frames extends the range. Clicking on a thumbnail (or on the show link of a visible thumbnail) hides all thumbnails.
jpeg versions of the render results are downloadable from the web interface.
Notes:
1) They are generated (and written to disk) on demand on the master in the same Blender instance, so this will increase memory usage (until there's a way to free and image buffer from memory or it's run in a separate process).
2) They are darker then the real results, since multilayer exr contain the result before gamma correction (for the linear workflow) and that's not applied when loading them as an image.
3) They are NOT thumbnails, they are the same size as the results (albeit at 90% quality jpeg compression)
Slave and Master options to delete files when closed (default True for slave, False for Master)
Web interface option to remove files (on master) when deleting a job (or all jobs)
Web interface button to pause a job
from bpy.app import binary_path, version, version_string, home
can add constant variables from blender here as needed (maybe functions too... bpy.app.memory_usage() ?)