How to make multiple float property in python

Use a FloatVectorProperty and set its subtype to 'XYZ' or 'TRANSLATION'.

Currently other available subtypes of that property are: 'COLOR', 'DIRECTION', 'VELOCITY', 'ACCELERATION', 'MATRIX', 'EULER', 'QUATERNION', 'AXISANGLE', 'COLOR_GAMMA', 'LAYER'.

Ripped from: How to create a custom UI?

import bpy

from bpy.props import (FloatVectorProperty,
                       PointerProperty
                       )

from bpy.types import (Panel,
                       PropertyGroup
                       )

# ------------------------------------------------------------------------
#    Scene Properties
# ------------------------------------------------------------------------

class MyProperties(PropertyGroup):

    my_float_vector: FloatVectorProperty(
        name = "Float Vector Value",
        description="Something",
        default=(0.0, 0.0, 0.0),
        min= 0.0,
        max = 0.1,
        subtype = 'XYZ'
        # 'COLOR', 'TRANSLATION', 'DIRECTION', 'VELOCITY',
        # 'ACCELERATION', 'MATRIX', 'EULER', 'QUATERNION',
        # 'AXISANGLE', 'XYZ', 'COLOR_GAMMA', 'LAYER'
        )

# ------------------------------------------------------------------------
#    Panel in Object Mode
# ------------------------------------------------------------------------

class OBJECT_PT_CustomPanel(Panel):
    bl_idname = "object.custom_panel"
    bl_label = "My Panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Tools"
    bl_context = "objectmode"

    @classmethod
    def poll(self,context):
        return context.object is not None

    def draw(self, context):
        layout = self.layout
        scene = context.scene
        mytool = scene.my_tool

        layout.prop(mytool, "my_float_vector", text="")

# ------------------------------------------------------------------------
#    Registration
# ------------------------------------------------------------------------

classes = (
    MyProperties,
    OBJECT_PT_CustomPanel
)

def register():
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)

    bpy.types.Scene.my_tool = PointerProperty(type=MyProperties)

def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)
    del bpy.types.Scene.my_tool

if __name__ == "__main__":
    register()


How to avoid weird artifacts which only appear with ray-tracing enabled with Blender Render?

This is caused by z-fighting in overlaping surfaces. Remove double geometry to resolve it.


How to Export Cycles Rendered object for Three.js

The three.js exporter doesn't support Cycles nodes. You may want to try exporting to other formats that three.js supports. The best supported are currently FBX and glTF.


How to make hair particles (grass) bend on z axis

I'm not sure I understand the question completely, but I'll start with some possible solutions:

Hair Dynamics:

Using hair dynamics will simulate the strands with cloth physics,

Some examples with a wind force:
With hair dynamics:

Without hair dynamics:

If you really want to simulate it (Note, simulation probably takes longer and you can most likely do it satisfactorily other ways) you can use a Smoke simulation to get the airflow infromation and then use a Smoke Flow force to use it to effect the grass:

(The advantage to this is that you get all the complex little air currents caused by the cube as the air flows around it to effect the grass)

Texture Force field

I'm not sure what you mean by not bending (Is it not bending in the viewport? or only when rendered?)

Texture force with Dynamics:

And without:


How to project a texture on objects in an (fSpy-imported) scene?

I was able to solve the problem after projecting more objects in the scene. The UV coordinates are mapped correctly into the scene from the point of view of a flat surface (like the table top), but because of that not from the point of view of the camera. It does not have anything to do with coordinates being "off bounds".
Imagine a ladder lying on the floor. The rungs have equal distances, but seen "in perspective" the distance between two rungs is getting smaller the further away they are. This non-linearity in perspective causes the linear UV projection on the table top to stretch unintendedly for big faces.
The problem can be solved by having more UV vertex information, i.e. more vertices in the mesh. This way Blender will not stretch the image on a projected face linearly, but follow the non-linearity specified by the additional vertices. Technically this will still stretch the projected image linearly for each face (i.e. not as intended), but this won't be noticable, if the faces are small enough.


When inherit an object you will "merge" the attributes, properties, functions:

class Mine( types.KX_GameObject ):

    def __init__( self, old_owner):
        self.life = 100

def activate( controller ): # Called from Controller

    object = Mine( controller.owner )
    print(object.worldPosition) # [0,0,0] KX_GameObject.worldPosition
    print(object.life) # 100

While no inherit:

class Mine():

    def __init__( self):
        self.life = 100

def activate( controller ): # Called from Controller

    object = Mine()
    print(object.worldPosition) # ERROR
    print(object.life) # 100

About, is this something Python can do for me which I'm not aware of? PY classes class-objects


How to take away shadows where I don't want them?

You can turn the wall into a shadow catcher by looking at the Cycles Settings in the Object Panel.

In this case, select the wall object and enable Shadow Catcher. You might have to adjust the diffuse color of the wall to white in order to make the wall completely transparent.


Weird erratic mesh color(Normals aren't the problem)

Normals seem to be the problem.

Go to the Geometry Data section and press on Clear Split Normals.


How can I manipulate several hair strands instead of the whole hair?

If you want to use different kink settings for the hair then you need several Particle Settings. The settings always affect all strands made with a particular setting. So the trick is to use several settings and assign them to different areas.
In Weight Paint mode you can define Vertex Groups. (Use the + button to create a new group.) The in the Particle Settings you can assign these groups. The Density group restricts the area for the hair strands.
In the following example, there are two weight painted groups "Curl" and "Radial", and there are two hair particle settings (2 slots). The groups are assigned to the respective particle settings. The areas can even overlap if you want.


Shape keys: Reset part of the model or only use specific faces possible?

Enter edit mode through the broken shape key, select vertecies that you do not want to affect your basic mesh and then press 'space' and search "Blend from shape" press 'enter
Then press T and on the left you should see options down at the bottom
1-select basis (your basic shape key)
2- Blend 1
3 Turn off Add


Passing arguments to Blender Script from PyQt

Your mistake is a simple python error.

blender_import_export.importExport("+self.sourceFile,self.destinationPath+");"

if you look closely, you will see that that will output blender_import_export.importExport(D:/Blender/test.dxf) as shown in the error output. The issue is there are no quotes surrounding the file path, which should be a string, to fix, simply change:

blender_import_export.importExport("+self.sourceFile,self.destinationPath+");"

to

blender_import_export.importExport(\""+self.sourceFile,self.destinationPath+"\");"


Register Object inside of Another Object

Ahhhh! It seems I had to remove Default value from CollectionProperty. It was my mistake. Here is working code:

class MR_CurvePoint(bpy.types.PropertyGroup):
    y = BoolProperty(
        name="y",
        description="y...",
        default=False
    )

class MR_CurveObject(bpy.types.PropertyGroup):
    x = CollectionProperty(
        name="x",
        description="x...",
        type = MR_CurvePoint,
    )

...

def register():
    bpy.types.Scene.my_curve_object = CollectionProperty(
        name="Mira Tool Variables",
        type=MR_CurveObject,
        description="Mira Curve"
    )


How to move object in its local transform orientation in Animation nodes?

I think you can make use of Matrix nodes:

Note that the order to combine Translation and Rotation matrix data is the key here.


How to get rid of the jitter of softbofy rubber band

Slingshot - (Note, this was done in vers 2.77a.  It should work in 2.81)

See Blend file below

The difference between this and the longbow -

Is there a better way to make paths? Working on a string for longbow

... is the way the rubber is anchored to the yoke (Y piece) and the projectile holder/pouch.

The rubbers are made up of two straight curves instead of just the one to give it a sharper angle at the apex/stone holder but as it turns out, one piece (curve) would probably do it. (See layer 6)

3 hooks are added to control the rubbers' shape & stretch.  One at each of the yoke ends and the 3rd shared between the two ends that come together at the apex. (projectile end)

The hooks at the yoke are parented to it and this effectively anchors the rubbers' ends to the yoke.

Similarly, the shared hook at the apex, anchors both rubbers together.  When the hook is drawn back the rubbers' apex is drawn back with it.

When it's 'released' (animated)  it's this hook that's animated to emulate the retraction and the subsequent launch action, plus the oscillations that follow.

A circle "Nav Empty" is what 'bolts' (parents) the whole thing together and localises the hooks and separate parts.  The Nav-Empty can be angled, rotated and moved about the scene and everything will come with it, including the projectile. ( before it's launched)

The stone or projectile uses a 'Child-of' constraint, the parent being the holder or pouch.  This will force the stone to follow the pouch and rubbers as they retract to the most forward location, whereupon  the constraint's influence is switched to zero between two adjacent frames.  This frees up the projectile, allowing it to be animated freely along it's trajectory.

Physics was experimented with here but it introduced complications that frankly, cancelled out any perceived advantage.

The projectile holder or pouch is another (separate) bevelled curve that's expanded to be larger than the rubber and that's also parented to the rubber's apex hook.  A thinned down cube shaped as a piece of leather would look better.

The holder is forced to follow the apex hook but after the launch frame, some rotoscoping (frame by frame alignment and keyframing, using it's own hooks) was deemed the best way to keep it aligned.  There's only a few frames involved.

-=================-

Info -

An interesting observation here is that once a curve's intermediate or inner control points are removed so there are only two remaining, one at each end, then replaced, they lose the ability to curve gently or biologically as before.  Deforming their shape after that, ends up with 'vectored curves' that are much sharper.

This proves ideal for anchoring the rubbers to the yokes.  A control point at the yoke end and inside the yoke's mesh, plus one just outside, provides a solid anchor for the rubbers.

Both rubbers were therefore stripped of their inner or intermediate control points.

The single segment remaining within each is subdivided once so we end up with 3 control points in each rubber, one at each end, and one that can be slid along their length near the yoke end. This acts as a corner guide which is animated to ensure the rubbers don't penetrate the yoke, but sit snugly at the surface at the yoke's corner edges.  This is particularly useful when oscillating the apex hook after the launch.


Blender 2.8 curve guide forcefield and torus knot

I eventually found why it wasn't working as expected. In the object data panel, the Path animation must be ticked for the curve guide to work. It is ticked by default for Bézier curve but not for torus knots.


What are the strange arrow things in the shader node tree?

Since Reroute nodes don't have any input or output sockets, they are essentially just one floating isolated socket it is impossible to clearly determine at first sight if one connection is coming in or out of said node.

For this reason, to make it clearer to the user, output connections show an arrow pointing in the information flow direction.


It looks like there is a small lip to the edge of the eyelid that your retopo is skipping through.  You are probably fine to just continue, retopo is generally for skipping detail like that.  If you want, you could capture that detail with a baked normal map.

If you are intent on modeling the small detail, I would add an edge loop in edit mode (ctrl+r)


Keyframes for animation, and if you want something like a ball realistically falling, then that's when you use physics. Physics isn't used often, and is much more complicated than animation. I would suggest sticking to animation for now, and going into physics when you are more comfortable with it. Watch some tutorials on Youtube to help you.
Hope this helped.


How to import texture maps from Poser to Blender?

Some time ago the "blender3dclub" started a Poser prop/character importer module for Blender 2.6x. I dusted that project off and ported it to Blender 2.8x, and started making some improvements. It now loads props (PP2/PPZ) and (CR2/CRZ) files and supports morphs (a.k.a. shape keys) for both props and characters, and loads the armature for characters. It currently doesn't automatically add the armature modifier.
Materials and textures, unfortunately for your question, don't work very well at this point. The plugin is still very much a work-in-progress.


how to put a tracked model behind a person

It is possible, since blender has fully featured masking capabilities.
Here is a simple setup to show you how it works:

If you were able to shoot against a green screen, use this setup instead:

Note: If you need to feather a certain point on you mask, you can hit Alt-S. If you need to feather the whole mask, add a color ramp node after the mask node, you can then tweak the feathering.


Creating correct proportions for Minecraft projects

I think this is more of a 2D/drawing question so I'll keep my answer very light.

It’s all in the references. You need to find a front view and a side view that are as close to actual size as possible. In other words they have to look similar to blueprints. Then you just need to measure, like with Gimp, and see the ratios. If the vertical is 10 and the horizontal 7 from the front view and 10 and, say, 5 in depth from the side, then you obviously have a 7 to 5 ratio from top view. As a note, if the objects are at different relative sizes, you can scale one of the images until the verticals coincide. It can be done by numbers too, but I don’t think is necessary to explain.

So ideally is to make the images yourself and get the desired angles. Proportions can be extracted from a  ¾ quarter view too, but, again, I don’t think this is a Blender topic, rather a drawing one.


In terms of quality I suggest you to model in quads. The simplest reason is:

  The flexibility to soften and sharpen edges is key to build high quality
  models.

Example geometry with a soft edge on the left side and more sharp edge on the right

The best way to achieve this, is to build consistent topology to be fast in selecting  Alt+Shift+RMB and creating edge loops Ctrl+R, which depends on quads.

Create edge loop issue

For the picture of your question, I assume that automatic algorithms (e.g. bevel modifiers) have been applied to improve the edges. A side effect of such algorithms is that unwanted edges appear (triangles at the corners), but I can't really see if there is a reason for this.

  For sure there are exceptions to use triangles.

In terms of speed artists often use modifiers on simple geometry to build complex shapes - side effect can be a geometry of triangles. For the crumpled paper I could also imagine that here some kind of modifier on a icosphere was used.

But it really depends on what do you want to achieve.


What is a shading unit and a texture mapping unit in a GPU ? and how does it affect blender?

These statistics do not impact blender directly. You can have thousands of nodes and shaders and terrabytes of textures if you want and if your PC can handle it.

This is where these components come back into play. The better a GPU is the better it can handle those things. Your GPU can't hold terrabytes of textures, and you're probably going to kill your rendertimes with a nodes setup thousands of nodes deep.

The units mentioned here are directly related to the architecture of the card. A texture mapping unit for example is what's actually doing the caculations for UV unwrapping. Having less of them doesn't change the size of your possible UV map, it just means it takes longer to calculate the unwrapping.


Make texture painting not depend on view angle

Perhaps try turning off Occlude in the Options panel in the tool settings


How to get normal/displacement/ao maps for a part of a photo

This shouldn't bother you much, since you probably have the original cut image, with all the removed parts transparent (?)

In that case you can use the alpha to either make a mask / selection and remove the useless bits from the generated maps in photoshop / gimp,

Or you can use the alpha from the cut color map in color mix nodes in the node editor. Either way it won't have any effect.


How do I animate a cube turning into a sphere when it is moved through a plane.

Parent cube and sphere to an empty. Put two additional cubes below and above the sphere. Use the upper one as a boolean to eat the cube, use the lower one to eat the sphere. Use the empty to animate them.

Here's the setting in one picture: The Empty moves cube and sphere up or down, 'cubekiller' and 'spherekiller' are simple cubes who touch each other. You can put them on a disabled layer or disable rendering in the Outliner.

The modifier settings are straightforward

And the result:


Selection not centered on selected object

Most likely you moved the geometry while in Edit mode, leaving the origin behind. Use the Origin option in the toolshelf (T) and ‘set origin to geometry’ to move it automatically back to the geometry.


Attach flat mesh (or curve) to another mesh

You could use a displacement modifier with the image texture.

Some examples of this are: Extrude the outside of a cylinder using a grayscale image, Creating a large landscape with accurately varied elevations and Landscape topography from grayscale image,

Given that you want to avoid changing the inside shape of the bottle, this might be useful, because it describes how only one side of the solid can be influenced: How to make a perfectly flat bottom for 3D-printing topographic relief?


How to quickly remove all zero-weight vertex groups?

This python snippet should work if you paste it into a Text Editor's new buffer and click Run Script.

import bpy

def survey(obj):
    maxWeight = {}
    for i in obj.vertex_groups:
        maxWeight[i.index] = 0

    for v in obj.data.vertices:
        for g in v.groups:
            gn = g.group
            w = obj.vertex_groups[g.group].weight(v.index)
            if (maxWeight.get(gn) is None or w>maxWeight[gn]):
                maxWeight[gn] = w
    return maxWeight

obj = bpy.context.active_object
maxWeight = survey(obj)
# fix bug pointed out by user2859
ka = []
ka.extend(maxWeight.keys())
ka.sort(key=lambda gn: -gn)
print (ka)
for gn in ka:
    if maxWeight[gn]<=0:
        print ("delete %d"%gn)
        obj.vertex_groups.remove(obj.vertex_groups[gn]) # actually remove the group


Sculpt Mode – Turn off zoom on Option/Alt pen click?

Blender > User Preferences > Auto Perspective (uncheck). Cheers


Lightmap overlapping error when importing to UE4

It looks like you have overlapping areas in the packed UV map. You can see these long diagonal streaks going in your layouts that intersect other UV faces. But it's hard to tell what's going on there without seeing the .blend.

One pointer is if you use N-gons in modeling make sure to convert them to quads and tris before using pack in UV editor because it seems to often screw the N-gons. You can find N-gons be selecting a quad face and finding faces with more polygon sides with SHIFT+G. You can triangulate them with CTRL+T and join back to quads what you can with ALT+J.

Smart UV project (also includes packing algorithm that seems to work) handles them fine, as well as unwrap and I guess it won't be long until pack itself will be fixed to handle them properly. I recommend just using the smart UV project (if you don't want to manually unwrap with seams that yields best results) to pack all of the object at once and generally making your levels out of smaller rather than larger sets of geometry.

Also please use margin around your islands. When the lightmaps are baked if you have light and dark areas very close to each other in the map they are going to bleed into eachothers areas as the map is sampled.


For your first step you don't need to use python, create a base and save it, then you can use that file as a starting point for each new object you create.

The simplest way to create a mesh object using python would be to define a list of vertices and faces that make up the mesh.

import bpy

verts = [(-1,  1,   0),
         ( 1,  1,   0),
         ( 2, -3,   0),
         (-2, -1,   0),
         (-1,  1.5, 1),
         ( 1,  1.5, 1),
        ]

# faces are a list of indices to each vertex from the above list
faces = [[0, 1, 2, 3], [0, 1, 5, 4]]

mesh = bpy.data.meshes.new(name="New Mesh")
mesh.from_pydata(verts, [], faces)
obj = bpy.data.objects.new('New object', mesh)
bpy.context.scene.objects.link(obj)

You might want to get familiar with the bmesh module which is used to perform most of the modelling tasks we do on mesh objects. The linked page contains an example of creating and editing a mesh.

As you don't know python very well yet I would suggest first trying out the sverchok addon. It uses nodes to generate mesh objects. The links on sverchoks home page are getting old so you may want to start with this playlist to get an idea of what you can do.


There are two problems with your meshes that is preventing the boolean from working properly.

The normals are reversed on the lower object in relation to how they are set for the upper object. This is what is causing the object to disappear after the boolean. Reverse the normals on the lower object by going into Edit Mode for that object and pressing Shift + n to reverse them.
Each of your objects has edges and faces pinched in certain areas to the point that they are crossing through one another. This also must be changed, or else the boolean will register as successful, but won't actually combine your shapes into one. I fixed the situation by using a smooth modifier on each. But it wasn't quite enough to completely straighten out the faces, so I lightly added a few short strokes in Sclupt Mode with the smooth brush, and all was good.

The included file shows both what the new version of these shapes look like after being tweaked but before being boolean unioned, as well as what they look like after the boolean.


Slow Viewport Rendering: Bad Settings or Underequipped CPU?

Cloth Simulation can be pretty heavy. The normal usage is to cache your cloth simulation first, then render using the cached data.

Once you have your cloth sim cached to disc, it doesn't take any extra time to render each frame. But caching/baking the simulation can still take a while so it's important to use settings that fit your system and needs.

All the rendering settings won't have any real impact on the time calculating the cloth simulation takes. That time it takes depends heavily on the mesh complexity and your cloth quality settings.

The first step you should take is to use as simple a mesh as possible. You can add an additional subdivision modifier AFTER your cloth simulation to make the mesh smoother, while not adding tons of extra detail to your simulation.

Start with a very simple mesh and low quality settings on the simulation. Try to make the result look better with modifiers applied after the simulation before you increase subdivisions or quality settings that are part of the simulation.


I studied your file and I see there are quite some edits you have made on the metarig. Just for comparison, here's your metarig:

And here's my version, where I only added the Cat metarig (edit note: you used the wolf rig, a little different in the names but that's not a big deal) and moved its bones around to fit your model:

(Note I hid the facial & fingers bones for readability).

See the bones spine.004 and spine.003.
Their heads are in the same position in the raw metarig and in mine, but not in yours. If I separate them in my rig, then I get the same errors you get.
That's one of the things you must pay attention to: when two bones have their heads or tails aligned, you have to preserve that.

In edit mode it's easy, just select both spheres in one shot using a multiselect tool like the circle select. To correct it, you can use vertex snapping (but hide your mesh then) or cursor snapping with ⇧ ShiftS (select one part → ⇧ ShiftS → Cursor to selected, then select the second part → ⇧ ShiftS → Selected to Cursor).

Fix the tail this way and it should work fine.
It works perfectly on my side with your scene so there should be no problem here.

If you need extra edits, then I recommend you to thoroughly study Rigify's manual. It's too long to explain here but the manual does a great job at explaining how to use this addon and also gives tips on how to do things more easy for you and more accurately.

Oh, and... Please correct your bones placement x)

Good luck!


How to deal with changing focus when 3d tracking

If your error average is indeed 0.3 you have a decent track.

Now, to your question:

Currently blender can only work with footage with a that has no variations in focal length or zoom changes.

Changes in focus distance, as in when using a fixed focal length there is a focus rack,  might present problems as well. Depending on the lens, there might be some distortion called "breathing" (see this link for an example). When a lens "breaths" it means that there is indeed a change in the angle of coverage of the image when the lens is focusing to a close distance or to infinity.

Breathing is common in wide angle lenses and in zoom lenses that are not designed for motion pictures.

If the angle of coverage of the lens changes, blender cannot currently compensate for it.


The best I think you can do is press Shift+E then -,1.

The reason for this is that creasing does an offset from the current crease value. Pressing -1 offsets from the maximum crease value an edge could have, which is '1', to '0'.


Filmic is only for rendering. It how the colours are saved to the rendered image. You should look into HDR rendering in Unity to get something similar.


What are the implications of a very large scene (scale-wise, relative to the default cube)?

One important implication that's not immediately obvious is that Blender's light objects won't scale properly with the rest of the scene.  As the objects in your scene get bigger the lights will look dimmer and sharper.

Before scaling

After scaling

One way around this is to use the unit scale feature in the scene tab instead of scaling the objects manually.

Also note that unlike the blender lights, objects with emission materials have no issues scaling.


Why are my particle settings grayed out?

I just found the solution for it: It is greyed out when it was baked. Go to the "cache" section in the particle system and click on "free bake" to be able to edit the greyed out settings again.


You should set up output node to All (or cycles),  it will not be used in Cycles without this setting


How can I make a running text strip at the bottom of my video, please help

I think the easiest way would be to do the animation manually if you don't have too much text. just specify a keyframe with the position of your text outside of the camera output, then move that as you need and specify that with a new keyframe.

And i recorded a video how to do it https://youtu.be/PE0jZ1-nzlQ


How to import parametric objects from a x3d file

The problem seems to be the way the x3d is formed. This for instance does work

<X3D>
<Scene>
 <Transform rotation="0.40 0.20 -1.00 1.025000"
   translation="2.999375 1.024990 1.000000"
   scale="1 1 1">
      <Shape>
        <Cylinder height='1.8' radius="0.200" top="true"/>
        <Appearance>
          <Material diffuseColor='0 1 1'/>
        </Appearance>
      </Shape>
    </Transform>
</Scene>

</X3D>

from your comment on the removed post:

  The problem is that I have tons of these cylinders (I am trying to visualize a 3d polyline), so writing all of them to meshes creates a very large file.

Blender has an Object type called 'Curve', which can be given a thickness and therefore be renderable. Curves can behave like polylines, with straight segments. If your intention is to render a polyline, instead of letting the x3d importer convert primitive-commands into mesh based primitives, you might devise a way to import a sequence of edges as a Path Curve and set its bevel thickness instead.

For example:

import bpy
from mathutils import Vector

# weight
w = 1

# we don't have to use the Vector() notation.
listOfVectors = [(0,0,0),(1,0,0),(2,0,0),(2,3,0),(0,2,1)]

def MakePolyLine(objname, curvename, cList):
    curvedata = bpy.data.curves.new(name=curvename, type='CURVE')
    curvedata.dimensions = '3D'
    curvedata.bevel_depth = 0.3
    curvedata.bevel_resolution = 4
    curvedata.fill_mode = 'FULL'

    object = bpy.data.objects.new(objname, curvedata)
    object.location = (0,0,0) #object origin
    bpy.context.scene.objects.link(object)

    polyline = curvedata.splines.new('NURBS')
    polyline.points.add(len(cList)-1)
    for num in range(len(cList)):
        polyline.points[num].co = (cList[num])+(w,)

    polyline.order_u = len(polyline.points)-1
    polyline.use_endpoint_u = True
    polyline.order_u = 2

MakePolyLine("NameOfMyCurveObject", "NameOfMyCurve", listOfVectors)

Now, this creates one polyline, but it can easily be called again and again to make different sections if they need alternating colours.


Strange results when using the Cycles renderer

It looks like you enabled the Displacement and Bump setting, but unfortunately forgot to include a Displacement node before the Material Output.

When you connect a color directly it's interpreted as Vector Displacement which largely translates your mesh.


Very odd geometry when using solidify modifier

Ok, so I looked at your model and everything seems to be plain wrong:

you add triangulate modifier at the end of the modifier stack, that does literally nothing to help the situation - order of execution is important
topology is just wrong - overlapping vertex and faces

two solidify modifiers, two boolean modifiers (one unused)
ngons that just can't solidify properly
also boxes inside that cut have inverted normals (that doesn't affect the solidifiy modifier, but just so you know)

This is how your topoly looks like with your modifier stack:

One important note: solidify modifier after boolean is very likely to give you weird results.

You need to learn how to model simple shapes like this without booleans, I'm guessing it would take you less time than you spent trying to fix this solidify result.

You generally took the right path: simple shapes, then add (but not apply!) modifiers (like solidify, bevel, subsurface etc.) is a good way to model things like that - it really helps with quick modeling and further editing. But you must start off with clean topology.


Is there a custom character creator addon in Blender?

In addition to the already mentioned MakeHuman (which actually started as a Blender Add-on but is now a standalone application) there is also Manuel Bastioni Lab.

It is a Blender Addon that allows parameter driven custom character creator directly inside the Blender viewport, in a similar vein to MakeHuman.

It can create realistic human figures as well as fantasy or anime themed characters.


Problem with matrix_parent_inverse of childs of bones

Thanks to mont29's hint I have found a solution:
A bone seems to have two representations:

bpy.context.active_pose_bone.matrix_basis
<armature>.data.bones[x].matrix_local

Dependant on the context (pose mode/object mode) one sees the one or the other. There is a rotation by pi/2 around the x-axis and an offset of 1 in the z-axis between them. Here is the sample code from above again, the correction to make the second matrix equal to the first is added at the end.

import bpy
import mathutils
import math

#------------------------------------------------------
# Make a parent hierarchy
# cube -> cone -> cylinder
# "->" means "is child of"
#------------------------------------------------------

# Delete the scene:
bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

# Create a cylinder at location (2, 3, 4):
bpy.ops.mesh.primitive_cylinder_add(location=(2, 3, 4))

# Create a cone and make it the cylinder's child at the same position:
bpy.ops.mesh.primitive_cone_add(location=(2, 3, 4))
bpy.context.scene.objects.active = bpy.data.objects["Cylinder"]
bpy.ops.object.parent_set(type='OBJECT')

# Create a cube at (0, 0, 0) and make it the cone's child:
bpy.ops.mesh.primitive_cube_add(location=(0, 0, 0))
bpy.context.scene.objects.active = bpy.data.objects["Cone"]
bpy.ops.object.parent_set(type='OBJECT')

# Print the cube's parent inverse matrix:
cmpi=bpy.data.objects["Cube"].matrix_parent_inverse
print("cmpi:")
print(cmpi)

#------------------------------------------------------
# Make a parent hierarchy
# cube -> bone -> armature
# "->" means "is child of"
#------------------------------------------------------

# Delete the scene:
bpy.ops.object.mode_set(mode='OBJECT')
bpy.ops.object.select_all(action='SELECT')
bpy.ops.object.delete()

# Create an armature at (2, 3, 4), a bone is created automatically as child:
bpy.ops.object.armature_add(location=(2, 3, 4))

# Create a cube at (0, 0, 0) and make it the bone's child:
bpy.ops.mesh.primitive_cube_add(location=(0, 0, 0))
bpy.context.scene.objects.active = bpy.data.objects["Armature"]
bpy.ops.object.mode_set(mode='POSE')
bpy.ops.object.parent_set(type='BONE')

# Print the cube's parent inverse matrix:
mpi=bpy.data.objects["Cube"].matrix_parent_inverse
print("mpi:")
print(mpi)

#------------------------------------------------------
# The correction to make the second matrix equal to
# the first
#------------------------------------------------------

ri=mathutils.Matrix.Rotation(math.pi/2, 4, 'X').inverted()
ti=mathutils.Matrix.Translation(mathutils.Vector((0,0,1))).inverted()
mpii=mpi.inverted()
mpiiriti=mpii*ri*ti
mpiiritii=mpiiriti.inverted()
print("mpiiritii:")
print(mpiiritii)

# Output (some formatting added by hand):
#
# cmpi:
# <Matrix 4x4 ( 1.0000,  0.0000,  0.0000, -2.0000)
#             ( 0.0000,  1.0000,  0.0000, -3.0000)
#             ( 0.0000,  0.0000,  1.0000, -4.0000)
#             ( 0.0000,  0.0000,  0.0000,  1.0000)>
# mpi:
# <Matrix 4x4 ( 1.0000,  0.0000,  0.0000, -2.0000)
#             ( 0.0000,  0.0000,  1.0000, -5.0000)
#             ( 0.0000, -1.0000,  0.0000,  3.0000)
#             ( 0.0000,  0.0000,  0.0000,  1.0000)>
# mpiiritii:
# <Matrix 4x4 ( 1.0000, -0.0000,  0.0000, -2.0000)
#             (-0.0000,  1.0000,  0.0000, -3.0000)
#             ( 0.0000, -0.0000,  1.0000, -4.0000)
#             (-0.0000,  0.0000, -0.0000,  1.0000)>


How to attach the rigged wheels to the car body and make them move left and right?

Make an empty at the end of Bone.002 and make it the child of Bone. Put Inverse Kinematics constraint on Bone.002 and choose the Empty as a target.
https://drive.google.com/open?id=1xxB8mxmHnnE0CvzsjuIFUC7xsNWNQ-v2


Part of my sphere disappears when in BGE

Only switch of backface culling when you need to see both sides of the face at the same time and both sides should have the same material (it doubles the faces!). Use cases: glass, leaves, paper, curtain

In your case you ALWAYS want to see the inner side of the half-dome. This means you model is incorrect as you can see the outside only. To change that go into edit mode and flip the normals w.


How do I get rigidbody physics + constraints to interact with a mesh animated with an armature?

Got an answer over discord but I figured I'd post it here to help anyone who finds this in the future.

Connect the "stick" to the armature using object constraints instead of the armature modifier.


How can I move tracking markers along the timeline?

Tracking points are uniquely associated to the clip and to every frame.
The tracking points in the graphs and dopesheet are just for information and to visualize possible errors, and are thus not editable.
By offsetting, you are altering the relationship between the tracked elements and the actual content of the image.
The usual workflow for vfx shots is that they rendered separately and integrated to the edit later.
If you are only dealing with masks, render the masks as black and white images, and import them to the video editing app and use them for keying and further compositing.


Is it possible to subdivide a surface without increasing the number of visible polygons?

it is possilble with the usual subdivision surface modifier, you just have to change it from „catmull clark“ to „simple“ then it is not going to be smoother but the resolution of the model is going to rise in a way that it stays in his original shape.


When using Dyntopo, is there a way to adjust how far each vertex is pushed or pulled?

You can press Shift+F to adjust the strength of the brush you are currently using.

You can also adjust the detail size with Shift+D
(This will display as a percentage or as a pixel count depending on the detail type being used.) The manual has an  explanation of each one.

Changing the radius of the brush with F as needed is also useful.


How do I add a bump map to a texture I made in blender?

CYCLES
In Node Editor Add two color textures (Image Texture nodes), set one as Color and the other as Non-Color Data. Connect the second one to the Height input of the Bump node (set the Strenght as you like). Plug it then to the Normal input of your Diffuse node.

BLENDER INTERNAL RENDER
Add two identical textures to separate texture slots. Call the second one BUMP. Under Influence uncheck Color checkbox. Check the Normal (set its value) and RGB to Intensity checkboxes.


How can I have multiple areas open but only add a panel to one of them with Python?

Use the poll method

Test script, using Text Editor > Templates > Python > UI Panel Simple and adding a poll method such that only the largest PROPERTIES type area in the screen areas polls
class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    @classmethod
    def poll(cls, context):
        areas = sorted(
            (a for a in context.screen.areas if a.type == 'PROPERTIES'),
             key=lambda a: a.width * a.height)

        return areas and context.area == areas[-1]

other methods to consider would be looking for the lowest index type area in the screen collection.  As a rule of thumb when enumerating the screen areas collection, recently split off areas are added last.
>>> for i, a in enumerate(C.screen.areas):
...     i, a.type
...
(0, 'PROPERTIES')
(1, 'CONSOLE')
(2, 'OUTLINER')
(3, 'PROPERTIES')
(4, 'TEXT_EDITOR')

>>> C.screen.areas[:].index(C.area)
1

A property can be saved on the screen object.  Using a group property that keeps track of area index and type is another method I've used in the past to attach a draw callback to only one instance of an area in a screen.
>>> bpy.types.Screen.my_panel_area_index = bpy.props.IntProperty()
>>> C.screen.my_panel_area_index
0


render on a transparent background (volume is almost invisible)

The problem was solved through the composer.
I found the answer in one of the old posts of one of the participants Gez.
In discussion: Transparent Image different in viewport than render

Another pretty good solution, namely the “Attempt 1”. Thanks to the user jozxyqk
https://blender.stackexchange.com/a/32964/63657


How do I get out of a Blender 2.77a Windows 10 infinite loop after setting a .jar default app setting by mistake?

I just found a tutorial on getting into hidden files on Windows 10, like Appdata. From there I just manually deleted all the plugins and reinstalled Blender. It works now.


Modular UV unwrapping and texturing curved areas

Weeell, this isn't my place of expertise, but it'd suggest minding where you place your seams.

and yes, Separating the mesh into bits is also not entirely out of the question

From the looks of things you need to find some way to move the texture about. I suggest finding Darrin Lyle's UV mapping Tutorials on YouTube, they're invaluable for stuff like this. it looks cool too, lemme know when you've gotten around this.


Create slanted end at a pipe / cylinder by Rotation

Use the Shear Transform.

Press Ctrl + Shift + Alt + S, then Y to set the axis.


Rig Deformation: Mesh Deforms Badly When In Pose Mode - When No Pose Changes Have Been Made

It's because of the bone called DEF-chin.R (here in Rest Position):

you'll be able to see it if you enable its visibility in the armature layers:

You've given it a Damped Track and a Track To constraint with the bone called lips.R as Target, so as soon as you switch your armature to Pose Position it will point towards it:

When you parent a mesh it takes the armature Rest Position into account, and not its Pose Position, so when your armature switch to Pose Position, the bone will automatically move or rotate towards its target.
So you need to make sure that the position of this bone in Edit mode (i.e. their position in Rest Position) is the same position and rotation as in Pose mode, and reparent.
In Pose mode you can go in the header menu > Pose > Apply > Apply Pose as Rest Pose. Make sure to duplicate your armature first so you can come back to a previous version.


fence mesh duplicates along mountain plane

You can use Animation Node to create a spline that follow the surface of the terrain and then deform the mesh on it just as you described.

First, create a curve that define the path of the wall, sample some points on it, ray cast them on the terrain, create a new spline from those projected points:

The same applies for the any spline, a circle for instance:


Set the tips as a vertex group and apply a particle system which would be the leaf ball. tweak the randomness to make something that seems natural.


You can use their .jar file https://www.sheepit-renderfarm.com/media/applet/client-latest.php and use your local java, it will work on 32bits.
The .exe is simply a java virtual machine and this file put together.


How do I make an object move along a path in either direction?

It all depends on what kind of garage door you are talking about.

You can start with a single plank or slat.

Then add an array modifier to replicate it on the Z axis.

Add a curve with the path you want the door to follow (it's important that the door and the path have their origins on the same place):

On the original plank add a curve modifier and select the curve as guide object:

Move the door up and down on the Z axis, and it will curve following the path.

If you are dealing with a rigid door. Then instead of the curve modifier add a Follow Path constraint. And select the curve as target. Enable "Follow Path",  Set "Up" to Y and "Forward" to -Z

Then animate the offset value:


Mirror modifier using global axis instead of local

As lemon explains, the Mirror modifier use the object local axis, not the global. So to get what you want do not rotate your object in Edit mode, rotate in Object mode:


Here is a very basic example of what you're trying to achieve:

A control file holds some data in the format
Frame-no obj_name,value of 'Key 1'
I have only created 2 shape keys (basic and 'Key 1') to test the script.

1 Finger1,1
1 Finger2,1
1 Finger3,1
1 Finger4,1
10 Finger1,.5
20 Finger2,.5
30 Finger3,.5
40 Finger4,.5
50 Finger1,1

The python script reads the control file and adds keyframes for each line

import bpy

filename='C:\\dev\\finger_shape.txt'

for line in open(filename):
    line=line.rstrip("\n")
    # Only append lines that have space in them.
    if line.find(" ") != -1 and line.find("#") == -1:
        # Split non comment lines of the format: Frame-no obj_name:value of 'Key 1'
        frame,obj_key= line.split(" ")
        obj,value=obj_key.split(",")
        bpy.context.scene.frame_set( int( frame ))
        bpy.context.scene.objects.active = bpy.data.objects[ obj ]
        bpy.context.object.data.shape_keys.key_blocks['Key 1'].value = float(value)
        bpy.context.object.data.shape_keys.key_blocks['Key 1'].keyframe_insert('value')

Result:

Regarding you comments on automatise the rendering you might find these posts interesting:

Is there a way to batch render multiple scenes?
Blender rendering automation (build script)

Parsing XML is not blender related but you should find examaples on SO:

https://stackoverflow.com/questions/1912434/how-do-i-parse-xml-in-python


How to find anything by query in blender (not F3)

new feature in 2.91 Display Filter or Property Search allows you to ctrl+f to find things and alt+f to clear search field
link


Searching For Text Objects By Their Content

Simple script

Here is a simple little bare bones script to select only text objects, and only text objects that contain the string as defined by

string = "Find this in text bodies"

Copy and paste this in text editor, edit string and hit run script.

import bpy

string = "Text"

context = bpy.context
scene = context.scene

def text_in_body(o, s):
    if o.type != 'FONT':
        return False
    return s in o.data.body

for o in scene.objects:
    o.select_set(text_in_body(o, string))

If using 2.7x or before change last line to

    o.select = text_in_body(o, string)


Wrong Size and Position After Importing in Cities Skylines

To fix that with Blender v2.77 is necessary to check the "EXPERIMENTAL Apply transform" option.


How do I change the bone layer with a script?

bone.layers is an array of 32 boolean values tells you whether the bone is present on each of the 32 layers.

So you could add the line:  bone.layer[8] = True

for bone in bpy.context.active_object.pose.bones[:]:
    if bone.name in ListOfBoneNames:
        bone.layer[8] = True  #put that bone into bone layer 8
        #could also remove the bone from other layers if you wanted!


VSE playback frame rate drops down with effects

The Preview Frame Rate of a project in the Video Sequence Editor depends on many things:

Speed of your CPU.
Amount/speed of RAM available.
Size of the original image vs that of the project.
Compression scheme (codec) and bitrate of the file.
Speed of the hard drives.
Complexity of the effects applied.
Number of simultaneous streams.
Size of the preview screen.

The first time you play the timeline, blender will decode the original frames form your file, compute whatever transformations you applied to them, and cache the resulting frames into RAM. Some of those operations it can do in real time and most of them it can't, depending on the factors listed above.

Once the timeline has been cached, the timeline should preview in real-time at the project's frame rate (if your machine is indeed capable of that), or at least it should play at a constant speed.

Changes on elements of the timeline strips will invalidate the cache and new frames will need to be recalculated.

Usually you can only cache a few seconds for playback in real-time.

The amount of frames you can cache is limited by the amount of RAM designated  in User_Preferences/System/Sequencer-Clip_Editor/Memory_Cache_Limit.

To evaluate complex effects it's recommended to limit the range of frames to preview. Use the P key and drag to create a preview-range. To clear the preview range use AltP or press on the clock icon on the bottom of the VSE or Timeline window.

Playing frames that have not been cached will mean that blender has to calculate things on-the-fly, which might have an impact on performance and result in fluctuating frame rates.

The preview frame rate in the timeline will not affect how the final product will playback. Once you've rendered to a video file you are just playing a single video stream with all of the effects baked into it, meaning that all of the transitions and effects are part of the images, so no more complex computations need to take place, and you should expect a constant playback speed (again, depending on your computer's power and the compression scheme being used).


how to make a vertex group (part of a mesh) follow rig up to certain point?

Bone constraints work fine for this. What you need to do is add a bone for each segment, add copy rotation constraints, and define conditions on when to stop following the other bone. Blend file here:

Start with adding the bones, each one at the same location as the other, so the rotations can be copied off 1:1. Then, add copy rotations constraints to each sub-bone (they should not be childs of the main stick bone in edit mode!).

now add the limit rotation constraint to each of the two sub-bones:

use local space for all of them for more flexibility of the rig. Finally, set the limits. I chose a -5 to +5 range for the first, and a -10 to +10 range for the second one. The values are arbitrary for me, in essence the bone stops following the master when those angles are reached:

Be careful with the order of constraints, it matters (as with mesh modifiers): The constraint on top is executed first, then the one below it, etc etc.

Edit requested by user: Using Armature Weights

The parenting in the original file was done using the 'Parent to Bone' option:

This only works if your objects are separate however. If you are in a situation using one mesh which is deformed by an armature, check this blend file:

On layer 1 the original rig is still present, on layer 2 there's a version using an armature modifier and weights. I simply assigned the weights in the mesh data tab, as they would be 1.0 for the respective vertices anyways, no need to paint them.

The rig itself is exactly the same, I could have even reused the armature instead of duplicating it.


Adding IK Problems - shin/forearm sticks out, doesn't follow IK

The points shown in the images are full bones as normally appear, just they're very small, and not joined together (attached) as they'd usually be. The bones being small like this caused problems for the IK, allowing it to animate the position, but unable to find the 'head' and 'tail' points correctly because of their separation.
The option was to adjust the bones in edit mode so they'd join up, but doing this broke all the animations.
In the end, I simply clicked the 'tail' of one bone and the 'head' of the next, and used 'Fill' to create a new bone to connect them up. I did this for all the necessary places, so there were no 'floating' bones.
Then, I applied the IK using the newly-added bones. The original bones were kept but parented so that the new bone was a child of the original, allowing the original animations to work.
Furthermore, the weight painting had to be swapped out so that the new bones took over from the old bones as the ones which have the actual control over the body (done by simply renaming the names to math the names of the new bones). This allows the original animations to be kept, and for an IK.


Planes showing in render preview but not when rendered

The comment above by Robert was right. Your Aisle 6 (hidden in viewport but not in render) is blocking your camera. Disable Aisle 6 from render and it'll render fine.


Other programs might have "Backface Culling" enabled by default, which means the faces become invisible / transparent when viewed from the inside or backside of the face (i.e. it's normal is pointing away from the camera).
To correct this you can press Shift+N as suggested in the comment, but you have to be in Edit Mode for that. You can select single faces you want to recalculate - if you don't know which faces are flipped it's better to hit A to select all faces before recalculating. The Recalculate Normals function also has a tickbox "Inside", which usually makes the inside pointing outwards but can be helpful if Blender miscalculates the normals on a more complex mesh.
You can also press Alt+N for more options of manipulating the face normals like "Flip" for example, to simply flip the direction no matter if Blender thinks it's outside or inside.
If you clearly want to see which faces are flipped before you export a mesh, you can do this by enabling Face Orientation in the overlays. With this option Blender shows the outside of faces colored in blue and the inside or backside of faces colored in red. In my screenshot you can see some red faces, this indicates their normals are flipped. The color overlay is shown in Object Mode and Edit Mode.


How to "glue" a rigged model to an animation?

In Pose mode, there's an option to add Bone Constraints (Below the Bone Context).

Select Add Bone Constraint - Copy Rotation, and select the corresponding bone in the other rig as Target.
"Corresponding" is a bit arbitrary, since for example, the cowboy rig doesn't have hip bones. So you will need to play around a bit with the options available, like Invert.


How should I update a script to 2.8 that uses the removed 'scene_update_pre' handler?

There are two thing that need to be updated:

Matrix multiplication is now written using @
bpy.app.handlers.depsgraph_update_pre should be used as handler

Unless I've missed something, this should be all the changes that are necessary.

import bpy
import mathutils

cam = bpy.context.scene.objects['Camera']
obj = bpy.context.scene.objects['Cube']

def drive_shapekey(scene):
    obj_mat = cam.matrix_world.inverted() @ obj.matrix_world

    obj_eul = obj_mat.to_euler('XYZ')
    cam_vec = obj_mat.to_translation().normalized()
    obj_vec = mathutils.Vector((0.0, 1.0, 0.0))
    obj_vec.rotate(obj_eul)
    difference = cam_vec.dot(obj_vec)

    key1 = obj.data.shape_keys.key_blocks["Key 1"]
    key1.value = difference

pre_handlers = bpy.app.handlers.depsgraph_update_pre
[pre_handlers.remove(h) for h in pre_handlers if h.__name__ == "drive_shapekey"]
pre_handlers.append(drive_shapekey)


Why isn't the render showing realtime progress?

Try to turn off "Save Buffers" in Properties -> Render -> Performance. It helped me in Blender v2.79


How can I make these inner surfaces smooth?

The only way to get rid of these lines inbetween the cutout is to select the affected faces and set them to smooth shading.
You then can select the edges, press CTRL+E and mark them as sharp.

Add an Edge Split modifier and make sure that the Sharp Edges checkbox is active.

Alternatively you can also select all the faces of the model, set the shading to smooth and then add the Edge Split modifier and control the Split Angle.

This should give you the desired effect.


Try 'Remove Doubles'. W -> Remove Doubles You may have two rings right next to each other. If that is the case, items like Bevel and Subdivide, will not smooth the crease any more, because there is no space between verts to divide.

But you will have to play with the settings in the Tool Panel, or you could remove too many vertices.


Can't change horizon color: "can't edit driven number value, see graph editor for the drive setup"

The purple border indicates that there is a Driver present for that value. A Driver is a way of programatically controlling a value - similar to keyframing. When a value is being Driven you cannot manually change it. Move the mouse to over the field and press Alt-D to remove it (or right-click for the menu which also lets you add/remove drivers). You probably pressed D at some point without realising whilst hovering over the field and this would have added the driver.


Boolean modifier with complex object (hole punching) makes blender go on its knees

I think you need to try out a specific add-on for your task. I have seen one called Box Cutter and its demoed on youtube, it probably has better code to handle the boolean operations than standard blender, lets hope.


I haven't come across any NLA tutorials that teach more than mixing actions together. When it comes to making the final movie, using the VSE is more common. In the Sintel videos you will find a couple that should interest you, the first is about animatic editing, the other laying out a shot - both are available free from the blender cloud.

As you have done a storyboard, start by adding those images to the VSE, play it back and adjust the length of each shot until the timing feels right. Then as you progress through completing each shot you replace the storyboard images with the updated animations. This is the process you will see in the animatic editing video.

I think that once you get past a simple animation made from one camera, you will find that models get saved into their own files and then linked into shot files that render each part of the final video, then all these pieces get mixed together for the final video.


How do I achieve a particle trail effect?

I think it can be done.

Unfortunately it requires skill.

In this example I used a sphere emitter
and a slightly smaller sphere that had collision physics enables, dynamic painting as a canvas, and a negative strength force field to attract the particles.

The slightly larger emitting sphere isnt rendered, and the render starts after the particles were alive for about 100 frames and had enough time to settle and get going.

So the emitter would drop all the particles and the colliding sphere would attract them and get dynamically painted on its surface.

to make the particles move on the surface, I made three vortex forces. Although in your example it looks like there are six, plus two forces(one on top one on bottom)

I also saw that your example had lots of compositing done ontop of it so I attempted a transition to a bokeh blur...
Have next to zero experience with compositing atm.

Here is the file
But you will need to re-bake the canvas for dynamic painting and set the timeline to start at frame 1.

P.S. temporarily make the particle scale(in particle panel) super tiny before dynamic painting or else you will get super wide paint marks.


Modeling workflow for symmetrical indented plane

starting with two objects like you describe:

Add a shrinkwrap modifier

to get something like this:

Some faces look beveled because the quads forming the mesh cannot accommodate the deformation properly.
To correct the topology of the edges in question, there are two options:

1: Press Ctrl T to triangulate the mesh.

2: Manually subdivide the offending faces selecting vertices and using J to join the edges.


How can I make a smoke simulation look like water bubbles?

In the example image there are visible large bubbles as well as the masses of small smoke-like bubbles and it's helpful to replicate the larger bubbles to realistically distribute the smoke as well as adding to the effect.

The standard fluid sim is best for simulating surfaces or droplets of liquid - it's not really suited for modelling cavities or bubbles within a body of liquid so we can instead use it to simulate the bubbles within the liquid rather than the liquid itself.

For this, create a fluid domain and set the object to be an 'inflow' - as it travels through the domain it will leave a trail of fluid behind it. Disable gravity in the scene and set it in the Fluid World properties to a reduced positive value rather than the default '-9.81' for standard gravity and try different Viscosity settings to get the desired behaviour of the droplets.

Adjust the Inflow velocity to be close to the direction and velocity of the inflow object. This will have the effect of the fluid appearing to be 'dragged' along with the moving object.

To make the fluid droplets appear as bubbles in a liquid (rather than droplets of liquid in air), choose a refractive index < 1.0. For example, a refractive index of 0.8 will give the impression of air bubbles in a liquid with a refractive index of 1.25 (ie, 1.0 / 0.8 = 1.25).

IOR = 1.25 - liquid

IOR = 0.8 - bubbles in a liquid

For the multitude of tiny bubbles, add a smoke domain and set the fluid domain to emit the smoke. This will result in the 'smoke' eminating from the larger bubbles. This will mean that the 'smoke' follows the paths of the larger bubbles, producing a more believeable pattern in the path of the falling object.

For the material of the 'smoke' (material assigned to the smoke domain), use the density to control the scattering as with normal 'smoke' but omit the usual Volume Absorbtion (or set it to a much smaller density) to allow more light through the volume as for tiny bubbles.

Ensure the lighting is from the top surface of the water and optionally add an absorbtion (slightly blue) to the 'world' or an additional mesh covering the whole volume of water.

Keyframe the Enabled checkbox of the fluid 'inflow' object so that it is enabled when the object hits the 'surface' of the liquid and is disabled a short while after - when the bubbles stop coming off the recently submerged object. You could also keyframe the smoke density emitted from the fluid domain to control the amount of 'smoke' emitted as the bubbles 'calm down' as the velocity of the object decreases.

This can produce the following result :

This method certainly isn't perfect (or physically accurate) and requires a fair amount of manual tweaking to get the desired effect (to set the velocity of inflow for the fluid sim, to enable and disable the inflow of the fluid, etc.), but it can produce quite pleasing results for stills and even reasonable animated results. Use higher resolution for the fluid and smoke simulations for more accurate/smaller bubbles. Add a volumetric absorption shader in the world to add murkiness, etc.

To take this further and produce better results you could create a separate 'inflow' object rather than using the submerged object directly itself. This would allow more control of the volume of bubbles released and where those bubbles are concentrated on the submerged object. Set the submerged object as an Obstacle in the simulation for the bubbles to pass around it rather than through it. Also, add a mesh at the surface of the body of liquid set to fluid 'outflow' to remove the bubbles from the domain once they reach the top.

Also, you could use fluid 'control' objects to direct the flow of bubbles - to stop them spreading out so much, add turbulence, etc., to produce a more believable effect. Similarly, play around with different forces in the smoke simulation to affect how the micro-bubbles behave (ie, wind, turbulance, vortex, etc.).

You may also want to add some variation to the light shining through the upper surface of the water to simulate ripples in the surface for dappled, uneven lighting.

Blend file attached - bake the Fluid Domain first, then the Smoke Domain, before rendering.


Increase the "branching probability". I'm trying to do the same here and it looks to be the answer. Still testing.


Export Model With Material Colors to MeshLab

For importing the mesh with colors into MeshLab:

In Blender, select File > Export > Wavefront (.obj), and select a location to save the .obj to.

When the file browser opens as part of the export process, look at the panel to the left, and make sure "Write materials" is checked:

Next, open MeshLab, and choose File > Import Mesh... and select the .obj you exported from Blender. This will import the mesh, but the mesh will be grey:

To enable the mesh colors you exported from Blender, in MeshLab you need to navigate to Render > Color and click "Per Face". Your mesh will now be displayed with the colors you specified in Blender:

For the second part of your question, you should be able to select the black wireframe by right-clicking on it, and then delete it by pressing X. Does that achieve what you need? If that doesn't work, or if you encounter problems, could you upload your .blend file please?


Since .dds isn't a supported format in Blender, you may find it necessary to convert the dds to tiff and then back again after your texture work is complete.


Not all polygons are reflecting the environmental texture, ideas?

Mostly likely you need to smooth all the faces, some materials works with the geometry, like reflections or refractions. Then to get the desired shape and highlights, I would inset all the faces individually (I+I hotkey) to get the desired hard edges.

If you want you can bevel the edges but you will get some artifacts depending on your topology. And that black edge on top can be another material, give enough subdivisions, you can select the corner faces and apply a darker material, will look really close to what you want.

Hope it helps,


You have turned off the Show Overlays toggle on the user interface. Click it! Some pair of circles in a little square button. Overlays On, they're Blue, Overlays Off, they're gray as I see they are in your little gif I'm unsure what keystroke activates or deactivates them but the mapping for keystrokes is easy to look up under Edit > Preferences


There are two independent switches to make an object visible:

The Eye icon toggles visibility in the viewport

The Camera icon toggles visibility at render time

Pressing H to hide an object will only make the object invisible in the viewport, but not for render. The object will be visible when you render unless you switch off the camera.


How do I create four circular copies in edit mode?

Go to object mode, set the 3D cursor to the center of the shaft by selecting the shaft, hit CTRL + SHIFT + ALT + C and set origin at center of mass. Then, hit SHIFT + S and click cursor to selected. Now, go back to the blade, go in edit mode select everything. Set the Pivot point (button located next to 'Mode' and 'Material' buttons in the 3D view, and choose 3D cursor. Last, hit CTRL + D to duplicate, hit R and then the axis it should go around, type 90 and ENTER. Then keep hitting SHIFT + R to redo the that duplication until you have the right amount of blades.


After some experimentation, I found that the number keys correspond with the order of the collections (from top to bottom). By dragging your most-used collections to the top of the stack, it is easy to enable/disable a collection by pressing a number key.
Sadly, I can't show a picture of the other problem here. Basically: The old Layers grid is ALSO showing on my screen, taking up space, cluttering things up. I found no way to disable/remove it. I eventually uninstalled Blender 2.83.2 and rolled back to previous versions. All of them had the same problem until I got to 2.82a, where the Layers grid is not shown.
It's not all bad. I found that 2.82a is rock solid stable, unlike the 2.83 series, which crashes a lot. I'll stick with 2.82a for now.


B-Bone not displaying as box but instead displaying as sticks

ctrl alt S works, it's just that your bones are very very thin, so scale several times.


How to generate Reaction Diffusion animation?

Since this site is meant to be as knowledge base … here is one option for Compositor. This technique mimics one used by image editor apps:

Copy - Blur - Subtract - Contrast - Merge - Save … repeat with saved image

Add any your black&white image named like 0000.png from separate directory, because running rendering will generate an image sequence to that place.
The trick here is to reuse rendered and saved image for calculation of next frame. For that you have to add Texture node type Image Sequence even you have only your image for frame zero.
Offset -1  ... Thanks to @Robin Betts for pointing that.
To speed up animation you can close nodes into a Group and use it a few times in line.

Additional post-pro (generated sequence with Filter node type Sobel, regenerated and used with Displays modifier).

There is also option use Tissue addon for 3D object … version bundled with official Blender release doesn’t contain Cache feature, to get animated version get latest version from GitHub


How to make the mesh not bumpy? On subsurf modifier

You must have a ngon at the top, you need to inset once or twice:


Which steps are missing to make simple bone animation?

Try shift selecting the mesh and armature and then press spacebar and type Export Fbx. Then chose an export spot and chose selected only if there are any other objects in your scene. Then drag this to unity.


TRANSLATION is Not a subtype of an int property

when the code is run you will be getting messages to the system console that

TypeError: IntProperty(subtype='TRANSLATION'): subtype not found in ('PIXEL', 'UNSIGNED', 'PERCENTAGE', 'FACTOR', 'ANGLE', 'TIME', 'DISTANCE', 'NONE')
ValueError: bpy_struct "MESH_OT_add_object" registration error: step could not register

recommend subtype = 'DISTANCE'

No error now, but.. it will have no dimension unit

If instead we change to a floatproperty

step: FloattProperty(
    name="step",
    default=10,
    subtype='DISTANCE',
    description="scaling",
)

Why??

If we look at the FloatProperty will see that it has a unit setting which Intproperty does not.

:arg unit: Enumerator in ['NONE', 'LENGTH', 'AREA', 'VOLUME', 'ROTATION', 'TIME', 'VELOCITY', 'ACCELERATION', 'MASS', 'CAMERA', 'POWER'].
:type unit: string

Hence the same result is achieved using

step: FloatProperty(
    name="step",
    default=10,
    unit='LENGTH',
    description="scaling",
)

Note in this case, step is a unit-less int with minimum 0.  ie make sure your translation props are floats.

To get step in your method it will be

self.step

For example

#step generators
for i in range (self.step):
    ...

The AddObjectHelper class writes its gear first see How to link the adjust last operation menu to object? Blender 2.80 - 2.81

Python performance with Blender operators

Will find if you try and create a huge staircase calling 2 * (step + 1) operators may slow this down considerably.

Another way to do this would be to add an array modifier with both x and z offset, and the choice to apply or not

Copying an object with python without actually creating a new object

Putting it together

import bpy
from bpy.types import Operator
from bpy.props import (FloatVectorProperty,
                       FloatProperty,
                       BoolProperty,
                       IntProperty)
from bpy_extras.object_utils import AddObjectHelper
from mathutils import Matrix

def steps(context, count, size, scale, offset, align, location, rotation, apply_modifier):
    bpy.ops.mesh.primitive_cube_add(
            size=size,
            align=align,
            location=location,
            rotation=rotation
            )
    obj = context.active_object
    obj.data.transform(Matrix.Diagonal(scale).to_4x4())
    # add two array modifiers

    arrays = {"x": offset,}

    for axis, displace in arrays.items():
        mod = obj.modifiers.new(axis, 'ARRAY')
        mod.use_relative_offset = False
        mod.use_constant_offset = True
        mod.count = count
        mod.constant_offset_displace = displace
        if apply_modifier:
            bpy.ops.object.modifier_apply(modifier=mod.name)

class OBJECT_OT_add_object(Operator, AddObjectHelper):
    """Create a new Mesh Object"""
    bl_idname = "mesh.add_object"
    bl_label = "parameter stair"
    bl_options = {'REGISTER', 'UNDO', 'PRESET'}

    size : FloatProperty(
        name="Size",
        default=2,
        unit='LENGTH',
        )

    count: IntProperty(
        name="Steps",
        default=10,
        description="Number of Steps",
        min=0,
    )

    scale : FloatVectorProperty(
        name="Scale",
        default=(1, 1, 1),
        )

    offset : FloatVectorProperty(
        name="Offset",
        subtype='TRANSLATION',
        default=(0, 1, 1),
        )

    apply_modifier : BoolProperty(
        name="Apply Array Modifier",
        default=True,
        )

    def execute(self, context):
        steps(
            context,
            self.count,
            self.size,
            self.scale,
            self.offset,
            self.align,
            self.location,
            self.rotation,
            self.apply_modifier,
            )

        return {'FINISHED'}

# Registration

def add_object_button(self, context):
    self.layout.operator(
        OBJECT_OT_add_object.bl_idname,
        text="stair",
        icon='PLUGIN')

def register():
    bpy.utils.register_class(OBJECT_OT_add_object)
    bpy.types.VIEW3D_MT_mesh_add.append(add_object_button)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_add_object)
    bpy.types.VIEW3D_MT_mesh_add.remove(add_object_button)

if __name__ == "__main__":
    register()


view port edge deformation glitch in 2.9

Reduced the view clip distance. This is a floating point rounding error because your view clip range is too broad - @Gorgious


If you want to lock the camera in such a way that it's upside down when it reaches the end of the curve:

you can use a Damped Track constraint.


So what is "Arnold Renderer theory"?

Let's read some Arnold documentation:

  Camera (AA) Supersampling control over the number of rays per pixel that will be traced from the camera. The higher the number of samples, the better the anti-aliasing quality, and the longer the render times. (...) This control acts as a global multiplier of all the different rays, multiplying the number of Diffuse and Glossy rays. Motion blur and depth of field quality can only be improved by increasing Camera samples.

This is also true in Cycles:

As you can see, the total number of SS samples is the number of AA samples multiplied by the number of SS samples.

How should we work with these values? As another Arnold page explains:

  Noise nearly always comes from insufficient sampling, but increasing sampling for the wrong rays can make the render times increase without helping to remove the noise. As an artist is usually working to a render time limit or amount of rays the aim is to allocate those rays as effectively as possible to minimize the noise in the most efficient manner. So if the Camera samples have to be increased to remove DOF noise, the other settings must be lowered to keep render times manageable. However, if DOF or motion blur is not a concern, then increasing Camera samples would fix all noise elsewhere but would also slow render times from the unnecessary rays.

This suggests that you have a rays budget, all rays are equally useful and expensive, and 64 AA rays with 1 diffuse ray per AA ray should be the same as 1 AA ray with 64 diffuse rays per AA ray. Let's examine this in detail. I will call the following configuration the 64*1 config:

And I will call the following the 1*64 config:

If I understand your question correctly, you expect these two configurations to create the same results equally fast, but this is not true: the 64*1 is better and slower than the 1*64:

Is this a bug in Cycles?

No, I actually tested it in Maya+Arnold, and there are also similar differences. The Arnold settings were the following (note that Arnold always uses "squared samples"):

OK, it is not a bug, but how do you explain the difference?

One obvious difference is that the 64*1 image is anti-aliased, while the 1*64 is not. About the rendering time also consider that the initial number of AA/camera rays does matter, those initial AA/camera rays have to be calculated, and 64 AA rays are more than 1 AA ray. And probably the code is full of tricks and optimizations that could work in one specific case, but not in another.

Conclusion: Don't take the "Arnold Renderer theory" about the "rays budget" too literally, even in Arnold it does not work exactly that way. It is not enough to think about the number of rays, it is necessary to analyze the render passes in every scene, and play with the settings until you find the optimal configuration.

It is also interesting to check the individual render passes.

The shadow pass is very ugly in the 1*64 case, it contains only black and white, suggesting that Cycles uses only one shadow ray per AA ray.

The diffuse indirect pass was actually better in the 1*64 setup.

The lack of AA made several 1*64 passes ugly, but for some passes the anti-aliasing was bad in the 64*1 version (and in the simple pathtracing) as well.

As an interesting fact, I see another problem with these settings, as described here: Minimum number of samples for the Branched Path Tracing


How do i merge a moveable part of an object?

Are you talking about the bones being separate? Because you only have one object in your hierarchy.

If you're talking about the bones you can go into edit mode, select the ball on the end of each bone you want to connect and press F to create a new bone between them.


"Smooth Vertex" wrinkles mesh instead of smoothing it

This tool doesn't seem to like ngons (faces with more than four vertices).

Assuming you want to make the outer edge circular, instead you might try using To sphere
(⎇ Alt⇧ ShiftS):

Or you might try the bundled loops tools addon.


Why do you need displacement?
For a shape like this it would be a lot easier to create clean geometry and with a lot less vertices.
Or trace the shape as path in a vector drawing program (inkscape, illustrator, etc) and save as SVG to import back to blender.
Diagonal lines will always be jagged in raster formats (and in this case you see clearly how compression creates other artifacts).


Subscribe to msgbus

Very similarly to answer to Origins to the down of the object by default can check when a new object becomes active when it is the result of being freshly added by an add primitive operator.
Run this code, and any newly added primitive will have auto smooth on with 18 degrees.

as shown in origins to default, can change up all sorts of things.
import bpy
from math import radians

handle = object()

# make some default value
auto_smooth_default = (True, radians(18))

# Triggers when an object is made active
subscribe_to = bpy.types.LayerObjects, "active" #

def notify_test(context):
    if (context.object.type == 'MESH'
            and getattr(context.active_operator, "bl_idname", "").startswith("MESH_OT_primitive_")
            and context.mode == 'OBJECT'):
        print("Setting auto smooth")
        me = context.object.data
        me.use_auto_smooth, me.auto_smooth_angle = auto_smooth_default
        # set all faces smooth
        me.polygons.foreach_set(
                "use_smooth",
                [me.use_auto_smooth] * len(me.polygons),
                )
bpy.msgbus.subscribe_rna(
    key=subscribe_to,
    owner=handle,
    args=(bpy.context,),
    notify=notify_test,
)

bpy.msgbus.publish_rna(key=subscribe_to)


For several reasons but mostly because of the colour range provided by some of the available image formats, you always want to render your animation to an image sequence (preferably .exr in case you are doing serious work) and compile the images into a video container like .mov, .mp4 or whatever afterwards.

You can even compile the sequence using Blenders Video Sequence Editor or any other video package of your choice (depending on what you got access to) like resolve, ffmpeg or handbrake to only name a few out of hundreds of free options: Comparison of video container formats on Wikipedia.


Can I render a MOV with Jpeg2000 Codec with Blender?

On OS-X you can render to PNG then open the files in preview and select export files to jpeg2000.

If it should be unclear, you can export multiple files at once by having them selected in the preview sidebar (CommandA).

I just hope it does take the alpha channel into account, haven't tested that yet.


Script - How to add UV map for each object in scene?

Add UV to all mesh objects in scene

Note: for 2.8x replace uv_textures with uv_layers and add (name="yourUVname") in .new()

import bpy
context = bpy.context
scene = context.scene
# all meshes on mesh objects in scene
meshes = [o.data for o in scene.objects
        if o.type == 'MESH']
# add a new "map1" UV to each
for m in meshes:
    m.uv_textures.new("map1")

Note could be done in list comprehension with

uvs = [o.data.uv_textures.new("map1") for o in scene.objects
        if o.type == 'MESH']


How change this script to Blender 2.8, who is "use input() or raw_input() functions in blender scripting?"

Scene.objects.active is no longer valid
For 2.8 to get or set the active object use
context.view_layer.objects.active = ob

however after an operator call the object has context, so with minimal changes
    def execute(self, context):
        add_cube(context, self.name, self.scale)
        self.report({'INFO'}, "Added Cube")
        return {'FINISHED'}

    # This is called when the operator is called, this "shows" the dialog
    def invoke(self, context, event):
        wm = context.window_manager
        return wm.invoke_props_dialog(self)

# This method adds a cube to the current scene and then applys scale and
# name to the cube
def add_cube(context, name, scale):
    bpy.ops.mesh.primitive_cube_add()
    cube = context.object
    cube.name = name
    cube.scale = scale


Can I hide certain keyframes that belong to the same object?


Can I save rendering process for another time?

If you go to YouTube and put in seach terms of "blender 2.8" "image sequence", (use those quotes that way as two search terms), there are a bunch of vids that show how to create your movie from an image sequence, which is the best way to accomplish what you are trying.

I found that I still get a working video file from Blender, if I interupt a movie render, though, of course, it's incomplete. By restarting a new video render at the frame you left off, you could splice the two videos together using most video editing programs.

However, study the "image sequence" method. It's better. Less work, too. Just a whole lot of files. You can delete all those individual frame image files after you have your video created from the Video Editing step.


Relax (Loop Tools)

Loop tools add-on brings in a nice operator called Relax that is capable of "relaxing" the selection that should works well in your particular situation.

In alternative, without adding any external add-on to your Blender's copy, you can select each circumference and run the To sphere operator (Shift+Alt+S) and type 1 (max value).

You can give a try even to the Smooth Vertex operator, but it give best results if the loop to fix is between two loops that have the right shape.


Blender 2.74 Windows 64bit quits and displays hz issue

It looks like it is having issues with the audio configuration.

Go to where Blender is installed in the Windows Explorer. The Default Installation Path is C:\Program Files\Blender Foundation\Blender.

When inside the Blender Folder, hold down the Shift key, and right-click any folder inside the Blender Folder (the 2.74 folder will work just fine), then choose the option "Open Command Window here").

With the new command window open, you should have a prompt that looks like this:

C:\Program Files\Blender Foundation\Blender> or one reflecting the path to the Blender folder.

From that prompt, type:

blender.exe -noaudio (make sure there is a space between the "exe" and the "-". Blender should start like normal.

You can also set it to use a specific sound system:

blender.exe -setaudio SDL

Other options include, NULL, OPENAL, and JACK.

If it still crashes, start Blender with the debug flag to show any other errors or issues leading up to this error.

blender.exe -d


How to render a floor plan while maintaining proper lighting

To expand on the great answer of stphnl329, I'll add another technique.

It works in Eevee, but I'm sure it can be used in Cycles by tweaking a few nodes.
So, the idea is to create a node group controlling the alpha value of your material and simply plug it into the alpha value of each of your materials.

First we will create the basic setup.

Add (with a Vector Math Node) the location of each object and the local position of each pixel in the object. That way, we have the real world position of each pixel in the material. Extract the Z value with a separate XYZ.

Plug this into the value of a map range node (you need Blender 2.81+). Check clamp and invert the To min and To max values.

Add a value node and plug it into the from Min input, and add 0.001 to it and plug it into the From Max node. This setup is emulating a Color Ramp node with a constant interpolation. Plug the map range output into the alpha input of your bsdf.

In the shader editor press "N" to show the tools panel. Go into the options and set the alpha blend mode to "Hashed"

You can already see the magic in action. It works best in perspective mode, in orthographic you will have some light bleeding (you can get rid of it but I won't tackle that here).

Go into your world settings and add a custom property named "floorplan"

Right-Click on the value of your property and choose "Copy as New Driver". Right click in the value node in your shader and choose "Paste Driver". Now your value is driven by your world property.

Now select all the nodes on the left of your BSDF and type CTRL + G to create a new group. Tap TAB to exit the group. Name it floorplan. Go the material of your other objects and add this node group (SHIFT + A > Group > Floorplan) and plug the output into the alpha of the bsdf. Don't forget to set the alpha blend mode to hashed in every one of you materials.

Example :

Final result :


You don't need a \$4000 computer to run Blender, at home I have an HP pavillion laptop, core i7, intel graphic card with NVidia driver, so GPU render works, 8 GB ram, and it costs around \$550. I don't use it for final renders, I tried once 200% Full HD with 1024 samples, not surprisingly, Blender crashed, but for almost everything else, it is petfect, for a biginner he'll probably spend more time modeling and texturing, trying simple tasks, even when Blender crashes, it has one of the best recovery systems I've ever seen, and I worked for a long time with 3D "industry standard" software, and their recovery systems are not even close, I never lost significant amount of work using Blender "next to nothing".I advise you to download Blender on your Dell, give it a try to test it's limits, if it can handle a render of 512 samples Full HD with 3 mesh lights and half a million mesh object, I think you're fine, if not, invest in a mid range desktop, after all, you don't want him to start using a broken instrument, this will be a very bad start, and I don't advise using an older version of Blender, I believe a version that will make a difference in hardware consumption will be too old, if he likes it, this will make the learning curve looks like wasting time and effort, learning to do workarounds that he doesn't need for a newer version.


Difference between the vortex and the wind force

This was for the use case when the cloth is pinned. Animating a flag (with a loose end) a wind force works well.

By using a wind force the sail in the scene stopped fluttering after a few frames like blown up. Which is probably more realistic if you have steady wind from one direction.

Since I wanted it wobble I tested a vortex which  behaves more dynamically, more like a fan where the airflow changes it's strength and also allows the canvas to retract.


Observing the dae file I found the UV-Map to be unsuitable for baking because it overlaps on itself, so I followed How do I bake a texture using Cycles bake to bake with cycles, which worked quite well.

Starting with imported .dae, UV-Unwrapping, setting up the bake target.

Node setup, render setup and intial render process.

Finishing the render finding overlaps, reducing overlap size

Final render

Complete workflow


Where can the latest API documentation be found?

Update
You can now use http://www.blender.org/api/blender_python_api_current/ to link to current API documentation. The difference from the old redirect is you can now link to specific parts, search results, etc. on the latest docs.
You can still specify a specific version if needed, e.g.
http://www.blender.org/api/blender_python_api_2_76_2/ goes to the 2.76 specific documentation.

Origonal answer
This url is always redirected to the latest API documentation.
It redirects to http://www.blender.org/documentation/blender_python_api_*version*


2.8: How to add a button to the toolbar?

Campbell added some stuff to the API and had I been using the latest build I would have had access to a new code template:

# This example adds an object mode tool to the toolbar.
# This is just the circle-select and lasso tools tool.
import bpy
from bpy.utils.toolsystem import ToolDef
from bpy.types import WorkSpaceTool

class MyTool(WorkSpaceTool):
    bl_space_type='VIEW_3D'
    bl_context_mode='OBJECT'

    # The prefix of the idname should be your add-on name.
    bl_idname = "my_template.my_circle_select"
    bl_label = "My Circle Select"
    bl_description = (
        "This is a tooltip\n"
        "with multiple lines"
    )
    bl_icon = "ops.generic.select_circle"
    bl_widget = None
    bl_keymap = (
        ("view3d.select_circle", {"type": 'LEFTMOUSE', "value": 'PRESS'},
         {"properties": [("wait_for_input", False)]}),
        ("view3d.select_circle", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
         {"properties": [("mode", 'SUB'), ("wait_for_input", False)]}),
    )

    def draw_settings(context, layout, tool):
        props = tool.operator_properties("view3d.select_circle")
        layout.prop(props, "mode")
        layout.prop(props, "radius")

class MyOtherTool(WorkSpaceTool):
    bl_space_type='VIEW_3D'
    bl_context_mode='OBJECT'

    bl_idname = "my_template.my_other_select"
    bl_label = "My Lasso Tool Select"
    bl_description = (
        "This is a tooltip\n"
        "with multiple lines"
    )
    bl_icon = "ops.generic.select_lasso"
    bl_widget = None
    bl_keymap = (
        ("view3d.select_lasso", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
        ("view3d.select_lasso", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
         {"properties": [("mode", 'SUB')]}),
    )

    def draw_settings(context, layout, tool):
        props = tool.operator_properties("view3d.select_lasso")
        layout.prop(props, "mode")

def register():
    bpy.utils.register_tool(MyTool, after={"builtin.scale_cage"}, separator=True, group=True)
    bpy.utils.register_tool(MyOtherTool, after={MyTool.bl_idname})

def unregister():
    bpy.utils.unregister_tool(MyTool)
    bpy.utils.unregister_tool(MyOtherTool)

if __name__ == "__main__":
    register()


I performed a few experiments and I have the following suggestions:

mark a seam on one of the super-long edges.
when unwrapping unselect the two ends.  This will give you the long faces.
after unwrapping the long faces, scale them in the UV/image editor to fill the available space.  If you want to use the entire UV space only scale along the skinny axis ( s x ).
You will probably need to use a tall texture, or the texture pixels will look stretched in the 3D view.
If you are not using a tall texture, you should probably scale uniformly and let the texture wrap on the long axis.
you can unwrap the ends separately.
If you do not want to unwrap the ends separately, mark all the edges on the end as seams.
It is possible to have the end polygons overlap the texture coordinates of the long polygons, or just be a different material.  If they are going to be the same material, the texture coordinates should probably have the same scaling applied to them or things might look funny.


How can I connect a corner of a face to an edge of another face the easiest way?

Add an edge loop (Ctrl + R) to the main object aligned with the vertex then merge them (Alt + M). You can also merge them at center, at the position of the first one or the second one. After that, you can merge the other vertices to reduce the number of triangles...


You may use the Set alpha node to mask the render result with the parts where the freestyles lines are by picking the freestyle layer alpha cannel.

Notice that I also switch the Base Thickness mode from Center to Inside (see the panel on the right) to be sure to always mask parts that are actually rendered geometry and not background.
With higher values of thickness you may have some problems with the cap in the angles. I would suggest to multiply the two incoming alpha to create a mask capable of cutting them away (Multiply Math node runs the same operation of a Logic AND):

Now that we've "mastered" the alpha channel in a simpe way, we can Invert it's apha channel (check the RGB box to invert its values as if it was an image from the colr channel) to get a stencil look to the image:

You can make the jiggled edges by using one (or a comobo of more) of the several modifiers available, for example a Noise for the Thinkness parameter:

If you need to use the freestyle layer color to mask the rendered object, you'll need to set it of a different color from total black, or you won't be able to get its information without accessing the alpha channel anyway.


Winding coil using a conical shape for 3D printing

You can avoid using a boolean modifier.

Say your cylinder is made with 32 steps and you want the coil 8 turns (if not the case adjust the values to your need).
Start keeping 1/8 of the cylinder:

Bevel (or not as it depends on the size you want) the center loop:

Adjust the center part to make a crease:

Rip the bottom:

Rotate 1/8 = 45° the bottom part and adjust the other parts:

Add an array modifier based on object offset. This object is an empty placed at the center and rotated 45°. Activate the merge options:

To make the crease round, mark the center part with bevel crease and use a bevel modifier:


Need some modeling/workflow tips on Kettlebell/grenade look

I really would recommend using a normal map since the detail is so small. You're going to have to have a huge number of vertices to get it to look decent.

If you're sure you need to be modeled, you'll probably want to use a displacement modifier:

Here's the modifier stack:

And the texture settings:


Rig is moving other parts of my mesh for no reason!

In Object mode apply the rotation and scale of your object with ctrlA, then in Edit mode recalculate the normals with ctrlN.

Also maybe remove the doubles, put the Armature modifier above the Subsurf, enable the Preserve Volume of the Armature modifier, join the fingers to the hands, etc...

Anyway it will need some corrections in Weight Paint mode or with the Vertex Groups Assign button.


is it still not possible to delete folders in the file browser?

No. This is still not possible as of 2.73.

See this thread on the bf-comitters mailing list for some discussion on why this is.

If I understand correctly, the required capability was recently added to blender's internal delete function, so AFAIK it's more or less a matter of creating a higher level recursive delete operator. Perhaps It'll be here soon.


As far as I am aware there is still no support for OSL on GPU - if you enable the Open Shader Language checkbox then you are limited to CPU.

Perhaps if you can describe what you want to achieve with your custom noise node then someone might be able to offer a suggestion that would not require OSL.


might be caused because you have a low poly figure with (high?) subdivision.
The subdevision performs a smooth over the low poly figure.
creating artifacts.

copy your blend file, apply subdiv, then do another autoweights with bones.

Its always is a bit tricky but it might look better.
Sometimes people add extra bonus just to keep things stable, (ea rigify feed solution)..
placing of the bones is essential


You've changed its scale, in Pose mode you need to select it and alt S to reset its scale, you can also reset its rotation (not sure why you put the target in front of the foot and not behind, though. Also, I'd make the target parent of the foot but there are a lot of rigging methods so I don't know).

Now, if you want to delete scale and rotation for the whole animation of this bone, select the bone, in the bottom menu bar of the Dopesheet press the arrow button called "Only Include Channels Relating to Selected Object and Data" so that it only displays the keyframes of the selected bone, lock the tracks you don't want to delete (in your case the 3 Location tracks), select all the keyframes (A) and press X > Delete Keyframes.

How did this happen? You must have accidentally scaled this bone at the beginning of the walk, and as you've chosen to automatically save the Whole Character pose when you press i, it automatically recorded the scale setup.


How to change component selection type in edit mode in Blender 2.8 alpha?

First of, Blender 2.8 is in development. It's an unfinished alpha product constantly changing hour after hour. So if you're not prepared to constantly change with it, you should wait for the 2.80 release.

For now, the default keymap is one of the things currently being worked on. You can follow the advancement  on the tracker here. There is also a list of shortcut being made here.

The previous component menu seems to be gone for now. Though you can use 123 to switch between each of them.


Diamond Shape Topology on a Flat Surface With No Deformation Planned

Your loop flow being good or bad is mostly depend on what you want to do with it.
on a flat surface that does not deform, and it has support loop on top and bottom so it's good to me at least.
on a high deformed surface it "might" cause problems.
as I see now your model is a hard surface and you did it on a flat surface and I don't thing it will ever deform so you are ok.
some might use their loop flow to make new parts out of it or help make stuff separate or help make textures.


there are two problems :

edge.select = True not working as expected because passing the edge itself doesn't work (switching modes seem to break this pointer ),you should pass the index of the edge instead
selected_verts = [v for v in mesh.vertices if v.select] will be empty unless you switch back to object mode to update the mesh

this is the working code :

def loop_from_edge(edge_ind, mesh):
    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.select_all(action='DESELECT')
    bpy.ops.object.mode_set(mode='OBJECT')
    mesh.edges[edge_ind].select = True
    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.loop_multi_select(ring = False)
    bpy.ops.object.mode_set(mode='OBJECT')
    selected_verts = [v for v in mesh.vertices if v.select]
    return selected_verts