It is an eyelash question when importing SFM(Source Filmmaker) characters into Blender The eyelash part was strangely applied when importing the SFM(Source Filmmaker) character into Blender. The eyelash texture is supposed to be included in "face.png". I have not been able to advance for a week due to lack of knowledge. I searched SFM into Blender related courses multiple times on Google and YouTube. I've seen a lot of related videos, but I can not find a solution.

Compressed file I worked on (Blender, texture, etc) link:

https://www.dropbox.com/s/1r3c4iv2d8f2bfu/2b.zip?dl=0

Original SFM character source address:

https://sfmlab.com/item/2087/

You should use the "Hair1" texture and this node set.


Having some trouble with UV mapping distortion Basically I'm working on a model of window/window frame and I'm lost when it comes to the uv mapping. It's essentially crown molding. The flat parts map fine but any kind of curve is distorted. I've tried adjusting the individual vertices of the map by hand but even though it does look more correct there is still some distortion. I feel like there's something obvious that I'm not doing, maybe something related to my seams.

Hey I think you have multiple choices.
You could use follow active quads on the "troublesome" areas of the UV only.
https://www.youtube.com/watch?v=ScRIlkmNTfw
essentially you unwrap a single quad which is a square then select all the additional parts of the UV that are connected to this quad you want to unwrap and press unwrap -> follow active quads. This may "square off" the areas you think are uneven.
Alternatively you could add additional seam cut to cut you square into a line down, by adding a new seem cut down one of the corner edges.
I hope this helps.


Cannot delete paint brush nor texture in texture slots I accidentally duplicated the default paint brush multiple times while exploring the tool panel, and now I cannot get rid of them. I'm using MAC, latest version of Blender, I tried shift+ X +left click/right click, or control + X + left click/right click, but it doesn't work. I searched for shortcuts in preference key map and no keys are connected to such actions, and I cannot find the place in the tool panel to delete it without shortcut. Also I cannot find my brush folder( or any other presets folder) in file finder, help, the situation is desperate...

First, Shift click on the X button:

Then, in the Outliner, select Display Mode > Orphan Data, press the Purge button or select the brush with a 0 and right click > Delete.

There might be another way but I don't know it...


How can I know the speed of an object inside a loop? I want to affect some shapekeys based on the speed on the Z axis of a set of objects that are being moved inside a loop.

This has been my approach...

But something is failing

You need two things to make the Frame Offset work in a Object Transforms Input node:

The Animation of the object must be created using normal keyframes (fcurves)
You have to disable "Use Current Transforms" in the advanced node Settings.

For future releases of AN it is already implemented that the Frame socket will only be available when Use Current Transforms is disabled.

If your animation is not made with keyframes but with this addon you will need to calculate the position of the object twice in each execution (for the current frame and the frame before). Then you have to calculate the distance between both points like you did in your example. You should create a subprogram (a Group in this case) in order to minimize the amount of nodes needed.


How can I make an indent on a edge loop? What I'm imagining is essentially like taking an edge loop and pushing it inwards, making an indent. I've tried extruding edge loops down, but that does nothing. I've also tried putting two edge loops on either side of the one I want to indent, and then moving the desired edge loop, but that really messes up the topology. Is there an easier way to do it?

On a subdivided cube example you can see how a ring cut on the right side of the top face can add unnecessary faces all the way around.
Alternatively you can localise quads and save on face count in the other two cuts.
The other cut on the top face allows a flat base to the cut.
The cut on the side face of the cube creates an angled finish, adding less faces overall.


Bumpy node set up for metallic noisy texture I'm trying to emulate the texture of the metal-steel taps, which seem to have a fair bit of noise.
I was following a tutorial and the instructor added a Noise texture in the displacement, But I know from various tutorials I'm following regarding nodes, that you have to plug in the right colour nodes. So is this Node set up correct? Or how can I have a better result?
Thank you.

You're very close. Generally if you're adding displacement information from a B&W texture, run it through the height input of a Displacement Node first before connecting it. You can go one further by plugging the texture into the height of a bump node as well, to take advantage of some of the normal information. However, by default, the strength of the Bump Node (1.0) is too high for many things. I reduced it, as well as the scale of the displacement - otherwise it's too "noisy" especially with the values you are using for the noise textures. See below:


Rendering with a Luminous Outline on Transparent Background I am trying to achieve such effect on transparent background:
What I currently have:
Is it possible to get something like this rendered in blender? Or should I use Gimp to manually add my outline?

Since your render is black&white you can use this:

Set object material with Emission shader.
In Properties Editor > Render Tab > Film > enable Transparent

Eevee
—
Enable Properties Editor > Render Properties > Bloom.
To control blooming you can do it here or in compositor with RGB Curve node (or ColorRamp) to make effect stronger or lighter.

Cycles
—
In compositor add Filter > Glare node type Ghosts try with Treshold = 0

Output format - I had to switch into OpenEXR file format to keep glowing, glaring, blooming what ever to call this in saved render.

Important

There is an issue with inconsistency of viewport render vs Render (F12) for years.
But also viewport is not showing the glowing here, but the only one thing that you have to do is to plug output also into Alpha socket. Or add Set Alpha node for the same effect.

Output format - PNG (RGBA) is OK here

For full colour render combined with glow or emissive materials (like fire) on transparent background see https://blender.stackexchange.com/a/164940/2214

For effect of coloured glow (like in your reference image) add ColorRamp node.


Can a Vertex Group be saved as a separate .blend File? I've created a model using makehuman after editing the hair mesh and recoloring the texture I would like to save this part of the model to be able to reuse it with other models.

Can a part of a mesh (including an armature and material) be saved in another .blend file for importing later?

I tried to select the hair mesh and invert selection to delete everything else, but there are way too many items in the outline view.

EDIT:

The effect after Ctrl, delete all, C Ctrl-V is the same as when append or link will be used to load the hair mesh, unwanted custom shapes and other stuff comes into the new scene.

Append .blend/Mesh/test_clothHairLongMesh2 has no effect at all and append .blend/Object/test_clothHairLongMesh2 loads all the stuff described above.

The best way I can think of is, for safety duplicate
the original object first as you suggested,
then remove the other parts of the mesh:

Select the part of the mesh to keep.
Press CTRL + I to Invert Selection.
Press X and Vertices to delete excess parts.

Or (not so good solution) you go back to object mode,
select the object if it is not already the only selection,
and export (for example as collada), and check only selected.
Later you can import the exported mesh.

Or you may give a nice name, like APPEND-WITH-ME, and you can
simply append your other blend file and select that object
(not the mesh, the object). Every material, particles,
etc will be also loaded into the new blend file.


How does fire and smoke simulation work? I'd really like to get a basic idea of what happens under the hood of the fire/smoke simulation. It doesn't have to be detailed or specific to blender, just an overview of what actually happens.

Voxels are used for the underlying physics simulation of gas behavior. I can sort of imagine what happens when we're just simulating smoke by itself - I guess smoke is emitted with certain properties from somewhere with some starting velocity and other properties, and we try to solve the differential equation that describes this physical system. But what does changing Smoke to Smoke+Fire in the flow object do?

Is the physical event simulated differently when there is flame? Do the flame and smoke physical simulations interact/effect each other, or they done independently? Maybe the flame texture is just extracted from the simulation based on some quality of the voxel in question (its temperature/other quality).

What is the default behavior from the flow object when we're using Smoke+Flame? Does it set some sort of "initial temperature" very high or something?

When the 3d textures are saved, and it comes to rendering the process, I suppose both are just composited together? (I suppose this isn't really related to smoke/flame, but just volumetric rendering together, but I thought I'd ask it for completeness).

Quick and watered down explanation. For Blender's simulator NOT MANATFLOW. Much of this can be applied to Mantflow among other parts. Volumetric are quite complicated in how they work so it won't be included.

Assuming your using Quick smoke settings(This is to avoid the thousands of different settings)

D = Divisions = 64

Divisions is the amount of divisions each side is divided into.Each side is equivalent one side may be 2 units long and will have D divisions a side that is  1 unit long on the (Should only be one domain) object will have the equivalent amount or (D / 2 because it's half the size).

Time scale is the speed how fast it will go the lower the slower.

Border collisions are self explanatory.

Empty space is a voxel is under this value it's considered empty.

Density how dense the smoke is the higher the value the faster it will spread out.

Temperature difference the difference between the smoke's temperature and the "air" around it Higher the value the faster it will go up (I don't think I need to explain why).

Voracity(Not the correct spelling) the amount of turbulence in the smoke and "air" (I don't recommend using) .

Dissolve this feature will determine how long the smoke takes to dissolve.

Adaptive domain will change how large the domain is therefore increasing and/or decreasing the amount needed to calculate use this (Adaptive domain in Mantaflow is bugged don't use it in that branch )

Cache will store the data that has been simulated (Search up a tutorial on rigid bodies it will explain the exact same think just different simulations)

Field weights are basically what is affecting affecting it.

Flames (I don't know how to explain but I'll try)

When simulating flame and smoke they are done  mostly separate from each other but they interact through the proprieties like temp difference,density among others
The main ones are Divisions,Temperature difference,Density,and Field weights.
Divisions are how much will be considered flames
Temperature will determine how long the flames stay before they emit smoke.
Field weights I don't think I need to explain.
Yes flames are taken from the result of the simulation through distance Temp and the other Major factors listed above.
No the initial temperature isn't set high for Fire + Smoke it will basically do what is stated above.

Collections what you put in flow, anything that has smoke on it in that collection will emit but only from that one. What you put in to collision same thing but it will collide.

High Resolution Nothing I need to explain but noise method which is the differences in how noise is generated ( I have no Idea how it works).


How to create alpha / height maps in Blender for use in e. g. Substance Painter? Question

Is there an efficient way to create images (height maps) in Blender so that they can be used as alphas in other applications like Substance Painter? If so, what's the proper way to do it? Preferrably without having to uv-unwrap.

What I tried

I tried various settings and came up with this, but it doesn't seem to be right for everything and I hope there's a more efficient way. Here are the changes I did on the default blend file:

* delete lamp

* camera

    object
        transform
            reset location / rotation / scale, then set location z to 2
        data
            lens
                orthographic
            orthographic
                scale: 2

* render

    resolution
        x: 2048 px
        y: 2048 px
        percentage scale: 100%

    shading
        alpha mode
            transparent

* render layer

    solid: true, all else: false (especially sky or else you'd get some grey background)

* scene

    color management
        display device: none

* object

    set scale to 0.5 for x/y/z

    material
        shading
            shadeless: true

    texture
        type: blend
        colors
            ramp: true
            color stop: set alpha from 0 to 1
        blend
            progression: linear or quadratic, depends on the effect you want
            vertical: true

    mapping
        coordinates: generated
        mapping
            X: Z
            Y: Z
            Z: Z

* select object

    apply -> rotation

And then render the image and save it.

Here are the settings as graphics:

Camera:

Scene:

Object:

Using a cylinder as object:

And the final alpha / height map:

I finally found a good, working and as it turns out easy solution to this problem. Credits go to Petr Utinek, he made a tutorial video here.

The steps (I modified them a bit):

Create a mesh, e. g. a gear and switch to Top Ortho view

Select the camera, hit space, search "Align Camera to View" and apply it
Select Render tab, change resolution to 2048x2048 and 100%

Select Data, Orthographic and adjust the Orhtographic Scale

Select the Mesh and assign a Material to it
Select Node Editor, Compositing and Use Nodes
Add a Normalize Node and an Invert Node and link the nodes like this:

add a Plane below the Mesh

Render the scene and save the image

Or to follow the initial question: Easy to re-use by simply e. g. deleting the gear and replacing it with a cylinder

which will result in this


Some edges are not smoothing in Blender I imported this geometry from Zbrush. As you can see the other edges around this area were smooth-able, but I could not get the edges connected to this cone shaped ridge to smooth. The first image is a screen grab of the geometry edges. The second image shows what the geometry looks like. I tried everything that normally works to get them to smooth. Clear Sharp. Shading Smooth. Recalculate Normals. But they are not smoothing. What could cause this?

In the end I retopologised the model and it was much cleaner. It was for the best because the result had half the number of polygons. Thanks for the input.

To add more information the topology now looks like this. While it doesn't flow like it used to, it smooths nicely and that is what's important for this.


UV Vertex using Python? Well, I'm trying to change the values of UV Vertex (see the picture):

When I change the values, selected part of UV (orange selection) will move.

How I can do this change USING PYTHON?

My code untill now...

import bpy
import bmesh

(...)

for area in bpy.context.screen.areas:
    area.type == 'VIEW_3D'
bpy.ops.object.editmode_toggle()

#+ grab the current area
original_area = 'IMAGE_EDITOR'

scene = bpy.context.scene
for count, ob in enumerate(bpy.context.selected_objects):
    if ob.type == 'MESH':
        scene.objects.active = ob
        #+ switch to the image editor to perform transforms etc
        for area in bpy.context.screen.areas:
            area.type == 'IMAGE_EDITOR'
            bpy.context.area.type = 'IMAGE_EDITOR'
            bpy.ops.object.mode_set(mode='EDIT', toggle=False)

            bpy.ops.mesh.reveal()
            bpy.ops.mesh.select_all(action='SELECT')
            #+ select the uvs
            bpy.ops.uv.select_all(action='SELECT')

            bpy.ops.transform.translate(value=(0.125, 0, 0), constraint_axis=(True, False, False))

            #+ return to the original mode where the script was run
            for area in bpy.context.screen.areas:
                area.type == 'IMAGE_EDITOR'
            bpy.ops.object.mode_set(mode='OBJECT', toggle=False)

Still moving the object.
Tks

You access the UV coords by looping over face loops.

import bpy
import bmesh

#retrieve mesh in object mode
if bpy.context.active_object.mode!='OBJECT'
    bpy.ops.object.mode_set(mode='OBJECT')
mesh = bpy.context.object.data
bm = bmesh.new()
bm.from_mesh(mesh)
uv_layer = bm.loops.layers.uv.active

for face in bm.faces:
    for vert in face.loops:
        # here are the UV coords
        print(vert[uv_layer].uv)

#write the mesh back if you changed the uvs
bm.to_mesh(mesh)


Importing a existing model i have to delete some vertex groups. not the content but only the groups- need the later part of the script:
import bpy
context = bpy.context

import bpy

name_list = [
    # old name - new name
['Camo','Camo'],
['Corr','Corr'],
['Eyes','Eyes'],
['Head','head'],
['head_injury','head_injury'],
['Jaw_LM','Jaw_LM'],
['Jaw_RM','Jaw_RM'],
['Lip_LC','Lip_LC'],
['Lip_LwLF','Lip_LwLF'],
['Lip_LwRF','Lip_LwRF'],
['Lip_RC','Lip_RC'],
['Nose_L','Nose_L'],
['Nose_R','Nose_R'],
['Zig_LT','Zig_LT'],
['Zig_RT','Zig_RT'],
]

ob = context.object

for n in name_list:
    if n[0] in ob:
        ob.vertex_groups.remove(ob.pop())

I think this is what you're asking for, it deletes all the groups whose name appears in the first column of your list. I'm not sure why you decided to go with two columns.
import bpy
C = bpy.context

import bpy

name_list = [
    # old name - new name
['Camo','Camo'],
['Corr','Corr'],
['Eyes','Eyes'],
['Head','head'],
['head_injury','head_injury'],
['Jaw_LM','Jaw_LM'],
['Jaw_RM','Jaw_RM'],
['Lip_LC','Lip_LC'],
['Lip_LwLF','Lip_LwLF'],
['Lip_LwRF','Lip_LwRF'],
['Lip_RC','Lip_RC'],
['Nose_L','Nose_L'],
['Nose_R','Nose_R'],
['Zig_LT','Zig_LT'],
['Zig_RT','Zig_RT'],
]

ob =  C.active_object

for n in name_list:
    if n[0] in ob.vertex_groups:
        grp=ob.vertex_groups[n[0]]
        print(grp.name)
        ob.vertex_groups.remove(grp)


Update StringProperty on object selection change? I have a StringProperty that I want to show the name of the selected object. Currently, I update the property by invoking an operator manually from a panel. However, I want the property to be updated automatically every time the selected object in the viewport changes.

What is the best way to achieve this?

I have considered running a modal operator, which checks the selection change all the time. However, that does not seem like an optimal solution. I have also tried playing around with handlers (bpy.app.handlers.scene_update_post as mentioned here), but it seems to have the same result as a modal operator (constant checking in infinite loop). Is it possible to trigger the update only when the selection changes by some callback? Or alternatively, when the right mouse button is clicked (assuming selection only happens this way)?

Edit, for clarification:

I specifically need a StringProperty to be updated, and not just a regular text label. This is because the StringProperty (and other properties) will display some specific information about the selected object, which the user then can change to change the selected object.

My current code, where the StringProperty is updated manually by click:

import bpy

# Define string property.
class MyGroup(bpy.types.PropertyGroup):
    bpy.types.Scene.my_string = bpy.props.StringProperty(name='my_string')

# Define operator to change string property.
last_selection = []
class UpdateStringOperator(bpy.types.Operator):
    bl_idname = "update.mystring"
    bl_label = ""
    def invoke(self, context, event):
        global last_selection
        if bpy.context.selected_objects != last_selection:
            last_selection = bpy.context.selected_objects
            bpy.context.scene.my_string = bpy.context.selected_objects[0].name
        return {'FINISHED'}

# Draw property and operator.
class MyPanel(bpy.types.Panel):
    ...
    def draw(self, context):
        layout = self.layout
        layout.row().prop(context.scene, "my_string")
        layout.row().operator("update.mystring", text="Update")

# Register.
def register():
    bpy.utils.register_module(__name__)
def unregister():
    bpy.utils.unregister_module(__name__)
if __name__ == "__main__":
    register()

This is the full script for selection and update, where emped the update function in our custom selection tool, the last function replaces the shortcuts of the old select with this operator so no damage is done and when unregistering the addon the shortcuts are reset to the previous state. run the script and open the Tools panel ( T in viewport ) and select an objectto see the string update

import bpy
from bpy.props import BoolProperty, IntVectorProperty

class MyGroup(bpy.types.PropertyGroup):
    bpy.types.Scene.my_string = bpy.props.StringProperty(name='my_string')

# Define operator to change string property.
last_selection = []

# the selection operator with the update func :
class SelectionOperator(bpy.types.Operator):
    """ Costum selection
    """
    bl_idname = "view3d.select_costum"
    bl_label = "costum selection"

    extend = BoolProperty(default = False)
    deselect = BoolProperty(default = False)
    toggle = BoolProperty(default = False)
    center = BoolProperty(default = False)
    enumerate = BoolProperty(default = False)
    object = BoolProperty(default = False)
    location = IntVectorProperty(default = (0,0),subtype ='XYZ', size = 2)

    def execute(self, context):
        #select the object
        bpy.ops.view3d.select(extend=self.extend, deselect=self.deselect, toggle=self.toggle, center=self.center, enumerate=self.enumerate, object=self.object, location=(self.location[0] , self.location[1] ))
        #change the property
        global last_selection
        if bpy.context.selected_objects != last_selection:
               last_selection = bpy.context.selected_objects
               bpy.context.scene.my_string = bpy.context.selected_objects[0].name

        return {'FINISHED'}

    def invoke(self, context, event):
        if context.space_data.type == 'VIEW_3D':
            self.location[0] = event.mouse_region_x
            self.location[1]  = event.mouse_region_y
            return self.execute(context)
        else:
                self.report({'WARNING'}, "Active space must be a View3d")
                return {'CANCELLED'}

def replace_shortkey( old_op_name, new_op_name) :

        wm = bpy.context.window_manager
        keyconfig = wm.keyconfigs.active
        keymap = keyconfig.keymaps['3D View']
        items = keymap.keymap_items

        item = items.get(old_op_name, None)
        while item :

                props = item.properties

                extend    = props.extend.real
                deselect  = props.deselect.real
                toggle    = props.toggle.real
                center    = props.center.real
                enumerate = props.enumerate.real
                object    = props.object.real

                item.idname = new_op_name

                props.extend    = extend
                props.deselect  = deselect
                props.toggle    = toggle
                props.center    = center
                props.enumerate = enumerate
                props.object    = object

                item = items.get( old_op_name, None)

# Draw property and operator.
class HelloWorldPanel(bpy.types.Panel):
    """    """
    bl_label = "active object Panel"
    bl_idname = "OBJECT_PT_my_panel"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'

    def draw(self, context):
        layout = self.layout
        layout.row().prop(context.scene, "my_string")

# Register.
def register():
    bpy.utils.register_module(__name__)
    replace_shortkey( 'view3d.select', SelectionOperator.bl_idname )

def unregister():
    replace_shortkey(SelectionOperator.bl_idname, 'view3d.select')
    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()


Mirror selection not working properly I've created a dragon model and now I'm trying to unwrap my model so I could later on texture it. I've wanted to simplify the process of creating seams by mirroring selection. For example, I have teeth and I don' t want to create seams for each tooth separately.

So here's my question to you:
Why does Mirror Selection fail all the time I try to mirror the selected vertices on my dragon model? I know that Mirror Selection works only in Vertex Mode.
I think the problem is somehow associated with the matter that I haven' t applied the rotation or scale of my model (even though I did lately) or with the fact my model wasn't originally on x-axis as I started creating this model really long time ago and I know I could have done many things differently.

Here's an image to describe my problem:

Try those two things:

Check if your pivot point is set properly. It has to be in the middle of your x-achis. To set your pivot hit SHIFT+CTRL+ALT+C (or hit SPACE and type "set origin"). Then choose "Origin to Geometry" or "Origin to Center of Mass".

Now your mirror selection should work correctly. If not, also do point 2:

Delete one half of your mesh. add a mirror modifier. mark your seems. Apply your mirror.


How to map an Image on a plane manually? I'm trying to put an image onto a plane. I've used the Import Image as Plane add-on, but I'd like to know how to do it myself. I tried setting my image as the texture for the plane, but it appeared stretched. I think that I need to adjust some mapping setting. Thanks!

Open your image in the UV/Image editor, Press N to open the side panel. In the image section you can see the image's dimensions in pixels.

Add a plane and scale it so that it has the same proportions of your image.

Int this example the image is 1728 x 2592 pixels, so I scaled the plane to

1.728 x 2.592

At this point press Ctrl+A to apply the scale. (for more on this read: Why is it important to apply transformation to an objects data?)

Then go to top view. Enter edit mode, press U to unwrap the UVs and select "Project From View (bounds)".

That will create a UV map that matches with the image used.

Then, just create a material that uses an image texture, and select the image you are using as a source, using UV as the mapping coordinates.

For Cycles:

For Blender Internal:

After doing all of this, you might want to save all of the trouble and just use the "add images as planes" addon, that does all of this for you atomatically, but at least you know what happens behind the scenes...


Keying node removing everything but the green screen I'm just learning how to green screen. I started in Movie Clip Editor, opened a clip, added a Mask, and then switched to the Compositing tab, and added the nodes shown in the pictures.

This was all according to a tutorial. And in the tutorial the green screen disappeared. However, for me only the green screen remains. Not sure what I'm doing wrong?


How to use transparent texture in the GLSL shading mode in BGE? I am using Blender 2.74.  Is it possible to use transparent texture in the GLSL shading mode in BGE?

I can get it working in the multitexture mode thought. But no matter how I try, I can't get it working in the GLSL shading mode.  Can anyone please explain how to get it working if it is at all possible.

Thanks for any insight.

First in Material tab enable Z Transparency and set Alpha to zero.

Then in the Material Texture you need to enable Alpha in Influence section.


How can I fill a "spinned/screwed curve"? I am trying to make a cross-section of an object with a rotational symmetry.
I thought using a curve for the cross-section with the screw modifier would be a better way to do that than using boolean modifiers on a mesh.
But if I use a filled 2D curve and the screw modifier, the fill gets messed up as in the attached picture (Objects A and D).
If I use a 3D curve, there are just no caps (Object B).
Object C is what I would like to achieve. I made it by converting the bezier curve to a mesh, creating a face and then using extrude->spin in edit mode.
But then I loose the flexibility of editing the cross-section.
How can I achieve the same while keeping the cross-section a curve?

Blender example file:

I found one possible solution by simply using three linked curves, one for the solid and two for the caps. This can be further improved for flexibility by adding drivers.
See attached blender file and the included README:

In it, you can change the cross-section angle by changing the X rotation angle of "BezierCurveDriver".
Changing the material or editing the bezier curve will affect the extruded solid and the two caps.
How to do it:

Add curve

Make it 2D, cyclic and filled:

Properties->object data properties->Shape->2D
Properties->object data properties->Shape->Fill Mode->Both
Properties->object data properties->Active spline->Cyclic: check box

Optional: Now you may want to make your curve flat along the planned rotation axis (X for instance), by setting the some or all of the handle types to "free" and aligning some of the control points on that axis:

Go into edit mode (press tab with the curve selected with the mouse in the 3D viewport)
Select desired nodes
3D Viewport->Control points->Set handle type->Free (or press V and select "free")
Position control points along X axis as desired (snapping, scale YZ zero, enter Local/Global coordinates, etc...)

Make sure you are in Object mode, then duplicate the curve twice with linked data by pressing Alt-D (or 3D viewport->Object->Duplicate Linked):

One will form the solid by using a screw modifier: "BezierCurveWithModifier"
One will form the bottom cap: "BezierCurveBottomCap"
One will form the top cap and drive the angle of the screw modifier: "BezierCurveDriver"

Add a screw modifier to one of them ("BezierCurveWithModifier" in this example):

Properties->Modifier properties->Add modifier->Screw

Right-click on the Angle property of the modifier and select "Add driver". This will open up a driver editor window.

In the driver editor window:

Choose "BezierCurveDriver" as the Object.
Choose "X rotation" as the type.
Set the expression to "var".

Now you should be able to "extrude" the curve nicely to any angle by changing the X rotation angle of "BezierCurveDriver":

Properties->Object Properties->Transform->Rotation X

Changing the material or editing the shape of any of the three linked curves will affect the extruded solid and the two caps.


Default mirror when resizing Every time I resize an object it resizes on both sides so mirrored resizing and I can't find why in the settings. This is a nightmare to deal with since I can't resize normally and I am forced to resize by moving the face which doesn't work for certain modifiers .

If I followed your question correctly: In edit mode, the default scale method is "Individual Elements" which means the scale occurs centered on the selected, connected faces. In the following example, I cut a Suzanne in half and added a mirror modifier:
 You can see her eyeballs popped out and she gets strangely wide. I assume this is what your question is about... To "fix" this, set the 3D cursor to the center of the object (in this example, I left it at the default world origin) and set the scale method to "3D Cursor". This makes scale behave more like it intuitively should
I didn't highlight the thing that changed... Look in the top center next to the word "Global"


Creating A Thatched/Rattan Material? Trying to make a thatched material (for my lamp shade). Like a rattan type look. Can't figure this one out for the life of me. Here's an example: http://thumbs.dreamstime.com/t/rattan-texture-5839027.jpg

How would you make something similar?

Thanks!

One way to get this would be:

Add a plane, in Edit Mode subdivide W
Poke Alt-P

This should look like:

In top view Numpad-7 rotate 45° R 4 5
Scale along X-Axis S X
Select one of the new (poked) vertices and select Amount of connecting edges from the Shift-G popup
Move the selected vertices upward G Z

In Object Mode add a Subdivision Surface* modifier with subdivisions set to 3:

Bake the normals of the resulting mesh to an unwraped plane and use the image as normal map.


How do I subdivide a cube via scripting? I have an object named "Cube" selected, and I set the mode to EDIT via

cube = bpy.data.objects.get('Cube')
cube.select=True
bpy.ops.object.mode_set(mode='EDIT')

I want to subdivide each edge into 3 parts. In the editor, I can click Tools -> Subdivide, and then adjust the number of cuts below in a menu.

I cannot find any methods of the bmesh object class to do this, though.

Using BMesh.subdivide_edges(...)

Can use BMesh.subdivide_edges(...) with 3 cuts, and grid fill set to true.

import bpy
import bmesh
context = bpy.context
obj = context.edit_object
me = obj.data
bm = bmesh.from_edit_mesh(me)
bmesh.ops.subdivide_edges(bm,
        edges=bm.edges,
        use_grid_fill=True,
        cuts=3)
me.update()

There is an example in my answer here demonstrating how to use bmesh.ops.subdivide with a different number of cuts on each dimension.


Coordinates of non-animated object in frames with python [v.2.77] I want to create a few animations of a flying ball with initial velocity and get its collision point with a wall. Therefore I created a sphere and 2 keyframes (using animated option in rigid body). At the second keyframe I turned off the animated option to let the physic engine take over. Everything works fine until now. For my purposes, however, I need to track the coordinates of the sphere to get the collision point with the wall.
During the animated part, I can use

obj.location

For the second part I found out that

ob = bpy.data.objects['Sphere']
bpy.context.scene.frame_current = some_number
bpy.context.scene.update()
print(ob.matrix_world.to_translation())

works. However, as soon as I want to loop over all frames:

for i in range(1,max_frames):
    bpy.context.scene.frame_current = i
    bpy.context.scene.update()
    print(ob.matrix_world.to_translation())

it is not working anymore, e.g. it always prints the starting position. It seems that update() does not update the position correctly, I found the "set_frame" method in some older posts but it seems not to exist anymore in v2.77. Any suggestions how I could solve this problem?

Replace

bpy.context.scene.frame_current = i
bpy.context.scene.update()

with

bpy.context.scene.frame_set(i)

scene.frame_current = x might appear to work as expected in the python console, but in scripts like in you q, which demonstrates why not to use it, as its value not used in the scripts execution.


BGE: What objects are Game Properties? This and/or how to access and change them in a script.

If you use the .getPropertyNames()-function of an object it only provides you with a list of the names of the properties. How can one actually change them?

Also you could use a property actuator with the python controller but the property and python controller are on 2 different objects.
So it is about changing game properties of another object.

Use the object like a dictionary to access and change properties

# Access
print (object['propertyname'])

# Change
object['propertyname'] = 4


How can font-ids of internal fonts be retrieved? An example demonstrates the use of the OpenGL Wrapper (bgl) to print text, it loads a font from an external file.

How can a font id of an internaly available font queried?

blf.position(font_id, (width * 0.2), (height * 0.3), 0)
blf.size(font_id, 50, 72)
blf.draw(font_id, "Hello World")

There is no API to query internal fonts, the documentation says that 0 as font-id can be used for the default font.


Images that I mapped to an object won't show up when I render the image I'm using blender game engine and I noticed recently that when I have any object, let's use a plane for this example and I map an image to it using the UV image editor, it won't show up when I play the game. This is also when I just render an image. I set the view mode to textured and it comes up but when I render it, it doesn't, can anyone help?

An object that is UV-unwrapped will show the UV-mapped image in texture mode in a 3d-view. If however the object hasn't had a material and texture assigned to it, the image or texture wont be rendered, as seen in first image.

Add a material to the object, then a texture to the material. Choose "image or movie" and open the image. Set Mapping to UV and choose the UV-map.


Identify root collection? I'm not sure if this type of question belongs here, but I'm trying to write a simple add-on that exports game assets to FBX files based on collections. Each collection becomes a separate file. But an issue is that I don't want to process the root collection.

Now I am very new to python (started yesterday), and have not yet figured out how to iterate Blender's collections, so this may not be necessary. But I have a feeling the iteration will be linear (not hierarchy based). So I'm wondering if there is a way to identify the primary scene root collection of a scene? Would I just compare its name to "Scene Collection"? This seems like a bad way of handling it, but that's the best I have at the moment. On the other hand, if the very first collection of Blender's collection list is always the root, that might make it easier.

In case I find any Blender python developers willing to help, I had a couple other questions regarding Blender and python in general. FYI, I come from a decently strong C++ background with absolutely no python experience..

Does python use spacing, tabs, and end of lines as part of its syntax? Really strange how this works. So for example, how does the python interpreter know where a for loop body starts and ends? Just based on spacing and indentation?
Several add-ons appear to be assigning their own made-up variables to blender object types. Such as bpy.types.Scene.myVariable = make_pointer(MyObject) or bpy.types.Object.myBool = BoolProperty(..).. Does a simple line such as this create a new variable in the class type that the addon can use as custom data? If so, how do they not conflict with each other?
scene = bpy.context.scene - I'm assuming this type of code does not copy the entire scene to a new instance, but rather copies the variable that represents a reference to the scene? Something like that?
if obj.name in scene.objects: - Really curious as to what this is doing exactly. It almost looks like it is using the name property of the object to search in the scene list of objects for that specific name string. Is that the case? If so, wow.

Thanks for any assistance. I know I should be learning to use python correctly before I start diving into building a Blender add-on. Hoping I can get away with knowing just enough to pull this off.

Thanks!

The master collection of the current scene can be accessed using bpy.context.scene.collection. You can access all scenes regardless of the one currently active through bpy.data.scenes. For example if you want to access a scene by name and get its master collection, you could use bpy.data.scenes["Scene"].collection. Alternatively you can also access them by index.

Once you have the master collection of the scene you can get all objects regardless of the sub-collections within, using all_objects. So for example bpy.context.scene.collection.all_objects would give you all objects in the current scene. You can iterate through them like this (which prints the name of the objects):

for obj in bpy.context.scene.collection.all_objects:
    print(obj.name)

Regarding your other questions:

Yes Python requires indentation to determine what part of the code is within a specific scope. I recommend using an editor that helps you write syntactically correct code.
Add-on can add their own variables using code similar to the one you described and it's precisely so that they can store custom data. They can conflict each other if the have the same name, which is why their name is usually based on the add-on and often bundle their configuration in a PointerProperty which points to an object that contains the actual variables/settings/properties that the add-on uses. This avoids adding several variables.
Correct, the scene variable just holds a references to the scene object.
Correct. I think this works (might be slightly wrong) because SceneObjects, which is the type of bpy.context.scene.objects, implements a custom __eq__ method, that allows to determine equality by their unique name. If their names are equal they are the same object.

You can actually test of lot of these interactively in Blender's scripting workspace where you have a console that let's you run these commands in Blender without having to write an add-on right away.


Would it be possible to dynamically update the collection offset for instancing? So I like the idea of collection, but the main problem I have with collection is the lack of a define pivot.  When I use collection for instancing, I need to place all the objects around the origin.
To deal with this problem, I can "use the offset from 3D Cursor" option or I can also move the pivot of a Collection instance.
However, all of these pivot points needs to be reset as soon as I need to move all my collection objects to a new area of the viewport (maybe to make more room to layout more assets).
Then I have to redo the "use the offset from 3D Cursor" or set the pivot of my collection instance over again.   If I have hundreds of collection groups, this becomes a big hassle.  Would it be possible to define a reference object (an Empty for example) instead of "use the offset from 3D Cursor" to dynamically update the reference point every time I need to move the objects in the collection.

The Collection Utilities addon can batch update collection instance offsets from multiple selected objects.
Have in mind that it do not automatically "live update" center coordinates. It wont update collection instance offsets as you move the object, but it does make the process less painful by allowing to set offset for multiple collections at the same time each from multiple selected objects.
To use it install the addon Collection Utilities from Blender Artists thread or from Blender Market.
After activating it select a bunch of objects in the 3D View, go to the Objects menu at the top, Collections > Set Offset.

Selected objects should represent only the "main body" or center of desired collection instance offsets, since their center position relative to scene coordinates will be used to set the instance offset coordinate. Even if there are more objects in said collections those should remain deselected, otherwise they may negatively affect the desired outcome.
There are a myriad of other options to keep collection offset static for certain axis, like say always keep it at Z=0 despite objects being in the air.
Full disclaimer: Shameless self advertising, I created the linked addon.


Where is the "average" setting in the vector math node? I'm currently following CG Geek's mountain tutorial and he uses the "Vector Math" node and sets the type to "Average". But with blender 2.8, they removed the "Average" setting so, is the "Average" setting in a different node or is there a new setting in the "Vector Math" node that replaces "Average"?

Blender automatically converts old nodes when copied into newer versions.
So Average becomes Add + Normalize


How can you make it automatically invisible to render if its already invisible in viewport? The objects i make invisible in viewport i want them to automatically be invisible to render. Is there any cool way to have this option ?

Handlers

Could set in a handler. bpy.app.handlers.depsgraph_update_[pre or post] are the v2.8x equivalent of scene update in versions prior.

Run this script once. Now every time the depsgraph updates ( a lot ) it will match the hide render attribute to the objects hide status.

import bpy

def hide(scene):
    for o in scene.objects:
        o.hide_render = o.hide_get()

    return None

# uncomment to clear all
#bpy.app.handlers.depsgraph_update_post.clear()
bpy.app.handlers.depsgraph_update_post.append(hide)


Having trouble with multiple animations triggered by key presses in the game engine I have very little Python knowledge and I'm trying to get a character to play one animation when the A key is pressed, a different animation when the D key is pressed, a different animation when the W key is pressed, and finally a different animation when both the A and D keys are pressed at the same time. I hooked up the appropriate keyboard sensors and action actuators to a python controller and when I test the character, it works with the exception of one problem. Depending on how the keys are pressed in various combinations (not entirely sure which combinations are at fault) the animation will sometimes get stuck as if Blender doesn't recognize that a key has been released and it keeps on playing that keys animation or it will stop playing the animation but will be frozen on a particular frame. I've tried numerous variations of the code, to solve the problem but nothing works and I've tried using just logic bricks without any code, but nothing eliminates the problem from occurring with certain key combinations (like pressing A and W at the same time and then releasing the W key slightly before the A key. This causes the character to get stuck on the A key's animation)

Here is the code I used:

import bge

cont=bge.logic.getCurrentController()

a=cont.sensors['a']

d=cont.sensors['d']

left=cont.actuators['turn_left']

right=cont.actuators['turn_right']

stationary=cont.actuators['stationary']

w=cont.sensors['w']

walk=cont.actuators['walk']

if a.positive and d.status==0:

    cont.activate(left)

else:

    cont.deactivate(left)

if d.positive and a.status==0:

    cont.activate(right)

else:

    cont.deactivate(right)

if a.positive and d.positive:

    cont.activate(stationary)

else:

    cont.deactivate(stationary)

if w.positive:

    cont.activate(walk)

else:

    cont.deactivate(walk)

I've tried everything I can think of but its become a great frustration. Please help!

Here is a screenshot:

The problem is that the action actuator is broken since 2.62. When you play different actions one after the other at the same object, some animations will not be shown. The bugtracker contains several reports already.

To avoid that problem you can play the animations with python via playAction().

It is not my preferred solution, but as long as the action actuator does not work as expected, it is a solution.


Why are my brush strokes in sculpting not smooth but leaves dents So im having some issues with sculpting and looking for a solution is difficult. Im in sculpting and im trying to make scratches on an axe head. I make strokes but they are not smooth but look more like im making a row of dents. I have scaled the object and remeshed and played with the brush settings but no luck. I am using a XP-Pen. Does anyone have any idea how I can solve this please? Left is me going slow and right is me going fast.

go to stroke > an change to space and set spacing lower then what it is. (5% or lower)
also it might help to set spacing distance to view.


object disappearing after using Boolean modifier posting this as other post wasn't of help.
i've tried applying all transforms on both object
increasing poly on both objects.

checking and flipping normals on both objects.

I did a bit of experimenting on your .blend file. Turns out that if I go into edit mode on the cylinders, press P>By Loose Parts (To make them different objects) and then move them to a new colloection, and then set the boolean type to collection and put in that cylinder collection, the boolean works and doesn't make the mesh disappear.


How do I create a cable coil? Hey I'm wondering how I would go about creating a cable coil in Blender? I don't even know where to begin..

You can use screw modifier to get the result. here is a quick demonstration

add circles like these in a mesh. more circles means more rings. Use smaller circle to get the result as shown in the ref.

then make sure the origin is in the 3d cursor. Now add a screw modifier and tweak the settings as shown. Use the iterations value to increase the length of the wires.


Titan Black vs 2x970 rendering far too slow Was wondering why my renderings at work were so slow, so I decided to compare the same file with my machine at home and was struck by the difference. ie at work I have a TitanBlack and it took 4 minutes to render

( http://i.imgur.com/oMbMtgf.jpg )

, while at home it took 40 seconds

( http://i.imgur.com/MPqobMB.jpg ).

I know there should be a difference of about double the time going off these benchmarks http://blenchmark.com/gpu-benchmarks but 40 seconds compared to 4 minutes is a big leap especially when rendering for animations.

Any reason why this is happening? The specs for both machines are below (sorry I'm not much of a hardware man)...

Work (Win7): Titan Black
http://i.imgur.com/DMlmNCg.jpg

Home (Win10): 970x2
http://i.imgur.com/LEHp3Vq.jpg

There was a recent rendering issue with the 9xx series cards on Win10. You can find out more on the bug report page.

https://developer.blender.org/T45093

You should be able to get better performance with updated nvidia drivers for windows, and the most recent builds of blender.


Hiding "lastest rendered frame" in renderfarm sheepit for confidentiality? Wondering if there is an option in sheepit to hide your project to the users rendering it. By default they can see the frame they rendered. I'm thinking about using it for professional work therefore confidentiality is important.

The core concept of Sheep It involves transferring the project being rendered on other people's machines. As the Sheep It owners have no control over the 3rd party computers, keeping work private is a challenge.

There are, however, paid solutions (for instance, RenderStreet) that can get the job done without breaking the bank and in complete security. As working professionally implies receiving monetary compensation for the projects, the rendering costs can be factored in the project budget.

As a final comment, I would recommend checking the privacy policy of any service you intend to use for professional work.


Where is the options menu for Convert mesh to Grease Pencil? I dont understand how to find the options menu for Convert to Grease Pencil.

https://docs.blender.org/manual/en/latest/scene_layout/object/editing/convert.html?highlight=convert%20grease
Object ‣ Convert to ‣ Grease Pencil from Curve/Mesh
Converts the selected curve or mesh object to a Grease Pencil object with strokes matching the curve/mesh; basic materials are also add. When multiple curves/meshes are selected, they are all converted into the same Grease Pencil object.
Options
Keep Original
Duplicates the original object before converting it.
Thickness
Strokes thickness.
Threshold Angle
Threshold value that determines the strokes end.
Stroke Offset
Sets offset to separate strokes from filled strokes.
Only Seam Edges
Convert only edges marked as seam.
Export Faces
Convert faces as filled strokes.

If I'm understanding you correctly, you know the first step, which is how to convert to grease pencil, but not how to access the options.

To get the options you listed, look for a little box in the bottom corner that says "Convert to" after you perform the convert operation (it may be collapsed at first - just click on it to open and access the options)


How to Map Procedural Bricks on a Pyramid I've created this pyramid from a default cube by deleting the top face and then merging the vertices at center. How do I get the bricks node to be horizontal on all faces?

Thanks!

This is rather easy to do :).
Just unwrap your object using Cube Projection and connect your UV map.

Select all vertices of your object.
Go to UV > Cube Projection

Connect nodes like in this image.
Use the UV output - this will connect your UV map (that you just made).


Tube around mesh wireframe I need to generate a mesh where I can take the wireframe edges of the mesh and apply a shape to them so that the resulting mesh is long rods across those wireframe edges with the cross-section being of the shape I applied.

Below is similar to what I would like to do but instead of this, I would like it with a cylinder (or any shape if possible)

I rather like gandalf3's answer above the one from Coburn as I need to export this effect to Unity, so I rather have a real mesh above a visualization in blender.

I include both as correct answers

Create a rounded wireframe?

How can I render an edge only mesh as solid lines?

Starting in edit mode you want to delete all faces from the mesh object X.

Then convert the mesh to a curve ⎇ AltC

Now that you have a curve object you can add any bevel shape you want to it by editing a new curve object to the shape and set it as the bevel object.

As you may notice in that screenshot, the curve from mesh object may need some cleanup. A mesh object can branch out many time from one vertex where a curve is one continuous line, this can leave "loose ends" in the generated curve.


how do I seperate hair texture from regular texture I have a "Keentools FaceBuilder" head going with my face texture on it. I also have a simple hair particle system for my (scraggly) beard (picture 1). I have a simple "Principled BSDF" shader (For my face texture) and a "Principled Hair BSDF" shader (for my hair) mixed with a "Mix Shader" node and a "Hair Info" node plugged into the factor of the "Mix Shader" with the "Is Strand" as the output (picture 2). The result is to completely black out my face and only have the hair texture (picture 3). Is this the right way to split the hair and regular textures, or am I doing it completely wrong?

What you want are 2 materials:

one material for the skin (Image Texture and Principled BSDF)
and one for the hair. For Cycles, you can use the Principled Hair BSDF. It works only in Cycles and you have to switch to Cycles to be able to add the node. To have a fallback for Eevee and the Material Preview mode you can add another node setup in the same material that is used for Eevee only.

Just add another material slot for the head/emitter and create a material. After that, you can select it in the hair settings: Particle Properties > Render > Material
If you use Cycles make sure you have the settings for the Hair Shape correct (small values) else you will get very "fat" hair.


Is it possible to lock a bone in pose mode while removing the influence from the parent? At first I assumed an issue like this would be rather simple, but it seems anything but.
My goal is essentially to have a bone locked entirely in place (Imagine a lizard's tail resting statically half way through its length while a few bones above it move), but it seems nothing that I can do bar actively just unparenting it in edit mode. That does work, but it's rather tedious and doesnt allow for very good keyframing IMO, as well, if I have already posted something, it throws that all out of wack.
Ive been looking back and forth through bone constraints and I still can not for the life of me find an answer.
Any point in the right direction would be very much appreciated.
Thank you

Possibly the most straightforward way to do what you want is to use a Child Of constraint. It works just like parenting, except that its effect can be keyframed, unlike actual parenting. So it can be turned on or off at will.
Begin by selecting your armature and then going into Edit Mode, then selecting the child bone in the chain you want to be pinned. Alt + p to bring up the Unparent menu, then Clear Parent. Now go into Pose Mode. The newly liberated child bone should still be selected. If not, select it. Go to the Bone Constraints Tab in the Properties Panel, and create a Child Of constraint from the Constraints dropdown. Specify the armature as the target for this constraint, then the parent bone, by name, also in the associated field (there are two text fields for the target when the target is part of an armature. The first text field is for the armature itself, and the second is for the bone within that armature which you specifically want to target). Now your child bone should move as a child while your parent is selected and rotated. When you are ready to turn off the constraint, look in the Constraint properties for the Influence slider. Right-click on it and set a keyframe. Do this on the frame just before you want it turned off. Advance the frame by one, and then slide the influence bar to zero. Then set another keyframe. Your child bone will now behave as if it is not parented.
This may or may not work ideally depending on whatever your exact situation is. But it definitely overcomes the problem of needing a parenting relationship on and off on the fly while animating.


How can I automatically render a preview when the scene has changed? I have a split screen with my render on the right on very low sample rate so the render will happen quite quickly.  On the left, I have my 3d camera perspective for my modeling and object manipulation.  What I would like is to have the right side update the render when my objects on the left are changed automatically.  Is there a setting for this?  I already have the Update Automatically checked under the view menu however it doesn't seem to affect anything.  Thanks for your help.

Just do the preview render in the viewport itself and set the viewport shading to "Rendered". Also type Numpad-0 to set the view and check "Border" to render only the important parts.

Everything you edit on the left side will cause the right screen to re-render.


Motion for a linked group in BGE I would like to have multiple objects moving as one in Blender Game Engine. For that I created a blend-file with the Objects and grouped them.

In my game-blend I linked this group from the blend file which brings the objects into my game. Now I would like to move this group on keystroke. For that I created a Sensor and Actuator. But my objects are not moving.

But: I have my camera tracked to that group. By that I can see that the object are not moving, but the camera is moving to the side just I would expect the camera to track my group of objects.

Could someone please point me to where I made a mistake?

An instance of a group is pretty much the same as an empty that adds the object in the first frame. As such, there is no relationship between a group owner and the group members unless you create one using code. Attach this to the parent of the group (I assume they are parented together to one object). Be aware that physics may not do what you expect as now the physics is associated with the empty that added the group.

import bge
cont = bge.logic.getCurrentController()
own = cont.owner

if own.groupObject is not None:
    own.setParent(own.groupObject)
else:
    print("This script isn't attached to something that is part of a group instance")


Python UI show value in panel after generation random property Help me please to translate generated random values in integer panel property.
I understand that the execute function create a new object every time, but for this simple example will be fine if the values for the last object are saved in panel for edit it.
(Redo-panel already can do this task, but it shows all values that exist. Need to some of values was be generated private.)

import bpy
from random import randint

class VIEW3D_PT_monkeygen(bpy.types.Panel):
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Panel"
    bl_label = "UI"

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

        ops = layout.operator('mesh.monkeygen', text='Generate random monkey')
        ops.co_x = randint(1,10)
        ops.co_y = randint(1,10)
        ops.size = randint(1,3)

        layout.prop(scene.monkeyprops, "co_x")
        layout.prop(scene.monkeyprops, "co_y")
        layout.prop(scene.monkeyprops, "size")

        #ops2 = layout.operator('mesh.monkeygen', text='Monkey from values')
        #ops2.co_x = scene.monkeyprops.co_x
        #ops2.co_y = scene.monkeyprops.co_y
        #ops2.size = scene.monkeyprops.size

class MESH_OT_monkeygen(bpy.types.Operator):
    bl_idname = "mesh.monkeygen"
    bl_label = "Monkey Generator"
    #bl_options = {'REGISTER', 'UNDO'}

    co_x = bpy.props.IntProperty(
        name="Pos x", default=1, min=1, max=10,
    )
    co_y = bpy.props.IntProperty(
        name="Pos y", default=1, min=1, max=10,
    )
    size = bpy.props.IntProperty(
        name="Size", default=1, min=1, max=3,
    )
    def execute(self, context):
        #do something
        bpy.ops.mesh.primitive_monkey_add(size=self.size, location=(self.co_x, self.co_y, 0))
        return {'FINISHED'}

class MonkeyProperty(bpy.types.PropertyGroup):
    co_x = bpy.props.IntProperty(
        name="Pos x", default=1, min=1, max=10,
    )
    co_y = bpy.props.IntProperty(
        name="Pos y", default=1, min=1, max=10,
    )
    size = bpy.props.IntProperty(
        name="Size", default=1, min=1, max=3,
    )

blender_classes = [
    MESH_OT_monkeygen,
    VIEW3D_PT_monkeygen,
    MonkeyProperty,
]

def register():
    for bpy_class in blender_classes:
        bpy.utils.register_class(bpy_class)
    bpy.types.Scene.monkeyprops = bpy.props.PointerProperty(type=MonkeyProperty)

def unregister():
    for bpy_class in blender_classes:
        bpy.utils.unregister_class(bpy_class)
    del bpy.types.Scene.MonkeyProperty

if __name__ == "__main__":
    register()

Solution, that generate random values, save it and allow to edit 2 neccesary values from 3 created.
So, value editing not execute in real time, changes is required apply from button (is good for my script with highpoly mesh objects)
import bpy
from random import randint

class VIEW3D_PT_monkeygen(bpy.types.Panel):
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Panel"
    bl_label = "UI"

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

        # Generating button
        # nonstop random values generating in draw function
        # values sending to execute function
        ops = layout.operator('mesh.monkeygen', text='Generate random monkey')
        # all existing values
        ops.op_x = randint(1,10)
        ops.op_y = randint(1,10)
        ops.op_size = randint(1,5) # private value for example

        # Buttons x y, for control defined values in PropertyGroup
        layout.prop(scene.monkeyprops,'op2_x')
        layout.prop(scene.monkeyprops, "op2_y")

        # Apply defined values from PropertyGroup and sending to execute function
        ops2 = layout.operator('mesh.monkeygen', text='From values')
        # only changeable values
        ops2.op_x = scene.monkeyprops.op2_x
        ops2.op_y = scene.monkeyprops.op2_y

class MESH_OT_monkeygen(bpy.types.Operator):
    bl_idname = "mesh.monkeygen"
    bl_label = "Monkey Generator"
    #bl_options = {'REGISTER', 'UNDO'}

    op_x = bpy.props.IntProperty(
        name="Pos x", default=1, min=1, max=10,
    )
    op_y = bpy.props.IntProperty(
        name="Pos y", default=1, min=1, max=10,
    )
    op_size = bpy.props.IntProperty(
        name="Pos y", default=1, min=1, max=4,
    )

    def execute(self, context):
        meshes = bpy.data.meshes
        # remove previos mesh
        for mesh in meshes:
            if 'Suzanne' in mesh.name:
                meshes.remove(meshes[mesh.name])

        #do something
        bpy.ops.mesh.primitive_monkey_add(size=self.op_size, location=(self.op_x, self.op_y, 0))

        # set random values to defined values
        bpy.data.scenes['Scene'].monkeyprops.op2_x = self.op_x
        bpy.data.scenes['Scene'].monkeyprops.op2_y = self.op_y

        return {'FINISHED'}

class MonkeyProperty(bpy.types.PropertyGroup):

    op2_x = bpy.props.IntProperty(
        name="Pos x", default=1, min=1, max=10,
    )
    op2_y = bpy.props.IntProperty(
        name="Pos y", default=1, min=1, max=10,
    )

blender_classes = [
    MESH_OT_monkeygen,
    VIEW3D_PT_monkeygen,
    MonkeyProperty,
]

def register():
    for bpy_class in blender_classes:
        bpy.utils.register_class(bpy_class)
    bpy.types.Scene.monkeyprops = bpy.props.PointerProperty(type=MonkeyProperty)

def unregister():
    for bpy_class in blender_classes:
        bpy.utils.unregister_class(bpy_class)
    del bpy.types.Scene.monkeyprops

if __name__ == "__main__":
    register()


How do I create only one of multiple new face outcomes? I have a shape within another shape and I want to make the space between them into a new face.

I want to fill in the frame but not the actual 4 tiny squares inside.
I have tried selecting all and creating a new face but I can't seem to get that specific face. Help

It seems that there is no easy way to do this automatically in your case.
You can create faces between edges manually by selecting the edges where you want the face to be, and pressing F.

Create the inner faces: Select neighboring edges, and press F

Repeat this for other faces to make the inner cross:

To avoid creating non-quad geometry, we need to subdivide the outer ring to match the edge count of the inner ring. Select the outer edges (you can loop-select by using Alt+ Click), And subdivide them with 2 cuts:

Now we have the same number of edges inside as outside (3 for each side). You can continue this process, making faces where needed, to fill the remaining geometry.
You can also use the Bridge Edge Loops command to fill multiple faces at once.
Alternative Method
There is a much simpler way to create the window-like geometry you want:

Create plane
Subdivide for 2x2 grid
Set the Transform Pivot Point to "Individual origins"

Select all faces; Extrude Individual Faces; Esc to avoid offsetting

Scale (S) the 4 faces to make them smaller:

(This will scale them individually because of step 3)

Delete the unnecessary faces!


How to use color ramp with torus I have a torus and I need the material to use a color ramp so that all the surface has one color (red) except for a strip along the longest edge (yellow). Something like this:

I tried unrap in every way with no good results. Also, tried to add seams and nothing. What is the way to do this?

Thanks!

This type of material is super easy to do in cycles. First break down what you want to do.

You want to have a gradient (three color stops).
You want the gradient running along the Z axis.

With that as our objective, we don't even need to touch any UV mapping.

Start by getting a gradient running in the direction you want (Z axis).
There are several ways to do this, but I like to simply split the generated texture coordinates, and use the Z component. That is the gradient, no other nodes needed.

All that is left to do is run that (think of it as the direction data) in to a color ramp node to colorize it the way you want.

You can do all that with a Separate XYZ node plugged in to the Generated socket of a Texture Coordinate node. Then take the Z output of the Separate XYZ node and plug it in to the color ramp. (Like in the image below)


Minimizing unnecessary edge loops I'm modeling assets for a game and want to keep the polygon count to a minimum. One problem I've run into is having unnecessary edge loops on one part of a mesh that are necessary for a different part of the mesh.

For instance:

Both these parts need to be connected in a single mesh. If I join them at their intersection, I'll end up with a lot of unnecessary edge loops on the top piece.

Should I do this, or will the extra polygons affect performance?

In general, what is the best way to handle two meshes that need to be connected, but have different vertex counts on the adjacent edge?

Getting rid of unnecessary loopcuts is always a good idea, no matter for which platform you aim (mobile devices, PC?). If you can reduce the polycount significantly by using submeshes that's the way you want to go.

When using overlapping submeshes you also might want to delete hidden faces.

One other thing that is even more important than reducing a model's polycount by maybe a dozen polygons is the use of materials. If you have an asset that contains several submeshes you still want to use the lowest possible amount of materials (which is normally one). Having only one material per asset reduces the draw calls in a scene significantly. You might want to look up the terms "draw call" and "texture atlas".

Lightning errors in UE4 are mostly the result of missing or wrong lightmaps.


Trying to restrict movement of player without causing it to fly off the screen So I'm making a three-dimensional danmakufu game in Blender. I'm trying to restrict the player's movement so that someone can't just barrel through the level.

I have currently restricted his movement to a lidless box that is 6 units 'X' by 18 units 'Y' by 2 units 'Z'. All forms of bounding cause the player to be sent flying out of the screen. Can someone help me please? The box moves -.0025 units x per second.

This is only with dynamic or body physics. If using static physics, the player can just go through the barrier.

AND STOP POSTING ANSWERS IN THE COMMENTS

Currently, with the bounding box set to Rigid Body with x-translation enabled and the player as a dynamic object with all degrees of freedom stripped (and neither had collisions on in the first place!) the player is instantly flung off in the direction of positive x, negative y.

Here have some more pictures!

The box is having weird collision with the player, you can probably see this happening if you use "physics visualization".

To solve, switch the physics type of the box to "static" and have it clamp to the travel path that it needs to glide along. I made a working .blend aside from the "clamp to" because I'm not sure of your situation.


Camera: Keep perseptive by changing focal length? is there a possibility to synchronize the camera position to the focal lenght to keep the perspective?
Let me say, when I change the focal lenght of the camera from 50 to 80 the image detail is changed by zooming in. So, to compansate this zoom in I have to reposition the camera manually by it's default's local z axis.
Any Idea how to do that?

If

d1 is the distance to the object viewed by the camera with a focal length f1
d2 is the wanted distance when the focal length is f2

Then:
d1 / f1 = d2 / f2

So that:
d2 = f2 * d1 / f1

If you want to focus on an object, you need to drive the camera on its local Z axis considering this distance shift. So we need to get the distance at the starting point and calculate the new position when the focal length is changed.
A way to do it in Blender is to use drivers.
As we want to keep the original camera position (which corresponds to d1), we can use delta transforms to do it.
These drivers will use some Python functions:
import bpy
from mathutils import Vector

def calculate_delta(self, initial_focal_length):
    cube_location = bpy.data.objects['Cube'].location
    location = self.location
    distance = (location - cube_location).length
    focal_lens = self.data.lens
    delta = distance - (focal_lens * distance / initial_focal_length)
    return delta

def in_world(self, delta):
    matrix = self.matrix_world.copy()
    matrix[0][3] = 0
    matrix[1][3] = 0
    matrix[2][3] = 0
    return (matrix @ Vector((0, 0, -1))) * delta

def move_delta(self, initial_focal_length):
    delta = calculate_delta(self, initial_focal_length)
    return in_world(self,delta)

bpy.app.driver_namespace["move_delta"] = move_delta

The script calculates the delta from the given formula, translates it in world space to shift the camera. And returns the wanted vector.
Then, it binds the function to the driver namespace.
Run this script once in order to use it in drivers.
Attach a driver to each component of the delta location:

The drivers use the function giving self (the camera), the initial focal length (50) and get the corresponding componant: x, y or z.

Note: the cube which is focused on in this example has its origin placed at the front plane.


Why are my glass reflections so far apart? I'm playing round with a fairly common Cycles node setup for glass that gives the reflections of glass but without the darkness that you get with the default glass shader:

The left panel uses a custom 'fast glass' material (node setup below), and the right one uses just the default glass shader. While I'm expecting the double reflections on the left panel - since that's what happens with glass IRL - they seem really far apart depth wise. The glass is only 12mm thick, so I was expecting those two reflections to be almost on top of each other. Also, one of the reflections is noticeably larger than the other, which I imagine is also due to the exaggeration of depth. I'm stumped as to why.

Setup:

Both glass panels have had scale applied.
Both glass panels are closed meshes at 12mm thick.
Both glass panels are flat shaded, with normals facing outwards.
The default glass is using the default glass shader with an IOR of 1.450 degrees.
The 'fast glass' uses the following material:

Edit:

File uploaded here (swapped out the floor so I could drop the texture, but otherwise the nothing else changed):

Tinkering some more, I noticed that if I use the Shadow Ray and Diffuse Ray as my factor I get just the one reflection, so it looks very similar to the standard glass shader, minus the shadow. Interestingly if I use the glossy ray I get a lot of refraction going on, which doesn't seem right given the thickness of the material, but I can't begin to figure out why.

The problem is that the Mix node using the 'is Reflection Ray' is causing the glass to behave as a single refractive surface - which doesn't exist in the 'real' world. Normally the refraction would bend the light one way on entering a solid and the other way on exiting the solid, effectively cancelling each other out.

However, I believe the Mix node is resulting in rays entering the glass and being refracted as normal, reflecting off the back surface of the glass, and then passing out of the front surface of the glass without refracting back the other way.

In order to demonstrate this, change the color of the Glass Shader to give the light that passes through it a tint to make it identifiable to that reflected off the surface. Also, increase the IOR to make its effect more pronounced. You should get something like the following :

As you can see, the 'untinted' reflection is the same as that on the surface of the other pane. This is not passing through the glass and is not refracting - it is simply the reflection off the surface of the glass.

The 'tinted' reflection is entering the glass and reflecting off the back surface. However, it is not being refracted at both surfaces - only one since the Mix is causing the surface to behave as Transparent on one transition - and this is causing it to act as a lens.


how to modifing existing torus's minor radius I have had a torus in my scene for awhile but now I want to resize the minor radius.  I don't want to delete it and add another one cause its part of a boolean modifier... Is there any way to do it.. cant find a dang thing on any tutorials or discussion groups other then ALT-s which modifies the whole thing.

No you can't. Once a primitive is set you cannot change it's properties, and there is no tool that will allow you to just change the inner radius without modifying the outter. Alt + S will just shrink or fatten the whole mesh. You can however create a new torus and copy location and rotation with the copy object addon to replace the old one. But if you want to be able to go change torus size at all time it might be good to try using a circle curve with some bevel to it instead of a mesh.


I can't find object control in fluid simulation blender 2.82 In the older versions of blender the fluid physics had the option of making an object a 'control object' to manipulate the fluid flow with its shape. Now in 2.82 i can't find this option and i still haven't figured out a similar solution. Has this option changed location or name?

You should set it to an effector object within the physics tab


Cycles one side transparency Is there a way to create a material that seems diffuse shader, but can see lights trough it when lights are behind like E.V.E. in Wall-e? I have tried diffuse mixed with gloss and both mixed add to transparent shader, but can see through all sides.

Here a picture of what I want to do.

I want to be able to see light from the camera side only when the light is on just like on EVE's chest.

There are various ways you could probably achieve this effect - one is to use a Refraction shader to allow light through in a specific direction and to scatter based on Roughness using the following setup :

Here the Diffuse shader provides the basic diffuse surface and the Refraction shaders are added to this to show through the illumination from behind.

I've added two Refraction shaders (the Mix shader can vary the reletive strengths) - one with a low Roughness for the 'sharp' image and the other with a high roughness for the 'glow' around it. The very high IOR of the first Refraction shader forces the rays that pass through the surface to mostly align with the surface normal - this forces the rays to form an image of what's behind the surface, without being affected by the viewing angle (as if the image of Suzanne is projected onto the surface). The second Refraction shader has high roughness and provides the 'glow' and by slightly reducing the IOR of that shader the 'glow' can be made to be more based on viewing angle - eg, in your first sample image of Eve the 'scatter' of the green on her chest is offset from the 'image' part; the lower IOR effectively mimics this.

Note that you can also change the colors of each of the Refraction shaders independently so as to tint the 'scatter' differently if required - or vary the Roughness for more/less scatter within the surface.


Pose Mode: How to reset transformed armature to its rest position? I got a problem with pose mode.
Like the heading says, I haven't found yet a possibility to reset the already transformed armature so that it exactly does look like the rest position (though it is still in pose position).
Is there any kind of shortcuts or tricks to do that?

Select all the bones, in pose mode with A. Then, hit:

ALT R to reset all rotations,
ALT G to reset all translations,
ALT S to reset all scales.

Or, you can select all bones (A) and hit space. Then search for "clear pose" and select Clear Pose Transforms in the results. Et voilà!
Mac Users Use Option instead of ALT.


How to delete all faces/geometry that isn't visible? Lowering poly count for unity? Ok, Ive looked at Removing internal geometry before 3D printing but am really trying to reduce poly count for export to UNITY especially. Ive decimated and done limited dissolve, but really I still have high poly count owing to internal geometry that is not seen, but augments poly count regardless:

I just need the "shell" essentially for export to unity. I tried ctrl-alt-shift-M, but Im not sure what this selected, and didn't get much. Select-interior faces does nothing.

How can I get rid of unseen geometry?

Box selection
Go into edit mode ↹ Tab.
Switch to solid view mode (toggle Z).
Switch to face selection ⎈ Ctrl↹ Tab > F.
Box select the faces. B + drag +  LMB confirm
You have now selected the exterior faces.
Invert the selection. ⎈ CtrlI
You have now selected the interior faces.
Delete the faces ⎈ CtrlX > Faces.


Why my "z" key switches with "y"? So I was modelling and suddenly when I pressed "z" it meant "y" and started grabbing the vertex in the y axis. Also in text editor it typed y instead of z.

When I typed z in notes it typed as expected.

It keeps doing it still, it just suddenly swaps random and stays until I quit and go back.

I use 2.79 on Windows 7

This may possibly be that you actually have local transform enabled for the object you are trying to move. If you have rotated the object around 90 degrees, it would appear that pressing the Y key would be moving the object in the Z axis because of moving the object locally. If you don't want this, then simply disable local transform in the viewport.


Camera Glitch movement I am having trouble with a camera glitching around in a render, and in stills rendered at those frames. It is easier to show than tell:

As you can see, the aspect ratio seems to be jumping around or something. I also noticed that on some CPUs and GPUs that the camera seems to move away (found this from an attempt on SheepIt)

Nothing in the scene has keyframes nor animations in general apart from the particle system.

What is causing this, and how can I fix it?
I am on Blender 2.8 on Ubuntu 18.10 rendering with an i7 CPU

So the camera was not changing, the material was. It is hard to see because of the lack of other objects

The Point Density material was set to use Object Space instead of World Space, so it was trying to fit all the particles into the object, and would change the locations of other particles in the point density as needed.


Transfer UV maps not working properly I having problem transferring UV maps from one object to another. Objects are identical. Please see the image.

1)Object with good UV on the right, selected.

2)Object that i want transfer UV to. You can see the result after transfer.

What may be the problem?

Transfer the Object Data from the Active object to the Selected object before you transfer the UV maps.

Object Mode: Object > Make Links > Object Data

Object Mode: Object > Make Links > Transfer UV Maps

This will retain any vertex groups on the original object if rigging has been set up etc.

This is useful for creating symmetric UV maps.

Duplicate object, delete half of new object, add Mirror modifier, Tick the 'U' under textures in mirror modifier, create UV, apply mirror, transfer object data, transfer UV maps.

Object Data: An entity in the scene with location, scale, rotation. Used by scenes & groups.

Blender Manual: Data-Blocks


How to model the sharp edge of a blade I want to make the edge of this blade thin so that it looks sharp, but how can I do this?
Should I use a cube instead of a plane or is there another way?

I would use the Mirror Modifier instead.

You can select the faces of your blade and then press I to Inset them. You can then move them some distance away from the Object Origin.

You can see the effect of the Mirror Modifier:


Baking normal then plugging into the normal channel of a shader results in flat shading I'm not trying to transfer high-res normals to a low-res model, so I might just be doing it wrong, but what I'm trying to do is just output the normals of the sphere onto a texture that I can paint on to manually try creating some cel-shaded looking normal maps.
When selecting the sphere, the texture I want to bake onto, with the bake type set to normal, all I get is a flat blue color, and this is how it looks when I plug it into the normal channel for the shader:

What am I doing wrong here?

The blue color you're getting should be $RGB(0.5, 0.5, 1.0)$ which corresponds to a normal value of $<0,0,1>$. The normal vector has a range of $<[-1, 1], [-1, 1], [0, 1]>$ In Tangent space, as I understand it, the vector $<0, 0, 1>$ is perpendicular to the the surface. As the first value is changed, the vector tilts left and right. As the second vector is changed, the vector tilts up and down. The third value is adjusted so the length of the vector stays equal to 1. e.g. $z = \sqrt{1 - (x^2 + y^2)}$. Of course we should limit $ x^2 + y^2 \le 1 $.

This is illustrated by the "Check Normal + Y" matcap, which is based on the rendering of the normals of a sphere in Object Space. You can find an EXR version of this image in your Blender install folder under datafiles/studiolights/matcap. You'll see ... not what I expected ... I'm going to submit this now while I play with generating my own exr...
To be continued...


Importing FBX triangulates I downloaded this old 3DS max file for a dog, then exported it from Max as an FBX using the settings you see in the image on the left. I imported it to Blender with the settings you see on the right and it triangulated the mesh. I looked at another answer that said to uncheck triangulate and preserve edge orientation on the Blender import but there are no such options. I tried checking and unchecking multiple items and reimporting it to the same triangulated result. I have also tried exporting and importing as a DAE but that did not work. Unsure what do try next.

Any suggestions? For a way to import as quads only or detriangulate.

Blender has an ability inside edit mode to convert triangles to quads. Press ALT + J with everything selected, or by selecting everything, CTRL + F for Face Menu, then Tris to Quads.

Edit: Something that might take you the rest of the way there is the Quadriflow Remesh tool. Its available in Blender 2.81+. As with all things unknown, I'd test it on a safe duplicate.


How to cast shadow onto image planes with alpha? The cube doesn't cast shadow on the leaves but it does on the plane/floor. And the leaves don't cast shadow onto themselves, unlike the one on the top right.

Any ideas?

..my bad, forgot to plug-in DiffuseBSDF. It's working now.


Link the text content of two text objects Is it possible to link text objects in such a manner, that changing the text content on one object will automatically also change the text of another text object.

To clarify, I do not want to link any other properties of those two objects (like fonts for example), only the source text.

this a script that uses the scene update handler to synchronize two text object content :

select the two text objects only
copy and paste the script and click run
once you edit one of the text objects the other one will get updated accordingly

import bpy

obj1 = bpy.context.selected_objects[0].name
obj2 = bpy.context.selected_objects[1].name

def link_text_objects(scene):
    obj = bpy.context.active_object
    if obj.type == 'FONT':
        if obj.name == obj1 :
            scene.objects[obj2].data.body = obj.data.body

        else :
            scene.objects[obj1].data.body = obj.data.body

bpy.app.handlers.scene_update_pre.append(link_text_objects)


Python script delete objects I have a python script that (amongst other things) is supposed to delete objects.
Currently I am unlinking the object but when I want to create objects later in the script with the same name as the deleted it is automatically named name.001 and so on.
Is there a way to completely delete objects using a script?

bpy.data.objects.remove(bpy.context.scene.objects[id], do_unlink = True)

This should remove unlink the object from every scene you have. After that, the creation of a new object should go without the namechange.


Why Is my rendered image a white silhouette? a newbie of blender is here to ask some help with his own stuff, i searched online tutorials and used a blender manual to make simple stuff for learning. I wanted to make an Espresso cup but it turns out like this:

I'll post my blender file too: https://drive.google.com/file/d/1kI9nIBejeWbxEpaqrXZZINGjX4gNpdhF/view?usp=sharing

i'm sorry for bothering but i wanna learn.

It's because of your compositing nodes :

Basically, your nodes are doing the following :

Take the rendered image, blur it, 100% mix with white and done.

I'm not sure of what you tried to do, may just remove the mix node and blur node.


Use all Objects in a Group as Object input (Animation Nodes) I am using a node tree that takes an input object, and generates a new object based on data from it (see here for the exact use case).

I want to apply the effects of this node tree to more objects without having to copy the nodes for every object. I want to be able to control which objects go through it with a Group or List or something similar so I can control what's in and what's out. The output objects need to remain separate from each other. It should not have all the output meshes go into the same object.

Is there a way to input multiple objects from a Group, other otherwise make a list?

Lest say you have a list of n number of inputs objects, then your node tree will output n number of objects. So, you should create n number of empty objects using the Object Instancer Node, loop over the input objects and write the data of each iteration to one of the empty objects you created.

Lets use the node tree from the question you linked as a study case, the output object is a curve object, so we create 3D Curve typed empty objects using the Object Instancer Node, loop over the inputs objects and the empty objects, do what ever you want inside the loop and write the data into the empty object:

Notice that the main part of the node tree is almost left intact. It is particularly helpful to output the new objects, and since they are used as iterators, we can use the Use X as output option in the loop advanced node settings:

Had my output data be meshes, I would have choose mesh objects in the Object Instancer Node. You get the point.


Bone copy location in some keyframes How can I make a bone to copy a location of another bone but only in some specific keyframes and in other keyframes not to copy?
I have tried in blender 2.79 but the only option that I get is either the bone copy the location on all the animation or not.

In pose mode, assign a copy location constraint to the bone that should move, and set as target the other bone. Then you can Keyframe the "Influence" parameter to have the constraint working only in the desired keyframes.


How to create procedural surface defects with Cycles? How to create procedural surface defects with Cycles similar to this image?

The simplest way is with a bump map. You can use a mixture of various procedural noise textures and a Bump node to create one quickly:

It's up to you to make come up with a texture that you like. I recommend this talk for some tips on generating realistic patterns with procedural textures.

This probably isn't necessary in your case, but if you want the bump mapping to affect the actual geometry you can use the Displacement output with Experimental Features enabled. See What is the difference between the displace socket and a bump map?


Animation Nodes - Is it possible to add a texture image to a "target" Mesh Object Output node in Animation Nodes? I'm trying to add a texture image to a "target" Mesh Object Output node and have the texture follow and warp with it when I change the compose matrix. Is this possible?
I'm using Blender 2.83 and AN 2.1.7
Node setup:

Image texture I'm trying to apply to the cylinder using the "target" Mesh Object Output node in Animation Nodes.

Thanks goes to OmarEmaraDev
In the Mesh Object Input node, there is a hidden input called Load UVs, enabling it should transfer the UV map and the texture should appear as you might expect.


What does Dither do in Cycles? What does Dither do in Cycles and what's the right value to set?

Dithering is a post-processing step that reduces the banding caused by insufficient bitdepth by adding some controlled noise to the image.

Dithering set to 0:

Dithering set to 1:

With Blender's internal renderer, I almost always set it to 1 to avoid banding, but with Cycles, it's less useful because Cycles introduces its own noise anyway.


Increasing topology without affecting shape keys I have a mesh with multiple vertex groups and shape keys, and I need to increase topology.
I'm using blend4Web, which doesn't export modifiers, therefore one should apply them to realize their effect.
So my question is is there any way to increase topology in edit mode without messing up the shape keys and vertex groups?

Dissolve X, Vertex Connect Path J, Knife Topology Tool K

With the Basis key active and all other keys set to 0.0, these operators allow me to thoroughly retopologize a character model (~18,000 vertices) and maintain shape key deformation and vertex weights long after rigging and adding almost one hundred shape keys. They use the current surface detail of the mesh to retain shape key/vertex group information, as opposed to destructive operators like Delete which have tendencies force a global recalculation of surface detail.


How can I reuse existing materials, objects, etc from an existing .blend? I have created several designs for a particular project and they are related, but I don't want to have to keep recreating any similar elements, such as shared materials or textures.

How can I use the existing data in a new Blender file?

You can use "File -> Link" (Ctrl+Alt+O) or "File -> Append" (Shift+F1).
Each will open a File Browser Window, from which you can then choose the file that contains the existing data you want to re-use.
Linking:
Linking will simply create an instance of the existing data, such as a material or an object. This will mean that you must keep both files together, and if necessary update the path to the linked data. It is best to use relative paths for linked data.
Linked objects (note: objects in this context includes meshes, curves, cameras and lamps) have a teal outline (in the default theme).

A linked cube.
You can edit linked data (such as objects, materials, etc), but you will need to edit the data in the original file.
If you need to edit your linked data, there are a number of options:*

Make it a proxy object. Ctrl+Alt+P
This allows you to edit the rotation, scale, and translation of the object.
Make it local. L

Your linked object must be selected when using either option.

With materials, you have to click the  button in material properties.

An example use case for linking is when you need to reuse an existing model in a game or animation, but don't need to modify it beyond the basics of rotation, scale or translation.

Appending:
This creates a full copy of the existing data, which you can modify without issue and include in the file you are editing. You do not need to keep both files together. You are also fully able to edit the appended data (such as an object, material, or scene) without affecting the original file from which you appended.
Appended objects have an orange outline when first appended (with the default theme), but once you deselect them, then select them again, they show as normal objects do.

An appended cube.
Appending increases the size of your result blend file however, and uses more resources when editing, so it is not recommended unless you need to modify the appended data.
An example use case of appending would be when you need to create a variant of an existing model. It can save on time and effort.
For example, I created the Asiatic Black Falcon from the same original model as the Black Falcon by appending into a new file and making a few minor changes.

These two began as the same object.

Credit:

http://blenderartists.org/forum/showthread.php?225258-how-to-edit-appended-linked-objects

Further reading:

https://docs.blender.org/manual/en/dev/files/linked_libraries/index.html#linked-libraries


Blender 2.8 - I want to ALWAYS see the axis gizmo when moving an object When I am moving an object in Object Mode, the axis gizmo disappears.  This is very unhelpful.  Is there a way to make it always visible?

I want to always see this gizmo:

Of course there is a way.

Just click the gizmo, instead of dragging it.
Then use the pop-up menu to adjust the values, and the gizmo stays visible.