I can't extrude on the z axis I was trying to extrude the edges in the z axis using the extrude tool from the toolbar and not the shortcut key. The first time I extruded the edges it was fine. But the second time I tried to extrude the edges I couldn't do it in the z axis. It was allowing me only in the x axis. I was wondering what have I done wrong.

Wow. This is a curious one. I think this is what's going on..

You're extruding edges, along their median (actually mean) Normal, which is to say the mean normal of their vertices. In the first extrusion, all the vertex normals have a -Z component, the X's and Y's cancel, so the mean normal is -Z. In the second extrusion, none of the vertex normals have a Z component, the other components cancel, and so the Normal is 0. Blender seems to gives an arbitrary vector for this?
TL;DR
Fill the hole and  extrude a face, which has a normal, of use the XYZ setting for the tool.


Scripting the generation of a curve from the set of mesh centers drawn using BTrace add-on I'm writing a script to generate a (smooth) curve joined from the centers of several meshes.

So, here is my code:

import bpy
import os

# PRECONDITION: The segmented meshes should be all in the following directory.

#------------------------------------------------------------------------------
# A. IMPORTING ALL MESHES
# REFERENCE: https://blender.stackexchange.com/questions/5064/how-to-batch-import-wavefront-obj-files

path_to_objects = '/home/rahul/Samples/Original-Samples/Segmented/'

# Get list of all files in directory
file_list = sorted(os.listdir(path_to_objects))

# Get a list of files ending in 'stl'
obj_list = [item for item in file_list if item.endswith('.stl')]
N = len(obj_list)

# Loop through the strings in obj_list and add the files to the scene
for item in obj_list:
    path_to_file = os.path.join(path_to_objects, item)
    bpy.ops.import_mesh.stl(filepath = path_to_file)
#endFor

#------------------------------------------------------------------------------
# B. EXTRACTING THE CENTERS OF EACH MESH

# Selecting everything
bpy.ops.object.select_all(action='SELECT')
# Select origins of each mesh
bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY')

#------------------------------------------------------------------------------
# C. FINDING SPLINE

# Selecting the BTrace window -> Objects Connect
bpy.data.window_managers["WinMan"].curve_tracer.btrace_toolmenu = 'tool_objectsConnect'
bpy.ops.group.create(name="Btrace")

# Executing 'Run' button:
# Iteratively execting 3 commands for each mesh
for i in range(0, N):
    bpy.ops.object.editmode_toggle()
    bpy.ops.object.hook_add_selob()
    bpy.ops.object.editmode_toggle()
#endFor

bpy.ops.object.select_all(action='DESELECT')
bpy.ops.object.group_link(group='Btrace')
bpy.ops.object.btobjectsconnect() # >> ERROR <<

#-----------------------------------------------------------------------------
# D. EXPORTING THE GENERATED CURVE

bpy.ops.object.select_all(action='DESELECT')
N = len(bpy.data.objects) - 1 # all the mesh + 1 curve in bpy.data.objects

# Using the name of last object as the suffix of the name of our curve:
name = bpy.data.objects[N].name # get it's name
stl_path = os.path.join('/home/rahul/Samples/Original-Samples/Segmented/', name + '.SmoothSpline.stl')

bpy.ops.object.select_all(action='DESELECT')

# NOTE**: the curve is at index i = 0.

# Now, deleting next N meshes
for i in range(0,N):
    bpy.data.objects[1].select = True # always select the second mesh**
    bpy.ops.object.delete() # and delete the mesh
#endFor

# Into the EDIT mode
bpy.ops.object.editmode_toggle()
# Select all points
bpy.ops.curve.select_all(action='SELECT')
# Smoothify
bpy.ops.curve.handle_type_set(type='AUTOMATIC')
bpy.ops.object.editmode_toggle() # back in to OBJECT mode

# Exporting the mesh (curve)
bpy.ops.export_mesh.stl(filepath=stl_path)

#------------------------------------------------------------------------------
# E. FINDING FRONTAL NORMAL (N2)

#------------------------------------------------------------------------------
# F. FINDING TRANSVERSE NORMAL (N1)

#------------------------------------------------------------------------------

Here is the screenshot of the script execution:

But, when I run the part (PART C.) of this script related to generating the curve using BTrace add-on manually and rest of the script in console, things went perfectly fine.

So, could you please help me out debugging the error? Any insight about correcting this is appreciated. Thanks in advance.

The operator that you're trying to call "bpy.ops.object.btobjectsconnect()" is part of the bTrace addon and not in Blender by default. It's defined in the plugin file btrace.py. You can find the code that built that operator around line 534 here: https://github.com/scottjwood/bTrace/blob/master/bTrace.py


Blender 2.79 Camera ortho doesn't show some roofs. But top ortho view does Camera ortho doesn't show some roofs, although each building has a roof.
Tried to flip normals, doesn't work.
All the roofs are displayed in top ortho perspective
Tried Clipping, doesn't work

The problem is mainly due to the camera Z position which is below top roofs (and so due to some limitation can't see them).

Move your camera up.

And adjust the following values:


How to combine a voxelmap of cubes? I'm expanding on this question I asked previously.

I'm working on a programming idea and I'm prototyping it in Blender. I need to create a map from a series of blocks. As seen below.

I then want to select and remove all faces on the interior where a face is duplicated. In my previous answer, one user suggested a two step process to select the interior faces:

Remove Doubles
Select > Select all by trait > Interior Faces

But that doesn't scale up. If I make a larger object, interior faces includes a lot of incorrect selections.

Is there a way to remove the double-sided faces on the inside of this mesh without using scripting?

try these videos:

https://www.youtube.com/watch?v=6L3gxMC5AqY

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

They won't solve your problem but they will highlight the fact that there's no answer to your problem because it hasn't been created. I believe it will require some scripting and creativity to get what you are after.

I was looking for an answer to this for hours. The best I could come up with is to do join functions and then clean up the results. Boolean functions will not work because the faces being exactly in the same location will cause rounding errors.

Edit: oh, someone made a script: How to combine multiple cubes with double faces?

Edit: Oh, Blender 2.81 will have a voxel re-mesher? https://www.youtube.com/watch?v=qEnRAgvIsf8


How to achieve pressing against invisible wall effect facing camera? (animation) i'm quite new to blender.

I'm making some animations and i would like to reproduce this effect

Not only for the tongue,any part of the body ( hand/foot/derrière/chest )

To resume ,a character pressing against invisible screen facing the camera with this " collission " effect for any part of the body touching that invisible screen.

(i have not found anything about rigged characters and collisions for animation )

This is not a simulation but a similar effect can be obtained very simply with a shrinkwrap modifier:

Set the modifier to "Project" and "Outside" (if orientation faces the model / normal of it pointing to the monkey).

Axis the one of the glass normal. Direction: positive. Cull face is not needed.

I've added a subdivison after it to curve a bit vertices that are stretched by the glass.


Poor performance on mac with AMD Radeon Pro 560 My mac is a macbook pro 2017, with AMD Radeon Pro 560.

Seeing this question How to do GPU rendering on MacBook Pro 2016 (AMD Radeon Pro 460) I also get the Cycles render to work, but it renders at slower speeds than the CPU, an intel core i7 2.8ghz.

I have set the render settings in Preferences to OpenCL, and the Scene device settings to GPU Compute. It still takes nearly 3 secs to render all 32 steps with the startup cube just set to Rendered View.

CPU settings: 1.07 sec
GPU settings: 2.82 sec

Is this just AMD not being implemented for macOS or is the Radeon Pro 560 not so Pro after all?

Actually there is one more thing you should do before trying GPU render, that GREATLY affects the render speed: the size of the render tile. By default, render tile in Blender is fairly small which works well for CPU-based rendering. However GPU renderers work faster with large render tiles, around 512px (default is 64px I think). See this article for details, step 3:
https://www.blenderguru.com/articles/4-easy-ways-to-speed-up-cycles

The tile size parameter:

Comparison tile size vs render speed:

Since I am interested in Macbook Pro performance, can you check the tile size again and post your results?


Animation Nodes - How do I swing in the text? The first example I worked on is immediately below. It is a little clumsy by hand (never mind). How do I do that with Animation Nodes?
(Words below are from my little niece, when she always asks me to swing her.)

I did something a little different in the latter below. At the start of video, I gave the letters little more distance to the right. How do I swing in letters individually with Animation Nodes?
Assistance appreciated. Thanks in advance.

Each character follow the path of a quarter of a circle, it starts from its right side and ends at its top. So it is clear that our characters' path should be parameterized by the equation of a circle where the parameter (angle) range between zero and $\frac{\pi}{2}$ representing the right and top of the circle respectively. The equation of a unit circle whose top is  tangent to the x axis is described by the parametric equation:

$$
\begin{aligned}
x &= \cos (t)\\
y &= \sin(t) - 1
\end{aligned}
$$

Notice that the minus one is just to move the circle down such that its top become tangent to the x axis (Because we want the characters to end up at the x axis). We now have the location of each character. The orientation of the character along the z axis is just $-(\frac{\pi}{2}-t)=-\frac{\pi}{2}+t$. As for the scale, it just animates from zero to one. It should be noted that we can scale the circle to make the characters take a longer path. And of course, we are going to offset each character by some amount by adding to its x location. From all of this, our implementation becomes:

And to get the second result, one just modulate the parameter using a delay falloff:


Navigation tools in 2.8 not working When Im in blender 2.8 I click the tools at the top (the hand and the zoom tool) and they do nothing! I know how to scroll to use them but they don't work. I will build and stuff and then like 5 minutes into it the tools slow done and then they completely stop so then I am unable to move around my world

When this happens to me, I can usually get it back to normal by selecting an object and hitting keypad-period to reset the view to that object.


Make camera to move with animated object by makewalk I have imported a mhx2 model and set a camera. Also the model is set as camera's parent to always look from same angle and distance. The problem is when the object is animated using Makewalk, the camera doesn't move with the object. Any help or guidelines is appreciated.

This problem is because armatures do not move objects, they move the vertices within the object. Think of objects like containers for their data. So your camera is behaving properly, because your object is not moving!

What you need is to attach the camera to a bone in the armature, not the object itself. Usually the Root bone is used for this, but it will vary. Look at your armature and pick a bone that is moving with the animation. As you are using mocap data, it may not be moving the root bone. If not, you could use one of the spine, hip, or pelvis bones. The key is to use one that isn't rotating, as that will rotate the camera.

To parent to a bone, select your object, then shift+select the bone and hit ctrl+P. (The armature needs to be in pose mode.) Alternatively, in the Object tab of the Properties Panel there is a Parent drop down menu that can be set to Bone, and then lets you pick the specific bone.

It is also possible to use constraints to attach the camera. This is more setup, but can let you do things like only copy a bone's translation, and not rotation.


"Render Animation" from set of JPGS loaded with "Image/Sequence" I am using Add "Image/Sequence" to load a set of JPGS files to the Sequencer. Next I run a "Render Animation" to output AVI file. That looks like just joining static 2D pictures in one movie clip.

Is that "Render Animation" call use internally the same/similar mechanism as e.g. 3D "BMW demo" rendering? Please explain differences.

Apologies for the delayed answer.

The Render Animation option is a single call that will execute one of several options.

Blender will first check if anything exists in the sequencer. If there is something there, it renders that, and nothing else. If not, it checks the compositor for nodes that don't require the 3D scene to be rendered, such as if you have a movie clip that has some effects applied there. Finally, if there is no non-3D data to render, Blender will render the 3D scene.

So the order of operations is this:

Sequencer
Compositor
3D Scene

Under the Post Processing heading of the Output Properties tab, the sequencer and compositor can be overridden, so that Blender will skip one or both of them.

The sequencer is entirely 2D, as is the compositor. I believe all 3 are based on different underlying code. So the 3D view is entirely separate from the compositor and the sequencer. In order to get any information from the 3D view to the sequencer, you must render the scene to get a 2D image that gets stored internally or externally, then load that into the sequencer.

So the sequencer and compositor behave similar to other video editors or compositors, and aren't connected to the 3D scene any more than another software would be (that I am aware of).


Export particles to xml how to export particles into xml ,l want to use standalone cycles render particles but l do not know how to do ,l think standalone cycles can render particles but the xml api interface can`t read particles data.what can l do ?


Nothing appears when trying to render, hangs on 'Occlusion preprocessing' My file won't render. My last file rendered fine and when I pressed F12 just to have a idea of how it looked. But now when I'm finished it won't render anything at all. I'm using Blender 2.72 and I'm new to blender. It just stays like this when i try to render.

It's still preparing. Notice the progress indicator in your screenshot:

This will often take a long time when rendering effects like indirect lighting (sometimes I've had it take up to 10 minutes), especially on large scenes.

To help reduce this time, try disabling some effects in the world panel, or increasing the error tolerance:


How can I programmatically create a mesh similar to this one? I am pretty good at manually modeling, but I would like to learn how to create meshes that are similar to the one in this video, specifically the one in the attached screenshot. I believe that it is possible to use nodes(?) or algorithms to generate things like this programmatically.

How would I go about learning to do something like this - are there tutorials/references someone can point me to? I am not sure what to search for. Thank you!

Here's my attempt at simulating your reference image using modifiers:

All it is is a cube with some modifiers:

The ocean modifier generates the base mesh/distortions, and the waves are done with a displace modifier using a wood texture.

There was a project/challenge a while back called "default cubisim" with a lot of great examples of modifier art.


How can you smooth the edge between two materials? I have created this with cycles:

But the edge between the glowing and non glowing materials is very sharp. The material was manually applied to faces in edit mode. Is there any way I can smooth the edge between them in cycles?

You can't really smooth the transition between two materials; materials are exclusively applied to faces and always delimited discrete peaces of geometry. Here are some alternative workflows:

Smoothing the transition between materials:

You can use a texture to mix the "materials", but everything is actually in one material instead, and different parts actually just use different shaders.

Use a wave texture as the mix factor of a mix node mixing the two node setups used to make the bright strips and the dark surface of the ball (everything is inside one one material datablock).

By using the Color Ramp node to adjust the falloff of the wave texture, you can control the sharpness of the transition.

Also see

I'd like to have portions of a texture not glossy

Other techniques:

Some other things which may make the transition a little more natural:

Using separate materials based on mesh topology (like in your question), extrude the faces with the emission material in a bit:

Extrude (E)
Cancel the grab part of the extrusion (Esc)
Scale along the normals (AltS).

This may give a more natural looking separation between the two:

Use the Material Index Pass to create a bit of glare in the compositor:

Enable the pass in Renderlayers > Passes
Set the Pass Index of the emission material to a number that no other material has as its pass index (though we can use one index for all the different colors of the emission material).
Set up the composite nodes (click for bigger image):

Make sure to set the ID Mask node to the same index as the material index defined before.


baked normals dont fill uvs I am having trouble with baking normals on these pants i modeled. you can see in the image that the top right. The normal just ends in the middle of the uvs. does anyone know of a way to deal with this sort of things? I had a high poly pair of pants with the folds and details and then retopologied using the snap to face toggle. so the models are the same shape and size.

The problem was to do with the Ray Distance setting. I dont know how it works exactly but it happened to the parts of the leg that were facing each other and sitting close to each other. turning the ray distance down to .1 instead of 1 made the normal render perfect.


How do I get the children of a frame node? I need to get the child of a frame node but it seems it is not possible "simply".
I'll have to create a function myself or have I missed something?

Instead of looking at the frame node and trying to find its children you have to look at each node and see what its parent is:

import bpy

children = []
nodes = bpy.context.scene.node_tree.nodes
frameNode = nodes['Frame']

for node in nodes:
    if node.parent == frameNode:
        children.append(node)

print(children)

This creates a list of the frame node's children.

Or the more condensed version:

import bpy

nodes = bpy.context.scene.node_tree.nodes
frameNode = nodes['Frame']
children = [node for node in nodes if node.parent == frameNode]

This is based on compositor nodes so accessing the node tree will be slightly different for materials, but the same logic will apply.


Game Engine: how to switch scenes in python code I need to be able to switch scenes in python code while in game, and I don't mean hooking up a python controller to a scene changing actuator, I need to be able to change scenes without it. Does anyone know how it would be done?

It does exist in the API, the trick is you have to get the scene first:

for scene in bge.logic.getSceneList():
    if scene.name == 'oldSceneName':
        scene.replace('newSceneName')
        break

API:
https://www.blender.org/api/blender_python_api_2_78a_release/bge.types.KX_Scene.html#bge.types.KX_Scene.replace

Another useful 'replace scene' like thing that I have done quite a lot is to end the current scene(s) and then add the new one:

for scene in bge.logic.getSceneList():
    scene.end()
bge.logic.addScene('sceneNameGoesHere')


Can F-Curves be used to define interpolation between keyframes? What I'm trying to do specifically is animate a punch. With the default Bezier curves, the interpolation between the "wind-up" and "contact" poses gets eased in AND eased out. This effectively makes it appear that the punch is being pulled. The character accelerates into the punch just as he should, but then begins to slow again right before contact. I'd like to have the interpolation such that he eases in and then continues to accelerate through. In principle I know how to do this with the graph editor, but this action involves a shift in balance so almost every bone in the body changes position between poses, and I really don't want to tweak the graphs for each property on each bone individually. Is there a way to fine-tune keyframe-level interpolation in Blender? Perhaps by animating a single property that represents a 0-1 weighting between poses? I feel like I could probably hack something together with drivers, but I'm really not sure how to do that in the context of poses and figured there might be a better way anyway. What's the proper approach in a situation like this?

EDIT: One solution I've found is to use a Python script to automatically position the left handles of all selected keyframes to sit on top of their respective control_points. This basically achieves the effect @cegaton was suggesting.

import bpy

C = bpy.context.object

for fcurve in C.animation_data.action.fcurves:
    for kf in fcurve.keyframe_points:
        if kf.select_control_point:
            kf.handle_left = kf.co[:]

I'd consider this a quick hack though and not really resolution to the original question. I'm still wide open if anyone has any other ideas.

Maybe using the Breakdown Tool could help you to find the right curve / pose quicker? It is one of the In-Between functions Blender has, see the section In_betweens here: https://www.blender.org/manual/de/rigging/posing/editing.html.  The workflow would be like this:

Set start and end keyframe of your pose. So the moment when the punch starts and the moment after the hit. Then scrub to a frame in between the two. With the very sophisticated example here it looks like this:

If I take my example, the X F-Curve should have a keyframe value lower than what it currently has. Or in other words, the pose should be closer to the starting pose, than to the ending one. The breakdown tool allows you to do just that: In the 3D Viewport, hit Shift + E, and then move the mouse left and right. The extent of your 3D Viewport acts as a slider, so if you move the mouse to the very left, you're at the starting pose, on the right at the ending pose. Your model will now deform either towards the starting pose, or towards the ending one. In your case, you wanna go closer to the starting one. After clicking, you can add a keyframe for this pose (or if you use Auto-Keying, that keyframe has been created already):

It's your choice now if you want to set the end value to vector (can be done in Dope Sheet or F-Curve Editor:

If you're not happy with the pose, go to the same keyframe and use the breakdown tool again.


Convert a C3d and TRC files to BVH I have two files one .bvh and the other is .c3d and I want to convert them to .bvh files if anyone could please advise how to do this as I need to work on bvh only.

You can import .c3d file in blender like this:

https://stackoverflow.com/questions/20499320/how-to-import-c3d-files-into-blender

The problem is it won't be an armature, but animated locations of points:

Some points will be dead in the center (marked).

Adjust the frame range to fit the mocap data
Delete the dead markers
Re-build the armature - add armature to scene

looks like we have markers from both sides for each leg - that means the bones will be somewhere in between markers
Building the armature:

select a marker (or two if I want position in between) and align 3D cursor with 'Shift-S > Cursor to Selected'
then enter edit-mode of armature and select a joint and 'Shift-S > Selection to Cursor'
this way I can place all the bones (joints) precisely

also recalculate the Roll of the bones with 'Ctrl+N > Cursor' with 3D cursor on some reference marker

Name the bones properly
Constraining location of root bones:

use copy_location constraint
or two of them with second on 50% influence to get in-between position of two markers
similar for center of 3 markers, you get the idea

Constraining bones direction

use damped_track constraint
also multiple of them with adjusted influence for center of group of markers

Bake the animation to Action with Pose > Animation

Bake Action: visual_keying_ON, clear_constraints_ON
Export armature as .bvh from the blender main menu (you might need to enable BVH addon).

These steps will result in having a .c3d file converted to a .bvh file.
A sample .blend file with rigged markers here:


Cycles won't render from Render Region I press Ctrl+B and create a region for Cycles to render in Blender 2.92. The border is visible in the viewport and it all looks set to go. But every time I hit F12 to start the render, Cycles ignores the region and starts rendering as it would from the full camera view. I tried everything I could think of, including disabling the camera, but nothing seems to fix it. What could I be doing wrong? Could someone help me please?
This is how I've set Cycles up for this scene.

And this is how I've set up the Output Properties. As you can see Render Region is ticked.

From Blender Manual: https://docs.blender.org/manual/en/2.92/editors/3dview/navigate/regions.html#render-region
Render Border is rendering part of your scene when you're in rendered shading mode. If you want a rendered result you'll have to set up a camera for that view.


Possible to set render border exactly I know I can set the render border with Ctrl+B and dragging a box.  But is there  a way I can exactly specify the border dimensions?

You can access the render border values via the outliner if you change its display mode to 'Datablocks':

You can then navigate through the tree structure of the outliner to the border values via Scenes> Scene (may be different depending on the name of your actual scene)> Render Data:

The border values can be set from 0-1, so unfortunately you can't set exact pixel coordinates without some maths. 0 is the left side of the camera and 1 is the right side of the camera for the 'x' values (or the bottom and top sides of the camera for the 'y' values).


How can I make set up a shading scheme in blender that creates a color map when rendered? I am using robotic painting to render an animation and I am limited to a set of 10 colors which I can paint with.

I want to create a setup in blender in which I designate those 10 colors as materials and apply them to objects/characters. The final image should consist of only those colors so that the parser can sense the rgb values and create robot code respectively.

Essentially, I don't want any lighting, antialiasing, or variation from these 10 colors in the cycles render result.

I cannot figure out how to keep lighting from affecting the final color values which are flat shading objects.

How can I do this in blender?

if you want a flat color in Cycles you have to use the emission shader.


How to make the ocean modifier to deform an object, but don't move it? After using the ocean modifier with an object (in displace mode), the object is floating in space. How can I make ocean modifier to deform it, but don't move it?

It is deforming it, but the result is probably not matching the scale of your object. Try to reduce the Size parameter and maybe also the Scale parameter of the Ocean modifier.


Creating a custom property with named values I have created and rigged a simple cartoon-style model. His facial expressions are really just an image sequence texture. This allows me to quickly change his facial expression by changing the "offset" value of the image sequence. Then I created a custom property and attached it to a driver. This system works well, but it would be nice to have friendly names like mouth_oo rather than trying to remember the numerical index.

Here is the code I have so far based on an article I read at blendersushi: http://pastebin.com/2aJWd2ZB. The trouble with this code seems to be that context.object.My_List never seems to be populated.

How can I create a custom property control for an object that updates the value of the driver, but gives me a user-friendly popup?

Check this code, this shows you 2 different options:

One is with direct control over the index with a slider with changing labels,
The other one is with the EnumProp like you have it.

import bpy

from bpy.props import EnumProperty

def updateEnumParameter(self, context):
    context.object.my_list_index = int(self.face)
    print(self.face)

class cls_IntFloatString(bpy.types.PropertyGroup):
    face_items =(("0","None","none"),
                 ("1","Smile","smile"),
                 ("2","Content","content"),
                 ("3","Dizzy","dizzy"),
                 ("4","Cat","cat"),
                 ("5","Girl","girl"),
                 ("6","Yuck","yuck"),
                 ("7","Macho","macho"),
                 ("8","Pixel","pixel"),
                 ("9","Charming","charming"),
                 ("10","Cry","cry"),
                 ("11","Ouch","ouch"),
                 ("12","Ultraman","ultraman"))
    face = bpy.props.EnumProperty(items=face_items, update=updateEnumParameter)

bpy.utils.register_class(cls_IntFloatString)

faces = {
    '0': "None",
    '1': "Smile",
    '2': "Content",
    '3': "Dizzy",
    '4': "Cat",
    '5': "Girl",
    '6': "Yuck",
    '7': "Macho",
    '8': "Pixel",
    '9': "Charming",
    '10': "Cry",
    '11': "Ouch",
    '12': "Ultraman"}

# Add these properties to every object in the entire Blender system
bpy.types.Object.my_list_index = bpy.props.IntProperty(min=0, max=len(faces)-1, default=0)
bpy.types.Object.my_list = bpy.props.PointerProperty(type=cls_IntFloatString)

class IntFloatStringPanel(bpy.types.Panel):
    bl_label = "Int Float String"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        box = layout.box()
        row = box.row()
        row.label("Selected Face:")
        row.prop(context.object, 'my_list_index', text=faces[str(context.object.my_list_index)], slider=True)
        box.prop(context.object.my_list, 'face', text='Selected Face')

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

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

if __name__ == "__main__":
    register()


I'm confused about how Animation Node's spline from Points node works I'm experimenting with animation nodes and I want to try generating splines from particles. So I have three particle systems and I'm using them as the points, left handles and right handles for a spline from points node. The spline the goes to a curve object ouptut.

I was thinking this would generate a mess of spaghetti, but I don't see anything. Here's the node setup:

and this is the (lack of) result:

Any ideas on what I'm doing wrong?

Your Node Tree setup is entirely correct. The data which you plan to generate is already there under the hood, but Animation Nodes offers another performance related option: That is, it only generates output if you explicitly tell it to do so in the Output Node. For large node trees with huge meshes or particle systems, this is useful as you can selectively turn off operations which are computationally intense, and enable them only before you render.

As Omar Ahmad commented, the ? sign next to the socket, which is visible in your screenshot, is meant to be a warning that currently for that socket no data is being created.

To make AN generate that Target mesh, do the following: In the Output node, make sure that the button with the little dot inside next to the Spline socket is checked:

The rest of the node tree is exactly the same as yours. If you check that button, you should now see something like this:

When you select your target and Tab into Edit Mode, you'll notice that the three particle systems control the handle positions indeed:

This is the .blend file I used for testing:


Cell fracture causing cube instead of original object I'm trying to fracture two objects and ultimately smash them together.  However, the green hand (first object I am trying to fracture) turns into a fractured cube when I use cell fracture on it.  I converted it from a curve to mesh.  Is this an easy fix?

Thanks!

This is the cell fracture window:

The mesh is not watertight (manifold)

Cell fracture is having some problem with your mesh because it cannot easily recognize an enclosed volume to work with. As you can see in the image sequence below there are some vertices that, despite looking apparently connected, they are not.

The meshes created by converting an extruded curve are currently made this way.

The solution in this specific case would be to run thr Remove doubles command form the Vertices sub-menu (Crtl+V while in edit mode with all the vertices selected).

Here's a comparison between reults after and before merging the overlapping vertices:


Why is my fluid simulation mesh wireframe in solid view? I haven't used blender in a few years, and I've gone back to it to try fluid simulation, so I'm a bit of a noob...
I'm using 2.9, I've done my fluid simulation, but it's just showing as a mesh in the solid view.  Is this what it's supposed to look like in version 2.9? All the tutorials and on older versions I used the fluids was grey in solid view once the mesh was baked. Also why does it stick to itself like some kind of ooze instead of water?
https://drive.google.com/file/d/1sseUag-XJOKUFLwkbFl2hNw4v-gIzf6V/view?usp=sharing
Thanks

2.9 is using MantaFlow which is different from older versions.
Make sure you changed the type to modular, and turn on the resumable setting. Once you're done, bake the fluid simulation. The baked animation will show as a halo particle. Then, check the Mesh option and bake the mesh. You can mess with the resolution for better result.


How can I apply exact texture measure (cm) in uv mapping? So, i'm working at a bathroom and my main problem is with tiles. My tile is 25cm x 75 cm how cand I apply exact measurement of my tiles to fit the walls. Let's sey I can hardly apply exact uv mapping on one wall, but is more hard to fit the other walls at the same measurement.

The room to tile with 75cm x 25cm tiles:

1: Create or resize a tile texture.
It should have the same proportions as the 75cm x 25cm tile, thats to say 75/25 = 3:1. To keep things simple I like the idea of having 1pixel to 1mm. In the example below the tile texture size is 750px x 250px.

2: Open this texture in Blenders UV Editor:

3: Next is to UV unwrap the four walls A, B, C and D.
Before doing this it may make things easier if all all the surfaces that are not going to be tiled (UV unwrapped) are hidden (H key). Doing this will make it easier to select each of the remaining walls.
Select Wall A and in orthographic front view (numpad 1) UV unwrap using the Project from View option.

4: Hide wall A. Switch to the Back view (CTRL + 1), select Wall B and again UV unwrap using  Project From View.
Repeat for walls C and D. It is very important that you do not change the zoom in or out when selecting before each unwrap.

5: Unhide the Walls (Alt H)
With the four walls selected, in the UV editor the four islands may appear squashed in the Y axis so to correct this select all four islands and scale up by 3.

6: Next we need to get the lower left corner of each wall island snapped to the lower left-hand corner of the UV space. This is done for two reasons,  a) to have all  the walls lower edges aligned and b) so that they can be all scaled up together from the same single point. (X=0 Y=0).
In the UV menu enable the Constrain to Bounds option then select each island in turn and drag it down so that its lower left corner is snapped at X=0 Y=0.

7: Uncheck the Constrain to Bounds.
Assign pivot point to 2D cursor and check that the 2D cursor is at X=0 Y=0. Select all four islands and scale them up until the right-hand edge of the Wall A is aligned with the right-hand edge of the UV space (X=1).

8: Now we are ready to do the final scaling. The length of Wall A divided by the length of the tile 6000mm/750mm = 8.
With the pivot point (origin of the scaling) still using the 2D cursor and all four islands still selected scale them up together by a factor of 8.

Now when the tile texture is applied to all four walls it should be correctly aligned and correctly scaled.

Another way to do this could be to use the Mapping node in the Node editor, adjusting the X and Y values to suit. In this case the UV Unwrapping (mapping) method would be Project from View (Bounds).
Because the length of Walls A and B are not the same as Walls C and D the scale of Y value would be different. This would mean having to use two different materials.


Cycles - How can I render only pre-baked textures, and not calculate shadows? I have an animation made in Cycles that takes place in a scene lit up by a lot of lamps, as well as a strong world background. As it would take some years to render (I made the math) I thought that baking textures would be the solution.

How can I then set the rendering so it will render only the baked texture, or at least not calculate the shadows? I haven't found a way to reduce the render times.

Thanks in advance.

EDIT: It looks like I didn't express well my question.

I know how to bake, and I've already got all my textures. I just want to know how to set up the render so it wont calculate all the shadows and stuff, as that has already been made in the baking.

You have to setup a material using all these baked textures and instead of a diffuse shader you have to use an emission shader.

This video show the technique very well: https://www.youtube.com/watch?v=sB09T--_ZvU

Don't be fooled by the title (cause you said you already know how to bake)


Upgrading to 2.81 - How To Keep Settings and Addons I currently have 2.8 and about to take a class that wants me to have 2.81.  I have invested time and money on my settings and some addons that I have purchased in the past.  I have done so much to the current blender that I have that Its hard to remember it all.

I currently have Blender 2.8 on my C drive and want to place Blender 2.81 on my D drive to save space.  Will I lose all of my settings and addons when I download the other version (2.81)?

When you install 2.81, there is an option to import settings from 2.80. However it is unknown what custom tweaks you did to 2.80, so hard to answer if all will be that easy to transfer.

Under <user>/AppData/Roaming/Blender Foundation/Blender you'll find config files for all the version.

You won't loose addons, you will just have to copy them from 2.80 addon folder into 2.81 addon folder. Most addons will be fine, but some addons might not work under 2.81 and you'll have to wait until the addon developer updates the addon for 2.81. There are some small python API changes between 2.80 and 2.81.


Why is the Blender soft body physics permanent deformation not working? At the moment I'm working on an auto crash scene. I've set up a good rigid body sim and perented a low poly car to it so that I can run a soft body sim on it and then use it to deform the high poly model.

But whatever I do the soft body sim will not have permanent deformation, even though my plastic value is at 100.

At the moment I'm working in Blender 2.79b. I really hope someone can tell me why there is no permanent deformation and what I can do about it.

In order for the Soft Body 'plastic' setting to have a meaningful effect you need to disable the 'goal' for those vertices - otherwise the 'goal' will simply pull the vertices back to their original positions.

However, in your situation it probably isn't as simple as disabling the 'goal' since the soft body will then be subject to other forces such as gravity so you'll need to create a Vertex Group of just those vertices that would not be expected to move (eg, the wheels) that the rest of the mesh can be supported upon. In the Soft Body Goal settings you can then leave the 'goal' enabled and set the Vertex Group to limit the goal to only the desired vertices (eg, the wheels that would be resting on the floor).

This can produce the following :


Wrapping flat artwork onto a sphere with no distortion to create a football Apologies if this is a very dumb question but I don't even use blender at all but I'm hoping it will be a solution to problem I keep coming across. I get asked to design footballs so I need the ability to design flat artwork to supply factories as well as render a 3D model for an accurate visual. I must have the ability to create different panel shapes too so that all footballs aren't simply the common 32 panel ball for example.
Is this all possible with blender?

Yes, you can model and texture a football in Blender with any shape you like.
The 32 panel standard ball is probably the easiest to accomplish, since there's a standard primitive (the Icosphere) that pretty much resembles it's shape.
Here is a tutorial explaining how to do it https://www.youtube.com/watch?v=AYC69tt-KMI

Other shapes can also be accomplished too, but it's process can be more or less involved depending on the complexity of the shape.

About texturing, as mentioned by Mr Zak what you need is probably UV Unwrapping, this can also be accomplished inside Blender. It is the process of "unfolding" or "flattening" an 3D geometry into a 2D shape so that an image texture can be mapped over it's surface as desired with minimal distortion.

Depending on how big your design is, or how much of the ball it covers unwrapping could be a very simple process. For a simple logo that sits only on a side of a ball a simple view-based direct projection could be enough. For designs that cover the whole ball it could be a more complex process.

Either way you could probably model a few different predefined football geometries with the most commonly used shapes, and unwrap them in the most convenient way to simplify the surface design. You could then use that UV layout as a template save it as an image or even export as vector using the SVG export addon (if you work on vector graphics design software) and reuse it whenever you need to design a ball for a specific geometry.
All you need to do then is import that layout into your graphic design application (Inkscape, GIMP, Photoshop, Illustrator, whatever) and draw over it so the parts of the design match the desired corresponding area in the ball surface.

The base 3D models can also be reused as asset libraries to easily render your designs whenever you need. You can even have a set of predefined files with your scene (grass, field, product studio, etc), material, and lighting setup all ready to render, and all you need to do is apply your new surface image texture to it and render your design. You only need to set it up once.


Whatever I do in Pose Mode of my Rig, Tail of the Rig goes crazy My first rigged object so I will try best to describe. I was trying to rig the horse, first had problem with automatic weights ( as I tried to parent horse object to rig, and finally did it with the Add-on).
Now, Problem is, whichever bone I move, tail goes whirling crazy, also can't put it in rest position, it doesn't allow. Scale is not applied because if I do it, my rig moves and messes up the object it is parented to. Whichever Bone I move, tail starts whirling. Maybe some problem with parenting or IK constraints. I will upload Blender file so if you can try to see the problem. Thanks

There is a Parenting loop.
What is happening is the green bone at the very top of your tail is copying the rotation of a bone that is parented to it (I cannot find it for some reason) this bone is called tail control. When your tail bone rotates, it rotates the control bone, which rotates the parent bone, which rotates the control bone, and so on.
What fixes the problem is simply remove the bone constraint from the green bone. If you still want to keep the copy rotation, just add a bone into your scene, press alt+p to remove parent, and use the new bone you created.


My Gizmo is stuck in one place I am a little new to Blender's controls, but I learned the basics of 3D Modeling in Maya. My gizmo suddenly stopped automatically moving to the faces I was selecting while I was in the middle of modeling, and the gizmo was just stuck in one place. I believe I may have accidentally unchecked some option when messing with the grid visibility options or any of the tabs in the same area of the screen. Can anyone help me with this problem? I am using Blender 2.8 through Steam.

YOu probably change from individual origins to 3D Cursor


Export to glTF with PBR materials ( facebook integration) I'm experimenting with 3D posts on Facebook on the only supported format is binary glTF. I'm using the Khronos exporter and their PBR node groups.
Has anyone been able to export a model with PBR and display it on facebook?
I get:

the model without my PBR material when I use the Metallic Roughness node tree
an "GLB File Invalid" error from facebook when I use the Specular Glossy node tree

Am I missing something? Thanks!

You're doing good to use the PBR node inside Blendere but include the textures (make them internal), then save the .blend file.

THEN export to .GLB, it should work. Relative path issues mess the drag-drop on Facebook post.


How do you snap the camera to view in Ubuntu I know in Windows it's Ctr + Alt + Numpad 0. However, in Ubuntu that minimizes the window. Does anybody know how to snap the camera to view in Ubuntu?

You can use the menu: View>Align View>Align Active Camera to View...

But that is just a temporary remedy that masks the symptoms of a larger problem: The shortcuts on the operating system take precedence over those of apps, so you have to decide between two options to use blender in the future:

Configure your OS so that it doesn't use the same shortcuts as blender (usually in Linux I remap all of the shortcuts that use the Ctrl key to use the Super/Windows key so that the OS doesn't create any conflicts).
Change the shortcuts on blender in the user preferences. (Just keep in mind that by changing the default to non-standard shortcuts, you might not be able to follow tutorials or other help resources).


Python script for a specific selection To separate an object, I use the edge split modifier in the object mode:

then I go into edit mode, put my mouse over the external face and press L. This operation select all the external part and I can separate it from the rest :

However when I try to do it with a script it doesn't work because I have to manually put my mouse over the external surface...
Have you any ideas on how to seperate this object in two parts (the external part and the rest) with a python script ?

Here is the script which :

goes thorough vertices and find the highest
select it and what is linked to it
separate it with separate(selected)

after applying the edge split modifier run this script :

import bpy

obj = bpy.context.object
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_all(action ='DESELECT')
max = -9999
for i in obj.data.vertices :
    if i.co[2] > max :
        max_ind = i.index
        max  = i.co[2]
bpy.ops.object.mode_set(mode = 'OBJECT')
obj.data.vertices[max_ind].select = True
bpy.ops.object.mode_set(mode = 'EDIT')
bpy.ops.mesh.select_linked()
bpy.ops.mesh.separate(type='SELECTED')
bpy.ops.object.mode_set(mode = 'OBJECT')

#bpy.context.selected_objects[0].location[2] +=1


Set transform of a child object to an arbitrary point using a script I've been working on a script to assign transforms to child objects, such that the transforms will be transferred to Unity ( relative to the origin set in Blender, along with their rotation ) when using the experimental .fbx options. After another user kindly shared a very helpful script with me, I refactored it to match my requirements. Below is the script.
import bpy
import math
from mathutils import Quaternion

context = bpy.context

bpy.ops.object.mode_set()
baseRotation = Quaternion()
for someObject in context.selected_objects:
    polygonsLength = len( someObject.data.polygons )
    if polygonsLength < 1:
        continue

print(someObject)
objectData = someObject.data
objectWorldMatrix = someObject.matrix_world
objectWorldMatrixInverted = objectWorldMatrix.inverted()

polygonsAverage = [0.0, 0.0, 0.0]
for everyPolygon in someObject.data.polygons:
    for i in range(3):
        polygonsAverage[i] += everyPolygon.center[i]
for i in range(3):
    polygonsAverage[i] /= polygonsLength

smallestDistanceBetweenCenters = 1000000000
closestPolygonToCenter = someObject.data.polygons[0]
for everyPolygon in someObject.data.polygons:
    distanceToAveragePoint = math.sqrt(
        pow( polygonsAverage[0] - everyPolygon.center[0], 2) +
        pow( polygonsAverage[1] - everyPolygon.center[1], 2) +
        pow( polygonsAverage[2] - everyPolygon.center[2], 2) )
    if distanceToAveragePoint < smallestDistanceBetweenCenters:
        smallestDistanceBetweenCenters = distanceToAveragePoint
        closestPolygonToCenter = everyPolygon
print(closestPolygonToCenter.center)

somePolygonInObject = closestPolygonToCenter

somePolygonCenter = objectWorldMatrix @ somePolygonInObject.center
somePolygonNormal = objectWorldMatrix @ somePolygonInObject.normal

rotationDifference = baseRotation.rotation_difference(somePolygonNormal.to_track_quat())
rotationDifferenceMatrix = rotationDifference.to_matrix().to_4x4()
rotationDifferenceMatrix.translation = somePolygonCenter
objectData.transform(objectWorldMatrixInverted @ rotationDifferenceMatrix.inverted())
someObject.matrix_world = rotationDifferenceMatrix

The script finds the mean of the object's constituent polygons' centers, and then picks the center of the closest polygon as the overall object's center. This worked reasonably well, however when checking the resultant transform center, it at times was not within the object or not close to the object's center, as the chosen polygon's center was not inside the object. Image below.

I would like to adjust this script to be able to assign purely the mean center of the polygons as the object center, provided that this mean center is within a  constituent polygon, relative to the origin. In thinking about this, it seems to me that the most reliable approach to checking for this would be some kind of raycasting from the origin to the mean center, and ensuring that one of the polygons collides with this ray, though I'm not sure if there may be a better / simpler approach to this.
How could I perform such a check, and how would I then assign the actual mean transform (which is currently being stored as a simple 3-element array) to the object's transform?
Any help would be greatly appreciated! :)

Use Vector maths.
One of the fundamentals of 3D programming is Vectors. If have two location vectors A and B,
A vector C describing the shortest distance from A to B
C = B - A

distance from A to B
C.length

there is almost never a need to calculate this using the Euclidean distance formula.
Making a small adjustment to answer to Calculating and exporting global rotation of faces created from splitting an isosphere
Instead of choosing the single face find the poly that matches the criteria of the question.

Average the face centers
Sort by distance from face center to calculated average
Use the closest

Since this is returning a face, there is no way (without weird ngons) this can be "outside the faces"
Note this will favour small tightly clumped faces.  Consider perhaps weighting by the face areas How to compute the centroid of a mesh with triangular faces without using Blender's built-in functions?
Also a point on another face may be closer to the median of face center medians.  Aside from raycast, Object.closest_point_on_mesh(...) will also return the face.
hit, loc, norm, index = ob.closest_point_on_mesh(o)

if hit:
    f = ob.data.polygons[index]

Test script: Run in object mode, sets origin to each selected object based on criteria above.
import bpy
from mathutils import Quaternion, Vector

context = bpy.context

z = Quaternion()

def closest_poly_to_centers_avg(polys):
    o = sum((p.center for p in polys), Vector()) / len(polys)
    return(sorted(polys, key=lambda p: (p.center - o).length).pop(0))

for ob in context.selected_objects:
    print(ob)
    me = ob.data
    if not me.polygons:
        continue
    mw = ob.matrix_world
    mwi = mw.inverted()
    f = closest_poly_to_centers_avg(me.polygons)
    c = mw @ f.center
    n = mw @ f.normal

    q = z.rotation_difference(n.to_track_quat())
    M =  q.to_matrix().to_4x4()
    M.translation = c
    me.transform(mwi @ M.inverted())
    ob.matrix_world = M

FWIW I  really loathe this
for everyObject in objects:

having a variable named every object that is one of each, may "read well"  but really? Equally with someObject, somePolygon opposed to simply ob and f


Cant add loop cuts after few extrusions and bevels sometimes while modeling I run into a weird problem,I'm sure you do too.SO,what happens is that as I go modeling and add in  few loop cuts,extrude few faces and bevel the edge and push/pull the beveled edge outwards or inwards.The next time I wont be able to apply a loop cut to a face.You might say ok then use a select or knife tool then.Sure I can do that but the problem is what if I want to add the loop cut/new edge to the exact center of the respective face(the same way loop cut tool automatically does).Now you might say turn on edge length and use the select tool and "C" key to put at the exact center of the edge.Now the problem to do put edge this way at exact position can be really difficult sometime.So,is there a way to put the loop cut even it seems impossible? Thanks in advance.

During knife cut you can use the Ctrl key to cut at the middle of an edge.

This is true also for the edges just created by the knife itself:

During this knife cut, you have some information in the bottom bar (as for other operators).


How can I exit joining mode? I have just used CTRL+J to join some objects together. Now, when I go to select a separate sphere that is inside, but is still a separate object, it selects it all like it is in joined mode permanently. Now it seems I can not get out of the CTRL+J that I did earlier. Please help so I can select the objects separately. I shall put two screenshots up for comparison.

There is no join mode. When you join two mesh objects, they become one. The one that's last selected, the active one, survives, keeps it's values, the location of the object origin, rotation, etc. The other simply ceases to exist. It's mesh is integrated into the active object's mesh. There is no 'smashed vase' mode that you can leave to unsmash the vase.

A mesh can contain any number of unconnected mesh parts. Doesn't mean they are separate objects, not even separate meshes, just separate parts of a single mesh datablock. A single mesh can be a million faces, none of which touch each other.

You can select the sphere and hit P to seParate and remove it into its own object, but that creates a new object for the sphere to be in. It doesn't undo your joining. Join is a slightly destructive operation.

If you seParate a sphere, it might be useful to also change the object origin by setting it to geometry in the tools panel on the left.


Getting blender camera fov or focal length from the unity3d camera fov I'm trying to match the fov of blender camera with unity 3d camera fov.
Basically i want to calculate blender's camera FOV or focal length, given the fov of unity3d camera.
Please help.

I'm not sure if this is the answer you needed, but in the properties bar under data and then under "Lens," they have a field that displays the camera's focal length


Replace Every instances of an object by a 2.79duppligroup / 2.8CollectionInstance?doing this trough python? hello i want to replace every instances of my asset with a 2.79duppligroup / 2.8CollectionInstance, with the same roientation and scale but i found no way to do this !? ctrl L dont work, = am i missing something ?

if there is actually no way to do this trough blender, could someone teach me a line of code that can help me resolve my problem ?

thank you

here'sa code that do that .. the api may change in the future
i tested on 300 instances of suzannes its working great

theres just a missing part at the end of the code, i need to hide "newcoll", my original object of every instances from displaying in render, because the obj need to stay in X=0 Y=0 Z=0

import bpy

#Copy and past for later move to newcoll code
context = bpy.context
scene = context.scene
debut = context.object

def find_collection(context, item):
    collections = item.users_collection
    if len(collections) > 0:
        return collections[0]
    return context.scene.collection

def make_collection(collection_name, parent_collection):
    if collection_name in bpy.data.collections:
        return bpy.data.collections[collection_name]
    else:
        new_collection = bpy.data.collections.new(collection_name)
        parent_collection.children.link(new_collection)
        return new_collection

#naming preference of created layer system
pref = "%s Instancer " % debut.name
name = "%s" % (pref)

#nomme first select asset as basic, dupplicate it, name new newcoll, reset loc,rot,sca on newcoll
basic = bpy.context.object
bpy.ops.object.duplicate_move_linked(OBJECT_OT_duplicate={"linked":True, "mode":'TRANSLATION'})
newcoll = bpy.context.object
newcoll.location[0] = 0
newcoll.location[1] = 0
newcoll.location[2] = 0
newcoll.rotation_euler[0] = 0
newcoll.rotation_euler[1] = 0
newcoll.rotation_euler[2] = 0
newcoll.scale[0] = 1
newcoll.scale[1] = 1
newcoll.scale[2] = 1

#move newcoll dans collection appart
newcoll_collection = find_collection(bpy.context, newcoll)
new_collection = make_collection(name , newcoll_collection)
new_collection.objects.link(newcoll)
newcoll_collection.objects.unlink(newcoll)

#create a temporary instance, first create empty...
bpy.ops.object.empty_add(type='PLAIN_AXES', view_align=False, location= cursor)
bpy.context.object.name = "%s Instance " % debut.name
bpy.context.object.instance_type = 'COLLECTION'
bpy.context.object.instance_collection = bpy.data.collections[name]

instance = bpy.context.selected_objects[0]
instance.select_set(state=False)
newcoll.select_set(state=False)
debut.select_set(state=True)
bpy.context.view_layer.objects.active = debut

#selectionne tout instances sauf temporary instance, and newcoll
bpy.ops.object.select_linked(type='OBDATA')
newcoll.select_set(state=False)
instance.select_set(state=False)

#for every obj in selection, create an empty, copy collection of obj,create instance collection, then delete obj to enterely replace selection by empty
for obj in bpy.context.selected_objects :
    bpy.ops.object.empty_add(type='PLAIN_AXES', view_align=False, location= obj.location, rotation = obj.rotation_euler)
    bpy.context.object.name = "%s Instance " % newcoll.name
    empty = bpy.context.view_layer.objects.active
    empty.select_set(state=False)
    obj.select_set(state=True)
    bpy.context.view_layer.objects.active = obj
    empty.select_set(state=True)
    bpy.ops.object.make_links_data(type='GROUPS')
    empty.scale = obj.scale
    empty.instance_type = 'COLLECTION'
    empty.instance_collection = instance.instance_collection
    bpy.context.object.show_instancer_for_viewport = False

    bpy.data.objects.remove(obj, do_unlink=True)

#Delete temporary instances
bpy.data.objects.remove(instance, do_unlink=True)


Shade smooth causes dark colours I'm trying to model a chair in blender, and i shaded a part of it smooth. The problem is, the bottom of the object becomes darker, and its not an issue with the lighting position. It also shows in renders.

Here is the chair shaded smooth and not shaded smooth for comparison.

Have you tried enabling auto smooth option with custom angle? By default smooth shading smoothes every edge, but in hard surface models you often need hard edges. AFAIK this angle value sets threshold between hard and soft edges.


BGE. How do I make the plane stop the ball I am a first-time user of the BGE and I am trying to follow a tutorial on the BGE with a ball and a plane, but after following the instructions so far, the ball goes straight through the plane. How do I make the plane stop the ball from falling?

First, set the ball to dynamic or rigid in the properties toolbar under the physics tab. Then set the plane's physics tab to static if you want it to remain still.

If the ball still goes through. In the same physics bar tick "collision bounds" and put respective collision bounds to each item. I guess box to the plane and sphere to the ball.


Round of a half cut cylinder with subsurf im trying to model a half cut cylinder with an axial cut section. The Cylinder has a subsurf modifier. As long as the cylinder is cylindrical, it is perfectly round (Type A). If i remove the half of the cylinder using a boolean operation, it stays round (B). But if i remove the verts in edit mode, the shape is no longer round (C ):

Is there a way to model a shape like C without a boolean modifier? The problem is that the cylinder i part of a larger model, and if i cut it, the topology gets destroyed:

Using the Boolean Modifier alone is not a solution as the model should be low poly and be exported into another application.

Thank you for help!

Add a cylinder;
Apply E and S to the bases and delete created faces. Remove doubles;
Join the edges with Bridge Edge Loops to make inner faces. The result should look as below;

In face selection mode select, with B, and delete half of the cylinder created thus;
Make faces where the crossection was made (see the image below);

Done.

If you want you may make more quads with Ctrl+R


Bone Problem (not bending) - Following Animated Book Tutorial I'm following this tutorial
https://www.youtube.com/watch?v=MDK9i9T8bwM

And one of my bones looks completely straight, but it should bend

On the other side both bones look ok, the only difference I've noticed is the connected checkbox

This is how it looks for the bone that is not working

and this is how it looks for the bone that works correctly

I'm lost, I see the parenting the same for both, same constraints, same number of segments. I checked the lattices and they are called the same, and it looks like the vertex points were defined correctly as well.

What else could it be?

I got it! I had to select DEF_pages_top.R then hold SHIFT click on the Armature and then CONTROL+P to connect it. That gave me the deformation I was looking for.

Thanks @moonbots for your reply!


How to enable denoising for my final render? I have been fiddling around with the LuxCoreRender rendering settings, but both denoisers do not seem to be having effect on my frames that I have rendered.

I have re-installed LuxCoreRender multiple times, and used the default settings + my own custom settings to try to get it to work, but for some reason it will not. The viewport denoiser is working perfectly, however. Also, if I set the denoiser settings to be heavier on denoising, Blender will quit, running out of memory.

Q: Is there some way I can use the same settings for the viewport rendered view, and somehow apply them to the rendered frame settings?

Make sure the dropdown on the top right of the Image Viewer is set to the correct pass (DENOISED):

I'd suggest render to OpenEXR Multilayer to get both passes (beauty and denoised) in one file for comp:

Alternatively you can add a Render Layer node in the Compositor to get the DENOISED socket and connect both passes to a File Output node or even blend between both passes before saving:

Note: The Composite Node has only one input socket so this approach does not store any raw data.


Blender Extrusion doubles If I extrude like i see in tutorials, it doubles the extrusion on the opposite side of the object. for example. Extrude a cube face and the face on the opposite side is extruded as well. New project, no mirror modification on as far as i know.
thank you in advance!

You likely have Tool -> Options -> Symmetry turned on (X being on but Y and Z not is actually default somewhere I think). In 2.90, this stuff is by default in the right-hand sidebar of the 3D View editor. Press N to show the sidebar, then click the Tool tab...


Collision Objects losing their effect I have a scene where I have a flag blowing, and a box with a collision modifier on it. Everything is working fine, but every time i disable the collision object from the view port, they lose their effect...

How should I be doing this to where I don't lose my objects, but I just don't see them?

I think I found the issue.. I was pressing the "disable in viewports" instead of "hide in viewports" ... it seems to be working now.


Changing display modes in blender 2.8 I downloaded the daily blender build from the 2.8 branch a few days ago to try out some new features. I found that some of the interface has changed, especially that the display modes button is missing.

The default mode is rendered. How can I change that to solid or wireframe?

2.8 builds are work in progress so that they can test features and introduce work that needs to be considered - but these builds are not complete and finished for production, and they might not be ready for all use cases just yet. I also wonder about where the wireframes will come in since I use them for some cases when painting and masking, but for now I stick to the 2.78c where my addons work.


Without using an Empty, how is it possible to have an object bend on the Y (or X) world axis using the Simple Deform modifier? I am trying to understand how the Simple Deform / Bend modifier works. I understand that the Bend modifier only works around the Z axis. What I am trying to figure out is how to have an object bend around the Y (or X) axis without having to use an Empty.

I found an example of what I am trying to accomplish here:
http://blenderartists.org/forum/showthread.php?350541-MotionTool-Dev-Thread/page2 and the direct link to the blend file is https://dl.dropboxusercontent.com/u/2086432/Motion_Tool_Testing.zip

The object "Deelis" (in the plank.blend file) is bending on the Y axis with no empty when the Simple Deform>Deform>Angle is changed. How is this possible? I can't figure out how to reproduce this.

Thanks,
Bryson

I figured it out. In Object Mode, rotate the plank on its side by -90 degrees in the X axis, freeze rotation and then rotate it 90 degrees in the X axis again.


Eyes not following body I've rigged a character and added the facial rig later, however when I move it the eyes won't follow the rig nor the mesh.
The eye is a mesh and the rig is functional and the rig itself follows the body.
What would be the best way to fix this?

There is something wrong with the parenting: I solved the problem selecting the L eye, shift selecting the L eye rig, and pressing Ctrl P choosing "Armature deform" option (This option doesn't affect the weights you've already set). Do the same with R eye.

Then, personally, I would prefere to merge all rigs into one (Ctrl J, but you will have to rename some bones, to prevent name conflicts).


Having trouble implementing a function in the node editor where the source uses if/else logic I am creating a color saturation node group in blender as an exercise. This is the code I'm trying to implement:
RGBtoHSV= function(color) {
    var r,g,b,h,s,v;
    r= color[0];
    g= color[1];
    b= color[2];
    min = Math.min( r, g, b );
    max = Math.max( r, g, b );

    v = max;
    delta = max - min;
    if( max != 0 )
        s = delta / max;        // s
    else {
        // r = g = b = 0        // s = 0, v is undefined
        s = 0;
        h = -1;
        return [h, s, undefined];
    }
    if( r === max )
        h = ( g - b ) / delta;      // between yellow & magenta
    else if( g === max )
        h = 2 + ( b - r ) / delta;  // between cyan & yellow
    else
        h = 4 + ( r - g ) / delta;  // between magenta & cyan
    h *= 60;                // degrees
    if( h < 0 )
        h += 360;
    if ( isNaN(h) )
        h = 0;
    return [h,s,v];
};

This is the part that I am struggling to implement:
    if( r === max )
    h = ( g - b ) / delta;      // between yellow & magenta
else if( g === max )
    h = 2 + ( b - r ) / delta;  // between cyan & yellow
else
    h = 4 + ( r - g ) / delta;  // between magenta & cyan

I am trying to figure out how to chain math comparison nodes in the right way but I am just stuck.
Here is the node group so-far (Updated):

At the very end is where I am stuck. I'm not sure how to set up a three-way if/else node structure.
If r === max, else if g === max, else catch-all.
Any help would be hugely, hugely, appreciated!

Rewrite the code as
h1 =     (g - b) / delta;  // between yellow & magenta
h2 = 2 + (b - r) / delta;  // between cyan & yellow
h3 = 4 + (r - g) / delta;  // between magenta & cyan

h  = (r==max) * h1
h += (1 - (r==max)) * (g==max) * h2
h += (1 - (r==max)) * (1 - (g==max)) * h3

where (X==Y) means 1 if X and Y are equal, 0 if they're different (ie. what the "Compare" operation on a Math node does).
This is just a bunch of arithmetic operations, so it's straightforward, albeit laborious, to translate into nodes.
edit
Here's how I did it with nodes. This does
tmp = (g==max) ? h2 : h3;
h   = (r==max) ? h1 : tmp;

The If Then Else node can be done with a lerp


Face set colors not showing in sculpt mode despite trying multiple things (2.91.0) Blender 2.91.0
Cannot see face set colors despite creating face sets, setting face sets, boxing face sets, drawing in face sets, making sure face set is being shown in viewport shading and overlays options.
I saw another stack question talking about modifiers being the issue. I have no modifiers.

Dynotopo mode prevents editing face sets. If face sets exist, they will be removed when  the mesh is sculpted while dynotopo is enabled.


apply a wood texture to a circle to make a shield I am attempting to make a old wooden shield for 3d printing.. and would love to have the wood plank texture applied to it..  similar to this.. https://www.artstation.com/artwork/ue4-shield-pack-painted-wooden-round-shield

Of course as it's supposed to be in real 3D you can't use a Normal or Bump node, but you can do it with the Displace modifier. And I guess you'll have to apply the modifiers for a 3D printing  ;)


How do I make it so something will go when collected, then re-spawn after awhile? So in Game Engine, I have been trying to make an empty that after a message gets sent, AND after 30 seconds, the object will come back, but as I can see, the message only sends once, and the logic brick does not remember it being sent, so after 30 seconds, the message isn't there. Is there any better ways to do this, or any way to make the message sensor remember that it has been sent
The message is for, when it gets deleted, it gets sent to an empty to spawn there, but I want it after 30 seconds

You can toggle objects.

On request the visible object can remove itself and adds another invisible object that counts the 60s.

After timeout the invisible object deletes itself and adds the visible object again.

As you can only add objects from an invisible layer and you want to re-add your objects, I suggest to start with an empty that immediately adds the visible object. This "startup" empty is not needed anymore and can end itself too.


how to achieve this grid falloff with animation nodes? I want to get the falloff effect through animation nodes as in this video
Are there any ideas?

Video from Instagram here by @cavidmdw

Thank you

Similar setup found here:
HERE

Many thanks to Omar Emara @OmarEmaraDev helped me to find this old post


How to move texture via rig I'm trying to make a character model where I can move the pupils. Is there a way I can make the eyes so that I can move the pupil texture around the eye using a rig?

This result can be obtained by keyframing the texture's offset in the texture's Mapping panel. Rigging is done with bones and applies to meshes that are 3D whereas textures are images.


Why can I see though my Mesh (even in renders)? I have a 3D model of a computer processor and I think I messed up some settings.
I can see through the head of the processor and the pins below the process unit are visible and I know that this problem is not because of Camera View Clipping because I can see the top part texture of the head.
Note: I' using EEVEE engine.

No inverted normals:

The problem was blend mode , the blend mode was set to alpha blend , when i changed it to alpha hashed , it got solved


adding an hdri in blender 2.9? I know there is an option to add an hdri environment texture in the shader/node editor, but is this the only option in blender 2.9? only asking because I have not found an option to add one in the "world" tab.

Just click the click the yellow dot next to the color picker and select Environment Texture.

Or from the shader editor select World instead of Object:


How to make custom face on a mesh? I want to make a custom face (or what you call it, sorry I'm new to this)

For example I have a plane cube like this:

And I want to make a small face out of it, so I can have separate texturing to it (If you have suggestions on how I can do it on a smarter way, please do tell me, for now, this is the best idea I have)

I want to have something like this. Thank you in advance!

There are many tools used for mesh modeling that you can use, the simplest to get you started is probably the knife tool.

In edit mode press K and then click where you want to corners of the new face (also called a polygon) then press ⏎ Enter to confirm the cut or Esc to cancel. During the cut you can press C to help keep your lines straight.

Some other tools used for modeling are the loop cut and subdivide to split a face into multiple faces. You can also add single vertices and make a face from 3 or more unconnected vertices, it is easy to find beginner tutorials on mesh modeling.

Note that simply cutting a face into another will leave you with an n-gon, which is a face with more than four sides (compared to tri or quad faces). While n-gons can be helpful during the modeling process, as you progress you will find times when they can cause issues. It is always recommended to maintain a quad based mesh as much as you can. In your example that would mean adding at least another two edges.


How can I make these objects in the shape of a circle how can I make these objects in the shape of a circle

Simple deform modifier seems well suited for this job.

Set it to Bend
Choose desired axis (Z in my example)
Enter a 360° angle (full circle)


How can I twist part of my mesh into a Möbius strip shape? I have this basic shape, made from two cylinders, and I want to know how I can twist the curved path, highlighted here:

Rather than curving the whole path, I only want one small 180° twist on the highlighted portion, similar to this Möbius strip:

Is there an add-on that I could use for this, or, if not, how would you go about it? Right now, I'm pretty stumped, I tried splitting it into two parts and using proportional editing, but it ended up being very messy, though I could have been doing something wrong.

Also, I should mention that, after this, I want to add a "Subdivision Surface" modifier, and maybe 3D print it, so it's important to have clean, efficient topology.

Rather easy to make.

Select an edge loop that is running across the width of the circle ridge, with AltRMB , then press V to rip it, RMB  or Esc to cancel the transform. (You now have eight vertices in the same spot where the original four use to be.) Don't change your selection
Turn on Connected Proportional Editing AltO, or in the 3D view header use the Proportional Editing button.
Press RY 180 now before confirming the rotation use the mouse wheel to change the falloff of the proportional editing. You do not what too many other faces to turn, but you need a few.
I found it looked better when I moved the edges in the turn up a little bit. It Keeps the twist more balanced.

AA (to select everything) then W > Remove Doubles because you still have two sets of edges in that original spot.

If you've gotten this far, the modeling should be done, but it will look really bad.

A Subsurf modifier is all that is needed to fix it, but first set the Mean Crease to one on all the edge loops along the curve. (The object in the image in your question already has this, so you can skip this step.) You can quickly select them all in edge select mode with AltRMB  and holding shift for each one after the first. Then in the properties panel (N) under the Transform section you will find the Mean Crease value.

The whole process is in the gif below.


How can I make the deformation to a canvas mesh in dynamic paint permanent? With dynamic paint on a canvas, in Vertex format, I used the "Waves" surface type option in the "Dynamic Paint Advanced" option . The canvas becomes deformed as expected when I press play in the timeline. Now I want to make the deformation in a certain frame permanent so when I enter edit mode, the deformation is still there. Is it possible to make it permanent?

(I found that if I export the canvas to fbx on a certain frame and re-import it, the deformation is there, but I'm wondering if there's a faster way to do it.)

Dynamic paint deforms the mesh through the modifier system. To leave a mesh permanently deformed based on any modifiers operation you apply the modifier.


Going down the wrong path for human skin? I'm trying to find a way to apply skin texture detail to my model. I'd like to use normal mapping to represent the surface details, and thought I might use a ready made normal map of a skin surface like

However, in order to get good coverage for my model I think I need seams. But, if I were to simply tile on my skin map I'm pretty sure the seams would become really obvious.

So I'm left with a chicken and egg problem - in order to match up the normal map to the seams I'd need to bake one from a seam-aligned map. But if I had that, then I wouldn't need to bake one!

So

If I should abandon the seams, what should I do instead?
Or is there a way to make it work this way?

I was recently dealing with a similar problem.  I found that I didn't really have to worry about it-- these kind of detail, high-res normal maps can stand a bit of noise.  Specular rarely aligns closely enough with a seam for it to be visible.

If you try that and find you're having visible problems, you may want to consider masking your normal map with another (hand-made) texture.  I'm not sure of your application, but with what I was doing, scaling the R and G components down smoothly eliminates the normal map (leaving only the meaningless depth component of the vector).  You may want to consider an unorthodox seaming strategy for this, seaming along the smoothest parts of your model rather than natural lines, since these seam lines are exactly where you'll be masking the normal map.  That may mean using an extra set of UV coordinates.


When I move a vertex, it seems like I'm "breaking through" the mesh I'm trying to make a car from blueprints using a cube and a plane, but
when I move some of my vertex, it seems like I'm "breaking through" the mesh.

It seems like there is some part of the mesh on top which is totally in mobile.
I have tried to put new vertex on the surface, but nothing seems to help.

Can you tell me what i'm doing wrong, and how to either prevent it or to repare it?

I think the issue is with your mirror modifier. You're using the Mirror Modifier to mirror the car's left side to the right side (or vice versa), but since you've dragged some of the edges/vertices across that mirror line, the mirror modifier is duplicating that, creating overlapping surfaces.

Disable the Mirror modifier visibility to see exactly what it's replicating. You'd want to drag all the vertices that cross over the mirror line back. Another way to avoid this type of issue is to enable Clipping in the modifier settings (bottom right of your screenshots). This prevents you from dragging any points across the mirror axis, and will clip any points to that axis.


Mesh: Plastic bottle curved indent, boolean or displacement map? Or maybe something else? I'm new to blender and I'm trying to make a 3d model of a complex-ish water bottle.
Now I'm stuck at a part where there's an array of wavy lines that need to be indented at the top.
I've tried a few things, some didn't work and other's didn't really look right.
...and now I'm left with the question, if what I'm trying to do is even possible. :)

First I tried using an array of curves and applying a boolean modifier to cut the waves into the bottle.
But it instead ended up destroying the mesh.
(Maybe by increasing the size of the bottle, cutting it and scaling it down?)

I also tried using a displacement map which actually works, but at rendering I run out of memory.
Only when I turn off experimental mode can it render it and it doesn't look smooth enough either way:

My question, if it's possible and what's the best way of doing it is?
I look forward to your replies, thank you.

Kind Regards,
Peter

What you could do is:

Create your pattern, make it repeatable, dig and bevel.

Repeat with an Array modifier

Bend it with the Simple Deform modifier (Bend mode)

Give it a Subdivision Surface modifier, apply the Array and Simple Deform modifiers, remove the doubles.

Not too much pinching with this topology.

A bit less pinching with this solution.

No pinching at all with this very heterodox topology.


How to load an internal blender image using OSL? OSL has the texture command that we can use to load image files and map in an object. Dfelinto made a nice video about it some years ago. https://www.youtube.com/watch?v=V5N2rnFtSlw

We also have many samples of it in the source of blender:
https://github.com/dfelinto/blender/blob/master/intern/cycles/kernel/shaders/node_image_texture.osl

But how we can load using OSL an blender's internal image? Some created inside it or already loaded using the uv/image editor?

If I understand the question right. The internal images are values that are generated from coardinates and do not realy exist. You should be able to call the existing method eather direct or indirect.

If that don't worke for you all of the math to generate them isn't that hard to find on the internet.


How to insert key to a constrained bone with "child of" I have a character with a sword, sword is inside the same armature of character, and i want to be able to add keys to everything.

An example would be:

The character moves to the sword is at the ground, so the sword is static and character moves, now the sword does not need keys.
When character gets the sword, I would like to bind the sword to the hand, ok I can do it with the "Child of" bone constraint and everything seems fine.
I do more animation keying and everything seems good except if I go the animation begining the sword is not at the ground even if I added keys to be there, because of the "Child of" constraint.
So then I think: ok, now if I delete the chain of constraint, it would fix the begining of animation because I added sword keys when it was on his hand.
Delete the constraint but it seems the keys when character had the sword on his hand have not been recorded properly, now the sword stays static.

Is there any way to record a key with the help of a child of constraint and then delete it but keeping the positions of that constraint did?

I cant bake the constraint because is inside the same character's armature.

And I need to be keys, not modifiers or NLA strips, I want to export the animation to Unity.

The "Child Of" constraint is a tricky one to get right. I would recommend using multiple parent objects, and adding a "Child Of" constraint for each parent.

Create a parent empty on the ground at the "pick up" location.
Create a parent empty on the ground at the "put down" location.
Create a parent empty that you parent to the hand bone.
Create three "Child Of" constraints, one for each parent empty.

Now you can animate the influence of each constraint. When the sword should be at the "pick up" location, that constraint has an influence of 100%. When the sword is picked up, the "hand bone" constraint gets 100% influence. When the sword is put down, the "put down" contstraint gets 100% influence.


Unpinning Cloth Deforms Object I have a plane for which I've enabled the cloth modifier. I have pinned the four corners of the plane to empty objects. I've animated the empty objects to move the plane down and collide with a sphere. (This is all made clear by the video)

I want to unpin the plane once it has collided with the sphere, so I added a vertex weight edit modifier to the plane. This allows me to remove the pinned vertex group when the plane collides.

Everything works as expected except that when the pinned vertex group is removed, the plane remains deformed as if it were still being tugged. In other words, when the plane is unpinned, it doesn't return to its original shape like a real elastic piece of cloth. Is there any way to achieve this? I've attached the blender file below and am using the latest version of blender (2.8).

Video

Blender file

Disabling Group on the way (of running simulation) is like to change the rules of game in a middle of match (shocked audience).

Let Group Remove enabled
and animate Remove Treshold parametr

by adding first keyframe on a frame were pin group should still affect cloth with value 0, second keyframe on a frame were pin group should stop affect cloth with value 1.


Why is the default image format for saving renders is in PNG? I have been using Blender for a while now and I notice something that seem unusual at least to me. An obvious format is JPG because it's very common despite its flaws. EXR is pretty much the opposite JPG with greater non-destructive editing capabilities but quite rare in availability online. If I want to render a still image using the factory settings, PNG is automatically selected and have to be changed to another format manually. I'm aware that user defined settings can be saved as the default to resolve this question. Why Blender has chosen PNG as the default format while the others are not?

TL;DR: It's a well supported file type that is a pretty good mix of file size, detail preservation, and alpha support.

I'm not a developer, so I can't say for sure, but I think there are a number of good reasons why PNG is the default format. It's by no means perfect, there is no perfect image format, they all have some benefits and disadvantages.

One of the  most likely reasons is that PNGs are widely used and well supported. You won't run into another program that doesn't support PNGs. Being a software that can be used with other programs, it would make sense for the default file type to be a widely accepted one.

PNGs also have better compression that JPEGs for the average blender render. JPEGs are more commonly used for photos with soft transitions, as the lossy compression is much less obvious. Once you add an sharp details though, such as edges or text, the compression becomes an issue. That is most likely why JPEG is not the default.

While EXR has a number of advantages that make it great for compositing and serious rendering, for the average blender user it's just not necessary. The downsides of EXR is the file size and the potential conflicts with other software or websites. I would guess that most blender users never even touch EXR, and thus the benefits would be lost, yes some disadvantages would be noticed.

Overall, I think PNG was chosen as its pretty good at everything. It has an alpha channel, lossless compression, decent color range, and relatively small file sizes. While you could find a file type better and several of these criteria, you won't find a well supported one that is better than PNG at everything.


Restrict dimensions of cables I am creating an animated manual for a device that has an external cable connected to it. The cable has a length (1m) and a diameter.
When I bend the cable, I would like to ensure that the length always remains the same. That means, the total length of the cable should always be 1m.
I use a BezierCurve bevelled with a circle. So the length of the BezierCurve has to be limited.
Is there a way to apply such a constraint to a BezierCurve?

Thanks a lot for your help in advance

I think it would be better to use tesselated cylinder with Curve modifier, length of cylinder remains constant, just modify bezier shape.


UV coordinates scale with changes in object scale? Right now, scaling a textured object like this one:

By a factor of 3 on the X axis, results in the following:

I would like the same scaling operation to produce these results:

In other words: I want the UV coordinates, not the texture mapping in existing UVs, to scale with the change in object scale. I tried the UVproject modifier, but has it to be applied manually. I want the UV rescaling be done in a fully automatic way.

Is there a way to do that in blender?

You can try to use Vertex Slide instead of scaling.
Select the vertices / edge you want to transform and hit 2 x G or Shift+V to Vertex Slide. Move it to desired location and make sure you have Correct UVs checked in the options (left T panel).
You can use keyboard to set the exact value while sliding (I set -3 in the video).

If you need to extend the vertices outside, start sliding and keep Alt pressed.


Logic Bricks - Stop Sound Actuator I can start the song by pressing the P key but I can not stop the song being played. Logic Bricks are very confusing.

The reason that does not work is because of how the keyboard sensor works, it essentially is stopping and restarting the sound.

What you need to do is have a game property (A boolean set to true). The keyboard sensor is plugged into a Property actuator set to Toggle.

It is then that property that controls the sound actuator. Add a Property sensor, set its Value to "True", the Property to the game property created earlier, and leave the Evaluation type set to Equal.

In the end this is how the logic bricks should look.


What modifier or plugin does uneven mesh division? I know that this is a very strange question, but few mounts back I somehow made a box with uneven mesh and I don't remember how I did it. Probably used a modifier or plugin following a tutorial. Does anyone recognize or know what does that mesh division?

This can be achieved with a Subdivision Surface modifier set to "Simple" followed with a Decimate modifier set to "collapse" with a low ratio (I used 0.1).


I'm trying to texture a character models face When I go into UV editor and unwrap, the uv map is awfully distorted. Even with seems, Some of the eye doesn't highlight when I choose the eye with the b select short cut. I'd be more then happy to take images and attach them to an Email if anyone is interested in helping me. Thank you.

So, I solved this. first you unwrap your model in the uvmap then take the whole thing and
shrink the map down. Highlight certain parts of the body to figure out where the piece is on the uv map. Then, select all on the model. go to where that part is on the UV map. B select it then shift click any pieces you may have picked up from other body parts. drag it over to an empty space on the uv map and continue this process until you have a comprehensive uv map of your complex Model.


blender grease pencil / Krita workflow question I'm a newbie currently researching the feasibility of grease pencil for 2d animation, I'm curious on how the author in this video https://vimeo.com/160449173

Can anyone tell me how this person open the animation in krita. It looks like he just painted one frame and it automatically carried the painting to different frames while still recognizing the position of the painting for each frame. How is this possible?

To open a grease pencil animation in Krita, you first render the animation as a OpenGL animation. This will give you a sequence of images. Then you open Krita and start a new project with the same dimensions(or not) as your animation. Then you select File>Import animation frames and select the image sequence.

As for the painting, the author painted on a separate layer and used the Transform Layer brush with the Liquify option to manipulate the painted layer to stay with the animation. There is also an auto-frame option to keep changes per frame.


Blender 2.8: How to select multiple object with the same diffuse color in principled shader? I have to import various fbx file scenes , bringing in a large amount (>10.000 Objects) into the scene with each single import. Each import scene stands on its own. Imported fbx files will not be combined.
Each object has its own material assigned, and each single material is a material with a principled BSDF. But there are only a few different colors (for example, 10.000 Objects have 10.000 unique materials, but 3333 green ones, 3333 red ones, 3334 blue ones). All of them have the sample principled shader material, they only differ in the diffuse color setting.

The materials in the imported scene are named as follows:

the first digits are always the RGB value channels of the diffuse color of the principled bsdf. The suffix after the "." is the number of copies of the material.

the overal number of materials will differ from scene to scene, as this is just an example for one scene. Other scenes that will be imported will differ in number of objects, as well as in number of materials.

Is there a way to merge all shaders with the same settings, so that in the end there are only three materials instead of 10.000? In simple words: Merge aller materials with the same diffuse color.
means 3333 object share one green shader, 3333 objects share one red shader, and 3334 objects share one blue shader? (The numbers are just examples, not the actual amount).
In the end, the number of materials will be drastically lower.

I found a similiar topic here, but this one works only for Blender internal and causes an error in Blender 2.8.

Thanks for help!

import bpy

for obj in bpy.data.objects.keys():
    bpy.context.view_layer.objects.active = bpy.data.objects[obj]
    activeobj = bpy.context.active_object
    try:
        if "." in activeobj.active_material.name:
            mat = bpy.context.object.active_material.name[:-4]
            activeobj.data.materials[0] = bpy.data.materials[mat]
    except:
        pass

for mat in bpy.data.materials.keys():
    if bpy.data.materials[mat].users == 0:
        bpy.data.materials.remove(bpy.data.materials[mat])

Try this out and let me know


Is there a UseCase for Snap to Volume? By now, I have probably tried every snap-setting that Blender has to offer. I can say that most of them are truly useful. But for the life of me, I cannot figure out a possible use for the Snap to Volume Option.
Sure I have read the documentation which tells me that:

  Volume
  Snaps to regions within the volume of the first Object found below the mouse cursor. Unlike the other options, this one controls the depth (i.e. Z coordinates in current view space) of the transformed element. By toggling the button that appears to the right of the snap target menu (see below), target objects will be considered as a whole when determining the volume center.

Still, what could that possibly be good for? I am completely stumped!
If you know, please educate me.

It's very useful for rigging. Most of the time before the actual rigging you would want your rig bones inside mesh (probably around the center), but actually getting bones inside could be a problem that often requires moving around ortho views and dragging bones on 1 axis at at a time. With this snapping you can select joint and snap it to around the center  of arm or leg, do it for other joints, fix rotation and that's about it. Thought it doesn't work that well with complex shapes like hips or shoulders.


How do you achieve a retro 3D style, today? Limitations of 90's 3d computer graphics produced some very stylized images.
See here: https://www.pcmag.com/news/trippy-3d-art-from-the-early-90s
I can't quite articulate, in 3d terms, why it looks retro. Low resolution? Harsh shadows? Lighting? Unrealistic materials? Of course, today's technology has gotten a lot better and more realistic.
What techniques would you use to create a 90's 3d retro style today?
I'm a beginner in 3d software. Thanks!

Robert A. Mickelsen

This is a brilliant question. One of the main things was that back then, everything was in grayspace. There was very little in the way of raytracing, so non-lamped areas, reflected (or absorbed) a particularly dead gray. This is apparent even in the most well produced 3D animation and art of the time.
Because processing power was so low, edges weren't beveled, so they were infinitely sharp--a real reality breaker.
Textures were often applied directly to primitive faces so the scale and vanishing points rarely matched between different textures if applied to planes. This gives a kind of "collage" effect that is, besides the gray cast, a hallmark of 90s 3D art.
Also, lighting was really cold, and because of the gray-ness of the surrounding bodies, everything had a gray cast.
I hope this addresses some of the issues in play, though not all of them, I'm sure.


problem animating appearing text Making a logo - very simple - 5 words all set on a black background that appear independently in sequence.  I used the Outliner editor to set keyframes for the text to appear.  It works as designed in the render view but when I animate the logo all of the words are visible at frame 1.  What am I doing wrong?

In Blender, there are always two Settings for Viewport and Rendering. For Viewport visibility use  and for Rendering