How to calculate what percentage of the area of an object appears in the render view? Take the pictures below as an example, I want to calculate how much of the jersey number on the tshirt of the human model is visible on the render view. In the first case the jersey number is totally visible, but in the second just about 50% is visible. How to calculate it with python?

CONTEXT: I am working in a jersey number recognition task. My project is to generate artificial data with blender to train the network. So I will take a human model as below and generate thousands of randomized screenshots with different tshirts, different poses, different camera angles, etc. Since I will generate new poses randomly it could be that in some of them the arm is blocking part of the jersey number. I want to somehow be able to detect it in order to discard these screenshots.

In case anyone have a similar problem, I 'kinda' solved the problem using ray-cast. I basically created a for loop that generates ray-casts coming from the camera with destination to the 4 vertices that frame the jersey number. I have to perform this calculation for every object that I think might be between the camera and the body. With this approach I don't really calculate the area but it turns out that it is sufficient for my goal to know that at least one of the ray-casts intercept an object.


Rigging two handed weapon I have created a model, which is meant to hold a two handed weapon, but I don't know how to make both hand to move with the weapon. The weapon only follows the right hand now. I want the left hand to hold onto the weapon, while I move the right hand with the weapon in it. Back then, I saw tutorials about animating, containing the required information as a bonus, but I can't find them, so I'm asking you.
If you can't understand something, please tell it to me, so maybe I could explain it better.

You may use some IK (invert kinematics) and some constraints to do this kind of things.

I did a very basic model to show that :

I presume you know how to parent a mesh to an armature, but if not, please leave a comment and I could complete that.

The body is parented with automatic weights.

The gun is parented too, but all the weights are given to the root bone.

The right hand has a IK constraint with a chain length set to 4 in order to end at the shoulder (the yellow line you can see in the gif above) :

The left hand is done the same but it target an empty indicated by the green arrow :

The gun now : its root bone has a constraint in order to follow a little bone of the man armature parented to its right hand. This allows the gun to follow this hand :

The empty has a constraint too which makes it follow the gun extremity, which is the bone indicated by the arrow in the 3D view below :

So, to summarize :

The gun follows the right hand
The empty follows the gun extremity
The left hand follows the empty

But in some situation surely, you want to free the left hand, because the man position needs it. So simply lower the influence of the left hand constraint to allow it to come back in place. You are also free to move it independently :


RayCast seems to sometimes hit mesh in Blender 2.69 I would like to check if my camera has line-of-sight of an Empty, and I need to use Blender 2.69 although I only have 2.78 on my own system. I'm using ray_cast to determine line of sight, and it appears to work in 2.78 but not 2.69! Here's my process.

For Blender 2.78 I open up my .ply file and import the mesh, and then load in both where I'll put my camera (camera_location) and where I'll put the empty (empty_location). I don't actually create any objects just yet. Then, I use the following code to detect line-of-sight.

direction = empty_location - Vector(camera_location)
(ray_hit, location, normal, index, obj, matrix) = scene.ray_cast( camera_location, direction )

And it will hit the mesh and return the expected values.

Now in Blender 2.69, I use a the same process, but invoke ray_cast differently because it is parametrized differently:

(ray_hit, obj, matrix, location, normal) = scene.ray_cast( camera_location, empty_location )

And sometimes it returns the expected values. Other times it seems to miss the mesh altogether and just returns ray_hit=False, location=<Vector (0.0000, 0.0000, 0.0000)>

Does anyone know why this could be and ideally, a solution?

I suspect that the problem is that the cast ray stops at end. In some cases, precision errors might cause the ray to stop before actually hitting the mesh. In my case, making the ray go twice as far solved the problem. Use

direction = empty_location - Vector(camera_location)
(ray_hit, obj, matrix, location, normal) = scene.ray_cast( camera_location, empty_location + direction )

for Blender 2.69


Is this expected behaviour for 'remove from all unlinked collections'? I executed 'remove from all unlinked collections' command on a cube and the active object disappeared in viewport and I found it in orphan data. I tried to move the orphan object to scene collection but failed. Does this command have a bug?

Did you try dragging the orphaned object from the Outliner back into the 3D View?

sorry for the low quality


How to assign same Data to multiple object copies I made many copies of an object, then I thought it would've been better if I made them to share the same Data (being an instance of the same original object), I know how to do it one by one, is there a way to do it for all of them at once? I tried Copy Attribute add-on but didn't find what option can do that, or even if this is possible in the first place.

Blender makes this very easy.

Select all the objects you want to have the same data, then select the object which the data will be copied from, last so that is it the active object.

Press CtrlL and choose Object Data. Or from the 3D view header Object > Make Links > Object Data.

Doing that will give the same outcome as if you had used the linked duplicates (AltD) to start with.


How to create Mist in Blender I already tried several ways to create Mist in Blender, but it never worked 100%. I use Blender 2.78 and I want to create Mist like in this scene here.
What are the exact steps?

Here is what I have tried so far:

I already tried this: http://blog.yamandi.com/mist-pass-blender-268-how-use-it-cycles but it simply did not work .. I dont know why.

(EDIT: I managed to fix it: Check out this graphic:

Until now I already used objects successfully as Mist-creators (Volume Scatter under Volume Material). The bad thing about using Objects as Mist-creator is that they dont have an endless mist range + the mist can not be bright. Normally it appears grayish result is bad..
Check it out
Please help

Indeed, you should connect the composite node to the output of the node tree, otherwise it won't work -- that's a mistake in the tutorial.

If you want to change the mist colour, place a ColorRamp node in between, and change the colour of the right-most point.


Can blender use 100% CPU when baking to speed up baking? Can blender use 100% CPU when baking to speed up baking? When I was baking particles, CPU usage is around 50-60% usage and take many hours, is it possible to use 100% CPU to reduce baking time. Does the reason behind this is because using multiples cores haven't implement to particle baking yet or that is not the problem?

I don't really know about programming sorry for my ignorance.

No, there's nothing you can do about that until multi-threading is implemented for particle baking.

...except use a single-core processor.


Blender text editor and the 'insert' key I don't know how but in the Text Editor, as I was editing a script, I disabled inserting (i.e. keystrokes overwrite current text instead of inserting a new character). how do I re-enable it?

I've tried:

Shift+0
Clicking Insert  on the on-screen keyboard
Restarting Blender
Opening a new script

You pressed the insert key on your keyboard. It's traditionally above the delete key. This is common behavior, and will do the same thing in other applications as well. Pressing this will toggle between 'insert mode' (normal mode) and 'overwrite mode.'


Cycles render won't render one object I have my lightsaber object and the textures on it, which render perfectly. I also have the plane underneath it that just renders out black. I think it may have to do with me possibly messing up the UV mapping of the plane.

Right now your ground plane is set to a layer that has not been set to render.

Move the ground plane that remains black to a layer thats beïng rendered like Layer 1. (Select the plane, press M, and select the first box)

Or enable the layer which contains the ground plane in your scene settings. (shift + LMB on the box/layer which contains the ground plane)

Hope this works for you...

B.t.w. The smoke texture from the other plane is missing. You can pack this in your blendfile using File > External Data > Pack all into blendfile or auto pack.


How to set Textbody value with Python-Script (Adding a text and editing the body)? I like to create a text:

How do I set the Text value?(Not the naming in the object-tree)

import bpy
def create():
    bpy.ops.object.text_add(location=(0, 0, 0), rotation=(45,0,0))
    #print("test")
    text_obj = bpy.context.object
    text_obj.name = "Text" #Objectname
    text_obj.rotation_euler.x = radians(90) # Rotate text by 90 degrees along X axis
    text_obj.data.extrude     = 0.05        # Add depth to the text
    text_obj.data.bevel_depth = 0.01        # Add a nice bevel effect to smooth the text's edges
    text_obj.data.body        = "Digital"        # Set the text to be the current row's date

    #'Emission material'
    glow_material = D.materials["font"]
    #mat = makeMaterial("font", (1,1,1), 1.8)
    text_obj.active_material = glow_material

My goal is to set text values automated by just setting the name of the text.
Then animating the text e.g. moving into camera view. Therefore  I am also looking for location, rotation and how to change the extrude value of a text_object. Anyone can help me and give me a short example on this? The shown code seems to be using the right function, but the result is not (Material not assigned and none of the attributes are set like "Digital" as body. Anyone can run the code and help me understand how Blender Python scripting actually works?

I am quite new to bpy library ;)

:) Thanks!

This is how I solved it:

import bpy
import bmesh

def create():
    scn = bpy.context.scene
    scn.render.engine = 'CYCLES'
    scn.world.use_nodes = True
    set_background()
#context
    bpyscene = bpy.context.scene

# Create an empty mesh and the object.
    mesh = bpy.data.meshes.new('Basic_Sphere')
    basic_sphere = bpy.data.objects.new("Basic_Sphere", mesh)

# Add the object into the scene.
    bpyscene.objects.link(basic_sphere)
    bpyscene.objects.active = basic_sphere
    basic_sphere.select = True

# Construct the bmesh cube and assign it to the blender mesh.
    bm = bmesh.new()
    bmesh.ops.create_uvsphere(bm, u_segments=32, v_segments=16, diameter=1)
    bm.to_mesh(mesh)
    bm.free()

# add subsurf mod and smooth
    bpy.ops.object.modifier_add(type='SUBSURF')
    bpy.ops.object.shade_smooth()
# add material to the UV Sphere
    ob = bpy.context.active_object
    ob.select = True
#scene.objects.active = ob

# Get material
    g_mat = bpy.data.materials.get("green_glow")
    if g_mat is None:
    # create material
        create_materials("green_glow")
    g_mat = bpy.data.materials.get("green_glow")
# Assign it to object
    if ob.data.materials:
    # assign to 1st material slot
        ob.data.materials[0] = g_mat
    else:
    # no slots
        ob.data.materials.append(g_mat)
    print ("Green Material assigned")

# move UV Sphere
    bpy.ops.object.move_to_layer(layers=(False, False, False, False, False, False, False, False, False, False, True, False, False, False, False, False, False, False, False, False))

# Text
bpy.ops.object.text_add(view_align=False, enter_editmode=False, location=(0, 0, 0), layers=(True, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False, False))
bpy.ops.transform.rotate(value=1.5708, axis=(1, 0, 0), constraint_axis=(True, False, False), constraint_orientation='GLOBAL', mirror=False, proportional='DISABLED', proportional_edit_falloff='SMOOTH', proportional_size=1)
bpy.context.object.data.extrude = 0.02
# Delete default "Text"
bpy.ops.object.editmode_toggle()
bpy.ops.font.delete(type='PREVIOUS_OR_SELECTION')
bpy.ops.font.delete(type='PREVIOUS_OR_SELECTION')
bpy.ops.font.delete(type='PREVIOUS_OR_SELECTION')
bpy.ops.font.delete(type='PREVIOUS_OR_SELECTION')
bpy.ops.font.delete(type='PREVIOUS_OR_SELECTION')
# Set new word
chars = "Digital"
for char in chars:
    bpy.ops.font.text_insert(text=char)
bpy.ops.object.editmode_toggle()
# add material to the Text
ob.select = True
ob = bpy.context.active_object
#scene.objects.active = ob

# Get material
mat = bpy.data.materials.get("white_glow")
if mat is None:
    # create material
    create_materials("white_glow")
mat = bpy.data.materials.get("white_glow")
# Assign it to object
if ob.data.materials:
    # assign to 1st material slot
    ob.data.materials[0] = mat
else:
    # no slots
    ob.data.materials.append(mat)
print ("Green Material assigned")
# text to mesh
bpy.ops.object.convert(target='MESH')
# Particle system
bpy.ops.object.particle_system_add()
bpy.data.particles["ParticleSettings"].effector_weights.gravity = 0
bpy.data.particles["ParticleSettings"].render_type = 'OBJECT'
bpy.data.particles["ParticleSettings"].dupli_object =
bpy.data.objects["Basic_Sphere"]

def set_background():
# darken the background
bpy.context.scene.world.node_tree.nodes['Background']
.inputs['Color'].default_value = (0, 0, 0, 1)

print("Set background color")

def create_materials(mat_name):
mat = bpy.data.materials.new(name=mat_name)
# get the material
mat = bpy.data.materials[mat_name]
mat.use_nodes = True
# get the nodes
nodes = mat.node_tree.nodes

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

# create emission node
node_emission = nodes.new(type='ShaderNodeEmission')
if (mat_name == "white_glow"):
    node_emission.inputs[0].default_value = (1,1,1,1)  # white RGBA
else:
    node_emission.inputs[0].default_value = (0,1,0,1)  # white RGBA
node_emission.inputs[1].default_value = 2.0 # strength
node_emission.location = 0,0

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

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

# remove links
#links.remove(link)

# Animate Particle System
#def animate():

# Move / Animate Sphere

if __name__ == "__main__":
create()


How to wrap on the sphere like ornamental design I have a default sphere and created ornamental design. I want to coil or wrap on the sphere. I tried shrinkwrap modifier but it did not work. Is there any other i can coil or wrap the design on the sphere.

Similar to like this

Below Aladdin lamp is my model and i want to wrap on that lamp.

Any suggestion or help. Thanks

1) Curve Modifier

For a simple sphere, I guess using the Curve modifier would be the best solution:

Create a bezier curve with the same circumference as your sphere
Add a modifier to your ornament and choose the curve as your Object in the modifier

2) Surface Deform and Shrinkwrap modifiers

But as your shape is much more complex than a simple sphere, perhaps you could use this method:

Create a plane, subdivide it and place it behind your ornament,
Give your ornament a Surface Deform modifier, choose the plane as the Target, and bind it so that the plane will deform the ornament as you want.
Give to your plane a Shrinkwrap modifier, and choose your lamp as the Target so that the plane sticks to the shape and the ornament follows.
Disable the eye icon in the Shrinkwrap modifier and shift D > duplicate both your plane and ornament all around your object, according to the direction of your shape's normals.
Re-enable the eye icon for each Shrinkwrap modifier so that you can see the the ornaments sticking all around your shape.
Apply the modifiers you want, delete the planes.
As this method didn't use an array, your ornaments are not properly joined, if you need to do it, join them with ctrl J and use some W > Bridge.


Posing armature causes mesh to stretch I've gone through multiple different 'fixes' trying to get these shoes to not stretch like this when my model is posed, but I've had no luck.  It's parented to the armature, the weights have been set like everything else on the model, I've tried applying scale via shift+A > Scale, but no matter what I do, the mesh ends up like this. It doesn't happen to any other part of the model.

There's no feet on the model that could be causing problems. The laces on our right are actually attached to the shoe model whereas on the left they aren't. I can't really think of much else I can do - it's probably a simple solution but unfortunately I'm rather new to using blender and can't figure it out. Anyone know how to fix this?

It looks like some vertices are getting left without any vertex weight influence. While in Edit Mode, select one single instance of any of these straggling vertices and check the Properties Shelf (to the right of the 3D View) for the Item Tab, which brings up the Transform Panel. Then look to the area beneath the Transform Panel for the Vertex Weights section. For any vertex that is selected, you will be shown all the vertex groups that the currently selected vertex is currently part of, as well as the vertex weighting assigned to each of the listed vertex groups. If you don't see any Vertex Weight section at all, it means the selected vertex is not part of any vertex group, and that would be your problem. Assign them by navigating to the Object Data tab in the Properties Panel, then look for the Vertex Groups Section, where you can assign, remove, and adjust the influence (weight) of the currently selected vertices.


Lock to Cursor no longer centers view automatically? Before, checking the "Lock to Cursor" option in the "View" tab, permanently locked my 3D-view to the cursor, meaning wherever I clicked, the view would automatically center to and rotate around.
Since I updated to 2.75 though, this doesn't work anymore. Now, when I check "Lock to Cursor", all it does is use the cursor as a pivot point. The 3D-view rotates around the cursor, but it the view doesn't center to the cursor.

This makes editing pretty frustrating, since i always used to navigate the 3D-view like that. every effort to find some option in the user preferences was unsuccessful.

This was changed in this commit:

  The view would jump each time, now compensate by adjusting the cursor panning.
  Less jarring and helps avoid problems when the cursor gets outside the view, see: T40353

Now you can center the view on the cursor with Home while Lock to Cursor is enabled, or ⎇ AltHome when it's not.

There are several bug reports from users who appear to have missed this functionality, so perhaps if you send a message to the bf-funboard with an explanation why and how the old behavior was more useful than the new behavior, the developers may decide to add it back in some form.


How can I animate multiple objects to be highlighted in a scene? For an explanation video about my company's products, I have an animated scene in Blender 2.8 with a large number of mechanical parts of which I'd like to highlight a specific collection of parts, for example by making them flash in red.
The closest option would be to animate the material of these parts with a second shader that makes the objects stand out and keyframing the ratio between the regular and the highlight shader from 0 to 1 with a mix shader node. However, since I have 50+ parts with 50+ unique materials, that would be a lot of manual work to set up and keyframe for every individual material used, not to mention that every material would have a set of nodes that is only used once in the animation which makes the already big scene even messier.
What other ways outside of material editing would exist to highlight a large set of objects at the same time?

You could duplicate all the objects (perhaps scale them up a percent, and maybe put them all in a separate collection), and give the all duplicates the same material with Make Links (Ctrl + L) > Material. Then do something like make this material have a Mix Shader, with a Transparent BSDF and red Diffuse BSDF plugged into it. Then Animate the Fac value of the Mix Shader.

EDIT:
You could do the work but copy-paste the extra nodes and copy-paste a driver in the Mix Shader to decrease the amount of manual work.
Add an empty, add a custom property (Object Properties > Custom Properties), give it a nice name (optional), right click the value field and choose Copy Data Path.

Create a node setup with a Mix Shader as an alternative output for a material. Give it a nice frame (optional). Right click the Fac value and choose Add Driver.

Edit the driver right away when it pop up, or with the Mix Shader selected go to the Drivers window. Type: Scripted Expression, Expression: "var", for Prop target the empty object, and hoover over Path: with the mouse and press Ctrl+V to paste the custom property data path.

Sadly when you copy-paste the highlight nodes to another material the driver  isn't copied with it, but you can easily copy paste a driver by right clicking the field where the driver is applied. Connect it to the other nodes, and no need to delete anything; the last selected Material Output becomes the active one. (Once i had the nodes and driver set up, it took me only a few seconds to paste an connect them in to each material.)

Since all drivers share the data path they are all driven by the same custom property. And it can be animated.


How to get the angle between three faces on a non regular non flat surface I've got a non flat and non regular surface with three selected faces. Is there a way to get the smallest angle between these with python?

Here's a slightly different approach.

The solution below treats the three faces as a triangle.
The script calculates all 3 triangle angles, then sums the two smaller angles to find the answer.

As shown in the image below, they are equal to the angle between the edges of the
larger angle within the triangle.

import bpy, bmesh
from mathutils import Vector
from math import degrees, acos

bm = bmesh.from_edit_mesh( bpy.context.object.data )
centers = [ f.calc_center_median() * bpy.context.object.matrix_world for f in bm.faces if f.select ]

if len( centers ) == 3:
    # Face centers as triangle vertices
    A, B, C = centers

    # Triangle edges (sides)
    AB = B - A
    AC = C - A
    BC = C - B

    # Triangle angles
    a =       degrees( acos( ( AB.dot( AC ) ) / ( AB.length * AC.length ) ) )
    b = 180 - degrees( acos( ( AB.dot( BC ) ) / ( AB.length * BC.length ) ) )
    c =       degrees( acos( ( BC.dot( AC ) ) / ( BC.length * AC.length ) ) )

    # The smallest angle between the two triangle edge vectors equals
    # To the sum of the two smallest angles within the triangle
    angles = sorted( [ a, b, c ] )
    print( angles )
    print( "All: ", sum( angles ) )
    print( "Two smaller: ", sum( angles[:2] ) )

else:
    print( "Invalid number of selected faces" )


Assigning my rigged model to a Mixamo skelton I was curious to know if there is a way to go about asiging a character I've made to an existing mixamo skeleton. My own model is in fact rigged, but I wasn't sure if I could temporarily assign him to the skeleton for a walking animation.

Create a copy of your rigged character, go to the first frame (or a rest pose frame, if it does exist), use your rig to copy the pose of the Mixamo rig as close as possible, then go to the modifiers and apply the armature modifier.
Not necessary, but if you want to stay clean at this point you can delete the rig and all vertex groups.
Select the character, shift select the Mixamo rig and press Ctrl P (Automatic weights).
Then you can turn on and off the visibility of the two versions of your character.


Parent NORMAL to Control XYZ Axis of Instances I have a basic and simple question:
How do AN get copy instances to point to follow the normal of original mesh / surface?

Would that involve BVH or KDTree? OR Is there also a way that is more Mathematical?

I did it using Sverchok at some point, maybe by accident:

This part below:

TRICK: Outward Vertex Normal => Adaptive Polygons
I learned this trick from Houdini TD Spencer Lueder not long ago. To get Vector of Points that goes outward, just subtract vector to itself.

In Sverchok, just use Vector Math to add or subtract to get outward vector.

So, I think Instances can be:
- On Point > Need Point Normal?
- On Poly Face > Need Face Center and pointing to follow normal?
- Scattered Instances across mesh... now for these, probably need a more clever way to "direct" the instance to follow the normal of mesh.

I saw Jacques template example on Instances along Curve and the Direction x Rotation happening there is nice.

Is there already a way to "copy attribute" based on distance? I am sure it will be involving BVH. And jump from here, I am wondering if in the future you will implement a way to "Paint" Attribute on Point?

My Wishlist:
- Attribute Transfer
- Visualizing stuffs like Normal, Point Number

Thanks!

Vertices normals can be converted into rotation information (with a free axis as you may expect) using the Direction To Rotation Node.

So the node tree in AN 2.0, the node tree is as follows:


Video Sequence Editor: Is it possible to specify default strip properties? I use the VSE produce sermon footage involving usually about 50 slides, which use mostly the same properties. Is there a way to specify default values for Blend Mode, Image Offset, and Length so I don't have to manually change them 50 times? I've found This answer as a work around, but then I have to add all the slides at the beginning, and I don't always know where they go until I get to them.

Don't know why this old question went up on Twitter, but if anyone comes by, there is an add-on by Snuq(not me) to handle all the needs when creating a slideshow. Get it here: https://github.com/snuq/SnuSlideshowGenerator/blob/master/Readme.md


I'd like to have portions of a texture not glossy I have a skyscraper building but I only want the glass in the texture to be glossy.  How would I accomplish this?

Ok, I have done a test and here are the results.

Here is the original:

here is an adjusted image

Cycles
You can use a mix node with a black and white texture as the Factor:

Result:

Blender Internal:
This can be done in blender internal by adjusting the influence map texture in Properties > Textures > Influence:

Note that you must have Mirror enabled in the material for the map texture to influence reflections.
Result:

Creating a mask:
So for a building texture you could make a mask texture for all the windows in an external image editor, or you could try making the image with blender:

Add your texture as a background image:

Add a plane and edit it to match the windows:

Add two Array modifiers to the plane (one for each axis):

Position the camera so it points straight at the window array (see this post), and set the camera to Orthographic in Object data > Lens:

Set the output resolution to the same as the texture and adjust the Orthographic scale of the camera in Object data > Lens until the array object and the texture line up:

Give the object a pure black material and set the world color to pure white.

Render. (If you are using cycles, you may want to set the number of samples to 1, this will give a mask with only black and white.):

Save the image to a file (F3) You now have a mask image file you can use as an Image texture in a material.

Example material: (click for full size)

Notes:

You may want a little bit of diffuse reflection on the windows, so I added a Brightness Contrast node to make the black on the windows a dark gray, which will result in a mix of the glossy and diffuse shaders. You can think of this as each pixel in image containing a value between 0 (black) and 1 (white), which will set the Mix factor for that specific pixel.

You may also want some subtle displacement, as windows are rarely perfectly flat. I added a noise texture and multiplied it with the inverted map, so the noise texture is only on the windows. (the rest is white). This is then plugged into the Displacement socket.

Result:

Also see this tutorial on BlenderGuru.


How to make a Stone/Clay Material? I want to make a clay material like in this photo. Not a clay render, a clay material; something for my sculptures I model in Blender. How could I make something like the material in this image?

I have been trying to make this material for hours and it's driving me crazy.
please help!

this is what i have gotten after playing around with nodes:

Try using textures to add some subtle displacement and/or normal mapping. Box mapped image textures or procedural textures are perfect for this. For example, here's a simple procedural texture consisting of some high frequency details mixed with a few larger features, normal mapped onto a diffuse shader (plus a touch of displacement):

It may be helpful to throw in some image textures to get some more irregular larger-scale features.

Note that true displacement is required to get those tasty bits of self-shadowing near the terminators prevalent in your example. Displacement is still currently an experimental feature, so to use it you'll have to switch enable experimental features in Properties > Render > Feature Set. Once that's done, be sure to set the displacement method to True in the material settings.

Displacement means the actual geometry is being displaced, so for it to work you need a sufficiently dense mesh. Adaptive subdivision is ideal for this; to enable it, add a subsurf modifier and enable Adaptive under Render.

See Blender Cycles True Displacement for more details.

Also keep in mind that lighting is just as (or perhaps even more) important as the material itself. Part of what makes your example distinctive is the long light-to-shadow transitions which show off the fine details of the material.

Try playing around with lights and different lighting setups while making the material to get a sense of how it behaves under different conditions.


Applying location moves object back? I'm not quite sure why this is happening.
Whenever I CtrlA and apply the location, it just resets.

This is centainly not normal.

I would suggest:

Move the object to where you want it
Go into Edit Mode
Select everything
Press shift+ s
Click Cursor to Selected
Get out of Edit mode
Apply Location
Go into Edit Mode again
Select everything again
Press shift+ s
Press Selection to Cursor

Make sure to not move the cursor after Step 5

OR:

Shift+ s
Cursor to Center
Shift+ Crtl+ Alt+ c
Origin to 3D Cursor


Animating a Ferris Wheel I'm new at blender and I'm trying to animate a ferris wheel.
But blender is still very difficult for me and I'm stuck. I made the base and the little cars separately but I have no idea how to let them rotate properly.

Anyone who wants to explain me how to do that?

Many thanks!

Firstly, make sure the 'cars' are separate objects, and make sure the wheel's Object Origin is at the centre of the wheel.

Here, you can see I have a circle, with monkeys (as separate, selectable objects) arranged around the outside:

The Object Origin (the orange dot in the centre) of the wheel means the wheel will rotate around the centre. The Object Origin of the monkeys ('cars') are at their top so they will rotate around this point as if they are 'hanging'.

Now, you want to select all the 'cars' then select the wheel last and press Ctrl+P to parent the cars to the wheel. Rotating the wheel will make all the cars rotate with it, but obviously they will not 'hang' like a real 'car' would.

For this we can add a Constraint to lock the rotation of the 'cars'. Select one of the cars and in the Constraints tab of the Properties editor add a Limit Rotation constraint :

By looking at the axis of the 'car' I can see it is the red x axis that I want to lock the rotation of:

On the constraint you just added tick the Limit X checkbox and also For Transform. By leaving the Min and Max values for the x axis on the constraint at '0' I am making sure the 'cars' can rotate 0 degrees.

Select all the cars and then select the car that you just added a constraint to and go to Object> Constraints> Copy Constraints to Selected Objects in the 3D View header:

This copies the constraint to all the 'cars'. Now if you rotate the wheel the 'cars' will follow but their rotation will be locked:

Now you are free to animate the rotation of the wheel and let the constraints manage the 'cars'.


Blender 2.8x Outliner - Manually Reorder Objects within Collection In my Blender project I have collections like so:

And I would like to manually reorder the objects within the collections. For example, within the collection named Fat Donuts, I would like the order to be:

Letter D...
Letter O...
Letter N...
Letter U...
Letter T...
Letter S....

I cannot get those items to change order using straight drag-and-drop. I did notice that the order is initially based upon the order in the items are placed into the collection.

I have turned off sorting as you can see here:

I know it is possible to manually reorder elements within collections, but I cannot figure out how to do it.

As you've mentioned, uncheck 'Sort Alphabetically' first to allow manual arrangement. After doing that you should be able to reorder the layers by clicking and dragging them around.
The dark highlight over a collection indicates that you're joining your current selection to another and the dark line indicates that you're placing a collection above/below another collection.
Holding down control while dragging a collection parents the current selection to the one you're dragging it into but still allows it to be higher up the hierachy.

Maybe this question was asked before a newer Blender release and a potential issue was resolved. (Using Blender 2.81a)


IK not moving correctly I'm having an issue with IK, despite it always working fine previously. I've set up an IK on the lower leg bone as shown below. The IK target is the bone opposite the foot, and the IK pole target is the floating bone. The chain length is 2 and the pole rotation is 90 so that the leg faces forward. WHen I try and move the bone with G, all I get is the rotation as see in the gif below. The pole target and IK target are both set to not deform. Does anyone know what might be going wrong?

You are moving the wrong bone , the Target is the bone that is used to move the IK , Thats why it is called Controller bone


Do nodes in EEVEE work the same as in Cycles? I played a bit with nodes that I have a basic idea how they work but not much more than that, so I have to learn much more about it.

I know Blender Render uses different nodes than Cycles. As of now I've only made assets in Blender to export to other animation apps. Now I want to learn to animate with Blender using the coming soon real time engine. Do I need to find specific tutorials for EEVEE? Or does it use the same node branching for Cycles?

Eeevee uses the same node structure as Cycles, and its aim is to make its materials as consistent as possible with Cycles materials. Ideally, you should be able to preview the result of your Cycles node structure by switching to Eevee or by using the Eevee-powered "Material Preview" viewport directly.

This already works almost perfectly with the nowadays very common PBR texturing workflow that uses the Principled Shader and color/roughness/normal/displacement textures.

Here's an example material with Mix shaders, Fresnel inputs, Noise textures, Bump vector nodes, etc.: they all work in both engines and you can hardly see the difference in the final result.

Note: the wowen material in the rest of the monkey head is "Weavr" from Simon Thommes, which is also surprisingly consistent among render engines, despite it being quite complex.

However, not every node is present or is fully featured in both renderers equally. This goes both ways: the Shader to RGB node for non photo-realistic (NPR) renders is EEVEE only, as well as the Specular BSDF.

Anisotropic, Holdout, Toon, Velvet, Hair and Principled Hair shaders only work with Cycles, as well as several input nodes: e.g. Particle Info, Bevel.

This list may change: see "Node Support" in the Manual for detailed and updated information.

Note that you can have different "Material Output" nodes, one for each render engine, in the same material, in case you would like to tweak the materials independently (e.g. to make use of Cycles-only features in Cycles while faking them somehow in Eevee)


How to clean up intersecting faces and edges? I'm currently trying to build grid structures by using planes and solidifying them. Problem is, when I use this to create hexagonal grids, the solidifying modifier does this in a way that faces of the same mesh intersect each other:

Above object started out as three planes which were joined to a Y-shape, then solidified.

You can see that in the middle, the upper faces actually cross each other.

Is there an easy way to clean this up in a way that…

a) …where the faces intersect each other, edges and vertices are created
b) …the inner parts of the faces are removed?

To clarify, I am working with planes, because I am warping them, which works far easier than dealing with already solid meshes (hard to explain I guess… My point is that I really don't want to change my underlying workflow, if I can help it). And since I'm working on grids, where this phenomenon occurs often, having a way to automate this would be really helpfuL.

Here is a picture that better illustrates what I want to achieve (right), as well as my current workflow(File is in a comment below):

Edit: As your request has changed I give a second answer below.

Maybe you're not choosing the best way to build your object, in your case the Solidify modifier will create unwanted intersection and it will be hard to fix.

What you could do for example is begin with a triangle (3 vertices circle), extrude it up, then select the 3 faces, press AltE to extrude, choose Individual Faces and drag to extrude.

Second answer:

Create a 10 vertices circle, scale one of 2 vertices so that it makes a hexagon.

Move down those vertices, extrude down the whole mesh.

Select one of 2 edges underneath, bevel them, extrude down.


Why can't i select objects using the outliner tab? Pressing "select objects" from the drop-down menu after right clicking on it doesn't select the objects in the 3d viewport. I'm confused because this was working yesterday and now it doesn't.

Can someone shed some light on this issue? Thanks!

You are viewing the Outliner in Scenes mode

You need to change it to View Layer mode

Seems like it should work in both modes, but it doesn't.


Blender GPU rendering pcie x16 to x1 using riser cables Do blender GPU cycles rendering, need x16 or x8 pcie lanes?
Riser cables enable 6 GPUs (depending on motherboard) because its using x1 pcie lane. Will it bottleneck or not because its doing only calculation not output.
Pcie 3.0 speeds
x1 = 1GB/s,
x8 = 8GB/s,
x16 = 16GB/s,

Thanks :).

I was hoping someone had the answer to this question. My gut feeling is saying that it will work just fine rendering and blender through a 1x to 16x riser. I do think it will bottleneck just a little bit whenever it's sending the information to the GPU but I think it will be imperceptible for the most part. I have seen the GPU risers used in gaming and you do have a fairly significant drop in performance but I think that's due to what you said cuz there's two way communication that's constantly taking place. But with blender my understanding is blender Sims 2 textures and all that stuff and the mapping sing mapping to the GPU the cheap you calculate 2 and then sends the results back now granted it's doing that several times a second because it's doing in tiles and so forth but the two-way communication is nowhere near as rapid as it is in a gaming situation. Or at least that's my assumption. I do plan on trying that very thing out within the next couple months or so. My motherboard has 116 x lot and two 1X slots and I'm going to buy a 1x to 16x Riser and then hook my GTX 1060 to it and see what kind of drop of formats if there is a drop in performance there is. I'm going to bookmark this question and then come back and add more to it or leave another answer whenever I do this little test.


Is there a way to switch selection via hotkeys? Say, I've created just a cube and a cylinder and now the cube is selected. Is there a hotkey that switches selection to the cylinder?

I guess, the order of switching (if there's more than 2 objects) may be different like switching between tabs in a browser: "by usage" and "by creation order", the former being more helpful. Switching between objects would decrease mouse/touchpad usage tremendously. I guess, there's either some "history of selection" object in the Blender core and this is implemented or this is not implementable without changing the core.. but I may be wrong.

The same question may be asked about switching between faces/edges/vertices of one object, but let's start from the switching between objects.

CtrlI inverts your selection.

That is, anything currently selected becomes unselected; anything unselected becomes selected.

That will include any cameras and lights you have on the current layer.


Forcing Subdivide to create non-zig-zag edges Is there a way that when something is subdivided, it can be constrained from making the zig-zag flower petal pointed edges?

The problem is that you have a "triangle fan": A bunch of triangles converging on a single vertex (also known as a pole). The subsurf modifier will not work well with that.

You need quads.

Delete the vertex at the center of all the triangles.

Select the inner ring loop and press E to extrude and without moving the mouse press escape

Then scale all of the vertices to 0 (S0)

That will make all of the newly created vertices converge in a single place. And the subsurf should work well.


Adding driver through python doesn't work properly? I am writing a script and this script required adding a driver to an object,so I added it but I have 2 problems with it.

I have added a single property variable and set its ID and path. After I run the script, the variable added correctly and everything is fine, but I see that the path is colored in red and Blender said that my driver failed. I figure how to fix this, by selecting the ID object (spin object) one more time (which is already selected) as shown in the figure.
So how can I fix this? Because I don't want to do this every time I run the script.
and here is the script and the image.

newVar.name = "Array"
newVar.type = 'SINGLE_PROP'
newVar.targets[0].id = bpy.data.objects['Spin object']
newVar.targets[0].data_path = 'modifiers["Array"].count'

When I change the value of the variable (array count), I didn't see the effect until I press update dependencies. I want it to be updated without pressing update dependencies
every time I change the value of the variable. How can I do this?

I think this is a limitation of the current dependency graph.

The way I would handle it is to add a custom property to the object, than add a driver to the array count that uses the custom value, set this other driver to also use the custom property.

As answered in the comments, you also need to overcome the chicken and the egg theory when creating drivers.

Edit

Add a new custom property to the object. in the UI you click the add button, in python there is nothing special, you just give the property a value and it gets created.

bpy.data.objects['Cube']['myControl'] = 1
Add a driver to the count value of the array modifier

Add the same driver settings for the other item that previous read modifiers['Array'].count

Now when you change the myControl value, both items will use the same value. You can create a panel wherever you like to display the custom property or add it to an existing panel.


When mesh objects are added together in edit mode to create one single 'object', how can the intersections between the mesh be removed? Is it possible to remove the internal intersections of mesh that have been added together in edit mode to create one 'object' - ideally creating a smooth interior, e.g. for 3D printing?

I have tried booleans but they are so destructive I'm really hoping for another fix..

This is what I have right now:

And this is what I would like it to remain looking like this on the outside:

What I would like it to look like on the inside is a replica of the outside, with all the redundant mesh removed - like the inside of a toy or a clay model that has been hollowed out.

Booleans are just not working, they absolutely destroy the mesh whenever I try to use them.

Literally dying trying to figure this out, so any help would be immensely appreciated.

The key issue is that it's for optimising a model for 3D printing, AS WELL AS keeping it smooth on the outside (and non-manifold)

Thanks!!

I would approach this by using face-select mode, and selecting the visible faces of each constituent element of the model, and assigning the vertices comprising those visible faces to a separate vertex group for each element. If a face is partially visible from the exterior of the mesh, I would assign it to the group. When all of the visible faces of all of the elements have been assigned to vertex groups, hide all of the groups, using the H key. Select the remaining vertices, and delete them, and unhide the vertex groups using ALT-H. Then stitch the constituent elements together.


Automating mapping graphics onto object I am currently a non-user of Blender, not having used it for about six years.

I have the need to wrap a number of large number of images around a sphere and produce a 3d render (poss with or without the sphere being rendered to help in composite work).

Can Blender be automated to iterate over a number of images, apply an image with the same mapping coords, and then produce a render?

If you have a scene set up with your camera in position, and a sphere that's been UV mapped, has a material applied with an Image Texture connected and setting the color, you can use this script to automate loading images and rendering the results:

import bpy
from os import listdir
from os.path import join, dirname

s = bpy.data.objects['Sphere']  # <-- REPLACE OBJECT NAME IF NEEDED
m = s.active_material
t = m.texture_slots[0].texture

img = t.image

imagesFolder = "C:/SomeFolderWithImges"  # <-- REPLACE THIS WITH ACTUAL PATH TO YOUR IMAGES

isImage = lambda fp: fp.endswith( tuple( bpy.path.extensions_image ) )

for f in listdir(imagesFolder):
    if isImage( f ):
        t.image.filepath = join( imagesFolder, f )
        bpy.context.scene.render.filepath = join( dirname( bpy.context.scene.render.filepath ), f )
        bpy.ops.render.render( write_still = True )

Just copy this into a new textfile in the text editor, replace the path to the images you want to map to your sphere on line 11, and press Run Script.

Sample scene initial setup:

Rendered results after running script:


Spinning existing vertices around a point I wanted to know if it's possible to rotate a part of a mesh around a point? A bit like what the spinning tool is doing but for the selected vertices of an existing mesh.

For example on the image below, how could I spin this selected vertices around the 3D cursor in order to have a nice curve like on the object on the left?

Thanks a lot!

In these illustrations, the track to be deformed is lying in the XY plane, Y up, X across.

You can use the spin tool to generate new geometry: extend your object around an arc of a circle, by selecting the top row of existing vertices, and AltR spinning them. In the Tool region, set the Axis to (0,0,1), the Angle to 90 degrees, and the Center to the center of the circle from which the arc is taken. (The empty in this illustration is just to show roughly where the center is)

But it's hard to adjust the center without constructing guidelines, and destructive. It's probably easier to use Simple Deform > Bend, with these settings, and an empty oriented and placed as shown:

That example uses the 'Limit' setting to restrict the deformation to the halfway point in the track's X, in the empty's space. You may need to slide that up and down, depending on the extent of your track in the empty's X.

Or...

.. you can restrict the deformation to a vertex group. (The angle setting becomes a bit counter-intuitive)


Problem with legs and meshes in vrm model (bones) my problem has to do with a vrm model that i imported into Blender.
I attached the mesh of the boot to the amature with automatic weights.
For some reason if i test it, when i move one leg the mesh of the other one comes with it.

One possible issue is that the meshes may possibly be linked to each other, so when you move/alter the mesh of one, the mesh of the other is moved an altered as well. You can try separating the meshes/objects.

Select the boot
Go to Object-->relations-->make single user-->Object & data

The other issue is that you may have somehow linked both boots to the same bone/armature.. You may have to unattach them and reattach them separately after making sure that only the materials/texture is linked, and not the meshes.


Can't save keyframes When I press "I" and select "LocRotScale" function it doesn't save the keyframe.

You've selected Bone.009 but it's locked as we see in the left panel. Maybe you've locked this track by accident, for example with the shortcut Tab.


How can animated shape keys be used in the NLA when a character is linked from another .blend? The character's file has some actions to control a rig (rigify) this works fine in the NLA but shape keys need to be controlled by a mesh. A setup like this:

Even the offset (start keyframe) can be adjusted.
The scene which links to the character's .blend has a proxy for the rig, actions work fine. But I don't get the key-track from the above image.
When I add another proxy this time for the mesh instead of the rig another instance of the character is shown. The 2nd instance isn't animated by the rig but shows the shape key animation!
What is the correct way to get a key-track in the NLA?
(This is a follow up of: How can shape keys of a linked object be controlled? but after some reading I focus on the NLA tracks.)

I created a .blend file start with the default cube.  I gave it a relative shape key and shrunk one of the faces.  I then added keyframes at 1 and 31 with influence 0 and 1.0 respectively.  That makes the face shrink over time.

I then duplicated the cube with alt-d.  Since both cubes have the same mesh, the action is on both of them.  I made a single-user copy of the mesh by clicking the [2] button next to the mesh's name.

It still had a link to the action datablock.  While there are probably easier ways to do this I went into the NLA editor and used the vv icon to move the action into a track, then I deleted the track.

Now I have one cube with the action, and another cube with no action.  I think I am at the point where I can answer your question.

I took the cube that has no action and in the NLA editor I used the menu Add > Add Track to put an NLA track on it.  Then I use Add > Add Action Strip and select the KeyAction.  This causes the action to be added as a strip in the track starting at the current frame of the timeline (I had my time cursor at 31).

Now I have two cubes, each with its own mesh datablock (although they have identical shape keys) and those shape keys are animated by the same action, but the action occurs at different times, because the strip is offsetted.

Although this may not be exactly what you want to accomplish, maybe it shines light on the relationships between the datablocks and guides you to your answer.


L and R poles are flipped using Rigify When I generated the rig I noticed that the L and R poles (set to the proper feet by default) are flipped. This obviously causes quite a few issues. I used the metarig in 2.91 and only removed the facial controls.

Make sure your metarig's legs are set up correctly.
The only bend allowed in an IK chain is the one to indicate in which way it should bend. If you do it wrong, Blender will orient your IK wrong.
Also check your bones' orient.
As you can see below, I just shifted the metarig knees on the side and it generated the same way as yours.


fire simulation start frame I'm trying to do a fire simulation that should look like a meteor. I have applied quick smoke, then smoke and fire on the physics tab but the fire appears right after 100 frames, too late for what I am trying to do.
How can I control the exact frame where the fire should appear?
I want the fire to appear right on frame 1.

Just start your animation frame 100.

And keep the domain start frame at 0.


3D Builder won't accept meshes made from Particle System in Cycles Render Basic Background

So, I was in very early stages of some modeling I was creating as a favor to a company called "Atomz Lab". I was to create and 3D print their mascot (A young boy wearing an atom T-Shirt, holding a graduated cylinder full of a orange substance).

It was essentially something I could add to my portfolio.

But very early on, while I was still working on the basic shape and detail of the head, I ran a quick test, to see if the hair would export like in material mode, or how it did post render.

The Problem

After converting the particle system into a mesh and exporting it as .obj and .mtl files, I loaded it up into 3D Builder, only to find just the head. My hair object was gone. After several other attempts, I finally gave up and decided to post this for answers.

I believe the problem could either be contributed to the limitations of 3D Builder, or that Blender exports converted meshes from hair particles in some sort of format only it can read.

Here's some screenshots:

After exporting the .obj and .mtl files, I opened them up in 3D Builder.

This is what I found:

The hair disappeared!

I really need some help. If any of you know the answer, on how to bring converted meshes into 3D Builder, please let me know.

Looking at the reference image I'd say it could be better to model that hair via simple mesh without any particle system. This way is often used for hair in some styles of 3d and 2d art, it allows to avoid possible slowdowns of particle system as well.

As to converted particles probably you used Path option as how particles are rendered in the Render layout of the particle system settings.

After applying Particle System modifier they become simple lines (edges with no thickness) which can't be printed because they are non-manifold geometry.

One way is to make that geometry manifold is to solidify it using Skin modifier on converted particles.

Select object with converted particles (note that you might want to leave particle system undeleted but hidden in case some changes are needed).
Add Skin modifier to it. By default modifier will solidify only one of converted particles because it marked a vertex as root for only one edge while it needs one root vertex for all the connected pieces of geometry. As per manual:

  Mark Root
      Marking a vertex as root causes that vertex to be used for calculating     rotations for connected limbs. [...]
      Each set of connected vertices should have one root node.

The easiest way to mark one vertex for multiple edges of the converted particles is to enter Edit mode, select all and press Mark Root button. It will find one vertex itself to mark so no need to deselect anything.
Once done all the particles will have thickness and become manifold, all-quads geometry. Make sure to apply modifier if exporting mesh.

Another simple and working a bit differently solution is to
set Object as how particles are rendered in Render rollout instead and give it some thin and long cube as object to be used as hair particle to make particles based on it. See underlined option on the 1-st screenshot, change it to Object and choose cube you created. No need to make follow it anything, it will be done automatically.

Make sure to rotate base mesh accordingly so it's oriented accordingly (e.g. outside of the mesh, typically you will need to rotate it along X axis).

This way is less flexible and gives slightly different result as it doesn't allow e.g. Brownian Motion setup to change particle orientation along its local X and Y axis, only along Z, and other options which allow to randomize  particles.


How to get UV to be straight? Because of the intricacy associated in this room i'm modeling instead of building the entire room then uv-unwrapping i'm instead doing it piece by piece. I did the floor first and it looks good in unreal engine 4, but then i stated the walls and when i unwrapped them it came out looking like this in the uv editor [pic below] does it look like that because of the way the camera was in the 3d view port? and regardless of what caused it how do i straighten it up or is it fine the way it is?

First, Select the object in object mode and apply rotation and scale. Second check your model for any connected polygons that will stretch the final map. Think about it like origami, where ever you would bend your model to make a paper version, that's where you put the seams. Generally you want to keep square polygons as a square shape in the uvmap. If you have a uneven polygon attached to a square polygon the uv map will stretch the square polygon's normals to match the uneven polygon. Just something to think about.


Baked normal map showing seams at uv island boundaries I'm trying to bake sculpt info into a normal map so that I can use it on my retopologised model.  I baked the normal map from the sculpt to the model using model's tangent space.  I then added the normal map to the normal input of the model's shader.  However, I'm getting some pretty sharp seams that corespond to the boundaries of my uv islands.

If I apply the normal map as a texture, there are visible seams at uv island boundaries, so maybe the normal map is being baked incorrectly?

My node set up and shader settings are visible in the attached image.  How do I fix this?

Looks like I needed to set my texture node's color-space field to -non-color data'.  After that it worked.


How do I bring this face up and snap to another face? How do I move this selected faces up along the Z axis and snap it to the unselected faces? They were originally connected together, but I cut them out initially thinking I didn't need them. The vertices that are supposed to be connected together are on the same Z axis. I tried different settings in snapping but the selected faces seem to just jump all over the place. I need to keep the sizes of the selected faces the same, so I can't just select vertices and snap them up. I need to move everything up together.

Thank you.

What I use is the Bridge Edge Loops function. It's not perfect since it won't move all the faces but will connect the top edges cleanly.

Make sure you are either in Edge or Vertex Mode and select the two Edge loops you want to connect.

Press W and select Bridge Edge Loops.

In the operation settings, check Merge and set Merge Factor to 0. If 0 moves the wrong  Edge loop then set the value to 1.

Lastly you'll have to move the rest of the faces manually. It's not perfect but works well enough for my own usage. I believe this is what user277143 is referring to but as I can't add comments yet I instead created a new answer.


when I render an Animation it shows up completely Blank I am using Blender 2.80. I finished a blender scene and hit ctrl f12 to render. the result is completely black and it spits out all 100 frames in a couple of seconds.i have looked at a lot of troubleshooting pages and none of them have helped fix the situation. i have a spotlight at the camera, world brightness settings are over 1, i know the camera is not obstructed. it also appears that any other blender file I have that has previously rendered before wont do so now. any help would be great, thanks!

it seems that the blender file had become corrupted. I restarted the computer and opened a new file and tried the animation. I was able to copy objects over and finish the animation, thanks for all the help!!


Is it possible to parent an object to a different bone in 2 different (multiple) animation? I'm doing multiple animation on a humanoid who has some kind of a sword carrier (I don't knonw the exact word). And so this sword carrier AND the sword are both parented to a leg bone , but only for the walk and run animation.
So I'd like to know if there is a way to clear the parent of the leg bone and parent it to the hand bone but only for the attack animation.
Hope you understood what I'm searching for and that you can answer me :D

P.S. : I already tried the 'child of' technique, but that get me to another problem of position between the animation.

The only solution is the Child_Of constraint if you want to alter parenting in pose mode. If that leads to another problem, ask it, there is probably solution to it.

Make sure the bone that is gonna get the Child_Of constraint has no parents. Else you will get multiple parent transformations (the original parent and the constraint on top).

There is a way to rig an inverse parent transformation to negate the original parent (if present) when needed from pose mode, but it is complicated and probably not worth it.


Why does an object with a particle system not appear in the render? I have a project, and it has an object that has always rendered correctly, but one day when I open the project and make a test render, the object has disappeared. All the settings are normal, the object, and all of its children render display in the object outliner set to true. I really don't know what happened to it. Can someone tell me what I should look through to diagnose it?
Sorry I cannot provide much detail. What I've explained is all I know.
Edit: I am uploading the .blend file at http://www.pasteall.org/blend/34719
This is a Minecraft scene. It is the wolf that doesn't render. At one point it did, but now it just won't. The wolf has particle properties. I don't know if that matters, but it could. Look through all the wolf's properties to try and figure it out.

Your wolf is emiting particles, but you have to check "Emitter" in particles render settings to make it renderable.


Getting instanced particles to follow paths of hairs in particle system with hair dynamics I've created a plane with a hair particle system and with hair dynamics on. I then used a particle instance modifier to add a custom cylinder to each hair particle, and turned on both 'create along paths' and 'keep shape'. I then added a wind force field to displace the particle system and (I hoped) in turn the cylinders. However, the instanced particles remain stationary when I play the animation and do not follow the paths of the hair particles (which deform just fine). Is there any solution to this? Am I missing something obvious? Here's the .blend file: https://drive.google.com/file/d/1qqP-HdKrQP_uk3MMPlcxnhdnoKtU7yi7/view?usp=sharing
Thanks

You almost did it, just a few things to fix:

decimate the number of faces of the cylinder with the Decimate modifier, un-subdivide. The faces get multiplied by each particle. In Object mode, right-click the object and select Shade Smooth, and will look the same with only 300 vertices, that's 1/10th.

lay down the cylinder along the Y-axis by a -90° rotation around the X-axis in Object mode, apply the Rotation (Ctrl+A). Make sure that the cylinder's origin is at bottom of the mesh, at world origin. Apply Location if needed.

In Edit mode, move 3D Cursor to world origin (Shift+S), select all vertices (A), and select from menu: Mesh → Sort Elements... → Cursor Distance. This prevents strange things from happening as the particles bend and twist due to a change in wind direction.
layout of particle object

Change the settings of the Particle Instance modifier: (Pole Axis: Z, set Position: 1.000, clear Keep Shape checkbox)

Particles in the wind:

Blend file:


How can I get a list shows which add-ons are enabled by user? I want to know which add-ons in Blender 2.79 are enabled by me.

Blender's Python API allows to get the currently enabled add-ons, without any differentiation of what/who enabled them. Therefore it's not possible to distinguish between add-ons that have been enabled by default, by the user or by another add-on/script. You may however compare the currently active add-ons to the ones that are known to be enabled by default and only use those that are not it the default list.

Blender 2.79

The enabled add-ons can be access through the user preferences bpy.context.user_preferences.addons.

import bpy

for addon in bpy.context.user_preferences.addons:
    print(addon.module)

The add-ons that are enabled by default are:

io_scene_3ds
io_scene_fbx
io_anim_bvh
io_mesh_ply
io_scene_obj
io_scene_x3d
io_mesh_stl
io_mesh_uv_layout
io_curve_svg
cycles

Therefore a solution that excludes them could look like this:

import bpy

default_addons = {"io_scene_3ds",
                  "io_scene_fbx",
                  "io_anim_bvh",
                  "io_mesh_ply",
                  "io_scene_obj",
                  "io_scene_x3d",
                  "io_mesh_stl",
                  "io_mesh_uv_layout",
                  "io_curve_svg",
                  "cycles"}

for addon in bpy.context.user_preferences.addons:
    if addon.module not in default_addons:
        print(addon.module)

Blender 2.8x

The enabled add-ons can be access through the preferences  bpy.context.preferences.addons.

import bpy

for addon in bpy.context.preferences.addons:
    print(addon.module)

The add-ons that are enabled by default are:

io_anim_bvh
io_curve_svg
io_mesh_ply
io_mesh_stl
io_mesh_uv_layout
io_scene_fbx
io_scene_gltf2
io_scene_obj
io_scene_x3d
cycles

Therefore a solution that excludes them could look like this:

import bpy

default_addons = {"io_anim_bvh",
                  "io_curve_svg",
                  "io_mesh_ply",
                  "io_mesh_stl",
                  "io_mesh_uv_layout",
                  "io_scene_fbx",
                  "io_scene_gltf2",
                  "io_scene_obj",
                  "io_scene_x3d",
                  "cycles"}

for addon in bpy.context.preferences.addons:
    if addon.module not in default_addons:
        print(addon.module)


Unable to change animation interpolation or extrapolation I'm new to Blender and I have a simple animation consisting of an empty object changing orientation around its Y axis about 30°. The steps to animate this:

Opened up timeline and set position to 0 (pos of keyframe 1)
Hovered over object's Transform > Location values box and hit I key (so that it highlights yellow), thus placing keyframe and pos 0
Moved to pos 60 on timeline (position of keyframe 2)
Changed orientation of object as desired
Hovered again over Transform > Location and hit I, placing keyframe 2.

When I hit play the object rotates with a bezier ease in and out. I want a linear interpolation, so I go to the dope sheet, highlight all keyframes, and hit T then select linear interpolation, but the animation remains with an ease in and out. I also go to Channel > Extrapolation Mode and choose Linear with no visible change.

My graph editor is completely flat and shows only 2 points (presumably the keyframes).

Screenshots for clarity: 1, 2, 3

Any ideas what I'm missing? Thanks in advance.

You are not supposed to be changing Extrapolation mode, that is used for "extending" or repeating an animation after the last keyframe, as far as I know.

You are supposed to change the handle types, instead.

Select all your keyframes with A and then press V Set Keyframe Handle Type > Vector


How can I show "output change path" in a custom panel? Hello I want make a blender addon to save images from blender but I want to change the default path.
I know right you can change the output path here.

I want to use that in my custom addon.

right know I can get the path string
by using
        row.label(text="Render Path " + bpy.context.scene.render.filepath)

But I like to use the same row from the Output panel to change the path.
I want to use the same thing but in another panel is that possible ?

Put the property in your layout
def draw(self, context):
    layout = self.layout
    scene = context.scene
    layout.prop(scene.render, "filepath")

If you enable developer extras in preferences, can right click on any (just about) and "View Source".


Why does the leg bone move the whole body? I have a 3d model

And when I move the Left Leg bone it works fine like this.

But when I move the Right leg bone I get this Problem

How can I solve this???

(Links are Images)

You are using vertex groups to bind armature to mesh : so you'll have to

Delete the duplicated vertex groups
Fix/reassign the needed ones ( Head, Body, Arm_L, Arm_R, Leg_R and Leg_L )
Use only one Armature modifier ( delete the others )


How to create curved edges (something I thought was impossible) like this internet example? I have always believed that edges are always straight in Blender, that that is just how it works.  then I ran across topologyguides.com.
Their tutorials are terse, but take a look at this one and in each picture the final step has curved edges.
https://topologyguides.com/bevel-width-transitions
I don't know if they are using an add-in, or what.  I haven't been able to find an answer for this.

This looks like they aren't using actually curved edges (as far as I know, you're right that would be impossible) but rather they're using a Subdivision Surface modifier with the "On Cage" option turned on (you can see it at the top of the modifier, next to the options toggling using the modifier during render, in the viewport, and in Edit mode). If you don't see that option, it may be because the subdivision modifier isn't first (the option disappears if there's another modifier before it).
As I understand it, the "On Cage" option just projects the edges onto the surface produced by applying the modifier, which makes them look curved. It's just an aesthetic thing, though - internally, the edges are still straight.


Parent bone temporarily? I asked a similar question before, except this time instead of parenting objects I want to parent the gun magazine bone to the left arms wrist for a bit, then set it back to the gun bones.

My arms and my gun are all one armature, so I only have one armature in the scene.

You can use the same technique as before, but using a bone constraint.

The only difference is that you must add the constraint from Properties > Bone constraints panel instead of the Constraints panel, while in pose mode:


How to make mesh axis in local mode like in custom mode? I have this in local mode

I created face orientation axes
Now I have this in custom(face) mode
I need this in local mode

I found the answer
It consists of 7 steps
Orient local axis to match mesh's shape
How can I do it faster?

THANKS!

How have you rotated the cube?

Local transform orientations do follow the object's transforms.

But If you've rotated the cube in edit mode instead of object mode, then you have rotated only the mesh inside the object. Not the object itself, which rotations haven't changed.


Use Quaternions for unique rotation

As well as the matrices being distinctly different, the quaternion rotations returned from your matrices are distinctly different. See this blurb here on Mathematics of Eulers

Matrices m1 and m2 displayed in 3D view using Maths Vis Console Addon

Adding some lines of code to your example,

print('Rotations Quaternion')
print(m1.to_quaternion())
print(m2.to_quaternion())
print('Rotations Quaternion to Euler')
print(m1.to_quaternion().to_euler())
print(m2.to_quaternion().to_euler())

To get a quaternion representation of the rotation

Rotations Quaternion
<Quaternion (w=0.2698, x=-0.0753, y=0.1302, z=0.9511)>
<Quaternion (w=0.2605, x=0.0147, y=0.0578, z=0.9636)>
Rotations Quaternion to Euler
<Euler (x=0.2136, y=0.2151, z=2.6118), order='XYZ'>
<Euler (x=0.1194, y=0.0018, z=2.6136), order='XYZ'>

Notice only the Euler result for Matrix m2 corresponds.  Can decompose a Matrix into its components with Matrix.decompose() The rotation part is returned as a quaternion.  Here is an example that decomposes and recomposes the matrix m2

v2, q2, s2 = m2.decompose()

S = Matrix.Scale(1, 4)
for i, axis in enumerate(s2):
    S[i][i] = axis
m = Matrix.Translation(v2) * q2.to_matrix().to_4x4() * S

print(Vector(m.to_euler()) -  Vector(m2.to_euler()))
print(m2 - m)

Produces the result

<Vector (-0.0000, 0.0000, 0.0000)>
<Matrix 4x4 (-0.0000, -0.0000, 0.0000, 0.0000)
            ( 0.0000, -0.0000, 0.0000, 0.0000)
            (-0.0000,  0.0000, 0.0000, 0.0000)
            ( 0.0000,  0.0000, 0.0000, 0.0000)>


How to offset the edges? I want to offset the edges. An reference.gif is attached. I have done in other software. Can we offset the edges in that way.

Yes, you can.  Download and install the offset addon.  You can find the source code here:
https://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/Modeling/offset_edges

You can find the compiled script (mesh_offset_edges.py) here: https://developer.blender.org/F100890

Put the file in your ..\Blender\2.xx\scripts\addons directory.  Then, in Blender, bring up User Preferences and click on the Addons tab.  At the bottom, click on "Install from file".  Find the file and click on it.


How to read and print data from a dictionary using a modal operator? The following code creates a dictionary and prints it at regular intervals:

import bpy
import json

class ModalTimerOperator(bpy.types.Operator):
    """Operator which runs its self from a timer"""
    bl_idname = "wm.modal_timer_operator"
    bl_label = "Modal Timer Operator"

    _timer = None

    def modal(self, context, event):
        if event.type in {'RIGHTMOUSE', 'ESC'}:
            self.cancel(context)
            return {'CANCELLED'}

        if event.type == 'TIMER':
            dict = {"a":4}

            msg = 'testDict = '+json.dumps(dict)+'\n'
            msg += 'list = ["a","b","c"]\n'

            msg += 'def printTestFunc(num1,num2):\n'
            msg += '    print(num1)\n'
            msg += '    print(num2)\n'

            msg += 'for i in range(5):\n'
            msg += '    [printTestFunc(0,testDict[key]) for key in list if key in testDict]\n'
            exec(msg)

        return {'PASS_THROUGH'}

    def execute(self, context):
        wm = context.window_manager
        self._timer = wm.event_timer_add(0.1, window=context.window)
        wm.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def cancel(self, context):
        wm = context.window_manager
        wm.event_timer_remove(self._timer)

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

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

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.wm.modal_timer_operator()

Unfortunately, it returns the following error:

  line 28, in modal
    File "", line 7, in
    File "", line 7, in
    NameError: name 'testDict' is not defined

However, when I write the following code using Python without using Blender's ModalOperator there is no error:

import json

dict = {"a":4}

msg = 'testDict = '+json.dumps(dict)+'\n'
msg += 'list = ["a","b","c"]\n'

msg += 'def printTestFunc(num1,num2):\n'
msg += '    print(num1)\n'
msg += '    print(num2)\n'

msg += 'for i in range(5):\n'
msg += '    [printTestFunc(0,testDict[key]) for key in list if key in testDict]\n'
exec(msg)

I think this is a Modal Operator specific trouble. Why does this happen?

Pass a globals dict to exec

Not sure of the reason why it doesn't work.. only have some inklings.

However can populate a dictionary and pass as globals to the exec function.

        if event.type == 'TIMER':
            mydict = {"a":4}
            myglobals = {"testDict": eval(json.dumps(mydict)),
                       "mylist": ["a","b","c"] }

            msg = 'def printTestFunc(num1,num2):\n'
            msg += '    print(num1)\n'
            msg += '    print(num2)\n'

            msg += 'for i in range(5):\n'
            msg += '    [printTestFunc(0,testDict[key]) for key in mylist if key in testDict]\n'
            exec(msg, myglobals, None)

        return {'PASS_THROUGH'}

Alternatively could define vars in the method and pass locals() which will include self, context and event

Note: Good idea not to use builtins like list and dict for variable names.  EDIT: Oops did just that with globals


I have two separate objects that I'd like to use either to refer & align with, except when I enter wireframe this hides the shape I wish to refer to I have two objects that are in different collections or layers idk (point is they dont merge with each other must access layout mode to work on either.

see title:
"I have two separate objects that I'd like to use either to refer & align with, except when I enter wireframe this hides the shape I wish to refer to"

found epic theme to see better:
https://blenderartists.org/t/theme-neutral-theme-for-blender-2-8/1137449

had dark image and a dark theme. oops


How do i get rid of these circles appearing on the background I created while using emit? I've been using blender render just to make a new background for my computer, and it involves 3 planes which can all be seen: The background is one, and the 3 is one, and the ring around the 3 is one. I messed with the emit on the 3 and the ring (it's the same material for both) and the more light they emit, the more visible these spots are. Anyone know what to fix? I have indirect lighting turned on with 2 passes allowed it that matters.

Okay I figured out what was wrong, the 3 and the ring were too close to the background. This appears to be "Z Fighting."


Why do I get an "internal error setting the array" error when editing a mesh with Python? I want to update an object's mesh (only vertices and edges, plus screw modifier) at every new frame via frame_change_pre. This is my code:

import bpy
import numpy as np

def get_mirror_vertices_dummy(frame):
    zpos = np.array([0., 1.]);
    rpos = np.array([0., np.sin(frame/10.)]);
    return zpos, rpos, [], [];

def create_mirror_mesh(mesh, frame):
    # mesh arrays
    verts = [];
    edges = [];

    zpos, rpos, zneg, rneg = get_mirror_vertices_dummy(frame);

    # calculate vertices
    for vertexID in range(0,zpos.size):
        x = rpos[vertexID];
        y = 0.;
        z = zpos[vertexID];

        vert = (x,y,z);
        print(vert);
        verts.append(vert);

    # fill edges
    for vertexID in range(0,zpos.size-1):
        edge = (vertexID, vertexID+1);
        print(edge);
        edges.append(edge);

    # create mesh from data calculated above
    mesh.from_pydata(verts, edges, []);
    mesh.update();

def add_mirror():
    # create mesh and object
    mesh = bpy.data.meshes.new("mirror");
    mesh.update();
    object = bpy.data.objects.new("mirror", mesh);
    # set mesh location
    object.location = bpy.context.scene.cursor.location;
    bpy.context.scene.collection.objects.link(object);

    # add screw modifier
    object.select_set(state=True)
    bpy.context.view_layer.objects.active = object;
    bpy.ops.object.modifier_add(type='SCREW');

def mirror_update(frame):
    # if object does not yet exist, create it
    if not 'mirror' in bpy.data.objects:
        add_mirror();
    # delete old mesh first
    mesh = bpy.data.meshes['mirror'];
    #bpy.data.meshes.remove(mesh);
    create_mirror_mesh(mesh, frame);

def mirror_update_handler(scene):
    frame = scene.frame_current;
    mirror_update(frame);

bpy.app.handlers.frame_change_pre.append(mirror_update_handler);

When I run it in Blender (v2.82.7) in a fresh, empty scene, the first time I jump to a new frame, the object gets created and the mesh is also appearing. However, when jumping to another frame, I get the error

Error: Array length mismatch (expected 12, got 6)
Traceback (most recent call last):
  File "/Text", line 61, in mirror_update_handler
  File "/Text", line 57, in mirror_update
  File "/Text", line 33, in create_mirror_mesh
  File "/snap/blender/37/2.82/scripts/modules/bpy_types.py", line 469, in from_pydata
    self.vertices.foreach_set("co", tuple(chain.from_iterable(vertices)))
RuntimeError: internal error setting the array

I tried to remove the mesh before calculating the new vertices by un-commenting the line

bpy.data.meshes.remove(mesh);

in the function mirror_update. When I run this and jump to a new frame, the mesh is deleted and I get the error:

Error: Array length mismatch (expected 18, got 6)
Traceback (most recent call last):
  File "/Text", line 61, in mirror_update_handler
  File "/Text", line 57, in mirror_update
  File "/Text", line 33, in create_mirror_mesh
  File "/snap/blender/37/2.82/scripts/modules/bpy_types.py", line 469, in from_pydata
    self.vertices.foreach_set("co", tuple(chain.from_iterable(vertices)))
RuntimeError: internal error setting the array
(0.0, 0.0, 0.0)
(0.3894183423086505, 0.0, 1.0)
(0, 1)
Traceback (most recent call last):
  File "/Text", line 61, in mirror_update_handler
  File "/Text", line 57, in mirror_update
  File "/Text", line 33, in create_mirror_mesh
ReferenceError: StructRNA of type Mesh has been removed

The strange thing is: when I now comment-in again this line and run it afterwards, it works exactly as expected.

Can someone spot what I am doing wrong here?

I got it working by replacing bpy.data.meshes.remove(mesh); with mesh.clear_geometry();.


The second Particles System not working Properly I am building up a firework scene after watching this tutorial. However, some problem turns up when I set up the second Particle System. In the tutorial, the second particles emission from the first ones. But when I tried it out, it is not so. My second particles was a line of cubes(at the cursor of the picture). I changed a lot of setting, but it never works like in the tutorial.

Blender version:2.77a
OS System:UbuntuStudio
My blender file is uploaded to GDrive, Download it if you need it.
Don't care about the stuffs in the first layer;)

There should be 2 particle systems on the object (there's only one in your file). The second particle system modifier should be in the bottom of the stack.

You will setup it as desired, the main option to change would be start and end frame.
Starting frame should be roughly the same as the end frame of the first system. Values from the lesson didn't work well so I changed them - while particles of first system die at frame 26, particles of the second one burn at 23.

However to make second particle system emit particles from the faces exploded by the Explode modifier you should enable Use Modifier Stack option:

The reason this wasn't mentioned in tutorial is because Use Modifier Stack option was added starting from version 2.68.


Rendered image files are unreadable files without specification I'm super confused!
I'm exporting a scene in Blender (Cycles render) as PNG's (500 frames).
But the files that are produces are not PNG's, they are just files without specification. I also tried JPG's but it gives me the same unreadable files.
I usually use Blender render without any problems.

Does anybody know what i am doing wrong?
I would really love to get an answer.

thanx everybody :)

dirk

How about checking the "File Extension" option?


Where I can find the filepath to a texture used in the Image Textue node? I'd like to edit the textures coming along with a packed blend file. I already did the 'unpacking' and set the paths to absolute using *External Data -> Make all paths absolute. However, I can not find the textures on my disk.

Q: Is there any way to see the filepath of a texture used for a certain Image Texture node to locate it on my hard drive?

Click on the Image Texture node, hit N to open up the Properties Panel on the right side, go to Item > Properties and you'll get all image properties like the path, size, color space etc.:

See: https://docs.blender.org/manual/en/latest/render/shader_nodes/textures/image.html


Triangle fan dome unwrapping Blender n00b here so sorry this is probably a simple question to fix.

I'm trying to unwrap a slightly domed triangle fan circle, but its breaking it up in the UV map instead of keeping it as a circle (which is messing the checker shading test up).

Any ideas what i'm doing wrong?

Many thanks.

Thanks @3fingeredfrog.

I used Pin (very useful tool!) combined with cube projection - unsure why this particular option worked, but it did.


Objects losing their transformations in scene when re-opening saved file A couple of imported objects (.fbx) always return to their original location (center of the scene) as they were imported when saving and re-opening a scene.

I tried to apply transform, scale and orientation using ctrl + A without any result.

What could be the issue? I feel like I'm running out of options here.

FBX files often come with default pose "animation". Make sure the objects don't have animation keyframes. You can tell if the location boxes in the properties-panel are yellow or green. Also if navigating between frames with left / right arrow keys causes them to reset.

As for workarounds you can make a new mesh object like a cube and navigate to "Mesh" tab and use the mesh dropdown to select the mesh of the imported object. That way you should have a clean, unmodified object using the imported mesh.


Geometry between Cylinders and Cuboids I'm currently getting started with Blender and Substance.
Since i wanted to test my materials on a model, i tried to create a grenade as it has both square and circular shapes. However, exactly this is my problem now.

If i want to join both the bolt (cylinder, top left) and the base (truncated cone, bottom) with the body (cuboid, center) i would have to subdivide the body in many parts, resulting in the grid-like pattern which you can see in the first picture.
Connecting them using tris (2nd pciture) results in less additional geometry, but causes more problems later on; most notably when using the subsurf-modifier.

What is the best way to connect the meshes in this situation?
Thanks for your answers

Match face-count and keep the flow of the edges

Assuming that you would like to create a sort of "basemesh" to start to work with, I suggest you should:

keep a the polycount low, it will be faster to make adjustement
keep a quad oriented topology, it increase the edgeflow redabilty and helps to keep the model "clean"
keep a quad oriented topology, because you said you are going to subsurf the model, and quads give best results
work with the subsurf modifier so you can easily check if everithing is going the way you are expecting and to place correct additional edge loops

Here's a possible topology fort this particular case with the previous characteristics:

Notice how three of the 8 faces that makes the cylinder are "bridged" to other 3 faces of the the other mesh. This allow a good junction between the pieces like they were welded that will give good results once the mesh is being subsurfed.

Here's the final result with subsurf in action:


Fluid baking stops without errors I have setup a simple scene with some hills (one big object) and dam with water. Dam consists of multiple objects, they are set up as fluid obstacles. Dam breaks (parts of dam are animated with keyframes) and water should start to flow through valley.

But, fluid baking stops on higher fluid resolutions (for example 300) somewhere in the middle of my animation when dam breaks.

What I have already tried:

applied scale and rotation on fluid objects
removed double vertices and recalculated normals on fluid objects
run blender from command line and also with -d switch (to see debug output), but haven't seen any errors, it just suddenly stops
manually cleared the fluid cache folder (deleted all the files)
set all fluid obstacles to Free Slip (as advised in Blender Cookie Fluid Simulation Tutorial, part 3)

I am using blender 2.69 64bit on Ubuntu 13.10.

Here you can download my scene (it is my first try with Blender, so it is very simple) - scena1_2.blend (30 MB - sorry for that size, some textures are included...)

There exists a workaround (at least it works 100% in my setup)!

I have enabled Export Animated Mesh option for all moving fluid obstacle objects and it works!

The only downside is that it enforces No Slip and is slower according to the documentation inside Blender.


Remeshing deletes the insides of the mouth In order to create a mouth that opens and closes i created an inside of a mouth like most characters.
the problem is every time i remesh the model it gets removed and the mouth becomes stitched again.
i don't know how to solve this issue i need to remesh all the time in order to polish the face but with this issue i can't remesh after creating the insides of the mouth
help please.

There is no way to keep a closed mouth from resealing when remeshing, but you might be able to find an easier way to unseal it, perhaps with Boolean. But anyway, why are you remeshing the head over and over?


How to see data-path if it was shortened in tooltip? How to see data-path if it was shortened in tooltip?

Either right click on the property and choose the option Copy Data Path, or if that doesn't work try gratuitously changing a value even if for the same setting.

Then check the Info window history for the full name, you can copy it from there by selecting the line and pressing Ctrl + C


File Output node ignores inputs and exports all render layers For some reason whatever I add as input in the File output node is not exported in the output multilayer exr file, but rather all the render layers are exported.

This is the result exr file imported into blender, I was expecting 2 layers: output 1 and output 2 not all the render layers.

I guess the file output results were overridden by the Composite node, so I deleted the Composite node and changed the file type to OpenEXR Multilayer from the node properties rather from the render settings tab. Now it works as expected.


How do I rig each blade to fan out like an aperture lens? I'm new to blender so I've got loads to learn.
My problem at the moment is that I want to rig up each individual triangle, so that I can get it to fan out like a camera aperture. Can anyone help me achieve this?

Copy Rotation Constraint + Local Space

I would move the triangle's origin somwhere along the shortest edge.

Then assing to the object a Copy Rotation Constraint pointing to an empty.

We are only interested in copying the rotation on one axis, in this case the Z axis as the blades are in the XY plane.

Notice that we must also change the Rotation space as in the picture above to transfer the rotation of the empty to the object's Local space.

Then we can duplicate the object and control the individual rotation of all blades with the empty:


Why is my limb flipping when trying at constain to armature? edit:
I don't know what exactly I did but I fixed it... I renamed my bones as for some reason all my bones had "L" on the end of them, I must have forgot to change the names after mirroring, maybe this will work for you if you have this problem too.
I'm trying to figure out why my character's upper leg rotates by 180 when constraining to my armature's bone. even if the weight is as small as 0.0001 the same thing happens. I've tried applying transforms and clearing but nothing seems to work, I'm really stumped. Sorry if this isn't enough information I'm not sure what else to write. Thanks.

To sum it up :

Join all the meshes within one object
Recalculate the normals in Edit mode
Apply the scale of both the armature and the mesh (once done read here to correct the armature)
Select the knees of the armature and in Edit mode bend them a bit forward
Enable the Deform option for each bone that is supposed to act on the mesh (not the IK targets or pole target, not the root bone)
Select the object, shift select the armature, parent With Empty Groups, then switch the object to Edit mode, select one mesh after the other, and in the Properties panel > Object Data > Vertex Groups list, select the group it is supposed to be part of and click Assign
Correct the IK constraint Pole Angle value if necessary


Can't find mesh in object mode I've imported a mesh, and it's in the scene collection, but nowhere to be found. I looked around, nothing.

The first thing to check is that the object is visible. The eye icon beside the object name in the collection should be white/open. I'm assuming you checked this, but just in case.

Another possibility is that the object is large enough that it's outside the distance that Blender will display in the viewport. The viewport in Blender by default will only display 1000 meters deep (referenced from wherever you're currently viewing). Select your object in the collection, then open the properties panel with N and look at the dimensions. If they're a lot larger than that 1000 meter limit, Blender just isn't showing the object even though it's there. If that's the case, scale the object down until it's visible.

Blender 2.8 and later also has the ability to filter the viewport display by type. At the top right of the viewport there's a cursor/eye icon. Click that and make sure meshes are set to visible.

EDIT: Another thing that I have seen is some sort of disconnect between the object and it's corresponding mesh data. If you click the little arrow beside the object name in the outliner, does the mesh data appear? It should have the same name as the object, just with a green triangle icon in front of it. If not, it's an issue with the import or the file itself.

You can also try edit mode. If you enter it on the object and select everything with A does it say you have anything selected?

One final option is to add another object, such as a cube, and delete all its vertices in edit mode. Then in object mode, go to the Object Data tab of the Properties Editor and select the mesh data of your imported object.


Hide custom properties in the UI panel with python I tried to use options={'HIDDEN'} when I declare my property but it doesn't seems to work. Is there a way to hide a custom property in the UI panel?

options={'HIDDEN'} prevents operator properties from being auto-drawn. If you define a custom draw() method, nothing will be hidden.

import bpy

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

    prop = bpy.props.BoolProperty(options={'HIDDEN'})

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

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

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

if __name__ == "__main__":
    register()

To hide global properties, simply don't draw them. You may use conditions to draw properties in certain circumstances:

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "scene"

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

        if context.object is not None:
            layout.prop(context.object, "name")


What is that rapid changing number under Animation Node Tree? I tried to check the doc and couldn't find it, the number under the animation node tree is changing very rapidly like its showing latency. Did I execute something I'm not aware of? I'm new to blender and it's freaking me out to be honest because I don't know what it is doing in the background.

That number shows how long the last execution of your node tree took.

It changes all the time because by default Auto Execution is enabled. If you don't want that you can disable auto execution in the corresponding panel.

It is turned on by default because it makes it easier to get started.


Are there any disadvantages to starting blender with the --enable-new-depsgraph argument? The question says it all :). I'm asking because it solved the latency problem between parents and children in the viewport and I will use this as the default blender starting argument (blender --enable-new-depsgraph).

You can watch and track any Dependency graph bugs here:

developer.blender.org > Dependency graph

All of the tickets look resolved now. There are no disadvantages that I know of.

However you never know if somewhere is a bug or not before you test it. If you work in a production environment you probably already test everything before you use it. If your tests are fine I would use --enable-new-depsgraph with ease in mind.


Hollowed text inside a solid I am trying to make a word appear in the empty space of a solid cube. Very similar to the Marvel logo attached. How can I achieve this?

If you start from a logo, you first need to import it in SVG format. Keep in mind that it will be very small in the center of your scene so you may not see it at first and you'll have to scale it a lot.
If you start from your own text, you can type it in Blender: Press shiftA > Text, go in Edit mode, type your text, if necessary choose the font in the Properties panel > Data > Font, and press on the Load a new font from file button to browse into your own fonts.
Then convert it to a mesh with an altC.
Simplify it in Edit mode with X > Limited Dissolve.
Extrude it on the Z axis: E.
Create your parallelepiped, put your text on it.
Give your parallelepiped a Boolean modifier / Difference mode and choose the text as Object.
You can keep the text and make it transparent in the Properties panel > Object > Display > Maximum Draw Type > Wire and, for the render, in the Properties panel > Object > Cycle Settings settings (deactivate all the options), or you can apply the modifier.

Is it what you want?


How to set averaged normals In Blender? I'm reading a lot of threads dealing with "averaged normals" and i can't understand if it is possibile to set them in Blender.

Is there a buttom or a path in Blender to average the normal of my mesh?

And then which extension could be the best to export my mesh saving this information (the averaged normal)?
Fbx? Obj? Or both are good?

Averaged normals is called smooth shading within Blender.  The easiest way is to set an entire object as smooth or faceted by selecting a mesh object, and in Object Mode, click Smooth in the Tool Shelf. This button does not stay pressed; it forces the assignment of the “smoothing” attribute to each face in the mesh, including when you add or delete geometry.

You can save this information in your export by ensuring the option to include normals is checked.