Particles stick to side faces I have a plane "shooting" particles and I want those particles to stick to wherever they land and stay sticked. It does that on perfectly horizontal faces (the top of the cube) but if they land on a face from the sides they slowly slip off.

This is because of gravity but if I turn it off the particles will just fly off infinity in the direction they are "shoot".

The cube has these settings in the its Collision physics:
Stickiness: 10
Particle damping factor: 1
Particle Friction: 1

How can I make them stick to the side faces and stay there?

Using Blender 2.76

It can be done by using an addon called Animation Nodes.

The basic concept here is to get the location of each particle unit by the moment they die on hitting the collider. Then parent them to it immediately.

Here is a template setup:

 (2018-07-21 updated, compatible with AN2.0)

How to Use:

Open the attached file;
Download the addon from the link above, then install and enable it;
Replace Eimtter and Collider object input on related nodes.
Go to frame 1, play animation.


Objects transformations wrong when importing from 3ds When I import my tank file from 3ds format it appears in blender a little bit messed up like this:

I selected all messed up tanktracks and did Origin to geometry.
Then they became almost correct, but not quite:

The tank tracks in front of the tank remained incorrectly rotated.
They should look like this (this is how the tank appears in autocad)

Why does this happen? Can anyone help me?
My tank is here (35MB)
I have blender 2.67.

Select them all (they are selected by default after importing), press AltS, AltR and AltG to clear all the transformations.(Or go to the header menu > Object > Clear to find these operators.)

P.S.: If the result still problematic, try toggling off the Apply Transform in the left-hand panel in the Import window.

By doing so, The origins of all objects will go to one point. If you want move each origin to their individual geometry, just keep them selected, then press ShiftCtrlAltC, choose Origin to Geometry or Origin to Center of Mass to move them back to each individual objects.


Rigify - restart/reset to initial/default state I have a generate rig by rigify

I can apply some animation and change custom properties, for example neck follow in the chest "bone"

I can delete the animation and restart the transforms with  Pose / Clear Pose Transform / All menu (or Alt+G, Alt+R, Alt+S to clear location, rotation and scale)

but I can't restart o reset to initial state the custom properties, for example neck follow in the chest "bone" don't change to inicial value.

How can I restore the initial configuration of all bones and controllers, values, visibility and other properties?

At this point, I don't think you can restore the initial state for these values. There no defaults for these.
If you're starting anew you could set a keyframe for all values at frame 0 or something. Then if you delete all keyframes at frame 0 you'll have the defaults.


How to control spacing/alignment of Label + Horizontal Enum Property? I would like to achieve the layout of this panel but I'm having some issues. The example is from blender's Bevel Operator. As far as I can tell it's just an Enum Property without the enum_flag since only Vertices or Edges can be selected at a time:

First attempt:
layout = self.layout
row = layout.row()
row.label(text='My Prop');  row.prop(self, 'enum_prop', expand=True)

Looks pretty similar, just gotta align the label to the right.

Second Attempt:
layout = self.layout
row = layout.row()
split = row.split(factor=0.4)

left_col  = split.column(align=True)
right_col = split.column(align=True)

left_col.alignment  = 'RIGHT'
right_col.alignment = 'CENTER'

left_col.label(text='My Prop'); right_col.prop(self, 'enum_prop', expand=True)

Well, I managed to align things into columns but my Enum Prop is suddenly vertical. I figured I wasn't giving it enough room with the Split factor but that wasn't the case. How can I achieve the result from the first image?
(Label aligned to the Right + Horizontal Enum Prop)
EXTRA INFO:
If anyone is wondering, here is how I created the property:
enum_items = [  ('ON',  'On',  'Description1'),
                ('OFF', 'Off', 'Description2')]

enum_prop: EnumProperty(name='My Prop', default='OFF', items=enum_items)

Just set layout.use_property_split property in your draw method to True:
def draw(self, context):
    layout = self.layout
    layout.use_property_split = True
    layout.use_property_decorate = False  # No animation.
    ...

Custom Panel
Example based on the add-on template from: How to create a custom UI?

bl_info = {
    "name": "Add-on Template",
    "description": "",
    "author": "p2or, brockmann",
    "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", ""),
               ]
        )

# ------------------------------------------------------------------------
#    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
        layout.use_property_split = True
        layout.use_property_decorate = False  # No animation.

        scene = context.scene
        mytool = scene.my_tool

        layout.prop(mytool, "my_bool")
        layout.prop(mytool, "my_enum", expand=True)
        layout.prop(mytool, "my_int")
        layout.prop(mytool, "my_float")
        layout.prop(mytool, "my_float_vector")
        layout.prop(mytool, "my_string")
        layout.prop(mytool, "my_path")

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

classes = (
    MyProperties,
    OBJECT_PT_CustomPanel
)

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

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

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

if __name__ == "__main__":
    register()

Custom Operator
It's basically the same for the redo panel, you would have to create an extra row though:

import bpy

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"
    bl_options = {'REGISTER', 'UNDO'}

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

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

    @classmethod
    def poll(cls, context):
        return context.active_object is not None

    def execute(self, context):
        print(self.bl_idname)
        return {'FINISHED'}

    def draw(self, context):
        layout = self.layout
        layout.use_property_split = True
        layout.use_property_decorate = False  # No animation.

        row = layout.row(align=True)
        row.prop(self, "my_enum", expand=True)
        layout.prop(self, "my_float")

def register():
    bpy.utils.register_class(SimpleOperator)

def unregister():
    bpy.utils.unregister_class(SimpleOperator)

if __name__ == "__main__":
    register()

    # test call
    #bpy.ops.object.simple_operator()


modifying fcurve modifiers in python? I've been able to assign an fcurve modifier to to fcurves in my scripts, but I can't figure out how to modify them once created.

here's what the info panel spits out when I do it manually:

bpy.ops.graph.fmodifier_add(type='LIMITS')                   #creates fcurve mod
bpy.data.node_groups["Shader Nodetree"].(null) = True        #"maximum y" set to true
bpy.data.node_groups["Shader Nodetree"].(null) = 0           #"maximum y" value set to 0
bpy.data.node_groups["Shader Nodetree"].(null) = True        #"use influence" set to true
bpy.data.node_groups["Shader Nodetree"].(null) = 0.5         #"use influence" set to 0.5

clearly this won't work in a script as is. what is the correct syntax for what I am doing?

EDIT:

I tried using zeffii's code, but I get an error from this line.

fcurve = ob.animation_data.action.fcurves[0]

error:

  AttributeError: 'NoneType' object has no attribute 'action'

here is my code in it's entirety:

import bpy
import bmesh
import pprint

for i in range(1):

    bpy.ops.mesh.primitive_cube_add(radius=1, view_align=False, enter_editmode=False, location=(i-5,0,0))

    ob = bpy.context.active_object

    #sets origin to bottom of object
    bpy.context.scene.cursor_location = ob.location
    bpy.context.scene.cursor_location.y -= 1
    bpy.ops.object.origin_set(type='ORIGIN_CURSOR')

    ob.scale = (0.5, 1.0, 0.5)

    mat = bpy.data.materials.new(str(ob.name) + "mat")
    mat.diffuse_color = (1,0,0)

    mat.use_nodes = True

    nodes = mat.node_tree.nodes

    # clear all nodes to start clean
    for node in nodes:
        nodes.remove(node)

    # create emission node
    node_emission = nodes.new(type='ShaderNodeEmission')
    node_emission.inputs[0].default_value = (0,1,0,1)  # green RGBA
    node_emission.inputs[1].default_value = 0.9 # strength
    node_emission.location = 0,0

    # create output node
    node_output = nodes.new(type='ShaderNodeOutputMaterial')
    node_output.location = 400,0

    # link nodes
    links = mat.node_tree.links
    link = links.new(node_emission.outputs[0], node_output.inputs[0])

    ob.data.materials.append(mat)

    node = bpy.context.active_object.active_material.node_tree.nodes['Emission']
    node.inputs[1].keyframe_insert(data_path="default_value",frame=1)

    bpy.context.area.type = 'GRAPH_EDITOR'
    bpy.ops.graph.sound_bake(filepath=r'C:\Users\andga\Desktop\Garrett\Music\Knife Party\Singles & EP\2012 - Rage Valley\01-knife_party-rage_valley.mp3', attack = 0.0001, release = 1.1)

    # pick the fcurve to add to
    fcurve = ob.animation_data.action.fcurves[0]   #here is were the error comes from

    # add a modifier and get a reference.
    limits = fcurve.modifiers.new(type='LIMITS')
    limits.use_max_x = True
    limits.max_x = 0.0

    limits.use_influence = True
    limits.influence  = 0.5

Adding a modifier to an FCurve is much like adding a modifier to an Object, you first add it, then you adjust the properties.

Adding the Modifier + Setting properties

Here is shown how to add a modifier to an existing fcurve for an object, but it's very similar when the subject is a keyframed property of a shader tree.

import bpy

obj = bpy.data.objects['Plane']

# pick the fcurve to add to
fcurve = obj.animation_data.action.fcurves[0]

# add a modifier and get a reference.
limits = fcurve.modifiers.new(type='LIMITS')
limits.use_max_x = True
limits.max_x = 0.23
limits.use_influence = True
limits.influence = 0.5

The shadertree version

mat = bpy.data.materials['some_material']
fcurve =  mat.node_tree.animation_data.action.fcurves[0]

The attributes of the modifier can be found by

hovering over the UI elements and reading the tooltip
using the Python Console and use the auto-complete feature to dig through the list of attributes. (admittedly not very graceful)

Normally you don't need to set all possible properties of the modifier, the modifier will come with all its default values set (just like when you add via the GUI). The properties are named fairly logical and the above methods of finding the properties should be sufficient.

Picking  the FCurve

Picking the FCurve from the UI is direct, but using a script to pick the FCurve will take some practice. Luckily there's a method to get fcurve by name and index.

# to get a reference to an fcurve for location, specifically the
# x component. index 0 is x.
action.fcurves.find('location', index=0)

or for materials with keyframed node properties

fcurves = mat.node_tree.animation_data.action.fcurves

# get the reference this way
fcurve = fcurves.find('nodes["Emission"].inputs[1].default_value')
# >> bpy.data.actions['Shader NodetreeAction']...FCurve

Figuring out what to use in the fcurves.find() method, can involve doing a little experimenting (a dry run) and first see what fcurves[your index].data_path returns. Or use the UI and read what the Active F-Curve says:

for the materials..


Can't select anything or see selection in the viewport I can't select anything in the 3D viewport, and I don't see the gizmos axis or selected objects.

The Show Gizmo and Show Overlays have been disabled in your viewport. If you enable them it should work properly.

When the Show Overlays is disabled you don't see the outline of your selection and with Show Gizmo disabled the move gizmo isn't shown. The selection is still registered though and using G to move the object would still work.


Lost one of my tool bars in blender and can't get it back The tool bar on the far right of my blender editor is gone. It is not the properties bar (toggled with n) or the tool shelf (toggled with t). What I am missing is the bar in which I can add modifiers and materials. I can't figure out how to get it back, please help.

My screen recording is a little messed up, but I am clicking and dragging the little triangle tab in the top right of the 3D Viewport to the left, then clicking and dragging the new triangle downward.

Set each of these new screen areas to the desired UI screen type.


Wondering about an efficient way to mirror specific parts of a mesh I'm wondering what would be the most efficient way to copy the structures/hight differences from the surface of the first picture to the bottom surface of it. I should have used a mirror from the beginning but didn't think of it :( is there any way to still do it efficiently now?

Enter Edit Mode and select the faces you want to mirror. Press P and choose Selection to split the faces into a new object.

You can then apply a Mirror Modifier to the new object.

Remove the X axis toggle and apply the Z axis instead:

At this point the new object will be mirrored around its point of origin, which it inherits from its original object. This might be in the wrong position and your mirror may be in the wrong place like this:

You can fix this by updating the objects Origin. The easiest way to do this is to first select the Parent object. Press Ctrl + Alt + Shift + C and select Origin to Geometry:

Next, with the parent object still selected, press Shift + S and choose Cursor to Selected.

Next select the Mirrored part and press Ctrl + Alt + Shift + C and select Origin to 3D Cursor. This will set the Origin for the Mirrored part to the same position as it's parent part and your mirrored mesh should appear in the right place:


Script to remove submesh in all objects by material name? I wonder if it would be possible to write a python script that could remove all vertices across all objects that are part of the same material. There are 250+ objects and I need to remove all mesh data from the body, leaving just the armour. I would then need to unlink this material from the object.

The script will loop through the selected objects and through their  verts/edges/faces to remove the ones assigned to a specific material and delete them :

select all the objects
select the material (in material slots )
run the script

import bpy
import bmesh

mat_name = bpy.context.object.active_material.name

for obj in bpy.context.selected_objects :
    bpy.context.scene.objects.active = obj
    bpy.ops.object.mode_set(mode='EDIT')
    obj = bpy.context.edit_object
    me = obj.data
    bm = bmesh.from_edit_mesh(me)

    mat_id = bpy.context.object.material_slots.find(mat_name)

    for v in bm.verts:
        delete = True
        for f in v.link_faces :
            if f.material_index != mat_id :
                delete = False
        if delete :
            bm.verts.remove(v)

    for e in bm.edges:
        delete = True
        for f in e.link_faces :
            if f.material_index != mat_id :
                delete = False
        if delete :
            bm.edges.remove(e)

    for f in bm.faces:
        if f.material_index == mat_id :
            bm.faces.remove(f)

    bmesh.update_edit_mesh(me, True)
    bpy.ops.object.mode_set(mode='OBJECT')


is there a clever way to enlarge the driver expression field? my formulas are sometimes a bit longer and i wonder how you guys enter or edit values there? are you all tapping ctrl-space to maximize the window and then enlarge the panel with mouse? Or is there somewhere a magic shortcut where i can e.g. edit the formula in a text editor?

Recently there has been a question, to which my answer had a long, unreadable driver, that is also hard to modify. (you don't have to go there and read it)
How to use driver for multiple objects
Working on that example, we have a driver with expression: max(pi / 2 + (abs(distance/15) < 0.8) * (pi * 3/4 - abs(distance / 5)), pi / 2 + (abs(distance2/15) < 0.8) * (pi * 3/4 - abs(distance2 / 5)))
We can go to the scripting tab, and create a new script:

Then in the area below, we can write Python code to assign a new expression to the driver:
import bpy
bpy.data.objects['Cylinder'].animation_data.drivers[0].driver.expression = """
max(
    pi / 2
    + (
        abs(distance / 15) < 0.8
    )
    * (
        pi * 3/4
        - abs(distance / 5)
    )

    ,

    pi / 2
    + (
        abs(distance2 / 15) < 0.8
    )
    * (
        pi * 3/4
        - abs(distance2 / 5)
    )
)
"""

Now clicking on the Play button will run the script:

On 2nd line ['Cylinder'] points to the object with a driver, by its name. drivers[0] points to the 1st driver (drivers[1] would point to the 2nd driver and so on). Keep this in mind, as when you add another driver before this one, this driver's index will increase, so the next time you modify it using this script, you will have to update its index (or you will modify another driver by accident). This could be fixed by creating a driver in code, assigning it to a variable and saving this variable for further access, but it's outside of the scope of this question.
You can also see that now the driver has weird rectangle characters:

Those are newline characters, which this input field doesn't support. The driver works, but its expression is ugly. We can fix it, and also remove excess whitespace (tabs, spaces), by changing our code to:
import bpy
expression = """
max(
    pi / 2
    + (
        abs(distance / 15) < 0.8
    )
    * (
        pi * 3/4
        - abs(distance / 5)
    )

    ,

    pi / 2
    + (
        abs(distance2 / 15) < 0.8
    )
    * (
        pi * 3/4
        - abs(distance2 / 5)
    )
)
"""
driver = bpy.data.objects['Cylinder'].animation_data.drivers[0].driver
driver.expression = ''.join(line.strip() for line in expression.splitlines())

splitlines() divides a multiline string into a list of single line strings. ''.join joins this list back to a single string, but uses an empty string as a separator, so effectively we replace newline characters with nothing. line.strip() removes whitespace on the beginning and end of every line (whitespace inside the line are kept).
End result:


Clay-like physics in BGE I'm also trying to make some hands in the game engine, and I thought it would be really cool if they had something to do. So I say, "Hey! clay is fun!" but I can't figure out how to make the physics for clay in the game engine. All it does when I do soft-body for a cube is make it really bouncy. That's cool and all, but I want to make clay that I can squish the daylights out of with my bare-digital hands. Help?

It looks like you can use soft body physics for this. However, you'll need to lower the Shape Match threshold. (If you turn it off entirely, your shape will just crumple.)

You'll also need to subdivide your cube a lot, if you haven't already done so. If you're using a modifier for this, you'll need to apply it.


Smoke material- viewer node or through rest of noodle? I was experimenting with the smoke density and accidentally ran a render with the node wrangler viewer node and it came out very nice with about an 18 minute render.

When I hooked it back up through the "traditional" method of volume absorption and scatter nodes, it was much more noisy and took 40 minutes.

The first version looked better. I tried to hook the color ramp directly to the material output volume socket and got nothing.

Question: what does this viewer node actually do and am I, somehow, ruining my render by using it?

Image #1 with just viewer node, circumventing density and color attribute

Image #2 Long and noisy!

Gory details: blender 2.79b on 5k iMac Radeon Pro Vega 48 8 GB graphics
Rendered a slice of the overall scene at 1500 samples, no denoissing.

Surprised this has remained unanswered...I believe it's pretty straightforward...

The viewer node is nothing but a run-of-the-mill Emission node with color: white and strength: 1. Hit the little triangle on the left side of the Viewer node to expand it and you'll see for yourself.

As for "ruining your render"...not at all. It's perfectly valid to plug an Emission node into the Material Output Volume socket. In fact, some people utilize this as "poor-man's volumetrics". You'll get a somewhat similar effect to a light-infused volume with absorption/scatter but with nearly instant renders versus the noise-fest of the real thing.

Attached image shows examples with a simple object made up of intersecting cubes with an arbitrarily chosen texture to add some color variation. The left instance of each pair uses standard volumetrics nodes and has a point light embedded at it's center. The right instances use an Emission node (with same settings as a Viewer node) and plugged into the Volume socket.

(That demonstrates the rendering requirement differences. Your real-world example may demonstrate the appearance similarities better.)

Oh, and FYI, Ian Hubert uses the technique in at least one of his famous Lazy Tutorials. Don't blink or you'll miss it!


Animation Nodes: How to hiccup letters individually? I have three examples that I wish to mimic with Animation Nodes. Any assistance is appreciated. Thanks in advance.

The first example below shows letters hopping straight up and down.
The second hops up with rotation and down.
The last hops up while spreading outwards and down.

The first effect can be achieved very similarly to my answer here. The inverse of a delay falloff is used to offset the matrices of each of the characters by scaling them to zero and moving them in the negative y direction:

The second effect can be achieved by introducing a rotation to each character. The rotation of each character will linearly depend on its index, where the rotation of the first character is some negative scalar and the rotation of the last character is some positive scalar:

The third effect can be achieved by introducing a linear offset along the x axis based on the index of the characters, this is done similar to the second effect as follows:


How to find out the average dB value of a track? How to find out the average dB value of a track?
I need to understand how much I need to lower the thunder (Decibel) to fit into the standard from -10 to -14 dB.

To calculate the dB value of a strip, you can use the following code. I've described it in more detail in my attempt to update the VSE docs (see https://vse-docs.readthedocs.io/edit/sound/measuring/volume.html).
For calculating the average dB of a track, you'll have to repeat that code for each strip on the track.
Please also note that there is a difference between average dB and Peak dB. Maybe, it's better in your example to use the peak value (see the docs).
import bpy
import math

strip = bpy.context.scene.sequence_editor.active_strip
depsgraph = bpy.context.evaluated_depsgraph_get()
sound = strip.sound.evaluated_get(depsgraph).factory

samples = sound.data()
m = np.mean(samples**2)
rms =  np.sqrt(m)
db = 20 * math.log10(rms)


Best way of creating 2D mesh from curve? just wanted to know if there is a quicker way of creating a 2D mesh from a bezier curve?

Right now i just end up with some kind triangular shape that i have to delete the bottom vertices from, and then set the Z axis on the remaining vertices to 0.

Using the 2D option instead of the 3D doesn't have any effect for my purpose.

Here is a demo of my current method:
https://youtu.be/YL23LZxlYHA

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

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


Python - How to get a list of background images used by a camera? I am trying to use python to get a list of names of background images that are being used by a certain camera, I've tried to do it like this:

print(bpy.data.cameras['Camera'].background_images)

which gives me:

<bpy_collection[1], CameraBackgroundImages>

Then if use:

print(bpy.data.cameras['Camera'].background_images[0])

I get something very cryptic:

<bpy_struct, CameraBackgroundImage at 0x000001B59016BCA8>

Is there a more specific attribute that I need to search for?

Also, I am using Blender 2.8

You should be able to access the name of a background image with

for background_image in bpy.data.cameras['Camera'].background_images:
    print(background_image.image.name)


How do you create a triangle pattern in a plane? I want to create this picture, except going on for the entire plane, and just the geometry, not with multiple shapes. Is there a way to do this? (not with the going over lines)

Just to add to Markus von Broady's answer:

Shear the result by -0,5
Scale by √75 (0,8660254...)
Done

Tadaa...


Ambient occlusion results in reverse / Inverted colours? Im confused , this has never happened before!

The ambient occlusion is giving a reverse effect , instead of white in exposed areas it turns black?!

this is because of the inverted normals.
you can recalculate the normals by going to edit mode and and then press Ctrl+N or by pressing recalculate normals from the tool shading panel


UV map and re texturing it I have an object that is inside a game and I have its UV map inside the game and on my PC.

What I want is to take that UV map and make textures depending on it so when I upload this textures back to the game it fits, so can I use the UV map I have on my computer without the having the object on my computer (or having both the object and the UV map inside Blender) to make a whole new texture.

I know how to do it when I have unwrapped the object inside blender but what I missing here is how to do it without having an object only UV map to make a textured map out of it I also have the normal map and other maps but no need to blend them on my computer since I can blend them inside the game already.

I have a UV map without an object and I want to make a new textures depending on that UV map so the new textures fit right on the object how I can do that?

Can I create other maps out of a UV map? using the software tools and my imagination without having an object to do the changes on the bake to a map?

What I can and what I can't do? and if it can be made in other programs like maybe Photoshop if it can't be made inside Blender ?

PICS EDIT...

here that is what I have the UV map of an object but not the object itself because the object itself inside the game and can't be downloaded I can only download pics from the game

and that what I want to do I want to take that UV map and add texture to it like this

I think it can be made with paint if I want just paint but what I want to do is adding a real texture with dots maybe or something not just coloring one area

here is more pics

texture like this

not just colors like this

[![enter image description here][7]][7]

Don't feel bad about understanding all of this, it can be very confusing and it takes a while to get.

There are a lot of bases to hit here, and they are all deep enough to be a full paying job in their own right.  Hopefully, this info should help you ask more targeted questions with this info, so here we go:

UV Maps are just a way of relating 2D information (like a picture) to a 3d object (such as a model).

Blender can generate these for you by going into edit mode, selecting everything (a), and pressing u for the unwrap menu, and choosing "smart unwrap" (results are sub-optimal, but "good enough").  Unwrapping models are an art to themselves, because where cuts are added to the model to allow the UV's to be made flat can be noticeable.

Once you have a UV map, textures can be applied to your model.  The simplest one is Diffuse, as this the model's color (the rainbow example pictured above).  There are other maps that you may use that will affect how those colors are shown further, depending on renderer and shader, such as Gloss, Emission, Specular, or even Transparency (to name only a few).

A Normal Map is an extremely special kind of texture.  This is a way to fake geometric detail into a model that doesn't have the geometry itself to pull it off.  Someone usually does this in order to preserve detail from a high poly sculpt while still being able to use the model in a game or animate with.

You will usually know you are dealing with a Normal Map (sometimes referred to as a Tangent Map) if it is mostly purple with fluorescent reds and greens here and there.

The usual way to generate a Normal Map is to take a high-poly model and bake on the details to a lower detailed model, Blender is capable of doing this.  There are also programs that let you draw directly on Normal maps, but as far as I know, Blender is not one of them.


Infinite Grid in 2.80 Hi I've just downloaded Blender 2.80
I was wandering if there is a way of making the floor grid in 2.80 a little bit more like it was in 2.79 when it actualy was 8x8 and not infinite.

Currently there is no way of of limiting the grid to let's say 10 squares. You could however disable it under "Overlays", create a plane and subdivide it with a right click. Then under Object Panel > Viewport Display set "Display as" to Wire and check "All edges".


I am trying to model a Arleigh-Burke class destroyer, but I can't make the structures above the deck symmetrical on any axis So in this photo, the oval-ish structure in the front isn't completely lined up with any axis. It kinda looks like its a smidge to the right of the deck
Can anyone explain how I can make part of my mesh symmetrical on an axis? Or maybe tell me what tools I should use?
I can't mirror, because there are some structures on this ship that are supposed to be asymmetrical.

I would suggest that you can mirror, at least long enough to get the overall shape right.  Remember that you can use a modifier for a time, and then apply it to make its effects a permanent part of your mesh.

In the N-panel you can get info about currently selected verts or groups of verts.

When you say there are structures on the ship that should be asymmetrical I would also argue that you should be splitting everything off into separate objects where possible.  You're then free to use modifiers within a more limited scope, and you can take advantage of the features of the outliner.  You can parent objects to each other to move and scale them as a group, you can use collections for hiding and showing groups of items quickly.  Depending on the level of detail you're going for here, the scene could end up very heavy anyway.  Having some level of control over your viewport performance will come in handy.
And remember this scene is your workspace right now.  These are all just organizational tools for you.  It may be that at some point you grab everything and join it together to a single object to "ship it", as it were.


Transparent background for live motion capture and performance All the questions on this subject relate to rendering, so I don't think this is a duplicate.
I'm trying to display a character for motion capture on a completely transparent background.  It is NOT for rendering purposes.  It is for LIVE motion capture and performance.
In other words, I need no plane, no world, just emptiness!
Can anyone explain how to do this?
Thanks!

The easiest method for me would be using green background in Blender and Chroma key filter in OBS Studio:

In Blender, set Display -> Render Only and tick World Background

Set World Background Color to green

Hide all UI so it looks like this, you can go fullscreen by pressing AltF11

In OBS Studio, add corresponding Display or Window to Sources list, then right click on the scene preview -> Filters -> Chroma Key, make sure the green is selected

The resulted scene you can live stream


How to create a cube from two united planes? I just started with Blender

This image is a left view from a model made from extruded cubes. Normally, when I extrude a cube from its face, 4 new vertices are created and the other 4 are already existent.

How should I proceed if I only want to create 2 new vertices and use 6 already existent ones, that is, use 2 faces to extrude a cube?

One of many ways to achieve an extrusion-like result if one face is already in place:

select the two open edges in edge-selection mode

Shift + S: snap 'Cursor to Selected'

set pivot mode to '3D Cursor'

select 'hinge' edge at the bottom

Shift + D to duplicate, S, -, 1, Enter to mirror around 3D Cursor

Fill the result by selecting pairs of edges and pressing F


Recent Scenes Drop Down Is there any way to increase the number of recent scenes in the file>open recent drop down? Right now it gives me 10 but I could do with more.

You can change it in User Preferences / File / Recent Files.


Animate Collision On and Off I have an object that a cloth is colliding with, and I want the collision to be disabled in the middle of the animation. However, I cannot just turn off object Collisions on the cloth, because there is another collision object that I want the cloth to continue interacting with. I cannot find an 'on/off' switch in the Collision properties. In another forum, scaling the collision object worked, but doesn't in my case because it pushes/pulls the cloth. Is there a way to animate collisions to turn off or another solution around this?
(I am using Blender 2.81a)

The answer is: No

You can not directly animate the modifier so that it will be cloth-permeable, but you can easily find ways around it.

I fixed this problem by running a simple small animation myself, a cloth plane falling on a cube with collision settings, and a large plane (with collision settings to act as the floor).

I animated the cube with a LocScale keyframe at frame 1, 50, and 75.

At frame one I added a single keyframe to the cube without doing anything.

At frame 50, I did nothing to the cube, and set another keyframe.

At frame 75, I scaled the cube down to .0001 size, and moved it beneath the plane.

The final result is that the cube shrinks below the cloth, and gives the effect of the object disappearing.

I believe this is the best way to animate these kinds of simulations, so I hope this helps you.

Here is the .blend. (Note: you may need to re-bake the cloth):

Here is a video, too, if you don't want to have to download the .blend.


Cycles - glare/bloom isn't working? Ok, Im very new to nodes with the actual render but Im trying to do what these people did, just get a basic glow around my emissive materials: unity animate object transform into another How do I get the Glare node to output transparent instead of Black background

Maybe Im not understanding something basic but here's my node setup:

And, both just in viewport when I hit Render and then when I actually render out an image, nothing is remotely glowing:

those image planes are emissive - they aren't glowing any more than before. Whats wrong herE?

Here I created an example Scene with your node Setup (without any glowing effects)

Here I just switched the positions at of the input the Alpha-over node and then it worked


What exports does blender have for 3d printers? What exports, if any, does blender have for 3d printers?

It may be sort of a list question, but I feel it could be horribly useful.

When considering 3d printing, you should be more concerned with your mesh topology than an actual output format. BlenderCookie has a tutorial on preparing a model for 3d printing. An application or company that does this will take anything from .ply to .obj as all these formats do is hold mesh data.

Here is also an extensive article on (recently new) official support for 3d printing in Blender.

So as for a definitive answer to this question. 3d printing giants Shapeways make mention of .STL in this tutorial

  Finally, export to STL. When uploading the file, make sure to select
  "millimeters" for scale. If all went well, it'll upload, and you'll
  get notified that it's ready for printing.

and there is a set of tools called 3D Printing Toolbox available for Blender that assists with the overall process. Statistics/Cleanup/Export etc

You can enable the addon in Blender from the Mesh tab.

There is also a DVD on the Blender eShop on 3d printing. It is very modern and up to date.


2.8 msi install error 2753 Tried to install 2.8 from .msi but I am getting an error 2753.

You can try to fix the error with the approach described in this StackOverflow answer.

Otherwise you don't need to install Blender, you can also use the archive version. Download the appropriate version for your OS and extract the archive.

Blender 2.8 64 bit
Blender 2.8 32 bit

Alternatively you can also install Blender through Steam.


need double helix mesh to follow bezier curve I need to get my double helix mesh to follow the bezier curve in this screen shot. When I add a curve modifier to my double helix, instead of following the curve, it distorts the size and angles of the mesh in an undesirable way.

How can I get it to follow that curve?

And here's the blend file:

The curve modifier is a bit of a tricky one, as it requires you to spend a bit more attention to the orientation of the source object. To start with, make the local axis of the object which you want to bend visible in the Object tab / Display section:

In your case, the positive Z Axis is pointing up the direction of the Helix, and this is the direction which you want to deform. Next, Handle the origins. The Origin of the Helix should be at the starting point of the deformation. If it is not, you need later on to locally translate it along its local Z axis to match up the curve (in your file it was centered on the object). If you place it like in this screenshot, you can skip the translation step:

The highlighted axis are the one from the helix, the dark ones the axis of the curve you provided.

Then, make sure that the origin of the curve is at the origin of the helix. You can snap them together using the commands in the Shift S menu:

Now add the curve modifier, and set the deformation direction to Z:

As lemon rightfully anticipated, the curve radius is too small to get nice deformation. Ease out the curve a bit more to fix it.

Blend File is here:


x3D export messes up scale I am exporting my blender model to .x3d for 3D printing.
However, it appears that the .x3d file becomes way too big to print. The scale is completely messed up.
Collada exports in the right scale, x3d does not. So, is it safe to say that the problem is in the x3d exporter?
I have double checked all the settings in Blender, units, millimeters, 0.001 etc.
Is there a solution? Much obliged!

Exporting a blender model to .x3d for 3D printing it became too big to print. The scale was completely messed up.
Collada, .obj and .ply all export in the right scale, x3d does not.
All printing-tutorials say you have to set the 'unit scale' in the scene tab to 0.001 and the 'length' to millimeters. However, .x3d doesn't understand this 0.001 value.
MY WORKAROUND:
Set the 'unit scale' to 1 and your .x3d export will be in correct scale. A 10mm cube will print as a 10mm cube, the way it should be.
I wonder why the other file type exporters have no problem with this. Should the .x3d exporter be fixed or is it... uhm... just me?


Is MotionBuilder compatible with Blender? I want to animate a face, a Motion Capture animation. I learned that MotionBuilder is great for doing that. Does MotionBuilder work with Blender?

You can export animations from Motion Builder in FBX or BVH formats, which Blender can import as an animated armature.


How to convert Damped Track and Follow Path of camera into Frames? I have set up a path my camera should follow, and an Object it should track with Damped Track.
Now, what I wanna do is, make the camera movement into frames because I want to have a fluent movement where it tracks the moving Object, but then, when the Object passes I want to have a different angle and the cconstraint not to follow the Object anymore. And I want to edit the velocity of the camera-movement along the path for certain segments..

The Only and easyest way I know how to do this, (because follow path is really pretty dumm set up, cuz I couldnt' find a velocity modifier or something...) is with individual frames.

So how can I convert these two things into frames?

When you Bake Action, be sure to enable the Visual Keying checkbox. This ensures that the 'final' state of the object is captured, after all transforms, constraints, etc. have been applied.


Is it possible to increase the dynamic range of 'External Quick Edit'? I use Tools -> External-> Quick Edit in the Texture Paint mode to enhance baked textures. While the renders I overlay are in 32-bit dynamic range the Quick Edit image is 8-bit. Is it possible to increase dynamic range of the Quick Edit exports into Gimp/Photoshop to 16 or 32 bits?

I did come with a procedure which uses EXR files

Goal

To be able to create >8 bit color depth when creating texture camera projections

Procedure

Blender v2.7.6.2, GIMP v2.9.3

I created an example file to illustrate the workflow

Make 32 bit texture (UV-Tex) for the UV texture
Set Cycles as your renderer
Set Output for render to OpenEXR Float(Half), RGBA
Set lights, cameras
Create material for your model
Create a texture node for baking, set it to UV-Tex, leave active (with orange border)
Bake
Save result of baking to EXR file
Clean UV-Tex for projection
Select a camera, render, save result as EXR Float(half) RENDER
Edit EXR to suit your needs
Switch to 'Texture Paint Mode' Display object as 'Texture'
You should have 'External' tab now in the toolbox in 3D view.
In the Node view go to the texture node, and upload EXR RENDER file
(This step is important, if you don't make it active in node editor, and try to project EXR image you will get "RuntimeError: Error: Image data could not be found")
Switch Texture node back to UV-Tex
In "External" menu click "Apply Camera Image" select RENDER file
UV-Tex should have your projected EXR image now

All is working fine, however the very last step degrades the image to 8-bit depth, even if the final file is 32 bit. I am trying to figure out if it can be fixed, and will update this post, if I'll succeed.

ADDENDUM The Issue had been solved in Blender master branch and high definition projections should be possible from that moment on, Thanks Campbell!


Can I increase the number of frames in an rigid body simulation? Every time I am making a simulation it is stopping at 250. Why? I want to make it longer..like 400 or something. Can I even do that? I tried increasing the frames at the menu bar where object mode at all those are written...I don't know what it is called since I am a noob. I even changed frame rate and frame range. It didn't work.

You can change the number of frames in the Rigid Body Cache.


Animation interaction with both hands I have created a boy and a paddle. And I need to create somehow rowing animation. I already try to add rigid to paddle, also set boy as a parent to paddle, but still don't know how to make it

I'm guessing that what you are wanting is merely the two hands operating in concert to manipulate the paddle. If that is the case, then I can tell you that you don't need a rigid body for that, and in fact, it won't help you at all.
What you need are constraints. In particular, two IK constraints, one for each arm, each with its own independent target, and pole target, assigned (use newly created unparented bones to provide for these targets).
Then you will also likely need a Child Of constraint for each IK target bone, with the paddle object itself made the target of this constraint. You may also need either some tracking or copy rotation constraints to ensure that the hands don't wobble around and stay oriented properly.
Finally, you should have one final Child Of constraint on the paddle itself, with the target for that constraint put on the root bone of the character rig, so that the paddle will follow the character location when you move your entire rig.
With all this set up, you will be able to grab your paddle, move it, and even twist it, and your character's hands should stay stuck to it, and the arms move mostly correctly in response. You may have to occasionally adjust the pole targets for the arm IKs to get optimal positioning.


Create a trail effect (Meteor) I am trying to show a sphere with a trail, like the one shown in the image. I have tried using keyframes and moving the object from one point to another, and then enabling motion blur. This is not giving the desired effect. Any advice on how to achieve enter image description here this effect?

With current experimental build 2.91 you can base this on Volume Object.

create the shape from a Mesh Object.
add Volume Object and in modifiers choose Mesh to Volume, as source Object choose created shape one
add Point Light object in trail direction (close to a sphere)

With second modifier Volume Displace you can use texture to distort. Here is a few examples of Cloud texture (variations in texture properties level).

Since I don't see an option to animate Texture position (for now) for Volume Displace modifier, here is a basic node material ...

With additional Curve modifier (for mesh Trail) or Wiggle bones you would be able to animate motion in more natural way (like a flame moved from one place to another).


I sent my friend a blender model but textures aren't showing up? Okay so I made a model for a friend to teach them how to use blender but the textures aren't appearing as their model is hot pink/blank. I sent the model and textured files inside a zip file but it's still not working. Does anyone know how to fix this?

I'm still learning myself but any and all advice would be greatly appreciated and due to copyright reasons I cannot upload the model.

By default, Blender does not save images as part of the .blend file (this applies to background images or textures used as part of the scene).

To make those images part of the file they have to be packed.

You can pack all external files into the .blend file by going to File -> External Data -> Pack all into .blend.

After doing this you have to re-save the file.

According to the Blender Manual:

  Blender has the ability to encapsulate (incorporate) various kinds of data within the blend-file that is normally saved outside of the blend-file. For example, an image texture that is an external image file can be put “inside” the blend-file via File ‣ External Data ‣ Pack into blend-file. When the blend-file is saved, a copy of that image file is put inside the blend-file. The blend-file can then be copied or emailed anywhere, and the image texture moves with it.


Receiving error "Can't Detect 3D Hardware accelerated" My computer just updated, prior to the update I was able to use Blender but now I am receiving this error from blender when I open it.

http://s21.postimg.org/gaigi523r/screenshot_3.png Also I notice that when I check my Display adapters in device manager they have errors,

http://s21.postimg.org/wvq2xst7r/screenshot_2.png.

Does anyone know why this is happening? Need more info from me just let me know.  I did do some searching before I posted my question but could't find anything that I could understand. Thank You for your time.

After Windows updating, they use "Microsoft basics display drivers". This is drivers for something like "emergency mode". They work, but they doesn't use all hardware features.

You need to install appropriate Intel graphics drivers from Intel website.
I never had Intel Graphics, but this look like page for download:

intel download center


How to run script on Blender Quit Is it possible to set Blender quit callback? I just need to execute come code when quiting from Blender

You might also try the atexit module

import time
import atexit

filepath = r"C:\Users\pink_vertex\Documents\Blender\log.txt"

@atexit.register
def on_exit():
    with open(filepath, "a") as output:
        output.write(time.strftime("Exit on %d.%m at %H:%M:%S\n"))


Baking multiple normal maps into one I have an object with 3 materials,  each one of them has their own diffuse normal map and a specular map. I need the object to use only 1 material though,  I've baked the diffuse to one picture, works well, but I do not know how to bake the 3 existing normal maps into one just like the diffuse,  same question applies to the  specular map.

Facing the same problem now, really confusing, but I've just found a solution.

Normal maps contain non color data, and when baking normal map images (e.g. by shader emission, when noncolor is enabled) doesn't gives you what you expect.

You should enable color for each normal map images for baking as a diffuse or emission (of course it changes preview result).

Note that it will not yield exact results, but very close to original, maybe because I'm not using EXR, but I'm fine with the result.

English is not my first language so I hope its understandable.


random spikes jutting out of mesh im working on a realistic human head i dont know why this is such a common problem for me when the mesh creates random spikes in the case they come out of both ears. i checked in edit mode and the geometry seems to be fine with no loose vertices or whatever. i know this is something to do with the multi res mod but when i do a search i find useless answers that dont help

I believe it's a problem on normals. Visualizing the Normals at the [Properties Region] -> [Mesh Displays] revealed some peculiar normals.

At the same time, recalculation didn't work properly showing that you have topologically wrong faces. (Actually I found some but it's too tedious to name them. Add comment if you cannot find any)

Hope it helps.


Nothing shows when rendering As the tittle says, I've tried to render my model for quite a long time.
I read a post here but I couldn't solve anything, this is my current configuration for lamp/camera

I have already tried every solution in threads here, doesnt solve anything, I've actived nodes but still doesnt show up.

I dunno if it can be because the size of the camera and the lamp (The object is like 40cmx25cmx7,5cm and the lamp/camera is default size)

EDIT: I've tried by recommendation of another user to delete and add another camera, the problem still persists

Try setting your camera Focal Length to a number in the range 20mm — 105mm and see if that helps.

Focal length = 1m is a very exaggerated setting and you've probably set it by mistake

Edit:

also, your clipping Start and End settings are weird. Start must be smaller than End, and End should be much larger: try 1 meter!

To summarise: it looks like you have messed up with your camera settings. Creating a new camera and deleting the existing one should fix your problems.


Boolean slow: looking for speedup ideas I have a Python script that takes a mesh (created from an SVG path) and drills holes in it from coordinates in a file.

The whole project is auto-generating models of PCBs I design - but I am only concerned with the generation of the actual PCB at the moment.

My script all works perfectly - it's just that it's horribly, horribly, slow.  The slow part is when it's performing boolean operations to cut cylinders out of the mesh.

This is the routine I am using to cut one hole out from the mesh:

def drill(target, x, y, size):
    print("Drilling " + str(x) + "," + str(y) + " @ " + str(size) + "mm")
    bpy.ops.mesh.primitive_cylinder_add(vertices=64, radius=size/2, depth=10, location=(x, y, 0))
    newbit = bpy.context.object
    bpy.ops.object.select_all(action='DESELECT')
    target.select = True
    bpy.context.scene.objects.active = target
    bpy.ops.object.modifier_add(type='BOOLEAN')
    mod = target.modifiers.new("Drill", type='BOOLEAN')
    mod.operation = 'DIFFERENCE'
    mod.object = newbit
    bpy.context.scene.update()
    target.data = target.to_mesh(bpy.context.scene, True, 'PREVIEW')
    target.modifiers.remove(mod)
    bpy.data.objects.remove(newbit)
    #bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1)

Yes, I iterate the file getting the data and drill one hole at a time.  Originally I was creating multiple "drill bits" then .join()ing them into a single compound object and using that for the boolean operation.  This was considerably faster, however often the boolean operation would mess up and the resultant mesh would be a complete mess with faces covering random holes (Blender 2.79b), and the only way I found to cure that was to drill each hole separately.

But the actual drilling operation takes a long time. If you uncomment the last line you can see each hole being cut in turn and see how long it's taking, and it's ages.

So I'm looking for other ideas. Other approaches that I could take to create the mesh - from people that know a darn sight more about Blender than I do.

The constraints:

There is an SVG file which is used to create the "outline" of a solid mesh that is extruded to give it depth and all faces closed to make it solid.
There is a list of coordinates and diameters
The results must not cause incorrect faces to be created

So... ideas?

Booleans are slow, heavy, error prone and produce bad topology, they also only work on meshes, requiring conversion of curves to mesh which is a destructive process.

I would suggest instead a different approach. Keep you SVG import as a live bezier curve object, use its builtin extrusion and beveling capabilities to generate geometry.

Then use the coordinates file to create bezier curve circle objects with the desired radius at the correct positions. Join these created circles back into the original SVG object. Set it as 2D curve.

If everything has been correctly designed as coherent closed splines, Blender should be able to correctly close them and represent the circles as holes.


How to select edge rings between two edges? Holding Ctrl you can select the Shortest Path between two selected egdes.
This essentially allows you to select a range edgeloop.
Like so:

Ctrl+Alt+LMB will allow you to select and edge ring like so:

But how do I select the shortest path edge ring? Or rather, a range of edge rings between two selected edges.

It may be easier to use another selection tool instead of Edge Ring selection, because it won't take into account specified end of selection.

You can workaround that by selecting faces:

Select the shortest path with Path Selection in Face Select mode.
Switch to Edge Select mode, and deselect top and bottom edge loops by holding Alt+Shift and clicking with LMB on them. "Shortened" edge ring will be the only left selected.


How do I show all UV textures at once? I am UV mapping my model and I don't think there are any problems so far.

However, only when each object is selected it shows the texture.

I want to see textures on all objects, like hair, skin and clothing. But I can only see one at a time when I select it.

I'm using blender v2.79

You have to turn on Texture Atlas addon in Addons tab.
It's a workaround, but there's noting better at the moment. Waiting for 2.8!
https://www.youtube.com/watch?v=cIok7SCQ3SA


lack of geometry on the render, but not in the viewport I've got a scene with paper sheets moving along paths (with a modifier).
But there is something weird : while everything looks fine on the viewport, it seems that there is a lack of geometry when rendering (we can see kind of horizontal lines on the paper).

I checked : I have soft shading enabled on the meshes, I have a subdivision modifier enabled (on render too), and I also checked the resolution of the curves (12 on preview, 0 on render)

So why this ?

Thanks !

Seems that this is happening because I use 'Simple' subsurf, not 'Catmull-Clark' !

Anyway, seems there is a bug since it doesn't look the same in the viewport... ?


String systax misinterpretation I'm trying to get the path to my addon on the cpmputer with this command:
path = os.getenv('APPDATA') + "\Blender Foundation\Blender\2.91\scripts\addons\Mold_Generator_Addon"

But the text \2 is interpreted as \x07 in Blender console (and as x02 in this browser)
'C:\\Users\\pqj\\AppData\\Roaming\\Blender Foundation\\Blender\x02.91\\scripts\x07ddons\\Mold_Generator_Addon'

Is there a way to force python to write \2?

\2 is interpreted as an escape sequence started by a backslash (like \n is a newline). Use a raw string literal, r"\Blender Foundation\Blender\2.91\scripts\addons\Mold_Generator_Addon", if you want a string where backslashes are interpreted literally.
But you should use os.path.join (or pathlib) to make paths anyway. os.path.join("Blender Foundation", "Blender", "2.91", "scripts", "addons", "Mold_Generator_Addon")
But you shouldn't be hardcoding the path anyway. You can get the path to the directory containing the current .py file with os.path.dirname(os.path.abspath(__file__)). This works no matter where it is installed and no matter the Blender version.


Loop cut maintaining circular profile Adding a loop cut to an object with a circular profile renders the object non-circular.  This is true for any object with a circular frame e.g. plain circles, UV-spheres, cylinders, cones, etc.

Top-left is the mesh of a plain circle with Subsurf modifier applied (bottom-left).  Notice how adding one additional vertex (top-right) makes the circle skewed (bottom-right).
Is there a tool/transform/way to correct the circle?
Knowing the solution to this should help solve the problem for all the aforementioned objects.  I tried selecting all points and applied the To Sphere transform in vain.  It didn't help.
I thought putting the vertex r radius away from the circle's centre like the rest of the vertices will help, looks like it doesn't.

Since the verts are non-uniformly spaced, the result will always be deformed.
That's just how the Catmull-Clark subdivision works.
You can use Cast Modifier to correct the circular profile.
It can also be limited to a vertex group.

Add Cast Modifier > Sphere
Set Factor = 1
Done


Where can I find remaining time for preview render completion in 2.8? In 2.79, running a preview render would let me see how long it would take for me to complete a certain number of samples. This was useful for me as I would often times set my preview samples to a number that is approximately equal to how long I'll be away from the computer for, or for me to gauge how long a particular scene might render on a certain sample setting.

Now in 2.8, I only see this:

How do I get back that indicator?

Change the way the render will be displayed in Render (Blender's header) > Display Mode > Image Editor.

Render again. Now see if a status bar appears inside Image Editor with the information you need.

To preview in Render Preview (Rendered Viewport Shading), enable Overlays and check the Text Info checkbox. Now the remaining samples will probably appear.


Subsurface overhang causing black shading I've got a model with mirror, bevel, and subsurf modifiers on it and subsurface is causing some shading issues. I don't know how to fix them other than to just disable it. I've seen another two posts like this but one of them was due to some tris in the corners of the mesh, which I don't think I have.

How do I fix this?

Here's a download for the .blend file

edit: By request, a screenshot of it without subsurf in edit mode. There are no ngons, it's all quads.

It looks like the topology automatically generated by the Bevel modifier creates these artifacts, maybe someone will explain. To correct it, you can add some edge loops not too far. Or you can create bevels manually, first horizontally then vertically, it creates a different topology that works better.


Not detects mesh as object? that's my first question here in blender stackexchange, so I'll try to be specific;

I have modelled a city with more than 30 objects, but my problem is that Blender not detects each mesh as object. I mean, when I select each "object", in the upper menu where displays the project info (verts, faces, ) says 0/2 objects.
I don't know why shows me 0/2 objects instead of 0/30 objects.
I've found 2 buildings that Blender detects as objects, but the rest of the models doesn't recognise them as objects.

How can I "set" the other models as "blender objects"?
I need for exporting them to 3ds files, and Blender won't export anything if is not an object.

thanks!

(I restored a previous file where it detects 4 objects instead 2)
I have each kind of building in separate layers, but the object's number doesn't change if I change the layer where I'm working

Select one of the object and click this button

Use the scene's active camera and layer in this view rather than local layer.

It has link in one scene into other scene

For more information please watch this video


So I am having this bug where my model in a game is transparent when you look at it from a certain angle so my question is how would i go about getting rid of that transparency?

It looks like flipped normals. Try to select faces of that geometry and in the left toolbar select Shading / UV tab -> Normals: Recalculate. Or select only those "transparent" faces and hit Flip Direction.


Target contains concave polygons I have a problem with a Surface Deform Modifier when I try to bind my mesh an error appears  Target contains concave polygons!.
I already tried:

Mesh ‣ Clean up ‣ Split Non-Planar Faces
Manually filling faces
Subdivide surface

I don't know how can I fix it, does any one knows how?
My model:
https://drive.google.com/open?id=1JLdkRbxSIxokihoFKmLkzMTXT6JZL9-9

From the manual, at https://docs.blender.org/manual/en/dev/modeling/modifiers/deform/surface_deform.html , the target

Must not contain faces with collinear edges.

You have at least two faces with three collinear points (what I've heard called a degenerate quad).  That's what you can't have.  I've selected one in the image below.

To add to this, the quickest way to fix this problem (and non-destructively to boot!) is to use a triangulate modifier.  On your model, if you put a triangulate modifier on your plane, after the cloth modifier, your fish will bind properly.
That's not always going to be the case; surface deform gives that warning inappropriately sometimes, when the problem is something other than concave polys.  (It's interesting to me that binding a Suzanne to a Suzanne is basically impossible...)  But in general, whenever you want to use a surface deform and can't bind, the first thing to do is triangulate the target.


How to make playhead / transport / cursor return to start position in Blender? Like DAW does? I need this to be able to test animation comfortably. Or how do you do this?

Stop animation and move playhead to a frame you start from?
Use just Esc


Why my spot lights do not work properly? I have set up a simple scene with an Armature and a slightly bend floor. Each object in the scene has a Principle BSDF assigned to it. After I rendered the scene using a simple World Light and one Sun Light, I wanted to introduce some proper lighting.
I made the Sun Light a Spot Light, positioned it, copied it 5 times and aligned them to a grid. While looking in Render View I noticed that none of these lights actually do something.

Q: What am I doing wrong?

From your screenshot, your lamp is only rated as outputting 1 Watt of power. You are effectively trying to illuminate your scene with around 6 Watts of power - 1/10th of a 60W lightbulb, presumably at many metres (Blender Units) range - so your scene is almost completely dark.
You need to simply increase the output of those lamps to more reasonable levels - eg, 600 Watts per lamp would be more reasonable.
I suspect you have gotten into this situation by duplicating the original Sun lamp and changing its type to 'Spot' without changing its output. Note that Sun lamps are rated in 'Strength' - with a strength of '1' equating to 1 'Sun' (our sun) - but Spot lamps are rated in 'Power' (in Watts). When you change the lamp type the Strength gets changed to Power but the value remains the same (so 1 'Sun' gets changed into a 1W lamp). When changing between types, always check the other settings to ensure they are still reasonable for your situation.
In summary, increase the output from your lamps.


bones barely moving with mesh I've rigged my mesh, but when I move a bone, it doesnt fully move with it:

Select the object that is parented with the bone, and go to the data panel  in the properties window. Enter edit mode, and select all geometry. Under the vertex groups, ensure the Weight slider is at 1.000, and select Assign.


Blender 2.49b: Loop animation between selected markers My question refers to an example .blend file supplied with the Mount and Blade: Warband trf exporter. In it, one can find the following Action Editor set-up:

Note the WalkLoop1Start and WalkLoop1End pose markers; When I play the animation from the beginning, the full 150 frames are played, following which the animation jumps to WalkLoop1Start and loops between those two pose markers indefinitely.

I would like to have a similar set-up, but I have been unable to find the right buttons to do such a thing. Looking at the example does not help, as creating the pose markers is not the issue; Telling the animator to loop between them, is.

Please note that I am NOT talking about the NLA Editor cyclic extrapolation functionality; this .blend file uses none.

The options I was looking for were indeed trivial. Nor did the pose markers have anything to do with the looping.

On the Timeline window, select "Frame" menu, followed by "Set as Start (Shift s)". This merely means that if the animation starts before this point, it will advance normally until the end point, following which it will loop in-between the current start and end points.

One can see the start and end points in the image in the OP by noting the section of light gray in the timeline window (Which also happens to match up with the pose markers, implying that they have something to do with the looping; they don't.)


How to add a pattern from a 2D image on a 3D object? I am new to blender.

I have a 3D object that are made from an SVG file.

I want to know how to apply an image to said object. To act like a skin for said 3D object. This is the same as creating a clipping mask in Adobe Photoshop.

How do I apply said image to an object to make it act as a skin for the 3D object?

Put a Black and White image into an image texture and use it in a displacement modifier applied to a highly subdivided plane.


Blender 2.81 render not using all GPUs I have 2 Nvidia GTX Titan Black graphics cards in my machine, but Blender keeps using only one of them.

I have them both checked in the Preferences > System > CUDA tab but when I render and take a look at the Windows performance screen only one of them is in use.

I´m using Windows 10 and blender 2.81, my graphics drivers are all updated. Anybody have any idea what the problem might be?

I had a similar problem a while back with cycles. I used a script for rendering on remote ubuntu systems with titans xps. Try running the following script IF you too have Titan xps, otherwise try to find the right blender-name for your GPU  first. This may or may not work, I thought you may want to give it a shot.

import os, bpy

os.environ['CUDA_VISIBLE_DEVICES'] = '0,1'

bpy.context.scene.render.engine = 'CYCLES'
bpy.data.scenes["Scene"].cycles.device = 'GPU'
bpy.data.scenes["Scene"].cycles.feature_set = 'SUPPORTED'
bpy.context.preferences.addons['cycles'].preferences.compute_device_type = 'CUDA'

cprefs = bpy.context.preferences.addons['cycles'].preferences

# Enable all CPU and GPU devices
for device in cprefs.devices:
    if device.name == 'TITAN Xp':
        device.use = True
    else:
        device.use = False

# Tests
print('Compute_device_type: ', cprefs.compute_device_type)
for device in cprefs.devices:
    if device.use == True:
        print('USED: ', device.name)
    else:
        print('NOT_USED: ', device.name)
print('Will be used: ' + bpy.data.scenes["Scene"].cycles.device)
print('Feature set: ' + bpy.data.scenes["Scene"].cycles.feature_set)
print('Render engine: ' + bpy.context.scene.render.engine)


How to create a face out of edges Is there any way to create a face out of these selected and enclosed edges in the screenshot? I have tried using the F key but the face overlapped part of the model. Any help is appreciated. :D

You definitely need more then one face to fill that side, I used six.

The best way to fill that shape would be to look at your model, and think about what edges you need where, then decide what faces should go where. You should be thinking about edge flow, and face loops for your entire model.

In this gif I added two edges on the bottom, then by selecting two edges at a time pressing F, filled the side with new faces.


Additive drawing with grease pencil Grease pencil clears all previous strokes when writing a new frame. I want to keep the existing strokes and copy them to the new frame before a new stroke has been drawn.

When drawing in the interface, this can be done by enabling additive drawing. There also seems to be an operator which can copy the current frame to a new frame, but I haven't been able to get it working: frames.copy()

How can I do this?

import bpy
import math
from math import sin, cos

def get_grease_pencil(gpencil_obj_name='GPencil') -> bpy.types.GreasePencil:
    # If not present already, create grease pencil object
    if gpencil_obj_name not in bpy.context.scene.objects:
        bpy.ops.object.gpencil_add(view_align=False, location=(0, 0, 0), type='EMPTY')
    # Get grease pencil object
    gpencil = bpy.context.scene.objects[gpencil_obj_name]
    return gpencil

def get_grease_pencil_layer(gpencil: bpy.types.GreasePencil, gpencil_layer_name='GP_Layer', clear_layer=False) -> bpy.types.GPencilLayer:
    # Get grease pencil layer or create one if none exists
    if gpencil.data.layers and gpencil_layer_name in gpencil.data.layers:
        gpencil_layer = gpencil.data.layers[gpencil_layer_name]
    else:
        gpencil_layer = gpencil.data.layers.new(gpencil_layer_name, set_active=True)
    if clear_layer:
        gpencil_layer.clear()
    return gpencil_layer

# Util for default behavior merging previous two methods
def init_grease_pencil(gpencil_obj_name='GPencil', gpencil_layer_name='GP_Layer', clear_layer=False) -> bpy.types.GPencilLayer:
    gpencil = get_grease_pencil(gpencil_obj_name)
    gpencil_layer = get_grease_pencil_layer(gpencil, gpencil_layer_name, clear_layer=clear_layer)
    return gpencil_layer

def draw_circle(gp_frame, center: tuple, radius: float, segments: int):

    # Init new stroke
    gp_stroke = gp_frame.strokes.new()
    gp_stroke.display_mode = '3DSPACE'  # allows for editing
    gp_stroke.draw_cyclic = True       # closes the stroke
    gp_stroke.line_width = 300
    # Define stroke geometry
    angle = 2*math.pi/segments  # angle in radians
    gp_stroke.points.add(count=segments)
    for i in range(segments):
        x = center[0] + radius*math.cos(angle*i)
        y = center[1] + radius*math.sin(angle*i)
        z = center[2]
        gp_stroke.points[i].co = (x, y, z)
    return gp_stroke

def draw_multiple_circles_animated(gp_layer):
    for frame in range(60):
        gp_frame = gp_layer.frames.new(frame)
        radius = sin(frame/30)
        draw_circle(gp_frame, (0, sin(frame/3 ), frame/3), radius, 80)

gp_layer = init_grease_pencil(clear_layer=True, gpencil_layer_name='animLayer')
draw_multiple_circles_animated(gp_layer)

I fixed it. This change works nicely!

def draw_multiple_circles_animated(gp_layer):
    gp_frame = gp_layer.frames.new(0)
    for frame in range(60):
        gp_layer.frames.copy(gp_frame)
        radius = sin(frame/30)
        draw_circle(gp_frame, (0, sin(frame/3 ), frame/3), radius, 80)


Car model to glTF with multiple parts I have a model of a car which I have exported to a glTF. How can I group elements in Blender like the wheels so they appear separately in the JSON code? I have created Vertex Groups but they don’t seem to appear in the code.

For things like the wheels of a car, you want them to be separate meshes, in separate nodes.  A glTF "Node" corresponds to a Blender "Object" which owns the glTF "Mesh" or Blender "Mesh".  Each node and each mesh get their own block of JSON in the glTF.

If your car is all one mesh, go into Edit Mode on that mesh, select all the faces/vertices of the wheels, press P, and choose Selection.  This will create a second object with the selected faces.  Leave Edit Mode and rename the new object to a more descriptive name like "Wheels".

If your plan is to spin the wheels, you may wish to take some extra steps.  The back wheels and the front wheels should be separate objects (or perhaps all four wheels could be separate, if they spin individually).  The origin point for each wheel should be somewhere along the centerline of the axle for that wheel.  The wheels should each declare the car body as a parent object, so that when the car itself moves, the wheels come with it.


Fast keyframe insertion I noticed that every time I insert a new keyframe on an object using the Python API, the insertion takes more time.
Here are some timings of a keyframe insertion:

1st keyframe: 0.0176 ms
10000th keyframe: 1.0012 ms

(both only measure the insertion time of one keyframe)

Now I don't need to insert so many keyframes but this is just to show what is happening. Although it's just ~1ms here, it makes a big difference for me because I need to keyframe many objects (~10000).

So here are my questions:

Why is this happening?
How can I insert ~1000 keyframes to an object in an efficient way?

Use foreach_set to set all fcurve data from data

Similarly to this q&a can add our data directly to an fcurve.

fc.keyframe_points.foreach_set("co",
        [x for co in zip(frames, samples) for x in co])

is setting the co, the (frame, value) pair of each keyframe point

for f, s in zip(frames, samples): # zip => (f1, s1), (f2, s2) ...
    fc.keyframe_points.co = (f, s)

note foreach_set requires a "flat (or one dimensional) list"  eg [f1, s1, f2, s2 ...]

flat_list = [x for co in zip(frames, samples) for x in co]

Script below creates a random noise per frame for frames 1 to 250.  The action and fcurve is created for location.y and  assigned to the context object.

import bpy
from random import random

frames = range(1, 250)
samples = (random() for f in frames)
# some action
a = bpy.data.actions.new("SomeAction")
fc = a.fcurves.new("location", 1, "LocY")

fc.keyframe_points.add(count=len(frames))
# populate points

fc.keyframe_points.foreach_set("co",
        [x for co in zip(frames, samples) for x in co])
# update
fc.update()
# assign to context ob
ad = bpy.context.object.animation_data_create()
ad.action = a

To tweak it up a notch, if you are not going to edit the fcurve convert it to sampled points

fc.convert_to_samples(1, 250)


Low light emission color I started a low light interior bar scene with an emission shader on some paper lanterns. If I set the strength to 1, the color of the lanterns look great but there's too much light in the scene. If I set the strength to 0.2 then the light levels in the room look great but the color of the lanterns look dull & grey. Any ideas? Thanks

You can try using the Filmic Blender set of Luts and OCIO configs that @Troy_s has been working on, to render images with a much wider dynamic range.
Read this answer for a detailed description on how it works.

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


Exporting loops to Unity? I've looped an animation on Blender. But how do I export this loop into Unity? I've tried exporting as both Fbx and blend extensions, but it plays only once.

Any ideas anyone?

you should actually loop it in unity. when you will click on file on explorer on inspector go to animation tab select "loop time" option.

In unity 4.6.1f version.

Note option may depend on your version of unity3D

For using it in animation controller.

click on the object in explorer

on inspector goto rig tab choose animation type to legacy

now go to animation tab select animation you want to loop further scroll down check add loop frame and make sure warp mode is loop then click apply.

Now add game object in scene add animation controller and mark play automatically.

This method worked for me. Do let me know if you find some problem.


How make a character climb rocks and blocks in the BGE? I am trying to do something like that image below... But no more ideas...

It's for a semi-platformer game that uses simple jumps, this grab ledge above and some other. I already know how to do a vertical stair, but this is braking my mind.

I've get a satisfatory answer to my problem working only in expressions and logick bricks.
In fact, I was searching a system that make me get a cube or anything to climb other object for after do the animations and etc.

Today i've found a way to allow me to do a wall climb with one cube to other object.

The way I use was:
Named any properties to my cube that is my personage.

Called a property "climbable" to the object that you want you personage climb.
link colision "obst" and property "parede" to the actuators edit object "supende" and property "escalaS" using the controller expression with "obst AND NOT parede"
link the sensors: Keyboard W and property "parede" to the actuator motion "cima"

explain:

colision "obst" is to test the colision between personage and object.
property "parede" is to verify true to the property "climbable" in the personage.
edit object named "suspende" is to suspend the dynamics. Actuator edit mode, set to dynamics -> suspend (that is the trick on newer blenders. Cause it turns any object into a static one with no colision rules).
property "escalaS" is to set property from persnagem to a climbable one (this do easy to me to treat the others problems.)
The actuator motion "cima" is to move up the actually static object.

Then you'll ask me: and to turn it dynamic again?
Do yours links in the better way you find and link actuators:

property climbable assign False and
edit object dynamics restore

These last 2 do the cube works like a personage or character again.
Now is time to work in the animations then throw in the cube and do my game.

I hope this helps anyone.

p.s.: I've used names like suspende, cima, parede and others no english cause i'm brazilian. And here we talk brazilian portuguese. If have any or many errors in this text correct me. I'll thank you.


How to toggle selection? Is there a way to toggle objects' ability to be selected on/off with a hotkey similar to hiding objects with Shift + H / Alt + H?

Short Answer

No, there isn't.

Long Answer

I just looked it up and it seems that there is not a hotkey for that by default, so I whipped up an addon real quick to do it. Install this and you can add a shortcut to it if you'd like. Another trick is to press and drag over the toggles in the outliner (this actually works just about everywhere in Blender's UI) to quickly enable objects that are close together in the outliner. The add-on can be found in the tool context in the 3d view. Just copy this into a text editor like notepad (simpler is better) and save it as quick_toggle_selectability.py, then install it like you would any other add-on.

# Copyright 2016 Jake Dube
#
# ##### BEGIN GPL LICENSE BLOCK #####
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
# ##### END GPL LICENSE BLOCK #####

bl_info = {
    "name": "Selectability Toggle",
    "author": "Jake Dube",
    "version": (1, 0),
    "blender": (2, 76, 0),
    "location": "3D View > Tools > Select",
    "description": "Button to toggle selectability",
    "wiki_url": "",
    "category": "3D View",
    }

import bpy
from bpy.types import Scene, Panel, Operator
from bpy.props import EnumProperty

class SelectabilityTogglePanel(Panel):
    bl_label = "Selectability Toggle"
    bl_idname = "3D_VIEW_PT_layout_SelectabilityToggle"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_category = 'Tools'

    def draw(self, context):
        scene = context.scene
        layout = self.layout
        layout.operator("scene.quick_toggle_selectability", icon="RESTRICT_SELECT_OFF")
        layout.prop(scene, "action", text="")

class SelectabilityToggleOperator(Operator):
    bl_label = "Selectability Toggle"
    bl_idname = "scene.quick_toggle_selectability"
    bl_description = "Toggle/Disable selectability"
    bl_options = {'REGISTER', 'UNDO'}

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

        for active in bpy.context.selected_objects:
            bpy.context.scene.objects.active = active

            if scene.action == 'TOGGLE':
                active.hide_select = not active.hide_select
            elif scene.action == 'ENABLE':
                active.hide_select = False
            else:
                active.hide_select = True

        return {'FINISHED'}

classes = [SelectabilityTogglePanel, SelectabilityToggleOperator]

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

    Scene.action = EnumProperty(
        items=[('TOGGLE', "Toggle", ""),
               ('ENABLE', "Enable", ""),
               ('DISABLE', "Disable", "")],
        name="Action",
        description="What the button does to selected object's selectability",
        default="TOGGLE")

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

    del Scene.action

if __name__ == "__main__":
    register()


Join Overlapping Terrain Surfaces I am trying to create a terrain surface for laser slicing.
I have several publicly available terrain surfaces. The surfaces have some overlapping, but the overlapped faces are not same on both surfaces.

I finally want to have an object similar to below without internal surfaces

I tried to extrude individual surfaces, and join. There are internal surfaces remained.
I tried to extrude individual surfaces, and do boolean operation: Object A union (Object B difference (Object A intersect Object B)). There are still internal surfaces.
Can anyone tell me how to do this?
I tried to cut the overlapped surfaces by bisect tool at a specific coordinate (say at certain $Y$) on both surfaces, then extrude and join. but there are still internal surface.

Finally, here is my solution.

cut one object's edge by bisect tool at position very close to another object, keep a gap between the two objects.
join the two objects into one.
enter edit mode
select the two edges at the sides of the gap
use edge bridge tool.


How to make custom logo for published bge game I recently published a Blender game with an executable which has a Blender logo. I would however prefer to make a custom logo. How should I do this?

This is not really a question about Blender itself, but additionally to the answers provided in the question linked above you can also make a launcher application to start you game and run it from there.

The launcher application can then have any custom icon you want.

Just create a batch file to start the game with the command
start path/to/game.exe

and use some application like Bat to EXE to compile it into an executable. That executable can then have any icon file you want


How can you bake lighting? I want to bake in blender cycles but I get black images. I tried it with different blender versions and different settings (combined baking or just shadows). My setup is a plane and a cube which are both UV unwrapped.

I can apply images and textures just fine, but when I create a new image, connect it to the diffuse node of the cube and plane material, then choose the new image and then bake everything is black whether I am in textured, material or rendered mode. I have 2 lamps which are just fine in rendered mode so thw problem can not be the lighting.

Most probable reason of your failure, is connecting texture image node with new image to shader node of the cube. Notice, that when you try to bake, you get message "Circular dependency for image "YourImageName" from object "YourObjectname". The texture image node in material (for each material) of the object from which you want to bake a texture, must be active (selected as last) but not connected to any shader, connected to material output.It should look like this:


How do I apply maps to a retopologized low poly model? I have a series of maps created in Substance designer. I wish to apply them to a model. I can apply the maps correctly after uv unwrapping the model.
I need to apply the displacement map directly (without using nodes) to generate a new mesh. This works great using the displace and subdivision surface modifiers, however it leaves me with a very high poly model. I plan on using this in a game, so the poly count needs to be much lower.
I figured I could retopologise the model… but here are my questions:

After retopology, how do I apply the other maps to the low poly model? e.g. normal, gloss, colour etc.

Surely there is a better way to do this if I have all the maps?

Note: I don’t want to apply the displacement map through the nodes because I want the model to contain the height information. The height information is not very complicated either, it’s mainly a bunch of shapes with gradients (not heaps of little details, as that’s what the normal map contains).

First, you need to do the retopology to create a low-poly model and uv unwrap it. Then bake the maps from the textured high-poly model to the low-poly model. Finally, connect the baked maps to the corresponding slots of the Principled BSDF node in Blender.
Use the Displacement map in the material nodes or use it with a Displace and Subsurf modifiers on the high-poly model (as you did). Then bake the Normal map. This will transfer/fake the details on the low-poly object. (Alternatively, you could bake the depth info of the Displacement map and use the baked image as a Height/Bump map. But quality might be worse.)
Note: Gloss maps are inverted Roughness maps. Use this map with an Invert node in the Roughness slot of the Principled BSDF.
I hope this helps.


Model looks bulky with smooth shader, don't want to subdivide further, would a normal map made from a high poly version make it look better? I am still quite unsure about a lot of things, the model I work on will be imported into the unreal engine so it shouldn't have too many faces/tris, but I encounter a problem here...

This is how my model looks flat shaded, it has been subdivided two times at this point and has around 6000 faces.

But now, when I select smooth shading, the whole model looks bulky, I considered subdividing it once more which would make it look smooth but then it would be up at 52000 tris, which I think would be too much.

When I bake a normal map off a high poly version of the mesh and apply it, would it hide the bulkyness?  Or is there a way to only subdivide certain parts of the mesh to avoid senseless masses of faces on toes and tail?

A normal map will definitely do what you are thinking of, however once you add a texture to your object you will not notice the 'bulkiness' of your object nearly as much. In fact, I would suggest optimizing your model more by removing some vertices, as adding a texture and normal map will make a lot of them unnecessary. One thing to keep in mind is that triangles are not a bad thing in game models, so use that to your advantage when adding or removing vertices.

When adding a normal map, keep in mind that you can add more details such as creases in the skin, skin texture, scales, etc. For the high poly mesh you will bake the normals from I would suggest using a multiresolution modifier instead of a subsurf and sculpting in as many details as you can before baking.


Render different frames How can I create a automatic render setup, for example, I need to render with the same settings to an mp4, from the 001 to 10 one file, than from the 011 to 021 another and a few others.

Here's a quick script to render out separate frame ranges of the animation. The script assumes you've set an output folder correctly as well as setting the video format settings as you want them.

import bpy
import os

frameList = [
    [1,50],
    [51,100],
    [101,150]
    ]

scn = bpy.context.scene

for fr in frameList:

    scn.frame_start = int(fr[0])
    scn.frame_end = int(fr[1])
    bpy.ops.render.render(animation=True)


How to change the axis of rotation Like seen in the picture, i want this minigun rotating and want to animate  it, but i dont know how to do this while keeping the y rotation constant.

If I understand correctly, here is what you can do:

Create you gun, keep it aligned on the global Z axis, animate a 180° rotation on the global Z axis.
shiftE on the Dopesheet to create a Linear Extrapolation.
Create an empty on its bottom.
Parent the gun to the empty.
Tilt the empty the way you want (15° if the angle between the 2 guns is 30°).
Now your gun rotates on the empty angle.
Duplicate the gun + the empty to create you second gun, tilt them 30° in Front Ortho view (or 180° on the Z axis). You now have your two guns.


Would it be possible to write an addon that highlights all modified settings? Most if not all settings have an item Reset to Default Value in the context menu.
This would be helpful when tracking down issues when someone played a bit to much with the settings.

Could an addon be created to highlight changed settings, or would this require to change implementation of blender to adjust all hardcoded default values to the values of the default scene?

Can an hook-method be defined to intercept calls to draw an UI control so that the changed settings could be highlighted in one piece of code?

Apart from that there currently is a bug regarding the default settings.

Unlike a "GUI" toolkit that gives access to the objects drawing the items on screen, in blender we don't really have control of the display - we only say "show a property here", blender then decides how it is displayed.

The colour used to draw each item comes from the theme - keyed, driven or default colour is chosen within the c code that draws the items.


Moving armature using as pivot a bone from other armature Is it possible to move a bone from one armature using the movement of other bone in another armature?

This is very much possible and quite easy.
Just add a Copy Location or Copy Rotation or Copy Scale or Copy Transform constraint (depends on how you want the bone to move) on the bone you want to be moved, you must be in pose mode for this. Go into the bone constraints tab or press shift+alt+c with the bone selected and choose the constraint afterwards.
In the Constraint settings choose the armature of the moving bone and the moving bone as target. Depending on where you want the moved bone to be, you should set the head/tail value of the constraint.
Now you can move the moving bone and the moved bone will follow.

Btw this might be a little bit misleading because I called the armatures bone. :)


How can I draw an alpha-channel, or clone one texture over the other in Texture Paint mode in Cycles? I'm looking for the texturing method in Cycles, similar to the texturing method in Blender Internal Render.

I have two textures, that have been Project from View-ed from two different angles. Now I want to erase some parts of these textures to make one texture seamlessly merged with another.

How can I draw an alpha-channel for the textures in Blender (in Cycles, using Texture Paint mode) or how can I clone one texture over the other one (in Cycles)?

This is not cycles or Blender internal dependant, this is just texture paint mode. So the principle is the same. You can clone the same way.

You can also "erase alpha" (blend method in the "texture paint mode" tools panel). But this will not "unclone" the original textures.

If you want to erase part of one texture, clone again the other one instead of erasing using alpha.


Wireframe shading issue in Blender 2.91 viewer I'm new to Blender and I've been trying to get the wireframe shading to work since 2 days and been having this issue shown in the image below:

Whenever I try to go into wireframe shading mode it makes the object transparent.
Things I have tried:

Uninstalling and reinstalling Blender.
Loading factory settings.
Turning on wireframe in overlay drop-down.
Selecting wireframe in viewport display under object properties.

Any help regarding this issue is appreciated.

Go to the viewport shading options while in wireframe and check x-ray. You probably have it disabled.


Texture tab seemingly missing in Blender 2.8 As I asked in my previous question, I cannot find the texture tab on my object settings panel in Blender 2.82.
However, I have found that this is not universal, as other people seem to be able to access it from the position that I had expected it to be in.
Here is a screenshot of the expected interface:

Here is a screenshot of my interface:

As you can see in the images, the texture tab is not present in my interface.  How can I access these settings or make this tab appear in my interface?

Please do not mark this question as a duplicate unless this question was answered for Blender 2.8.  I have a lot of difficulty navigating the new interface, and unless you can explain how another answer is applicable I will not be able to make use of it.

This entire saga was stupid, but I'm posting the answer because I don't want anyone similarly confused to be lost if they try to google it.

I was in edit mode, and as of Blender 1.79 and later you can't add a texture in edit mode.  This is a new and honestly pointless restriction, but if you go into object mode it should be accessible.


How to create perpendicular edges along one direction? I made path in Inkscape, import it to Blender and make it 3d.  Now I need to bend it in one direction but wires connected to non-perpendicular points. Please look at image to understant what i mean.

You can achieve that by creating a plane and subdividing it using Ctrl + R into parallel equally spaced edges, then using Knife Project tool, you can project your object to the plane, all you need to do later is to remove all the faces that fall outside the projected faces.
But looking at your file, you need first to turn your object into a mesh using Alt+C and choose Mesh from curve, then in edit mode, select all, press X and choose Limited Disolve, in order to reduce the vertices in your object.
Here's your edited file:


Particle system floating in the air My particle system is partly above the mesh and not distributed all over the mesh.

Particles system

Particle system settings top-bottom

Emitters' origins and location

How do I prevent the particles from going off the surface, but stay on the top of the mesh?

p.s: I weight painted the parts of the surface I want to emit my objects and added this vertex group to the density of the particle system

*EDIT: By setting the Normal value to 0 helps not so much, though it does make it slightly better with distribution.But the majority is still not in the right place.

**EDIT: It Actually seems like the children are the objects floating above and below, when I disable children all the objects are in the right place

Is there anything wrong with my children properties, that is causing them to be displaced above and below the object?

I had a similar issue and found the origin point of the objects in my "DupliGroup" were not centered on the geometry, causing each object to move away from the Emitter surface. Fixing the origin points fixed the issue.