Check if object position and rotation are zero I want to check if all object transforms are at zero with python. What I have so far is this:

 object = bpy.context.active_object

 if any(object.location) or any(object.rotation_euler):
    print(object.location)
    print(object.rotation_euler)

This statement any(object.rotation_euler) doesn't seem to work correctly as it returns true despite there being no rotation.

How do I change the statement to make it work?

You can try rounding the values to 2-3 decimal points when comparing with 0 to make sure you're not falling victim to floating point errors:

object = bpy.context.active_object

def nozeros( vec, decimal_points = 2 ):
    ''' Returns True if none of the elements in the provided vector vec
        equate to zero when rounded by the provided number of decimal_points
    '''

    return any( round( v, decimal_points ) for v in vec )

if nozeros(object.location) or nozeros(object.rotation_euler):
    print(object.location)
    print(object.rotation_euler)

If either the location or rotation of the active object is non-zero this will script print the values of both.


Giving the same keyframe to multiple meshes A beginner here. I want to give the same key frame to multiple meshes. Are there any other way than selecting every single one and giving key frames one by one?

I can think of two ways: select all the objects you want to apply the animation to, then select the object whose keyframes you are copying last (to make sure that it is the active selected object) then press Ctrl-L to bring up the Link Menu. From there select "Animation Data", and all the objects you have selected should now have the same animation applied to them. Please note that if you have keyframed the active object's Location property that all of the selected objects will be moved to the same location as the active object.
If you don't want the other objects to match the location of the active object, but you do want them to "fly in formation" as it were, then select all your objects, again making sure the object whose animation you are copying is last, then press Ctrl-P for Parent, and select "Object (Keep Transform)" from the dropdown menu.


Carrying UI Settings from Windows to Linux I'm trying out Linux (Kubuntu 20.04), moving from Windows 7, just to see how I feel about it. I installed Blender 2.83 and I'm having trouble opening up the start up file I have saved away with the settings I like. I can open it up, but the settings that I had are not taking effect at all. There are some special tweaks in there too, as I was indoctrinated into the 3D world through 3DS Max, and my Blender UI setup reflects that. Am I going to have to just go through and make changes all over again? Thanks.

Copy the startup.blend and userprefs.blend from the old computer to the new one.
For the location of the prefs file read:
Where is the startup file stored?
Also on the windows version export your keyboard configuration and load it on the linux box.
Lastly, make sure that all of the addons you were using in the default setup are available and installed on the new box as well.


How to enable freestyle edges on top of freestyle faces? Using blender render and freestyle lines I used "control- e" to set some freestyle edges to render, they render fine and all, however the mesh is animated and moves so it sometimes also renders freestyle lines set by the "edge types" under "freestyle line set" in "render layers".

I dont want these automatic lines in some spots so that is where "control-f" freestyle faces come in so that no lines render on those faces. The problem is that it also cancels out the freestyle edges I set with "control-e" and they dont render.

Is there a way to set freestyle faces and freestyle edges so that the edges I set render, while the freestyle face blocks the automatic lines at the same time?

I'm not sure to get it perfectly, but you can set freestyle to only render edges specified as "freestyle edge", like this

if you use face marks (here in blue)

you can use it to (eg) exclude some parts of the previously marked edges (also blue to make them more visible):


Make quad face from where two edges will meet? I can't seem to figure out the right term, but basically I have a mesh like this:

and I want to make a face, but when I press F I get a triangle like this:

When I want it to make a quad like this:

Is there some easy way to do this? My process is usually making the face, subdividing the triangle edge, manually copying the coordinates of the vertex I want to line it up with, and then moving the vertex via entering the coordinates. Is there some kind of 'make vertex where these two edges will intersect' function that I'm missing? I feel like I'm doing this the incredibly long way.

If you have the F2 addon enabled (comes bundled with blender), you can do exactly what you are looking for.

To enable the F2 addon, open up the user preferences with CtrlAltU or File > User preferences. Then in the Addons tab, search for f2. Enable the addon by checking the check box.

Now you can simply select the corner vertex, and press F. Done.

Do note that the addon decides which direction to make the new face based off of the mouse position.

  Direction control

  If there are multiple ways to create a new quad, the position of the mouse cursor is taken into account. Of the multiple new faces which are possible, the one which will be closest to the mouse cursor (in 2d screen-space) is the one which will be created.

Quoted from the wiki

Further documentation can be found on the addon's home page.


Model displays a non-existing outbound edge when outside edit mode I am modeling the hair of a 3D character, and I am getting something quite weird. When I exit edit mode, an "edge" appears out of nowhere from a vertex in my mesh. There is no overlap between that mesh and its neighboring meshes, like this answer would suggest.

This is displayed with both smooth and flat shading, and both in solid and viewport shading modes.
How can I fix this?

You seem to have a hidden vertex. Go into Edit Mode, unhide it with Alt + H and delete it.


Is it possible to add a custom property on bpy.types.Sequence? I am in the process of writing a tool that makes uses of Sequences in the Sequence Editor. I was trying the following in my add-on (register() method)

Sequence.active = BoolProperty(name='Active',
                               description='Is the custom property group active',
                               default=True)`

After I launch Blender and try to assign a value to my custom property, I get the following error

>>> C.scene.sequence_editor.sequences[0].active = 1
Traceback (most recent call last):
File "<blender_console>", line 1, in <module>
AttributeError: 'SceneSequence' object attribute 'active' is read-only

So my question is: Is it possible in anyway to add a custom property to a Sequence?

Update: bpy.types.SequenceProperties  is supported in 2.75 (or recent builds)

The information below is kept since the answer still applies to types such as bpy.types.TimelineMarker or bpy.types.Modifier.

In short - no. You can only add custom data properties on:

ID (its subclasses Action, Armature, Brush, Camera, Curve, FreestyleLineStyle, GreasePencil, Group, Image, Key, Lamp, Lattice, Library, Mask, Material, Mesh, MetaBall, MovieClip, NodeTree, Object, PaintCurve, Palette, ParticleSettings, Scene, Screen, Sound, Speaker, Text, Texture, VectorFont, WindowManager, World', etc...)Try run: bpy.types.ID.__subclasses__() to see all.
Bones
PoseBones
AddonPrefs
Node, NodeSocket, NodeSocketInterface
OperatorProperties.

The reason this gives confusing output is that the initial assignment is using Pythons regular class assignment, in this case its not using a metaclass (which would interpret the property definitions and apply them as you are expecting).

bpy.types.Sequence.foobar = 22
print(bpy.context.sequences[0].foobar)
# >>> 22
bpy.context.sequences[0].foobar = 11 # <-- will error!
# AttributeError: 'SceneSequence' object attribute 'foobar' is read-only

So why use this at all?
- Because it allows you to add utility methods & properties at run-time. Note that this is standard python and nothing Blender specific (unlike custom properties).

bpy.types.Sequence.calc_frame_mid = (lambda seq:
        (seq.frame_final_start + seq.frame_final_end) / 2)

print(bpy.context.sequences[0].calc_frame_mid())

... you can add Python style properties too.

Note, adding methods and properties to existing data types is known as Monkey Patching and often considered bad practice, however you can also use this to dynamically build up functionality into classes you generate for instance, so it can be used in some interesting/useful ways too.

If you modify Blenders built in types it will make the changes globally so beware it could break other scripts or even make Blender fail to use its own API's correctly, so this is really advanced api usage.


How do I add objects on selected polygons? I am trying to create a primitive pipe and I need to add a small cylinder on each selected polygon (see screenshot) to make rivets. How do I do this ?

Good reason to use Instancing (DupliFaces in old terms)

Duplicate selected faces and separate it from base object;
Create Cylinder, make it parent of separated faces object and copy location - origins must match each other;

Updated:

In Object properties, on Instancing tab select Faces.

As instance for DupiFace Cylinder will not be rendered!

After that you can Make Duplicates Real for next processing.


Utilising the same one value for different variables my smart friends! I have a little question, is it possible to set one parameter, one value anywhere in Blender and use it many times for the different purpose. For example, how it looks: I set parameter Parme1=1 and the use the same Param1 for value X, Y or  Z of any origin of any object, or for Decimation, or for Scale or for any other purpose?

Add a custom property in your scene or your world, and use it to drive your transforms with the "Copy as new driver" and "Paste Driver" operators.

You can then edit the way the property is used by right clicking in the driven field choose "Edit Driver", and then "Scripted expression". You can use standard python expressions. Here we multiply the property by 2 :


Alt-D copies with different Origins I am using copies of an object using Alt-D, but I need them to have their own different origins each. When I try to change each object's origin, it changes the origin of all linked objects (which I understand it supposed to work this way).
Is there a way to select specific changes that only affect one linked object, even if they are linked via Alt-copying? And can it be done for the origin?
Thank you

You could parent the second duplicate to an empty object and use the offset between the two as the wanted offset between the origins.

As for you other question, I don't think it is in the philosophy of linked duplicates to allow for a different origin.


I sculpted a plain, but I can't texture paint it I sculpted a plain for an animation, but when I try to texture paint it nothing happens.

I tried UV unwrapping it, but it still won't work. How do I paint on it?

Texture Painting in Cycles is a bit different. You cannot just go in texture paint mode and start painting it. To start texture painting,

Select the object you want to paint on and unwrap it.
Give it a new material. Make it diffuse.

Go to Texture Paint mode and create a new paint slot. Change it to 'Diffuse Color'. In the pop-up menu, change it's dimensions to the dimensions of the texture you want and select the base color. Click OK.

Start Painting!

This youtube tutorial might also help you.


Is there any way to insert f-curves keyframes by script? I'm writing a python script for animation in Blender and I'm looking for a way to insert keyframes automatically.

So far I have:

import bpy
import mathutils as m
import math
import random

armature = bpy.data.objects['Armature']
curves = armature.animation_data.action.fcurves

def add_curve():

    action = bpy.data.actions.new(name = 'Test')
    curves = action.fcurves

    keyframes = [0,10,30] # defining keyframes for insertion
    for c in curves:

        for k in keyframes:
            c.keyframe_insert( data_path = ??)
            # Is there another method ?

Thanks !

You can find the data paths by right-clicking on the property and choosing 'Copy Data Path'. This gives you something like pose.bones["Bone.001"].rotation_euler.

With those you can call keyframe_insert directly on the armature object:

for ai in range(3):
    armature.keyframe_insert('pose.bones["Bone.001"].rotation_euler', ai)

This creates a keyframe for array indices 0, 1, and 2, for X, Y, and Z angles. If you want to use Quaternions, make sure you also use array index 4.

The keyframe_insert function will create a keyframe with the current value of the property (in this case the rotation); if you want to store another value, first change the property itself. You can also pass frame=f if you want to store the current value at a different frame.

By calling bpy.data.actions.new(name = 'Test') you always create a new action, which may not be what you want. Calling keyframe_insert directly on the armature will automatically create a new action if needed, so that's quite handy.

For more info, see the documentation for keyframe_insert.


Liquid inside a cup is being Transparent I added a new material for the liquid.Its IOR is set to 1. But the liquid can be seen through...

IOR is how mutch a volume deforms the light rays going through, 1 being no refraction.

It has nothing to do with whether or not you can see through your volume.
That would be the Transmission value you've set to 1, meaning it 100% transmits light through. If you don't want that, set it to zero.


Why doesn't my effector work like I want it to with the new Mantaflow (Blender 2.82)? I want the plane highlighted in the picture to work as kind of a surface for the water simulation to run through, but when I go ahead and simulate it, it just goes through the object like if it was not there. Please help.

I found out was was the problem, the normals were in the wrong direction. Once I flipped them, it worked like a charm.


Changing colours precisely, procedurally I assumed this had been asked before but can't find anything that does what I need.
I have an image texture (a png) which uses 18 different colours. I want to be able to use the shader editor to change each individual colour and then apply that to a surface. So e.g. where the original texture has a particular yellow, make the surface orange; where the texture has blue make the surface green, etc.
Connecting the texture's colour to the fac input of a colour ramp may be the best/only approach, but:
a) it's not clear from Blender's manual how an RGB image is mapped to just one value (fac) when you connect nodes - but it seems from googling it's using luminance. (Is that right?)
b) if that is the case, it seems a bit clunky as I believe that different RGBs can have the same luminance
Separating the RGBs also doesn't seem to work, as then you are dealing with each channel separately. I would like to be able to say e.g. 'take colour (25, 50, 100) and change it to colour (100,150,0) - i.e. my desired output depends on all three of the RGB channels in combination, not individually.
If anyone has any advice on this, I would appreciate it.
Many thanks
John

Yes, FAC is driven by luminance (from 0.0 to 1.0), and yes, two different colors can have the same luminance.
The task isn't impossible, but you would end up with a very complicated node tree, which will have to recognise each of the 18 colors and send them to 18 color nodes or a color ramp.
I think it would be simpler to use an image editor software to create a copy of the texture with 18 different shades of grey, and use this new texture to drive a color ramp.


How to display F-stop limits in viewport? I know you can show focus limit in viewport by checking the Display > Limits on, but can you show the starting and ending points of focused area in viewport?

Now I have been rendering the image over and over again to check if I have long enough focus depth, and that takes too much time.

Depth of Field Utilities Addon

This Add-on allows to visualize the Depth of Field limits (near limit & far limit) in the viewport:

Once the Add-on is enabled, select the camera, open up the Properties region of any 3d View (N), scroll all the way down to the bottom and enable the visualization. From there you can fine tune all relevant properties of the selected camera:

Notice that you can disable the instructions to hit Esc in the Add-on Preferences if needed.

In addition to that, you can also set the focus distance by using the 3d Cursor:

Further reading: How do I set focus range?


While moving arm, leg mesh messes up Newbie here. Just started using Blender. I did look through many questions, but most likely don't know what I should look for.
I watched tutorials, tried to fix vertex paint, vertex weight. starting to feel lost, can't seem to fix this!
I would be so happy if someone could help me with this! Thanks!

http://pasteall.org/blend/index.php?id=46106

You have not properly assigned weights to your lowerarm. Select this bone in Pose Mode, then select the character mesh and press Ctrl+Tab to enter the Weight Paint Mode. Set the Weight factor in a Tool Shelf (T) to 0.000. Now select every single bone of the hand and see if there are weights assigned to the rest of the body and remove them (paint them, so they're blue).

NOTE 1: I haven't removed all the weights- it's just an example.

NOTE 2: The armature in my .giff is a bit off, since I'm using the older version of Blender than yours.


Do an action automatically every n minutes with Python? I want, for example, to move the context.object every 10 minutes automatically.
So no action needed, if I run my script the first time it will activate this incremental action, and if I run it a second time it will stop listening.

Is it even possible to do those kind of loop actions ?

I know we can get time information with

import datetime
time = datetime.datetime.now()
date= time.strftime(" %Y-%m-%d_%HH%MM%S")

Thanks to RUben for this answer, so i had another problem, once i launch a timer, impossible to stop it with another run of any code.

this for example

def every_1_seconds_word():
    print("World")
    return 1.0

bpy.app.timers.register(every_1_seconds_word)

but i can break the timer if it respect a condition

def every_1_seconds_word():
    print("World")
    if it.respect.the.condition.im.writing.right.now == n:
        return None
    return 1.0

bpy.app.timers.register(every_1_seconds_word)

but i don't know yet how to do this because i need to create a new condition line within blender itself, it need to be accessible on every run of the code, wso why not using an existing one ? for example with:

def every_1_seconds_word():
    print("World")
    if bpy.context.scene.cycles.preview_start_resolution == 9999:
        return None
    return 1.0

bpy.app.timers.register(every_1_seconds_word)

by using the start resolution parameters for example, i can create another code that can play on this to break my timer.

A = bpy.context.scene.cycles.preview_start_resolution
bpy.context.scene.cycles.preview_start_resolution = 9999

def in_1_seconds():
    bpy.context.scene.cycles.preview_start_resolution = A
bpy.app.timers.register(in_1_seconds, first_interval=1)

this is quite a macgyver solution but well it work

According to Application Timers documentation for Blender 2.80 it quite simple:

def in_1_seconds(obj):
    if obj.location.y > 0.5:
        return None
    else:
        obj.location += Vector((0.0, 0.1, 0.0))
        return 1

bpy.app.timers.register(functools.partial(in_1_seconds, bpy.context.active_object))

functools used to anchor active object to timer

timer function returns a float with seconds to next delay which may be changed dynamically

return None to stop function execution in test purpose it can be Keyboard Interrupted


Create and preview texture in Blender 2.80b? Tutorial for 2.7:

https://www.wikihow.com/Apply-a-Material-or-Texture-in-Blender

On step 4 I should already get a textured cube but it doesn't work. In the same time all the tutorials are for 2.7 version (or for 2.8 but use advanced texturing which is more complex than just assigning of texture to mesh).

So how to deal with textures in 2.80b?

The workflow of creating materials & textures is different for each render engine.
The tutorial you are trying to follow explains Blender Internal renderer workflow, it is fast and easy, but this renderer is no longer supported in Blender 2.8, so this method is no more applicable.

This means - if you want to learn how to create materials and texture your models in 2.8, you have to watch tutorials focused on 2.8 and it's supported renderers (Cycles / Eevee).


Wierd unwanted painted textures refusing to be deleted I started painting the texture of a model I scanned using photos of the scanned man, using stencil brush.
After I finished painting the front face and the left side I started painting the right one, and then everything went wrong- everything got horrifically blue and no matter what I do I cant get the texture blank again, or atleast white!
help! what can I do to start texturing again from the start?
Thanks in advance to all helpers.

all previous textures are now deleted and nothing is changing

The image shows you deleted the texture brush, but not necessarily the texture material. Check those are all deleted or disabled. If you want to start on a blank image again, just add a new image in the UV window.

From your other image it looks like you are adding each image in a separate material which I assume you wish to use for texturing. You should rather have one material where you can add multiple texture slots - those textures once loaded can be used in the texture brushes. Make sure you save your new image and link it back to the new texture in material tab.


Why is my foot mesh moving out of place when rigging? Every time I try to move my foot bone it just moves totally out of place.
I don't get it. It seems like everything is done right.

Bones:

Thigh Leg : Child of Body/Head Bone.

Low Leg : Child of Thigh Bone.

Foot : Child of Nothing.

Toes : Child of Foot.

Low Leg IK Constraint : Target = Foot. Pole Target = Knee IK
                        Pole Angle = -90 & Chain Length = 2.  Everything else default.

Low Leg IK: X = Unlocked / Limited  /  0 - 180
            Y = Locked
            Z = Locked

My foot mesh is parented to my foot bone as Bone and not Automatic weights.

I just don't understand what the heck is happening?

feels like everything is done precisely.

Help would be much appreciated.

Before

After

everything is fine with the rig, but the Knee IK.L (pole target) bone is the child of some bone in the IK chain. If you parent it to main bone things look much better.
If it still doesn't work, see the blend file attached ( http://www.pasteall.org/blend/41604 ).


How to export mesh object to FBX from command line? I'd like to open a scene with certain mesh object and export it to FBX file from command line.

I read some related questions; importing and exporting via command line as per https://stackoverflow.com/questions/38096913/blender-convert-stl-to-obj-with-prompt-commande, then using tooltips to learn command as per How can I run blender from the command line to export and import models and using command console to pass arguments with file name with script to execute on loading How can I run blender from command line or a python script without opening a GUI?.

The goal in my case is to open certain .blend file and export the mesh object from there. The problem is that even though script works it looks like it performs actions not in expected order. The resulting FBX file I get contains startup scene (cube, camera and lamp) and according to the output from console it starts exporting scene first and reads blend last.

In order to export I use command:

blender.exe --background --python "D:\\Program Files\\fbx-export.py" "D:\\Program Files\\monkey.blend"

The python file contains:

import bpy
import sys

bpy.ops.export_scene.fbx(filepath='D:\\Program Files\\exported.fbx', axis_forward='-Z', axis_up='Y')

How to modify the command used so that it opens proper scene and exports the object correctly?

The file you want to open needs to be towards the beginning of the command:

blender.exe D:\Program Files\monkey.blend --background --python D:\Program Files\fbx-export.py


Blender Shader in OpenGL/GLSL Is it possible to extract the Blender Shader and use them in OpenGL as vertex/fragment shaders (GLSL)?

Yes you can if you use an addon, see  the BlenderArtists page here. That page doesn't have the correct download link but you can get it here.
From memory, this addon generates rather long and possibly unoptimised GLSL fragment code.


How to make wheat stalk stiffer in Cloth Physics? I am making a wheat field that uses cloth physics to help each stalk move realistically with the wind. However before I convert the particle system, I need to look for the best numbers to plug into the properties of the cloth physics to ensure that the grass stays upright and springy. I have tried setting the tension and compression to 10,000, but it still bends sharply around the upper segments of the wheat stalk.
The hairs for the wheat also still seem to flail around like the strands of a mop. Is it possible to add specific nodes to the tension/compression properties to make these two areas stronger? If anyone has any suggestions, please let me know.
The images below are of the numbers I plugged into the Cloth Physics.

I recently found out about the Surface Deform Modifier, so I decided to try that on the wheat. I surrounded the wheat with a low-poly mesh, and gave the low-poly mesh the cloth modifier instead. To keep this mesh from falling over, I added pinning to a few vertices I extruded above the mesh. It works great now, not only because there is far less bending, but also because now I don't have to worry about the little hairs swinging all over the place.
Below is a screenshot of the wheat.


Rendering in Cycles on OpenCL GPU Compute Leads to Artifacts I've switched my renderer to GPU compute and get pretty terrible artifacting along with garbled denoising data.

I'm asking this here because Cycles rendering seems to be the only OpenCL workload that this happens in. Other workloads, including Luxmark, all work fine.

I'm rendering with OpenCL with a tile size of 256, and I have branched path tracing enabled.

CPU render:

OpenCL render:

OpenCL render (Intel denoised):

My system is an i5 6400 with a RX 480 8GB.

I'm rendering with Blender 2.83

I was unable to reproduce this issue in older Blender versions. This seems to be an issue related to 2.83, especially on RX480/580s for some reason.

https://developer.blender.org/T77095


Proportional editing on UV map I am a beginner and I'm currently following these tutorials on Youtube in order to finish my model but I am stuck!

https://www.youtube.com/watch?v=b8UH_WU23Io - this is the tutorial on how to UV map the eyes.
It seems quite easy, but my issue is that at that part where I should scale the selected part of the mesh on the UV map with the proportional editing tool.

When i attempt to do it,
1. The ring that should aid me as to deciding how big the "influence" should be does not appear (despite me having enabled the tool) and
2. If I, then, try to move or scale the selected area, the whole mesh moves with it.

This results in the eye that I'm creating having several irises and pupils which is, of course, not what I want.

Does anyone know what could be the possible source of this?
Thank you!

The proportional editing circle might have been too big and is not showing in your screen. If this is the case, it also explains why your entire mesh is moving because the circle is encompassing everything. To rectify this, scale down the circle by scrolling up the mouse wheel.


Is there a way to array an object along a few faces? Of course, objects can be arrayed along a curve, but I was wondering if there was a way to array them along a series of faces. I'm gonna be adding details to my Titanic model, and I'm wanting to array objects along the hull and walls, but most of them are curved (at least slightly) so a straight array just won't do.

You can use the Shrinkwrap Modifier to the curve, but if you are planing to add details to a mesh you already have, I'll recommend to:

Tab enter edit mode, chose edge select, select the edges
shift+D duplicate it, then press P separate selected.
With this you'll have made a new object copy of the selected edges.
tab to go back object mode, select the new object, and convert it
to a curve
AltC curve from mesh.
You can also use parent object, on the property panel select
verts on the parent object ,"the curve or the line you chose".


Translation snapping toggle - Specific dynamic snapping [This is 1 question explained in several questions]

(And as notice asking several questions in separate threads is limited to 40 minutes)

Can you change the snapping target and element while snapping.

Or can you dynamically change the snapping target and element while snapping?

-)
Also know about toggling the snapping in general:

Is there a shortcut to change snapping type?

This is not what I mean.

-)
I know about the [ctrl] snapping feature. When translating an object you can toggle the snapping on and off. This is fine by itself but more specific toggle would be appreciated.

Can this method be used with specified snapping hotkeys:

Can this method be used with specified snapping hotkeys:

translate an object and toggle snap to 'closet' snapping option on or off?
translate an object and toggle snap to 'center' snapping option on or off?
translate an object and toggle snap to 'active' snapping option on or off?
translate an object and toggle snap to 'median' snapping option on or off?

translate an object and toggle between snap to 'edge' and snap to 'vertext' snapping options?
translate an object and toggle between snap to 'face' and snap to 'vertext' snapping options?
translate an object and toggle between snap to 'face' and snap to 'volume' snapping options?

Couldn't bind

wm.context_toggle

with

scene.tool_settings.snap_element

or

bpy.context.scene.tool_settings.snap_element='VERTEX'

or

toolsettings.snap_element

or

-bpy.context.scene.tool_settings.snap_target = 'CLOSEST'

or

...something similar

It's not so much that you can't change targets while snapping, its more that generally if you are snapping that usually means you are using some sort of  transform operator already.

Now transform operators are generally Modal operators, so that means while they run there is generally a predefined set of actions you can preform, limited by what Blender developers coded into that operator.

As far as I know you could not invoke wm.context_toggle while an operator is already running.

That being said some of the operators do provide some snapping options you can configure. Just go to File > User Preferences > Input search for a transform operator like Translate if you expand it you can control its specific sub-keymap, which includes some basic snapping options like Invert or toggling on and off.


Some edges on model won't Bevel I'm very new to Blender. I've used a loop cut and slide to make the shapes I want to indent in this object, then extruded them inward to get them how they look now, then dissolved the unnecessary leftover edges. I wanted to apply a bevel to some of the edges, so I used Tag Bevel in Edge Select Mode and marked the edges I wanted to Bevel, added the Bevel modifier and set the mode to weight.

On one side, it looks exactly how I want it:

On the other side though, some of the edges aren't being bevelled despite being tagged (the ones closest, on the left side):

Why is it working for every edge other than these ones? This is the wireframe of the object and it doesn't appear to be any different on the side that works to the side that does not:

And these are the bevel's settings just in case (I've tried fiddling with the width and it doesn't seem to have any effect. Incidentally, if I change limit method to None, those edges bevel fine):

you have a loop cut inside that part "overlapping edges"

select all the mesh in edit mode click remove double in tools
re-assign  the bevel weight again


Is there any way to add backgrounds in Blender 2.8? In 2.8, there is no background image option:

I am aware of the alternatives like putting an image in a empty or the image directly to the camera. But is there like an addon or something I similar that I can do?

It can be found in the camera's properties, but the behavior is still not correct.


Rigify->Generate Rig doesn't create all rig layers in the properties ui For some reason, after clicking Generate Rig for my armature I only get the following rig layers:

Torso, Fingers, Arm.L (IK), Arm.R (IK), Arm.R (FK), Arm.R (Tweak), Leg.L (IK), Leg.R (IK) buttons are all missing. The controllers themselves are actually there, but I have to manually unhide them using Alt-H or switching bone layers.

Adding a default metarig in a new empty blender file, and then using it to generate rig with Rigify correctly produces all of the above, so the problem must be something with my armature, but I have no clue what might be causing this.

EDIT: I was able to solve this by adding a new metarig into the scene and copying all the bone LocRotScale properties from the old one, using the script provided in this topic (thank you sambler): How to copy position, size from one armature to another?. Whatever the problem was, this fixed it and spared me from re-rigging everything from scratch.

Reposting the solution as an answer as requested.

I was able to solve this by adding a new metarig into the scene and copying all the bone LocRotScale properties from the old one, using the script provided in this topic (thank you sambler): How to copy position, size from one armature to another?. Whatever the problem was, this fixed it and spared me from re-rigging everything from scratch.

The only thing I had to change in that script was my source and target armature names at the top:

import bpy

source_rig = 'metarig_old'
dest_rigs = ['metarig']

############

bone_data = {}

def edit_rig(rigname):
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.select_all(action='DESELECT')

    bpy.data.objects[rigname].select = True
    bpy.context.scene.objects.active = bpy.data.objects[rigname]
    bpy.ops.object.mode_set(mode='EDIT')

edit_rig(source_rig)
for b in bpy.data.objects[source_rig].data.edit_bones:
    bone_data[b.name] = (b.head.copy(), b.tail.copy(), b.roll)

for arm_name in dest_rigs:
    edit_rig(arm_name)
    for b in bpy.data.objects[arm_name].data.edit_bones:
        b.head, b.tail, b.roll = bone_data[b.name]

bpy.ops.object.mode_set(mode='OBJECT')


JackAudio disabled in Blender's OSX official release? I need to use JACK as Blender's audio device, mostly to sync with Ardour via Jack Transport. I've done this in linux but in OSx (10.13) Jack doesn't show in the audio devices list.
bpy.app.build_options.Jack in the python console drops False. I guess the build option comes disabled by default. Is that because Blender is no longer compatible with Jack in OSx? Is there any build with the option activated?
Any guidance will be very much appreciated.

Solved. Blender installer detects missing files related to Jack. I realised this building Blender from the source code. I had to correct the file location of Jack .h files, then it compiled correctly and Jack fully works. This is an issue affecting MacOSX 10.13 + JackOSx 0.92_3. Probably due the fact that Jack is not yet fully supported in newer OSX versions.


Unable to set number of output channels for Audio Render I can't seem to find where to set the number of output channels for an Audio Render. I can control the output format for live playback in preferences but this seems to have no effect on audio rendering. The documentation suggests there should be a button or setting in the scene's output panel but on my version it doesn't seem to be there.
Am I looking in the wrong place? Also peeked through the parameters for the sound.mixdown operator and it doesn't seem to be settable there, nor is it available on bpy.context.scene.
I'm running 2.90.0 on Mac OS X Catalina.

The audio options are visible once you choose ffmepg video as File format.
Then you can set the audio codec and channels in the audio section of the encoding.


Why the material showing white (different color) I have 2 mesh with same material. In the slot i have 1 material (red material) applied on both mesh and curve. Why in render and view-port its showing white color

Any suggestion why its showing white material to curve.

You've enabled the Shadow Catcher option in the Properties panel > Object > Visibility, disable it.


How to animate vertex color of an object? Is it possible to animate the vertex color of an object?

Cycles
In Cycles Render, it's rather easy. Create your two Color Layers and animate the MixRGB's Fac: value.

I'm not familiar enough with Blender Internal to find a suitable answer for that engine. Luckily, brecht provided an answer
Blender Internal


Is there a way to use logic operators in Blender Shader nodes? I'm self-answering this question since I've found the nodes useful and would like to share this with the community since I couldn't really find anything related on it here.

Are there shader nodes / node groups that can be used for basic logic operations in the shader editor, like And, Or and Not?

Since nodes like Math > Greater Than output a 1 or a 0 based on the input conditions, it might be useful to use those outputs in a more logic-oriented fashion with multiple conditions deciding one final answer.

I've spent the past week or so working on basic logic gate implementations in Blender Shader editor.
I'm sharing these with the community so anyone who would like to use similar nodes can easily find how to make and use them.
They allow for a little more advanced Shader Node behavior without having to resort to OSL or python scripting.

Here's an overview of the logic gate node groups I've made, along with a .blend file that contains all of them.

Download the .blend file here:

It contains all logic gates discussed in this topic, as well as an example of a 7-segment display and the logic that drives it. You may freely use the contents as you wish, though crediting this post and/or linking back to it would be appreciated.

To use the nodes in your files, open the file you need the nodes in and click File > Append, then open the above .blend file. Navigate to "Materials" and import the Logic Node Library material. This contains all nodes mentioned in this post.

Since the node groups are protected and named, you can add them to your Shader Editor by using Shift+A > Search and entering their names.

Preface

Every logic gate can be made from Not-And or Nand gates. (This also goes for NOR, but I'm not using those).

When implementing logic gates, you first need a Nand gate; with this gate you can make any other gate using solely Nand gates. Most of the gates in this answer are solely composed of Nand gates.

All node groups have inputs that are clamped to a range of 0 to 1. Due to how the Nand gate operates, any value greater than 0 is seen as a logic 1.
The Nand gate is also the only gate that utilizes an internal value that surpasses 1; they do binary math with decimal numbers.

The outputs are also clamped to a value between 0 and 1, this makes it easy to chain node groups without losing 'signal' quality.

The terminology I'm using, just for clarification:
1 indicates that the node outputs a True signal.
0 indicates that the node outputs a False signal.

All inputs are noted as capital letters. The output node is named O for most gates.

Outputs of Logic Gate Nodes can be fed into just about any node that accepts values. For instance, connecting the output to a Mix Shader Node fac input allows you to control which shader to use based on your logic. It's effectively a "switch" which allows you to switch between materials based on specific conditions.

The inputs of logic gates can manually be set, or controlled through keyframes.
Another possibility is to split a RGB color value into it's three component color channels and use either one of those values for logic input(since these are also ranged between 0 and 1).

If you have input values that exceed the 0 to 1 range, you can use a Map Range node to map the input range to the output range.

Basic Gates

In this section I'll describe the construction and operation of the four basic logic gates:
- Nand
- Not
- Or
- And

Nand

The Nand gate outputs a 1 unless both inputs are 1, then it outputs a 0.

This is implemented as follows;

Both inputs are fed through a Math > Ceil node which rounds the value up to the nearest integer. For 0 this would be 0, for anything between 0 and 1, this would be a 1.

These values are then added together using a Math > Add node, which results in an internal value which is denoted as X in the following truth table:

Truth table:

Nand
A  B  |  O  X
-------------
0  0  |  1  0
0  1  |  1  1
1  0  |  1  1
1  1  |  0  2

The X value is finally passed through a Math > Less Than node which outputs a 1 if the input is less than 2. If the value is 2 it will output a 0.
This node is clamped so the output value will never exceed the 0 - 1 range.

Considering every following gate consists of Nand gates that contain both input and output clamps, there is no need to further clamp these nodes.

 Or

On to the first compound gate(a gate made from other gates).
This gate outputs a 1 when either of its inputs, or both, are 1. If all inputs are 0, it'll output a 0.

Truth table:

Or
A  B  |  O
----------
0  0  |  0
0  1  |  1
1  0  |  1
1  1  |  1

The node group consists of three Nand gates:

Not

This node has a pretty simple effect; it inverts the input. Is the input a 1, then it'll output a 0 and vice versa.

It is constructed from one NAND gate with both inputs linked to the group input node.

Truth table:

Not
A  |  O
----------
0  |  1
1  |  0

And

Finally, the last basic logic gate(and perhaps one of the most useful ones): And.
This gate outputs a 1 only if both inputs are 1. Else, it'll output a 0.

Truth table:

And
A  B  |  O
----------
0  0  |  0
0  1  |  0
1  0  |  0
1  1  |  1

It consists of a Nand gate linked to a Not gate. Remember how Nand stands for Not-And? This gate effectively is Not-Not-And.

Other gates

With these four basic gates, you can construct gates that exhibit more complex behavior.
I'll describe three gates:
- Nor
- Xnor
- Xor

Nor

This gate is a bit like the opposite of an And gate; its output is only 1 if all inputs are 0. Else, the output is 0.

Truth table:

Nor
A  B  |  O
----------
0  0  |  1
0  1  |  0
1  0  |  0
1  1  |  0

This gate can be used as a last option for conditions; this gate activates only if none of the inputs are active.

It consists of an Or and a Not gate:

Xnor

The Xnor gate outputs a 1 if both inputs are equal. Are they different? Then it'll output a 0.

Truth table:

Nor
A  B  |  O
----------
0  0  |  1
0  1  |  0
1  0  |  0
1  1  |  1

It is constructed like so:

Xor

Finally, Xor is a gate that outputs a 1 only if both inputs are not equal. It's like the inverse of the Xnor gate.

Truth table:

Nor
A  B  |  O
----------
0  0  |  0
0  1  |  1
1  0  |  1
1  1  |  0

More complex components

In the Blender Shader engine I wouldn't expect things like binary adders and 7 segment drivers to be useful.
Singular gates operating on a few inputs are likely way more useful. I've implemented them anyway; since they're fairly complex I will not explain how they are constructed. Instead, see the attached .blend file for more information.

Included in this file are the previously named base gates, a few gates with multiple inputs (things like And with 4 inputs), adders(half, full and 4 bit) and some groups related to handling Blender's decimal numbers.

Here's a quick description of these gates:

The DecimalToBinary node group converts the value on a single input to a 4-bit binary value (0000 - 1111 or 0 - 15). Currently, this only actually supports numbers 0 - 9, since the 4th bit is needed to be able to count to 9. The values 10-15 are not used. I'll add this to the post as soon as I've found a solution for this.

The input value is passed through the DecToDigits node, which converts a singular value to 10 output values (Y0 - Y9).
These effectively convert a number to their digits; 4 would turn output Y4 on and leave the rest off, 8 turns Y8 on and leaves the others off, and so on.

These values are passed to the DigitToBin group which converts the digits to a 4-bit binary number (again, only 0-9 for now) using a fairly complicated node group.

In the .blend file I've also included a WIP 7-segment shader which controls a single digit based on the (keyframe-driven) input value, which is passed through the DecimalToBinary node group. Currently every digit has its own material to account for decimals and hundreds, tens, ones. I hope to find a better solution for this since every material on its own contains about 800 nodes.
The whole display encompasses about 4000 nodes!
This is also included as an example; choose Play Animation to see the display count up. This works best in Cycles render, though LookDev also works but is a lot less responsive.

In terms of performance, I haven't noticed any performance slowdowns when using a few of them here and there in my materials. In the 7-segment shader however, there are 4000 nodes in use which noticeably slows down animation speed to about 1 fps.

Again, if you only use a few of these nodes performance shouldn't be an issue.

In conclusion

Boolean logic is absolutely possible within Blender's Shader editor and may prove useful for making certain materials, like switching shaders or colors based on a keyframed value.
Things like binary computation are also possible, though that is not the focus of this post.

I'm sure people can find interesting applications of these nodes!
I will also add examples of the basic nodes later so you can see what they can be used for.


Image texture on extruded SVG I can't seem to be able to apply a texture to an extruded .SVG.

Note: How do I put an image texture on a material in Cycles? does not solve the question as it relates to an older version of Blender: there's nothing like a "grey dot icon on the right side of the Color selector" in my Blender version.

Here's what I do:
1) Import SVG and extrude

2) Transform to mesh (Mesh from Curve: Alt-C, 2)

3) Import texture file, and set texture coordinates as "View"

4) Set the viewport shading to Texture

5) Notice the the mesh does not get textured properly
6) Go to edit mode to check if something is weird
7) Notice that there IS something fishy

What am I doing wrong?
Thanks
AC

My materials look like this:

@cegaton:
This is how my blender looks like:

If I click on "New" this is what I get:

While this is what YOU see:

How can I do it with my GUI?

You don't really need to convert the curve to mesh.

Import the SVG
Create a material
Use an image texture in the material
Select the image you want to use
Create an empty
Select your object again and in the materials set the coordinates to object
Select the empty as the control object for the coordinates.

If you switch to rendered view you should be able to see the texture being used as part of the material of the curve.

To control the placement and size of the image move/scale/rotate the empty.

For Blender internal is the exact same procedure: create a material, create a texture, set it to use object coordinates and use an empty to control them.


How do I displace only outside of cylinder and exclude interior of cylinder mesh? Hi I have a question I want to make a textured roller in in Blender
I followed a video tutorial  (link below) when I get to subdivide and create a vertex group to assign the displacement image it affects the outside of the cylinder but also the inside of the cylinder which I want smooth I don't know how to separate the inside from being affected by the displacement image. I have an online folder with all the screenshots what it should look like and what I get. I included the blend work file and exported  blend file as well as the displacement image at my online file account.
3D Printable Textured Rolling Pin Tutorial
https://www.youtube.com/watch?v=nyWY26Dd8R8
Work files and screenshot explanations located here :
My shared folder:
https://www.mediafire.com/folder/mn8b59dxzsl74/TEXTUREROLLERWOODFLOOR

Create your cylinder with a reasonable amount of subdivision, (which will eventually separate vertex groups), and give it 2 vertex groups; mine are called 'Shell' and 'Rim', for convenience. You don't need to allocate to them: they're placeholders.

Give the cylinder a Solidify modifier. In the modifier there's an 'Output Vertex Groups' section. There, you can set 'Shell' to Shell, and 'Rim' to Rim.
The resulting 'Shell' vertex group is shown on the left, 'Rim' on the right.

In this case, using a Vertex Weight Mix modifier, I added the 'Shell' group to the 'Rim' group. This was to isolate a region (the blue one, below) from the rim, which would displace more neatly. I have a Bevel (by angle) modifier below the Solidify, to harden the edges of the rim of the roller.

Now, you can aim the Displacement at the inverse of the mixed group, (using the little double arrow) to displace only in that outside region.

With this sort of result:

This keeps all your modifiers live. But, as @moonboots has commented, it may be simpler, for this project, to work more destructively, applying modifiers as you go along.


How can I make an addon that stores arbitrary data with a .blend file? What I'm trying to do

I'm trying to make an addon that can import Minecraft model files. Unlike many 3D files, Minecraft files use a hereditary system where each model file can have a parent file which it inherits elements from. As such, I need a way of locating the parent file referenced in the model, which is represented as it's path relative to a "resource pack root directory"

How I'm going to do it

For each blend file, I'll have the user specify the resource pack root directory somewhere in the properties panel. The problem is that I don't know how to actually store this value once it's set. So how do I store it?

You can set this data inside custom properties: https://docs.blender.org/manual/en/2.79/data_system/custom_properties.html If you do it the python way as described below, it's just adding some property to the object. If it's something blender is not familiar with, the Ui will display it a custom property to you.


How to completely remove all loaded data from Blender? I'm implementing a Blender Python script to do batch conversions.
It works like this:

for each model file found in a directory:

Import the model
Process it
Export in other format

The problem is, that after each iteration, the imported models,
textures/materials and everything are still contained in the (scene?) blender instance.

How do i completely clear everything that is loaded in Blender in each iteration?

2.79 or newer

Note, to avoid having to remove this extra data, you can start a new file with blank scene, objects..., eg:

bpy.ops.wm.read_factory_settings(use_empty=True)

Or...

bpy.ops.wm.read_homefile(use_empty=True)

Old Answer (useful for partially clearing)

This can be done by running 'Reset Factory Settings' operator (then clear the data).

The advantage with doing this is we only need to clear the default Cube, Camera & Lamp. Since 'Reset Factory Settings' will clear everything else each time (images, packed data, curves.. etc).

import bpy

def reset_blend():
    bpy.ops.wm.read_factory_settings()

    for scene in bpy.data.scenes:
        for obj in scene.objects:
            scene.objects.unlink(obj)

    # only worry about data in the startup scene
    for bpy_data_iter in (
            bpy.data.objects,
            bpy.data.meshes,
            bpy.data.lamps,
            bpy.data.cameras,
    ):
        for id_data in bpy_data_iter:
            bpy_data_iter.remove(id_data)

reset_blend()

If you wanted to you could skip calling bpy.ops.wm.read_factory_settings(), but theres a possibility some other data was loaded (curves or lattice for eg) that you don't know about. The clearing function could be extended to test for all possible data, but loading factory settings is an easier way to ensure you didn't miss some.


How do i make the image look like its directly outside my window ]3
So basically im trying to put a picture outside my window (in eevee) and when i do it appears far away and blurred, is there any way to put it directly outside my window? The roof also turns green whenever i change the overall colour of the background, say if i changed it to a blue sky the roof would turn blue as well.

There are a lot of ways to achieve this, one would be to enable images as planes addon.
It is already included in blender so just go to prefernecs and enable it.

Once its enabled press SHIFT + A > Image > Images as planes and select the image you want to import.
Now simply place the new plane where your window is and transform it as per your needs


Blender class register issue I'm getting an error when trying to register a class. I'm sure it's something silly, but tried google, looking at templates and looking at the manual without luck. Here's the code:
import bpy

class MESH_OT_L(bpy.types.Operator):
    bl_idname = "mesh.L"
    bl_label = "delSplitNormals"
    bl_options = {"REGISTER", "UNDO"}

    def execute(self, context):

        selection = bpy.context.selected_objects

        for o in selection:
            bpy.context.view_layer.objects.active = o
            bpy.ops.mesh.customdata_custom_splitnormals_clear()

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

    def draw(self, context):
        self.layout.operator('mesh.L')

def register():
    bpy.utils.register_class(MESH_OT_L)
    bpy.utils.register_class(VIEW3D_PT_dansTools)

def unregister():
    bpy.utils.unregister_class(MESH_OT_L)
    bpy.utils.unregister_class(VIEW3D_PT_dansTools)

if __name__ == "__main__":
    register()

Anyone any ideas?
Error in console
RuntimeError: Error: Registering operator class: 'MESH_OT_L', invalid bl_idname 'mesh.L', at position 5

The bl_idname of MESH_OT_L should be lower case and one dot only, which is: mesh.l.

You need to follow the naming convention that Blender API required. It is kind of meta type that Blender used to organize the components that addon gonna registered.
And also you should use MESH_OT_L.bl_idname in your panel for clearance and flexible to change your bl_idname since it will warn you if MESH_OT_L is not found or missing bl_idname.
It is surely included in the page that you point out: Reference/Release Notes/2.80/Python API/Addons - Blender Developer Wiki
But it is not that clear why should lower case id been used (it is a former convention rather than 2.80 change)


Can I save the baking cache? Is it possible at all to save a physics cache with a .blend file, so that when I open it back up, I won't need to cache it again?
P.S. I do understand the implications, that the .blend size can be huge.

When doing simulations in blender the results will be cached as you play through the animation. Most simulations will only keep the cache data in RAM until the blend file is saved, when you will get an option of saving the cache to a folder located next to the blend file.

While each simulation has it's own variations, the most common simulation cache options are -

By ticking the Disk Cache option the simulation data will be saved to a folder called blendcache_caching, if you give a name to the item in the list by Ctrl clicking it will be used as the beginning of each filename otherwise a random number will be used to distinguish each simulations data in the cache.

There are some exceptions to this. Rigid body caching is only saved within the blend file. Smoke and fluid caches are always disk based. Fluid, dynamic paint, and ocean modifier simulations use their own cache folder that you can rename if you wish.

While the Disk Cache option is only available after you first save the blend file, fluid and ocean caches will initially be saved within /tmp or c:\tmp on windows if the simulation is run before the file is saved. These temp file caches can be manually moved and adjusted in the cache settings if you bake before saving.


How to create a sub-category or folder in T-Panel tab I used to have a problem with the clattered tabs in my T-Panel, but not anymore since I discovered how to edit the code of a tab in the T-Panel (rightclick in any button of the tab contents and select "Edit Source") and finding the "bl_category" value in it and change it to create a new category or to move the item to an existing one. This works beautifully, but I have a problem; some addons have several components and I would like to group those in a "sub-category" or folder (I am not sure of the right term).

For example, I have organized all the addons into a number of tabs (see screenshot); including a Misc tab, where I include all the new addons that don't fall into any other category; in Misc I have the "Mesh Align Plus" add on which is made up of six quicktools entries; I would like to group those six entries into a single "Mesh Align Plus" category of its own within "Misc", creating a kind of folder.

Is that possible at all?

Thanks in advance.

Sept

The sections you are referring to that can be collapsed and expanded are called panels. You may have noticed that when you alter the addon you find the bl_category a few lines under a class definition that has Panel in brackets at the end of the line.

We have some control over the placement of panels (not 100%). The small dots to the right of the panel allow us to drag them up and down to get a different order and the order that we place them in gets saved with the rest of the interface settings. This means you need to enable the addons that you want, Save User Settings so that they are enabled on startup, then re-arrange the panels the way you want them and then File->Save Startup File so that the layout settings are used every time you start blender. You may also want to ensure the Load UI option under the File preferences is disabled so that your startup layout is used instead of the layout saved with the file.

To get more than that you will need to write your own addon. Yes you can copy the code of another addon, but the changes needed mean that you will need to re-structure the code again after any updates - so consider this option as your custom addon where someone else writes most of the code for you.

Each panel is defined by a class that is a subclass of bpy.types.Panel. The draw method of the panel class defines what is displayed inside the panel, you can take the contents of an existing panel's draw method and combine them into one panel that you have defined. For some panels you may also need some of the surrounding code that the panel relies on. As shown in this answer you can add a custom property and use that to show a disclosure triangle that can contain the items from another panel to get the "sub-folder" layout that you are looking for.

You can find an example addon here that provides the following panel.


Trying to bevel a design So I have this simple piece I want to put a bevel around the outside.  I cant figure out how to get it to work.  I get how to do it on cubes and what not, but this has all these edges and lines in edit mode that it just blows up since they go in all directions.  I tried to use a modifier in regular mode but cant seem to grasp that either.

This is kind of similar I imagine to working with text objects in Blender so ill demo on that,

Your topology starts like this, Or something near this:

Go to Mesh>Clean Up>Limited Dissolve, which basically dissolves all edges based on the angle of faces they are connected to.

Thatll give you this:

You might go through and clean up your edges a little bit, just to even out a few really long triangles or what not. This step might be not necessary. Some times blender has to have an edge in one spot to figure out how to make a weird Ngon stay together. If that edge is weird try to connect other vertices Around it and then use Ctrl+X to dissolve the bad one. You should be left with this:

Then you can add your Bevel Modifier, Use these settings:
, most importantly, Setting the Bevel method to Angle, otherwise it bevels every single edge, and set the Outer Miter to Arc to smooth out the sharp corners. Set the model to Smooth Shaded, check Harden Normals on the Bevel Modifier and you get this:

Let me know if you have any other questions!


How to show the names of each bone on an armature? For example I have imported a dota 2 3d hero model and I need to attach my item to a particular bone but I cannot see the names of each of the bones.

Is there an option to enable display of the bone name?

With your armature selected you can go to the 'Armature' tab of the properties area and you can enable the 'Names' property in the 'Display' section:


How to model a pitched roof? I need help modeling the roof part:

I'm trying to make that cube a wedge. I've tried the knife tool (both with Z and E) And I've tried all the tools in edit mode.
That "roof" I made out of planes, and I can't make them higher, they are super thin

First off there is no reason to be adding a cube up there to fill in the roof, you could simply do that (in edit mode) by adding a loop cut (CtrlR then right click or Esc to cancel the movement so the new loop jumps to the center) in the base cube then moving the new edge up to meet the peak of the roof.

If you did want a separate cube for the top and bottom of your house, you still do not need the knife tool. First scale up the cube to match the size of the bottom cube and bottom of the roof. Then simply select the top four vertices of that cube and use the two most basic modeling tools G Grab to move, and S Scale to change the size, to position it to match your roof.
I have an animated gif below.

For the "super thin" roof, you could add a Solidify modifier Planes are two dimensional, so by definition that will be super thin. You need to add geometry (by modeling or modifiers) to create that third dimension.


What's wrong with my batch script? I want to batch packing every single object's UV. But the script can't go throw everyone. After packing one object, it stopped with no error. What's wrong?
(I've already did Cube Projection for all objects beforehand.)
import bpy

for obj in bpy.context.selected_objects:
    bpy.ops.object.select_all(action='DESELECT')
    obj.select_set(True)

    bpy.ops.object.mode_set(mode = 'EDIT')
    bpy.ops.mesh.select_all(action='SELECT')
    bpy.ops.uv.pack_islands(margin=0.001)
    bpy.ops.object.mode_set(mode = 'OBJECT')

Due to some silly mistakes. This one works.
import bpy

objs = bpy.context.selected_objects

for obj in objs:
    bpy.ops.object.select_all(action='DESELECT')
    obj.select_set(True)
    bpy.context.view_layer.objects.active = obj

    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.select_all(action='SELECT')
    bpy.ops.uv.pack_islands(margin=0.001)
    bpy.ops.object.mode_set(mode='OBJECT')


Merging two spheres with different radii I see many posts here on how to merge cubes, but I think my problem is a little more complex.

I'm very new to blender and am trying to create a model of the human lens. The front and rear surfaces have different radii of curvatures. This is no problem and I used to sphere meshes with the correct radii, and then cut them using the bisect tool the model shown here is a reasonably accurate staring point:

I am now trying to merge the two models. Because the spheres are not bisected along their equator, you can see that both "halves" end with a sharp edge. In the human lens there is, of course no such sharp demarcation between the two parts of the lens - it is a smooth curve.

That is my question - how do I smoothly merge the two parts of the lens model while making it look "organic"?

Bridging two sections with  a different number of vertices will yield untidy topology ... perhaps an approach like this would be more flexible?

Start with some sort of sphere for the lens (here I've used a rounded cube). It helps to set its display property to X-Ray.
Create 2 vertex groups in the lens: one of all the vertices above the equator ('top'), and one of all the vertices below the equator('bottom').
Create 2 high-resolution spheres 'top' (the lower one in the illustration) and 'bottom' (the higher one) to represent the curvatures of your lens. (It helps to set their maximum display to 'wire')
Assign 2 Shrink-Wrap modifiers to the lens. One is set to affect the 'top' vertex group with the target sphere set to 'top'.. the other, vice-versa. Perhaps pop in a Subdivision Surface modifier at the bottom of the stack.
Uniformly scale your target spheres and move them along Z until you are happy.

Variations might include leaving a wider unaffected margin between the vertex groups, and/or scaling that margin in XY to get the transition you'd like between the spherical sections.


Difference between played and rendered animation I face a really odd thing When rendering a scene the output AVI file is very different from the animation I see inside blender. The script is looping over a function which create the scene:

    def main(self):
        for i in range(self.n_scenes):
            valid_scene = False
            while not valid_scene:
                self.clean_scene()
                valid_scene = self.create_scene()
            if len(os.listdir(self.output_path)):
                self.render_scene(f'{len(os.listdir(self.output_path))}.avi')
            else:
                self.render_scene('0.avi')

For example the initial position of the objects is really different from what I see in blender, in addition from the 2nd frame the locations are different from the first frame.
Before rendering I bake all the objects using bpy.ops.ptcache.bake_all() and for cleaning the scene after each render using the following funciton:

    def clean_scene(self):
        bpy.ops.object.select_by_type(type='MESH')
        bpy.ops.object.delete()

What am I doing wrong? Is there any why to reset the scene? why there is a difference between played animation over blender and the rendered one?

Found the solution!
After completing the rendering of the scene you should free the bake of the objects by using: bpy.ops.ptcache.free_bake_all()

Hope that help to other ones as well.


Can you link two mesh objects and keep the UV mapping each one has? I am trying to link two mesh objects, each one has its own UV mapping, both are using the same texture, how can I link the two objects and keep the UV mapping of both objects? It only keeps the one atm. Or is there a way of copying the entire UV map of the one object and paste it when the objects are linked?

You can do this with a very simple python script

# make sure to be in Object mode
# make sure to have two objects selected
import bpy
import bmesh
from mathutils import Matrix
from contextlib import ExitStack

def work():
    C = bpy.context
    if C.mode != 'OBJECT':
        return
    if len(C.selected_objects) < 1:
        print("Must have at least one object selected")
        return
    # read into bmesh safely
    names = []
    with ExitStack() as stack:
        bm = bmesh.new()
        stack.callback(bm.free)
        for o in C.selected_objects:
            if o.type != 'MESH':
                continue
            m = o.matrix_world
            bm.transform(m.inverted())
            bm.from_mesh(o.data)
            bm.transform(m)
            names.append(o.name)
        # write to actual mesh
        mesh = bpy.data.meshes.new('Result')
        object = bpy.data.objects.new('Merge(%s)' % ', '.join(names), mesh)
        bm.to_mesh(mesh)
    C.scene.objects.link(object)
    C.scene.update()

work()

I hope this fulfills your needs, I figure you can easily adapt to even more objects but this script should do what you want. Just copy and paste in into the text editor, select your two objects and hit the "Run Script" button.

EDIT: the script can now handle indefinitly many objects.


Making all points meet in the middle using inset I have a cylinder that I want to close the tip by making all the points meet in the very middle. Kind of like what I have here but further inward meeting to one point in the very center. When I press I and then 0 (which I thought would bring them all to meet in the center) nothing happens.

You want to use the Merge at Center operator.  You can find it on the menu, or by pressing Alt+M or search for it using Space.  You will see more options.


Missing elements while rendering an image in Blender I am totally new to Blender and I came upon an issue I can't solve by myself. I tried some solutions for a similar problem but seems not to work in my case. I was following a blender tutorial and everything was good until the last step when I wanted to render my last view. In my object mode, I have all elements but while rendering an image some of them are missing. Do you have any idea what is happening here because I am lost? I am using Blender Version 2.81 on Macbook Pro.

Here is a view from my Object Mode

and here is rendered result ...

Would really appreciate advise how to fix this problem ;))

Check and see if you have this option checked in your missing object.


Blender 2.8 Comb hair strands with children I'm struggling to find a way to comb hair particles in Blender 2.8 with children particles included in the Edit Particles mode.

In other words, is it possible, and if yes how, to view and comb all strands, including children particles in the Edit Particles mode?

In other other words... Can I view to outcome of the comb immediately.

Actually, I can only comb the parents, go back and forth Object mode-Edit particles... which is tedious and ineffective… I cannot control the outcome.

Thanks for any input, advice and cheers

DB

In 2.8 you can find it in the "Active tool and workspace settings"-Tab when in particle edit mode.


How to control the flow pattern of the noise texture node? I want to get the lines of this noise texture to flow in specific directions on certain parts of the mesh (blue indicates the part I want to maintain while the red is what I'm trying to achieve at the same time). Is this possible? Thanks.
EDIT: This doesn't have to be limited to UV

In this image you're using UV space and then scaling the X axis to 0, so that's why your noise texture is coming out like a wave texture.  I'll go through what my solution might look like.  This is UV space so you can either just go and use proportional editing to move the UVs of the faces, or we can do it with nodes.
Here's our sample scene, it's just a plane and I've put a wave texture on it.

We'll use your distance from the UV origin on one axis to move the UV space along the other axis.  We'll use a separate XYZ and a combine XYZ node.

And then you can insert any kind of math in there to control the rate at which you are shifting the UV space over, or create any manner of effect.


Mixamo animation sharing between meshes how to associate a mixamo animation to another mesh in blender 2.8? Both meshes have the same mixamo skeleton, thanks.

If the two armatures are in the same file, simply select your second skeleton, turn a dopesheet window into an action editor, and select your Mixamo animation in its dropdown menu.

If the animation is in another file, choose append in the file menu, select the origin file, go to its "action" folder and select the animation.

Then do the same procedure.


Bone with TrackTo constraint isn't rotating properly in poses on 1st frame [video included] See video example here: Watch Video on YouTube

My problem is that, in pose mode, when I'm in the Action Editor, the initial pose of the bone (that controls the lower cylinder of the excavator/construction vehicle) is off. It's not what the keyframe has it set as. Attempting to rotate the bone or move forward in the timeline, however, puts the bone back to its proper rotation. It's only when switching between Actions that this off-rotation issue appears. The problem is the issue is continuing into Unity, the game development program, and messing up the animations. My expected behavior of the bone is that it wouldn't glitch on the 1st frame of the Action when I switch between actions.

Here is a screenshot of the TrackTo constraint I have on this bone, targeting an object above it near the upper-cylinder:

Here's what the bone & cylinder should look like from starting frame:

Here's what it actually looks like when I switch between Actions (this glitch also carries into Unity):

Does anyone know how I can fix this problem? Any help would be greatly appreciated. Thank you!

Thanks to comments in the original post, I was able to find the problem and create a fix.

THE PROBLEM:
In this case, the bone with the TrackTo constraint was targeting a mesh object (a cylinder) which was a child of the armature, creating a circular dependency and producing the error I was experiencing.

THE FIX:
Positioned in the same place as the cylinder that was being targeted is another bone controlling the upper part of the excavator mechanism. I changed the target of the TrackTo constraint to that bone above it, thus eliminating the circular dependency. Now, even from frame one, the rotation of the bone with the TrackTo constraint is right where it is supposed to be.

Thanks again to everyone for their help!


Apply Auto Smooth and its angles in a script I am modifying an Import OBJ script. I want it to make all objects smooth, with Auto Smooth turned on, and with an auto_smooth_angle of 30º.

My edit is as follows: after

for mesh in new_objects:
I have added

bpy.ops.object.shade_smooth() and it works as expected, but

bpy.context.object.data.use_auto_smooth=1 fails me. Any thoughts?

Just do clarify: I want this:

to become this:

Maybe use something like this which first selects all the objects that you have listed in 'new_objects', and sets autosmooth to 1 on them, then once they're all selected it sets smooth shading on all of them

import bpy
import math

for obj in bpy.data.objects:
    obj.select = False  # safe to un-select first, all objects.

    ''' if you have a 'new_objects' list , then skip objects not on the list: '''
    # if not (obj in new_objects): continue

    if obj.type == 'MESH':
        obj.select = True
        obj.data.use_auto_smooth = 1
        obj.data.auto_smooth_angle = math.pi/4  # 45 degrees
        # ob.data.auto_smooth_angle = math.radians(40)  # 40 degrees as radians

bpy.ops.object.shade_smooth()


How do you group objects together without joining them? In Photoshop you can create a folder and put all the layers under that folder. This makes them easier to manage. How do I do this in Blender?

I'm not looking to do a boolean union or grouping them. I don't understand what the point of ctrl-g group is honestly. It would be nice to have something like the photoshop folder that enables me to manipulate multiple objects at a time, cleans up my hierarchy view, and doesn't join stuff together. Any help? I know this is probably super basic but I can't find it looking online.

there are many ways to do this, if you group objects together you can then add a group instance of that group, this is an empty that controls all the geometry in that group.

Alternatively you could use an empty, parent everything to it and then disable the ability to interact with the objects.

You can also just parent everything to an object of your choice, probably the biggest one of the group, and control everything that way.

It depends what your objective is by grouping.


Change edge information display in Blender 2.80 with python I am currently porting my personal addons to Blender 2.8 and this used to work fine in 2.79:

me = bpy.context.object.data
bm = bmesh.from_edit_mesh(me)
me.show_edge_seams = True
me.show_edge_crease = False
me.show_edge_sharp = False
me.show_edge_bevel_weight = False

In 2.8 this does not work anymore. It seems to be an option of the overlay system now but I can't find any python documentation about it (I know, probably too early). Does anybody know how to access the edges view state in 2.8 with python? Thanks!

I found a solution if anybody needs this information:

overlay = context.space_data.overlay

overlay.show_edge_seams  = True
overlay.show_edge_bevel_weight = False
overlay.show_edge_crease = False
overlay.show_edge_sharp = False

Documentation:
https://docs.blender.org/api/blender2.8/bpy.types.View3DOverlay.html


How to join two areas using python? I'm working on a script which should add a trim mode to the sequencer. The preview area is split into two preview areas, until the trimming has finished and the two areas are joined again, but I can't figure out how to get the values needed for the area_join function right. How do I get the script to join the two areas into one area again?

Some example code:

import bpy

original_area = bpy.context.area

for region in original_area.regions:
    print(region.type)
    if region.type == 'WINDOW':
        old_area_x=region.x
        old_area_y=region.y

start_areas = bpy.context.screen.areas[:]

bpy.ops.screen.area_split(direction='VERTICAL', factor=0.5) # Split

#[Here things will happen(modal trimming) in the two preview areas before they will be joined into one again]

for area in bpy.context.screen.areas:
    if area not in start_areas:
        new_area=area

for region in new_area.regions:
    print(region.type)
    if region.type == 'WINDOW':
        new_area_x=region.x + region.width
        new_area_y=region.y + region.height

print("ox "+str(old_area_x))
print("oy "+str(old_area_y))
print("nx "+str(new_area_x))
print("ny "+str(new_area_y))

# I'm not sure I understand these values right?
bpy.ops.screen.area_join(min_x=old_area_x, min_y=old_area_y, max_x=new_area_x, max_y=new_area_y) #Join - not working

A few words on what I need this function for: https://blenderartists.org/t/wip-vse-quick-functions-snaps-fades-zoom-parenting-titling-play-speed/611831/93

I found a script by dustractor, which adds a toggle button to the header of the 3d View which splits and joins the area: https://github.com/dustractor/areatype_split/blob/master/init.py

The values of the working(vertical) area_join function seems to be:

min_x = Left x of left window
min_y = Mouse position, starting from window bottom y (when clicking button)
max_x = X position between left and right window
max_y = Mouse position, starting from window bottom y (when clicking button)

Here's my version, with a working button in the sequencer header area:

bl_info = {
        "name": "Areatype Trim",
        "description":"This example adds a button which toggles a split of an area with another.",
        "author":"dustractor@gmail.com, tintwotin",
        "version":(0,1),
        "blender":(2,65,0),
        "location":"Button prepended to the header of the sequencer.",
        "warning":"",
        "wiki_url":"",
        "category": "Sequencer"
        }

import bpy

class AREATYPE_OT_trim(bpy.types.Operator):
    bl_idname = "areatype.trimview"
    bl_label = "Trim"

    def execute(self,context):
        thisarea = context.area
        otherarea = None
        tgxvalue = thisarea.x + thisarea.width + 1
        thistype = context.area.type
        arealist = list(context.screen.areas)
        for area in context.screen.areas:
            if area == thisarea:
                continue
            elif area.x == tgxvalue and area.y == thisarea.y:
                otherarea = area
                break
        if otherarea: #leave trim-mode
            bpy.ops.screen.area_join(min_x=thisarea.x,min_y=thisarea.y,max_x=otherarea.x,max_y=otherarea.y)
            print("this x: "+str(thisarea.x))   #min_x = left x of left window
            print("this y: "+str(thisarea.y))   #min_y = mouse position, starting from window bottom y
            print("other x: "+str(otherarea.x)) #max_x = x between left and right window
            print("other y: "+str(otherarea.y)) #max_y = mouse position, starting from window bottom y

            bpy.context.space_data.overlay_type = 'CURRENT'
            bpy.ops.screen.screen_full_area()
            bpy.ops.screen.screen_full_area()
            return {"FINISHED"}
        else: # enter trim-mode
            bpy.context.space_data.overlay_type = 'REFERENCE'
            areax = None
            bpy.ops.screen.area_split(direction="VERTICAL")
            for area in context.screen.areas:
                if area not in arealist:
                    areax = area
                    break
            if areax:
                areax.type = thistype
                return {"FINISHED"}
        return {"CANCELLED"}

def draw_func(self,context):
    layout = self.layout
    layout.operator("areatype.trimview",text="Trim",icon="ARROW_LEFTRIGHT")

def register():
    bpy.utils.register_class(AREATYPE_OT_trim)
    bpy.types.SEQUENCER_HT_header.prepend(draw_func)

def unregister():
    bpy.utils.unregister_class(AREATYPE_OT_trim)
    bpy.types.SEQUENCER_HT_header.remove(draw_func)

if __name__ == "__main__":
    register()

This is where I am with the trim-script right now: https://gist.github.com/tin2tin/b7fd08762d1d8290626ee299488e2798


rename all children objects with prefix from parent I'm converting voxel art to blender for animation and render. All the cubes import automatically named cube.001, cube.002, ect. I then parent all those cubes to an empty to animate their movement and name the empty what ever the object is. only problem is when I import new objects even from other blender scenes, the imported cubes rename themselves so that they aren't duplicating names, so cube.001 becomes cube.234 and so on. Problem is that my friend is talking about potentially building a video game with these assets so accidentally renaming objects like this could be problematic in the future. Is there a way to rename all the children objects so they have a prefix that matches the parent name? For example parent: "space-bug" would rename the cubes "space-bug-cube.001" and so on.

import bpy

current_object = bpy.data.objects
i = 0
for ob in bpy.context.scene.objects:
    # check if parent exist
    existing_parent = current_object[ob.name].parent
    if existing_parent:
        # check if it has been already renamed from parent
        if not current_object[ob.name].parent.name == current_object[ob.name].name.split('.')[0]:
        # change the name of the object to the name of parent
            current_object[ob.name].name = existing_parent.name + '_' + str(i).zfill(2)
            print(ob.name, existing_parent.name)
            i += 1
        else:
            print('nothing to do')

this script renames the objects in the scene according to their parent. if they share already the same name (meaning probably it has been already renamed) it does nothing. far from by polished though as for know it adds a numerical sequence to all the scene not per object.


How to make a loading bar work with a process - not time? I have a loading bar with 100 frames. Most of what I can find for making a loading bar is what I've done (100 frame animation) and works with time. In other words, the loading bars load up independent of loading up objects and the scene. I am trying to create a loading bar that progresses as objects, properties, and parts of the scene are loaded. How can I have my 100-frame animation progress through the animation as parts of the scene are loaded? I am looking for a python script that could load up these parts and progress the loading bar. Thanks!

To make this a little quicker to answer: I am fine if you create the .py script with only as little as 2 frames as I will know how to add the rest  - a 100 frame python script would be absurd to ask for an answer.

Scene loading

When a scene gets loaded the game will only do that and not refresh anything. The current (game) render will persist until the loading is completed.

Therefore your request will not do anything. You can't animate the render during loading.

LibLoad scene loading

You can load scene data from an external .blend file with LibLoad. The data will be merged into the current scene.

Synchronously

Per default it works like normal scene loading by showing the last render image until the load is complete = no animation.

Asynchronously

With the parameter async=True you can run the load over several frames.

The call provides you with a bge.types.KX_LibLoadStatus. From that you can read the current status of the load operation.

example [the code is untested]:

import bge

INTERNAL_PROPERTY_STATUS = "_internal.status"

def load(controller):
   '''Starts loading operation, stores the status in a property.'''
   status = bge.logic.LibLoad("demo.blend", "SCENE", async=False)
   controller.owner[INTERNAL_PROPERTY_STATUS] = status

def progressToValue(controller):
   '''Sets the value attribute of the first actuator to the progress from status.'''
   status = controller.owner.get(INTERNAL_PROPERTY_STATUS)
   if status == None:
      return

   actuator = controller.actuators[0]
   actuator.value = "'{}'".format(status.progress)
   controller.activate(actuator)

Be aware progress is a value from 0.0 to 0.1. You might want to scale it to your needs before using it.

Remark: I do not know if the progress shows more than 0.0 and 1.0 yet.


How do you remove the object line between two objects when joined? I've been playing with blender for a little bit, and at the moment I'm having issues on joining two objects together in the sculpt mode. Specifically, I'm trying to get rid of the line between the objects when I joined them. If you need a visual, check out the image below. I outlined the line in black. I want to give it a more organic flow. Let me know if I need to supply anything else. I am using Blender 2.83.3 at the moment. Thanks! ^.^

Here is an update for my comment to moons. I can't select any other object for the modifier of boolean, because the objects are conjoined from the earlier ctrl + j. :S

You can't sculpt 2 objects at the same time, and even joining the 2 objects won't be enough to create a weld between the 2 as they will still be 2 separate meshes. What you need to do is either keep them 2 separate objects and use the Boolean modifier, or join them and use the Boolean tool (the one I explain below). In both case make sure that the mode is Union
Boolean tool: Join the 2 objects (ctrlJ), go in Edit mode, select one of the 2 meshes, go in the header menu (or press ctrlF) > Face > Intersect (Boolean), then in the Operator box choose Union.
Now you can sculpt the way you want.


My tablet won't work correctly in Blender, I am unsure if it is a problem with Blender or the tablet I downloaded blender not too long ago. I have a 8x6" Enthusiast Graphic Tablet by Monoprice. I am unsure if that information matters, but I know some people use a Wacom Tablet in Blender successfully. I don't know if I need to change the settings in Blender or if its just the Tablet. I have looked up tutorials for my problem but so far, nothing has come up. I have already gone to other websites for help but so far, nothing. I was hoping you guys would be able to help me out.

The issue I am having is when I try and use my tablet in Blender, as soon as the pen touches the tablet, the cursor goes to the top left corner and if I click, it closes me out. It will not go anywhere else in Blender no matter where I put the tablet pen, it always goes to that same spot in the corner.

I am unable to Sculpt because of so. I do have a mouse, the mouse works perfectly fine and allows me to work in blender- But I am horrible when it comes to using a mouse since my hands shake. Tablets are easier for me since the pressure sensitivity depends on how hard you press the pen, not by clicking. If that makes sense, haha.
I am taking classes at school for 3D modeling/ animation that require me to work on them at home, too. My finished products are not coming out as good as i meant to make them and I am afraid I may fail.
Thank you for reading.

It has to do the monoprice tablet not being compatible with the windows drivers. You can find the most up to date tablet drivers at UC-Logic. Forcing windows to use these drivers kept my monoprice going though windows 8. After updating to Windows 10 it would constantly auto update back to the windows tablet drivers. I I got tired of fighting with it so I retired my monoprice and got a Huoin.


Animation Nodes - Animated object trail I like to recreate effect like in this video with Animation Nodes addon :

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

I don't for now care about whole process, because I know what I need to do.
The real thing is, that I don't know how to get animated trail from object which will have armature. So yeah, We need to do something the same as in video. I know that this animation/duplication over time is possible in AN, but I just don't know how. I need some help on this one. Hope You can guide Me.

The 3d instance trails can be done in more than 1 way in Animation Nodes.

First, please note that the example video is actually using 2d footage with alpha (green screen) and basically stacks the img/frames on top of each other. The impression of 3d is just like those Dragon paintings that are allover the net. There is some 3d as the water or such, but that is not the essence of it

To do this with 3d objects, in Animation Nodes I detail in the video 2 cases:

a very simple motion/transform. this is very easy, just need to read the values for every frame, given a keyframed motion.
a more complex animation with armature/bones. here there are several solutions, but I prefer using Actions/ NLA strips cause they leave the most computation to Blender and not to python (way slower). just instancing and tweaking a limit to those nla strips

it also includes variants for all frames / offset frames and some indication for further using cycles or scaling effects etc.

AN Motion instance trails 1:

https://youtu.be/q9unQC3PTcI

Note:

For the 2d effect, you need to stamp the images on top of each other. That can be most efficiently done in Blender using Dynamic Paint, and just stamp the frames with an obj on another. The settings are not quite easy, as you may not want blur or antialias or so, but that is another topic, another q.

Even for your own 3d rendering that should just work, maybe with some extra 3d eff on top, in editing..


How to make multiple rigid bodies behave as a single object I have multiple rigid bodies and I want some of them being glued together in initial state and behave as a single object. Is there a way to keep them glued together and break apart at a later stage of the simulation?

You can use Rigid Body Constraint and keyframe Enable checkbox or set it to be Breakable (they will disconnect after collision - use Threshold value to control how strong this collision should be).

Without Constraint:

With Constraint:


Constrain vertex to its face Here is a screenshot:

I want to use the scale tool to move the selected vertices closer to each other, but I want to do so without affecting the shape of the face. The normals of the two face may not be the same either (they might point in reflected directions, i.e. one measures 30 degrees and the other -30 degrees).

In 3ds max you can enable face constraints, and then all vertex movements happen only along a face. Is there such a thing in Blender? Or is there another way to achieve this.

One thing you can try is to scale selected vertices while locking normal Z axis.

To do so, enable Normal transform orientation with Alt+Space or from viewport header. Select vertices, enable Scale tool with S and press Shift+Z to lock movement along global Z axis, then Shift+Z once again to lock normal Z axis. After that move your mouse to change amount of effect.

It's also possible to move vertices as well while constraining normal Z axis making them roughly stay on the same surface.


Why is my mesh acting strange? I took a cube, added a few subdivisions, then used edit mode to do this
You can already see it messing up at the edges, but it becomes even more clear as you zoom out

This is a cube with a few subdivisions, reshapened, and beveled at the outer edges, except for the top. Any idea why it's acting like this?
Edit : Here is the file, as you may see the more you zoom out the more it (Cube.001&2) begin to do that

Found the answer. I accidentally made the cube really big, so when I zoomed out it was by a lot, so guess technically it was an issue with the clip distance. Brenticus was right.


Is there a way to sense all collisions except the one selected? I want to detect a collision, which is easy enough, except I need to basically have an exception. I want to do something like this:

What I am trying to do is detect all collisions except those with the property water.Is there an easy way to do this? Or a hard way?

That is super easy to do logically.

You want the controller (in this case it is an and controller) to send a positive pulse to the actuator(s) when the the cube collides with anything Except for the objects with the property Water.

The first collision sensor is always true as long as the cube is not colliding with Water. True level triggering is enabled, so every logic tick the and controller gets a positive pulse. however, for the actuator to receive the pulse, all sensors must be true, at the same time.

The second collision sensor detects a collision with anything.

With this setup, a collision with water obviously will not work because the first collision sensor will not be true when colliding with water. When the cube is falling or hovering, (not colliding with anything) the first collision sensor will be true, because the cube is not colliding with water, but the second will not be true.


Bevel modifier not working properly I have an object on which I want to apply a bevel modifier. After applying, no matter how high I increase the Width, the bevel stays the same.

About the object:

I've imported a .svg and then converted it to 'Mesh from Curve'
In Edit Mode: Select all Faces → Mesh → Faces → Beautify Fill
Select all Faces → Mesh → Delete → Limited Dissolve
Then I extruded the Object and now I want to create a bevel

You can get the .blend file here.

What I want to achieve is this:

Anyone an Idea?

The 'Clamp Overlap' option is enabled on the modifier. Un-check this to have a bigger bevel.

I would then suggest immediately setting the bevel back to 0 as the current value will be very large.

Use Shift while dragging on the bevel width value to increase the value slowly.


Should I UV map a joined mesh or keep the meshes separate when exporting a character to a game engine? I want to create a character with a weapon and then export it to a game engine.

Should I join all the meshes (character and weapon) and start UV mapping so I have 1 mesh and 1 texture or do I need to UV map separate meshes?

What's the difference between the two ways?

I want to create a character that only has 1 unique weapon, like in League of Legends.

As the weapon its other independent object I would not join it with the character, and you can use as many texture as you want if you have different materials.


Why does my rigid body simulation glitch out? I tried to make a rigid body simulation for a chain built out of torus objects. After starting the simulation, the chain links suddenly break apart and go in all sorts of directions for no apparent reason.

I can't find any solution for this. Does anyone know how to fix it?

Change the "Shape" (Under Rigidbody Collisions) from "Convex Hull" to "Mesh".

What's happening is that when you use Convex Hull, the simulation can only see a "shrinkwrapped" version of the shape. That is, it won't see the holes, and will therefore think that all the rings have ended up penetrating each other. To resolve this, it will apply a large-ish force to each object to force them apart, resulting in the explosion you see.


How to export motioned tracked mesh and background video in mp4? I followed a tutorial (https://www.youtube.com/watch?v=6Vm9Jx1pWv8) to mesh on a picture of mine onto a video however the final part about exporting it does not work. Setting up the compositing as he instructs makes it so the masked mesh is exported and the video background is not (ie the "Render Layers" is shown but the "Movie Clip" is not in the exported mp4.) How do I export the background and mask with the mask overlayed on top of the video?

For those wondering change Blender render to cycles render go to film in the render tab and check transparent. That might create a new issue I'll edit this answer when I solve.