BIS (Blender Interplanety Storage) updated to v.1.8.2.
- Updated some nodes parameters according to Blender 2.81
When making your own custom operators, sometimes it is necessary to pass them certain values – execute operator with parameters.
The passed parameter must be defined as an operator property.
The BIS (Blender Interplanety Storage) library already has over 500 open public materials available for users.
Blender 3D add-on template generator
This script generates the initial template for the Blender add-ons development.
BIS (Blender Interplanety Storage) updated to v.1.8.1.
BIS (Blender Interplanety Storage) updated to v.1.8.0.
Code autocomplete greatly simplifies writing scripts or developing add-ons for Blender. One of the best autocomplete modules for today is developed by Nutti. Last updated 20190718.
The project is hosted on the author’s GitHub: https://github.com/nutti/fake-bpy-module
The modules are distributed via pip or as a pre-generated-modules. Author also provides a module generator with which you can assemble autocomplete modules yourself.
When we create a field on the add-on interface panel, the value of which changes something in the node tree, each time the user changes the field value the node tree recompiles. If the user changes the value in that field by holding and moving the mouse, too frequent node tree recompilation will cause Blender to hangs.
This problem can be solved using decorators for deferred updating of the node tree.
Code by Skarn.
Class for quick node creation by their type.
Code by Skarn.
def __init__( self
, node_tree : bpy.types.NodeTree
, x : float = -200
, y : float = -200
, delimeter : float = 300
self._x = x
self._y = y
self.tree = node_tree
self.delimeter = delimeter
for node in self.tree.nodes:
def add_node( self
, node_type : str
, node_name : str
, column : int
, row : int
, node_descr : str = ""
node = self.tree.nodes.new(node_type)
node.name = node_name
node.label = node_descr if node_descr else node_name
node.location = (self.delimeter * column + self._x, -self.delimeter * row + self._y)
This add-on for Blender 2.8 creates a grouping workflow using Blender 2.7 group style. Add-on doesn’t “brokes” the scene, so you can properly work with groups made with this add-on having no add-on installation.
By Michael Soluyanov.
Video with an add-on demonstration:
You can get this add-on at:
Blender Market: https://blendermarket.com/products/quick-instance
With the Blender popularity growing, the number of add-ons created for it by third-party developers is growing too. A lot of high-quality professional add-ons are written for Blender now. Over time, the number of add-ons is becoming more and more. And on this wave aggregators appeared – programs and services independently searching for add-ons and allowing Blender users to install add-ons quickly, many at once, and bypassing add-on distribution channels selected by their authors. What caused a negative reaction of add-on developers.
The BIS (Blender Interplanety Storage) library already has over 400 open public materials available for users.
BIS (Blender Interplanety Storage) updated to v.1.6.4.
Nutti, the author of the “fake-bpy-modules” project, has made the installation of the Blender Python API autocomplete modules through the pip platform. Pip installation is faster and easier, but sometimes we just need to copy the autocomplete modules to our project but now they are not included in the Nutti’s GitHub.
Copies of the autocomplete modules for Blender versions 2.79 and 2.80 can be downloaded directly from here: https://github.com/Korchy/blender_autocomplete
To get the vertex coordinates in the scene global coordinate system when the object’s scale was not applied, we need to multiply the local vertex coordinates by the object world transformation matrix:
object = bpy.data.objects['_MY_OBJECT_']
v_local = object.data.vertices[_VERT_NUMBER_].co # local vertex coordinate
v_global = object.matrix_world @ v_local # global vertex coordinates
Simple IF/ELSE node group from the BIS material library usage example.
When developing add-ons it is often necessary to give an ability to set a number of parameters that affect the whole add-on work to the user. For example, the user can specify a directory for saving/loading files, set some default variables or switch between add-on modes. Of course, the interface for setting such parameters can be placed in the add-on panel, but it is better to place it in a separate add-on preferences panel, which is located in the “Preferences” window under the add-on installation panel.
The main advantage of the add-on preferences is that they don’t reset when Blender restarts. The user does not need to configure the add-on preferences each time, it’s enough to set the necessary parameters once, personalizing the add-on for convenient work.
Let’s create an add-on and define a parameter, placing it in the add-on preferences panel.
The Advanced Transform add-on is ported for Blender 2.8.
No critical changes to the source code, only adopting for Blender 2.8.
Add-on on the GitHub:
file to download and use – advanced_transform_2_8.py