Is there a Blender icon reference for the Outliner editor? Today I saw a ghost icon and broken paper icon in Outliner. My guess is they mean proxy object and missing file, but haven't found any documentation to confirm.

Is there a reference for the various icons used in the Outliner? The best thing I've found so far is the Data-Block Types documentation which includes this icon reference:

However, this does not include the ghost or broken paper icons.

Use the Icon Viewer add-on and outliner_draw.c file.

Enable the Icon Viewer add-on.
In Icon Viewer, click on the icon you're trying to lookup.
In an Info editor, note the name of the icon. This may be descriptive enough on it's own, but if not, proceed to the next step. In this example, it is GHOST_ENABLED.
Go to outliner_draw.c and look for the same text, GHOST_ENABLED in this example. You should find the type of object the icon represents in the case statement right above the icon name. In this example, you can see it is a proxy.

Using the same process for the broken paper icon shows it is LIBRARY_DATA_BROKEN.


How to start second action after check that first one is done in bge? Here I want help of you people. here I want to start second action animation but before this i want to check that first action is done. same this way i want to do third action before that i want to check first and second action animation complete.

i don`t know how to do this. may be with messages or with properties.

This is same like that man, who has not stick to throw, so first get the stick and then check first stick is in hand or not. If yes then second throw.

You can use the Actuator Sensor to measure when an actuator gets activated.

To measure deactivation you invert the sensor output with a negating controller such as NAND, NOR.

You can read it that way:

WHEN "started" -> "play turning"
WHEN "not turned" - is not -> "play lifting"

You can even add more animations. Just ensure you have one ActionActuator for each of it.

I hope it helps


How do I start a cloth simulation after an animation? I'm trying to create an effect where a piece of fabric flies in from the side as a flat sheet from the left, then drops and drapes, then another piece flies in from the back as a flat sheet then drops and drapes, then a third comes in from the right as a flat sheet, then drops and drapes. So for each piece I want an animation to happen, finish, then the cloth simulation to start. This seems like something I would have thought would be easy, but I just can't seem to work out how to delay the start of my cloth simulations for each piece so they start after the animation. How can I animate the start of the cloth sim? I can see check boxes next to each individual property in the cloth sim to animate those properties, but I can't work out how to stop it doing any simulating at all until after the animation has finished.

Thanks

The simulations in Blender usually all come with an option for caching, and the place to cache the cloth simulation also serves as a control from when to when the simulation will be taking place.

Here a little visual demonstration:

So to speak of the most simple solution, all you have to do is to set up the simulation and limit the start and maybe the end (means the cloth would not continue falling or folding and just stay stiff in the last calculated form) of each cloth object simulation.

Happy Blending


How to move vertices without stretching the texture I am newbie with blender and i am trying to make some ortho-images with blender for MFS2020 game. I have plane model and 2048x2048 png texture attach to it. It looks right. But i want to crop that area more spesific, not just a tile. First i realise bisect tool, that is handy for a while, but if i need to edit that area more spesific than just a line (bisect), i dont know how. I have this sample with 10+ vertices around the model, when im tryin to move those, that texture is stretching. Can i move those vertices without stretching that texture of mine?
Image of situation i have: my situation

If you don't want the texture to be stretched by the vertices edit, enable the options called Correct Faces Attribute (since 2.9):

Also if you slide some edge loops (GG) enable the Correct UVs option in the Operator box:


Why are my tool menus tiny? (pic) I am using windows 10 on an ASUS laptop and the sidebars are miniscule. Thanks for the help.

It seems you have high-dpi screen. If this is the case, see here: Make Blender usable on high resolution screen.

In a nutshell, go to Preferences -> System -> DPI. Play around with the value until you are comfortable. If that isn't enough, see the link.

To actually answer your question: they are tiny, because they are fixed to a pixel size and your pixels are tiny.


How would I go about creating a 3D MMORPG Mouse Look? How would I go about creating a 3D MMORPG Mouse Look? I have created a 3D Space Rpg that is almost finished with success so far. However, I didn't have a clue, how I would attempt to make a Mouse Look method where if a user right clickes and then holds the right mouse button and moves it around the camera moves around with the mouse. The camera can not move away from your character/ship, it should act as if the character/ship is it's origin and that it rotates all around the origin.

I don't mind coding this with python either. Advice is welcome!

All you need to do to get your desired functionally is add the logic bricks pictured below to your camera.

The most important part is the Mouse Actuator, set to Look that is what moves the view
The Always Sensor is needed to make the mouse look actuator work.
The Mouse Sensor set to Right Button is what triggers the mouse look actuator.


mesh lines appear in quick rendering I noticed in my last 2 blender files, that when i use subdivision surface, unwanted lines appear in quick rendering what is this? how can i fix that?

The problem is only present in orthographic view. Changing to perspective or a camera view will fix this problem.

It's also why the issue isn't present in the final render, because most of the time you will be rendering with a perspective camera. You can actually zoom into any mesh in orthographic view and small cracks will start to appear on the mesh.

It is a known issue, with the known issue page stating:

  When using Instancing, Motion Blur or Dynamic BVH, self-intersection may occur due to precision issues. Switching to Static BVH may avoid some problems but not all

There are several bug reports mentioning that this might be improved in future here and here


Can't resize bones that have multiple children From an FBX imported rigged character.
All bones that have multiple children don't want to changes scale, they are so small that they are difficult to select in 3D view.

I tried Ctrl+Alt+S didn't work.

How can I change their size without affecting skin weights?

To make bones more visible in the 3dview without altering there size you can use a mesh object as a custom shape, this mesh object can be any size you wish to make it, the initial size of the object will then be linked to the base scale of the bone.

If you have trouble finding bones, the outliner is a great place to find things. You can select an item in the outliner, delete it, rename it... ( RMB for context menu) It includes a search box to easily find items by name with search matches highlighted.

The little + next to an item will show children or other data like animation and materials, ⇧ Shift LMB on the + will expand all sub-items.


How can I use imperial units when entering measurements? I've set my units (UnitSettings.system) to Imperial in Properties → Scene → Units. I can now see my measurements in imperial units. For example, I see that the Z-gravity is set to -32.185 ft/s2.

However, when I enter any units into an operator, the default (metric) units are used, and everything is 3.28× greater than it should be. For example, selecting a cube and pressing GX1Enter causes the cube to move 3′ 3.4″ along the X axis. Before pressing Enter to apply the transform, I can see that the status bar reads:

  D: 1 | (3' 3.4") along global X

Is there a way to configure Blender so that when I press GX1, it actually moves it one foot?

This is now supported, as of this commit (it's in 2.70).

To use this:

Start the modal transform operator (grab, rotate, etc.)
Press = to enter advanced mode
Enter the value you want according to the units you have selected (e.g. for imperial: 4' 11')

When in advanced mode you can do everything you can do in a normal number button:

If you don't press = to enter advanced mode, it should behave mostly as it did before 2.70.

From the wiki:

  We have two "modes", simple and advanced ones, use '=' or 'pad*' to
  enable advanced mode, and 'ctrl-=' or 'ctrl-pad*' to switch back to
  simple mode.

  Simple mode works nearly like it did before, it only accepts simple
  numbers, and you can still use '-' to negate and '/' to inverse the
  value (as well as non-number input shortcuts like XYZ, RSG, etc.).
  Compared to Blender 2.69 behavior, you can now copy and paste
  expressions, and navigate in the number you typed, so you can for
  example fix a typo without having to type everything again.

  In advanced mode, we gain more power and flexibility, but lose a few
  "shortcuts" like '-' to negate, or '/' to inverse. It features:

  Units (cm, ", deg, etc.).
  Basic operations from python/BKE_unit (+, *, **, etc.), and math constants and functions (pi, sin, etc.).
  You can navigate in edited value (left/right key, ctrl to move by block) and insert/delete chars, e.g. to fix a typo without having to
  rewrite everything.
  You can copy/paste expression with usual ctrl-C/V.
  You can go to next/previous value with (ctrl-)TAB key.
  As before, hitting backspace after having deleted all leading chars will first reset the edited value to init state, and on second
  press, the whole number editing will be canceled, going back to usual
  transform with mouse.
  You can still use the - and / shortcuts, as well as various transform options (like XYZ, E and F for vertex/edge slide, etc.)
  while in modal numinput mode, you just have to use ctrl to activate
  them!


what do selected vertex colors mean? When I selected a vertex by clicking left mouse button on it,and selected vertex looked white.
And then for some reason I selected the vertex by dragging left mouse button around it, then selected vertex looked orange.
I wonder why vertex colors are different in each case and  what each color means.

The white vertex is the active selection, and the orange vertex is not active.


Texture paint stencil painting color of image I followed this tutorial but when I finally started painting in this image (made up of black and transparency), the color painted onto my mesh was the black of the image.

My brush color was set to white and changing it yielded no differences.

If you use a black and transparent brush texture, on the object on which you paint you’ll get black from the texture black areas, and you’ll get no color from the texture transparent areas, whatever color you pick on the palette.

If you use a black and white brush texture, on your object you’ll get black from the texture black areas, and from the texture white areas you’ll get the exact same color you picked on the palette.

So in both cases you can’t get any other color than black from the texture black areas. Actually in the video he doesn’t get any other color than black from the texture black areas, he picks red in the palette and gets red from the texture white areas.

The Texture Brush will project what's on your texture on your object, if you choose something else than white on your palette it will just mix the color you chose with the color of the texture.

The Texture Mask brush (below the Texture Brush) will act like a mask, the blacker your texture color is the less the color you picked will be painted on the object.


Radius on beveled curve incorrect The bevel depth (the radius of the tube) is set to 9cm but it actually isn't when compared to the background grid. This is is confirmed by importing it into sketchup and scaling it to the proper units it turns out the radius is only around 2.286cm. This problem only shows up on certain projects. What's wrong and how do I fix it?

(sorry that I can't upload the file, it's a long story)

Check the Curve Radius property.
Under Edit Mode each vertex has a Radius value that acts as a scaling factor for the bevel width. If the bevel width is $9$ units, and bevel $0.5$ then you will end up with a bevel of $4.5$ units. It will also affect the scale of bevel objects.
You can control per Vertex Radius from the Properties Shelf in Edit Mode under the coordinates boxes or with Alt+S for proportionally changing the values. You can also override all selected vertex at once and set an absolute value with the Set Curve Radius Operator (Space Bar menu).
Also check the object scale in Object Mode and make sure it is $1$, if not apply it with Ctrl+A > Scale then and afterwards go through the steps described above, since applying uniform scales to curve objects also affects per vertex radius values.
Also see Curve Bevel function, scale?


Script Randomly crashes Blender I need to automate the process of joining similar objects from an imported .IFC file from Revit, this can take quite long time to sort out manually because this files can contain from 600 to 800 objects. The names have "." and ":" that I can use for separate the strings and join the same name objects.

I´m not a programmer, and I don't have experience with Python, but after some studying I manage to write this little script.

But I'm kinda lost here because it works fine with small list of objects but it crashes when dealing with longer lists.

In this one it runs ok, at the end all cubes are one object, spheres are other object, etc.

But when I run it against more longer lists of objects, it crashes Blender:

I'm assuming it has something to do when it tries to read objects that are no longer in the list.

Do you know if this assumption is correct? If so could you suggest a way to avoid the crash? Is there a better way to do what I'm trying to do based on the names of the objects?

This is script:

import bpy
bpy.ops.object.select_all(action='DESELECT')
bpy.context.view_layer.objects.active = None

for obs in bpy.context.scene.objects:
    if obs.name in bpy.context.view_layer.objects:
        if obs.type == 'MESH':
            bpy.ops.object.select_all(action='DESELECT')
            nocolon = obs.name.rsplit(maxsplit=1, sep=':')
            print ('nocolon pass done for ' + nocolon[0])
            tname = nocolon[0].rsplit(maxsplit=1, sep='.')
            print ('nodot pass done for ' + tname[0])
            bpy.ops.object.select_pattern(pattern= tname[0]+'*', case_sensitive=False, extend=True)
            print ('selection pass done for ' + tname[0])
            obs.select_set(True)
            print ('selection set done for ' + tname[0])
            bpy.context.view_layer.objects.active = obs
            print ('set active object done for ' + tname[0])
            bpy.ops.object.join()
            print ('join pass done for ' + tname[0])
            print ('iteration done for ' + tname[0])
            bpy.context.view_layer.objects.active = None

        else:
            print(obs.name + ' is not a MESH.')

    else:
        print('There is no ' + obs.name + ' in view_layer')
        bpy.data.objects.remove(obs)
        print('removed from data')

print('script done')

I'm using Blender 2.81.16a

Using Operator override

Here are a couple of examples.  This one finds all the mesh objects in the scene, sorts them alphabetically by name, then groups them by if they start with the first.

meshobs ['Cone', 'Cone.001', 'Cone.002', 'Cube', 'Cube.001', 'Cube.002', 'Cylinder', 'Cylinder.001', 'Cylinder.002']
Join ['Cone', 'Cone.001', 'Cone.002']
Join ['Cube', 'Cube.001', 'Cube.002']
Join ['Cylinder', 'Cylinder.001', 'Cylinder.002']

This is only a proof of concept and relies on "Cube" being in scene to match "Cube.nnn", add string partitioning etc as required.

The names of the matching objects are sent to the join method, which calls the operator with a context override dictionary, for active object and selected objects.

Note this Uses only the join operator which will greatly reduce the amount of operator calls from question code

Python performance with Blender operators

import bpy

context = bpy.context
scene = context.scene

def join(names):
    obs = list(filter(None, (scene.objects.get(n) for n in names)))
    print(obs)

    obs[0].select_set(True)
    bpy.ops.object.join(
            {"active_object" : obs[0],
             "object" : obs[0],
             "selected_objects" : obs,
             "selected_editable_objects" : obs
             })

meshobs = [o.name for o in scene.objects if o.type == 'MESH']
meshobs.sort()

while meshobs:
    n0 = meshobs[0]
    x = [n for n in meshobs if n.startswith(n0)]
    print("Joining", x)
    join(x)
    meshobs = meshobs[len(x):]

Alternatively using bmesh and  no operators

Can use bmesh to read in first mesh, then convert each other mesh into object space of first, and write back to first, then remove others.

This will keep only the materials of the first, etc etc, and may have to be altered accordingly.

import bpy
import bmesh

context = bpy.context
scene = context.scene

def bmesh_join(names):
    obs = list(filter(None, (scene.objects.get(n) for n in names)))
    print(obs)
    bm = bmesh.new()
    ob = obs.pop(0)
    mwi = ob.matrix_world.inverted()
    me = ob.data
    bm.from_mesh(me)
    for o in obs:
        o.data.transform(mwi @ o.matrix_world)
        bm.from_mesh(o.data)
        bpy.data.objects.remove(o)
    bm.to_mesh(me)
    bm.free()
    me.update()

meshobs = [o.name for o in scene.objects if o.type == 'MESH']
meshobs.sort()

while meshobs:
    n0 = meshobs[0] # fix for lpart on . : etc
    x = [n for n in meshobs if n.startswith(n0)]
    print("Join", x)
    bmesh_join(x)
    meshobs = meshobs[len(x):]


How to set origin to selected vertex for 2D shapes (fast) ? (blender 2.8 +) is there a way to set the origin to selected vertex faster? (for both shapes and objects)
there are a lot of steps to do it right now and it's frustrating.
I found a similar topic but it's old and not working with blender 2.8 2.9 and ... .
an addon similar to this topic would be great.
Shortcut for setting origin to vertex
thanks for your time.

You can activate the "3D Viewport Pie Menus" vanilla addon,
there is a checkbox to enable "Origin Pie Menu" in its preferences.
Once activated, you can select a vertex/edge/face in Edit mode and with the shortcut choose to move origin to selection.

For curve objects: when you are in Edit mode, select a vertex, then in the Search menu search for the Origin to selection.


Blender 2.9.1 Boolean Modifer Union Im a blender newbie and using blender for 3D modelmaking for printing.
I have an issue sometimes when I join two objects. Initially I was using the JOIN operation but now I use the Boolean Union. the 3D Slicers (Cura in my case) doesn't like join. However, I do have a new problem.
Sometimes, not always, when I Boolean Modify and union two objects, the face of one or both objects becomes kind of shaded. In these cases, the slicer always fails.
I've looked at the mesh and duplicate vertices and non of that seems tobe the case.
Can some explain to me:

what is going on?
how to fix this?
is there a better way of doing this?

I have included a pic of a cone and a cube. The cube is affected.

The zappy looking face on the close side indicates a face in the same location. Are you using the Boolean Modifier on the cone with the cube as a separate object? If so, I highly recommend having the two as one mesh object and using the edit mode Boolean operation instead. To fix the situation you have without doing this, apply the modifier on the cone, then delete the cube: The cone’s current modifier-added geometry is identical to but not the same thing as the cube and is overlapping it.


Why does my normal map have grey squares on it I've baked a normal map for my project, and there are grey squares that show up on my normal map. Why is this happening?

This is the high poly model that the normal map is coming from.

The grip tape on the model are a bunch of cylinders that are shrink wrapped to the bat.

I figured the problem out. For some reason, removing the translucency map from the grip tape texture solved the problem.


Cycles is not rendering armature object I have this stick figure kind of guy doing a dance. He is clearly there in solid mode and texture mode:

But when I go into render mode or just try to render an image, it's gone:

I can't for the life of me figure out what inconsequential silly mistake I am making. I probably just need another pair of eyes to look at it.

Here is a link to the .blend file. Don't judge me, I'm trying to teach myself rigging and animation: http://speedy.sh/E9MH4/DANCE-2.blend

You have dupliverts (Properties > Object > Duplication) enabled on the armature.

Disable them, and then everything works as expected:

An object with dupliverts enabled renders instances of itself on the vertices of child objects.

As your object has no child objects, it just disappears.


How change object attributes in game I have two scenes ["scene", "HUD"].
In "HUD" is a healthBar (plane), in "scene" is a player, that contains collision sensor and python controller. I need to reduce player's health and show it in HUD. This is my script:

import bpy
import bge

cont = bge.logic.getCurrentController()
health = cont.owner["Health"] #Health is property
health -= 10

#try change healthBar dimension - full health has dimensions[1] = 1.0
hb = bpy.data.objects["HealthBar"]

hb.dimensions[1] = health/100

cont.owner["Health"] = health

This is not working. Dimensions of "HealthBar" changes, but only after the game (When I run game again, I see healthBar smaller). Where is the problem? Is there any function to update view, refresh or redraw?

You need to change these two lines, because the bpy module does not wok in the game engine.

hb = bpy.data.objects["HealthBar"]
should be changed to the code block below.

hud = None

for scene in bge.logic.getSceneList():
    if scene.name == "HUD":
        hud = scene
        break
hb = hud.objects["HealthBar"]

That loops through all the scenes in the game, and assigning a var of hud to the scene named HUD. Then the last line gets the object named HealthBar in the HUD scene.

Or simply this line if the object was in the same scene.
hb = bge.logic.getCurrentScene().objects["HealthBar"]

Your hb.dimensions[1] = health/100 line
must be changed to hb.worldScale[1] = health/100 (because there is no dimensions attribute in the game engine).


Spline auto UV not working I'm trying to add a simple repeating patter to an extruded spline by clicking "Use UV values as Generated Texture Coordinates" and also using "Generated" mapping in Cycles. Howeever nothing happens at all, texture is still not mapped correctly. I couldn't find any solutions, all questions show this scheme to be working. Could anyone please help?

Thank you!

Viewport preview is not supported for bezier curve objects automatic texture coordinates except Object, at least for 2.7# series, this may change in future versions but for the time being it is a known limitation. Both Generated and Use UV for Mapping options are only visible while rendering in Cycles/Blender Internal, OpenGL support does not display these.

You also seem to misunderstand how to use those coordinates. If you activate Use UV for Mapping you must use UV type coordinates in your node setup, not Generated.


Cutscenes Blender Game Engine (BGE) How do you add a video or film in the blender game engine before a level starts or something?

What you'd basically do is create a scene with a plane and a camera pointed at the plane, and make the plane use your cutscene or video file as its texture. Then, using a Delay logic brick or something similar, you'd switch from that scene to another scene, which contains the game stage or level.

If you want a live animation to play, just animate the camera and the objects in the first scene, and use a Delay sensor again.

This video does a good job of explaining a method of implementing the same method: https://www.youtube.com/watch?v=P2W_fQayYcA It's a video by SuperGloop.


Create a square block extrusion in sculpt? Newbie here. I am new to Blender, I am wondering is it possible(in sculpting mode), to model a square indent into the object.

Say I have a cylinder or a cube, and I want to extrude a small square region on  one of its surface(you can imagine this to be a building). It has a square window, and the window is slightly out of the building's wall plane. I hope to repeat this effect for every surface, and each surface will have three by three windows. I don't need the window to have perfectly sharp corners. It could be slightly rounded. Thanks for the guidance.

You can use multiple tools to achieve the effect, but I think the easiest is to use a stencil mapped texture with the shape of the window and a Layer brush. The height of the layer brush determines the depth of the effect. For best results, the sculpt plane should be "Area Plane" locked (ticking the lock icon next to the drop down menu).

Here is a rough picture with the settings:


Copy and Paste Poses not working I'm trying to copy the pose of the right arm to the left arm, but when I try copy and pasting it does this, does anyone know what is going on? I'm new to rigging so if you have any other tips they would be much appreciated.

You should check Mirroring.

  If you want to mirror your animation form the left side to the other
  side during pose mode you just need to select the whole left side then
  copy the pose with Ctrl+C.

  After that press Ctrl+i to go to your right side
  and finally press Shift+Ctrl+V to
  paste the the X flipped pose, that way you'll have a perfect mirror of
  both side

Or enable X Axis Mirror option.


How to align all vertices so that they would be lying on one plane? Sometime faces have vertices that not aligned in one plane.
For example if I have this (face should be flat here):

It rather should be like that:

Couple of ways you could do this:

Method 1

Select your face
Change the 'Transform Orientation' to 'Normal'

Hit 'S' to scale
Double-hit 'Z' to scale along the face's normal
Type 0
Hit enter

Method 2

Add a new plane (single face)
Rotate it as desired to define your belonged normal axis
Again change your Transformation Orientation to Normal
Create your custom orientation in the right-3dview-panel

Rename it and use it in the same way as 'Method 1'


Add or remove objects during animation? I have an animation where projectiles are being shot at a character.
Currently, my projectiles have to exist for the entirety of the animation. This means they have to exist in a far-off place, be transformed to the correct location, and then linger (invisibly).
All of the above significantly slows down my animation. The viewport barely renders at 6 FPS.
My projectiles are rigged, and have to be animated while being shot at the character.
Is there any way to spawn and despawn these projectiles when I wish?

(I made it an answer because comments don't allow for enough characters, and I added my first comment for good measure.)
You can animate the Show In Renders located in Object Properties > Visibility and keyframe the checkbox. Or animate and keyframe the Disable in Renders (little camera icon) in the Outliner. If the camera icon is not there, you can activate it in the Outliner Filter (little funnel icon). Note: Show In Renders and Disable in Renders are the same setting in different locations
The only other thing that comes to mind at the moment is giving the objects materials that can be animated to be invisible. It would be easiest if all objects had the same material. Though you could link the invisibility behavior of different materials with drivers. Here are two answers on how to do something very similar. However, I'm not sure (doubt even) if it will increase FPS and/or decrease render-time.
Also here is a small discussion with some other workaround methods.
Edit:
Just thought of another idea. Most probably it won't work for your situation, but i thought I'd mention it anyway: You could also maybe use instancing. All children objects would need to be the same, and can't be individual objects.
You could parent a single child object to an object consisting of loose vertices instead. The go to Properties > Object Properties > Instancing, and click Verts. You would see a mesh of the child object for every vertex in the parent object. Then you can animate the Disable in Render of a single child object to make them all disappear (or do any other localized animation for that matter).


Blender writes render even when there is no composite node? I am new in Blender and I would like to know what is best workflow for creating output to many files and compose in AfterFX or in Blender Composer.

I know that I can render from Blender finished composed frames, but it is not ideal, because if you want change color correction or DOF you have to rerender whole frame :( So much better is render it to PNG, EXR ... and compose later.

I discovered that best option is don't use Compose node, but only File Output. But there is some hidden compose node, which save my render together with File Output, so I have to delete this files (I named it null). I can rerender only some layers and let others unaffected. But maybe there is better workflow ... thanks for tips.

I also reported this behaviour and Sergey added this to TODO list: Report

Sorry for my english :)

As gandalf3 said, I think the best way for now is to delete the files automatically with some python script. Just make sure that the scene output goes to it's own directory, so you don't delete any other files. Run the script and render.

import os
import glob
import bpy

def delete_garbage_files(scene):
    out_path = bpy.path.abspath(scene.render.filepath)
    out_dir, _ = os.path.split(out_path)

    # Remove all files of the currently selected output format.
    ext = scene.render.file_extension
    for f in glob.glob(os.path.join(out_dir, "".join(("*", ext)))):
        os.remove(f)
        print("Deleted: {}".format(f))

    # Also delete the directory.
    try:
        os.rmdir(out_dir)
        print("Deleted: {}".format(out_dir))
    except OSError:
        print("Didn't delete directory {}, probably not empty".format(out_dir))

# Post render handler, to delete the files after every rendered frame.
bpy.app.handlers.render_post.append(delete_garbage_files)

To delete the files after the whole render job finishes, you can use render_complete instead of render_post But if you cancel a render, the files won't be deleted.

# Complete render handler, to delete the files when the whole render job
# is finished.
bpy.app.handlers.render_complete.append(delete_garbage_files)

Probably the best solution is to use a render_cancel and render_complete handler. Then the files will only be deleted when the render is finished or canceled and not after every rendered frame.

# Use both cancel and complete render handlers.
bpy.app.handlers.render_cancel.append(delete_garbage_files)
bpy.app.handlers.render_complete.append(delete_garbage_files)

If you want to automatically delete the 'garbage' files the next time you open the file and render, you should have the name of the script end in '.py' and check the 'register' option:


Tricky Bevel - How to get better bevels? The Security Access Tuner in Alien isolation caught my attention due to its tricky top left corner.

Any ideas how to replicate this?

Here is a try for this kind of topology, perhaps not a perfect topology but it works:

The initial shape is rather easy to make from a plane, with some bevels and extrusions.
But when you add and apply a Bevel modifier (Angle mode) it begins to mess up on some parts.
You have to rework manually these parts with tris.
Now it looks better, give it a Subsurf modifier and a Smooth Shading.


Scaling to a specific width I want to scale a selection of vertices to a specific size (in mm). I have a "beam" which is 1,2mm wide and I want a certain portion to be 1mm. How can I scale it to be exactly 1mm? I can approximate it by using the measurement tools, but I was wondering if there is a way to make it exactly that amount?

Thanks in advance

err..I deleted the faces I didn't need and closed off the resulting holes and seperated them into different objects (L to select and P - selection) and then I could set the desired width (length and height) for each object in the properties window...


How can I change multiple properties on the same and different nodes at the same time? I'm working in the compositor, and I have several blur nodes that look like the following:

I want to make it so that I can control both the x and the y values at the same time. I also want to make it so that I can control the x and y on another Blur node as well. So in the end, I would only need to change 1 value, and both the x and y on the 2 (or more) blur nodes would all change as well, to the same value.
The first thing I thought of doing was creating a sort of "macro" controller, something like a slider that I could connect to each node to control the x and y properties. I couldn't find anything on that either beyond just using a mapping node, which seems a little overkill... so any help would be appreciated there as well.
After looking into that though, I realized that the X and Y properties don't even have a socket... so that's where I'm stuck. Is it possible to "reveal" the socket for the X and Y nodes? They seem to be integers which is one of the available socket types.

The X/Y dimensions of the Blur node are properties, not inputs, so they can’t be controlled via a socket. However, if you just want a convenient way to control them all together, you can use drivers, instead:


Toggle Visibility under blender 2.8? I understand blender 2.8 is still under development. But i was wondering why the toggle visibility seems to be buggy. Even tried giving keyframe to toggle visibility, doesn't seem to work.

Is this expected for this version of blender or is there any other way to make an object disappear or animate it through keyframes?

It's looks like that this feature is not implemented yet. You need to know, that dependency graph completely rewritten, so many useful functions still need to be updated.


getattribute() in osl is not working I'm trying to get the UV coordinates of from UVMap using getattribute() as follows :

#include "stdosl.h"

shader node_uv_map(
    string name = "",
    output point UV = point(0.0, 0.0, 0.0),
)
{
    if (name == "")
        getattribute("geom:uv", UV);
    else
        getattribute(name, UV);
}

with the name empty or containing the UVmap name there is no output

how to perform that correctly
is there another way to get the uvmap coordinates in osl
what are othor attribute that can be retrieved using getattribute beside these

Blender 2.7b

The texture only appeared after I added another Image Texture node (which is not realated to anything). Muting this node if enough to make the texture disappear.

The topic is also discussed on an older BA-Thread

You could use Input/UV-Map node to get the UV-coordinates:

Wiring the UV makes them accessible for getattributes


Where to store properties on console I'm creating a script which adds some features to blender's builtin console. The script requires there to be some properties on the console (unique to each console). I'm wondering what the best place is to put the properties. The only thing I can think of is bpy.types.screen but that isn't really connected to individual consoles. Is there a better place to put the props?

After two days of searching/tinkering I've found the solution.

First of all, this solution does not save the properties with the .blend file. It will reset all the properties every time you reopen blender.

Step 1: Create the PropertyGroup

So the first step is to create a PropertyGroup holding all the properties you want to store on the console:

class ConsoleProps(bpy.types.PropertyGroup):
    str_prop = bpy.props.StringProperty()
    int_prop = bpy.props.IntegerProperty()

Step 2: Create a Collection Property on the screen.

Because consoles are indeed a part of the screen and not the scene, put a CollectionProperty on Screen.

bpy.types.Screen.consoles = bpy.props.CollectionProperty(type=ConsoleProps)

Step 3: Identify the individual consoles.

At this point you can add a console to the collection but you need some way to identify it. Because I was using it in conjunction with blenders builtin module console_python (sorry, I couldn't find any documentation),
I used the hash of the window region (bpy.context.area.regions[1] is a quick way to get it, not sure if this will ever brake). So at this point you could add a console to the collection like this:

console_id = hash(bpy.context.area.regions[1])
console = bpy.context.screen.consoles.add()
console.name = str(console_id) # Because the name has to be a string.

If you aren't using this along with the console_python module then you could simply use hash(bpy.context.area)

Note that because this is using the hash function it will always return a different value when you reopen blender. This means that any variables you change on the console will get reset to whatever their default values are.
If anyone knows of a way to make this return the same value every time, I'd love to hear about it.

Step 4: UI/Tracking Consoles

At this point all the infrastructure is in place, it's just a matter of actually adding the consoles to the collection. The best way I've found to do this is in the UI (somewhat of a hack). Just setup a basic UI on the console (probably on the header). In the draw function, check to see if the current console is in the collection, if not add it. It may look something like this:

class ConsoleHeader(bpy.types.Header):
    bl_space_type = 'CONSOLE'

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

        # This could be hash(context.area)
        console_id = str(hash(context.area.regions[1]))

        # Make sure this console is in the consoles collection.
        if console_id not in context.screen.consoles:
            console = context.screen.consoles.add()
            console.name = console_id

        # Display the console props, just because.
        layout.prop(context.screen.consoles[console_id], 'str_prop')
        layout.prop(context.screen.consoles[console_id], 'int_prop')

Something interesting about this approach is that you don't even need display anything in the UI. All you need is the draw function which get's called on every console in the layout. So if you don't want a UI, just don't display anything in draw.

Step 5: Cleanup

At this point everything will work (except that you need to register the classes of course) but if you reopen blender multiple times, screen.consoles will contain a lot of consoles that no longer exist. There is an easy way to fix this using bpy.app.handlers:

import bpy
from bpy.app.handlers import persistent

@persistent
def flush_consoles(dummy):
    for screen in bpy.data.screens:
        screen.consoles.clear()
bpy.app.handlers.load_post.append(ftlush_consoles)

This will clear the datablocks every time you open a new file. That way you won't end up with a huge collection of consoles that no longer exist.

Hope this helps anyone else trying to do the same thing. It took me quite a bit of experimenting to get it right. If anyone has any suggestions, please let me know in the comments.


Workflow for developing add-on/script I'm trying to figure out a good workflow for developing scripts and add-ons in Blender. Here's what I'm currently doing as I try my luck with a PyNode add-on:

Open blender
Create a text editor panel
Open my script (external text file)
Edit my script in a nice external editor
Reload the script
Save the .blend file
Run the script

Now that I can see what my code does, this Blender instance has been modified, so I can't (make changes to my script and) run my script again. So I do this:

Close blender
Open blender with the .blend from step 6 and repeat steps 4-7, over and over and over..

Is there a better workflow for this sort of thing?

Blender text-editor is not good for coding, but using external one is cumbersome because the code still needs to be debugged regularly in blender and the blender console and outliner dataview is also very usefull. Switching back and forth would be an annoying experience for me even if the codes (external, internal) could be synced (which they can be with scene_update handlers..).

There was couple years ago an attempt to improve the Text-editor (using Scintilla that many external text editors use), but it seems dead.

So some time ago I wrote this addon to improve some Text editor functionality so I don't have to go the external path. Nowadays I would code some of it's parts differently and better (especially the multithreaded minimap updating) so any feedback is very welcomed. Here are the features:

Start and End with right-click in any Text-editor window (it also ends with F8 because when scripting an addon you need to reload with F8 and that is not possible because this addon is a modal operator. So you need F8 + F8 + Right-click>Start_again )

When started it adjusts the text-editor to the addon preferences, so you don't have to set line_numbers, syntax_highlight, text_margin etc. every time you open new text-editor window (this is frustating blender behavior, these settings should be global..)

It follows blender theme colors. The default ones are bad, so here I give you a good ones so its usable:

It adds a scrollable and clickable code minimap with syntax highlighting, which fades out when window is too small. It is done in another thread and has lazy updating to not lag the text-editor (python is slow for this). It can be disabled in preferences with just setting huge Hide Panel threshold:

It adds markers to visualize indentation, and it displays the scope of defs and classes (you can see it above in the gif). The scopes could be minimized but this didn't make it into this release because when blender crashes you would loose the hidden code parts (the lines were removed from text and stored in custom property). You can see the toggle icons when you hover over line numbers.
Autocompletes brackets and "",'':

Use Alt+C for magic:

put things in lists:

evaluate expressions (it knows pi, e, phi(golden ratio) and g(grav accel)):

stringify words when cursor just after the word:

Correct Home and Shift+Home behavior. Will move to first letter of line or to the previous indent. Alt+Home now moves to the line beginning:

Make comments with Alt+D. (Remove with Ctrl+Shift+D - this one is not new):

With multiple text-files it displays tabs to quickly switch between (blender has tabs but does not use them where it should..)

All this was good enough for me not to use external editor. Multiple variables highlighting and multi-editing (like Sublime has) was planned but abandoned. Maybe if enough people will be interested I could further improve this. But I don't see Blender addon python api strong enough to do this properly, this should be done in Blenders code for performance (like that scintilla patch).

There is also this paid addon that does blender api autocomplete and is very nice.

In your workflow I don't see much room for optimization, except for auto-reloading your script with bpy.app.handlers.scene_update_pre handler. You should be able also to return to the start state with ctrl-z so you don't have to restart blender but that depends on what you are doing if that would work.


How to see whats beyond the video sequence editor Is there anyway to see movie strips outside of the video sequence viewer? The image on the left side is my normal view. The picture on the right would be an extended view. Basically I have rolling pictures on the bottom and they come on and off the screen right from left. How do I see their position when they are not in the viewer. Its important for the timing of scrolling that happens for each image.

You may choose to do some of the scrolling in the 3D View first to produce an image sequence, then  later used in the Blender Video Sequence Editor, VSE.  The 3D View can show objects not in the camera.

As another example if a Blender User wanted to have fancy 3D titling that would be created in the 3D View first as an image sequence first.  Simple titling is available in the VSE.

By using planes with a texture and a camera with orthogonal settings you camera will behave more like the VSE.  The texture is the movie or image sequence that has already been created.

I tend to have two scenes.  SceneA, 3D View and Post processing No VSE.  SceneB, VSE only.


Limited dissolved over thousands of objects I'm new to Blender and I'm having a few issues attempting to run a 'limited dissolve' over thousands of objects. Is there a simple way of doing this?

What I've tried so far is:

Select all objects/faces in the "object mode" and then in the edit mode run the limited dissolved feature. However for some reason 'limited dissolved' seems to only work on single faces/object.
Python script looping through all objects and selecting the objects individually to do a 'limited dissolve' on each one. However when I run the script the dissolve_limited method doesn't seem to work - see code below:

bpy.ops.object.mode_set(mode='OBJECT')
bpy.data.objects['Shape_IndexedFaceSet.'+str(HundsCol)+str(TensCol)+str(CountTens)].select = True
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.dissolve_limited()
bpy.ops.mesh.dissolve_limited(angle_limit=1.75)
bpy.ops.object.mode_set(mode='OBJECT')
bpy.data.objects['Shape_IndexedFaceSet.'str(HundsCol)+str(TensCol)+str(CountTens)].select = False

To change the context object (for operators) use

context.scene.objects.active = obj

or new in 2.8, instead use

context.view_layer.objects.active = obj
# and select with
obj.select_set(state=True)

as well as (or instead of) setting the select property.

In your code above you would be running the op on context object for each object.

For multiple objects consider using the bmesh module as shown in this
Related Answer,  replace the remove doubles bmesh operator with limited dissolve.

Test code, runs the limited dissolve on every selected mesh object.

import bpy
import bmesh
from math import radians

context = bpy.context

distance = 0.0 # remove doubles tolerance.
if True: #def execute(self, context):

    meshes = set(o.data for o in context.selected_objects
                      if o.type == 'MESH')

    bm = bmesh.new()

    for m in meshes:
        bm.from_mesh(m)
        bmesh.ops.dissolve_limit(bm, angle_limit=radians(1.7), verts=bm.verts, edges=bm.edges)
        bm.to_mesh(m)
        m.update()
        bm.clear()

    bm.free()

On a side note, suggest using string formatting to make key names.

key = "Shape_IndexedFaceSet.%d_%d" % (hundreds, tens)
obj = scene.objects.get(key) # obj is None if not exist.

or with f-strings

key = f"Shape_IndexedFaceSet.{hundreds}_{tens}"


Multiple stacked planes image distortion (Noisey Images effect) The youtuber Noisey Images does this really cool effect where tiles that slightly distort still images as they and the camera moves through space.

Here's his newest video, he uses the effect with two photos at 1:03-1:10.

This is a still of the effect

Now i've got a couple of ideas of how to do the effect but not sure how to go about doing them:

One being applying a texture that produce large squares and apply it to the image. Then using a displace node to shift the large squares (multiple stacked planes) around. This is going off a tutorial I followed by PartnersInCrime youtuber: https://www.youtube.com/watch?v=F7rHopldBPI

However this was done in Cycles and since I'm more comfortable with the Blender Render layout i'd preferably want to do it in that.

If that doesn't work then I was thinking of adding lots of planes in the 3D view with the image behind in the background. Then add a texture that magnifies the image behind it sort of like a magnifying glass.

Again, I don't if any of this is at all possible as i'm still pretty new to everything blender but I'm sure that with the help of you guys and gals out there i'll make something half decent!

Cheers for any help.

So far I've tried UV mapping the desired part of the image using a plane but it just highlights the whole of the image in the UV/Image editor:

I've yet to try the UV project modifier to see if it works but i'll append images if that doesn't work as well.

A way to achieve a similar effect is the following:

Use several planes or parts of planes
One on background with the full image
Others with marks or dust and an alpha transparency
Others which cover only a part of the original image and moving between the background and the camera

low quality gif here...

The animation is the following. Planes are simply moving and/or scaling in face of the camera.

Two materials are used:

A simple texture on one plane

A texture with transparency for others

The plane UV are adapted to cut parts of the images where needed (you can adapt depending on what you want):


How to get reference to object(s) added by an operator? From my python script I want to add some objects to scene and process them later (add constraints etc.).
If the object to be added is an Empty, I can simply write:

>>> name = "MyObject"
>>> obj = bpy.data.objects.new(name, None)
...
>>> process(obj)

However if the object to be added is a simple mesh, we may use bpy.ops.mesh.primitive_* operators, which adds objects (e.g. cube) to the scene.

>>> bpy.ops.mesh.primitive_cube_add(radius=2)

But how can I get reference to the newly added object? It returns {'FINISHED'} instead of the reference to object.

>>> obj = ???
>>> process(obj)

We do not know name of the new object (and I'm not interested in guessing it:)). Instead, I've tried using the index, but it did not work (gives wrong result):

>>> obj = bpy.data.objects[-1] # We don't know the name :(
bpy.data.objects['Lamp']
>>> # ^^ bpy.data.objects['Cube'] was expected

Objects constructed with bpy.ops.mesh.primitive_* are automatically active. If there's no selection-changing operations immediately after object creation, you can access it through bpy.context.active_object or bpy.context.object.


How to implement joystick rotation in BGE? I haven't been able to find an answer to this question anywhere. I want to have my character face in the direction the analog stick is pointed. How can I do this?

How about give an empty a joystick sensor to drive a message actuator with an appropriate subject, then give your character a message sensor to pick up the message and drive a motion actuator?


Unlink all connected objects at once If you have x number of linked objects sharing mesh data, how do you unlink all of them at once?  Right now I am clicking on one object at a time then pressing the number in the name field indicating the number of linked objects.  (EXAMPLE: If you have 62 objects sharing obdata and you want to unlink all of them at once to say apply loc/rot/scale values back to 1 via Ctrl+A, then relink to have them all connected again.) Maybe something like Alt + L, but that doesn't do it :) Thank you.

You can do Shift+L > Object Data to select all visible objects that share the same data and then do U > Object and Data to make the selected objects single users.

Ctrl+L > Object Data can then be used to link the selected objects together again after making any changes.


issue tracking sequence I am new to blender, I recently started to learn VFX.

I get an issue with tracking. I keep getting those 2 errors :
- Failed to solve the motion: most likely there are no good keyframes

And

At least 8 common tracks on both keyframes are needed for reconstruction

I tried with many different video sequences, tried manually add tracker, detect trackers automatically, I even tried with one sequences that had tons of trackers but still the same error.
Could you give me a hand?

Another image

This seems a lot of trackers but i tried it to see what was up, usually I only add like 20 trackers

Try to cleanup your tracks with different error threshold from high to low. You have too many unnecessary tracking points. You need at least 8 good trackers, but having way too many might make the process less accurate. See:
How can I get better results when doing camera motion tracking?

Then if Keyframe checked option won't work correctly, try to set the best key range!


How can I tell if my mesh is detailed enough for boolean operations? I had a quick go at making an anvil with some boolean ops.  I started with the basic cube.  Things went OK until I added subdiv mod and bevel and it all went horribly wrong.  The bevel didn't seem to do anything and the subdiv made a disastrous lumpy mess wherever it was in the mod stack.

I figured I should have subvided the cube to start with so I tried it all again and the then subdiv worked as expected, my question is: how can I judge what level of mesh detail I need for a particular series of operations?

In this case I subdivided the cube maybe 2 or 3 times, and it worked, (though by this time the subdiv was hardly necessary) but if one has to spend an extended time working on a thing before finding one's mesh is too coarse, I mean it's not very good is it?

What's the best thing to do? Subdivide like crazy and hope decimate can fix it all up at the end?

Thanks.

Sorry, but you can only get that knowledge by doing a series of misstakes. Subdivision is by no mean a silver bullet and neither is bevels. Subdivision is not a requirement for any model. It is a tool to handle a hi-poly surface with fewer controlling vertices. But it is hard to handle and you must take interest in how to make good topology for sub div.

If you do booleans the resulting topology will often be bad. It needs to be cleaned up. I would recommend you to analyse the result of each modifier and so you can learn how to control them.

It's not how much topology you have, more how it the edge flow works and that you have enough of it to support your shape.

I can recommend you to research how Arrimus 3D solves different problem, not always the same tools but more often then seldom a solution that works for blender.

https://www.youtube.com/channel/UCSLLdTBwLMfTKWS56tOiQpw


Is it possible to make a fuzzy blanket material without using a particle system? I know that it's possible to make a fuzzy blanket with a particle system, but it seems like I should be able to do it with just a material + cloth simulation. Here is the effect that I'm looking for:

I think it could be done with some combination of fresnel, velvet, and normal maps, but I'm not great with materials. If anyone can offer some advice, it would be greatly appreciated.

You can always go in and tweak it more, but this gets ya close.

I guess, to explain a bit...

Object info: Random gives a range from 0-1,
so I send that into a multiplier to get the desired range,
then pass it into a texture.

Contrast on voronoi seemed too intense, so I subtracted a tiny amount.

I gave it a bit of subsurf to make it look soft, but then it looked oversaturated,
so I used the HSV node to dim the saturation slightly there.


Why is an object flashing black? I am making a door that's being banged on, and whenever it moves into a specific position it turns black. I've tried putting lights in all places, but nothing seems to work.

it's because of your (different) blend mode/shadow mode:
set all to

alpha blend
alpha hashed

and it works.


Bump map not showing differences for different height I've tried three cubes with different height, and render the height map in Render View Image, the upper one is the height map, the lower one is a plane with the rendered height map.
From top-down view,

From side view

My question is why there is no difference when the height map is applied, my node steup is like this,

Edit:Slope doesn't help too much for the height, I can't tell the difference either.

I'm not sure the Z depth value is helpful here.
I used this Robin Betts' answer for the height map instead

Render the height map
Set Bump Distance to correspond to your object's max height (0,5 m in my example)
Done

Geometry with 0,5 meters max height

Generated Height map

Bump Distance with 0,5 m height


How to make material like shadow catcher, but for reflection(not shadow)? Let's we have this setup:

Sky is black for camera and textured for reflection:

And I want to remove sky from reflection on the ground like this:

And the way that I found is using a post processing nodes like this:

But there is a few disadvantages for this method:

If I add lamps (any emission material) they are also subtracted.
Cycles passes are not denoised. So, this method looks bad with build-in denosing.

Any outer way to achieve this task?

[This is more of a hack.]

Duplicate your Glossy floor plane and assign it an invisible Refraction BSDF. Scale it to wards the Camera as little as possible.

After doing this, all rays bouncing of the Glossy floor plane will pass through the Refraction plane and have the Is Transmission Ray set. They will also be at a ray depth of 4 after leaving the transmissive plane. If it hits the world output at this point, we want it to be black. If there are more bounces, it isn't the direct ray from camera-transmission-reflection-transmission-world and shouldn't be black.

With nodes, combine the Ray Depth <= 4, Transmission Ray and Camera Ray parameters.

The result will also work if other emissive objects are added to the scene.


How do I export my armature and pose library I am trying to export an armature and a pose library from my .blend file so that they can be loaded in to any .blend file. The ultimate goal being to start with an empty file, load the armature, load the pose library, load the mesh to parent to the armature and take it through the poses in the library.

Thank you in advance for your help!

I find it easiest to open two instances of Blender. One for the scene I am working on and
one that has the model/material/rig, etc.

You can copy from one running instance of Blender to another using the Copy and Paste keyboard shortcuts.  Ctrl-c then Ctrl-v

This works well because you can select everything that you want from a scene all at once without having to dig through Blender's file navigation dialogue.

If you transfer an object that has rigging, the armature will go with it even if you did not select explicitly select the rigging.

Materials and textures will transfer over as well.

You can use this for Light and Camera setups and probably several things that still have to be thought up by someone.

BTW.  Even though OSX uses a slightly different key-combo for Copy and Paste, Command instead of Ctrl; both tend to work because Blender was programmed to recognize both.


Connecting two curves with same number of vertices I'm looking to connect two curves. One duplicated from the other and then modified. They have the same number of vertices. While a more broad question than this example, I'm trying to connect a top and bottom curve to define a curtain.

I know that I can convert the curves to meshes and then do the time consuming task of connecting the vertices into faces. I'm looking for a faster work flow where I can extrude or bevel from one curve to the other. TIA

If you are willing to go to mesh there is a pretty fast method.

With both curved selected Ctrl+J to join these two Curves into one object.
Alt+C >> M to convert the curves to a mesh.
TAB - to enter edit mode.
A - to select all vertices.
W >> E - to perform the Bridge Edge Loops command.
TAB - To go back to Object Mode and enjoy your curtains.


Metallic material in internal I have a racing game.I want it to be advanced racing game (in materials,model,logic bricks,AI).So, the question is,How to make a metallic material like this

You can use fake reflections (quite the same as a Matcap), here is a tutorial :
https://www.youtube.com/watch?v=H1t7fMKVuQs


How do I simplify the polygons of a 3D scanned model? So I'm totally new at Blender. I have a drone-scanned image of a city that I need to simplify. I need the poly count really low but still keep the high-res imagery. What I would like and need is to turn the mesh into a single poly like I highlighted in the image. I'm pretty sure I know the answer to this but is there a simple way to do that?

One way to simplify geometry would be to use the Decimate Modifier.

Add the Decimate modifier set to Collapse, and turn down the ratio.
Click Apply, if you want to edit your geometry manually after.

If you want to see the polygons like in my gif, enable Wireframe in the Overlay menu.

Then just manually select and join faces into one.
Vertex > New Edges/Faces from Vertices
Shortcut: F

There are also other ways to simplify geometry, I didn't want to overwhelm you.


Should I learn Maya because it is superior to Blender in animation? I have been studying Blender for more than 3 years, I am really in love with it, but I want to concentrate more on rigging and animation, but I am struggling and it's very hard in Blender, and people suggest Maya for rigging and animation.
But I don't know nothing about Maya, should I start learning that also, is it possible to learn both?

Also what do you think, how good is Maya compared to Blender in animation?

Please advice me, friends.

This question might seem opinion based and therefore not suitable for this platform and I think it actually might be the case. However, I think it is possible to answer it based on facts, or maybe I should say the absence of facts that you should learn Maya instead of Blender or that one of them is superior in animation as a whole.

I can say with certainty that there are no rules or laws that would force you to learn any 3d software instead of another. Blender is free so you definitely do not have any restrictions choosing it instead of any other package. It has all the tools to make animations, and there are studios that use it even for animated feature films and they seem to be happy with Blender instead of Maya. Tangent Labs with their Next Gen is a famous great example.

I think the answer to your question is: no, you shouldn't, meaning you can but do not have to. You can choose whatever you wish.


How to fix exterior faces Blender thinks are interior faces I use Blender to create 3D models for printing. Occasionally when I select mesh by trait - interior faces, the results shows some exterior faces selected.

I tried to use Mesh > Normals > Flip to fix this but nothing happens. Same for recalculate exterior faces.

I've also tried the 3D model plugin to "Make Manifold" but it removes the selected faces.

The solid model looks correct but will not print correctly.

Is there a way to fix this?

When you have trouble with Normals, i would highly recommend the following.

Go in the Viewport Overlays and activate "Face Orientation"

You should now see red and blue overlay on your object (blue face direction should always point outwards, red the backside of faces and should only point inwards)
Go in Edit Mode and press A to select all
Press Shift+N to recalculate normals outside
If there are still red areas facing outwards you need to select them manually
Press Alt+N and Flip those Normals

Now the entire object should be blue and you can deactivate the "Face Orientation"
A little tip, add Flip and show Face Orientation to Quick Favorits per RMB
It's so helpfull to have at hand and saves a lot of time.

Important is that only selected faces will be affected by the normal operations.

Interior faces as the tooltip says are faces were all edges have more then 2 face users!

Means faces that cover holes where more geometry is hidden behind.

Here a little visual explanation about it:

It's obvious that there are faces hidden behind the middle one covering a hole.
I believe you may have generated overlapping faces that lie above/in front of others that are facing outwards.
Try saving the file incremental and then select those interior faces and hide them with H. Should those now hidden faces not affect the mesh, just press Alt+H to show them again and delete them with X, "Faces".


Using localPosition to create a property based tracking system So I have been using this code to broadcast coordinates so other objects can read the properties. The problem is that when I an using a vector I cannot tell if it is in the negatives or positives. Plus when I'm using a parented set, it goes off the median object location.

import mathutils
import bge

owner = bge.logic.getCurrentController().owner
positionToCheck = owner.worldPosition
positionToCompareTo = mathutils.Vector([0,0,0])
cont = bge.logic.getCurrentController()
own = cont.owner

own["position.x"] = float(abs(owner.worldPosition.x))
own["position.y"] = float(abs(owner.worldPosition.y))

The position.x and y are properties on the given object that I make other objects read for various reasons. I'd like another way to accomplish this without a vector.

So this is the code I ended up using. But then I realized I can just check the worldPosition.x and y directly. So this was kind of a dumb question sorry


How should I fix this topology issue? I'm a beginner modeller, and I've been trying to create a revolver from a reference photo. I've been tweaking the topology here and there to make sure that I have no 3 or 5 vertex faces. However, when looking at the model with a subdivision surface modifier I get this weird pinched effect that you can see below

What am I doing wrong and how can I fix this? All answers are appreciated!

If you are a begginer you should try less complex objects before try to create a revolver.
Look at YouTube for tutorials about booleans, crease, edge split, bevel and other hard surface tools.
To solve the problem you post try to use bevel modifier or add more loops (ctrl+R) near that junction.


Propeller Fan - Array Modifier Can the ARRAY MODIFIER make a mesh multiply along a side of a round object? Instead of it duplicating vertically or horizontally?

In your modifier you can simply un-tick constant offset and relative offset, use object offset instead, and target an empty at your axis point and rotate the empty to set your increments. You will need to offset you blade from its origin in edit mode to create space for the motor but sure both objects share same origin location.

Another method I prefer is to use duplication.

Create a circle primitive the size of the motor, give it 7 vertices, under the duplication tab in its object properties select verts and tick rotation, parent your blade to the new object and make sure it has the same origin, align it to Y axis. Hit ctrl+shift+A to 'make duplicates real' and you can delete your original blade.


Basic extrude question Just started with Blender.

I made a shape ( picture 1) Now I want to make a circle on this face and sink it into the shape.

What I do is create a circle, place it onto the original shape, press F  to give it a face, make an inset (picture 2), and then when I try to extrude (picture 3), it does not create a hole.

Probably because I have two faces on top of each other. How would you go about this?

are you looking to make a hole? try the boolean Modifier, difference, apply and remove the cilinder (and good luck with Ngons and strange things if your planes are not 100% flat).


I want the Cloth to drape over the cup, but It creates gap between them Can someone tell me why this happens? I created a plane, subdivided it to 50, and smoothed it, and went to the physics, and clicked on cloth, then selected the cup, saucer and plane and went to physics and clicked on collision, but when I play the animation, it gets space from the cup.

Decrease the "inner" and "outer" values from the Collision settings of the vase.

A good value should be around 1/100th of the vase width (that you can check by selecting the vase and hitting N while in the 3d viewport: look under "dimensions") or anyway at least 1/10th of what you have now. You'll need some trial and error anyway.

PS increase the cloth Steps to ~10 and the cloth collision Quality to at least 3 or you'll risk the cloth to go through the vase.


How to flip camera view? There is a hotkey mentioned by Gleb in the Blender Guru podcast that allows the camera view to be flipped on the x/y axis, I can't remember it for the world, nor find it anywhere in google.  The episode is like 3hs long so I'd prefer not to go through it again trying to find the moment he mentions it.  What is this hotkey?

3D  view/Render
Give the camera a negative scale on the local X axis.
Both S X X -1 and ⎈ CtrlM X do this (use Y instead of X for flipping vertically), or you can set the scale directly in the transform panel:

Rendered animation playback
When previewing an already-rendered animation (⎈ CtrlF11) you can flip the display horizontally with F and vertically with Shift-F.
Sequencer
The VSE has an option to flip strips in Properties region > Filter:

Thanks ideasman42 for mentioning these :)


Reflections visible in Vieweport but Flat/Barely noticeable in final render I'm having trouble rendering this scene I've made from Grant Abbitt's steampunk goggles tutorial. The thing is when I'm looking through the Viewport I can clearly see reflections from the material, but then when I go to render, the reflections look flat or barely visible.
Link to .blend file with packed textures
Screenshots:

Your scene environment is not set up properly. The HDRI is using an ordinary Image Texture node, not an Environment Texture node:

Deleting it and replacing it with an Environment Texture node fixes the render:

The reason the result looks okay in the 3D viewport is because it looks like you had Scene World unchecked in the scene options:

If you check that box, then the 3D viewport matches the rendered result.


Why can I not scale right? When I press "s" to scale it out like in many vids that I see, it just moves it to the side. I press "x" to make sure that im only moving on the x axis but it wont work. Please help me]1

Because that's exactly what pressing s with x does(look at your global orientation axes,x shows sideways).you might want to press y or -y to get what you want.


Advanced curving and linking I'm trying to create a 3 meshes. Each mesh has it's own curve modifier so I can bend them how I want.

How can I connect the middle mesh to the outside meshes with face shown on picture and keep 3 curve controls for each mesh?
Another thing is that I want keep the 45 angle of the middle mesh so it looks like arrow even if I bend the outside meshes along their curves.

This is just an example but I want to repeat the middle mesh every meter so there will be few of them.

You can have multiple curve modifiers per object and control what each of them deforms with Vertex Groups.

Join all your meshes into a single object (preferably the arrow at the center of the scene).

Then create one Vertex Group for each deforming curve you wish to have. Assign the desired vertex of the mesh part to each Vertex Group corresponding to a curve.

Then proceed to add one curve modifier for each curve, limiting its effect to each one of the previously created Vertex Group.

Afterwards add the curve objects one by one making sure you align their centers with the mesh object so they match perfectly; and aligning them to each part of the mesh they will be deforming, so they don't deform the in unexpected ways. Assign each curve to one of the Curve Deform modifiers.

You can also connect the faces, and remove the top vertex from the vertex groups in such way that deformations wont affect them, but it is then up to you to control the curves sensibly, otherwise extreme deformations may lead to weird results

One way you could do the 45 degree connection would be by using the Knife Project operator, then pressing C to activate Angle Constraints and snap to 45 Degree increments. From there just cut the relevant geometry and proceed to delete all surplus faces and rebuild from the remaining vertex.


Fill a corner with a curve? I'm trying to make a curved transition between some perpendicular planes (mocked up here with Photoshop):

What's the best way to go about this? Perhaps creating some kind of curved edge? I tried using a bevel, but nothing happened.

File here if it's useful: https://drive.google.com/file/d/0B3TF2HeeQRyWRlRyQUcyMjhtaHM/view?usp=sharing

You can use the bridge in the loop tools addon with a negative value in the cubic interpolation.


Import multiple STL files and modify the incoming objects in one go? I want to import stl files using file browser (by using 'INVOKE_DEFAULT' on import stl operator). It seems that join() operator gets called before importing is finished. Does Blender import the objects in some kind of seperate thread to prevent a potential freeze?
I also tried macros but I'm getting the same result. join() operator gets called before the import is finished. I came across this method of window manager window_manager.fileselect_add() but couldn't get it to work. Sure, I can import the objects if that's finished, the user can join them but the client requires these two steps to be done using one single button.
import bpy

def main(context):
    for ob in context.scene.objects:
        print(ob)

class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

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

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

    def invoke(self,context,event):
        return context.window_manager.fileselect_add(self)

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

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

if __name__ == "__main__":
    register()

Q: Is there any way I can import and join the objects in one go?

Similar to Import STL via python, you can use the ImportHelper class if you'd like to import and modify objects. Have a look into the Operator File Import template that comes with Blender.
In order to join the objects, see @batFINGERs answer on: How to join objects with Python? How to import multiple objects using the file browser, you can find here: How to batch import Wavefront OBJ files?
# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>

bl_info = {
    "name": "Custom Batch Import Stl (.stl)",
    "author": "brockmann",
    "version": (0, 1, 0),
    "blender": (2, 80, 0),
    "location": "File > Import-Export",
    "description": "Import Stl files and join them",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Import-Export"}

import bpy
import os

from bpy_extras.io_utils import ImportHelper
from bpy.types import PropertyGroup
from bpy.props import StringProperty, CollectionProperty

class ImportSomeData(bpy.types.Operator, ImportHelper):
    """Batch Import Stl files and join them"""
    bl_idname = "import_scene.custom_stls"
    bl_label = "Import multiple OBJ's"
    bl_options = {'PRESET', 'UNDO'}

    # ImportHelper mixin class uses this
    filename_ext = ".stl"

    filter_glob: StringProperty(
            default="*.stl",
            options={'HIDDEN'},
            )

    # Selected files
    files: CollectionProperty(type=PropertyGroup)

    def execute(self, context):

        # Get the folder
        folder = os.path.dirname(self.filepath)

        obs = []
        # Iterate through the selected files
        for i in self.files:

            # Generate full path to file
            path_to_file = (os.path.join(folder, i.name))
            bpy.ops.import_mesh.stl(filepath=path_to_file)
            # Append Object(s) to the list
            obs.append(context.selected_objects[:])
            # Print the imported object reference
            print ("Imported object:", context.object)

        # Join the objects based on:
        # https://blender.stackexchange.com/a/133024/
        obs = [x for sublist in obs for x in sublist]
        c = {}
        c["object"] = c["active_object"] = context.object
        c["selected_objects"] = c["selected_editable_objects"] = obs
        bpy.ops.object.join(c)

        return {'FINISHED'}

# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(ImportSomeData.bl_idname, text="Stl Batch & Join (.stl)")

def register():
    bpy.utils.register_class(ImportSomeData)
    bpy.types.TOPBAR_MT_file_import.append(menu_func_import)

def unregister():
    bpy.utils.unregister_class(ImportSomeData)
    bpy.types.TOPBAR_MT_file_import.remove(menu_func_import)

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.import_scene.custom_stls('INVOKE_DEFAULT')

Note: If you get paid for that and my code got your job done, please consider making a donation here: https://www.blender.org/foundation/donation-payment/ to make up for that.


Texturing a makehuman mesh after sculpt I wanted to re-sculpt my (mhx2) mesh from Makehuman. After that, I noticed that some faces haven't texture. It could be logical I guess.

But I can't bring back or paint these faces parts with texture.

I've tried to unwrap, re-load the image texture or paint but that doesn't work. Where is my mistake and how can I do ?
Thanks for help !

I am going to risk some down votes and be harsh but honest with you. But this is how I would answer this to a friend. I think the mistake is that you are rushing too much. I would recommend taking it slower. MakeHuman is a great tool, but it is not magic, you cannot skip learning the basics of 3d before using it. My honest recommendation would be to forget about this for now and to spend a bit more time learning more about modelling, UV mapping, textures and materials, functions and workflows of the software. Maybe try modeling a simple face without too much detail from scratch, learn to UV unwrap it and make a basic texture and material for it yourself. It doesn't need to be perfect, but you will get a better understanding on what you can and cannot do with the software during this experience. Do not be afraid to do and redo and redo and redo the same things again and again until you get them right. Recognize when it is frustrating and know that frustration can be a part of this process and is OK. It usually means that you are learning.

At the moment the problem would be hard to fix for an experienced 3d artist. This is the point where one should start from the beginning and concentrate on doing it right from the start instead of trying to fix it. I am not trying to be rude here - everything is fine with the situation, it happens, not a big deal.


How to make variable transparency hole in a plane with a math function using nodes? One way to make a transparent hole in a plane with graded transparency is to uv-map a solid, monochrome image with graded alpha (I assume).

But can I do this with nodes? I've used the Error Function to do this.

Basically transparency is 0.5 * (1 - erf((r-r0)/fuzzy)) where r is the distance from the center of the plane, r0 is the radius of 50% transparency, and fuzzy is about 0.25 * r0. It would be nice if everything would scale, so if I scaled the plane the hole would naturally scale with it.

note: if erf(x) is not available, it can be replaced with x.clip(-1, 1) like this:

I'm not sure how to begin to explain to nodes how to get the plane coordinates, and the erf() function.

Can this be done easily with nodes?

The image below is fake - I did it with matplotlib as an example of a plane with a fuzzy transparency as described above.

This is all I have so far, not sure how to even start to obtain u and v of the plane separately so I can even star to calculate r = sqrt(u**2 + v**2). Using Separate XYZ or Separate RGB seems to give absolute X, Y, Z coordinates, and I just want coordinates within the plane itself.

Use the Texture Coordinate node instead of Geometry. The Texture Coordinate provides 'Generated' output that varies from 0 to 1 in each dimension over the whole mesh or Object output that gives zero at the centre of the object.

For a "hole" in the centre of your plane you could use the Object Texture Coordinates and determine the distance from the origin using "distance = sqrt(x^2+y^2+z^2) like this :

Use the result to feed into the Mix factor as in your existing example. To make it variable you can add a Multiply node set to "Clamp" and/or other nodes (add, subtract, Max,Min, etc. - depending on the effect you require) just before the Mix node and adjust this to change the properties of the "hole".


UV unwrapping, texture only appears on 5 sides of cube So I'm trying to learn how to use blender to create models and UV textures for use with some openGL stuff I'm learning.

After reading a bunch of tutorials and working stuff out, I can take the basic cube, mark edges as seems, UV unwrap it. Show a UV test grid (color grid). Display the texture on the cube in the other window.

At first it only appears on two sides of the cube, due to normals pointing the wrong way. So I select each face that isn't showing the texture (either one at a time, or all of them) and use CtrlShiftN to switch the normals to actually point out (despite the shortcut being to get them to point in). This works on every face except one, no matter what I do, I can't make anything show on this face.

Version: 2.7.6
Windows 7 64 bit.

First off you are using the blender internal. It is a little different for cycles.

You are in textured mode, textured mode uses the lights on the active layer(s) to shade the objects.

So you can either add lights to make a better lighting setup.

Or switch the shading mode to Material. It will work like you are expecting, with your texture viable on all sides regardless of the lighting.


How would split up the tail for this cartoon whale in blender? I am trying to make a potted plant that is in a cartoon-ish whale pot. However, I got to the general whale shape and then couldn't find out how to split up the back part. I used an Iso sphere and then extended out one side for a tail, but I think that because the tail isn't symmetrical it isn't helping. I'm not really sure what to do. I have included pictures of the goal and of what I have now.

I think you should start with a cube or UV shpere which have quads and symmetry topology. Plan the topology before start, then you would know how much geometry to start with. Also, Using Mirror Modifier would be handy for modelling symmetry form.


Python automation, normals, and dupliverts I'm working with some huge STL models broken into multiple meshes. To automate mesh refining, I'm using this code:

import bpy

scene = bpy.context.scene
selected = bpy.context.selected_objects

for obj in selected:
    scene.objects.active = obj
    bpy.ops.object.mode_set(mode='EDIT')
    bpy.ops.mesh.remove_doubles()
    bpy.ops.mesh.normals_make_consistent()
    bpy.ops.object.mode_set(mode='OBJECT')

It takes a significant amount of time to process. Am I doing this right, or is there a quicker way, perhaps with bpy.data?

The equivalent using BMesh and bmesh.ops would be:

import bpy
import bmesh

for obj in bpy.context.selected_objects:

    bm = bmesh.new()   # create an empty BMesh
    bm.from_mesh(obj.data)   # fill it in from a Mesh

    d = 0.0001
    bm_verts = bm.verts[:]
    bmesh.ops.remove_doubles(bm, verts=bm_verts, dist=d)

    bm_faces = bm.faces[:]
    bmesh.ops.recalc_face_normals(bm, faces=bm_faces)

    bm.to_mesh(obj.data)
    bm.free()

But, i doubt it will be much faster.


Changing a Linked object's Material Blend file.
Video Explanation.
I made a collection with an object parented to a bone. The bone has a property in pose mode and drives a color change in the material of the object. When I link this collection to another blend file and save the property stops working.
How can I correct this? I need to be able to do this w/o changing the material and adding a driver to it every time I open the file.

When you go to Outliner, right click over Material item and choose Resync Library Override it brings driver to work, but after reopening file it is not working again and I had to Resync again.
From video it looks like you are using 2.92 in this version when saved&reopen (or your Revert), Material became Linked (chain icon) for some reason, that is why driver is not working. It is the same issue like I noted in your previous Q with Action. You have to right click on Material item and manually Add Library Override first (so it became chain with arrow icon). Than Resync LO.

In 2.93 your driver is not working from beginning, even in this version Material has LO icon it is not working anyway and Resync LO is needed as well.
Note: I have zero experiences with LO as mentioned, but it seems to me like a bug or not working feature since LO is very new to blender, so it can be just a corner case yet in development. Try to post it as a bug and mention bug report link here in a comment, so others can follow developers statement of this thing. Thank you

In latest experimental build 2.93 I noticed under User Preferences > Experimental ... there is Override Auto Resync with a link to https://developer.blender.org/T83811 so you can get more info. But seems like not covering your issue yet (from what I tried - still manually).
If someone smarter here can explain more.


export a transparent png from fbx flle I do not have much experience with blender. I have a fbx model that i got from unity asset store, this has UV mapping already and a texture. I have tried to get the texture showing on the model but cant seem to be able to do it, i opened the UV Image editor and open the image there but it does not appear on the model.

The second part is once the texture is actually mapped onto the model, how can i change the camera angle and export as transparent png file, i will use this to make an icon.
I am using blender version 2.7.6

The files i am using are below
https://drive.google.com/open?id=0B8DB8JYjVWbTb081LVQ1dmtjck0

The image renders like below

Importing the FBX

Use File>Import>.fbx to open hen_bin.fbx
Select the mesh and enter Edit mode.
Go to UV/Image editor and click on the little photo icon to the right of the word "Image". The icon will say "Browse Image to be linked" when you hover over it.
Choose the image from the list that appears "Map #1949".
Change your 3D view port to show textured materials (Alt + Z) and you should see your texture appear some what, but with blocky shading issues.
Finally, with your chicken selected, go to "Object Data" and turn OFF auto
smooth. It should look very nice.

Changing the camera view:
Have you tried fly mode?

Press NumPad 0 to look through the camera.
Press Shift + F to enter fly mode. You can look around with the mouse, and can fly around with WASD, QE, and speed up or slow down fly speed by scrolling up or scrolling down with the mouse.
When you find the view that you like, simply left click OR hit
Enter.
Your camera is set!

Rendering a Transparent PNG

In Render settings under "Shading", change "Alpha" from the default "Sky" to "Transparent".
Render
F3 to open save image dialogue
Save as PNG with RGBA (using panel buttons on the left)

Happy icon making!


(Blender Eevee 2.9) Soft shadow appear as hard shadow in render I'm making this animation for someone, and when im rendering, the soft shadows i've set up are appearing as hard shadows in the rendered mode. They look absolutely fine and normal in the viewport mode. Here are the images:
Viewport Render:

Actual Rendered Image:

You can see how hard the shadow is in the rendered version. I have tried everything i can to fix this. Help would be super appreciated

I got a same problem here using EEVEE. But I realized I had a sunlight hiding in my scene. Somehow I press  F12 to final render the hidden sunlight will show up. So I delete that sun light and everything works fine.


How can I add inputs to a file output node? New to Blender. How to add additional inputs to the file output node?

This post doesn't explain:
How can I render all render passes to files in Cycles?

Click the Add Input button in the properties panel (N) when the file output node is selected:


Transparency problem with texture using cycles I am trying to use a basic plane and texturing it with a doily for a table. The doily texture has an alpha layer. I used a mix shader with a transparency shader and the diffuse image shader and the factor from the image itself. I got a really weird result (picture below).

I tried using black for the color of the transparency and it ended up with this:

I just figured it out. I need to switch the order of the textures in the mix node. Whoops.


How to exit animation mode when using physics This is a very basic question. I'm using tutorials to learn how to use physics in Blender. I made a cube and lifted it above a plane and clicked Alt-A to run the animation and let the cube fall.

How do I exit the animation so that the cube reapers back in its position in the air? (right now it's on the plane where it fell.

You can go back to the first frame of your animation to return objects and physics to their starting states and positions.  Click the  button or press Shift+Ctrl+Down Arrow while the animation is paused.

To pause playback, press Esc, or toggle play/pause with Alt+A.


Using the cycles experimental render engine, how do I use textures in nodes to create actual mesh geometry and not just bump? I'm trying to create displacement on actual mesh, not just bump, by using texture maps in nodes and the cycles experimental render engine. This is to create more controlled surface geometry using procedural textures than just using a displacement modifier directly on the mesh.
I run into two problems even with all the settings apparently correct, (i.e. material properties settings set to bump and displace):

When using nodes in cycles experimental render engine, the textures do not displace the actual mesh and only bump.

When using cycles experimental render engine, the object does not appear in rendering. In other words the object that is renderable using the same camera, visibility settings in Eevee render engine disappears with the only change being switching to Cycles Experimental render engine.

I am using an amd firepro w5100 graphics adapter.
I am wondering what is the likely user error here :-)
Hope this was more clear.
Thank you

Two reasons why your mesh is not displacing. 1= you have to give your mesh a subdivision modifier and set it to adaptive (Can be done only in experimental cycles mode) so you can have enough geometry for displacement. 2= Instead of adding a math node between your noise texture and displacement output, replace the math node with a displacement node. The color of your noise texture should first be plugged nto the factor of a color ramp node and the colour of the color ramp node into the height input of your displacement node. The scale input on the displacement node decides how heavily the mesh is displaced. Then connect the displacement node to your displacement output. Your mesh will be actually displaced now. Note: You have to foolow both the methods for real displacement to work. If you get really huge spikes on your mesh try reducing the scale on your displacement node. If it still doesn't work try subdividing your mesh in edit mode a lot of times and make sure to have adaptive subdivision on on your sudivision surface modifier.


Node editor's backdrop and render result are not the same! The backdrop:

Render result:

Output nodes are correctly connected. Not the same, tho.

You are looking at the render layer not at the composite.
Change to composite here:


Rigging in rigify for custom rig I got a question. How do I create custom rigs in rigify made from an armature that I didn't rig to a mesh yet but I created the armature? I believe I would be able to do this because I read somewhere that you can add samples or even generate a rigify rig from a rig you built yourself from bones. But I have been unable to find a good tutorial on how to do this. Any help would be appreciated thanks.
The reason I am asking this is because I get the impression that rigify allows you to make non humanoid rigs and rigs with unusual anatomy.

You can absolutely customize your Rigify Meta Rig which would allow you to rig (almost) any character. The "secret" is in understand the Building Blocks or "rig types" that Rigify provides.

I made a tutorial series on exactly that. Here is the series page

https://cgdive.com/rigify

Or the youtube playlist

https://www.youtube.com/playlist?list=PLdcL5aF8ZcJv68SSdwxip33M7snakl6Dx

I hope this is a reasonable "self-promotion". There is very little info on this topic. I learned the basics from this video by Ivan Cappiello (one of past maintainers of Rigify)

https://www.youtube.com/watch?v=txJ-2zUQSTg

And of course, there is the Rigify manual which can be very useful. However it is has been lagging behind the actual development of the addon.
The 2.8 manual actually does not include images as of this writing.

https://docs.blender.org/manual/en/dev/addons/rigging/rigify/index.html?highlight=rigify

So it may be better to look at the old version of the manual
https://archive.blender.org/wiki/index.php/Extensions:2.6/Py/Scripts/Rigging/Rigify/#Advanced_Usage


Can I have two separate meshes in the same object? I have a head object that did not come with a set of teeth. I added a mouth object into my collection, but now I want the mouth mesh to be incorporated into the head object, while still retaining the mouth mesh.

The reason for this is so that I can animate the mouth and the teeth individually, but have them operate under one shape key change.

What I have:
|collection
- (yellow triangle) head
--- (green triangle) head
|
- (yt) Mouth
-- (gt) Mouth

What I want:
|collection
- (yt) head
-- (gt) head
-- (gt) Mouth

Unless there is another option? I am aware of drivers, but those won't work for the application I'm developing, since I need to use Three.js

Make the 2 meshes with their desire blend shape, then merge both meshes and now the 2 blendshapes should be in the shape key list, make both of them 1 of influence then create a new blend from mix.

Hope it can help you, im not 100 % sure its what your are looking for.


Is there a way to get continuous radial/polar coordinates? I'm not exactly sure if that's the right word for it, but basically, I want to be able to generate a gradient around a point like in my picture, but without the seam. the only thing I can think of like that is a color wheel, where it continuously loops around. My goal is to use a math -> compare node to make a triangle shape emanating from the center, one that you can change what direction it's facing and how wide it is. My problem is that with the gradient I have, the triangle shape disappears over the seam (I can better display what I mean in a video, I linked one in the comments). I want the triangle shape to be able to circle around in any direction indefinitely
.

You could avoid doing the trigonometric stuff the Gradient > Radial node has already done for you, by, instead of avoiding the discontinuity at 0, using it as the start of your segment:

At its most primitive, the start-angle is measured out of 1, clockwise from 9 o'clock, and the segment is anticlockwise from there.This set-up works round the clock, through negative and >1 start-angles.
But I guess the disadvantage is the amount of plumbing you have to do to wrangle the interface into offering you center of arc, angle of arc, in degrees, clockwise from 12 o'clock:

(Maybe there are ways of cutting this down?) ... anyway, that's quite a few nodes to avoid one trig. calculation per shading point. Given modern kit, this is probably old-fashioned :)
Edit:
It may be better to forget the Radial altogether and roll-your-own:

.. which is added to the .blend:


Multiple holes in circular direction I'm trying to get the outer holes going in a circular direction the circular mesh in the middle is clean, and so are the holes when left intact without applying the loop tools> circle.

I tried 2 methods of getting a better result, but both times I'm moving the mesh around and needs cleaning up, using knife tool to make more faces, which result in triangle faces.

What would be the best way to approach this type of modelling getting good topology and clean circular ellipses?

Thank you.

Reference image:

An example done in Adobe Illustrator. Its basically just smaller globes going around the larger globe which is in the middle.

Here is a solution for this kind of object. After step 3 I've assigned a Mirror modifier to the object so that you only need to work on 1/4 of the object. Remember that the center of the mirror is at the origin of the object, and activate the Clipping option. You can keep the Mirror as long as necessary, you can even apply, work on your object, then feel the need to bring back a new Mirror. After the extrusion on the Z axis, make sure you've not created some inner face, otherwise it will mess up the mesh. Give your object a Subdivision Surface modifier, add some edge loops to sharp the edges.


Exported textures are black I'm having a issue were every uv png I paint and export gust show up as solid black none of the color I added exports. It shows fine in render and everything in blender but in unity or in anything else. its gust solid black.

ok so I think I know exactly what's your problem if you are using cycles to paint your UV maps all you have to do is
- create an image texture in the UV image editor give it a name.
- go to the node editor and create an image texture node.
- select your texture with the left mouse button make sure that it's highlighted in orange color.

now when you paint it will show up on the UV map and when you exported it hopefully it won't be black

ps: if this didn't solve it pls post a snap of your setup