Unwrapping a circle into a line of segments?

Rollout Fan

Test run, cone: 12 segments, triangle fan view, default UV map, aligned to view

Script, templated from  text editor > templates > python > Operator Mesh UV  Logic:

For the selected vertex, get all the linked tri faces.
Transform the selection such that vertex coordinate is zero, vertex normal
is z axis, ie translate by the vector coordinate and rotate such that
the normal is now up, using the rotation difference.
Calculate the perimeter by summing lengths of all  edges that dont
include center vertex of faces .
Much like a Mercator projection, map the angle difference of Y axis
to each transformed perimeter vertex to U.  Will be in range -pi to
pi, or -180 to 180 degrees.

To Install:

Run the script in text editor Only once to register

To Run:

In edit mode select the center vertex of the circle fan
Run the operator, F3 Circle Unfold

NOTE:

The script is written for 2.8.  Have added addon header to reflect this.

For prior versions replace @ with * except @classmethod and blender version to "blender" : (2, 78, 0) if installing as addon.

bl_info = {
    "name": "UV Unfurl Circle",
    "author": "batFINGER",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "View3D > UV > Circle Unfurl",
    "description": "Select circle center vertex, to unfurl UV",
    "warning": "",
    "wiki_url": "",
    "category": "UV",
}

import bpy
import bmesh
from mathutils import Vector, Matrix

def main(obj, up=Vector((0, 0, 1)), to=Vector((0, 1))):

    from math import pi
    me = obj.data
    bm = bmesh.from_edit_mesh(me)

    uv_layer = bm.loops.layers.uv.verify()
    v = bm.select_history.active
    if not isinstance(v, bmesh.types.BMVert):
        print("Not a vert")
        return False

    tris = [t for t in v.link_faces if len(t.edges) == 3]
    n = v.normal
    T = Matrix.Translation(-v.co)
    R = n.rotation_difference(up).to_matrix().to_4x4()

    # calc perimeter

    p = sum(e.calc_length() for f in tris for e in f.edges
            if not any(v in e.verts for x in e.verts))

    for f in tris:
        f.select = True
        e = next(e for e in f.edges if v not in e.verts)
        e.select = True
        ec = sum([v.co for v in e.verts], Vector()) / 2
        fu = R @ (T @ ec)
        fx = to.xy.angle_signed(fu.xy)

        for l in f.loops:
            luv = l[uv_layer]
            y = 0

            if l.vert is v:
                x,y = fx, (ec - v.co).length
            else:
                u = R @ (T @ l.vert.co)
                x = to.xy.angle_signed(u.xy)
                if abs(fx - x) >= 1.5 * pi:
                    x -= 2 * pi if x > 0 else -2 * pi
            luv.uv = (x + pi) / (2 * pi), y / p

    bmesh.update_edit_mesh(me)

class UV_OT_circle_unfurl(bpy.types.Operator):
    """Circle Unfurl
    Select circle fan center vertex
    Unfurl perimeter to U = 0
    """
    bl_idname = "uv.circle_unfurl"
    bl_label = "UV Circle Unfurl"

    @classmethod
    def poll(cls, context):
        return (context.mode == 'EDIT_MESH')

    def execute(self, context):
        main(context.edit_object)
        return {'FINISHED'}

def draw(self, context):
    ''' menu item '''
    self.layout.operator("uv.circle_unfurl")

def register():
    bpy.utils.register_class(UV_OT_circle_unfurl)
    bpy.types.VIEW3D_MT_uv_map.append(draw)

def unregister():
    bpy.types.VIEW3D_MT_uv_map.remove(draw)
    bpy.utils.unregister_class(UV_OT_circle_unfurl)

if __name__ == "__main__":
    register()


Simply because it doesn't need to use more.

My guess is that you assume that the rendering would be faster if used more memory. Sadly, it's untrue. And due to various bottleneck like memory latency, memory bandwidth (and probably more) : using more ram than it strictly need to use would probably slow down the rendering, not speed it up.

i have 32GB of RAM, my current rendering use ~32MB (which is ~1024  time than what it could use if it needed to).

EDIT : i'd like to add that RAM isn't "processing power", it's "storage"
 (temporary, and many order of magnitude faster than disk but storage nonetheless). In the same way, it won't go faster if you add more disk.


I would like to apply an emission shader to specific parts of a texture

First of all you'll need a map that will define the areas where light is being emitted from, like this:
Then to mask it over the diffuse map you'll need to create a simple node setup where you use the new texture to control the way two shaders mix, the white areas will use one shader, the dark ones the other one:

(You don't have to use a diffuse node, I just used it for the example) Your final result should be something like this:
Obviously yours will be on the actual model. Hope this helps.


(Blender Internal) Render Layers keeps duplicating


You didn't include the textures, so I can't make a final judgement, however:
your character uses 2 materials for the body, 9 for the eyes and 5 for the mouth. I am guessing this is supposed to produce facial expressions cartoon-style by switching the materials. I would strongly suggest to take all the different face meshes and split them into several objects, so you can easily hide the ones you don't need. Also the normals of those exchangeable parts are flipped, I don't think that was intentional.
With this setup (and I don't think this is the way you want to approach this in Blender) you're multiplying with an alpha value. Specifically with that of the animalboyaeye_alb.5.png, that image, or at least its alpha channel seems to be wrong, but I can't judge, because the textures aren't there.
Try separating the face parts, it might already make the problem go away. If not, send us the .blend with the textures.


After "with automatic weights", nose became weird

To me, it looks like a mesh deformation. (Its hard to see in the video :-D )

I don't do much rigging, but under amateur in properties, go to display and check axis.
Check that the axis is Z-up on the nasal bones.
If it is not, rotate it and re-parent it with automatic weights.
Check that in edit mode the normals are correct along. They shouldn't be though due to your correct texturing.
Check all scales have been applied to the objects. (Object --> Apply --> Scale) It can sometimes deform meshes, particularly when sculpting and rigging.

Other than that, I have no clue.

All the best of luck and hope I helped,

BFB

EDIT: I took a look at your model and I seem to be right. I turned on axes in the amateur pannel. The bones going around the outside of your nostrils are at a -90˚ roll. Set it to 0.


This can be very easily created by using the Add Curve: Extra Objects add-on.

Open the preferences (Edit > Preferences)
Search for Extra Objects and enable Add Curve: Extra Objects by ticking the checkbox.

Create the spiral object through Add > Curve > Curve Spirals > Torus. Open the Adjust Last Operation panel in the lower left corner and configure the parameters of the curve. The most relevant parameter is the number of turns.

Give the curve thickness by switching to the Object Data Properties of the curve and increasing the Depth property in the Geometry > Bevel panel.

Close the gap between the start and end segment of the spiral. Hold Shift and click on the two control points, then press F to close the segment.


How do I create a custom node group for the compositor?

Converted this script to generate a shader group by @sambler for the Compositor. The script creates a new node group called NewGroup containing three math nodes plugged together properly:

import bpy

# create a group
test_group = bpy.data.node_groups.new('NewGroup', 'CompositorNodeTree')

# create group inputs
group_inputs = test_group.nodes.new('NodeGroupInput')
group_inputs.location = (-350,0)
test_group.inputs.new('NodeSocketFloat','in_to_greater')
test_group.inputs.new('NodeSocketFloat','in_to_less')

# create group outputs
group_outputs = test_group.nodes.new('NodeGroupOutput')
group_outputs.location = (300,0)
test_group.outputs.new('NodeSocketFloat','out_result')

# create three math nodes in a group
node_add = test_group.nodes.new('CompositorNodeMath')
node_add.operation = 'ADD'
node_add.location = (100,0)

node_greater = test_group.nodes.new('CompositorNodeMath')
node_greater.operation = 'GREATER_THAN'
node_greater.label = 'greater'
node_greater.location = (-100,100)

node_less = test_group.nodes.new('CompositorNodeMath')
node_less.operation = 'LESS_THAN'
node_less.label = 'less'
node_less.location = (-100,-100)

# link nodes together
test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
test_group.links.new(node_add.inputs[1], node_less.outputs[0])

# link inputs
test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

#link output
test_group.links.new(node_add.outputs[0], group_outputs.inputs['out_result'])

Wrap this up into a function and allow to pass some arguments e.g. a string for the name. Even better, make it a function and add it to an execute() method of an Operator, that way you can use the Search Menu (F3) to add your group. In addition to that, you can display the Operator as a button on any panel like in the Properties Panel N of the Compositor:

import bpy

# Create compositor group
def create_comp_group(context, operator, group_name):
    # Create a group
    test_group = bpy.data.node_groups.new(group_name, 'CompositorNodeTree')

    # Create group inputs
    group_inputs = test_group.nodes.new('NodeGroupInput')
    group_inputs.location = (-350,0)
    test_group.inputs.new('NodeSocketFloat','in_to_greater')
    test_group.inputs.new('NodeSocketFloat','in_to_less')

    # Create group outputs
    group_outputs = test_group.nodes.new('NodeGroupOutput')
    group_outputs.location = (300,0)
    test_group.outputs.new('NodeSocketFloat','out_result')

    # Create three math nodes in a group
    node_add = test_group.nodes.new('CompositorNodeMath')
    node_add.operation = 'ADD'
    node_add.location = (100,0)

    node_greater = test_group.nodes.new('CompositorNodeMath')
    node_greater.operation = 'GREATER_THAN'
    node_greater.label = 'greater'
    node_greater.location = (-100,100)

    node_less = test_group.nodes.new('CompositorNodeMath')
    node_less.operation = 'LESS_THAN'
    node_less.label = 'less'
    node_less.location = (-100,-100)

    # Link nodes together
    test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
    test_group.links.new(node_add.inputs[1], node_less.outputs[0])

    # Link inputs
    test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
    test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

    # link output
    test_group.links.new(node_add.outputs[0], group_outputs.inputs['out_result'])

    # return the group
    return test_group

# Operator
class NODE_OT_compGroup(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "node.simple_operator"
    bl_label = "Add Group (Operator)"

    @classmethod
    def poll(cls, context):
        space = context.space_data
        return space.type == 'NODE_EDITOR'

    def execute(self, context):

        # Create the group
        custom_node_name = "my_node"
        my_group = create_comp_group(self, context, custom_node_name)
        comp_node = context.scene.node_tree.nodes.new('CompositorNodeGroup')
        comp_node.node_tree = bpy.data.node_groups[my_group.name]
        comp_node.location = 100,0

        return {'FINISHED'}

# Panel
class NODE_PT_customPanel(bpy.types.Panel):
    bl_idname = "NODE_PT_customPanel"
    bl_space_type = 'NODE_EDITOR'
    bl_label = "Custom Panel"
    bl_region_type = "UI"
    bl_category = "Custom Category"

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

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

# Register
def register():
    bpy.utils.register_class(NODE_OT_compGroup)
    bpy.utils.register_class(NODE_PT_customPanel)

def unregister():
    bpy.utils.unregister_class(NODE_OT_compGroup)
    bpy.utils.unregister_class(NODE_PT_customPanel)

if __name__ == "__main__":
    register()

Further reading:

Controlling compositor by python - Basic example on how to create nodes
How to create a custom UI? - Operator/panel/layout stuff
API link - List of all available node types


High Poly to Low poly normal bake looks weird

Here is a simple workflow of mine:
make a retopo and be sure they are not flipped and you have a good UV layout with no overlap:

make it a little bit fat with Displace modifier (anything you do a retopo on would be a bit slimmer by nature of retopo)

adjust your options to YOUR scale (I always work in real world scale because it's important for my assets to have correct scale)

now you should have a flawless bake of your normals.
There are some part that can be a little problematic like this part here:

for those, instead of going mad with ray cast, do a cage.
A cage is a mesh (same as low poly) that helps rays to be cast correctly.
you should just sink the low poly in it and adjust the problematic areas carefully. Here is how a cage works:

red marks are your default rays distance. They work correct for the areas that low poly is sinking inside your high poly but in a place close together like the foot (RED MARK 1) here the rays will intersect each other so if orange is low poly and black is high, blue is our cage and green is our new guided rays.
as you can see cage (blue) should 100% sink the orange and black (low and high poly) for corrected rays (green) to work correctly.
By the end of this, your bake should be flawless.


Never mind, I just needed to raise the value a little bit...


Blender doesn't really have a "select order"
The standard method used by blender operators is to use the context object (context.object, context.active_object) and selected object(s) (context.selected_objects in which if there is a context object, it will occupy position 0).
For example Ctrl+P the parent operator makes the context object the parent of all selected objects, except itself. One parent many children.  Similarly for join all like typed selected objects are joined to the context object.
Henceforth for making an operator to select emitter and particle you need to decide which is the  many, ie make the context object a particle and then make all other selected objects an emitter of that particle, or vice versa.


Object that rotates around another but not on itself

One solution is to parent object B to object A, give a Limit Rotation constraint to object B, and limit the constraint on the Z axis: Object B will rotate around A but won't rotate on itself.

Another solution, suggested by Frederik Steinmetz, is to not parent B to A, to parent an empty to A, and give B a Copy Location constraint with the empty as Target.


How to get a flexible tube to follow a curved path?

One solution is not to use a cyclinder, and use a curve instead.

Add a bezeier circle (add-> curve-> circle) this will determine the diameter of your tube:

Then add a curve and create with it the shape youi want your tube to follow:

Set the circle as Bevel object for the curve:

Then you can animate the bevel factor start and end factors to meet your needs:


To optimize viewport performance limit resolution of textures which are assigned to meshes.

Open User Preferences > System tab > textures category (scroll down) > Limit Size. You can choose appropriate value from the dropdown list, where Off is set by default. Read more about limiting size of textures displayed in the viewport in manual.

In the example below limit is disabled first and texture isn't affected. Then limit is set to lowest value (126 px) for demostration purposes which makes textures become blurry and less visible.

To show textures on your objects in viewport follow steps from this question - How to show textures in the 3D View editor? which depend on render engine.


You added the new cube while still in Edit Mode.
So both meshes are now part of one object - as shown in the Outliner.

You can easily split them into separate objects through
Mesh > Separate > By Loose Parts


modeling screw plastic cover for 3d printing

If you have already modeled the solid piece, maybe you could delete the faces you don't need (on the second photo the face "under" and "right side" ) and use the "SOLIDIFY" modifier ? find the good value for thickness, apply the modifier. Then you can add the hinges by extruding some faces.
If this can help ?


How can you copy a weight paint from a Bone in one object to a bone in another object

Yes it is, even if the two objects are not identical.

Move the two objects in the same spot, select the destination object (or objects), THEN shift select the source, then press F3 (search operator) and type "data", choose the "Transfer mesh data" operator, choose "vertex groups". If the objects are the same all others default options should be OK.

After generating the copied vertex groups, you can rename them accordingly with the names of the new deforming bones


Workbench Outlines not appearing when rendering animation from command line

I ran into the same problem today, and I found a solution by using the OpenGL render in a python script as such:
import bpy

# Most cited way of rendering via python:
#bpy.ops.render.render(animation=True)
# Produces no outline as by using blender -b myfile.blend -a

# Render with OpenGL:
bpy.ops.render.opengl(animation=True, view_context=False)
# Produces outlines as in the GUI

This can be used from a terminal like so:
blender myBlenderFile.blend --python myPythonScript.py

Note however that I omitted the background flag -b due to that OpenGL does not support Blender running in the background. So depending on why you want to render from a terminal this solution might not be valid.
It worked well for me, however. Furthermore, it also resulted in a render speed increase as it seems like it better utilized multiple CPU threads.
"Standard" example where outline doesn't take

OpenGL example where outline works


How to avoid permutations of vector objects when dumping data?

The swizzle properties Vector.xyz return a new instance of Vector.

I.e. using a python property

class MyVectorClass(tuple):
    def get_xxx(self):
        return MyVectorClass((self[0],)*3)
    xxx = property(fget=get_xxx)

v = MyVectorClass((1.0, 2.0))
v.xxx.xxx.xxx
#equivalent to
v.get_xxx().get_xxx().get_xxx()

I would suggest Vector.to_tuple. That is everything you need.

BTW: To properly check for the type you should use isinstance

import mathutils

if isinstance(v, mathutils.Vector):
    t = v.to_tuple()


I wager that this is caused by the image mapping. Textures are set to repeat by default, and the dark line looks like the bottom part of the texture bleeding to view. Try changing the image mapping mode to Extend or similar and see if that works for you.


Trouble file StringProperty subtype FILE_PATH

// indicates a relative path in Blender.

Make sure you untick Relative Path in the Accept panel of the file browser to make it an absolute path.

Or you can convert a relative path to a absolute path using the built in method bpy.path.abspath(path)


Can vertex indices be transferred between identical meshes?

I may be missunderstanding what you are trying to do here, wouldn't just making a copy of the Green cube in object mode be the easiest way to insure that both objects have identical vertex indices?

I thought it would be possible to Transfer Mesh Data from Green to Red cube. Object menu > Relations > Transform Mesh Data but I couldn't get it to work.

Tried with the Data Transfer modifier but again with no success.

That left the long way of transferring vertex indices :
Link the data of the Red to the Green and then remove the link.

In Object mode first select Red object then select the Green one. Object menu > Make Links > Object Data.

The Red object now has the same vertex order as the Green object:

......... but also using all other data from the Green object.
The Red can be unlinked in the Object Data Properties menu:

There must be a more elegant way of doing this  :)

there you go ... an Addon, see comment above.  Thankyou  @R-800  :)


How can I translate parts of mesh without affecting the hidden part?

Not really, that's what you get for not looking at everything that you are transforming. Think of it like this:

Vertices are "linked" to every edge that they are attached to (duh).
Edges are "linked" to every face that they are attached to.
Faces are "linked" to each other through edges.

This is the fundamental problem...if you move a vertex, edge, or face with some of the "components" that it is linked to hidden, Blender has no choice except to move those along with it. Blender's mesh tools act no differently with things hidden or not; it is simply a way to get unnecessary parts of the mesh out of your way. You should only really be hiding things that won't be affected by your editing (i.e., only hide things that are relatively far away from the area you are changing).


Set Parent To -> Follow Path

This effect can be achieved with the following method:

Add a curve for your path: SHIFTA -> Curve -> select a curve
Edit your curve to be your desired camera path
Make sure you have the green frame cursor set to the frame on the Timeline you want to begin having the camera follow the path
Select the curve and in Edit mode, select the point of the curve you want to be the first place you want the camera to be
Then snap the 3D cursor to that point: SHIFTS -> Cursor to Selected:

Now select the camera, then snap it to the 3D cursor: SHIFTS -> Selection to Cursor:

Adjust the rotation of your camera so that it looks forward along the path
Now first select the camera, then hold down SHIFT while selecting the path, then make the path the parent of the camera with the Follow Path option:  CTRLP -> Follow Path:

(NOTE: The order you select the two objects is very important when setting parent/child relationships: first select the child, then the parent)
Now when you play your animation, the camera will follow the path and stay oriented to the direction of the path:


How to get an object to spawn at a specific location?

How would one spawn an object at a specific location?

Adding new objects (basically making a copy of an inactive object) requires a reference object. The new object will inherit the transformations (location, orientation and scaling) from the reference object, rather than from the template object (the inactive object which resides at a hidden layer).

AddObject Actuator

The AddObject Actuator uses the owner as reference object. The owner is the object the actuator is configured of.

This means when you have an empty with an AddObject actuator, this empty will be the reference object while you select the template object at the actuator itself (field: Object)

Python API

The python call KX_Scene.addObject() request you to provide a template object as well as a reference object. The call should be from the scene both objects live in.

Solution

The conclusion is quite simple:

1) place the reference object at the desired location (e.g. an empty)
2) add the new object

(alternative Solution) Post processing

In some situations it might be not sufficient to relocate a reference object (just now I can't think of such a situation). In this case you can add the new object anywhere and relocate it afterwards, just by assigning a new location.

Be aware this can have side effects on physics calculations as right after creation the object will be considered as present.

Setting object Position via Python

Use attribute KX_GameObject.worldPosition.

Examples:

import mathutils

position = mathutils.Vector([0, 1, 0])
gameObject.worldPosition = position

You can even use a list.

gameObject.worldPosition = [0, 1, 0]


Why rendered image is not like in the material preview frame?

It is not the same because you haven't applied smooth shade to your material. However there could be more reasons(like: weird settings setup in the render tab or word tab)


It seems like identical weights would be right-- but unfortunately, they're not, because how a bone deforms a mesh isn't just a function of the weights, but of the distance from the bone to each vertex as well.  And your sock is more distant from the bone than your leg.  That requires weights that are more diffuse the more distant the mesh is.
There are a couple of ways to get those more diffuse weights.  If you weighted your leg via autoweights, the slightly more diffuse weights you want can also be gotten via autoweights, just via autoweights on a slightly larger model.  Duplicate your model, alt s shrink/fatten until it's about the same size as your sock, and then reparent it to your mesh with autoweights.  Take a second to compare weights-- notice how the bigger mesh has different weights than the smaller mesh?  Weights that are smoother, more spread out.  You can use this mesh as the target of a data transfer for your sock to transfer the more diffuse weights onto the sock.
If you weren't using autoweights, you can use a smooth operation in weight paint mode to make your sock's existing weights more diffuse.  Set it to affect all groups and give it a positive expand/contract value, then tune the other parameters to eye.
However, the truth is that you're best off hiding mesh rather than fiddling too hard with weights.  That's especially true when you're talking about a game engine, where you probably have a limited number of weights per vertex.  In that case, think about breaking your sock (and leg) into multiple pieces: those that might be hidden by pants, and those that won't be hidden by pants.  It's still modular, it just requires fiddling with a few more parts and combinations.  Or, consider giving the meshes shapekeys that shrink parts of the mesh, to be used only in certain combinations of clothing.
In Blender, there are other techniques you can use as well, like post-armature displacement or shrinkwrap.


Updating your Blender will automatically add a working filmic. I still don't understand why it isn't working on 2.78. If you lose some of your projects by updating, please understand that you can have more than one Blender on your device.


Get height value at specific x and y coordinate via script

Precisely speaking you need some sort of collision detection look at this book and this link for more info.
Roughly speaking ray casting  is a good way; but be careful about optimization.I suggest you to compare x-y bounding boxes of your objects and groundObjects (using bpy.data.objects['Cube'].bound_box
). If they overlap each other do raycasting for each vertex of your objects on the overlapping groundObjects and choose the shortest one.


Moving vertices in a way to preserve their relative position from eachother

It seems I have figure out one way to do it, and that is by using a lattice and a lattice modifier. By adding the lattice modifier to the scene, then selecting the object to modify > shift and select the lattice > ctrl +p > deform by lattice, this added a lattice modifier to the mesh and used the selected lattice object. By manipulating the object, the mesh is then manipulated while the vertex grid remains uniform.
You can see in this gif how this is done and looks like (https://gph.is/g/Z7G7JAP) The gif was too large to upload it here.
Another thing that could be usefull for anyone, would be proportional editing mode for this too.


Blender Game Engine: Why don't shadows appear?

You need to activate shadows in lamp property.

If that not the problem, change the energy in the second lamp.

Reduce energy.


When integrating live action footage and cg, how to make proper shadows for actors?

The green screen does not remove the shadow as long as your threshold is low enough. Because it's a darker shade of green, the green will be removed, but the gray will stay.

If that method doesn't work, you can mask around the shadow and add it back in later with the compositor.

You don't need to make a full scale model and match the lighting as that's more work than it's worth.


Using the bpy.ops.info operators

Here is a quick little test script.  The info area operators' context are overriden to emulate running in the info area.

Assumes the info area is screen.areas[0]
Assumes no prior selection of reports.

Script:

import bpy

context = bpy.context
info = context.screen.areas[0] # do properly
c = context.copy()
c["area"] = info

# test call
bpy.ops.info.select_all_toggle(c)
bpy.ops.info.report_delete(c)

Script version of Is there a way to clear the "info" editor?.  Might need to run all or some twice to make sure all is removed.


I sculpted a plain, but I can't texture paint it

Texture Painting in Cycles is a bit different. You cannot just go in texture paint mode and start painting it. To start texture painting,

Select the object you want to paint on and unwrap it.
Give it a new material. Make it diffuse.

Go to Texture Paint mode and create a new paint slot. Change it to 'Diffuse Color'. In the pop-up menu, change it's dimensions to the dimensions of the texture you want and select the base color. Click OK.

Start Painting!

This youtube tutorial might also help you.


Does blender offer a posterization option for rendering?

Not as such, no. But there is a toon shader for Blender Internal, and some similar results have been developed for Cycles.

What is probably more useful to you is a compositing setup that will operate on the render, rather than the material. Some success has been had with this node setup, using the "Round" algorithm. It separates RGB, rounds each to the nearest 0.1, and then recombines them.

Hope that helps!


Well you could try hiding the ends of the road you want to keep the same box selecting the vertices, then by using proportional editing (hotkey "O") you can select an edge and grab and constrain it along the Z axis (the middle mouse button changes the influence).

So select and hide "H" all the parts of the road you're happy with.

So select the edge of the "peak" of where you think the curve would be.

Press "O" to turn on Proportional Editing.

Press "G" and "Z".

While you move it up and before you confirm, use the middle mouse button to change the influence of the proportional editing tool.

Press escape if you dont want to accept and try and a different curve type (bottom tool bar next to the proportional editing icon.

Play around with it until you're happy and/or try different edges with proportional editing with a different influence to get the desired shape.


How do I put an image as texture on a triangular object?

Load  your image in a UV/image editor window, set the 3D viewport in a position that views the triangle from the top, go to edit mode, select all vertices, U to Unwrap and choose "project from view". Then, in the UV/image editor window you can Grab, Rotate, scale the UV map to fit exactly the part of the image you want in your flag. At the end of the process you will have to assign this image to the flag material as an image texture.


How to chance radii of many cylinders at the same time?

If they are equal, you can select all of them, Ctrl L Link object data, then if you modify one, every other will be modified as well. Press U to turn back to single user.

To vary the radius of the cylinders without affecting loc and rot, choose the "normal" transform orientation, select the top of one cylinder and click this plus button to create a new custom transform orientation, call it "face normal".

Then choose face normal as active transform orientation, select all vertices of one cylinder and press  S Shift Z Z.


For Blender, which is the better language to learn - OpenGl or OSL? And why?

Short answer is: (probably) neither

OpenGL is a framework for writing (not advanced) render engines, such as the Blender solid shaded viewport. It's pretty powerful, but isn't really useful to know as an artist.

OSL was designed by Sony to be a powerful, versitile language for creating Shaders at a fundamental, mathematical level. It's supported by quite a few notable production quality render engines, and is used widely in the VFX industry to create otherwise challenging shaders.

Fortunately though, Cycles Render has a quite excellent shading node system, so it's not really a nessesity at all. As a solo artist it's not something you should spend time learning, but if you plan on doing shading/LookDev for as a career in VFX, it would be fantastic to know.

I would recommend to actually learn a program called Substance Designer, rather than OSL or OpenGL. Substance Designer is a node-based software for creating procedural textures and materials, which are compatible in any render engine. Not only can Designer be used to make extraordanarily detailed and realistic materials, it supports MDL (material definition language) creation. MDL is becoming more and more recognized, and is starting to be implemented in more and more render engines. So yeah, learning Substance Designer would give you some extremely powerful knowledge, and it's safe to say it will keep it's relevance for a long time.

I hope this helps!

P.S.

Neither of these affect anything other than rendering, texturing, and shading, so if you want to be able to do other things in Blender like procedural modeling, simulations, creating add-ons, and things like that -- Python is definitely the right choice.


How to denoise animations using Blender's Temporal Denoiser?

How to use the Temporal Denoiser

Step 01: Pack Denoising Data

Enable denoising data in View Layer > Passes > Denoising Data
Set file format to OpenEXR Multilayer (so Blender packs the denoising data)
Render your animation

Note:
Blender 2.8 needs to be used in the pipeline to pack the denoising data. Simply open your .blend with Blender 2.8, set up the denoising data and save. Then you can reopen the file and render with any version.

Step 02: Denoising
import bpy
import os
import glob

inputdir="D:/Animation/"
outputdir="D:/Animation/Denoised_"
os.chdir(inputdir)
myfiles=(glob.glob("*.exr"))
for file in myfiles:
   print(inputdir + file + " to " + outputdir + file)
   bpy.ops.cycles.denoise_animation(input_filepath=(inputdir + file), output_filepath=(outputdir + file))

Copy the above script into Blender's Text Editor (and backup your animation files :)
Change the location to where your rendered files are. The default location is D:/Animation/
Run the script by pressing the Play button ►

Notes: The used code is from this Reddit thread. All credits to toadfury.


How to extrude from a square shape to a circle shape?

I believe the tool you want is bridge edge loops, but you may have to subdivide the square loop first, so it has the same number versus as the circle loop.


If you want to get rid of the edge without creating a hole :
In edit mode, Select the edge,  press X then click dissolve edge.


Metallic multiply shading works in Eevee render but not Cycles?

I ended up splitting the shader into places that need metal and places that weren't metal using a texture as a mask, then combined them into the same mesh and used a mix node.


Render stops after 1 frame. "Render error (Permission denied) cannot save: '0001.png'"

On output property tab type /tmp\ into the Output file path.


Is there a way to read the rotation_quaternion data of an object that is under the control of the physics engine?

There's a fairly simple way to get the transformations of an object under a physics simulation without baking (which also applies to other situations such as parent-child relationships, constraints, etc).

To do this you simply need to access the object's world matrix property. Here are some examples you can test through the interactive python console:

# Accessing through the location property will give the initial value before the simulation starts
>>> C.object.location
Vector((0.0, 0.0, 14.47101879119873))

# The world matrix though gives the real, simulated location
>>> C.object.matrix_world.to_translation()
Vector((0.5996798276901245, 1.5040934085845947, 1.7373782396316528))

# Same goes for rotation
>>> [ degrees(a) for a in C.object.rotation_euler ]
[0.0, 0.0, 0.0]

>>> [ degrees(a) for a in C.object.matrix_world.to_euler() ]
[176.1907675277052, -11.192468775907107, -74.38630617504491]

# To access quaternion rotation values, simply use "to_quaternion"
>>> C.object.matrix_world.to_quaternion()
Quaternion((0.17901940643787384, -0.7067779302597046, 0.6757702231407166, -0.10840550810098648))

You can also add an app handler that calculates and prints the simulated location and rotation after every frame change:

import bpy
from math import degrees

def print_simulated_loc_rot( scene ):
    C = bpy.context
    o = C.object

    simulated_loc   = o.matrix_world.to_translation()
    simulated_rot   = o.matrix_world.to_euler()
    sim_rot_degrees = [ degrees(v) for v in simulated_rot ]

    print_friendly_loc = [ round( v, 2 ) for v in simulated_loc   ]
    print_friendly_rot = [ round( v, 2 ) for v in sim_rot_degrees ]

    print( "Location: ", print_friendly_loc )
    print( "Rotation: ", print_friendly_rot )

bpy.app.handlers.frame_change_post.append( print_simulated_loc_rot )


how to disable compositing nodes for selected frames?

The quick way is via using the time-node.


From what I understand, your unwrapping is the reason. You have unwrapped the faces so that they are overlapping. In the Image Editor, while unwrapping, try moving the faces so that they are not overlapping. Then when you add the transparent image make sure to tweak the Mapping node so that you offset it where it needs to be.
I hope this helps.


Different geometry

It's hard to tell from a single photo the exact geometry of the reference object, but it seems to me that there is no hard edges running up from the vertex of the triangle you are pointing with the black arrows.

The side looks in my opinion flat above that point, while it had different heights after that. I sketched the shape considering the two quads in the bottom left part of the image as if they were displaced from the other surface.

Starting from this simple geometry, I then added a few loopcuts and tweaked the crease of some edge to control the curvature of the surface. Here's the final result:


Still not sure what you want to achieve, but you can use transmission value for glass like effect, or if you don't like the effect then use alpha value (not recommended).

Here is the final setup:

Please be noticed that transmission will directly bound to color of Principle BSDF color, so if the color is too dense (like RGB: (0,255,0)), it will make the light difficult to penetrate the material, hence need a stronger light source. Or just lower the value to reduce the color dense.


Where shading "smooth" and "flat" are located inside Blender 2.80?

In the 3D Viewport, while in Object Mode, under the header's "Object" menu

To use it in Edit mode for some selected faces, look again in the Viewport's header, but this time under Mesh > Shading > Smooth/Flat Faces


Where is the surface emission for materials to create a light source from a plane?

Cycles:
Method 1:

Set the render engine to cycles
Go into the node editor
Check Use Nodes
Delete the Diffuse Node X

Click images for larger versions

Method 2:

Set the render engine to cycles
Go into the materials panel
Click Use Nodes
Change the Surface to Emission

Internal:

Check that you're using internal
Go into the materials panel
Set the emit value
Check shadeless (to look like cycles)


There is a ZRemesher port for Blender available as a paid plugin, made by the original author of Zbrush's ZRemesher. Free demo version is available and you have a month to evaluate it yourself. As far as I tested it, it's a real deal, working quickly and resulting in a nice topology (for an automated tool).

https://exoside.com/quadremesher/

https://www.blendernation.com/2019/10/08/quad-remesher-auto-retopology-add-on-released-for-blender/

  The French software developer Exoside has released a Blender add-on version of their new Quad Remesher auto-retopology tool. Quad Remesher is based on the renowned ZRemesher in the ZBrush 3D sculpting suite, and comes from the same coder, Maxime Rouca.


What is the is the difference between object and data link for while creating materials?

Borrowed from iKIsR from different question:

  Linking a material to Data (to mesh specific data) is ideal when you want a mesh to always have the same material, while linking a material to an object is when you want to have different materials on objects that share the same mesh.

  Short explanation: If connected to the object, you can have several instances of the same Data using different materials. If linked to mesh data, you can't.


How do I colour a 3D terrain based on its height?

Mapping node:
You can use the Mapping node to rotate the texture on the Y axis, making the gradient vertical.
Change the Location Z axis value so that one "end" of the gradient is at the tallest peak or valley of the mesh. Also ensure that the Mapping mode is set to Texture:

Result:

UV unwrapping:
You could also UV unwrap your mesh.

Enter edit mode (Tab) and select all A

Set the view to Orthographic (Numpad 5) and view your mesh from the front (Numpad 1)

Press U>Project from view:

Rotate (R) the resulting UV map in the UV/Image Editor so it is standing on end:


Why Cloud texture has square cell pattern?

You might consider settings like this.

Influence [Color] and No influence [Normal]

It is not clear that the User can use all clouds as a Normal Map.  Normal Map and Bump Map are different.

Any one can paint a bump map manually.  That is not true of Normal map.
Normal Maps can baked.

You may also want to see the Displacement Modifier which uses textures.

Short answer, rather than a complete technical answer.


Why doesn't the shrinkwrapped vertex move smoothly over the mesh?

The Shrinkwrap modifier tries to find the closest surface of the Shrinkwrap Target to move the vertex to. If the vertex is very far away from the Shrinkwrap Target then the vertex may appear to 'snap' to part of the object as the Shrinkwrap modifier is having a hard time determining which part of the mesh the vertex should be moved to.

Now, you may be thinking that this isn't the problem here as you can clearly see the vertex you are moving is very close to the surface. However, what you are seeing are the vertices in their new, shrinkwrapped positions. What the Shrinkwrap modifier sees are the original positions. You can see the original vertex positions by disabling the Show on cage button:

Your vertices are probably quite far away from the Shrinkwrap Target, which is causing the issue.

A very simple solution to this is to first Copy the modifier, so you have two Shrinkwrap modifiers:

Then Apply one of the Shrinkwrap modifiers (make sure you're in Object mode):

What this does is apply the new, shrinkwrapped positions to the vertices. Now if you disable the Show on cage button you will see the vertices are in exactly the same place. You can now continue extruding and translating and because the vertices are very close to the surface they should move very smoothly over it.

If you are moving the vertices a lot you will eventually start to see the same snapping problem appear, because, remember, even though the vertices appear on the surface, you are moving them away from the surface, in 3D space, altering their original positions. When this problem happens again you can just repeat the copy/apply process to apply the new vertex positions.


Keyboard shortcut to play animations in the timeline in reverse?

After some vigorous button pressing, I found this

Option(Alt) + Shift + A

It behaves the exact same way as Option(Alt) + A, except the animation plays backwards.


How to create a menu item as an addon that is displayed in the left side pane

Open Text Editor then choose Templates->Python you will find templates for simple menus and panels (Ui Menu, Ui Simple Menu, Ui Panel, Ui Simple Panel), run them and see how it goes, they should give you a very good understanding of what you can do.

Running the UI Simple Panel will show it under the object properties as shown below, the location of the panel is specified using these three class parameters:

bl_space_type = 'PROPERTIES'
bl_region_type = 'WINDOW'
bl_context = "object"

To put in the left side you change the values as shown below:


Use poke faces

From the blender manual:

  Splits each selected faces into a triangle fan, create a new center vertex and create triangles between original face edges and new center vertex. The Offset can be used to make spikes or depressions.

You can then choose to offset the newly created vertex.

In versions previous to blender 2.8 the shortcut is ⎇ Alt + P.


Blender new versions don't work well on AMD Radeon HD 7570M

The AMD Radeon HD 7570M is from the AMD Radeon 7000M series and has the old TeraScale 2 micro-architecture. The minimum requirements for Blender 2.8x and 2.9x state that GCN first generation or later is required for running Blender.

Supported Graphics Cards

NVIDIA: GeForce 400 and newer, Quadro Tesla GPU architecture and newer, including RTX-based cards, with NVIDIA drivers (list of all GeForce and Quadro GPUs)
AMD: GCN 1st gen and newer (list of all AMD GPUs)
Intel: Haswell and newer (list of all Intel GPUs)
macOS: version 10.13 or newer with supported hardware

Unfortunately, this means that your GPU is below the minimum requirements and Blender developers don't provide support for it. Graphics glitches and even crashes due to unpatched bugs in the graphics driver can occur on unsupported hardware. You may have to use a previous release of Blender with lower requirements.


Strange Glass Reflectivity in Wine Bottle Scene

A few comments:

The bottom of the glass is flat, making a horrible thick mass of glass. Most glasses are concave like this:

Use more samples for the render and less for the preview (to keep the interface more responsive and get better quality renders)

Use more light bounces

Turn Off ambient occlusion. In cycles you don't need it.

To have less fireflies bring down the indirect light clamping. Most fireflies come from indirect sources.

In my opinion the shader you are using doesn't improve the results of a regular glass shader.

Don't use overlapping geometry, it will only yield problems, like Z-figthing, where the depth buffer will have a hard time differentiating faces that are close together.

Same thing with the labels, for very thin paper it is easier to work the materials part of the bottle and not as separate objects.
As for the lighting:
It is hard (I would dare to say that is impossible) that you will find an HDR environment that suits the scene perfectly, as lighting glass and highly reflective objects is an advanced task that requires careful planing of the reflected objects on the scene. Remember that you are not lighting the scene, but creating the reflections that will bring out the qualities of the objects depicted (reflectivity, opacity, transparency, shape, volume, roundness, etc).
How can I render objects with very shiny surfaces?
Take the advice from that link, and you disconnect the environment and start trying a single light source at the time. Make a single very big area light and play with it so that you understand what it does, how it is reflected on the objects and how the shapes are revealed,

Once you find a suitable placement for it, and only then, add a second one and evaluate the results until you are happy. Bring in only as many lights as you need for the effect you are after.  The more sources you bring in the more shadows and reflections you will have to control, so be judicious and spartan when it comes to lights.

Use also black elements to create dark reflections among the bright sources.
There are countless articles on the internet on how to light and photograph wine, glass and shiny objects. Do your homework and learn from those who charge a fortune to do that (and don't forget to have fun doing it).


How to smooth transition between two parts of the object

I would try using the 'Intersect' or 'Union' modes for the Boolean modifier. Add it to either part of your model and select the other part in the "Object:" box.


Texture looks grainy in cycles render (not fireflies)

Ok, after looking at your nodes, scene, and the images it all came down to two small values. (They were also the only things you have different from the tutorial)

The most important setting here is the  Strength of the Bump node. One is too strong in almost every case. Andrew uses 0.1, but I used 0.15, either way, turn it down and you will see it look much better.

The second setting you want to change is the Roughness of the Glossy BSDF node. The default 0.2 is kind of rough, and you might not even see the reflections at all. Both Andrew and I use 0.1, which may not sound like much but on the scale of Pure mirror to diffuse, .1 makes a big difference.

Here is the exact same scene, only difference is the strength of the roughness in the glossy shader. 0.1 is on the left, and 0.2 is on the right.

Notice with the more scattered, or diffused (0.2) value the reflection just mix in and you really cant tell what should be reflecting.


Mirrored (flipped horizontally) after rendering image or movie

Maybe a UV problem.
Try to select the UV face that is flipped and press Ctrl+M to mirror, then press X or Y to select the mirror direction.


You likely have Transparent checked under the film section of the render properties panel. Uncheck it to bring back the background:


Change Navigation into walk Navigation with scripting

Putting 3D viewport in walk mode from py console.
Think you were 99% there.
IMO always a good idea to try things out in the python console
>>> C.area.type
'CONSOLE'

Override the context by finding a view3d area in the screen. Make sure an area aside from console is a view3d.
>>> for a in C.screen.areas:
...     if a.type == 'VIEW_3D':
...         break
...
>>> a.type
'VIEW_3D'

Make a dictionary and fill with usual suspects area, space_data, and region
It is AFAIK always the case that the 'WINDOW' region is the last in the area regions. If not of this opinion can iterate them as shown in question.
>>> c = {}
>>> c["area"] = a
>>> c["space_data"] = a.spaces.active
>>> c["region"] = a.regions[-1]

Ok now give the override a go... oh and remember all letters in an operator are expected to be  lower case eg 3d not 3D.... (However it does appear to accept view3D, but autocompletes on view3d)
Attempt 1... passed through.. equivalent of doing NADA.. but no errors.
>>> bpy.ops.view3d.walk(c)
{'PASS_THROUGH'}

Ok will try good old 'INVOKE_DEFAULT' execution context, this is as if we were there in the 3D view and pressed a button or chose it in a menu...
Attempt 2... BINGO.. 3D view is in walk mode.
>>> bpy.ops.view3d.walk(c, 'INVOKE_DEFAULT')
{'RUNNING_MODAL'}

Ok all that done and shown, if you are going to write an operator that is invoked from within the 3d viewport, all the override stuff is not required. (Similarly if you change the area to a 3d viewport as shown by @Chris, but in reality we rarely want to do that way... hard to type into console if it becomes the 3d viewport (for example))  The default execution context of a button or menu pressed is 'INVOKE_DEFAULT'.


how to access a rigify armature selector UI?

There is no such feature as far as I know.
Rigify give you a menu that helps hide/unhide parts of your rig. Look in the N-panel (press "n"). In Item you should see Rig Layers.


UV Wrapping not correct - it takes the upper side, but is not the same expected result

He's using 2.8, He must have used a cylinder to make his handle, by default cylinders are already correctly unwrapped in 2.8, as shown in the video, it's not the case in 2.7.
The best thing you can do I guess is to choose a front orthographic view, unwrap with the Cylinder Projection option, then select the top and bottom circles, simply unwrap. Now scale and move the UV islands the way you want.


Scale motion blur was disabled in Cycles due to a known bug in CUDA.

It was added back again recently by Brecht on Jan 11 2018, meaning it will be available on the next major release of Blender 2.8.

Currently it is not possible to achieve this with the last official release.


Same here.

Just a quick note: Windows Task Manager doesn't show CUDA utilization by default (which is what Cycles uses). To have that show up, click on the "3D" above the graph and choose "Cuda" or "Compute_0" in the drop down that pops up. It will then show correct utilization.


Ok, here is a crazy idea. As I said above in comments, "your file, frankly it's a bit a mess... around 50% faces have inverted normals, and so many of them are overlapping (not just crossing) in so many weird ways... I guess you didn't build this by hand... whatever was the tool, it did an horrible job.."

But, if you really like this shape you have now, except it's made from a spaghetti mess of dozens of separate "roads", and you wish to have a single connected mesh instead, here is how you could do it.

To do what it came to my mind, you need to export this 2D object as SVG, then use another tool, like Inkscape, to make the union in 2D, then reimport the united SVG in blender, as a single curve object that you could convert again to mesh (ALT-C) and thus have a single, connected mesh. I told you it was crazy...!

Except... blender has no svg export...

Wait, but there's a freestyle svg export addon!

Here is what I did.

I used "blender render" instead of cycles, aiming for better speeds.
I activated the freestyle svg export
I enabled freestyle and the freestyle svg export for the scene
I used an orthographic camera (with sufficiently high orthographic scale) to render the whole "road" puzzle
I set a very high render resolution (3840x 2160) but I'm not sure it's really needed
then I hit F12 and waited the render to finish
after the normal render, freestyle adds a contour to the rendered objects: the freestyle svg export addon converts the freestyle outline to svg...

when the render finished, I found a 0001.svg file in /tmp,

then I opened that svg in Inkscape and, after some cleaning, I used the Inkscape "union" command. Then saved the new svg, and inmported in Blender. Here is the result:

a closer look

in edit mode:

Here is the file:

You could need to repeat and master this until satisfied, but at least you now have a way...


Is there a way to see spots on a model that don't have any weight painting on them?

What happened was, the "neck" vertex group had some weight painting from the "head" vertex group. All I had to do was select the "neck" vertex group and subtract from it.


Delete the edges between both objects;
Click one of the vertices of one of the ends of the objects that you want to connect, and use Shift+s → Cursor to selected, so we can use the 3D cursor's location to move the other object to the exact position of its counterpart.
Since for me the 3D cursor snapped to one of the wrong vertices, I quickly separated the object using p, then g and z to grab it along its Z-axis, and it snapped right in place.
Select both objects, use Ctrl+j to join.
Remove the faces that are currently between the vertices you want to get rid of.
Select the vertices surrounding the deleted faces, and navigate to Mesh → Clean Up → Merge by distance, and tweak the value to delete the 14 double vertices (by turning it all the way down).
Now select the vertices that are left, click Del, and select the Edge Loops option.

Both models are now joined and clean:

(Note: I rotated the model so it fits this page better in most cases.)


It appears that your meta rig does not have a bone named hips, which the script expects.

check that you haven't renamed any bones in your metarig. If you do, you will have to revert the corresponding bones back to their original names. You may want to create a new metarig to compare to in order to do this.


How can I convert multiple faces of an object to light?

Yes it is possible, you just assign a material with emission shader to the faces that you want to emit light and they will(in Cycles render).


If you'd like the animation to start at the 300th frame, you'll need to set Frame Start to 300, not 12.5.  It seems that what you're doing right now is running an animation for only two and a half frames, so it's so fast that you can't even see it.


Why does part of my model's texture appear purple?

I find the issue to my problem, I had a second object that I had hidden in the 3d view, and then forgot about. This caused it to appear in the render image, and the hidden object was using a texture that I had deleted causing it to be purple. It was also in the same place as the object that was normal, causing the overlapped portion to appear purple.


How to disable disappearing of Stencil Brush while navigating viewport in Texture Paint Mode?

Instead of using only the Stencil Brush, you can use the old method of multiple UV layered images projected from different views and then use the Clone tool in the 3d viewport to paint from the source layers in the final texture layer. After you get the bulk of your paint finished, you can then use the Stencil Brush to fix areas that need cleanup.


How do I keep the curve round when setting the threads farther apart?

When you increase the Screw setting and stretch the screw, you increase the slope of the helix. Unfortunately, the modifier doesn't automatically tilt the profile correspondingly, so the profile isn't at right-angles to the slope. To correct this:

In the header, or Tab, go into Edit Mode
In the header, or  . on the keyboard, set the Pivot to 'Median Point'
Ensure the eye and little cube are checked in the Screw Modifier, so you can see what you're doing while editing.
A select all of  the mesh of your profile circle
Rotate (RX) the mesh about its median point in global X until it's at right-angles to the slope of the screw thread.


Curve Object Deformed by Curve - Distortions (Artefacts)

switch to Edit mode, rotate text 90° in Z axis, so the text alongs Local Y axis (don't ask me why)

all control points set to Handle type (V) > Free

switch to Object mode and rotate along X axis 90°
add Curve Modifier > Deformed by Circle, Deformation Axis > -Z

Essential parts of successful deformation and avoiding other issues are

keep origins of both objects at the same place
align text direction to local Y axis
set handles type to Free

If a surface or shape isn't smooth enough increase Resolution U (Properties Editor > Object Data Properties > Resolution U). But first try increase deformation Curve, than Curve Object.


You have to move the particles modifier to the bottom of the modifiers stack, this way the particle system will use the modified mesh from the previous modifiers:

Note:
also there is an option on the particle system tab to use the modifiers stack ( but I don't think it does anything ? )


An operator's execute(), invoke() or modal() methods must return a status as a set(). Also note that the return result must be one of {'RUNNING_MODAL', 'CANCELLED', 'FINISHED', 'PASS_THROUGH', ‘INTERFACE’}

The shortcut to creating a set is to wrap the item in curly braces {}.

def execute(self, context):
    # do stuff
    return {'FINISHED'}


Your reference video illustrates a way of applying 3D decals to curved surfaces, filleting and concealing the junctions between the decals and the surface.

The way I went with your example involved quite a bit of incremental adjustment - I'll just try to cover the main points:

Sanitize the mesh.  Your decal had a lot of duplicate faces and vertices, normals pointing the wrong way.. possibly from abandoned extrusions / solidifies? To locate errors, H hide some faces in Edit Mode to check for duplicate or internal faces, jiggle some vertices around.. Use Overlays in the 3D view to display normals, face orientation. Delete surplus faces and AltM merge vertices by distance to leave yourself with a single skin.
Consider the method. The reference method is well-suited to small decals, in the scale of the curvature of the substrate...

...asking the Shrinkwrap modifier to cover the gap at the extremes, here, is pushing it. The parts of the decal which you'd like to spread on the surface will wind up piled on top of one another. Fixes for this might be to model the decal with a curvature more similar to the substrate, or 'pre-bend' the whole decal with a Lattice modifier, (the lattice shrink-wrapped to the surface) before assigning the other modifiers... but I guess that's what the reference was trying to avoid.

The decal in the reference is modeled with a skirt, part of which will conform to the surface closely,and  become the fillet after deformation, so I added one to yours.

Adapt the method I found that with such a large decal, 2 vertex groups helped. One to deform the mesh with the shrink-wrap..

and a smaller one to pick up the normals from the sphere...

The vertex-groups can be edited 'live', under the influence of the modifiers by assigning edge-loops with weights in the decal's Data > Vertex Groups panel, so you can see what they are doing.

This result is sort of getting there..

.. but I think things would be easier if you bent the decal as a whole, preparatory to making the invisible fillet.


Animation Nodes 2.0 Reload (F8) Not Working

Animation Nodes 2.0 does not support reloading.

This is because Python does not support reloading of extension modules, which AN has a lot of since it uses Cython.

So unfortunately you will have to disable AN completely during development or restart Blender every time you make a change.


Well...

I would first assume to use blenders fluid simulation but that has restrictions. If you don't want the animation to be exported to a game or anything that requires animation exporting, don't use this method. If it is just for a still image or an internal animation, GREAT!!!

Blenders fluids have the option to change the viscosity of liquids (Thickness) so it will work perfectly for your needs. You can use either use your mesh or a child object as the inflow object. Create a domain, and bake it once you have animated everything and it should act as a fluid should :D

Your other option is only applicable if you don't want the drop to detach and fall. Sculpt your drop separate to the mesh and use soft bodies which can create a jiggling hanging effect.

Good luck with your project and I hope I helped,

BFB


How can I create a rope like object, that can attach object on the bottom and they will both respond to force field

If I understand correctly you want to stick an object to the bottom of your rope? If so you can do it this way:

Select your rope, go in Edit mode and select 2 or 3 of its bottom vertices.

Back to Object mode, select the rope, then select the lantern object, then click ctrlP > Vertex (Triangle) to parent the lantern to the vertices.

If you play the animation the lantern should follow the swing of the rope.


How to scale an object via a slider in Python?

Here's the script to do this (open to corrections):

[Edit: Added getVal to reflect current X scale]

import bpy # Python API for Blender
from bpy.types import Panel, Operator

# Class for the panel, derived by Panel
class SimpleToolPanel(Panel):
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_label = 'CW Tools'
    bl_context = 'objectmode'
    bl_category = 'CW Tools' # Where the Panel have to appear. In this case in the Tools cetegory.

    def setVal(self, val):
        self.objects.active.scale[0] = val
        self.objects.active.scale[1] = val
        self.objects.active.scale[2] = val

    #Edit: Pick the value from the X scale, assuming all scale values are the same
    def getVal(self):
        return self.objects.active.scale[0]

    bpy.types.Scene.scaleVal = bpy.props.FloatProperty(set = setVal, get = getVal)

    # Add UI elements here
    def draw(self, context):
        layout = self.layout

        # New row
        row = layout.row()

        # get the selected object
        obj = context.object

        #Let's display the scale of the object
        str_scale = 'Object: ' + obj.name + ' scale: ' + str(obj.scale)

        row.label(text=str_scale)

        #Add scale slider property

        row = layout.row()
        row.prop(bpy.context.scene, 'scaleVal', text='Scale:')

# Register
def register():
    bpy.utils.register_class(SimpleToolPanel)

# Unregister
def unregister():
    bpy.utils.unregister_class(SimpleToolPanel)

# Run in text editor
if __name__ == "__main__":
    register()


Imported object into unity lighting not working correctly

Real-time lighting and toon shading are both very dependent on mesh geometry since smooth shading only applies to shading with vertex normals and not raytraced shadow calculation that only accounts for vertex positions. With toon shader you are going to need more subdivisions on curved surfaces.

So now you have a 180 degree arc expressed in 5 edges. Try making the arc with 9 or 19 subdivisions and you will see the quality improve.


Finaly I solved it with MeshDeform Modifier. It is simple and effective.

I made a mesh arround zipper and case and assign Cloth Simulation to it. Then I assigned MeshDeform to the zipper and the case and for Object I used the mesh with Cloth Simulation.

I followed this tutorial: blender Quick Tips - Cloth Simulation for Animations


Why is my rendered image in black & white?

Like 3pointedit already said in his comment, the problem is the math
node.

An option to solve your problem is using the Seperate RGBA node for both pictures and use the math node for each channel seperately. Afterwards combine the channels again with the Combine RGBA node.

Or, again referring to 3pointedit, use the Color Mix Node.


3D Viewport artifacts. Geometry looks teared

The issue is "Start clipping" distance which is found in View tab. in my case it was set to 0.001 cm.


Shadow "Cast Only" option in Blender 2.8 seems to be missing

Object Properties/Visibility/Ray Visibility/Camera on/off


When I Import Two Models Into Blender I Can Only Edit One at a Time

Editing multiple objects

First of all, you can only edit one object at a time.  Normally if you want to edit multiple objects at a time you will have to join them with Ctrl + J.  However there is an addon called multi-edit which allows you to edit multiple objects simultaneously.

The active object

When you go into edit mode with more than one object Blender will keep all other objects selected, but will only allow you to edit the geometry of the active object.  The active object is marked by a slightly lighter orange border than other selected objects.  It is typically the object which you single selected last.  If you do a group select (such as box select with B or brush select with C) the active object does not change.

Check out this post for more on the active object.


Unfortunately, this is not possible.

What you are basically attempting to do is bake reflections, which is the difference between your true render vs. your baked texture version.

Since this is very environmentally dependant, there is no way to realistically do that in a single image.  The reflections change based on camera angle, room lighting, and other factors can change what the bake should be.

Note that some game engines manage to fake it, but it needs to be re-baked for every environment, lighting situation, and movement, and falls apart in dynamic scenes.  Blender itself does not support this in any form.


How can I make two objects share the same vertex?

Vertices can't be shared unless they are on the same object.

For what you want to do you can use hooks.

On the first object enter Edit Mode (Tab) and select the vertex you want to control. Press the Space Bar, type Hook and select Hook to New Object

That will create an empty in the same place as the vertex. The empty controls that vertex now.

Next step is to make a vertex on the second object control that hook.

Exit Edit mode (Tab) Select the second object and enter edit mode. Press A to deselect everything and select the desired vertex to make it the active vertex.

Exit Edit Mode

Now you need to parent the empty to the active vertex on object two.

To do that select the Empty and while pressing Shift select the 2nd object (Both objects should now be orange), press CtrlP and choose Set Parent to Vertex

Now if you move the vertex on the second object (or the whole object) will make the vertex on the first object move as well.


Extrude edge loop along the 'average edge normal' direction

Two possible workflows I can quickly think of.

Select all edges in Edit Mode, press F to make a face then inset it with i. Deal with the leftover "closing loop" in the end manually.

Just convert the edges into an actual Bezier Curve object with Alt + C > Curve from Mesh, then from the Properties Window > Curve Object Data Geometry > Bevel add a second curve as Bevel Object comprised of a single edge in $XY$ direction.
Make sure the main curve is set to 2D to get consistent width, and control width with either Curve Radius, directly adjust the bevel object, or with a Taper Object.


How can I get the materials used in an array's caps to be properly assigned?

I took a look at your blend.

It seems that the order of materials matters when using the start/end caps in an array modifier (maybe because of material ID's!?). Not sure why it works this way or if its a bug.

Notice on my RGB pic of materials the colors match the slot number on all objects.

However in yours, the metal brush and mirror are swapped. I guess this "swap" does not carry over in the caps of the array modifier.

So just make sure all the objects have the same material on the same slot number.


How do you make an xray material (or similar)

There are several ways to approach this, the most flexible is likely compositing and renderlayers. However, it is possible to do this from within cycles:

If the incoming ray has bounced more than once and it is coming from a transmissive object (such as glass), it will be translucent. Otherwise it will be diffuse.


Where can I find the number of vertices, edges, and faces in my scene in Blender 2.8?


How to keyframe child of constraint in and out

Whilst your project has the ball constrained as a Child of' the parent character (or foot) I've instead placed physics properties on the ball for the initial bounce and returned to physics when it enters the goal square.
Exactly the same process applies though and this will always work - give you a completely 'free-from-constraint'  ball with which to do as you wish.

The video (above) is what happened when kicked with the physics in play and for whatever reason would not behave as needed.

The second (below) when employing a duplicate to bypass the physics altogether..

The procedure -

When kicked, at the frame the foot comes into contact with the ball, stop the animation and duplicate the ball.

Immediately remove the copy's constraints, physics, animation, parentage, everything, so you end up with a free and unconstrained mesh.

Keyframe the copy's location and rotation.

In the Outliner, keyframe the original ball to invisible and the copy to visible.

Go back to frame 1 and keyframe the copy's loc/rot again.

Also reverse the visual switching in the outliner and keyframe that. (the original is to be seen at frame 1, the copy to be invisible)

Animate the copy and send it into the goal square. (emulate a bounce or two?)

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

Whilst unnecessary, for demo purposes here, the original (physics) ball is switched back as the copy crosses the goal threshold.

Similarly in your project, you can also switch back to the child-ball at anytime.

Switching back - At the frame required...

Move the player-character so the two balls are at the same location. (or close)  Use SH-S to set the 3D cursor to the selected duplicate, then select the original ball  and send it  to the 3D cursor's location. (SH-S again)

This will place both at precisely the same location.  From there it's a simple matter to rotate the child-ball in all 3 axis' until they're aligned again.  I've found it easier to use wireframe mode and "Normal" orientation for this.  Always be in ORTHO view.

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

When the balls are textured you have to ensure this is matched at the switch-back frame also -

An easy way to do this is -

Temporarily remove the original ball's smoothing and texture.  Reassign one face to a bright colour before duplicating.  At the switch-back frame rotate both balls so their mis-coloured faces match up.

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

Switching can take place between the two balls as often as needed, all without fear of some constraint's apron strings mucking you around.

The monkey video below has been freely switched back and forth between physics and animation several times, plus throwing in a path constraint for good measure, all without a single glitch.  It's a basic workaround but it always works.

Monkey Blend file is available if you want that.


How to measure speed

Speed by build-in Physics

When you let the build-in Physics engine calculate the motion of your game object (dynamic, rigid body etc.) you can directly ask the game object.

The object will provide you the current linear velocity (there is an angular velocity too). The linear velocity is a vector that tells you the direction and the speed the object traveled since the last frame. The speed is the length of the vector (speed can never become negative!).

import bge

object = bge.logic.getCurrentController().owner
velocity = object.getLinearVelocity()
speed = velocity.length

Speed by positional change

In some situations you can't or do not want to use the build-in physics engine. In that case you can "manually" calculate the speed from positional changes.

This method assumes the object traveled from the location of the last frame to the current location with constant speed on a direct line. Typically this is a pretty save assumption (but it does not consider if the object really moved or teleported such as static objects do).

Here we use the school math:

speed = distance (last position, current position) / time

We need to record the current position, to be used within the formula of he next frame, while we use the recorded position of the last frame. The time is the reciprocity of the frame rate (typically 60):

time = 1/frame rate

This means you can calculate the speed this way:

import bge

object = bge.logic.getCurrentController().owner
lastPosition = object.get("lastPosition", object.worldPosition)
object["lastPosition"] = object.worldPosition.copy()

step = object.worldPosition - lastPosition
speed = step * bge.logic.getLogicTicRate()

What to do with the speed?

Just now the speed is in a local variable and will get lost as soon as you leave local space.

From here you can place it in a property:

object["speed"] = speed

to be used within other Logic Bricks (including other Python code).

or you send it in a message:

bge.logic.sendMessage("speed changed", str(speed))

You can do that even with a message actuator:

messageActuator.body = str(speed)
controller.activate(messageActuator)

or any other logic brick.

How to get the speed for displaying?

Dependent what you did with the value, you can retrieve it an use it e.g. in a Text Object:

for body in messageSensor.bodies:
    textObject.text = body

or as property to play an action:
    for body in messageSensor.bodies:
        actionPlayer["frame"] = float(body)

....
There are really many options.

The message method is described in detail in the BGE Guide to Messages


Cloth sim; Cloth Pin and Self Collision making very bad/weird behavior?

I had a similar problem today. After a lot of head scratching I fixed the problem by removing doubles. I had duplicated vertices accidentally while duplicating a mesh in edit mode and the self collision was trying to separate the vertices that were on top of each other.


is there a way i can control which parts of the render have the glow?

Use the threshold value.

Pixels that are brighter than the threshold will get the glow.

Values lower than those set by the threshold will not be affected.

Read: Any way to control light halos in the compositor based on emission level?


How to make an animation node particle wiggle?

Start by getting the particles from an object, each item from that list is an individual particle which you can get the location of by connecting to a particle info node. Then you mix a vector wiggle to the particle location and use that to set the location of an object.

Here I take the original particle z location and mix a wiggle into the x and y location to place an object that follows the particle downwards.

Add that into a loop to repeat for each particle.


Blender FBX/OBJ house export doesn't include interior

stphnl329 was right. I can't believe I didn't notice it, but the main exterior walls (which are hard to make out in wireframe) are just planes of no thickness. I added a solidify modifier and applied it, and all is well! Thanks!


Rendered viewport shading shows my UV textures but my final render does not show textured objects

Your cubes are restricted from rendering, you can set them renderable again by clicking these camera icons in Outliner:


The order of execution was indeed wrong. I just put the script node after the "Curve Object Output", even if the Object input for the script is unneeded, it is required for the execution order.

It seems that the order of execution is in the non-fixed version undefined, but I'm not sure about that, I couldn't find anything in the docs about it.


How can I animate something being constructed?

If your "wall", as in the first picture, is "icy" meaning that it should grow from something like "water", another approach could use a reversed fluid animation, maybe:

You could use better (reverse) "start" shapes, and/or add displacements to final result, and also animate materials/textures to make the  fluid > solid transition modify the final shape, adding more interesting details...


How do you get fixed bends on a low poly model?

It is the way vertices are deformed to obtain a smooth transition angle between the two parts of arm. If you rotate an edge, by projection, it will look like the size is smaller from the hand point of view. (Simple trigonometry rule.)

On a average higher poly model, you would have more vertices on the elbow, with different weights depending of proximity with the other bone. So the arm have same thickness and elbow will smoothly do transition.

In you case you would need the join edge to change size to keep arm thickness, but even if it is possible, it could give weird results.

In this case, since your inspiration come from minecraft, I would suggest you to separate each bone as a distinct piece (with different object or in one, like you want).

If you don't want same minecraft bone separation effect, you'll need to add more vertices to elbow.


Blender plays a short .mp3 sound when it completes the render - HOW?

The aud module

For a standard  the ubiquitous wave module to play ".wav" files would be a failsafe way to go.

However, Blender comes with the aud module which plays any format of sound that can be used in blender. My build supports:

>>> bpy.path.extensions_audio
frozenset({'.aac', '.oga', '.mka', '.eac3', '.aiff', '.aif', '.wav', '.mp2', '.ogg', '.flac', '.ac3', '.mp3', '.m4a', '.wma'})

Test script, edit the path to match path to audio file.

import bpy
import aud

path = "/home/batfinger/Music/CCR Chronicle, Vol. 1 - The 20 Greatest Hits/DISC/Creedence Clearwater Revival - Suzy Q. (Part 1) - 13.mp3"
# load the sound
snd = aud.Sound(path)
dev = aud.Device()

def finish_render(scene):
    dev.play(snd)
    return None

# clear others, assuming this is only one.
bpy.app.handlers.render_complete.clear()
# assign handler.
bpy.app.handlers.render_complete.append(finish_render)

Here is the way to stop the playback.

>>> import aud
>>> dev = aud.Device()
>>> dev.stopAll()


Why can't I use "GeForce 9500 GT" for GPU rendering with Cycles?

The NVIDIA GeForce 9500 GT is from the GeForce 9 series, which doesn't fulfill the minimum requirements for Blender 2.8x.

  Supported Graphics Cards

  NVIDIA: GeForce 400 and newer, Quadro Tesla GPU architecture and newer, with NVIDIA drivers (list of all GeForce and Quadro
  GPUs)

  CUDA

  CUDA requires graphics cards with compute capability 3.0 and higher.
  To make sure your GPU is supported, see the list of Nvidia graphics
  cards with the compute capabilities and supported graphics cards.
  CUDA GPU rendering is supported on Windows, macOS, and Linux.

It's therefore neither supported for GPU rendering, which requires CUDA compute capability 3.0, nor for running Blender in general. The latter may still work, however given that old hardware doesn't receive driver updates anymore, you may be experiencing graphics glitches or crashes. The latest driver available for the GeForce 9 series is from 2016.


Is it possible to simultaneously adjust the cache settings for multiple objects?

I've come up with two solutions.

(1) If the physics settings are the same for all objects:

Change the cache settings for one object, then link the modifier to all other objects using Make Links > Modifiers (Hotkey CTRL + L)

(2) If the physics settings are different:

Use Python (Blender 2.8):

import bpy

# get objects in selection
for obj in bpy.context.collection.all_objects:
    if obj.modifiers:
        for modifier in obj.modifiers:
            if modifier.type == "SOFT_BODY":
                # adjust range here
                modifier.point_cache.frame_start = 1
                modifier.point_cache.frame_end = 3000


Add video sequence as background for 2d animation

Add an empty.
In Object Data Properties make it display as Image
Choose video & set image Source to Movie


Why are the following manual instructions not working (render/freestyle/export_svg)?

This add-on is under the community tab in your user preferences>add-ons.
 Search for freestyle and it will come up


it's hard to estimate the problem while not having the .blend file.
However I guess the normals could be the issue. Maybe try to check normals with colouring options, the drawn line often gets a bit messy.
Also, you could have bad geometry on you model which leads to the error - probaly try the '3D-Print Toolbox' Add-on, press 'f3' and run the command '3D-Print Clean Non-Manifold' - then check the normals again, maybe it helps


Applying Transform for Group resets rotation

I have solved the problem the hardcore way:

I delete the "Group001" object and created a new "Empty" object and parented the objects to it.

This "Empty" object had no weirdness and worked fine.


Cannot find toolbar in header - blender 2.8

Click (RMB) on any button in 3D-view header and in menu find Show Tool Settings


Don't know if this will work, but here's something you can try:
first remove the texture, go into object mode, select the jeans, and apply the scale using ctrl+a.
Then go into edit mode with your jeans, use "a" to select everything, and hit u -> UV unwrap. I think this will generate a different set of faces.
Finally add the texture back on using lily's surface scraper.


Rounding Evenly the Edges of a Scaled Cube

A quick way to add rounded corners is to use the Bevel modifier to your cube or starting mesh:

Use the Width, Segments and Profile settings to control the shape of the curved corner or edges. Profile controls shape of the bevel, from concave to convex, but has no effect if your "Segments" settings is less than 2.

You can add a subsurf modifier, as well, to add additional smoothness:

Both of these modifiers  can be applied to your mesh by clicking the "Apply" button... this makes the changes a permanent part of your geometry. Or you can continue to use and render the items within Blnder with the modifiers in place and unapplied.

These are very basic ways to do bevels and rounded corners. Blender has a number of tools to give you control of specific aspects of the Bevel and to limit it to specific parts of the mesh. See here for examples:
Bevel specific edges


Low Render-Quality despite high Render-Settings

As I commented, I believe you need to increase the render resolution instead of the scene samples/light bounces. See this if you are unsure how.
https://blender.stackexchange.com/a/5840/22099


In Editmode, select the face and choose View >> Align View >> Align View to Active. 'Top' usually works.

Next add a cube and put the checkmark on 'Align to View' in the redo Panel to the left ( or F6). Back in medieval days, objects were aligned to view by default.

Now you can copy the cube's rotation for your stone.

By the way: the original wall in the picture is vertical, no need to align anything.


Yes you can load several EXRs on the compositor and save all of their channels into individual layers on an OpenEXR multilayer.

Add a file output node, set it to OpenEXR muyltilayer and than add as many inputs as you need.

You can rename the channels as needed by double clicking on the name:

For more details see this answers:

https://blender.stackexchange.com/a/18406/1853

How can I render all render passes to files in Cycles?


Blender Online Product Configurator - Dynamicly Updates Geometry

Yes, Blend4Web offers JavaScript API which you can use to modify the geometry in run-time.

Additional objects can be added too.


Select the next bone in the chain after the one you want to scale. Then go to the properties panel and go to the bone tab. Near the bottom there will be a 'Relations' heading. Under that heading there will be a checkbox for 'Inherit Scale'. Uncheck that and you should be good to go.


A method often used for rigged characters is to setup two groups, one containing the low-res objects and another containing the hi-res objects.

When linking a model from another blend file you select the group and Dupli-Group will be used, with a simple switch between low and hi res being made in the Duplication settings of the object properties. This method can swap the many related objects belonging to a group all in one go.

You could setup a pre and post render handler to swap these groups automatically.

bpy.context.object.dupli_group = bpy.data.groups["quadbot_bridge_lo"]
bpy.context.object.dupli_group = bpy.data.groups["quadbot_bridge_hi"]

To experiment and learn how this works you could try the CGCookie FlexRig which uses this technique. This was also used in Sintel and Tears of Steal if you have a copy of those data files.


Is it possible to completely go into fullscreen?

ALT F10 = something somebody already thought of. Repeat ALT F10 to exit fullscreen mode.

This is what I get with mouse over default 3D layout ...

...and as Sambler says once more with F11 and even the Blender bar is hidden.


use report() in your operator to display reports on the top bar

self.report({'INFO'},"This ma take some time")
# rest of the code here


If you know what keyframes are, this will be fairly simple. If you don't know what keyframes are... that's a bit beyond the scope of this site.

Basically, you'll make a keyframe at the beginning of you animation (usually frame 1). To do this, press i and select "Rot." This will record the rotation of your planet, and make sure that the rotation IS that value, until it gets changed by another keyframe.

Next, scrub a few frames later (30 frames is 1 second, so 30-40 frames will be fine). Then rotate your planet on whatever axis you are wanting, and then press i again, and select "Rot" again. This records the new rotation, and makes sure that the rotation IS that value ON that frame. In between this frame and your first keyframe, Blender will automatically "blend" between the two rotation values, and you'll get rotation.

If you search YouTube for "beginner Blender animation" you will find lots of good results.


It seems your object has non-uniform scale.  Apply the scale of the object with Ctrl+A > scale to fix this problem.

Beveling with non-uniform scale:

Applying the scale:

Beveling after applying scale:

When you scale an object in object mode, it is not really "applied" to the object's geometry.  I like to think of scaling as a modifier that is always last in the stack, whatever you do in edit mode (or most other places) is as if it was done before the object was scaled.

Check out this question for more uses of applying scale.


Best way of creating 2D mesh from curve?

You can switch Fill  option to Front so you don't have the lower part
 :

or you create another Curve and flat it on the Y axis and use it as a bevel  object :


Mirror multiple meshes with bezier curve

Actually found solution to my own question xD
So here we go:
I just picked all 4 meshes and then pressed alt+C and then clicked on mesh from curve and done. That such simple things can stop one from progress for like a good hour straight... anyway, riddle solved, case closed.


How to render multiple (say 1000) overlapping objects seperately (one per frame)?

Based on a previous answer I would use a script that imports each stl file and keyframes the visibility as it goes.

import bpy
scn = bpy.context.scene
for f in range(scn.frame_start, scn.frame_end):
    fpath = bpy.path.abspath('//sim_data_{}.stl'.format(f))
    bpy.ops.import_mesh.stl(filepath=fpath)
    obj = bpy.context.active_object
    # key as visible on the current frame
    obj.keyframe_insert('hide',frame=f)
    obj.keyframe_insert('hide_render',frame=f)
    # hide it
    obj.hide = True
    obj.hide_render = True
    # key as hidden on the previous frame
    obj.keyframe_insert('hide',frame=f-1)
    obj.keyframe_insert('hide_render',frame=f-1)
    # key as hidden on the next frame
    obj.keyframe_insert('hide',frame=f+1)
    obj.keyframe_insert('hide_render',frame=f+1)


Enter sculpt mode and use the strenght brush.


Annoying menus popped up in dope sheet, can't remove them

In the dopesheet area, you have enabled sliders.

Disable them by unchecking sliders in the dopesheet menu View > Sliders.


You could try a UV Sphere with a Cast modifier set to Cuboid.

Moving the Subdivision Surface modifier before or after Cast will give different results, and the Factor affects how concave/convex the resulting mesh will be.


I'm assuming you have checked them but you should see that the faces are properly attached, don't have any kind of vertex color / special properties in the vert data tab, and all have the same material.


You need to make sure that the armature modifier is above the hair particle system in the modifier stack. If they are in the wrong order, move them up or down in the stack by clicking the arrows at the right end.

Next you need to mark Use Modifier Stack on the particle system settings. You may also need to activate Hair Dynamics, depending on exactly what you want to do. I don't use hair dynamics much, but what I can tell you about it, is that the more segments the strands have, the higher you need to set the stiffness, or the hair will fall through the emitter.

The movement of this sphere is controlled by a single bone, and as you can see, it follows the emitter, after setting these options. It's a bit jumpy, because I only rendered every tenth frame, and I didn't bother to make it looping endlessly, but I hope the point is clear anyway.


Camera View Coordinates and Z-depth values

The Local Axis for the camera is as you describe: Negative Z is the direction the camera is looking at (the camera local axis is independent of the global axis, and might not be aligned to the global axis at all).

If you move the camera using positive values on it's local Z axis , the camera moves back (away from wherever it is pointing at)

The local Z Axis for the camera and and Z-Depth on the image created by the camera are no the same "Z".

The Z-Depth values (or  Z-pass) are always in positive numbers, they represents the absolute distance from the camera to geometry in the scene for every pixel of the image. The camera is the 0 on the scale and the units used for its values are the working units set for the scene (blender units, meters, cm, inches, etc) The minimum and maximum value are clipped according to the camera's start and end clip distances.

Z Depth does not give you any information on the coordinates of the objects on the scene nor does it give you any information on the coordinates or rotation of the camera.

Just to clarify... Z-Depth values are positive values away from the camera (in its negative local Z axis...) and all of these Zs are completely independent of the World's Z axis.


What is the fastest way to do a cut extrude / inward extrude?

Extrude the face you don't want to move then RMB to leave the duplicated edges in place.  Now select the face you want to move and you get the behaviour you want, except there is an edge loop that has been left behind.  Use Alt click to convert the selection to vertices, then Shift + Alt + RMB click the edge loop.  Translate the selection and you're done.


Use the Object output of Texture Coordinate instead.

I've also applied a 0.5 offset on the X axis position so the shadow edge is centered on the sphere(this is equal to the value of the position of the 'black' color on the ColorRamp).
It'll now scale correctly when rotated around any axis, since it's reference is centered on the object.

If you want a softer or harder transition, change the position of the 'black' point on the ColorRamp - make sure not to forget to change the offset on the Mapping node as well.


Images as Planes in Eevee having weird transparency

You need to set the material blend mode to Opaque.
When using Images as planes addon, it's set to Alpha Blend by default.

(Alpha Blend is needed for images with transparency - but in this situation only causes problems.)


What does unwrapping a model do and why is it important?

UV unwrapping is the process of 'unfolding' a mesh so that you can create a 2D texture which fits the 3D object. It is generally necessary if you wish to texture your object very accurately, either in Blender itself or in an external image editor. If the model is not unwrapped then Blender would have to use a different mapping method, but you generally have less control of how the image will be mapped using these methods and I do not think they would be compatible with game engines. For some uses, UVs might not be needed, but it is recommended if you need to add specific details.

In this example, the cube on the left has been 'unwrapped' to create the UV layout on the right:

The UV layout is the 2D representation of the cube, with each square on the right being a face of the mesh on the left. There are several ways to unwrap a mesh; the red lines on the cube on the left represent 'seams' which are where I have told Blender to separate the faces so it can be unfolded neatly.

While the mesh doesn't actually alter, you can think of this happening to create the UV layout:

I could then export this UV layout into an image editor, draw on top of it and then bring it back into blender:

When the texture is now applied to the object and the texture is set to use UV mapping (the unfolded layout), the texture will be folded back around the object:

UV unwrapping is a big subject but this should give you a starting point.

I do not use UDK, but I imagine that if you need to use textures you will need your model to be unwrapped.


After a few hours of trying the wrong things, I figured my glossy shader node was the one casting the AO, so I disabled Glossy in the Object properties tab, down in Cycles Settings / Ray Visibility.

Now baking combined bakes with light effect but no AO.


The Boolean modifier calculations depends on the face normals to decide what's inside and outside ; for a simple plane case the face normal is the local z_axis so it's enough to flip the plane 180°

for other case :

enter edit mode hit Ctrl+N
check inside option on the tools panel


Cannot move 3D cursor or click to select objects

Whilst in the settings menu, Blender froze. After unsuccessfully trying to click on on some stuff, the preferences window disappeared. It turns out this somehow changed some input preferences.

Go to File -> User Preferences -> Input. Blender will very clearly indicate which options have been changed by displaying a "Restore" button next to the parent category:

Restore any unwanted mouse configs, and you're done. If the mouse settings are wrong for new projects as well, click on 'Save User Settings' after restoring.


Shader-based fog without using volumetrics

You can use Ray Length (as suggested by @PGmath) to mix in a 'Fog Shader'.

Use Light Path > Ray Length and Math > Divide to control the spread
Use the result to mix your object's material with a 'Fog Shader'
Add a background plane with the same 'Fog Shader' (so they nicely blend together)

For the 'Fog Shader' set Specular = 0 (to have zero reflectivity)


Filling a Void between two 2D objects (Meeple)

Use a vectorial drawing program to trace the shape as path. Save as SVG.

Import to blender as SVG. (File > Import > Scalable Vector Graphics)

Use the Geometry section of the curve to create extrusion.

Done.
Read:
How to model an object with width and depth, based only on an image that shows the outline?


How to displace an object with a texture radially?

Like Gorgious indicated in the comments, the tutorial uses older Blender version where the displacement input in the Material Output node detects what it is, but in current version 2.83.4 the Material Output node's Displacement input only accepts a vector (3 values for x, y and z for displacement) so you need to use the new Displacement or Vector Displacement nodes that you can find in the Add menu -> Vector. They will let you control the displacement faster and more conveniently then it used to be before.

What you see in the tutorial seems to be because the camera is placed above the plane being displaced and a short focal length is set for the camera lens so because of the perspective the displacement seems to go outwards from the center.


What your final result may look like:

You can link the logic-bricks of different objects if you select both of these objects in the 3d-view.

In my example, I use a mouse-over and a left-button sensor to detect a click on the handle. That goes to an and-controller, which is connected to both the armature of the door and the armature of the handle. Both armatures then play their animation.


Alternate mode menus in viewport by context

That menu that you discribed:

"Rendered," "Wireframe," "Solid," "Material Preview."

It is actually the shading menu, that appears on Z