From BlenderWiki

Jump to: navigation, search

Blender 2.78: Py API & Add-ons

Python API

New APIs


Changes

Exclamation mark.png
bpy.data.foo.remove() functions have been cleaned up and unified in behavior, now you need to pass do_unlink=True explicitly to unlink the datablock from Blender before deleting it. Previously, some were silently unlinking, while others errored if the datablock was still in use.
Exclamation mark.png
Changes to bpy.data.foo.remove() and underlying code in Blender also implies that you should not need to use `clear_user()` function anymore. This was a hack to work around poor handling of user count in previous releases, but it is very dangerous (very easy to make Blender crash when using this wrong).
Exclamation mark.png
With 3a4c30, physics panels now use COMPAT_ENGINES instead of using the RenderEngine.use_game_engine flag to show/hide panels. Any RenderEngines relying on this behavior will wither need to be updated to add themselves to the COMPAT_ENGINES lists of these panels or use a exclusions-style method for panels such as what Cycles now uses as of 1d81f6. For RenderEngines using an exclusions list, the affected panels are:
"PHYSICS_PT_add",
"PHYSICS_PT_rigidbody_constraint_panel",
"PHYSICS_PT_rigid_body_constraint",
"PHYSICS_PT_rigidbody_constraint_panel",
"PHYSICS_PT_fluid",
"PHYSICS_PT_domain_gravity",
"PHYSICS_PT_domain_boundary",
"PHYSICS_PT_domain_particles",
"PHYSICS_PT_dynamic_paint",
"PHYSICS_PT_dp_advanced_canvas",
"PHYSICS_PT_dp_canvas_output",
"PHYSICS_PT_dp_canvas_initial_color",
"PHYSICS_PT_dp_effects",
"PHYSICS_PT_dp_cache",
"PHYSICS_PT_dp_brush_source",
"PHYSICS_PT_dp_brush_velocity",
"PHYSICS_PT_dp_brush_wave",
"PHYSICS_PT_field",
"PHYSICS_PT_collision",
"PHYSICS_PT_smoke",
"PHYSICS_PT_smoke_flow_advanced",
"PHYSICS_PT_smoke_fire",
"PHYSICS_PT_smoke_adaptive_domain",
"PHYSICS_PT_smoke_highres",
"PHYSICS_PT_smoke_groups",
"PHYSICS_PT_smoke_cache",
"PHYSICS_PT_smoke_field_weights",
"PHYSICS_PT_cloth",
"PHYSICS_PT_cloth_cache",
"PHYSICS_PT_cloth_collision",
"PHYSICS_PT_cloth_stiffness",
"PHYSICS_PT_cloth_sewing",
"PHYSICS_PT_cloth_field_weights",
"PHYSICS_PT_softbody",
"PHYSICS_PT_softbody_cache",
"PHYSICS_PT_softbody_goal",
"PHYSICS_PT_softbody_edge",
"PHYSICS_PT_softbody_collision",
"PHYSICS_PT_softbody_solver",
"PHYSICS_PT_softbody_field_weights",
"PHYSICS_PT_rigidbody_panel",
"PHYSICS_PT_rigid_body",
"PHYSICS_PT_rigidbody_panel",
"PHYSICS_PT_rigid_body_collisions",
"PHYSICS_PT_rigidbody_panel",
"PHYSICS_PT_rigid_body_dynamics",
"PHYSICS_PT_rigidbody_panel",


  • gpu.export_shader now provides access to the material associated with material uniforms (6bd248cd6540)



New Add-ons

Archimesh

  • by antonioya
  • The add-on is a architectural mesh system.
  • Generate architecture elements like rooms, doors, columns, stairs and tile roofs.
  • Create rooms with doors & window holes created automatically.
  • See the documentation here.



Blender ID

  • By Blender Institute
  • Allows authenticating the user (i.e. logging in) with their Blender ID account.
  • Contains a small API for other add-ons to use.
  • Used by the Blender Cloud add-on.
  • See documentation here.

Measureit

  • by antonioya
  • MeasureIt is an add-on designed for displaying measures in the viewport.
  • Features renderable measurements.
  • See the documentation here.



Bone Selection Sets

RiggingEditingObjectDataPropertyCxtSelectionSetsPanel.png
  • The Selection Sets add-on, started during project Gooseberry, was finished and moved to the official add-ons category.
  • The add-on allows the definition of sets of bones for easy selection while animating.
  • The sets can be created in local and linked proxy armatures.
  • See the documentation here.



Object Boolean Tools

  • by Vitor Balbio (vitorbalbio) & Mikhail Rachinskiy (alm)
  • The add-on allows fast boolean operations.
  • A Toolkit to handle Boolean Operations for Hard Surface Modelling in Blender.
  • See the documentation here.
Booltools small.jpg



Carver

  • by pixivore, clarkx
  • The add-on allows fast Advanced boolean & cutting operations.
  • A Toolkit to handle some Operations for Hard Surface Modelling in Blender.
  • See the documentation here.
Carver wiki.jpg



Mesh Tiny Cad



3d Viewport Pie Menus

  • by meta-androcto
  • 17 pie menus to choose from.
  • Individual Activation for each menu.
  • Based on Pie menus from sebastian_k, pitiwazou, italic, saidenka, meta-androcto
  • Multiple Hotkey changes> Multiple activation's
  • See the documentation here.
Animation pies.jpg



Modifier Tools

Modifiers-Utils-example-1.jpg
  • by saidenka, meta-androcto, lijenstina
  • A small collection of utilities for managing Modifiers.
  • Features Apply/Delete All, Show/Hide Toggle & Expand/Collapse modifier stack.
  • See the documentation here.



Oscurart Tools

  • by Oscurart
  • A Studio Utilities Add-on.
  • This addon gives users an insight into the studio tools created by Oscurart for use in his professional works.
  • See the documentation here.



Materials Utils/Conversion

  • by Blender Add-ons Community
  • Materials Utils Shift/Q & Materials Specials menu updated, cycles/bi compatible
  • Convert BI Materials to Cycles & Convert imported model textures to Cycles.
  • Convert BI Texture types to image for use in Cycles, Sculpt Mode & Texture Painting.
  • See the documentation here.



Updated Add-ons

Example for Spirals - image by Tomislav Gložinić
  • 3D View Navigation:
    • Add User View Navigation. (Pan to your left or right.)
  • ANT Landscape:
    • Add xy offset positioning.
    • Add planet_noise by Farsthary
    • updated By Jimmy Hazevoet, original author from 2.4x
  • Dynamic Spacebar Menu:
    • Complete code rewrite.
    • One Button menu containing all 3d view menus & more.
    • Context sensitive menus where & when you need them.
  • Mesh Extra Objects:
    • Rounding off the add mesh series for:
    • Add Discombobulator
      • Basic greeble creation, This legacy add-on from 2.4x blender series is included.
    • Geodesic Domes
      • This extensive math based script, also has a deep base from 2.4x blender series.
    • Beam Builder
      • Simple beams, with some profiles to choose from, it's surprisingly multi purpose.
  • Node Wrangler:
    • Added a button to save the compositor viewer node to an image file. (A46ed2cd)
    • Place nodes created with the Add > Multiple Images function in the center (instead of far left). (25c00058)
    • Deleting unused nodes (Alt-X) will now also delete empty frames and muted nodes (press F6 to disable these). (1b7ddb3a)
    • Most functions did not work in a 2nd-level node group (group in a group) or deeper. This is now solved. (f6c8e8e2)
    • The Add Texture Setup function (Ctrl-T) now works for all node types, and on all selected nodes (not only active node). You can now also optionally disable the creation of the Texture Coordinate and Mapping nodes when performing the function on shaders, so that only the image texture is created. (8329c662)
    • The Viewer Node for materials now compensates for Film and Color Management exposure settings (to avoid showing misleading values). (9bb36cdc)
    • Improved viewer node for volume materials: If the viewer node is already connected to the material output (e.g. user plugged it into the volume output manually), no new connection is made. Previously it would always connect to the surface output, which made it difficult to work with volume materials. (8d8779af)
  • Object Cloud Gen:
    • Add Cycles Support, remove broken particles.
  • Official Pie Menus add-on:
    • Add hotkeys list in add-ons preferences, new Individual activation.
  • Sapling Tree Gen:
    • Complete rewrite. Updated UI & internal methods.
  • Add Curve Extra Objects:
    • Updates, code clean up & improved usability
  • POV-Ray exporter:
The Mini demo from Oyonale (Gilles Tran) tweaked in Blender 2.78 using its POV-Ray importer and exporter
    • Added:
      • Dupli objects (groups,particles,verts, faces for now)
      • More console feedback
      • Importer accessible from file menu or add menu, import povray primitives and mesh objects from several *.POV/*.INC files at once. confirmed to work with avogadro files and some other test scenes.
    • Fixed:
      • POV-Ray specific primitives so they can import from pov files as such
      • Some bugs in bitmap textures handling
      • Area_illumination syntax updated to fix bug in area lights
      • Several curves in one blender object can now export
      • Hair with no material slot can now export
      • Meshes with 0 vertices can now export
      • Export visible layer only is possible again
  • Collada
    • The Blender Collada Profile has been extended to support bone layers and proper placement of Bone tails:
Example Rig - Left: The Demo Rig, Middle: Imported back with Blender Profile, Right:Imported Back without Blender Profile (todo: The blender profile documentation needs to be updated to allow foreign exporter creators to make use of it.)
    • More Changes are:
      • Exporter:
        • Improved warning message when creating empty export file
        • Added support for transparency (used Patch D1949 from bwrsandman with some slight changes)
      • Importer:
        • Changed The Collada validator to treat faces with < 3 verts as Warning and let the Mesh Validator take care of the cleanup
        • Added warning for loops that define holes (polygons with holes not supported)


Individual Activation

  • Using Pie Menus as an example:
  • New Addons Preferences Individual Activation:
Individual activation.jpg
  • Addons that activate or change multiple hotkeys now have a new system of activation.
  • In this example for each menu there's a selection box to activate the menu & it's hotkey.
  • With Pie menus, First you activate the addon. This activates the Addons Preferences Submodule Activation
  • You need to expand the Addons Preferences, then you will see the list of Pie Menu types you can choose from.
  • From here you can individually activate the menus you like to use.
  • If the menu conflicts with another favorite, there's no need to activate it.
  • You can activate any combination & save as user settings so your activation are available next time you start Blender.
  • Addons Preferences are saved by using the "Save User Settings" button.
  • The "Save User Settings" button is found in the User Preferences window, Addons Tab.



New Protocols

  • Addons Preferences are viewed by activating an addon then pressing the direction button to the left [arrow] of it.
  • This expands the addons information and if the addon has configurable preference, they will be displayed here.
  • Using "Bool Tools" as an example:
Bool tool prefs.jpg
  • All addons that include panels in the Tools Shelf Tabs in Blender 2.78, now uses addons preferences.
  • (with the exception of add mesh/object scripts that sit well in the Create tab.)
  • In the Category or Change Tab Category Text Box you can now change which Tab the Addon's panels will appear in.



Special Thanks

  • Thanks to the frequenters of irc #blenderpython
  • Thanks to the external addons devs that help & support the dev of addons within Blender
  • Thanks also to the Blender devs that help support the addons project.


Very Special Thanks

  • To ideasman42 aka Campbell Barton.
    • Thank you for all the years of hard work, you have been an inspiration to us all.
    • Thanks