How to make Image Texture have white background and/or transparent background with a second white material behind it on the same object?

This answer helped me the most: Change color of PNG background (transparent to color)

Particularly using the MixRBG for Nodes (which btw are in 'Shader' window, not 'Nodes' window)

I copied the MixRBG part of this guy's setup. https://i.stack.imgur.com/kZOHk.jpg

Thanks all!


Is it possible to mass enable adaptive subdivision checkbox?

To enable the adaptive checkbox(as well as many other options) on multiple objects modifiers, select all the objects and make sure one is active. Then in the objects modifier, hold ALT and select the checkbox.


Fluid Domain -- Resolution Divisions field disabled (grayed) after freeing bake

instead of modular choose "All" and you can change it again.


I have found the answer, The reason for this error is because the data linked to the skin modifier is locked when using edit mode. Simply setting it to object mode unlocked the variables.
Hopefully this helps anyone who was as confused as I was.


White pixelated domain when viewed in viewport shading

Make sure to reduce your emission strength


You should've specified what issue "this" refers to.
Anyway, assuming your issue is that you're seeing polygon edges in your normal map, your mistake was not changing the shading from flat to smooth on at least one of the two models.

Set both models' (low and high-poly) shading mode to smooth and then bake again.
Those awful edges should disappear from your normal map altogether.


This looks like an issue with keyframe registration handles / extrapolation.  By default, Blender uses Bezier handles with constant extrapolation to ease in and out of animations.  This is usually what you want.  But not for simple loops like this.

There are two solutions.  One is to change the handles.  Switch to the graph editor, move to your initial frame, ctrl-k select all this frame, jump to final frame, ctrl-k select all this frame.  'v' change handles -> vector.

Alternatively, change the extrapolation mode.  Switch to the graph editor, select your channel (probably X location here), shift-e extrapolation mode -> linear.

As for finding the exact start of the curve, there are a number of plugins that can give you curve length, including the popular Animation Nodes plugin.  This curve length could then be used as the translation of the object.  But at this speed, it should be safe to eyeball it.  What I would do is plop a cursor on one corner of the object on the initial frame, just as a visual marker, and without changing my view, jump to the final frame.  Then I would advance my object along the proper axis until the appropriate corner was located at my cursor.


My 3D cursor's xyz is all messed up and doesn't align with the grid, how do I fix this?

Correct the rotation in the sidebar, just select the view tab and change the 3D cursor rotation back to 0


How would I join an imported road from OSM to the terrain?

Overview:

Change Clipping to some really high value to see whole thing at once.
Go to Object Mode.
With still selected roads, go to Modifier tab and remove Boolean.
Change Shrinkwrap to Nearest Surface Point and mark Keep Above Surface.


you just need to assign a separate material to that body part, then animate that material color over time, with keyframes

Here is an example of how to do this: the monkey head has a ase blue color, but I assigned a different (grey) material to one ear.

Then at frame 1 I inserted a key frame for the color (press I over the diffuse grey slot), and at frame 80 I changed the color to red, and inserted another keyframe.

That's it.


adjust rigid body objects' position without affecting the whole shape

I know my proposals are "another" alternative solution, but maybe it is enough for you.
Instead of moving around them manually you could e.g.
Proposal 1:

give them another mass and check whether you are satisfied with the new result. To do so: select all cubes, and choose another mass -> and you got new positions

Proposal 2:

you manually put other weights to your cubes

Proposal 3:

this is what you want to do, but it is a LOT OF work.

you can bake your simulation to keyframes. Then you have control over each keyframe of your animation.
you can do it like this:

But the disadvantage is, that you have to change nearly every position of each keyframe for each cube so that it looks realistic.


Why is Blender separating every face of this model when I unwrap it?

The faces of your object are all ripped apart, you need to select all, merge by distance, then mark seam and unwrap again.


Why does adding shaders take the colour out of grass in render mode

You have to be careful what information you connect on the node sockets.

Sockets have colors (Yellow, Green, Gray or Purple) for a good reason: so that you use the correct kind of information.

You can't connect color information (yellow) to the green input of mix shaders.

Likewise, plugging the output of a mix shader to the color input of an other shader makes no sense. The output of a shader can only be plugged in to mix shaders or to the material output sockets.

Please read the following link for a detailed explanation:

What is the meaning of the color of the node sockets in the node editor?

Read also: Cycles and nodes, trying to use Diffuse BSDF as color source for Glossy/Subsurf Scattering BSDFs.. not working


The reason you cant remove that face individually is because it's part of another face. Your object has at least one concave n-gon (a face with more than 4 sides where one of the sides comes back towards the center of the face) and that is what is causing you your problem. All the faces of an object are converted into triangles before they can be displayed, and with the faces on your object it appears the triangulation process causes a face to go outside the boundary of the n-gon. You can better visualize what I mean if you select the face (the one shown in the bottom screenshot) and press Ctrl T to convert it to triangles. You will then see one of the triangles causing the issue.

The best way to solve the issue is not to delete the face, but instead help blender out by giving it smaller, convex faces to work with. I can't see your entire mesh in the screenshots, but you should be able to select one of the vertices near where the issue is, then select another vertex somewhere on another side of the face either below or to the right. If you press J then it will connect those two vertices into an edge and split the large face into two smaller ones that should be easier for blender to triangulate.

In general it's best to avoid faces with more than 4 sides. The only place n-gons are usually ok is when they are perfectly flat as well as convex (think classic pentagon or similar). If you can, it would be best to convert you mesh to being made out of 4 sided faces only. It will be easier for blender to display without any glitches, it will save you headaches down the road if you have to work with this object again, and it will also be good practice to be able to make any object with good geometry.


What I would do is:

Join all the different pieces of the robot with ctrl J, no reason for separate pieces.
shift ctrl alt C to make Origin to Geometry so that it's clean (same for armature).
In Edit mode select all and ctrl N to recalculate the Normals.
Back in Object mode, in the modifiers remove the Mirror which seems useless.
Unparent the object with alt P.
Delete all vertex groups in Data > Vertex Groups > menu available with the down arrow on the right of the Vertex Groups list > Delete All Groups
Display the layer with the armature, and even put it on the same layer than the object.
Align the bones to the mesh shape, for example drag the Spine head up to the bottom of the head.
Delete some useless bones, for example I don't think your Pelvis will be useful as I guess you don't want the hip to be flexible as it is a robot.
Perhaps create a bone for the hip that will be independent from the torso, you can use the current Spline to make the Hip, so create a child of this Hip for the torso, etc... it really depends on how you want to animate your object, which part is flexible etc...
Your armature is incomplete, for example you should have some IK controllers an pole targets for your forearms and shins, and also a root for the whole armature that would be the parent of the spine and all those additional controllers/targets
Anyway, let's make a basic parentage: As it is a robot, you won't use With Automatic Weights because it is rather made for flexible objects. Use ctrl P > With Empty Groups, it will create one Vertex Groups by bone, but it won't assign any of those Vertex Groups to the mesh yet.
Now you can manually assign each part of your mesh to the Vertex Group you want. Select your Object, go in Edit mode, select the left hand with L, go to Data > Vertex Group, with the down arrow menu Sort by Name, choose Hand.L and click Assign. Now when you move the Hand.L bone, the mesh follows.
Continue with the whole mesh.


How do I mimic the function of the 3D camera in After Effects in Blender?

Welcome to Blender Stack Exchange!

As a quick disclaimer, I'm not a 2D animator nor do I have any real experience with 2D animation, but hopefully I can provide a direction at least.

If I'm understanding what you want to do correctly, you're looking to have animated image sequences on planes, and to add effects like Depth of Field. This is totally possible, and actually pretty easy.

Blender has an addon called Import Images as Planes. It's not enabled by default, so go to Edit>Preferences>Addons>Import-Export: Import Images as Planes, if you're using it for the first time.

Once that is enabled, you can add image sequences to planes by going to File>Import>Images as Planes. From there you can import static images, movie clips, and image sequences, and the planes will be properly scaled, with the image/clip applied as a texture. When importing a sequence of images, make sure you enable the Animate Image Sequences option so that it makes one plane with an image sequence, not as many planes as there are images in the sequence.

Regarding transparency, if your images have an alpha channel, it will use that by default. Otherwise, you can even remove backgrounds using some tricks with materials.

Blender also has depth of field, and it should work as you want it to. Add the depth of field in the camera settings and that should be it. You can even lock the depth of field to a certain object (image) and have it stay in focus and everything else blur.

If I misunderstood what your asking I can edit this answer and expend on it, so don't hesitate to ask!


I have created a script to do it.
There is probably a native way so I do not accept my own answer.

Here is the script :

import bpy
import bmesh

obj = bpy.context.edit_object
mesh = obj.data
bm = bmesh.from_edit_mesh(mesh)

previous = 0
current = bm.verts[399] #index of one of the two extremity

points = [0]

flag = False
while flag is False:
    flag = True
    for edge in current.link_edges:
        nei = edge.other_vert(current)
        if nei is not previous:
            previous = current
            current = nei
            flag = False
            len = (previous.co-current.co).length
            points.append(points[-1]+len)
            break

for v in points:
    bm.verts.new((v,0,0))

bmesh.update_edit_mesh(mesh)


Script to make copies of a shape key, each one with an isolated translate channel

First point would be that shape_key_add(from_mix=True) will copy the shape key as it is, you may want to be sure that the shapekey is in effect when you copy it.

obj.active_shape_key.value = obj.active_shape_key.slider_max

Rather than changing the active shapekey for each step, get the index of each as you create them and use that when adjusting the copy. The new shapekey will be added to the end of the list so it's index will be len(key_blocks)-1

xshape_idx = len(obj.data.shape_keys.key_blocks)-1

Now the key point -

obj.data.shape_keys.key_blocks[shape_name].data[vert.index].co.x
  = obj.active_shape_key.data[vert.index].co.x

you set obj.active_shape_key_index then you copy active_shape_key.data[vert.index] into key_blocks[shape_name].data[vert.index] that is two ways to the same data. I would suggest setting the unwanted locations to the Basis shapekey locations.

obj.data.shape_keys.key_blocks[xshape_idx].data[vert.index].co.x
  = obj.data.shape_keys.key_blocks['Basis'].data[vert.index].co.x

I finished up with -

import bpy

context = bpy.context
scene = context.scene
obj = context.object
shape_name = obj.active_shape_key.name

## enable shapekey before copying
skey_value = obj.active_shape_key.value
obj.active_shape_key.value = obj.active_shape_key.slider_max

obj.shape_key_add(name=str(shape_name) + "_X", from_mix=True)
xshape_idx = len(obj.data.shape_keys.key_blocks)-1
obj.shape_key_add(name=str(shape_name) + "_Y", from_mix=True)
yshape_idx = len(obj.data.shape_keys.key_blocks)-1
obj.shape_key_add(name=str(shape_name) + "_Z", from_mix=True)
zshape_idx = len(obj.data.shape_keys.key_blocks)-1

## reset shapekey
obj.active_shape_key.value = skey_value

for vert in obj.data.vertices: #Isolate the translation on the X axis
    obj.data.shape_keys.key_blocks[xshape_idx].data[vert.index].co.y = obj.data.shape_keys.key_blocks['Basis'].data[vert.index].co.y
    obj.data.shape_keys.key_blocks[xshape_idx].data[vert.index].co.z = obj.data.shape_keys.key_blocks['Basis'].data[vert.index].co.z

for vert in obj.data.vertices: #Isolate the translation on the Y axis
    obj.data.shape_keys.key_blocks[yshape_idx].data[vert.index].co.x = obj.data.shape_keys.key_blocks['Basis'].data[vert.index].co.x
    obj.data.shape_keys.key_blocks[yshape_idx].data[vert.index].co.z = obj.data.shape_keys.key_blocks['Basis'].data[vert.index].co.z

for vert in obj.data.vertices: #Isolate the translation on the Z axis
    obj.data.shape_keys.key_blocks[zshape_idx].data[vert.index].co.x = obj.data.shape_keys.key_blocks['Basis'].data[vert.index].co.x
    obj.data.shape_keys.key_blocks[zshape_idx].data[vert.index].co.y = obj.data.shape_keys.key_blocks['Basis'].data[vert.index].co.y


Simple modeling rules to get sensible UV mapping

If you try unwrap flat surface - the best method for this is U -> Project from view (Bounds).

It just copy real position of vertexes from current view to UV, without any distortions.


How can I connect a set of vertices to make a 3D model, with a script?

The easiest path here is to export from excel as a .csv (comma separated values) in a column-format that the existing .csv readers/importers  written for Blender understand. Here's an example of one such addon . This means you don't have to write any import code.

But if you did want some autonomy over the import code, you might write something like this (but use a .csv format it is much easier to parse):

your csv, let's call it circle.csv

x,y,z
0.000000,1.000000,0
0.500000,0.866025,0
0.866025,0.500000,0
1.000000,0.000000,0
0.866025,-0.500000,0
0.500000,-0.866025,0
0.000000,-1.000000,0
-0.500000,-0.866025,0
-0.866025,-0.500000,0
-1.000000,-0.000000,0
-0.866025,0.500000,0
-0.500000,0.866025,0

The least amount of code needed to read a file like that into blender might look something like this. You run from Text Editor, (but remember to get the path to the file correct first..)

import csv
import os
import bpy

filename = 'circle.csv'
directory = '/home/zeffii/Desktop'  # <-- if you have linux or osx
# directory = r'c:\some\directory'  # <-- if windows, the r is important
# directory = 'c:/some/directory'  # <-- if windows (alternative)

fullpath = os.path.join(directory, filename)

with open(fullpath, 'r', newline='') as csvfile:
    ofile = csv.reader(csvfile, delimiter=',')
    next(ofile) # <-- skip the x,y,z header

    # this makes a generator of the remaining non-empty lines
    rows = (r for r in ofile if r)

    # this converts the string representation of each line
    # to an x,y,z list, and stores it in the verts list.
    verts = [[float(i) for i in r] for r in rows]

if verts:
    # join vertices into one uninterrupted chain of edges.
    edges = [[i, i+1] for i in range(len(verts)-1)]

    mesh = bpy.data.meshes.new("mesh_name")
    mesh.from_pydata(verts, edges, faces=[])
    mesh.update()

    obj = bpy.data.objects.new("obj_name", mesh)

    scene = bpy.context.scene
    scene.objects.link(obj)


I found the answer you need to change min speed to 5 and max speed to 200 in vertex blur node in compositor and it fixes everything


Is there a way to select two individual UV islands, and grouping/parenting them to each-other?

Yep, I do that with Vertex snap enabled in UV editor, and then just move 1 of the UV islands over to the other identical one, it should snap right into place!


How to Bake High Poly Object Details (Shape) to the low poly object?

From experience, I and others will tell you that normal maps work best for details like bumps and crevices. They work very poorly--are unsuitable--for baking a "high poly mesh" whose silhouette is noticeably distorted compared to the original. You are not going to get anything good from that.
What you are trying to do in this example is similar to attempting to make the default cube appear as a uv-sphere (much rounder) just by turning on "smooth shading" for its 8 vertices. The problem is not just how light interacts with the object on its surface (a huge problem in this example), but that the silhouettes will not be changed with a normal map.
If you make both meshes the same shape and sculpt wood grain into the high poly mesh, that is exactly what normal maps are useful for and you can get nice results in Blender.


Modify the label of a predefined property Python

You just have to add in the text argument when adding the property, e.g.:

row.column().prop(ob, "location", text="New Location")

This overrides the default label. You can see the additional options for UI properties in the API documentation.


Why does my RigidBody jump weirdly in the begining of the animation?

You've chosen Shape > Convex, it makes the lid collides with the box, so instead choose Mesh which will respect the mesh shape. Also choose the minimum Sensitivity > Margin:


Just to illustrate batFINGER's point:

Delete faces with Delete > Faces.
Select an edge loop and extrude downwards.

To close the bottom, just Fill and Poke faces.


Go to User Preferences (CTRL+ALT+U) and check the Playback FPS box in the Interface header.


How to disable Pie menu when holding TAB in Blender 2.8?

Adjusting this is the same as previous versions, although the pie menu names have changed in 2.80 due to them becoming a permanent part of blender.

Before changing the key bindings, try adjusting the drag threshold, this will allow more movement before it considers you are dragging. This will be applied throughout blender, not just the mode menu.

If you still want to change the key bindings, you can use the filter to find key-binding entries that use the tab key.

You can then see the settings that are in place, you may want to delete the Call Pie Menu or assign it to a different shortcut, I use ⎈ Ctrl↹ Tab to bring up a mode menu.


What's the correct way of putting these objects together to form a game-ready asset?

You would most likely want to have all of these objects joined into the same mesh. You wouldn't use booleans for this. You need to unwrap, and texture, then rig and animate.


If I got what you ask, in this particular case should be easy:

After activating vertex snapping, select the side profile (which still has the right vertical curvature), and extrude that vertex edge snapping to horizontal edge (which still has horizontal curvature), and in the end you'll cover the entire missing panel.

Like this:

If you still have original shapes, though, you could also use booleans twice: the first as you did, as "difference", to cut the hole, and another one as "intersect", to get the cut panel as indipendent shape.

edit:

Since you like learning new tricks, I'll add another one here below, although I couldn't use it in your specific case, probably due to the specific topology you had in that file.

Here's the trick: if you have a "missing" surface, similar to what you had:

you can sometimes "reconstruct" it using the "grid fill" tool, like this:

which is way more elegant than manually reconstruct it... good to know, I think.


Is is possible for the Scene's in the VSE to automatically track their source objects?

This appears to be impossible.

We can force an update by setting the start and end frame values for Trim Hard. If the scene was not cut in the VSE and the values are 0 for both fields, we simply cycle through all the strips and set the fields to 0 for all scene type strips.

import bpy

def syncSceneLength(*pArgs):
    print("Syncing length of scene strips.")
    for s in bpy.context.scene.sequence_editor.sequences:
        if(s.type == "SCENE"):
            s.animation_offset_start = s.animation_offset_end = 0
def attachAsHandler():
    for f in bpy.app.handlers.frame_change_pre:
        bpy.app.handlers.frame_change_pre.remove(f)
    bpy.app.handlers.frame_change_pre.append(syncSceneLength)

syncSceneLength()
#attachAsHandler()

Paste the code in Blenders text editor. Pressing Run Script will update the scene strips in the VSE of the active scene.

I have added an option to attach the Update to the Frame Change Event. By removing the # character from the last line and running the script, the update function will be attached to the frame change event. On every frame change, the scene will sync the lengths of all scene strips. This may slow down Blender with an extremely large number of scene strips.


I can't change the parameters of a primitive after creating it in Blender 2.8

Try this: Top menu > Edit > Preferences > System > Enable Global Undo


Everytime I weight paint it moves the model

Your armature looks like it's set too low. If you lift it up a bit that may help with your problem. But also remember that weight painting is joining the bones to the mesh. They are meant to interact. It looks like you might have too many pieces of armature around the shoulders. I'm certainly no expert but I hope this helps.


Its certainly not possible and not preferable because at whatever place you join two edges you add a vertex , so you cant just join them , you need to have 2 vertices to join


How to search through multiple Blender files to find a specific object?

Use blendfile.py

Using the blendfile script outlined in answers to Is there a way to acces external .blend file's data with python script? to quickly read blend file and  run thru objects in a blend file without having to open it with blender.

Here is a simple demo script which prints out file name and a list of objects within that file.I've simply dumped the blendfile.py and script below as blendobjects.py in a root search folder. (rather than using sys.argv etc.. might get back to it)

# install as module or put in same folder.
import blendfile
from pathlib import Path

def get_id_name(block):
    name = block[b'id', b'name'].decode()
    return name[2:]

for file_path in Path('.').glob('**/*.blend'):
    bf = blendfile.open_blend(file_path)
    objects = bf.find_blocks_from_code(b'OB')
    print(file_path, [get_id_name(o) for o in objects])
    bf.close()

result (run in system console not blender), prints blend file name and a list of objects in that file, which can be redirected into a file and searched.

batfinger@shitbox2:~/Documents/blender$ python ./blendobjects.py
MS2Props02.blend ['Camera', 'Mesh_0449', 'Mesh_0449.001', 'Mesh_0484', 'Mesh_0484.001', 'Mesh_0490', 'Mesh_0490.001', 'Mesh_0773', 'Mesh_0773.001']
yawpitchroll.blend ['Camera', 'Cube', 'Empty', 'Lamp', 'Suzanne']
tests/snoff.blend ['Camera', 'Cube', 'Lamp']
tests/aubio_tests.blend ['Camera', 'Cube', 'Cylinder', 'Lamp']
tests/untitled.blend ['Camera', 'Grid', 'Lamp']
tests/belt.blend ['Armature', 'Armature.001', 'Camera', 'Cone', 'Empty', 'Empty.001', 'Empty.002', 'Empty.003', 'Lamp', 'Torus']


I don't seem to have blur node, using v2.69

The "Blur" node is only available in "compositing" node tree type. The type can be chosen at the bottom menu-bar of the Node Editor window.

The 3 little icons correspond to the 3 node tree types available :

Shader nodes (for materials)
Compositing nodes
Texture nodes


How can I blend a moon/planet (textured sphere) into the background (procedural sky texture)?

In the compositor, use a Color Mix node to mix the moon and the background. Set it to Add mode, so that only the bright areas affect the background.


These are now hidden by default to provide a cleaner and easier UI for beginners while still presenting enough functionality for most common use cases.

For more complex projects or advanced users Outliner Restriction Toggles can be turned on or off and customized according to personal preference from the Filters pop-over in the Outliner header.
There you can choose which restrictions columns are visible in the outliner by default.

You can still control collection visibility restrictions if the columns are off from the context menu by right-clicking an object and accessing the Visibility submenu.


Apparently, as of Yafaray 0.1.99 Experimental, with Blender 2.75a, the native particle system is now supported.


⎈ CtrlZ is the shortcut for undo, if you have global undo enabled in preferences (which is enabled by default) then the undo stack can contain steps from multiple windows, this means that undo may change the node editor if you made a change there before going to the 3dview and doing undo.


How to change "View port" background color in v 2.8 Grease Pencil

Go to Shading and change the color
Hope that helps.

Good Luck


Application addon using bpy.data.scenes causes: AttributeError: '_RestrictData' object has no attribute 'scenes'

You shouldn't access or change properties before the add-on is properly loaded. The unit settings can be changed for example in an operator as can be seen below:

bl_info = {
    "name": "Make Imperial",
    "author": "Robert Guetzkow",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "Dummy panel in View3D",
    "description": "Changes the unit settings to imperial",
    "warning": "",
    "wiki_url": "",
    "category": "3D View"}

import bpy

class EXAMPLE_OT_make_imperial(bpy.types.Operator):
    bl_idname = "example.make_imperial"
    bl_label = "Set unit settings to imperial"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        bpy.context.scene.unit_settings.system = 'IMPERIAL'
        return {'FINISHED'}

class EXAMPLE_PT_panel(bpy.types.Panel):
    bl_label = "My own addon"
    bl_category = "Name of your tab"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"

    def draw(self, context):
        layout = self.layout
        layout.operator(EXAMPLE_OT_make_imperial.bl_idname)

classes = (EXAMPLE_PT_panel, EXAMPLE_OT_make_imperial)

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

def unregister():
    for cls in classes:
        bpy.utils.unregister_class(cls)

if __name__ == "__main__":
    register()


Creation of the emboss filter effect

Blender has no emboss effect node, you have to recreate it, hopefully this effect will be available in the future into one node.

An emboss effect basically duplicates an image in two directions defined by an angle direction, one of the two images has his colors inverted. From 0/(-)180 the direction is only horizontal, from 90/-90 it is noly vertical. If the angle is set to the left with for example 95 the horizontal images are inverted, if it's at the bottom like -20 the vertical images are inverted.

The emboss takes three inputs:

the image on which to perform the emboss
the angle, it's the direction of the emboss
the height, it's how strong the image are separated

To better understand how the angle works, it will define a multiplier for the X and Y direction:

Angle at 90: it sets a multiplier at X: 0*height and Y: 1*height so the images won't move horizontally
Angle at -90: 0*height and Y: -1* height, the vertical images will be inverted
Angle at 45: X: 0.5*height and Y: 0.5*height
Angle at *-45: X: 0.5*height and Y: -0.5*height, the vertical images are inverted but not the horizontal because the angle is at the bottom right and not bottom left.

So here is the node setup to achieve the emboss effect, you can download the node setup here: https://drive.google.com/file/d/18BIzLtwe_27HdtuB2ZZ_lfYCcq3Ym4Qv/view?usp=sharing

The node setup starts the three inputs above. The image is set in black and white and one is inverted.

For the Angle it is converted into a radians in order to works for the value is multiplied by Pi: 3.14159265359 then divided by 180. To define the direction multiplier the X value uses Cosine (the second value doesn't matter, it has no effect) and the Y value uses Sine.

The height is divided by two, because to have a separation of 50 pixels for example you need to move at 25 pixels in each direction. The value is multiplied by the direction multiplier then the X is plugged to the X input of a Translate or Transform node and the Y to the Y input.

The non-inverted image colors must have is translation values inverted and for the inverted image colors the translation values aren't inverted.
In the node setup above the top translation has the image inverted and the bottom has the values inverted.

Finally both images are combined with a Mix or Value node at 0.5.

A Gamma node at 2.2 can be added after it to convert the image in Linear like the generated emboss effect of Photoshop. Keep it in sRGB (without the gamma node) to work on it with gradient colors or to overlay it.

What can you do with the Emboss effects?

Almost every game artists use the Emboss to generate a curvature map from a normal map.
On a normal map the Red channel creates lighting coming from the right, so with an emboss at 0 degree and height generally of 1 to have 1 pixel width (Substance Painter's curvature use an height of 8) overlayed with the green channel with an angle at 90 degrees and the same height as the red you can generate a curvature map. Don't forget to set your normal as Linear in the "n" menu to convert the image in sRGB to get a correct result:

Additional informations:

Normal to curvature map (a quicker way to generate it without doing the emboss math nodes): https://blender.stackexchange.com/a/72602/23134
Normal to curvature smooth map: https://blender.stackexchange.com/a/100637/23134
Fake hand painted texture: https://blender.stackexchange.com/a/90153/23134


How can I make a surface look wet in cycles?

You need larger bumps. Using only the roughness from the glossy shader gives too smooth a result.

With a very quick setup:

The diffuse node represents the asphalt/road underneath the water. By mixing this with a glossy node based on the IOR of water (~1.33), it appears as if there is a thin film of specularly reflecting material (water) on top of a very bumpy diffuse material (road).

This could use a bit more large variation (cracks and large features, etc.), so you may want to use an image texture instead.


Viewport clipping noise(?) with a huge object

When dealing with very large or very small objects it is likely that you run into problems with lack of precision in the depth buffer. 3d engines cannot precisely determine which objects are in front of others, creating z-figthing. The fix is to adjust the Clip Range so that it encompasses your scene, no more, no less.
Select the camera, then in the camera section of the properties window set clip start and clip end.

To visualize the clip range, enable Viewport Display > Show > Limits


One half of my object is darker than the other

I have 2 possible solutions. One, try (in edit mode) pressing {control n} which will recalculate the normals. If the normals are incorrect then it will fix that. Otherwise, it's just a question of shading.


How do I put my 3D view back to normal, how it is by default?

You have enabled the Quad View. To get back to the 3D view press Ctrl+Alt+Q.


Images created in blender are not saved by default, nor are they packed in the file if they don't exist in a drive somewhere in your computer, you have to save them manually.
Unsaved images will show an asterisk on the top of the image viewer (or the UV editor)

To find unsaved images you can use the outliner.
Set it to Data API mode.

Expand the section for images.
If the image has not been saved the File Name section will be empty:

Saved images will show the path:

I'm sure that someone intelligent with coding skills, can come up with a script to automate finding which images lack a path and list them or save them...


Modeling a cylindrical object to resemble an image reference

1- Model the main object and the shape to use for Boolean modifier.

2- Select the main object, in Modifiers panel, add a Boolean modifier, assign the object you want to extract under (Object) in Boolean modifier.

3- Choose Difference as the Method, then Apply the modifier.
4- Delete the extraction object or move it to another layer.

The disadvantage of this method is that it'll create Ngons, yet since this a radial symmetrical object, you can model 1/8th of the object first, use the Boolean modifier and apply it, fix the Ngons by connecting vertices using J or using knife tool K, then copy rotate it 45 degrees, in order to get the whole object.


Mesh Dilation or Expansion for 3D printing Project

Depending on the mesh a displace modifier with default settings will inflate or deflate the mesh along its normals. Tweak the strength to vary the effect.

Concave mesh will self-intersect if the strength is too high or too low so keep that in mind.


Customizing the Rigify meta-rig, Constraints & Custom Drivers, what's the solution?

You can't, at least not easily. The only rig type that preserves constraints after generation is the Raw Copy. And that one is pretty advanced and I am not sure what the correct usage for it is.
The only thing that would work without serious coding knowledge is to finalize your meta rig and add your constraints on the generated rig.


Invisible wall that doesnt appear during modelling, but on rendering

You have an object just named “Cube” that is hidden in viewports, but not in renders:

This object obscures the camera:

Either delete the object or disable it for renders as well, and your problem will be resolved.


The values are stored in the Startup-File if you change them after launching Blender you can set the values and save the default-scene as Startup File Ctrl-U.

You can also restore the Factory Settings from the Menu: File / Load Factory Settings.


How to rotate set of textures using Texture Coordinate and Mapping nodes?

When you rotate a normal map, a good way of thinking about is that you are rotating the light direction as well. (Which is what you're seeing.)
To rotate correctly by 90°, you'll have to rotate the "light direction" back by -90°.
You can do this swapping the X and Y vectors. You also need to invert the (orig) Y. See here:

This is how you rotate by 180°:

EDIT: Re. angles which aren't multiples of 90°: It is possible, but a bit more complicated.
Here's a node setup:

So, I made a Node Group. Let me know if this works correctly or if I made a mistake. ;)

EDIT2: scurest has added an easier method in the comments: Rotate the output of the Normal Map node via Mapping Node.
So, these two are identical:


How to iterate over material index using Python

The fastest way to loop over the object's materials is through its material_slots attribute. Here's an equivalent code for toggling all object materials shadeless property:

import bpy

for m in bpy.context.object.material_slots:
    m.material.use_shadeless = not m.material.use_shadeless

The only issue I see in your own code is that you're assigning the material to a variable before changing active material index, which renders the latter operation moot. Changing the index before assigning the resulting material to a variable, will yield the result you want.


I would like to apply high mesh details such as wrinkles and pores. Should I apply to the base sculpt or to a lower poly retopology?

You could duplicate your object, sculpt on the copy with Dyntopo, then bake the result on the original object.

Another method is to use the Multiresolution modifier then bake the result on the same object as explained here by PIXXO 3D. It works fine with 2.79, not with my version of 2.8 but it may have improved since.

Subdivide your object a bit. Shade Smooth it. Unwrap it (Smart UV Project for example).

Give it a Multiresolution modifier, click Subdivide 2 or 3 times, sculpt the object.

Create a blank picture, prepare your node setup, make sure that the Image Texture is set to Non-Color Data.

Bake the normals.

Deactivate the Multires modifier. Check the result.


Trying to create a rig from scratch - My mesh "handles" flip and scale

Make your mesh & bone structure then do the following:

1st - Download and install "orient_custom_shape_V2.py"
from: https://developer.blender.org/F207430

in Blender at Top:
File > User Preferences > Add-ons > Rigging > check the box for "Rigging

Orient Custom Shape"

2nd - Import Illustrator splines or draw curves directly in Blender
3rd - Ctrl + j to join all curves in your object (two at a time)
4th - Select objects then Alt + C (convert to mesh)
5th - Set each object to size and position then Select each then Ctrl + A

to apply roation and scale and location
6th - Name each bone then name each new object you created
7th - Select Armature (bones) then go into "Pose Mode" select a bone then

in the bone tab on the right scroll down to find "Custom Shape" dialogue

box & write in the name of object to change for (Remember to click the

"Wireframe" box just at the left)
8th - Under the "Custom Shape" you'll see "At" box in which you give the

name of the bone
9th - Finally just click on "Orient Custom Shape"

Now in "Object Mode" you can click on your character mesh, then Shift +
click your rig


Follow path breaks up parent-child positions

I'm not sure I can assist without seeing the actual file, but sometimes it helps to parent the main mesh, in your case the hull of the ship, to an empty, and set that empty to follow the path.


Blender forces computer to reboot after mistyping extreme value for resolution icosphere

Fixed as rB60575480 (now max possible value is 10 here, which already means 2.6M vertices…).

But please next time report such issues on our bug tracker.


You can find out the answer to this in several ways. Here's what I did:

Use the UI tool (mark the middle edge then press CtrlB to bevel).
Go to the info panel (above the 3D view on the default layout), and open it up a little bit. Not always, but often, using the UI commands and operators will print out the command used in the info panel. Here we can see that the bpy.ops.mesh.bevel operator was used.
To further explore this command and its documentation, open the python console. Type in:

bpy.ops.mesh.bevel(

Then press CtrlSpace to see the autocompleted documentation for this operator. In this case:

bevel()
bpy.ops.mesh.bevel(
    offset_type   = 'OFFSET',
    offset        = 0,
    segments      = 1,
    profile       = 0.5,
    vertex_only   = False,
    clamp_overlap = False,
    loop_slide    = True,
    material      = -1
)

This shows you all the parameters and their defaults, you can then experiment with other values and search for this operator in the official docs to review any additional information you might need.


Spin mesh (to create solid of revolution)

You could use the spin provided by bmesh operators. This doesn't require any particular context. Here's an example:

From sverchok source code:

import bpy
import bmesh
from bmesh.ops import spin
import math

def lathe_geometry(bm, cent, axis, dvec, angle, steps, remove_doubles=True, dist=0.0001):
    geom = bm.verts[:] + bm.edges[:]

    # super verbose explanation.
    spin(
        bm,
        geom=geom,         # geometry to use for the spin
        cent=cent,         # center point of the spin world
        axis=axis,         # axis, a (x, y, z) spin axis
        dvec=dvec,         # offset for the center point
        angle=angle,       # how much of the unit circle to rotate around
        steps=steps,       # spin subdivision level
        use_duplicate=0)   # include existing geometry in returned content

    if remove_doubles:
        bmesh.ops.remove_doubles(bm, verts=bm.verts[:], dist=dist)

obj = bpy.data.objects['Graph']
bm = bmesh.new()
bm.from_mesh(obj.data)

axis = (1,0,0)
dvec = (0,0,0)
angle = 2*math.pi
steps = 20
cent = obj.location

lathe_geometry(bm, cent, axis, dvec, angle, steps, remove_doubles=True, dist=0.0001)

bm.to_mesh(obj.data)
# obj.data.update()   # if you want update to show immediately
bm.free()

Things to be aware of:

A small update in 3d view is required to see the result. The mesh will get updated whenever Blender call updates, so you don't strictly need to force the update yourself, but you can if you want to by called obj.data.update()
Possible downside of the bmesh.spin is that the order/topology of faces is not guaranteed or predictable.

You might prefer to use a further abstraction, which assumes the center of the rotation is obj.location: https://gist.github.com/zeffii/d4efc7c346d6aa90ae18


Is there an equivalent to Remove Doubles for Bezier curves?

There is no equivalent to Remove Doubles for Bezier Curves. This is likely due to the difference in the nature of Curves versus Meshes. As Denis stated, if the two points have different handle positions, how should this be, um, handled? ;-) Should the handle positions be averaged together? Also, Remove Doubles can just merge vertices based on a distance threshold no matter how many edges are connected to it, but Curves are fundamentally different since a point cannot have more than two segments connected to it. Simply put, Curves are linear while Meshes are non-linear.

This doesn't necessarily mean such a feature couldn't be implemented, but it would have limited use cases, and for non-identical doubles it would have to make reaching assumptions about how you want your points merged. For example, if your Curve doesn't cross itself you may be alright, but if it does it could easily end up getting merged at the intersection and the path rerouted in an unexpected way. Here's a screen shot to illustrate what could happen hypothetically:

In conclusion, it could be useful in cases where the doubles lie right on top of one another, but at higher distance thresholds could produce unexpected results. Such a feature could be useful for certain situations, such as for removing points lying on top of one another that you can't see.

For now, you could find such disconnected points by selecting at least one point on each of your curve segments you intend to keep, using Select Linked CtrlL, Hiding them H, then Select All A and Delete X the disconnected left-over points. Then Un-Hide AltH the segments you will keep.


Sverchok. A file which worked fine 2.8* no longer works in 2.91.0

reget object in
reget path
switch POLY in viewer
https://yadi.sk/d/li_uYmjR2dLsxA
try this


ScriptingText Ascii Art to 3d Text Mesh - Ways to preserve spaces when converting txt to 3d Object

You need to set the font to a monospaced font.  BFont is proportional and so the characters are different sizes.

I used Consolas which is a monospaced font, and the text is exactly as it looks in the editor.  I believe Consolas ships with Windows.

This is with the default BFont:


Object A make Object B expand on ingoing and then shrink on outgoing

As Vklidu says you can use the Cast modifier, you can also use the Lattice modifier:
Create a lattice, scale it in Object mode so that it can contain the cube object that it is supposed to deform, put it at the same position as the bullet, parent it to the bullet, give your lattice a bit of Resolution in the Object Data panel, modify it in Edit mode so that it has the deforming shape you want, give your cube object a Lattice modifier with the lattice as lattice Object:

Now when you move your bullet the lattice follows and deforms the cube:


How do you copy things like rigidbody constraints and force fields to other objects?

to add force field to all selected objects :

import bpy

for ob in bpy.context.selected_objects :
    bpy.context.scene.objects.active = ob
    bpy.ops.object.forcefield_toggle()

to run the script copy it and paste in the text editor and cick Run Script

to copy constraints from one object to others :

to copy rigid body constraints select the objects while the active object is the one with constraints and run this script :

import bpy

Type = bpy.context.active_object.rigid_body_constraint.type
obj1 = bpy.context.active_object.rigid_body_constraint.object1
obj2 = bpy.context.active_object.rigid_body_constraint.object2
use_br = bpy.context.active_object.rigid_body_constraint.use_breaking
over_itr = bpy.context.active_object.rigid_body_constraint.use_override_solver_iterations
for ob in bpy.context.selected_objects :
    bpy.context.scene.objects.active = ob
    bpy.ops.rigidbody.constraint_add(type = Type)
    bpy.context.active_object.rigid_body_constraint.object1 = obj1
    bpy.context.active_object.rigid_body_constraint.object2 = obj2
    bpy.context.active_object.rigid_body_constraint.use_breaking = use_br
    bpy.context.active_object.rigid_body_constraint.use_override_solver_iterations = over_itr


New Editor make the toolbar always on top


Is there a way I can get object's position relative to the origin point(0.0.0)?

The objects origin is the (0, 0, 0) point of it's data. No matter what object location, rotation or scale is.  An object, the default cube for instance, has one origin, it's location is arbitrary.  We could put the cursor anywhere and change the origin to that point, using transform > origin to cursor, and for all extents and purposes the cube's mesh doesn't move.  What does change tho is the local data (the vertex coordinates) and the object location to match.

The default cube has a vertex with coordinate (-1, -1, -1). If we make the origin point at that vertex' location, the vertex will now have the coordinate, yep you guessed it, (0, 0, 0).  The cube will now have a location of (-1, -1, -1) instead of zero... looks like it hasn't moved, only the little orange dot specifying its origin moved.  Local coordinates is a fundamental of 3D.

Now how does this apply to your car model.  You want to have an origin where x=0 is in the middle of your car from the front.  This will enable you to use mirror effectively.

One way to do this:

Select the tail lights (or the windscreen or something that's centre is the centre of vehicle), go into edit mode, select all verts.  Snap shift-s cursor to selection.  Look in the 3D cursor panel.  It's the x offset that has put your model out of whack.

Get out of edit mode.  With just the lights selected, set origin to cursor at this point will put it right in the middle shown in image above, but onlyh for the tail lights.

Or at this point to change origin of all car parts to a centre:

Keep the 3D cursor's X location value and change the Z and Y values to suit, 0 is good.  Now select every object that makes up your car. Object > Transform > origin to 3D cursor.

Another tip at this point would be to add an empty at cursor location.  Make it the parent of all the car parts. This way moving the empty will move the car as one.


How to join two vse video edit projects?

I'm assuming you have File1 and File2, and want to transfer the clips from File1 to File2.

Open File2 and select File > Append ShiftF1.
Navigate to File1 and "open" it. In Append mode we can view the contents of the file. Click on the scene folder of the file and select the scene, which you want to append. You can see the name of the scene in File1, if you open it and look in the top Header/Info Bar.
After selecting and appending the extra scene you can switch to it in the current File2. Since both scenes in File1 and File2 had the same name, the appended scene from File1 was renamed to Scene.001.

Open the scene originally from File1 (but now in File2), select all strips and copy them with Ctrl C.
Open the other scene and paste the strips.


OSL Script node: Slider with value range between 0 and 1 (like Fac)

March 14 2016
The markup enclosed in the [[  ]] is known as "suggested metadata", it's shown in the OSL specifications pdf, something like this:
surface wood
            [[ string help = "Realistic wood shader" ]]
    (
        float Kd = 0.5
            [[ string help = "Diffuse reflectivity",
                float min = 0, float max = 1 ]] ,
        color woodcolor = color (.7, .5, .3)
            [[ string help = "Base color of the wood" ]],
        color ringcolor = 0.25 * woodcolor
            [[ string help = "Color of the dark rings" ]],
        string texturename = "wood.tx"
            [[ string help = "Texture map for the grain",
                string widget = "filename" ]],
        int pattern = 0
            [[ string widget = "mapper",
                string options = "oak:0|elm:1|walnut:2" ]]
    )

is not currently supported, it gets ignored.
Until someone implements the parsing of suggested metadata the best you can do is implement the clamp yourself in your OSL code. The UI would still allow you to input values outside that range, therefore cosmetically this isn't a good solution, but if you make your code  deal with unwanted extreme values appropriately you'll still get stuff done.
Later when metadata parsing is implemented it's easy enough to strip away your clamping code.

related: Can a Script node using OSL have a checkbox?


One possibility:

Add a bone that begins in the rotation axis. Any other object will do as well because I don't use a rig but simply a parent/child.

Parent the bone to the top of the chest and the bottom of the chest to the bone.

Lock the location of the bone and two of the rotation axes (depends on how your bone is rotated).

Now you can select the bone and press R to open and close the chest independent of the chests position or rotation.

Note that you don't even need a third object for that (bone). If the top's origin is on the rotation axis then you can parent directly and lock position as well as two rotation axes.


Update, UV islands in Vert/Edge/Face modes has been added

In the operator options, enable UV as a delimiter to select UV islands:

Select a vertex/edge/face.
Press Ctrl+LKey.
Enable UV option in toolbar.

Previous answer (Versions 2.74 or older)

Select linked can delimit by seams, but this only works in face-select mode *:

Switch to face select mode
Press LKey over the region, the selection will be restricted to the seams.

If you don't have seams around the UV island, you can automatically create them.

Image Window, UV -> Seams from Islands

* - this is intentional, select-linked traverses only faces in face-select mode, and edges in vert/edge mode.


The short answer is that your result is the expected from smooth shading. Forgive me if I cover info you already know here.

A normal vector is a vector that points directly away from a surface. They are used to determine which way a face is 'facing' in terms of how it interacts with light. In Blender, these normal vectors don't always actually point straight away from faces.

The leftmost cube has flat shading. What this effectively means is that each face is acting as though it is detached from the other faces. At each corner of the cube you see three normal vectors, each pointing directly away from the face they are a part of.

The middle cube is smooth shading. The normal vectors of the vertices at each corner are the average of the normals of each face at that point. The normals across the surface of the face are interpolated between these vertex normals. So you can imagine at the exact center of the face, the normal is pointing straight out, but the closer you get to one of the edges, the more the normals are pointing sideways. In terms of how blender is lighting the smooth cube, it looks like a sphere.

The rightmost cube also has smooth shading, but more geometry. The vertex normals are still the average of their surrounding faces, but because there is now geometry confined within each flat face, those internal vertices have normals pointing straight out, and the smooth shading is merely creating the illusion of rounded corners.


How do I get the object to the ground floor grid?

Sometimes it is difficult to locate the exact location of your object in the 3D editor.

You can directly set a number of properties for Meshes and other items in the Properties Panel.

The Properties Panel can be toggled with the 'n' key in any 3D view(and a number of other views).

To set the Location to 0 for X,Y,Z click and drag from the X input box to the Z so they are all highlighted. Then just type 0 to set them all to the same value.


You could try hooking up a Pointiness node to a ColorRamp. If you're working in the experimental 2.8, the Ambient Occlusion node does exactly what you're after, and you can ramp it, as well. In addition, if you check the 'inside' box, you'll see where are your strongest ridges and outcrops are.

Since it is an experimental version, I'd suggest saving a copy of your model when you're finished modeling it, and uploading the copy into 2.8 just to bake out the AO shader as a map to use in your original.

You can also bake out the AO directly in 2.79, but this requires world setting and futzing around with lights, plus your results are usually very noisy under 2k resolution. The shader in 2.8 is both simpler and faster, plus it looks much cleaner. If you want to go for the 2.79 option, the wiki actually has a good tutorial on it, and you can find it all over YouTube.

Please Take Notice: Currently, the Ambient Occlusion node 2.8 only works in Cycles, not Eevee. As you start in Eevee by default, you'll need to switch your render engine, now located under the render settings tab.


Rigid Body Joint Constraints can't hold model together in game engine

Due to lack of solution I gave up on trying this experiment in blender.

I also investigated V-Rep as possible alternative only to find out that it has same issue.

In the end it looks like I'll have to do that experiment (when I have time) in unity3d, because PhysX apparently does not have this stability problem.


Lamp lightning torus shape

Blending can be changed by Lamp Properties > Size


Deform mesh along another mesh without distortion

Simple Deform will give you slightly different results if the objects are not exactly the same. Not very good at deforming multiple objects and keeping them together as far as I know D:
Try this instead:

Select the first or last control point of the curve.
Scale the control point with ALT+S or through the N Panel.
Select ALL curve points and Right Click to bring up the Context Menu
Select Smooth Curve Radius.

Note that this aligns the curb way better, but it's still deformed. Everything you want is certainly possible, but doing it in a way that's 100% non-destructive and easy to modify and without deforming the curb width... all of that at the same time requires a not so simple setup or a more destructive approach unfortunately (or learning Houdini).

If you don't mind being more destructive, you can Shift+D to duplicate the edges of your road (you will have to apply your modifiers to create real geometry first). Then convert those edges to curves and use these new curves as paths for your curbs to follow.


In addition to the cycles that restricts the frame range ends at 85, add another modifier Limits and set Max X to 85 or 84.


How to make an arch in a model w/o Bezier Curves and w/o adding separate objects?

I've kept your topology but no need for so many edge loops. Anyway, you could use the Bridge tool:

First, tilt a bit the top faces of your left and right columns.
Press W > LoopTools > Bridge, or W > Bridge Edge Loops.
Play with the parameters on the bottom of the Tools panel.
Fill the hole the way you want to finish the work. Here are 2 ways to do it, maybe there's a better one though.


Like this?

I used a bezier curve, The less points you put the smoother it is.


I read that, in the game engine, Child of is partially supported- you can parent to objects but not to bones.

Add an empty to the character's hand bone and also have another at the hip where the sword rests when sheathed, parented to the hip bone.

Then you could try parenting the sword armature (using child of constraint) to the empty. You could also try with the sword object itself, without the sword's armature.


Thank you for your help, I did that and although it all stays in the
  same position which was what I was looking for, they stay on the
  position it was in "Edit mode". I would like to have my character
  aligned with all the axis. How can I do that?

You have to align it in Edit Mode.

Edit mode is like if it was more important than the other modes, it goes something like Edit Mode > Object Mode > Pose Mode. This is like this because in edit mode you have the information of the mesh, in object mode the information of where is the mesh (and it's rotation) and in pose mode you have the information about how is the mesh deformed.

So use blender with this hierarchy in mind and you will ready to go.


Select the edges that should be sharp and use Shift+E to adjust the Edge Crease. This controls the weight used for the edge by the subdivision surface modifier. Alternatively you can also control the value in the sidebar. Open the sidebar with N > Item > Transform and change the value for Crease.


Cycles: How do I add an input socket to a node in cycles?

No, those node inputs represent hooks within the code that gets executed by Cycles itself. Not even OSL is enough in this case, you'd need to modify the source code of Cycles itself to allow frame number to accept arbitrary shader input instead of a fixed value.


Are Groups or Sketchup-like components feasible in Blender?

The  Dupligroups or Collection Instance workflow in Blender are indeed a bit unorthodox, and somewhat different from other applications (like so many other things in Blender), but not any less capable.
TL,DR
The gist of it is that in Blender group definition and group usage are two separate and distinct procedures all together. This means you can't directly edit an instance of a group/collection, nor can you generally define a group directly from its constituting parts at target location.
Explanation
Dupligroups or (Collection Instances for 2.8+) are a way of creating bundles of independent objects that are grouped together and can then be deployed as a single object or stored as a library for later reuse. In most ways similar to AutoCAD Blocks, Sketchup Components, or 3DsMax Groups.
Unlike most other programs however, group definition and group use are completely separate in Blender, that means you define a group with a set of included objects but they aren't 'converted' into an instance of that group, nor is a group directly created from them at present location. They always remain as a separate editable "originals" you can go back to to modify, but never directly use nor actively participate in your actual scene.
In much the same way an instance of that group is generally an independent object chosen specifically as duplicator that generally has no other geometric data or geometry associated with. The group/collection instance is also not editable, merely a dummy used to mirror what was defined above.
Suggested Workflow

In a work file (or even a separate 'library' file if you wish to reuse them later or in different files or across projects) I usually create a new separate scene exclusively for "group definition" where I create your "group originals". In 2.8+ with the advent of Collections, you can simply create a separate "master collection" (called "Instances" for example) inside which you will place all your "originals" and define your groups or components. In your particular case that would be where you would place the window frames.

Those objects can then be grouped (with Ctrl+G for 2.7# or moved into individual sub-collections with M) and they can belong to several distinct groups/collections at once even (say one same window with a handle other with hinges and all possible combinations).

Each group/collection has by default it's own origin at the scene's center (coordinate $0,0,0$) but this can be adjusted to accommodate several group definitions in the same scene but keep their individual origins in a convenient place relative to their participating objects. If you go to the Properties Window > Object Tab > Groups (Collections for 2.8+) you can set a different origin for each group (use the option Set offset from Cursor for easier adjustment).

You can also create nested groups, or groups instances inside groups
if you wish to have several modular reusable components that are
repeated and combined often in different ways.

Adding instances to a scene
In your actual work scene where you want to use your group instances just access the add menu Shift+A and choose your group from the last menu entry Group Instance. This will list all available instances (both local and linked) in a searchable menu.
Group instances are generally used from an Empty type of object by default that doesn't have any mesh data or geometry of it's own. Only exception is if you want to create a non renderable dummy geometry as helper object for snapping or correctly placing the dupligroup in a scene. For 2.8 this is mandatory, instancing from other object types has been deprecated.
Adding objects to existing groups

Select all newly added objects you want to add to an existing group,
then Shit-select an object already in the desired group,
making sure both remain selected, but the object already in the
group remains the active one.
Then press Ctrl + L > Groups to match the
groups from active to all selected objects.

Advantages and Disadvantages
By keeping group definition and group use separate you gain some and you loose some.

You can't edit instances in place.

You can't really add an object to a group directly through it's
instance, you always have to go back to the original and do it there; changes propagate automatically to all instances.

You do avoid trouble with object offsets, since they were safely
preserved and well defined at source.

Editing in cluttered scenes can be made easier by separating the two actions.

Same objects can participate in any number of groups/collections
saving some resources.

Creating groups with similar features or variations is made more
modular and less repetitive.


Hollow / Solidify a Mesh (Without Intersecting Faces)

Yes.  Depends on your definition of straightforward.  Using python and MetaBalls.  MetaBalls are volume based so you are guaranteed a manifold outcome with no self intersections.  However detail preservation will only be to the resolution of your offset and to the detail of the volumetric isosurface calculation with the metaballs.  I use several methods

1)  Add a metaball at every vertex of radius R = offset
2)  Add a metaball at every vertex and a meta elipse at the center of every face (circumscribed by the face)

I pre-process a copy of the mesh to have vertex density such that distance between metaballs is about 1/2 the desired offset.

Works great.  If you want code.  It's going to be a bear to read because it's part of an enormous dental project.

https://github.com/patmo141/d3guard/blob/master/meta_modelling.py

https://www.youtube.com/watch?v=Ih4_wb1tegE


You were probably searching for the wrong keywords for your tutorial, you may want to search for "Physics Chain" instead.

This one seems to put you in the right direction.

Anyway you will have to model your chain of links in some sort of rest pose, using the Physics tab in the 3D view Toolbar set all chain objects to Add Active except for the ends of the chains or any fixed objects they will attached to, which should be set to Add Passive instead.

For all of them make sure you change the Collision shape to Mesh under the Properties window > Physics Tab > Rigid Body Collisions Panel > Shape and the Source to Final if they are using any sort of modifiers.

Also set the Mass and Margin properties to a low value under the Rigid Body and Rigid Body Dynamics panels, like 0.001 depending on the dimensions your objects.

You will almost likely need to increase the precision steps of the simulation  to a higher value under Properties window > Scene Tab > Rigid Body World Panel > Steps per second. Probably a high value like 1200 or higher.

Also for simplicity sake if you have repeating parts in your lamp like equal chain strings you may want to make a group out of them and clone the group instance instead, so Blender will only calculate physics for one instance. Although if you plan to make it react to physics this will not work.


In the screenshot you have multiple object selected.
You can select all keys in a frame when you select only the armature (Armature.001), then there will be a yellow dot in the Dope Sheet Summary line.

Right click ( RMB) to select this keyframe
⎈ CtrlC
Select the destination frame ( LMB)
⎈ CtrlV (paste)

Or in one step:

Select keyframe ( RMB)
Duplicate and move with ⇧ ShiftD


(Disclaimer: subjective answer based on my own opinions)
Depending on the look you want to go for and the render engine:
1. The Internal Render Engine
You want a daylight scene
I would recommend setting the sky to a generated type. (Have a look in World > Sky. Enable Generated and Blend. Try changing the color swatches, especially the Horizon one) If this works for you, good. Place the jpg:s where you want. In their material settings enable Shadeless (if my memory isn't failing it's under Specular) and disable Traceable (near the very bottom). Oh, and to simplify your life, have a look at the Import Images as Planes add-on. It sets up the UVs, the aspect ratio and the materials automatically.
You want a scene lit by the lamp.
I'd consider using an area lamp (add > lamp > area) that is near the actual lamp's position and shape (See in properties > lamp). You could try to move it down a bit to better light the ceiling of that's what you want to go for. Playing with the lamp's color can also yield interesting results.
2. The Blender game engine
Please consider trying baked light. Andrew Price made a good tutorial about it here: http://www.blenderguru.com/tutorials/introduction-baking-cycles/
You want a daylight scene
This could be tricky. Your best bet could be to use spot lamps that shine through the windows. You could have the jpg:s in the way as they don't cast shadows by default. I am not sure that the results would in any way be convincing.
You want a scene lit by the lamp
The best I can think of is using a spot to illuminate the floor. Maybe combine it with point lamp to fake indirect lighting of the roof.
3. The Cycles render engine
You want a daylight scene
You want to use your HDRI
Crank up the emission's strength. Making the jpg:s work requires some extra trickery, refer to this: https://m.youtube.com/watch?v=8auLtssTkEg
You probably want to disable the planes blocking light. Simply replace the diffuse by a transparent node.
You want to use the JPG:s as a source of light
Simply use them as they come out of the Images as Planes add-on. Maybe strengthen the emission. In this scenario you can discard the HDRI
You want to make a scene lit by the lamp
Simply make the neon tubes emissive.
I hope this helps.


In your screenshot in the right panel the camera far plane clipping is set to 1000km which is far to high. set it to somewhat around 10m to 1km depending on what you need


How can I make objects emit directional light in Cycles?

As you asked for a wide area :

Use an area lamp framed by an open cube (or another shape).

The lamp material is constrained by a constant falloff so that you have sharp borders on the light projection.

The open cube, is hidden on the rendering and diffuses nothing, due to this setting in its object properties :


In your case using a boolean to dig this slot seems like the thing to do. Maybe first simplify your topology, i.e. delete one edge loop out of 2 like this (ring select edge loops, then checker deselect, then select edge loops then dissolve edge loops):

Once you apply the Boolean modifier you have this shape:

You need to work on it to have a clean topology and a sharp angle, begin by creating a bevel along the slope:

You must end up with something like this, a topology with quads only:

Here is what it gives with a Subdivision Surface modifier:


how to repair multiple addons with the same name found?

Check in the scripts/addons directory where the blender is installed.


Depending on what you are trying to accomplish (a sketch of the desired result might help) and how much patience you have, you may want to use either sculpt mode or proportional editing in edit mode.
Sculpt mode is helpful if you have a large number of vertices, or if you want to deform meshes with natural strokes of the mouse. If you need more precise control, proportional editing allows you to move individual verts/edges/faces around, and the neighboring geometry will "stretch" in similar ways. Both of these allow you to adjust the radius of effect.


All you need to do to get ride of these edges is simply delete them, and then refill the empty spaces.  Just follow along with the images below:
step 1: in edit mode, select all undesired edges

Step 2: press the "x" key, then click on "edges"

Step 3: your shape should look like this after steps 1 & 2

Step 4: Select all the edges on one side around the spot with a hole

Step 5:  with the edges around one of the holes selected, press the "f" key on your keyboard.  After that, it should fill in the hole, like in the image below:

Step 6:  Repeat steps 4 & 5 on the other 3 holes.  After that.  You should have a mesh that looks something like this:

hope this helped!  If you encounter further problems, let me know :)
(PS, if this answer solved your problem, please mark it as accepted)


How do I join two UV islands into one making it better for unwrapping?

Ok, just found out why it did not unwrap into 1 piece.
The ends had ngons so when I joined the 2 pieces in the middle they were still there when I joined the vertices in the centre. Now removed the 2 un-needed faces and unwraps nicely.


How to make Inflow object not impact the fluid simulation?

After you've baked the simulation you just disable the inflow object entirely from the render. Click the camera icon in the upper right "Outliner" panel.


To addObject() the object has to be in an inactive layer.

you need to use:

import bge
def main():

cont = bge.logic.getCurrentController()
own = cont.owner
scene = bge.logic.getCurrentScene()

node = scene.objectsInactive['breadcrumb']
life_time = 15
#scene.addObject(object,loc,duration) *duration is in frames
if own['nodeSpawnTimer'] >= 5 and own['nodeCount'] <= 20:
    obj =scene.addObject(node,own, life_time)
    own['nodeCount'] += 1
    own['nodeSpawnTimer'] = 0

Related Documentation


Apart from a list of vertices OBJ files also contain a list indices that make up a face. Look for lines that start with an "f". The vertices are enumerated by their occurrence in the file, starting with index 1.
Be aware that faces can consist of more than three vertices. You will have to split quads and n-gons if you want tris.

f 1 2 3         # a triangle that consists of the first, second and third vertex
f 2 3 4 5       # a quad consisting of the vertices 2 to 5
f 1 2 5 6 10 11 # an n-gon with six vertices

OBJ also supports relative indices. These indices are negative. For example an index of -1 would address the last vertex at the position of the face.
The following file would contain three triangles, consisting of the first three, the second three and the first, third and last vertex:

v  1.0 -1.0 -1.0
v  1.0 -1.0  1.0
v -1.0 -1.0  1.0
f -3 -2 -1
v -1.0 -1.0 -1.0
v  1.0  1.0 -1.0
v  1.0  1.0  1.0
f -3 -2 -1
f -6 -4 -1


You can set it up using two modifiers. I used Copy Transforms, but Child Of will work as well.


removing vertex groups that got a dot on its name

Each item vg when iterating over object.vertex_groups is an instance of
a bpy.types.VertexGroup object.  (just as each of bpy.data.objects is an instance of an bpy.types.Object object)
Remove vg from the objects vertex group collection with
ob.vertex_groups.remove(vg)  A vertex group object also has a remove method, which takes a sequence of vertex indices as an argument. Eg vg.remove([0, 1]). This prob led to the confusion re error message
No need to escape out the period.

>>> str("\.")
'\\.'

If a substring is not in string then find(...) returns -1

Script:

import bpy
context = bpy.context

ob = context.object
vgs = [vg for vg in ob.vertex_groups
       if vg.name.find(".") != -1]

while(vgs):
    ob.vertex_groups.remove(vgs.pop())

To make the scripts portable (copy paste jobs) I like to break down variables.  Eg one edit to test with ob = context.scene.objects.get("Cube") no matter what the context object.

I favour the "while pop" method, a for vg in vgs: ob.vertex_groups.remove(vg) statement can also be used.  The rationale being once an object is removed in blender, trying to re-reference it can have dire consequences... (well sometimes crash blender)


How to compile a stop motion movie in the VSE with python?

The following script reads your control file (extended so that # is used to mark comments):

#Length_in_second/100|filename.ext|x|y in pixels
50|0001.png|0|0
100|0002.png|0|2

The script read the file names from the control files and add image strips to the VSE

import bpy
directory='X:\\New Folder\\'
filename= directory + 'control.txt'

# adapted from blender.stackexchange.com/questions/6101
old_type = area.type
area.type = 'SEQUENCE_EDITOR'

start = 0
for line in open(filename):
    line=line.rstrip("\n")
    # skip comments
    if line.find("#") == -1:
        time,image,x,y = line.split("|")
        # / 10 because 50 eq. 500ms; * 25 for 25 frames per sec
        duration = float(time)/10*25
        end = start + duration
        bpy.ops.sequencer.image_strip_add(directory=directory, files=[{"name": image, "name": image }], frame_start=start, frame_end=end, channel=1)
        start = end

area.type = old_type

Something like this should work to get the values to update an edited file:

for s in bpy.data.scenes[0].sequence_editor.sequences:
    print("%d|%s|0|0" % (((s.frame_final_end- s.frame_final_start)/2.5), s.name ))

In order to print to a file see my answer here:How to export list of prop values as txt to a certain folder? And how to import them back?


Can't see added cube on my scene collection

If you add an object in edit mode, that object will be part of the active object.

To make individual objects exit edit mode and add the new objects in object mode.

Read: Why can't objects in Edit Mode have their own name?


Store each animation frame as new object

You should avoid operators whenever possible:

import bpy

scene = bpy.context.scene
frame_current = scene.frame_current

for f in range(scene.frame_start, scene.frame_end + 1):
    scene.frame_set(f)

    meshes = []
    for ob in scene.objects:
        if ob.type == 'MESH' and ob.name.startswith("model"):
            me = ob.to_mesh(scene, True, 'PREVIEW')
            meshes.append(me)

    # do something with the meshes (note: they aren't linked to anything)

    # Clean up mesh copies
    for me in meshes:
        bpy.data.meshes.remove(me)

scene.frame_set(frame_current)

This will apply modifiers to all mesh objects in the current scene that start with the name model. The resulting (new!) mesh datablocks can be used for export.

Note however, that you will have to create objects and link the meshes to them if you plan to call an export operator - they usually export all (selected) objects, not invisible mesh datablocks. You may wanna check out the exporter code and see if you can import the actual export routine to avoid that operator call and maybe even the object creation.

If you want to apply animation in a way, that there's one static object per frame of an animated model, you may use the following script:

import bpy

scene = bpy.context.scene
frame_current = scene.frame_current

r = range(scene.frame_start, scene.frame_end + 1)
l = len(str(len(r)))
obs = []

for f in r:
    scene.frame_set(f)

    for ob in scene.objects:
        if ob.type == 'MESH' and ob.name.startswith("model"):
            me = ob.to_mesh(scene, True, 'PREVIEW')
            me.transform(ob.matrix_world)
            new_ob = bpy.data.objects.new("%s_frame%0*i" % (ob.name, l, f), me)
            obs.append(new_ob)

scene.frame_set(frame_current)
for ob in obs:
    scene.objects.link(ob)
scene.update()

It applies modifiers as well as transformations (.matrix_world, so loc/rot/scale).


You can change the scale of the whole scene to metric .001 (one thousandth of a meter=1mm).

Version 2.8X

Version 2.7X

But to be able to work at such small scale you also have to adjust the scale on the viewport as well:

For 2.8X The settings are in the overlay section.

For 2.7X they are in the Numeric Panel (N)

Here's what a 1mm x 1mm x 1mm object looks like in with such scaling:


Game Character walk through wall, even with Dynamic physics

You Character needs to be dynamic, and the walls/scenery static.
Don't use the "simple motion" part of the motion actuator either. Put it into servo mode (drop down box) or set the linear velocity of the player. (The object needs to be dynamic for these options to appear).

Try playing around with the physics and motion in a completely seperate blend. Try making a prototype with just cubes - this way you'll learn what the various physics options do far better than if someone tells you.

For reference:

Static: It stays still when things collide with it. It will not collide with other static objects
Dynamic: position influenced by collisions and forces, but will not rotate
Rigid Body: position and rotation influenced by collisions and forces.


You can move them into a Channel group to get them out of the way, but you can not hide the overview of the channels.

The user can do this by marking the channels with SHIFT and pressing CTRL+G

And with coding:

group = bpy.data.actions['CubeAction'].groups.new("hidden")
bpy.data.actions['CubeAction'].fcurves[0].group=group


When using constraints, how can I get a child to have two parents?

This is a typical Inverse Kinematics job, is this what you are trying to accomplish?
gif


In object mode:

Select your armature and its child objects (you can right-click the armature in the outliner and choose "select hierarchy).
Hit CtrlG to create a group of your selection, give it the name you want via F6 (like "character" or whatever's making sense).
Save the file.

Open the file where you need to append your character, hit ShiftF1, navigate to your character's .blend file, go in its group folder and select your character's group.

It should work this way.
The last thing to do: since all the "WGT" objects are imported in the same layer as your character's rig and model and overlapping your rig, I suggest you use the outliner, select all "WGT" objects, and move them to another layer.


After take a look into your Blender's file. I think that your problem is about your Leg Control bones aren't have the same local rotation in edit mode. So whenever you do mirror paste, your bone will move at wrong direction.
How to fix it:

Select your armature then press TAB to enter Edit Mode
Select both of your Leg Control bones then press CTRL + N and choose Global + Z Axis

Back to Pose Mode and do your mirror paste, the rig is working perfectly now.

P/S: You must re-animate your animation, because after reset rotation, your armature doesn't work correctly with current animation. Here is your file after i fix it. Sorry about my bad english, hope someone could edit this :(


Size still the same after removing groups

One way in which you could be left with a bounding box larger than the remaining geometry would be if you deleted the objects while in Edit Mode. Then you would be left with objects with no geometry, but the objects would have their location, scale and rotation information still there.  If this is the case you would need to go to the Outliner to find the mesh-less objects and select them there and then Delete. If your deleted groups had parents, you'd need to open out the items in the Outliner in order to find them.


How can I scale bezier points without curve anchors being affected?

This is because the points handles type is set to Automatic by default. You can try convert them to Free before you scale it.
To do so, in Edit Mode of any Curve object :

Select the points you want to scale
Hit V (or menu: Curve > Control Points > Set Handle Type) and choose Free. The handles change color.
you can now scale points the way you want, constraining them or not, and the handles won't scale accordingly. They will keep their original alignment.
Beware to don't change their type again to Automatic, because it will re-scale them according to their point's new position.


If you make the brush object active after Difference brush was added and apply it only for the brush it will remain undeleted, just its Maximum Draw Type will be set to Bounds (it will return to Textured once Difference brush is removed from the object). However the final effect of the brush will be applied to the canvas.


My Model's Right Hand is Broken, Can Anyone Help?

To solve your main problem, in pose mode select the UpperHand.R bone, go to the properties panel, bones tab, Relations tab and uncheck the "Inherit rotation" button.

First you should have your hands locations match the hand bones locations moving in edit mode the bones (or the hands) accordingly.


How to render smooth cuts at different depths

I'm not entirely sure that's what you want but maybe you could use the Boolean modifier to cut your object. You need to make your boolean object (here a cube) invisible: In Cycles Render go in the Properties panel > Object > Visibility > Ray Visibility and disable everything, and in Viewport Display choose Display as > Wire). Also pay attention to the modifiers stack order: Solidify to give your object thickness if needed, then Subdivision Surface to make it smooth (also don't forget to press W > Shade Smooth), then Boolean (Difference mode) to cut with your cube, then EdgeSplit to have sharp edges on the cut. And of course for your object try to have a nice topology with quads.


If you want to create an ellipsoid, just create a sphere, scale it up or down (based on the sliders), then apply the scale


How can I create an L shape with two beveled sides?

You can do this with the bevel tool.

Start with a cube, in edit mode (TAB) select the edges you want to make round:

press CtrlB to use the bevel tool and set the parameters for Amount to 1 and Profile to 0.5

Remove doubles (press the Spacebar or press Ctrlv->Remouve Doubles)

To make the first shape you describe extrude these faces:

For the second shape you'd need to make a cut before extruding:


If the Action strips are NLA-enabled:

Select the action in the NLA.
From the NLA menu, select Edit ->> Split Strips (Y is the default shortcut).

If they aren't NLA-enabled:

In the Action Editor, create a new action by clicking the '+' symbol next to the action to duplicate the action.

Select the newly duplicated action, and edit out the keyframes from the first part of the action, and label it whatever the later action is called (ie) 'Jump').


Blender stopped opening for me on windows 10

Ok, so the best way to solve mysterious bugs like this is to divide and conquer. Basically try to isolate things that might cause it and run experiments that rule those things out. What you end up with at the end will be the issue.

We can't really be of much help since this process requires access to the machine with the issue. But perhaps trying this method may help you.

So, you've mentioned you have an access violation? That, sadly for you, is the equivalent of announcing you've lost your needle in a particular haystack.

Something you could perhaps try is to run blender from the command line with some of its debugging options. For instance try

blender.exe --debug

There's no guarantee that you won't get a crash, but at this stage, its probably beneficial to try and gather more information that will narrow down where the problem is.


How to create recesses in a curved surface?

Anything that has to be cut into a curved surface, I tend to build flat and curve into shape later. Using this method I have a model of one 'L' section and a bezier circle (origins of both objects matching each other):

Using an Array modifier with a count of '3', followed by a Subsurf set to '2' subdivisions and finally a Curve modifier:

I get this result:

Using modifiers allows you to easily manipulate the original non-curved section, while also seeing how it will look when curved into a circle.

Once you are happy, modifiers can be applied and the two ends of the circle can be merged (either by W> Remove Doubles, if the vertices are close enough, or more manual merging if they are not).

Also note that increasing the resolution of the curve on the curve's 'Data' tab will improve results. This example had a curve resolution of 30.


To be specific. You can use nodes.

In the image you can see how I set it up. You set one material for whole ground and make it use nodes. Inside of nodes you mix between 2 materials using stencil texture. You can draw stencil texture in texture paint node. You may consider using seperate UV map for stencil.


world lighting doesn't affect objects with Eevee renderer

found out i could do this with baked lighting:

in viewport shading dropdown settings have "Scene World" enabled;
Properties - Render - Indirect Lighting - Bake Indirect Lighting;
slightly inconvenient as it requires rebaking if changes to the background are made. otherwise works fine - i was expecting the baked lighting to break when objects gets transformed.

alternatively, increasing sizes of existing lights can help, but it realyl screw with the scene setup:

have a Point, Sun or Spot light type
set Power and Radius (or Strength and Anlge in Sun's case) to something large, like 50kW 50m
Sun type looks smoothest
it's not directionless and still leaves faces completely black if they're facing in opposite direction of the light, but it's better than nothing

if there's a better way - please let me know.


Reflection of HDRI in Cycles not working?

It looks like you need to turn down the roughness on the glossy shader.  Roughness is how much the light scatters away from the perfect specular angle.  It makes for blurrier, less crisp reflections.

Here is a diagram:

The first three examples on the left are a ray hitting glossy surfaces with varying roughness (left to right no roughness to high roughness), the fourth example is a ray hitting a diffuse surface for comparison.


How do I get rid of the tear in the middle of my object after using the mirror modifier?

Put the mirror modifier before the multires. Keep clipping on, but make sure all the vertices at the middle are snapped over to center line.


UV map quality decreases after importing wavefront object that is exported as obj before

I solved my problem by enabling "normal map" from texture tab of properties. After I enabled this option, everthing seemed normal again (Properties tab-> Texture tab -> Show material textures -> select the normal -> mage sampling -> Enable Normal Map ).


How to find all image coordinates of rendered object?

Basically one can just render the masks of the objects as images, import them and generate the arrays. This process is the similar for materials (a mask for every material) and depth.

The script can be (at least) run in 2.8x and 2.79b, just adjust the code with the commented code. If you use 2.79b, put blender in the same folder as the your python.exe.

Master script:

import matplotlib.pyplot as plt
import numpy as np
import glob, os
import PIL.Image as pil
import subprocess

pathToSlave = r'C:\Users\YourName\PycharmProjects\bse\slave.py'

pathToFile = r'C:\Users\YourName\Desktop\segmentation.blend'
fileName = 'segmentation.blend'

pathToRenderOutput = r'C:\Users\YourName\Desktop\trash\\'
pathToBlender = r'C:\Users\YourName\AppData\Local\Programs\Python\Python36\blender-2.79b-windows64\\'

subprocess.call('{}blender {} -b  --python {}'.format(pathToBlender, pathToFile, pathToSlave))

images = glob.glob(os.path.join(pathToRenderOutput, '*.png'))
for img in images:
    arr = np.asarray(pil.open(img))
    arr = arr.sum(axis=-1)
    arr = arr.squeeze()

    plt.imshow(arr)
    plt.show()

Blender part: A mask is generated for every mesh-object

import bpy

bpy.context.scene.render.engine = 'CYCLES'
bpy.context.scene.use_nodes = True
bpy.context.scene.cycles.samples = 1

# For 2.8x
# bpy.context.scene.view_layers["View Layer"].use_pass_object_index = True

# For 2.79b
bpy.context.scene.render.layers["RenderLayer"].use_pass_object_index = True

tree = bpy.data.scenes['Scene'].node_tree
nodes = tree.nodes
links = tree.links
indexOBOutput = tree.get('IndexOB Output')

idMaskList = []
indexPass = 1  # 0 is the default pass

outputPath = r'C:\Users\YourName\Desktop\trash\\'

fileOutput = nodes.new(type="CompositorNodeOutputFile")
fileOutput.base_path = outputPath
fileOutput.file_slots.remove(fileOutput.inputs[0])

for obj in bpy.data.objects:
    if obj.type == 'MESH':
        obj.pass_index = indexPass

        idNode = nodes.new(type='CompositorNodeIDMask')
        idNode.index = indexPass

        links.new(nodes.get('Render Layers').outputs.get('IndexOB'), idNode.inputs[0])
        fileOutput.file_slots.new('Object_{}'.format(indexPass))

        links.new(idNode.outputs[0], fileOutput.inputs[indexPass - 1])

        indexPass += 1

bpy.ops.render.render(use_viewport=False)


Depth of Field F-stop not doing anything?

Plug the Z pass directly to the Z input on the Defocus Node.

Control the focus distance on the camera settings. Choose and Object to focus on or set a distance. Note that if you choose an object the camera will focus at the object's origin.)

Every time you change any of the camera settings RENDER THE IMAGE, otherwise the compositor will not update.

The Max blur setting controls the amount of blur in pixels. Larger numbers will yield more blur, but will also take longer to render.

The F-Stop controls the depth of field.

A smaller F-stop number will result in more critical focus, with  in objects closer to the camera or further away form the focus point getting blurrier faster.

A larger F-stop number will result in sharper objects in front or away from the focus point.

Setting the focus point with an object:

EDIT:

All of this is designed to work on a "normal" scale. If your scene is Huge those parameters don't work as well. In your case your scene is so big that all objects are several hundred meters, but you've set your scene scale settings to 0.001. The objects will display nice but they are still large (at least when it comes to how depth of field works)... The camera is focusing so far that to have a meaningful blur the F-stop would need to be a very small number, around 0.1 or less (give it a try and see things defocus). The problem then becomes finding the correct focus point, nothing seems to be in focus anymore...

Solutions:

Scale all of the objects in the scene to 1000th of its size (Press A to select all and then S  . 0 0 1) and reset the scale on the scene back to 1, and ta-da! The defocus node works like a dream.

(you still have the issue that the origin of the eyes object is behind the objets so the camera doesn't quite focus on the eyes. I created an empty that is placed on the right eye).


Rigged low poly charector deforms when moving

You've missed adding two of the upper arm vertices to the arm vertex group so they stay in their original position while the rest of the arm moves. In Edit mode, select the arm.l vertex group by hilighting it in the R/H pane and clicking 'Select'. Then Shift-click on each of the vertices I've indicated on the model and click the 'Assign' button in the R/H pane it should work ok. You seem to have done the same with most of the head vertices. That shows an even worse problem!


Seams are a very real part of most clothing items.

The main thing wrong with your UV's is their alignment.

Basically you need to add seams where they would be on a similar real world piece of clothing. I added vertical seam from under the armpits to the waist.

Unwrap and rotate the UV islands so that they are correctly aligned with the texture. Then straighten (align to X to Y) edges where ever it makes sense to do so. Pin these straightened P edges, so they don't move and Unwrap a second time.

The rest is tweaking here and there, with one eye in the 3D editor to see if it is an improvement or not.
To check for stretching sometimes it helps to switch to have a UV grid on the model. Other times (but I find a little less useful), is to enable the Stretching Overlay in the UV Editor.

To re leave some of the stretching in the original sleeves unwrap I added a seam close to the top of the arm then unwrapped a second time. Moved the two islands close together then tweaked the vertices along the seam to align the up together again then used the Weld tool (UV Editor) to weld the two edges back together again.

The result is not perfect by any means...  more time and more tweaking :)

Doing this has reminded me about the UV Magic addon that ships with Blender. I haven't used it yet but there appears to be some very useful tools included. Checkout the UV Sculpt tool, illustrated in this Video at 8:20  https://www.youtube.com/watch?time_continue=533&v=BKZX3Xac7X4&feature=emb_logo )

Blend file


The only animated mesh deformations Blender can export to FBX are:

Armature-driven ones.
Relative shape keys.

So if you can bake your physics into shapekeys, or use a 'fake-physics' armature, it should work.

PS: don’t know Max, but I would bet their “deformations” are similar to Blender’s “shape keys”?


Sending data from scripts to Python Console

You can paste data onto bpy, not sure how advisable it is, but its a technique that works:
In a script:
import bpy

bpy.sergey = (1,2,3)

And then on the console:
>>> bpy.sergey
(1, 2, 3)


Can I pin a custom startup file permanently?

This is actually really easy to do: go to the File tab, and scroll down until you see Save start-up file. Click on this, and it will make the current Blender setup the default setup. This can also be done by pressing "CTRL-U" on the keyboard.


How do I set the Seed value to 0 under the Sampling tab?

I believe you are misunderstanding the meaning of the seed value.

Seed is not how much noise there will be in your render. Seed is basically the pattern the noise will have. Noise is a natural byproduct of the way Cycles (and any ray-tracing renderer) renders the scene. There are many methods for eliminating noise in Blender, but the primary method is to raise the samples.

There are so many resources on this topic, because it is really the major factor in whether a scene feasible to render. If we could render everything with one sample, we wouldn't really need to worry about render times, as long as our poly-count didn't exceed our memory.


You have a few instances of overlapping faces, and some cylinders directly above other cylinders with faces touching or overlapping.

You also have a few instances of objects inside objects.

Depending on your volume material settings that can lead to artifacts, and in general Blender doesn't like it, confusing the rendering engine on how to calculate depth and render the volume materials.

Overall your scene might benefit from some optimization. Since all cylinders seem to be roughly the same shape you don't need so many unique mesh data. You could probably make them all instances of the same object and simply scale them differently in the Z axis.

This will make your workflow easir if you ever need to edit the shape of the cylinders, and also make your scene lighter and faster to render since there's less unique geometry to upload into memory.

Also make sure you apply materials by object (as opposed to by data) right next to the material name dropdown menu, so each instance can have it's own material definitions


Exporting bones; transformation of quaternions necessary?

The answer is yes: The quaternions do need to be transformed. If a quaternion represents a rotation around an axis in the source coordinate space, then it's inevitably not going to represent a rotation around the "same" axis in the target coordinate space if it isn't transformed.

As to how to do this in Blender:

Convert the quaternion to an axis/angle representation using the built-in API functions.
Transform the axis using the standard axis conversion functions that are supplied for vectors.
Convert the transformed axis/angle back to a quaternion using the built-in API functions.


Setting a Property's min and max values after creation

You can not alter builtin properties deriving from bpy.types.Property. Just have a look at the api documentation. Every attribute is marked as readonly.
If you are using properties from bpy.props you can use your own setter and getter functions to check for min/max dynamically:
def get_frame(self):
    #default value=42
    return self.get('frame_custom', 42)

def set_frame(self, value):
    #only accept values between min=0 and max=99
    if 0 <= value < 100:
        self['frame_custom'] = value

bpy.types.Scene.frame_custom = bpy.props.IntProperty(name="Frame", get=get_frame, set=set_frame)

You could also wrap the scene attribute frame_current using:
def get_frame(self):
    return self.frame_current

def set_frame(self, value)
    if 0 <= value < 99:
        self.frame_current = value


Extract objects/points inside camera view frustum

Seems very hard on blender. I switched to PCL (Point cloud library) to do such kind of work.


rig problem: knees bend sideways instead of forward and backward

You need to set the IK Pole Target and pole angle. Follow JerryNo's answers How to IK rig legs and How to Set/Calculate pole angle of IK constraint


How to convert vertex colors to materials

This is thankfully much easier than I originally thought it was. Vertex colors can be accessed with the vertex color input node. :-D


Is "Separate RGB" identical to "Separate XYZ"?

By looking at the source code  and the note saying :

  /* Vector combine / separate, used for the RGB and XYZ nodes */

They are the same, and they don't use one node probably just to avoid confusion and keep data types separate


"Add Sticky" texture option missing in Blender 2.7

Sticky coordinates have been removed, the main idea is that you should substitute the ‘sticky’ function with ‘UV project from view’ instead.

If you don't want use the uv project,  an alternative is the BLAM addon.