How to create a custom UI? I was watching this video on making a custom UI tab using Python, and in the line from bpy.types import Menu, Panel, UIList, I see the names of objects that look like they can all be used to make different UI elements. Does bpy.types contain all the objects that people use when they want to make custom UI elements?

Designing an UI or Add-on is basically a combination of supplying Properties and the inheritance of built-in Type classes (Panel, Operator, Menu etc.).

Properties
Start by defining your Properties first. Properties are basically 'data types' and can be displayed in the UI for basic user interaction. Note that you can access the value of each property from almost everywhere. To populate a complete list in the console use python's dir() method on bpy.props :

Click to enlarge
Property Appearance

Define a BoolProperty for a 'Checkbox'
Define a FloatProperty or IntProperty to get a 'Slider'
Define a StringProperty for all different kinds of 'Character Input' or 'File Paths'
Define an EnumProperty to get a 'Dropdown Menu'
Define a FloatVectorProperty or IntVectorProperty for compound values eg. 'Color Pickers', 'Location Coordinates', 'Velocity Vectors', 'Matrices' etc.
...

Property Definition
from bpy.props import (StringProperty,
                       BoolProperty,
                       IntProperty,
                       FloatProperty,
                       EnumProperty,
                       )

my_bool : BoolProperty(
    name="Enable or Disable",
    description="A bool property",
    default = False
    )

my_int : IntProperty(
    name = "Set a value",
    description="A integer property",
    default = 23,
    min = 10,
    max = 100
    )
...

Note that as of Blender 2.8x, properties should be assigned to variables using a single colon : instead of the usual assignment operator = like in Blender 2.7x or older versions of Blender.

Types
The contents of bpy.types are class templates built for inheritance.
Panel
Panels are everywhere in Blender so it's the most basic element of the user interface. Where the panel is going to be used is defined by bl_space_type. Blenders interface is 'context sensitive' so you can define bl_context to get the Panel in one respective Mode (Object Mode, Edit Mode etc.).

class HelloWorldPanel(bpy.types.Panel):
    bl_idname = "OBJECT_PT_hello_world"
    bl_label = "Hello World"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

    def draw(self, context):
        self.layout.label(text="Hello World")

bpy.utils.register_class(HelloWorldPanel)

Sub Panels

As of Blender 2.8x we can have sub panels by assigning a certain panel (parent) to bl_parent_id:
import bpy

class HelloWorldPanel:
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Tools"
    bl_options = {"DEFAULT_CLOSED"}

class HELLO_PT_World1(HelloWorldPanel, bpy.types.Panel):
    bl_idname = "HELLO_PT_World1"
    bl_label = "Panel 1"

    def draw(self, context):
        layout = self.layout
        layout.label(text="This is the main panel.")

class HELLO_PT_World2(HelloWorldPanel, bpy.types.Panel):
    bl_parent_id = "HELLO_PT_World1"
    bl_label = "Panel 2"

    def draw(self, context):
        layout = self.layout
        layout.label(text="First Sub Panel of Panel 1.")

class HELLO_PT_World3(HelloWorldPanel, bpy.types.Panel):
    bl_parent_id = "HELLO_PT_World1"
    bl_label = "Panel 3"

    def draw(self, context):
        layout = self.layout
        layout.label(text="Second Sub Panel of Panel 1.")

classes = (
    HELLO_PT_World1,
    HELLO_PT_World2,
    HELLO_PT_World3
)

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

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

if __name__ == "__main__":
    register()

See also: Text Editor > Templates > Python > UI Panel.
Operator
The Operator is the most important bit to understand. You can display 'operators' as Buttons and once registered and you can call it from everywhere via bpy.ops.IDNAME(). That's also the way blender is designed, all real Buttons are 'operators' under the hood, mostly written in C but then exposed to python. See also: Text Editor > Templates > Python > Operator....

class HelloWorldMinimal(bpy.types.Operator):
    bl_idname = "wm.hello_world"
    bl_label = "Minimal Operator"

    def execute(self, context):
        # Report "Hello World" to the Info Area
        self.report({'INFO'}, "Hello World")

        return {'FINISHED'}

bpy.utils.register_class(HelloWorldMinimal)

# test call the operator
bpy.ops.wm.hello_world()

The Operator class template comes with predefined methods, in fact poll, invoke, execute, draw, modal, and cancel which can be used along custom properties for all different kinds of operations and also to provide user interaction. More complete example of an operator:
class HelloWorld(bpy.types.Operator):
    bl_idname = "wm.hello_world"
    bl_label = "Minimal Operator"
    bl_options = {'REGISTER'}

    # Operator user properties, should be assigned using a single colon :
    # instead of using an equal sign = in Blender 2.8
    report_flag: bpy.props.BoolProperty(
        name = "Report",
        default = True)

    @classmethod # Will never run when poll returns false
    def poll(cls, context):
        return context.object

    def invoke(self, context, event): # Used for user interaction
        wm = context.window_manager
        return wm.invoke_props_dialog(self)

    def draw(self, context): # Draw options (typically displayed in the tool-bar)
        row = self.layout
        row.prop(self, "report_flag", text="Report Hello World")

    def execute(self, context): # Runs by default
        if self.report_flag:
            self.report({'INFO'}, "Hello World")
        else:
            print ("Hello World")
        return {'FINISHED'}

bpy.utils.register_class(HelloWorld)

# For interaction, pass 'INVOKE_DEFAULT' when calling
# the operator, this way invoke runs before execute method
bpy.ops.wm.hello_world('INVOKE_DEFAULT')

Further reading: How to call a confirmation dialog box? (for tremendously dangerous operators).
Menu
For a custom menu define/inherit a Menu Class. Add your operators and properties to the draw() function properly (see also: Text Editor > Templates > Python > UI Menu templates).

class SimpleCustomMenu(bpy.types.Menu):
    bl_label = "Simple Custom Menu"
    bl_idname = "OBJECT_MT_simple_custom_menu"

    def draw(self, context):
        layout = self.layout

        layout.operator("wm.open_mainfile")
        layout.operator("wm.save_as_mainfile")

# The menu can also be called from scripts
bpy.ops.wm.call_menu(name=SimpleCustomMenu.bl_idname)

You can also draw a button to call the menu without declaring any extra operator by layout.operator("wm.call_menu").name="bl_idname"
Submenu
To get a submenu, call the second one within the parent menu via layout.menu(bl_idname).

class MyCustomMenu(bpy.types.Menu):
    bl_label = "First Menu"
    bl_idname = "OBJECT_MT_custom_menu"

    def draw(self, context):
        layout = self.layout
        layout.label(text="Hello First Menu!", icon='WORLD_DATA')

         # call the second custom menu
        layout.menu("OBJECT_MT_sub_menu", icon="COLLAPSEMENU")

class MyCustomSubMenu(bpy.types.Menu):
    bl_label = "Sub Menu"
    bl_idname = "OBJECT_MT_sub_menu"

    def draw(self, context):
        layout = self.layout
        layout.label(text="Hello Second Menu!", icon='WORLD_DATA')

        # call another predefined menu
        layout.operator("wm.call_menu", text="Unwrap").name = "VIEW3D_MT_uv_map"

# draw a button within the panel to call the first menu
class OBJECT_PT_my_panel(bpy.types.Panel):
    ...
    def draw(self, context):
        layout.operator("wm.call_menu", text="Call My Menu").name = "OBJECT_MT_custom_menu"
        ...

All in One
When creating an Add-on, usually a lot of properties are requiered. For a better organisation you can create a 'settings class' by using a PropertyGroup.Note that as of Blender 2.8x, properties should be assigned using a single colon : instead of the usual assignment operator =.
2.7x
class MySettings(PropertyGroup):

    my_bool = BoolProperty()
    my_int = IntProperty()
    my_float = FloatProperty()
    ...

2.8x
class MySettings(PropertyGroup):

    my_bool: BoolProperty()
    my_int: IntProperty()
    my_float: FloatProperty()
    ...

Also, as of Blender 2.8x module/class registration has changed to prevent name conflicts. bpy.utils.register_module(__name__) isn't available anymore so you basically have to register/unregister each class separately or within a loop (best practice):
classes = (
    WM_OT_HelloWorld,
    OBJECT_PT_CustomPanel,
)

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

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

Note that in addition to the old naming conventions you also have to add a seperator like _OT_, _MT_ or _PT_ to the name of your class based on the inherited class type (Operator, Menu, Panel).

Add-On Template
The following Add-on appends a custom panel to the Tool Shelf of the 3D View and prints the current 'user values' of all custom properties to the console:

Blender 2.7x
    bl_info = {
    "name": "Add-on Template",
    "description": "",
    "author": "",
    "version": (0, 0, 2),
    "blender": (2, 70, 0),
    "location": "3D View > Tools",
    "warning": "", # used for warning icon and text in addons panel
    "wiki_url": "",
    "tracker_url": "",
    "category": "Development"
}

import bpy

from bpy.props import (StringProperty,
                       BoolProperty,
                       IntProperty,
                       FloatProperty,
                       EnumProperty,
                       PointerProperty,
                       )
from bpy.types import (Panel,
                       Operator,
                       PropertyGroup,
                       )

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

class MySettings(PropertyGroup):

    my_bool = BoolProperty(
        name="Enable or Disable",
        description="A bool property",
        default = False
        )

    my_int = IntProperty(
        name = "Int Value",
        description="A integer property",
        default = 23,
        min = 10,
        max = 100
        )

    my_float = FloatProperty(
        name = "Float Value",
        description = "A float property",
        default = 23.7,
        min = 0.01,
        max = 30.0
        )

    my_string = StringProperty(
        name="User Input",
        description=":",
        default="",
        maxlen=1024,
        )

    my_enum = EnumProperty(
        name="Dropdown:",
        description="Apply Data to attribute.",
        items=[ ('OP1', "Option 1", ""),
                ('OP2', "Option 2", ""),
                ('OP3', "Option 3", ""),
               ]
        )

# ------------------------------------------------------------------------
#    Operators
# ------------------------------------------------------------------------

class WM_OT_HelloWorld(bpy.types.Operator):
    bl_idname = "wm.hello_world"
    bl_label = "Print Values Operator"

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

        # print the values to the console
        print("Hello World")
        print("bool state:", mytool.my_bool)
        print("int value:", mytool.my_int)
        print("float value:", mytool.my_float)
        print("string value:", mytool.my_string)
        print("enum state:", mytool.my_enum)

        return {'FINISHED'}

# ------------------------------------------------------------------------
#    Menus
# ------------------------------------------------------------------------

class OBJECT_MT_CustomMenu(bpy.types.Menu):
    bl_idname = "object.custom_menu"
    bl_label = "Select"

    def draw(self, context):
        layout = self.layout

        # Built-in example operators
        layout.operator("object.select_all", text="Select/Deselect All").action = 'TOGGLE'
        layout.operator("object.select_all", text="Inverse").action = 'INVERT'
        layout.operator("object.select_random", text="Random")

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

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

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

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

        layout.prop(mytool, "my_bool")
        layout.prop(mytool, "my_enum", text="")
        layout.prop(mytool, "my_int")
        layout.prop(mytool, "my_float")
        layout.prop(mytool, "my_string")
        layout.operator("wm.hello_world")
        layout.menu(OBJECT_MT_CustomMenu.bl_idname, text="Presets", icon="SCENE")
        layout.separator()

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

def register():
    bpy.utils.register_module(__name__)
    bpy.types.Scene.my_tool = PointerProperty(type=MySettings)

def unregister():
    bpy.utils.unregister_module(__name__)
    del bpy.types.Scene.my_tool

if __name__ == "__main__":
    register()

Gist: https://gist.github.com/p2or/a00bdde9f2751940717a404cf977dd01
Blender 2.8x
bl_info = {
    "name": "Add-on Template",
    "description": "",
    "author": "p2or",
    "version": (0, 0, 3),
    "blender": (2, 80, 0),
    "location": "3D View > Tools",
    "warning": "", # used for warning icon and text in addons panel
    "wiki_url": "",
    "tracker_url": "",
    "category": "Development"
}

import bpy

from bpy.props import (StringProperty,
                       BoolProperty,
                       IntProperty,
                       FloatProperty,
                       FloatVectorProperty,
                       EnumProperty,
                       PointerProperty,
                       )
from bpy.types import (Panel,
                       Menu,
                       Operator,
                       PropertyGroup,
                       )

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

class MyProperties(PropertyGroup):

    my_bool: BoolProperty(
        name="Enable or Disable",
        description="A bool property",
        default = False
        )

    my_int: IntProperty(
        name = "Int Value",
        description="A integer property",
        default = 23,
        min = 10,
        max = 100
        )

    my_float: FloatProperty(
        name = "Float Value",
        description = "A float property",
        default = 23.7,
        min = 0.01,
        max = 30.0
        )

    my_float_vector: FloatVectorProperty(
        name = "Float Vector Value",
        description="Something",
        default=(0.0, 0.0, 0.0),
        min= 0.0, # float
        max = 0.1
    )

    my_string: StringProperty(
        name="User Input",
        description=":",
        default="",
        maxlen=1024,
        )

    my_path: StringProperty(
        name = "Directory",
        description="Choose a directory:",
        default="",
        maxlen=1024,
        subtype='DIR_PATH'
        )

    my_enum: EnumProperty(
        name="Dropdown:",
        description="Apply Data to attribute.",
        items=[ ('OP1', "Option 1", ""),
                ('OP2', "Option 2", ""),
                ('OP3', "Option 3", ""),
               ]
        )

# ------------------------------------------------------------------------
#    Operators
# ------------------------------------------------------------------------

class WM_OT_HelloWorld(Operator):
    bl_label = "Print Values Operator"
    bl_idname = "wm.hello_world"

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

        # print the values to the console
        print("Hello World")
        print("bool state:", mytool.my_bool)
        print("int value:", mytool.my_int)
        print("float value:", mytool.my_float)
        print("string value:", mytool.my_string)
        print("enum state:", mytool.my_enum)

        return {'FINISHED'}

# ------------------------------------------------------------------------
#    Menus
# ------------------------------------------------------------------------

class OBJECT_MT_CustomMenu(bpy.types.Menu):
    bl_label = "Select"
    bl_idname = "OBJECT_MT_custom_menu"

    def draw(self, context):
        layout = self.layout

        # Built-in operators
        layout.operator("object.select_all", text="Select/Deselect All").action = 'TOGGLE'
        layout.operator("object.select_all", text="Inverse").action = 'INVERT'
        layout.operator("object.select_random", text="Random")

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

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

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

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

        layout.prop(mytool, "my_bool")
        layout.prop(mytool, "my_enum", text="")
        layout.prop(mytool, "my_int")
        layout.prop(mytool, "my_float")
        layout.prop(mytool, "my_float_vector", text="")
        layout.prop(mytool, "my_string")
        layout.prop(mytool, "my_path")
        layout.operator("wm.hello_world")
        layout.menu(OBJECT_MT_CustomMenu.bl_idname, text="Presets", icon="SCENE")
        layout.separator()

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

classes = (
    MyProperties,
    WM_OT_HelloWorld,
    OBJECT_MT_CustomMenu,
    OBJECT_PT_CustomPanel
)

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

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

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

if __name__ == "__main__":
    register()

Gist: https://gist.github.com/p2or/2947b1aa89141caae182526a8fc2bc5a

More complex examples

What ui would work for choosing from a long, long list?
script custom previews in a menu
Create an interface which is similar to the material list box

modified version -- for blender 2.80 !!!

# https://blender.stackexchange.com/q/57306/3710
# https://blender.stackexchange.com/q/79779/3710

#
# modified for blender 2.80
# last modification: 2019-09-12 -- add custom-preferences panel -- Emanuel Rumpf --

bl_info = {
    "name": "Add-on Template",
    "description": "",
    "author": "",
    "version": (0, 0, 2),
    "blender": (2, 80, 0),
    "location": "3D View > Tools",
    "warning": "", # used for warning icon and text in addons panel
    "wiki_url": "",
    "tracker_url": "",
    "category": "Development"
}

"""
This is an addon - template for blender 2.80
Use it as base for new addons.
--
Some changes made for blender 2.80 version (from 2.79):
- Properties are annotations now, assigned with : not =
- bl_region_type now is "UI" not "TOOLS"
- Registration procedure changed:
  Use bpy.utils.register_class() not register_module()

More information see: python api blender 2.80
"""

import bpy

#import collections
#import importlib

#import mathutils
#import math

from bpy.utils import ( register_class, unregister_class )
from bpy.props import ( StringProperty,
                        BoolProperty,
                        IntProperty,
                        FloatProperty,
                        FloatVectorProperty,
                        EnumProperty,
                        PointerProperty,
                       )
from bpy.types import ( Panel,
                        AddonPreferences,
                        Operator,
                        PropertyGroup,
                      )

# this must match the addon name, use '__package__'
# when defining this in a submodule of a python package.
addon_name = __name__      # when single file
#addon_name = __package__   # when file in package

# ------------------------------------------------------------------------
#   settings in addon-preferences panel
# ------------------------------------------------------------------------

# panel update function for PREFS_PT_MyPrefs panel
def _update_panel_fnc (self, context):
    #
    # load addon custom-preferences
    print( addon_name, ': update pref.panel function called' )
    #
    main_panel =  OBJECT_PT_my_panel
    #
    main_panel .bl_category = context .preferences.addons[addon_name] .preferences.tab_label
    # re-register for update
    unregister_class( main_panel )
    register_class( main_panel )

class PREFS_PT_MyPrefs( AddonPreferences ):
    ''' Custom Addon Preferences Panel - in addon activation panel -
    menu / edit / preferences / add-ons
    '''

    bl_idname = addon_name

    tab_label: StringProperty(
            name="Tab Label",
            description="Choose a label-name for the panel tab",
            default="New Addon",
            update=_update_panel_fnc
    )

    def draw(self, context):
        layout = self.layout

        row = layout.row()
        col = row.column()
        col.label(text="Tab Label:")
        col.prop(self, "tab_label", text="")

# ------------------------------------------------------------------------
#   properties visible in the addon-panel
# ------------------------------------------------------------------------

class PG_MyProperties (PropertyGroup):

    my_bool : BoolProperty(
        name="Enable or Disable",
        description="A bool property",
        default = False
        )

    my_int : IntProperty(
        name = "Int Value",
        description="A integer property",
        default = 23,
        min = 10,
        max = 100
        )

    my_float : FloatProperty(
        name = "Float Value",
        description = "A float property",
        default = 23.7,
        min = 0.01,
        max = 30.0
        )

    my_float_vector : FloatVectorProperty(
        name = "Float Vector Value",
        description="Something",
        default=(0.0, 0.0, 0.0),
        min= 0.0, # float
        max = 0.1
    )

    my_string : StringProperty(
        name="User Input",
        description=":",
        default="",
        maxlen=1024,
        )

    my_enum : EnumProperty(
        name="Dropdown:",
        description="Apply Data to attribute.",
        items=[ ('OP1', "Option 1", ""),
                ('OP2', "Option 2", ""),
                ('OP3', "Option 3", ""),
               ]
        )

# ------------------------------------------------------------------------
#   operators
# ------------------------------------------------------------------------

class OT_HelloWorldOperator (bpy.types.Operator):
    bl_idname = "wm.hello_world"
    bl_label = "Print Values Operator"

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

        # print the values to the console
        print("Hello World")
        print("bool state:", mytool.my_bool)
        print("int value:", mytool.my_int)
        print("float value:", mytool.my_float)
        print("string value:", mytool.my_string)
        print("enum state:", mytool.my_enum)

        return {'FINISHED'}

# ------------------------------------------------------------------------
#   menus
# ------------------------------------------------------------------------

class MT_BasicMenu (bpy.types.Menu):
    bl_idname = "OBJECT_MT_select_test"
    bl_label = "Select"

    def draw(self, context):
        layout = self.layout

        # built-in example operators
        layout.operator("object.select_all", text="Select/Deselect All").action = 'TOGGLE'
        layout.operator("object.select_all", text="Inverse").action = 'INVERT'
        layout.operator("object.select_random", text="Random")

# ------------------------------------------------------------------------
#   addon - panel -- visible in objectmode
# ------------------------------------------------------------------------

class OBJECT_PT_my_panel (Panel):
    bl_idname = "OBJECT_PT_my_panel"
    bl_label = "My Panel"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "Tool"  # note: replaced by preferences-setting in register function
    bl_context = "objectmode"

#   def __init(self):
#       super( self, Panel ).__init__()
#       bl_category = bpy.context.preferences.addons[__name__].preferences.category

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

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

        layout.prop( mytool, "my_bool")
        layout.prop( mytool, "my_enum", text="")
        layout.prop( mytool, "my_int")
        layout.prop( mytool, "my_float")
        layout.prop( mytool, "my_float_vector", text="")
        layout.prop( mytool, "my_string")
        layout.operator( "wm.hello_world")
        layout.menu( "OBJECT_MT_select_test", text="Presets", icon="SCENE")

# ------------------------------------------------------------------------
# register and unregister
# ------------------------------------------------------------------------

classes = (
    PG_MyProperties,
    #
    OT_HelloWorldOperator,
    MT_BasicMenu,
    OBJECT_PT_my_panel,
    #
    PREFS_PT_MyPrefs,
)

def register():
    #
    for cls in classes:
        register_class(cls)
    #
    bpy.types.Scene.my_tool = PointerProperty(type=PG_MyProperties)

    #

def unregister():
    #
    for cls in reversed(classes):
        unregister_class(cls)
    #
    del bpy.types.Scene.my_tool  # remove PG_MyProperties

if __name__ == "__main__":
    pass
    #register()

Some changes made for blender 2.80 version:

Properties are annotations now, assigned with : not =
bl_region_type now is "UI" not "TOOLS"
Registration procedure changed:

Use bpy.utils.register_class() not register_module()

More information: python api blender 2.80


Glossy object seems dark and non-reflective Hi all, having trouble seeing a good render (cycles) of this donut I'm trying to make. Setting is glossy, but seems dark and non-reflective, just looks like puddy and basically all other BDSF looks basically the same. Is not glossy/ reflective!

specs:
windows 8.1
intel core i5-4210U
GeForce 840m

Thanks

Looks like you need some lightning and other objects for it to reflect off of. Additionally you could load it up in a game engine with a glossy shader and test it that way.


Images with Alpha look different when layered in compositor compared to Photoshop I'm struggling to get the same result in the Blender node editor when layering images with transparency, to the result I get when doing the same in Photoshop.
The Blender result is shinier/washed out compared to the result from Photoshop (see below).
The blend file can be found here:
https://drive.google.com/file/d/0B54MopLgZnccM2VnVWVTLUxlNUk/view?usp=sharing
I've played around with Premultiplied and Straight Alpha, tried 32 bit pngs, mix nodes and Alpha Over nodes, and pulling out my hair, but haven't been able to find the answer.

Thanks for any help!
Mark.

Photoshop has a non-linear reference space typically, and as such, all blends are wrong.

Blender's compositor on the other hand, uses a strictly linearized reference space, and alpha overs, assuming you are using associated alpha and the Alpha over node, are correct.

Nonlinear Over:

Linearized Over:

I opened the file, and immediately it looked like the photoshop reference you posted (No mods to your file), see attached.


One Material not rendering Does anyone know why this is happening?  Render view shows the material, while the final render does not, and it is only one material (black plastic renders a standard while clay).

Solved.

A couple of the node settings were set way too high and applying the effect over too great an area making it appear as though there was a white material over the whole thing.

Thanks for the help.

Check your material window again, under the selection area, make sure it is set to Data, not Object.

thats about all I can help without the file :) hope it works!


How to make flat spirals What would be the most efficient way to make a spiral curve for objects shaped as in the photo?

You may do it using Spirals of the Curve Extra Objects add on.

Activate the add on in User Preferences-->Add-ons (Ctrl+Alt+U).

Add a spiral and play with its settings (Spirals panel in a Tool Shelf).

Extend the spiral's lenght extruding the curve's points. Add a Bezier Circle in the same position as the spiral is. Scale it to give a curve a desired thickness. Apply its transformations (Ctrl+A-->Rot&Scale).

Select the spiral in Object Mode, go to the Curve Data header and set the Bezier Circle as a target of the beveled object.

Select the very top point of the curve, enable proportional editing and translate it along Z axis a bit to hide the ugly end of a curve.

You should get something like this:

To make make it gradually thinner in the inside select the very top point of the curve and scale it a bit with Alt+S using the proportional editing. Then scale it with S with a big proportional size falloff.

You may also use the proportional editing to easy change the curve's height.

I'd believe using a curve and a bevel object would yield the expected result.

You may change the radius to make it thinner or thicker


Clear custom split normal data just for selected faces When I hit "Clear custom split normal data" it clears them from the whole object, which is not what I want.

Is there some way how to apply it only to specific selected face(s)?

You can aim a Data Transfer modifier at a vertex group. Vertices in the group will receive the data from the chosen source. Those not in the group will not.

Top left, below: A cylinder with two regions of faces split out, and left where they were, so the normals do not interpolate. Top right, an intact version of the Cylinder.. ('Form')

.. Bottom left, the 'D_XFer' vertex group. Bottom right, the normals partially transferred from 'Form', to the cylinder with split faces,  according to the group.
If you apply the modifier, its result becomes a Custom Split Normals layer.
So, the steps I was thinking of go as follows:

ShiftD make a duplicate of your problem object
Clear Custom Split Normals on the copy, (giving you some unwanted loss of smoothing, as described)
Assign the vertices whose smoothing you would like to restore from the original to a vertex group.
Give the copy a Data Transfer modifier, targeted on the vertex group, with the original as its source object.

This should pick up the desired normals from the original, leaving the others cleared. When you apply the modifier (in Object Mode), a new Custom Split Normals data layer will be  created on the duplicate, which is a partial copy of the original's. So you will have 'Cleared Custom Split Normal Data for selected faces.'
There may be better approaches altogether, repairing topology by remodelling? or simply reassigning split normals from scratch, using 'Autosmooth' in the object's 'Data' tab 'Normals' panel?... but this is a way to transfer some normals, but not others.

This is probably due to the effect of autosmooth.  When you delete custom normals, you're suddenly using your autosmooth.  If the autosmooth angle is set low, your cylinders (for example) will appear flat shaded.  (Autosmooth is maybe poorly named, because what it does is automatically sharpen edges, not smooth them.)
Look in properties/object data/normals for autosmooth.  Either disable this, or set the angle to a higher value.  An autosmooth of 180 degrees is the same thing as no autosmooth.
The problems you're having shouldn't be due to your geometry normals, just from smooth settings, so you don't need to clear it from just selected faces.  However, if you needed to do that, what you'd actually have to do is have custom normals for all vertices, but some of them could be your base geometry's normals.  You could use a vertex group limited data transfer modifier, copying custom normals from nearest face and best matching normal, targeting a modified copy of your base mesh (probably, just with custom normals deleted) to "restore" your base normals on a vertex-by-vertex basis.


Making holes in a mesh How do I make a hole in an object created by me? Please help, youtube tutorials didn't help at all. Hope the image help.

You could use a couple different methods:
Boolean modifier:

Add a boolean modifier on the object you want to cut a hole in,

Create an object to "subtract" from the main object

Set that object in the boolean modifier. You can press E while hovering over the object selection field to set the field by clicking on an object in the 3D view.

knife project tool:

Add a circle or some other object to define the outline of the hole

With the circle selected, ⇧ Shift select the object you want to cut a hole in and enter edit mode (↹ Tab)

Select the faces you want to cut, then click knife project in the tool shelf. If you want to cut all the way through the mesh, enable Cut through in the redo panel (F6)

Then select the newly cut edges with ⎇ Alt⇧ Shift RMB and press W> Bridge edge loops to connect the ends of the hole.

Face intersect tool:
This feature will be added in 2.72, but until then you can use it in the latest development builds.
This is essentially like the boolean modifier, except it works in edit mode.

Here is a nice video made by the author of this feature, explaining how it works.

You can also use curves for modelling the base mesh.then use the curve with edit mode then add a bezier circle to make a hole.


Make a rigid body bounce from an angle I would like to make this ball bounce in an angle coming from the left. How do I do it? Please Help thank you very much.

One way to do this is using particles. First add a Sphere and Tab into edit mode and move it in the Z-axis till the origin is at the bottom.

Move this Sphere to a different layer. Next add two Planes. One will be used for generating the ball and the other will be used as a floor. And place them in a manner shown below. Make the floor large enough.

Now, select the floor and go to the "Physics" tab and toggle "Collision". Then select the plane at the top and add a particle system to it. Set the Emission Number to 1. Increase the Lifetime to the length of your animation. Then scroll down to "Render" and toggle "Object". In the "Dupli Object" select the Sphere. Then increase the size to the desired level. Check off "Emitter" so the plane doesn't show up in your render. Now go to "Velocity" and set the starting speed on the Z-axis. Finally press Alt+A to animate.

In my experience, using force fields is the best way to do this. It might cause a problem if you have other physics simulations too though.


Camera stuck in my character I have a character and i'm doing a rigging / skinning.  I don't know how it happened, but my view is now stuck in my Character.  I can't get out of it, either with my mouse or any View option.  I do have a camera in my scene and the problem is not related with it...

You can see the .blend file here:  http://dropcanvas.com/h5o5k

thanks a lot for your help

You have locked your camera to the character. Press N to open the properties shelf. Go to View panel and delete the name of the object under the Lock to Object header.

An easier way is to try clicking on the number pad. if that does not work, try exiting blender and going back in..


Why does my frame range start automatically revert back to 0 after I set it? I want to do as described here: How Do You Start Animation At A Specific Frame?

Whether I use the setter below the timeline, or the one in the render panel, immediately after I set it--clicking anywhere else--it goes back to 0.  Also trying to set it via the arrows, you can't get past 1, and that also reverts to 0 as soon as you click elsewhere.  Even if I type it in the render panel and the next thing I do is click the anim button (while the typing caret is still there), it has gone back to 0 before the render begins:

Is there some context in which this is normal behaviour?  If so, how can I change it?

Never mind, I forgot to mention I'm using an add-on, and with that disabled, this doesn't happen.  So it must be overriding it.


How can I remove a linked library with Python? Load and add linked object

I'm working on an add-on. The purpose is to link and un-link groups from another blend file. Thanks to stack exchange and the Blender documentation this works pretty well.

This means I can load a library and import a group from it.

with bpy.data.libraries.load(path, link=True) as (sourceData, targetData):
    targetData.groups = sourceData.groups

Then I search the library and extract the group to create an instance of the group:

instance = bpy.data.objects.new(name, None)
instance.dupli_type = 'GROUP'
instance.dupli_group = group
context.scene.objects.link(instance)

The result is a dupli-group object that links in the other blend file. (the link is persistent and will survive a reload .. that is what I want).

Unlink/Remove/Delete

My idea is to do the opposite. If the user does not want this link anymore, I would like to get rid of

the instance
the group
the linked library

This works pretty nicely too for this instance:

context.scene.objects.unlink(instance)
bpy.data.objects.remove(instance)

and the group:

group.user_clear()
bpy.data.groups.remove(group)

I saw (in the outliner/Blendfile)there is still a user to the library. I guess it is the group object. So I removed that too:

for object in  library.users_id:
    for object in  library.users_id:
        object.user_clear()
        bpy.data.objects.remove(object)

Now the outline shows me the library without any user ... but

How can I unload/remove/delete the library without reloading the blend file?

It seems there is no API call to do that. bpy.data.libraries.remove() does not exist. There is a load but no unload.

Saving/Loading the file removes the library. But this is far away from any comfort.

  Reloading the blend file destroys the current context. E.g. undo would not be possible anymore. It also involves unnecessary file operations, that leads to another cycle in the backup files. Beside of that it simply feels incorrect to use such a workaround (Imagine you need to restart your PC each time you delete a file)

I found this one: Q: Proper way to remove unused linked Group data-blocks but this does not answer my question as I want to get rid of the library not just the group.

Do I miss something?

Thank you
Monster

Quite an old thread, but it seems there is finally a solution available.
Newer versions of Blender provide the batch_remove method in the bpy.types.BlendData type.
So you can call:
bpy.data.batch_remove(ids=(my_library,))

my_library is a bpy.types.Library object in this case and no string/name.
Keep in mind that to this date, the documentation states, that this method is considered experimental, but as long as you don't deal with blend file critical data blocks like scenes, it seems you should be fine.

Using a python "with" statement you don't need to unload/remove/delete the library, because when you leave the block of with, the resources are cleanly released regardless of the outcome of the code in the block. I suggest this post to better understand the use of with.


Scale settings for exporting to STL (for 3d printing) I've set my Units (in scene properties) to Metric, and the Scene Scale to 0.01 hoping to get the Blender dimensions it mm's. While the (normal) scale is 1 for x,y,z, the standard cube has the dimensions 2x2x2 cm. When I export this to an STL and open it in a slicing program (Netfabb, Slic3r or Cura) they all give the dimensions: 2x2x2 mm. While exporting, the scale is 1.

What am I doing wrong? I hope you can help me.

Thanks!

The STL exporter doesn't take Scene Scale into account. Import your STL back into Blender (it will have the same size) and drag Scene Scale up back to 1.0, and you'll see how the cube grows relative to the grid.

1 Blender unit equals 1m, but STL seems to assume 1 unit as 1cm.

If you want 1 unit to be 1mm, set Scale on STL export to 0.1 and Scene Scale to 0.001 to make it match the output scale in viewport.

Note that the STL will be 10x smaller if you re-import it into Blender!

I was able to solve this by selecting File, Export, Stl file format, and Selectihg ASCII (so it's viewable in Notepad), and then increasing the scale (in my case to 1000).   I still believe Scene Unit (select it) is important.   Once I looked at the vertices in Notepad ,they looked "good" and it imported into my slicer (Simplify3D) without a hitch.


Why do I get a "Permission Denied" error when importing an obj file? I'm extremely new to Blender. I literally just downloaded it, I was trying to import a .obj file however when I try I get the error message you see in the title. Any way to get around this? please help. Thanks.
I have the steam version.

You are getting this error because your user doesn't have permission to read the file. In your specific case, there dosen't seem to be a problem with the permissions of the file itself but rather with its containing directory.

To view or change permissions, right-click the file in Windows Explorer, click Properties, click the Security tab, and select your username in the "Group or user names" pane.
One workaround that doesn't involve fiddling with permissions is to copy the file to somewhere else with Windows explorer.

I had the same problem. I don't know if it's windows or the program that exported the file that messed up the access rights. After exporting the same object with the same program to the same directory, but under a different name the problem was solved. I just renamed the files to the name I originally used and it still worked. Really weird.


Blender for Beginners My nephew seems interested in doing 3d and all the great things Blender can do. I've done enough in Blender to love it.  But I can't afford a $4000  computer specified, especially not knowing if his interest is genuine.
 Is there an earlier version of blender that would run on Windows 7, just to see if he likes it?  The computer I'd like to give him is a Dell Optiplex 360, 4GB DDR2 Ram, 2.6 Ghz Dual Core Pentium. 250 GB hard drive. On board graphics card.  (I tried a slightly better graphics card, but couldn't get it to work.)

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

I started to use blender with dual core duo and 4GB ddr2. You can do ONLY basic stuff with it. Sculpting, subdivision surfaces, simulations ect, are either slow or they will crash your computer. Also rendering stuff takes forever with those specs. Recently i bought some newer USED parts for my computer, including motherboard, i5 processor and 8GB ddr3 ram and now i can do much more in a much less time. Price for used parts was like 300-400 euros total. So i'd say that getting bit better computer for KEEP him interested as with too low spec computer spark might fade away. What comes to version for windows 7, i still would recommend to use newest one as operation system ain't problem with Blender, hardware makes bottlenecks.


Game Engine does not conserve momentum I am trying to setup some physical simulation in the BGE where it would be best if the the total energy of the system is conserved. However, if looks like I can't get the physics engine to keep the energy level even remotely constant.

Things I've done:

Render Settings: Toggled Use framerate
World: Gravity set to 0, played around with the FPS and physics accuracy, sleep disabled.
Dynamics: All Damping set to 0, tried 'rigid body' as well as 'dynamics'
Material: Friction set to 0
Material: Elasticity of Collision set to 1

Here is a test file: Layer 1 and 2 has two separate test scenes. There is a notable increase in the speed of all objects after each collision (as seen in the console window)

Am I missing something? Or am I asking too much from a game-centric physics engine?

I've written a Blender/Bullet simulation of a Newton's Cradle that doesn't conserve energy.  Here's two animations that illustrate the problem:

It's all done with rigid bodies, and the wooden top piece doesn't participate in the physics.  The initial angle of the first ball is an adjustable parameter - 90 degrees in the first animation, 60 degrees in the second.  You can reproduce everything by running this script in Bullet 2.69.  Make sure the Tool Shelf is open to get to the simulation controls.

I suspect that it's all the same problem.

Wala, the following video shows an amazing tutorial. I am very impressed.

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


Blender explosion animation not rendering I am trying to create an explosion in Blender. However, when I try to render the explosion, this white box gets bigger in my particle domain but I can see the explosion in the viewport. What am I missing?

Found out that I just needed to put on a material for my domain. Now there is no box. But when rendering there is no explosion either. 1 frame just renders for like 10 minutes and there is no explosion. Guess I'll have to try to make my explosion from scratch.


2.9x - How to import multiple obj files? I just want to import multiple obj files into blender:

The addon by poor from Import multiple OBJ files for Blender 2.8x on blenderartists does not seem to work for 2.9 anymore. Any help?

You actually don't need to use an add-on to import multiple .obj files. You can manually continuosly keep on importing them. If you have saved it in a folder and there are too many of them, you can press shift and select the last file you want to import. If there are any files in the middle you don't need, go to the file explorer and drag the all the unnecessary files to the bottom. Then press shift to the last file you want to import and press import. The files might be imported might be in the wrong order and you have to arrange them. Or, you could import them one-by-one. I know it is difficult if there are too many files, but is less CPU intensive while loading all the meshes. This should work without any problems.


how to render in user perspective and not camera perspective When I render an image, the render uses the camera perspective. What setting do I need to change to have the render show the user perspective?

There is no real way to do that. (For example many settings like defocus depend on the camera object.) You simply will have to move the camera around.

Firstly: You can move the camera around like any object (grab with G, rotate with R and scale with S), but it is easier to go to the camera perspective (numpad 0) and enter fly mode (Shift+F). This allows you to position the camera in a more practical way. (See this in more detail here: https://youtu.be/xcZmyD9jkI4)

Secondly: If you want to save the camera's position for some reason, you can simply add a new one to the scene (Shift+A) and set it to be the active camera by pressing the Ctrl + 0 hotkey. Now the scene will be rendered from it and hitting 0 will make you look through it. You can tell which camera is active by looking at the camera object from another view: the small triangle above it is filled when it's active.

Thirdly: If your user perspective is "just the right way", you can align the camera to it (I can't remember the hotkey, but hitting space and looking for something along the lines of "Align camera to view" should get it).

You can easily switch between Perspective and Orthographic rendering, not just the viewport as other answers may suggest.

Select the camera you wish to change. Right Click the camera so that it is selected and appears orange.
Select the camera's Data tab (circled in red below)

Select Orthographic

Adjust the Orthographic Scale to ensure objects are within the camera's view.


Add color to shadow catcher Whatever I do, I can't figure out how to change the color of my shadows.

I am using the "shadow catcher" feature in v.2.79
and have my object and the shadow catcher on separate layers.

I tried adding an additional Sun with a blueish tint and HDRI images as Environment Maps but both only colored the object, not the shadow. Also, I tried to use a mix node with the shadow layer and a blueish color as inputs, but it looked weird. I am compositing the Render onto a Background video.

The final render looks like this:

(Also for some reason the shadow is much lighter than in the render preview).
Also here is my composite node graph:

http://imgur.com/F4qdlpir.

Hopefully this can be fixed, happy about your input :)

The Shadow Catcher shader is designed to return the whole appearance of the shader in the Alpha channel. You can see this when rendering a shadow catching object, and switching the display from RGBA to RGB (discarding the Alpha channel information):
normal RGBA display mode:

only RGB channels, entirely black:

only Alpha channel:

Now to add color to your shadows, You'll need to work on the RGB components, as the Alpha is just a blending factor between foreground and background. You can use a very simplified setup like this to get started:

So I'm feeding the Alpha Channel of my shadow catcher layer into a set alpha node, which allows me to define completely different RGB components there. In this setup, I went for a cheap and simple solid dark blue color, but it could also be your color corrected background image with a bluish tint in there.
further examination
For further explanation and the Render Layer setup, check out the .blend file here:

EDIT: Comping over a background image
The following setup should give a hint on how to tint the shadow, in case you need to comp it over an arbitrary background. I forgot that in the original answer, apologies here. Check the updated .blend file from here:

As troy_s suggests in the comments, to tint that shadow on the background, a multiplication has to happen first. Think of the Alpha channel as a constriction of light: It's like cutting out a FG image, and thus it merely defines a geometry rather than a transparency. That can be utilized here. The node setup basically multiplies the BG image with the desired tint color:

Multiplying is one way to treat that BG, but you can use other grade nodes if you like. In that first section you basically tint the whole background before assigning the Alpha channel to that resulting image. So in essence, you grade the BG, and then cut out the portion which is in shadow, and comp that over the original background. An additional Alpha Convert is needed here. If you mute it, you'll notice a lift of pixel values in areas where there should not be any change. The Alpha Convert fixes that.
The resulting image shows a comparison between the two (black and tinted). Please note that the tinted shadow will always get lighter than the black one. That's simply because nothing can become darker than (0.0, 0.0, 0.0). To achieve a different color (like blue), channels need to be lifted.

There is one easier way to get over it

1.open your PNG with Photoshop and use select color layer to adjust shadow part

Here is the original effect

2.choose color to black in select color layer(which point to shadow part), and then adjust it the color parameter by youself

3.If you want to batch adjust PNG images or video clip, make a action record in Photoshop

4.export that action to execution file

5.Every time you want to make shadow colorful , just drag your image or folder to that exported execution file , you will quickly reach your dream


Changing primitive properties retrospectively - options not visible below the tool panel When adding a circle I can see the 'Add circle' panel below the tool bar, but once I do something else it disappears. How do I get this back? How can I change the number vertices on an existing circle for instance? It appears that you have to do this immediately after adding the primitive, otherwise you're scuppered?

Creation is special.  Some options you are see are valid at creation time only.  That is standard Blender behavior. The options panel will disappear as you move on to the next mode or task.  If you created a with sphere 32 rings and then in [edit mode] removed many faces ... it is difficult to understand what it would mean to change the rings to 7.

It is difficult to get a creation panel behavior that is acceptable to a large consensus after some object has been potentially modified.


How do I make a crescent? I want to make a perfectly round crescent but no matter how I tweak it ends up looking lumpy when I use a curve extrusion. As I subdivide segments and try to eyeball each point's radius scale... it just looks bad.

I am stumped how does one make a perfectly circular crescent?

Like this?

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


How to create a seamles UV map for an hexagonal grid texture? I have very little experience unwrapping UVs. I'm not able to wrap my head around how to seamlessly create the texture for a beveled rectangle.

Here was my attempt when UV unwrapping it. I ended up with large, ugly seams.

In Rocket League they not have seams, but their texture was not a simply repeating hexagonal pattern like mine was. Theirs was filled with irregular sized hexagons, as well as pentagons in some places where the pattern needed to transition and curve.

I'd love any direction as to how you think the developers might have accomplished this seamless, custom UV texture.

I haven't played RL in a while, but are the ceilings the same beveled rectangle shape?

It looks like your images are being stretched as they get closer to the beveled edge.  It also looks like your screenshot isn't from Blender, so I don't know how to do it in whatever software that is, but if you're working in Blender I'd suggest going to UV mode and adjusting the vertices until it looks better.  Also, check your texture and see how the edges line up at the top/bottom and left/right.  It might take some photo editing and/or scaling to get it to work.

Good luck!


Objects aren't visible when I render the image I asked this question earlier without too much context. I attached the file of my blender project to provide better info. Here is what I wrote in in my previous thread:
So when I render the lamp most of the meshes don't show up. All objects are set to be rendered so I don't know why this is happening. Also when I copy the lamp and paste it in a new blender window, the same objects that won't show up when rendered in the original file won't show up in object or edit mode.
I attached the file on the following link:
https://drive.google.com/file/d/0Bw9YfCDmAT5BNGVGOU1aRnRKclU/view?usp=sharing

LAYERS

Do the following for every object from largest object to the smallest.  In the object panel / Relations click on layer (1) so it is dark as in the image above, the upper left layer rectangle of 20 possible.  Then click render.
These layers are coordinated with these Render Layer Settings

When a new simple file is created objects are on layer 1 and the render layer settings are showing at least layer 1.  Blender gives the user the flexibility to hide or show these layers at different times and phases.  It can be used as a feature or to create confusion.

If you want to know more you can now search at this website and blender.org and video site for information about [layers].  Quick Summary.  Every file can have multiple render layers.  Every render layer can select some of the twenty layers.  Every object can be on some render layers.  All 3 concepts must be coordinated with other hidden delights for an object to appear in the render.

I don't have an answer; I would comment if I could, but I'm a n00b here and I don't have reputation points. But I wanted to throw in what I found.

I was playing around with joining and separating everything in the scene, and this monster appeared. I'm getting it to appear by selecting everything in the scene and joining. You might have to join/separate on repeat.

It breaks down into these parts, many of which seem redundant:

Have you seen this thing before? In edit mode, nothing shows as selected, though it behaves as if it is when I manipulate it. And once it appears, the verts count goes to 0.

I also noticed that the spring pieces disappear when they're joined.

If it's any solace, I'm thoroughly confused.


Multiple character instances with BlenRig workflow? I'm working on a project that requires using many instances of the same character and rig in a scene, which I've created using BlenRig 5 (working great).

How do I go about instancing the character and rig multiple times so that I can apply different animations to all the instanced characters? Any advice or tips on the best workflow for this would be much appreciated!

Since Blender 2.81, a new feature has been added in order to overcome the limitation of one same rig per scene: library overrides.
It's only the first implementation and officially considered as experimental, it is still limited and it's planned to be enhanced in the future.

You can learn more on the manual

Simple example:

Scene consists of a mesh(character) and it's skinned rig.

When you duplicate a lot of the same objects using Shift+D, blender creates new mesh-data for every instance. All of these mesh-data has to be load into the memory before rendereing, but if you do not change anything on a dupli-mesh, the mesh-data dupli is unnecessary.

To 'fix' this, you can manually change the mesh data in the properties panel:

Or you can use the shortcut Alt+D (instead of Shift+D)! This way will also 'link' your meshes: if you move a vertex in one, it will change in every linked mesh.

Also when rendering a lot of objects in Cycles, a good way to handle memory is to use the 'Adaptive-subdivisions' option:

This feature is currently still under 'experimental' though.


Smoke Domain object is black So I'm really new to blender and I'm trying to get a book to catch on fire and fall over, but for some reason the domain for the smoke system is totally black. Not sure what to do or what I did. Any idea what's happening?

That's how it looks before I hit play

To see if it's a hardware problem, you can always create a 'Quick Effect'. If that doesn't work, then your PC hardware is having trouble rendering the smoke (but that's unlikely). If it does work, then you now have a working setup as a reference.

To create a Quick Smoke, start with a new Blender file, then select
the default cube.
Call up the search box with Spacebarand type in 'Quick Smoke'.
Press Alt+A to see the effect.

Solution.

AMD video cards do not support fire or smoke rendering, you will get the domain box rendered instead.

You will have to render using CPU only.


Boolean intersect behaves sometimes unpredictably I'm having some weird and mostly unreproducable error concerning the boolean-intersect modifier. In rare cases, it does not cut objA along the edge of objB but rather along the contour. See the following pictures for clearification:

The modifier on the heel behaves as expected when intersecting the plane, but the one on the forefoot sometimes yields these strange results.

Does someone have an idea why that behaviour occurs? Thanks!

I tried the same, using plane for boolean operation and I got the same issue so I tried using a Cube for the Boolean rather than using a plan and there it is , solved! So you might have to use the cube for such operations and after you apply the boolean simply delete the Cube.


Adding a vertex onto an angled edge in precise X position I'm designing a part for 3D printing, but I do not know how to cut an angled edge at a precise absolute X position. I marked in red the place where I would like to insert a vertex. It's exactly 2 units (millimeters) from the left. So far I was unable to achieve this with desired precision.

EDIT

First attempt. Using GG to move the vertex along the line and snapping to another vertex failed because apparently this tool uses local reference system.

Second attempt. using TinyCAD plugin. Worked perfectly!
I created a second edge that intersected the angled one, and used XALL to insert a vertex on the intersection.

You could subdivide the edge to add a vertex. Select the vertex and press GG to slide the vert. Make sure snapping is set to vertex and then click on the vert shown at 2 units above. This should line up the lower vertex on the angled line with the vertex above

The vertex above could be place at 2 units with snapping set to increment absolute grid.

 Answer above incorrect. New solution:

Ok this one bugged me as it should be possible to do this. I turned on edge length in the overlay

I subdivided the angled edge to create a vert and then GG and dragged the vert to the starting vert on the edge. I am working in m so in the image you can see 0m.

With the vert still selected I dragged it back along the angled edge whilst holding shift to get a more precise value. I moved the vert until it was at 0.5m

Should be able to use this technique for other stuff


Why are there seams all over the mesh when a Normal Map is applied? I am making a game asset, so first I made a high poly model and then Decimated the duplicate using the Decimate modifier. Then I baked the Normals of the High Poly model on to the Low Poly model and gave the generated normal map to the Low Poly model. Worked pretty decent ignoring the fact that there were seams all over the model.

p.s. don't mind the different colours that just texture

In Edit mode below:

*Also incase some of you might be concerned, converting Tris to Quads did not help

I don't know should I Unwrap the mesh again or add more geometry, but it is already 7000 Faces, its already a lot for a game asset.

*The Alpha was checked all along, but the problems still seams to appear.I tried unchecking and checking Alpha, but nothing changes. Also I've noticed that the seams are mostly on the places where my edges in edit mode are, I dont know what that could mean, maybe the Normals map is not strong enough though it is on MAX

Save the normal map externally. Then select "usa alpha" in the texture properties and this gets rid of issues with margins and rendering.


Custom Properties value in Animation Nodes I'd like to directly control custom properties of my empties and bones in Animation Nodes tree, to avoid location, scale and rotation manipulation. "Object Attribute Input" doesn't work, even after using copy data path.

My workaround is to create empty with scale controlled by custom properties, and this scale attribute is used in Animation Nodes tree, but I hope, I can do it .

You can use expression node to control property of object. Use ctrl+shift+alt+c on a property to get code. use that code inside expression node to get or set the data.

For example an object Empty has two custom properties A and B. We can get value of A
using bpy.data.objects["Empty"]["A"]. Similarly we can set value to B using bpy.data.objects["Empty"]["B"]=x where x is the data we provide.

Or you can replace the object name and property name by,

the default Animation Nodes do not have 'Bone' sockets, ClockMender wrote some nodes that would be useful for that.


Blender Multiple Animations I made an animation for my gun in my FPS, but I came across a problem while making another animation. If all the keyframes are saved to the object itself, then I can't make another animation because the previous one is in the way. Is there a way to have more than 1 animation on an object?

you can create multiple animations for a single object.
There are 2 ways to do it.

Either key frame your animation on time line as mentioned by @Xortrox above , or do some advance working in dopesheet/action editor, which allows you to create multiple animations, all seperate in their own animation set.

I prefer the 2nd option of dope sheet editor, as it gives more flexibility.

In most game engines I would be basing the animations on several starting frames, that is for example:
Run animation = frame 0 -> 59
Idle animation = frame 60 -> 119

Doing a quick google of "Blender Multiple Animations" brought up this as the first link however:

http://eelstork.deviantart.com/art/Multiple-animations-in-the-same-file-Blender-Tut-321883259


White background with filmic blender When I tried rendering the scene with white background in filmic blender, I'm getting grey coloured background. But I'm able to achieve this with standard colour management options.

P.s: I have edited light source to match the filmic blender.

Filmic blender uses  a different scale than sRGB, it is designed for a much wider dynamic range, so to get white it is necessary to increase the intensity of the light for that background.
The standard sRGB transform will display "white" when the scene values reach a value of 1

Using the filmic blender transforms, you need a much higher value. "White" is at a value of 16.19.

To visualize how the scene referred values are being mapped using the filmic blender you can use the false colour view transform.
To understand what filmic blender does and how it maps the scene's values to the displayed image please read the following link: Render with a wider dynamic range in cycles to produce photorealistic looking images
and https://github.com/sobotka/filmic-blender

This compositing node setup produce 100% white on transparent channel with filmic color management:

Note that in the color balance node, "Correction Formula" has to be set to "Offset/Power/Slope (ASC-CDL)" and also the grey scale faders all have to be set to 100% white.
This setup is also work:


Blender normals are grey I want to render the normals of a scene in Blender, and I'm doing this with the the 'normals' matcap texture. It seems to be mostly correct. At least in some simple test cases, the pixel intensities matched my calculated values.

However, I animated a 360-degree camera spin, and at one point many of the pixels turn grey. This is super weird to me since in the frame before and after (where the camera angle is slightly different), the colors are strongly red or blue. Is this a bug or is this expected behavior?

Here are the frames before and after the greying.

 ->
 ->

If you are using Blender Render and a texture with Normal Coordinates (as opposed to the viewport MatCap), the grey pixels apparently come from the image sampling.

In the Texture properties, try setting Extension to 'Clip'.

Or use the OpenGL render with the Normal matcap, which works well.

This happens because when your camera view vector is normal to the faces' normal vectors (in other words, when the face normals are at 90°), the texture is sampled at its border. If the surface is vertical or horizontal (eg. walls and floors) AND the texture repeats, it is sampled at both the left and right borders (respectively top and bottom for floors and ceilings), resulting in an averaged grey.

If you want a 360 view of the environment you can also try to render a single 360° image ( which can be done like this )

it won't be viewable from the viewport but once you render it is a complete 360° picture which can be animated as a camera spin in editing.


Is there a way to make a game splitscreen in BGE I want to make a 2 player game but I need it to use 2 cameras. Sorta like an fps. I'm not great with code, any help?

Maybe this thing can help you
https://youtu.be/78ORdi4-ynk

Here you go:

https://blenderartists.org/forum/showthread.php?261732-Split-Screen-in-the-BGE

Hope this helps.


Measure light on surface I'm pretty new with blender, I'm looking for a tool similar to this one for vray for 3ds max:

https://www.chaosgroup.com/blog/how-to-set-up-lighting-analysis-in-v-ray-next

I aim to make the lighting calculation (measure the average lux on the floor of a room)

Thanks


Combining two renders with different seeds So I've been dinking around with the NetRender function in Blender, using an addon I found to enable GPU NetRender functionality, I'm looking to render single images across multiple slaves

My first idea being to set a render border and send two jobs with different borders to two different machines, but the NetRender doesn't support Borders.

So I fell back on Image Stacking, rendering two shots with different seeds, but due to my idiocy, I can't find a way to merge two pictures of different sample seeds, I have both rendered shots, but can't for the life of me find a way to combine them, in Blender, or in my photo editor of choice, GIMP.

What would be the most optimal way to go about this?

You could try using or writing a program that calculates the average of the pixels and outputs to an image format.


Rigid Body Object Jumps back when keyframing "animation" off I am trying to get a box to float into the air, fly in a direction and then midair activate physics so that it flies off and falls to the ground without me having to animate that. I tried keyframing the "animate" toggle so that it turns off, but when I do this, the box jumps back to its starting position, instead of continuing from where the animation left off. How do I enable physics mid-animation?

You need to change the simulation Start and End frames under
Scene Properties > Rigid Body World > Cache.
[

At frame 0 put your object at its beginning location in the scene, press i > LocRotScale, enable the Animated option in the Physics panel and press i to keyframe it. At frame 10, move your object wherever you want, press i > LocRotScale, disable the Animated option in the Physics panel, press i to keyframe it.


I would like to bake a material into a texture I have a model in which I want the material output to become a UV texture. How would I go about this?

I decided to use substance painter instead. Thanks for the help anyway. :)


How to make character that can be dissolved I'm making robot for my game in Unity. Robot is based on human body and it is also rigged. Main problem is that I want to dissolve parts of the robot when it's shot, but only arms and legs.. And for example when it is shot to left leg, only left leg is dissolved and body is intact.

So model structure in unity should look like body, left arm, right arm, left leg, right leg.

Anyone can help what's the best way how to do this and rigging part?

Thanks

I think I have figured it out. Just separate the model to make objects of body parts. Rigging still works.


multi resolution needed in order to sculpt? I just finished my first sculpt in blender and I think I managed it using a low poly mesh to start and then everything sculpted using dynamic topology enabled.
My question is with Blender 2.73a is there a need to apply the multi resolution modifier to the mesh before I start sculpting? What is the benefit of doing that?

Thanks

You can sculpt a simple mesh (a cube) without anything else.

You can sculpt any mesh and use dyntopo. You'll get a full triangulated mesh with as much topo as you want/can, exactly where you need it.

You can sculpt on a quad based mesh with multires. You'll get a new level of details with each subdiv. The whole mesh is subdivided.

But using a multires on dyntopo is exactly what you shouldn't do. Multires (or subdivision) is not supposed to work well with triangles.

Both have pros and cons, they are a different way to do sculpting.

a Cube with quad and a cube with triangulated faces, with a subdivision (same as multires):

No, the entire point of the Multi-rez mod is to be able to change it as you sculpt.
Rather than doing low-poly sculpts (which I'm sure you know by now is really tedious and kinda frustrating) add a multi-rez to the object and sculpt as much as you can effectively, then increase the subdivisions on the multi-rez. Repeat this until your sculpt is finished.

Try not to increase subdivisions unless you reach that point where the brush has no visual effect anymore and save before increasing since it's difficult for the computer.
Remember that applying the modifier takes away the options that are really helpful for sculpting.


Textures disappear in BGE Playmode, but colliders are still there? I have built a village level in Blender Game Engine, and up till today all was good. However now my Grass texture and my wood texture become Transparent when I enter the Play mode, but the mesh still has collision.

Zipped level: The level and all associated textures
Play Mode on the left vs. Material View on the right

Update: It seems to be object specific, not material specific.

I could not find the cause of the problem, but simply replacing the material with a new one worked, even if all the settings are tha same as the previous material.

I had joined a bunch a walls during a  process of optimization and I had somehow had an object that was set to invisible under physics tab.!


How do I make a weapon shoot at the center of the screen? I've been researching this for weeks and only found bad results. I think its time for a good answer. I have a rocket launcher, so I can't "fake" the bullet. There is no way to fake a rocket. I need it to shoot from the front of the gun and fly to the center of the screen. Of course I could just make the weapon slanted to the center, but if you look at far targets, it will miss; and if you look at close targets it will also miss. Can I have an empty in the center of the screen that just collides with obstacles, and the gun just adds the projectile to make it always hit center? If that's the case, I would kindly ask for help on how to do that. If there is a better technique, please state it, it would help a lot!

-People said they are confused, let me explain more thoroughly.

I want to have a line in front of the camera that collides with obstacles(for example, and object with property "obstacle" set to 1), that is stopping at infinity, but there is will obviously always be an obstacle to hit, such as a roof if you look up(indoor). The empty will always track to the very end of the line, so if you aim somewhere close, the rocket will hit center of screen and hit the close object, and if you hit far, on the other hand, the rocket will fly to center of screen and hit the obstacle still. So you will basically always hit the center of the screen no matter what.

You can use a bit of Python to get started, without knowing your exact implementation of the weapon system, i can't give you the full code.

# get vector from centre of screen
cam = logic.getCurrentScene().active_camera
# vector in world space
vect = cam.getScreenVect(0.5, 0.5)
# get length of vect
length = -cam.position[2]/vect[2]
p = vect * length
# position of p (somewhat ahead of camera)
pos = cam.position + p

With that, you should be able to either ray cast the bullet, or have it go toward that direction.

If your making an fps game, just make sure the gun (etc) is pointing directly in front of you. It automatically travels to the centre of the screen and keeps going forward.


No shadow after render I'm new to blender and have only spent about two hours on it.

I drew an animation and it went out just fine in preview, however after I rendered it, all shadows are gone (shadows below the object & shadow of the object) which made my animation of the block flat
I only set the background plane orange but the whole output seems to be filled with some orange atmosphere

What am I doing wrong?

Blender 2.8 on MacOS

I seems that your light source is just your world. It wont give you much shadow. Try to set your world in darker and add some lamps. Or you can also change your world to an HDRI.


Importing rigify 2.79 rigs into 2.80 When trying to import a rigify rigged character from 2.79 to 2.80, the shapes disappear. Currently, the only way I know to retrieve them, is to go through the outliner, bone by bone and turn on wireframe. Has anyone found a better way to do this? Who would I contact in development to fix this? Thanks.

select all the bones shapes go in to mode edit-mode and go back to object-mode you will see...tell if it work


Anyone know how detect what vertex are in the edges of a mesh? Anyone know how detect what vertex are in the edges of a mesh?

I want math code, not a user interface procedure.

Really, I want the same function that Blender has when you select an object and you can see a small "focus" color around all the silhouette of the mesh.

Any idea, or advice (including where is defined the focus in C code) will be welcome.

The Blender Compositor can

Identify, Blur or Dilate, a Pixel Selection to produce a silhouette.
The Pixel Selection can be a Rendered Object

Freestyle can outline objects as well

The above was done with Freestyle


Select object pattern and then selecting the object I import and object C27389_Part into the scene. I search the part by using bpy.ops.object.select_pattern(pattern="*_Part"). That's all good, however it is selected (in red outline) and not active (orange), so I cannot do anything with it at this stage. Please help. I have searched and yet cannot solve this simple riddle. bpy.context.scene.objects.active will not do it.

This works after selecting the pattern.
OB = bpy.context.selected_objects[0]
OB.select_set(state=True)
bpy.context.view_layer.objects.active = OB


Alpha channel and specular map together I am trying to make this can label with some transparency around worn-out edges but I just cannot figure out how to add specular map to the texture at the same time. That fac slot is quite busy. Is there some way to do that with mixing?

Maybe you have an object just for the label, in this case use an 'add' shader to combine your diffuse and glossy shaders and connect them to the mix.

If you had only one object and your specular was supposed to be applied to metal parts only, then you could use a mix with the inverted alpha as factor.

You can mix and add shaders without limits so setting up these kind of material is preferable in some cases (if you wanted to add a texture that affects both the can and the label).

This is what I mean:


Material for character silhouette I wanna make a animation made out of silhouettes (as a solid shape of a single color) like

this,

or

this

or even like

this.

Some people say to not put any material at all, but then that would be a problem if I want to have colored character.

What am I supposed to do?

If you are using Blender render then check the Shadeless option in the Material tab:-

And if you are in Cycles then use this node setup to create a Shadeless material:-

I think that it might be possible with absence of light and texture.
I also think that that might be just shadow animation or maybe even combined decals. To get that effect in 3D, I think you might need to turn off shading all together. You can somehow turn off the lighting apparently.
But I also think that most of it is made using actual shadow puppets.

Example:

The source is here

I am unsure if that answer in the Blender forum will help you, if it doesn't, you can use something like a 3D Engine without shading and shadows by default like Three.js or make a 2D animation.
My opinion of the techniques used in the pictures you have given me that all are 2D sprites or no lighting. Actually, the Tintin one looks like it is 3D no lighting with a green screen applied to a 2D image.

EDIT: Yes! I found a tutorial to do just that, it turns out if you put a really dark texture, it will look like a sillhouette(I thought it would give a little shine). The tutorial is here even though it is kind of outdated, it still is basically the same thing.


Anti-Aliasing in GPU shader Module(OpenGL) How to smooth the bound of the shape?
If you run the following script in blender,
you can see the Jagged Edge in that shape.
import bpy, gpu, bgl
from gpu_extras.batch import batch_for_shader

vertices = [[150, 41.52], [150, 71.52], [56, 234.39],
    [30.0, 249.4], [270, 249.4], [244.02, 234.39]]
indices = ((0, 1, 2), (0, 2, 3), (2, 3, 4), (2, 4, 5), (0, 1, 4), (1, 5, 4))

shader = gpu.shader.from_builtin('2D_UNIFORM_COLOR')
batch = batch_for_shader(shader, 'TRIS', {"pos": vertices}, indices=indices)

def draw():
    # bgl.glHint(bgl.GL_POLYGON_SMOOTH_HINT, bgl.GL_NICEST)
    # bgl.glEnable(bgl.GL_BLEND)
    # bgl.glEnable(bgl.GL_POLYGON_SMOOTH)

    shader.bind()
    shader.uniform_float("color", (0, 0.5, 0.5, 1.0))
    batch.draw(shader)

bpy.types.SpaceView3D.draw_handler_add(draw, (), 'WINDOW', 'POST_PIXEL')

So, I try some code to smooth the bound.
bgl.glHint(bgl.GL_POLYGON_SMOOTH_HINT, bgl.GL_NICEST)
bgl.glEnable(bgl.GL_BLEND)
bgl.glEnable(bgl.GL_POLYGON_SMOOTH)

But it has some gap inside. I am no idea how to fix it.

You don't actually need any code to make the edges curved or smooth. Go to edit mode and select all the edges of the cube. Then select bevel, which is this option

And then you will see a yellow line with a circle on top of it. Pull it to the extent you want. You may see it becoming flat. But there's an easy solution. At the bottom left, there would be a bevel option with a dropbox. Click on the triangle near it and select segments and set it to ten. Below's the image of how the bevel segment looks like. Make sure to be in edges and not vertices.


Set origin to bottom center of multiple objects I have a lot of 3D objects of various sizes, shapes in blender 2.76b and I would like to set the origin to the bottom center of the objects bounds.

I cannot select the bottom edge and snap to cursor etc as each shapes edges are in different X/Y positions.

Is there a script or tool that will allow me to set the origin to the lowest edge z position?

Move the origin to bottom of all selected mesh objects.

EDIT updated for 2.8.  See prior revision for prior.

Object mode script. Moves origin to bottom of mesh, leaving object in place. Pass the matrix world to move origin to global z.

Looks at the 8 coords of objects bounding box.  The bounding box is
in local coordinates. To change space pass a matrix. eg the matrix
world of the object will determine lowest z in global space.
o is the bounding box center. Set o.z for new origin from min z of
bounding box points.
Transform all vertices by -o
Move the object back globally by o to keep the object in place.

import bpy
from mathutils import Matrix, Vector

def origin_to_bottom(ob, matrix=Matrix()):
    me = ob.data
    mw = ob.matrix_world
    local_verts = [matrix @ Vector(v[:]) for v in ob.bound_box]
    o = sum(local_verts, Vector()) / 8
    o.z = min(v.z for v in local_verts)
    o = matrix.inverted() @ o
    me.transform(Matrix.Translation(-o))

    mw.translation = mw @ o

for o in bpy.context.scene.objects:
    if o.type == 'MESH':
        origin_to_bottom(o)
        #origin_to_bottom(o, matrix=o.matrix_world) # global

With some numpy

The global version above drops in global z direction from bbox center of geom, which can lead to an origin outside the bounding box.

Instead here is a version that finds all z minima and sets the origin to their mean

from mathutils import Matrix, Vector
import numpy as np

def origin_to_bottom(ob, matrix=Matrix(), use_verts=False):
    me = ob.data
    mw = ob.matrix_world
    if use_verts:
        data = (v.co for v in me.vertices)
    else:
        data = (Vector(v) for v in ob.bound_box)

    coords = np.array([matrix @ v for v in data])
    z = coords.T[2]
    mins = np.take(coords, np.where(z == z.min())[0], axis=0)

    o = Vector(np.mean(mins, axis=0))
    o = matrix.inverted() @ o
    me.transform(Matrix.Translation(-o))

    mw.translation = mw @ o

This could be further enhanced by using methods outlined in this excellent Q / A

Replace matrix @ vector list comprehensions with something more efficient

Note: Remember objects can share a mesh. The test code above runs over all mesh objects in the scene without checking for this.

Related: Origins to the down of the object by default

Set Origin Plus addon might help you in such situation. Please follow the video below as tutorial. (This addon is not free..Sorry for that..)
n.b: It sets the origin to the center of selected vertices.
This procedure will work on blender 2.8 and above
Steps:

Install addon - Set Origin Plus
You will get an option Set Origin Plus in your sidebar
Now select all objects
Go to Edit mode
Select all faces at whose center, the origins will be set
Open side bar
Go to set origin plus
Click on update origins
Job is done

Set origin plus - Youtube tutorial
Gumroad link for addon


How do i render animation? I can not change the file to a Xvideo file which is the only movie file that seems that it would work. I have sound in my animation and already have it in the video sequencer editor. I also have sequencing turned on. It still only gives me 4 options for movie files. How can i make Xvideo an option?

What I would do is render all the individual frames then open up a new instance of blender, and then load all of the frames you just rendered into the VSE (Video Sequence Editor). Then just choose the file type of the video, and render the animation.
See this video if you need extra clarification: https://youtu.be/5RKeDJtMT-Q


How to export a texture as jpeg or png? I downloaded my Blender model from the Internet, and it already had built-in textures for its materials and meshes.

How can I download the texture as a .png or .jpeg to edit it?

If I understand your question, you want to save on your hard drive a texture from a Blender project: open a window as UV image editor window, select the texture from the drop down menu (which contains all the images in the project) and choose "Image - Save as image".

When a model I download has BMP or other files that are PNG for the textures, I use this. I hope it helps you!
https://image.online-convert.com/convert-to-png


Export single strip in VSE I have one long audio strip in the V.S.E. and I split it into multiple pieces using hard cut, SHIFT+K. Now I could delete the other strips and export one, and then make a new file, cut out the one I want, and so on and so forth and what have you. But as my run-on sentence describes, it would take to long. So how do I export a selected (audio) strip in the V.S.E.?

mark the start frame and the frame track end as is rendering in the Properties window


How to make a bone NOT inherit location from parent? Or how to position bone at world location? Lets say I have two bones, A "Root" bone and a "Child" bone, the "Child" bone has the "Root" bone set as its parent. How can I make it keep its world position while the parent moves?

Now, the reason I ask is because I want to create some "root motion" animations for UE4 (which I have gotten working) but since the root bone moves during the animation, its really hard(or as far as i can see; impossible) to keep the IK targets I use in the same place while the "Root" bone moves.

As an example see webm-related: http://webmshare.com/nq8qa
(I'm aware that this animation is horrible for root motion and in this case it won't be used)

But in that rig I have the head as the root bone, when it bobs up and down I'd still like to be able to keep the IK targets located at the feet still without bobbing with the head bone!

Any suggestions on how to do this? The easiest thing would obviously be if I could copy the world position of a bone and then paste it on the next keyframe, but I can't for the life of me find that sort of functionality!

This can be done with bone constraints

Add an Empty to the Scene at the base of your child bone.
Disconnect the child bone from its parent (AltP) in Armature Edit Mode.
In Pose Mode select the child bone, go to the Bone Constraints context , and add a Copy Location Constraint targeted at the Empty.

Here is an example of the result:

Above: An armature object being moved while one of its bones remains stationary

It looks like it is already disabled for that bone


How to make something pass behind an actor and be not visible. (Just the part behind the actor) I want to make the wings pass behind the actor during the animation, how can I do it? I need to make the wings pass behind the actor and when they are behind, the part behind him need to be not visible. I don't know if i can use an alpha on the holdout material or if there is an other way. thanks

This is a job for compositing rather than the 3D view. Send the footage into the compositor, use a Chroma Key node to filter out the green screen (you might need better lightning), and then use Alpha Over to place the footage over the render output.


How do I extrude only a small portion of a face? I have a cylinder and I want to extrude only a small portion of one of its faces inwards. How would I do this?

Let's assume you want the extrude a small portion of the plan(a).
plan(a) is 1m*1m . We will extrude 0.5m*0.5m know as plan(b):

Select plan(a),
(1)use the extrude fonction but do not extrude yet

(2)change to scale fonction and now you can extrude. You have now the plan(b) inside the plan(a). With both plan perfectily aligned.

(3)Now you can extrude plan(b)

In the picture attached the you can see the face and profile view so it will be more clear.

I know it sounds obvious but: Extrude inwards. Select the face and the shortcut is I instead of E.

Funny, but I can't find the command reference at the moment! Should be in the Blender Docs somewhere.


Rigging a multi-object person I'm having an issue I've tried fixing for literal weeks now. I've exhausted all the resources I could, but in short, I created an ultra low poly character that just WON'T rig right. I've attempted doing separate bones, and not using rigify, but ultimately, I imagine this will be a major pain when it comes to trying to do a walk cycle. In the picture, I've circled some areas I'm assuming are an issue, as I'm going with an icosphere for much of the joints (ankle, shoulder, elbow etc).
Am I doing something wrong, for why rigify is ineffective? Is using single bone setups like this feasible for movement and rudimentary animation?

Using rigify will cause problems, especially if you have not cleared the scale. I would say as you have a character with many objects, go with making a rig and assigning each bone to each object. I have some very horrible experiences with rigify and going with bone by bone is much easier. As for if it is possible to do a walk cycle, yes it is highly possible.


Slow motion video like TWIXTOR for vse How could I achieve the Twixtor effect with the VSE (Twixtor in After Effects).

You can't.
Twixtor, and other apps that do slow motion, use a technology called Optical Flow that estimates motion vectors to create interpolation.
There is no way, that I'm aware of, to do optical flow in blender.
Blender has no temporal interpolation for video other than repeat or drop frames, or cross-fade (frame-blend) between two frames.
None of those will give you the smoothness of extreme slow motion.
For an open source alternative to do optical flow re-timing try
http://slowmovideo.granjow.net/
or
https://linuxhint.com/slowmovideo-slow-motion-video-marker/

Blender 2.90 has an option to use frame-blend interpolation. You'll find it in the speed strip settings:


How do I get an Overlay image to follow elements that move in a video? My video pans to the right. How do I get the overlaid elements to move with the video so that it seem integrated?

image1: This is where I would like the overlay to stay (beside the 2nd from last tree on the right)

image2: The overlay element doesn't move when the camera pans to the right, it remains static.

The Transformation Tools add-on will simplify the process;:
https://github.com/tin2tin/VSE_Transform_Tools
As described in this tutorial: https://youtu.be/SWLRmTEX2tc


How can I set and get the vertex color property? I can't find a way to display RGB values (or equivalent) without using the python shell.

I would like to get and set color values numerically (ie. not painting), I can't find it for weight painting either (I expected it to appear in the "n" panel with something like "vertex" as a title).

I would like to get and set color values numerically (ie. not painting),

There may be add-ons that cater to this, but at present (March 2016)

Blender doesn't have a (non-Python) way to set the Vertex Colors per selected vertex/vertices. Per face is however, as stated below, not a problem.

There is no built-in interface (yet) to get the rgb value of a selected Vertex. Each vertex can be shared by a number of faces, therefore a vertex doesn't necessarily have one color associated with it.  Behind the scenes the Vertex Colors are not stored in the data per vertex but in a Vertex Color layer, which stores vertex colors for each face of the mesh.
Possibly this explains that a bit more clear. There are 9 verts in this subdivided plane, and the middle vertex is used in 4 faces and therefore has 4 different colors associated.

Vertex Color Map
You can set a collection of faces to one colour in vertex paint mode, by selecting them and setting the colour from the colour picker, then shift+K will fill the selection with that colour. You can  enter numericals into the Blender colour picker.
You can pick faces with face selection masking
If you want to do it by script:
import bpy
import random

# start in object mode
obj = bpy.data.objects["Cube"]
mesh = obj.data

if not mesh.vertex_colors:
    mesh.vertex_colors.new()

"""
let us assume for sake of brevity that there is now
a vertex color map called  'Col'
"""

color_layer = mesh.vertex_colors["Col"]

# or you could avoid using the color_layer name
# color_layer = mesh.vertex_colors.active

i = 0
for poly in mesh.polygons:
    for idx in poly.loop_indices:
        r, g, b = [random.random() for i in range(3)]
        color_layer.data[i].color = (r, g, b, 1.0)
        i += 1

# set to vertex paint mode to see the result
bpy.ops.object.mode_set(mode='VERTEX_PAINT')

Also a small blogpost about vertex colours here and here, if you are so inclined.
For Weight Painting, i'm not sure -- i'll let someone more familiar with that give an answer

Setting weight numerically

Enter edit mode and you'll find it in the Properties window under, Object Data, Vertex Groups.


How to have the same coordinates for an object in Edit and Object Mode? I created an animated torus and afterwards I wanted to rotate it (and the animation) around the Z-axis of the world, so I used an Empty object , I made it parent of the torus and I rotated the empty.

I would like to have the new values of the keyframes after transformations and , it the same, the new values of coordinates of the tore's center in Object Mode like in Edit Mode.

In Object Mode it shows the old values!

I would also like to know:

Is it possible , after the transformation , to keep the new position (and animation) of the tore AND to delete Empty object?
Is it possible to do all this without to use Empty object? (easier of course!)

Thanks !

--the animation is a translation with many pauses, torus goes from (x,y,0) to (0,0,0) .

This is the torus before the rotation ( the coordinates are the same in Object Mode and Edit Mode )

After the rotation of the Empty object the coordinates are different between Object and Edit Mode

If I understand what you want, You can Apply Transformations, the object will stay in the same place but the origin will became the Center and location will be the (0,0,0).

One idea is to use Clear Parent  (Alt+P) and choose Clear and keep transformation but it is only for one keyframe , we must repeat this operation for all keyframes.

Are there other solutions?
Thanks!


Mesh Deformation due to rigging After I rigged a model part I noticed that some linked parts got kinda deformed, mostly they moved from the original position.

Does anyone knows what causes this and how can I prevent or fix that issue?
I tried to move the linked part but the whole mesh starts to follow it... Yeah,  I'm more of a 3DMax user and I'm kinda lost on Blender.

What's apparent in your image is deformation that differs between the talon and the toe.  The reason for this is that the margin of the talon has different weights than the margin of the toe.  If the vertices have the same weights, they will move together.
This is probably due to using automatic weights on a mesh with non-manifold boundaries-- ie, multiple separated meshes.  Autoweights are not a great way to weight these kinds of meshes.  You can merge the seams and then re-weight, or you can weight by hand, or you can create a manifold "cage" mesh, autoweight that, and then copy weights from it to your non-manifold meshes.
If your problem is that the rig isn't in its rest pose even when all bones have no transforms-- that as soon as you weight a model, it moves at all, even correctly-- then the issue is due to constraints or drivers that you've put on bones in your rig that cause them to transform, even when the bones haven't been transformed in pose mode.

Even with the above answer distortion is inevitable, but fixable with the use of shape keys. I suggest researching these if working with realism in your animations.