Is there a way to set objects' origin points to be separated from each other at certain distance in Particles System(Hair)? While I was watching Blender Guru video for 2.8 Blender, he set the origin point of 5 different sprinkles in Set origin to geometry. And it occurred to me that the overlapping problem with particle system could be solved by using a script to restrict or block any particle from spawning within a set distance of a particle. For example, a sprinkle on donut has a distance of 5mm from another sprinkle, with both the origin points from two sprinkles as the radius to determine the set distance.
So the question is - If it's possible to make code for origin point and particle system and set restriction for within a certain distance of "first" particle so newer particles won't spawn within it but any other area than that, then can you show the code with this instructions in mind?
If not, then is there any other workaround methods for Blender 2.8?

PS: Setting origin points of objects to geometry could tremendously help with the question I have in mind.

PSS:If I commit any errors, I apologize in advance for lack of my knowledge.

Daily Blender Secrets - Fix Overlapping Particles with Blue Noise Particles add-on

Daily Blender Secrets - Fix Overlapping Particles

Daily Blender Secrets - Non-Overlapping Particles (Method 3)

First video:

Download the zip file
In Blender, go to Edit; Preferences; Addons; then select install from file and pick the zip. Tick the checkbox to enable the addon.
Select the surface of the object you want to distribute your particles onto.
Press Shift + A to open up Mesh menu and select Blue Noise Particles
Choose highest quality for more evenly spaced particles from the context menu(opens only when you initially make new Blue Noise Particles)
Select Even in Noise Type
Select Vertices in Generate
Click OK in context menu
After generating the particles, go to Render from Particles Settings and select Object in Render as
Note: Make sure it is in emmiter instead of hair
You will be prompted with a dropper to select which object you want to pick for particles.
Note: Be sure to enlarge them if you only see origin points as they may be scaled down significantly

After fumbling around this one, I had to use subdivision modifier on surface of object because if it's too low, vertices generated will be messy for particles clumping together from one point. If too high, it will take considerably long time or Blender or computer may crash from extreme high poly objects. I used collection of objects as particles. Here are the difference between overlapping and non-overlapping particles in those two pictures

Blue Noise Particles

Overlapping Particles

Yes they look practically same. Both are used with denoise node in Composite.

Second video:
(There is an issue, the method won't let you accept color random node for the particle system and instead it will produce one randomized color for all of your meshes)

Have desired particles on surface first.
In Blender, go to Edit; Preferences; Addons; then tick 3D Mesh Toolbox in Official list addons
Select the surface with particles. Go to Modifier Properties and click on Convert to turn them into meshes.
Note: Do not select anything else
Go to Particle Properties and remove particle system from the surface object
Select one active object from all of selected particles then Use Ctrl + J to join them
Press N and go to 3D-Print tab. From there, click on Intersection and go into Edit Mode
The Intersection will give a result that consist of meshes in contact with each other by faces. Press Ctrl + L to extend to whole separate meshes of selected faces that Intersection gave you.
Press x to delete them and you have one object containing all meshes that don't overlap with each other.

I refuse to give instructions for video 3 because it requires physics.


How to optimize nodes and view layers created with motion tracking "set scene" I have not used Blender in a long time but am working at learning some video applications for the software. what I have done is taken a sample video with a fair amount of camera motion and am learning how to add a model into the video scene. for now I am just experimenting with a still model working at simply adding it to the video , getting a shadow and having it track with the camera motion.
I would be interested in being pointed to some good up to date tutorials.
I could muster up more than a few questions if there is someone who knows a lot about this feature, I am getting some confusing results and find the documentation does not really say that much about the feature.
I don't know if that is normal, the file I start with has the model, rigging and a sun. prior to adding in the motion tracking the render is one pass. the compositor started with just rendered layers and composite.
this is what it looked like after solving the camera tracking and setting the tracking scene.

I thought it was the two versions of rendered layers causing the two pass rendering but even if I remove the second rendered layers and second alpha over the result I get is the same even though I have removed the rendered layer node that has no shadow.

Blender seems to insist on rendering that layer with no shadow first then as far as I can tell that is just discarded in favor of the layer with the shadow and because rendering is  time consuming I would rather cut that time then leave it doubled.
any help is appreciated.

OK I figured out what is going on, the file started with one layer and when I used the camera motion tracking to set the background and tracking scene it created a new layer so Blender rendered both layers, the shadow catching plane was put in a background layer.

the simplified version on top does the same thing as the one with the extra layers , the camera tracking works all the same it just renders faster.


Rendering via python - markers problems I'm trying to render a timeline (or some specified frames) with a plugin. I set the active camera I want with

context.scene.camera = mycamera

but there are markers in the timeline with different cameras and I end up with the wrong camera rendered.

How can I ignore those markers while rendering or, at least, change them to my intended camera?

A quick easy way without scripting is to use the Outliner to disable render from cameras you do not wish to use.

If you specifically want to do it in script, you'll need to run through all objects of type 'camera' then set the value for those you wish to not to render.

bpy.data.scenes['Scene'].camera.hide_render=True

Render your scene then return the cameras.

Below seems to work fine but be sure to have your camera selected.

import bpy

list_of_all_scenes = bpy.data.scenes

if bpy.data.is_saved:
    for y in list_of_all_scenes:
        bpy.context.screen.scene = y
        selected = bpy.context.selected_objects
        objs = y.objects
        for x in objs:
            if x.type == 'CAMERA':
                x.hide_render = True
        objs.active.hide_render = False


Rotate (group) objects outwards on spherical particle system? I'm trying to create a mini-world with (among other things) trees on it. I have created an icosphere, modeled several trees and put them in a group.
Next I added a particle system to the sphere, and chose hair. In the "render" section I selected Group and the name of the group I created. As expected the trees show up but they're all oriented in the same direction, while I would like them to pop up just like the default hairs do (along the normal of the individual faces).
I tried fiddling with all kinds of settings, had them oriented in all kind of ways (e.g. towards the "north pole"). I also tried using the emitter instead of hair setting but without success as well.

For your hair particle system, just click on the button Rotation in the render panel of the particle settings.

Then make sure your objects are pointing towards the X axis. Other wise all your trees will point out from your planet, but they will not be pointing up.
.


Setting up user preferences I love the look of Blender after after many years of not paying it any attention - the features look great si I would like to start learning and using it.
However, I'm stuck at the beginning of just setting it up.
I'm coming from Modo, Lightwave and Maya and this is how I want to control it. The Maya preset is not enough, and I don't want to adapt to the Blender right click.
When I set it up to mouse Left click and combination of Alt, Shift or Alt+Shift for screen navigation, I then cannot select between verts, edges and polys.

Is there a way to set this up or do I have to accept the Blender way of doing things?

Also, the axis are changed from 'normal' - is thera way to change the Y axis to up and down and have Z for depth?

Thanks in advance!

I Can give you some tips, you can change all inputs you need in Blender, in the Blender User Preferences Panel:

As you can see, I highlight a input I mapped to  my own workflow, the Edge Loop Selection to the input Alt+Select Mouse. Each input have advanced properties you can set, as well a combination of inputs to execute it.

Here I show you a default shortcut for a great deal of tools for Blender 2.73, although mostly of the shortcuts stay the same.

So, while yes, you can change and map each input to your liking, it's not advised to do so, Blender it's a different software than Modo, Maya, 3DsMax, so I recommend you to use Blender the way it is, you will get used to it just like you are confortable working in your favorite softwares.

For your to change Y axis to Z, here's a relatable question: Is it possible to make Blender a Y-up world?


Why are the normals of this primitive circle pointing upwards, and how to reset them? Using Blender 2.8, when creating a primitive circle using the API like this:
import bpy
from mathutils import Vector, Euler
bpy.ops.mesh.primitive_circle_add(vertices=8, enter_editmode=False, location=(0, 0, 0.03), rotation=Euler((0,0,0.3927)), radius=0.05)
bpy.ops.object.transform_apply()

It ends up with normals like this, pointing upwards a bit:

I noticed when not setting the location of the circle, like so, it does not happen.
import bpy
from mathutils import Vector, Euler
bpy.ops.mesh.primitive_circle_add(vertices=8, enter_editmode=False, location=(0, 0, 0), rotation=Euler((0,0,0.3927)), radius=0.05)
bpy.ops.object.transform_apply()

I have failed thus far to understand why. In any case, I would like the normals to be pointing outwards, like so:

Is this possible? If yes, how? Thanks.

It seems, in the absence of any faces from whose Face-Normals the Vertex-Normals can be derived, they resort to a spherical projection from the Object Origin.


How to increase the strength of a baked fcurve? I baked an audio file to an object's Z location, however it results in very small values (mostly less than .1).
How can I increase (multiply) the values resulting from the baked fcurve?

I suppose I could bake it to another object (e.g. an empty) and then use a driver to do the multiplication, but is there a cleaner way?

This Problem i solved yesterday. The easiest way without addons or math,  - is to use f curve modifier ,in this case "envelope". You set the reference area ( dottet blacklines) and than you click "add control point. These are manipulated with min and max value buttons. You must play with that. The result should be distorted translated or cutoff curves.


Rearranging elements of a panel Is there a way to edit the position or hide some elements of an existing panel ?
I know I can edit space_view3d.py but I prefer to do it properly.
right now i'm appending some labels and they appear at the bottom of the panel

I would like know if it's possible to insert them before some other elements of a panel

Inserting UI elements in between existing properties is not supported at the moment. Also editing python files that come with blender is bad practice.

You can use append() or prepend() in order to add elements to the user interface of existing Panels, Headers and Menus:

import bpy

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

    # display properties and values
    col = layout.column(align=True)
    col.label("My Values:")
    col.prop(scene.render, "fps", text="FPS")
    col.prop(scene, "frame_start", text="Frame Start")

def register():
    # lets add the menu to the Mesh Display panel via append or prepend
    bpy.types.VIEW3D_PT_view3d_meshdisplay.prepend(draw_my_properties)

def unregister():
    # remove the menu
    bpy.types.VIEW3D_PT_view3d_meshdisplay.remove(draw_my_properties)

if __name__ == "__main__":
    register()

More information and Addon code: https://blender.stackexchange.com/a/34490/3710

However, here is some kind of hack based on this answer. Following Add-on code injects UI elements into the associated python file on the fly (space_view3d.py in this case). It's also equipped with a prepend() fallback if the specified line cannot be found:

bl_info = {
    "name": "UI Elments In-Between",
    "version": (0, 0, 1),
    "blender": (2, 75, 0),
    "location": "Edit Mode Property Panel (N) > Mesh Display",
    "description": "",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Development"}

import bpy

def draw_item(self, context):
    layout = self.layout
    scene = context.scene
    layout.prop(scene.render, "fps", text="FPS")

class DrawFuncStore:
    bpy_type = "VIEW3D_PT_view3d_meshdisplay"
    bpy_type_class = getattr(bpy.types, bpy_type)
    draw = None

def insert_menu():
    insert_after = 'col.label(text="Normals:")'
    insert_code  = '    col = layout.column(align=True)\n'\
                   '    col.label(text="My Values:")\n'\
                   '    col.prop(scene.render, "fps", text="Fps")\n'\
                   '    col.prop(scene, "frame_start", text="Frame Start")\n'

    DrawFuncStore.draw = DrawFuncStore.bpy_type_class.draw
    #module = bpy_type_class.__module__

    filepath = DrawFuncStore.bpy_type_class.draw.__code__.co_filename
    #print ("filepath: ", filepath )
    if filepath == "<string>":
        return
    try:
        file = open(filepath, "r")
        lines = file.readlines()
    except:
        append_menu()
        return

    line_start = DrawFuncStore.bpy_type_class.draw.__code__.co_firstlineno - 1

    for i in range(line_start, len(lines)):
        line = lines[i]
        if not line[0].isspace() and line.lstrip()[0] not in ("#", "\n", "\r"):
            break

    line_end = i

    # Unindent draw func by one level, since it won't sit inside a class
    lines = [l[4:] for l in lines[line_start:line_end]]

    # line offset
    offset = -4

    for i, line in enumerate(lines, 1):
        if insert_after in line:
            print("FOUND INSERT LINE")
            lines.insert(i+offset, insert_code)
            break
    else:
        append_menu()
        return

    # import bpy - hacky!
    lines.insert(1, '    import bpy\n    from bpy.app.translations import contexts as i18n_contexts\n')

    # Debug output
    #f = open("/home/poor/Desktop/c.txt", "w").writelines(lines)
    l = {}

    exec("".join(lines), {}, l)

    #bpy_type_class.draw.__code__ = code_object # Doesn't work, since a single func is not a module
    DrawFuncStore.bpy_type_class.draw = l['draw'] # exec defined our custom draw() func!

def append_menu():
    bpy.types.VIEW3D_PT_view3d_meshdisplay.prepend(draw_item)

def remove_menu():
    if DrawFuncStore.draw is not None:
        DrawFuncStore.bpy_type_class.draw = DrawFuncStore.draw
        DrawFuncStore.draw = None

    else:
        bpy.types.VIEW3D_PT_view3d_meshdisplay.remove(draw_item)

def register():
    insert_menu()

def unregister():
    remove_menu()

if __name__ == "__main__":
    register()

Note as @CoDEmanX mentioned:

  This method only works as long as there's just one addon replacing the code object of a certain bpy type.


Possible to use different shortcut commands for mouse vs drawing tablet? Is it possible to map different shortcuts/hotkeys for different "items"? such as mouse & keyboard vs a drawing tablet.
I would like to be able to have completely separate shortcuts, one for my drawing tablet, and one for my mouse, that allows me to pan, rotate, and zoom the camera, without overriding the shortcut for the other item.
I have been able to apply commands for my tablet with ease, and have been able to allow multiple hotkeys for one command in other programs[such as clip studio], so I am unsure if it is an option blender lacks, or if I am just overlooking something in the preference menu.

This is possible - go to your keymap settings, and under 3DView > 3DView(Global) pick the action you want to map to. Open it up, and copy the value that is in the "action command" box.

Now, navigate to the bottom of the (3DViewGlobal) list and find the button that says "Add New". Click on the button.

Expand the new item that is added, and paste the action you copied earlier into the new "action command" box. From here, you can assign a new key input for the action (be mindful of conflicts however, search the "key bindings" box at the top if you're unsure if a key is in use)

Alternatively, another thing you could do, is save your tablet key-map settings as it's own preset - so you have one for keyboard and mouse, and one for the tablet. From there, you can toggle between them easily from the drop-down menu without "overriding" either of their settings.


How do I increase the render distance? I have created a simple model here

When rendering it the end of it is cut off

How can I get the camera to render a longer distance?

The camera can only see the geometry that is within a range defined by the clipping distance.

Anything that that closer of further away from that distance range will be ignored.

With the camera object selected, increase its End clipping distance in Properties > Camera settings > Lens:

For 2.79 and earlier versions

For 2.8

To visualize the camera clip distance select the camera and enable Display > Limits.

For 2.8 enable Viewport Display> Limits


Only show whole dots that aren't obstructed by mask I'm drawing a dot-pattern, based on a vector grid (a) onto a plane.
Based on the position of two empties, that can move on the plane, there are masks (b) generated.
I then combine both of them (c), however I'd like to ignore (or complete) those dots, that are partially obstructed by the mask, so that only whole dots are being drawn (d).
Is there a way to achieve only whole dots, either by completing or deleting "partial-dots" within my mask?

I currently use these nodes to blend them together.

Rather than trying to make the dots behave to fully hide/show based on whether there are wholly or part within the masked regions, it is far simpler to control the masks so that they only ever cover whole dot regions. This can be done using the Modulo function to calculate the distance to the nearest boundary and adjust the edge to that boundary. In this way the mask edge will 'jump' to a suitable position where it will not cut any of the dots.
Consider the following material nodes :

The Object coordinates from the Empty (Texture Coordinate node near the top) are used to produce the mask by applying an Absolute operation followed by a Less Than on each of the channels. The result is combined using Minimum to produce the mask. Note that the Vector Math node is used for Absolute to perform the same operation on each channel of the vector. In this way, moving the Empty moves the mask and changing the values in the Less Than nodes will affect the Width and Height of the mask around that point of the Empty. Note that for this to work the Empty must have the same Rotation and Scale as the main mesh (otherwise the coordinate systems won’t work).
In addition, a modulo (*see below) operation is applied to the Object coordinates. This will return the remainder of dividing the coordinates by the desired 'pitch' (size) of the grid. By Subtracting this from the coordinates used for the mask we effectively offset the boundary of the mask to the edge of the grid defined by the 'dot pitch'. The result of the Modulo is also used to indicate the position within each grid cell and this is used (by scaling (Divide), offsetting (Subtract 0.5) and getting the Length to determine the distance from the centre of a circle to generate each 'dot' (controlled by the other Less Than node).
The result of the mask and the 'dot' is combined via a Multiply node to produce only complete dots within the mask.
Note : The standard Modulo function handles negative values by outputting a negative result. This is not suited to generating a grid in this way but the Modulo, Add, Modulo operations correct for this (see https://blender.stackexchange.com/a/122489/29586 for an explanation of this).
Here's the result of moving the Empty.

The Value node can be adjusted to set the 'dot pitch', the X and Y Less Than nodes to adjust the mask Width and Height respectively, and the Length Less Than node to adjust the 'dot size'. The empty can then be used to position the mask and only complete dots will be shown.
In order to support multiple masks, simply replicate the 'top row' of nodes (from the Texture Coordinate of the Empty to the Multiply used to merge with the dots) for each 'Empty' in use - and combine each row with a Maximum node.


Add F-Curve Modifier for multiple F-Curves at once? I have a rigged and animated character with over 100 bones. Don't ask why, but I want to add the "Noise" F-Curve Modifier for the rotation and scale channels (F-Curves) of every single one of these bones. Selecting every single F-Curve, adding the F-Curve Modifier and specifying the settings for every single F-Curve of every single bone is a VERY time-consuming and tedious process. How do I do as effectively as possible?

With a script

These things are most easily done with a script.

The script below, looks for all pose bone fcurves, all posebone scale fcurves and all posebone quaternion fcurves and assigns them to variables pbfcurves, scalefcurves and rotfcurves respectively.  Note if you are using Euler rotation change to rotation_quaternion to rotation_euler

If you know the action is named "Snurfball" then uncomment and edit  #action = bpy.data.actions["Running"] to

action = bpy.data.actions["Snurfball"]

Uncomment, (delete #) to remove all modifiers from all posebone fcurves

demod(pbfcurves)

To add strength 2 noise to all scale fcurves

noise(scalefcurves, strength=2.0)

To add strength 2, depth 4 noise to all quaternions

noise(rotfcurves, strength=2, depth=4)

Make your edits, Select the rig object and run script.  A single CtrlZ generally does a good job undoing, but as always: please backup first.

import bpy

context = bpy.context
ob = context.object
action = ob.animation_data.action
#action = bpy.data.actions["Running"]

def demod(fcurves):
    fcs = fcurves[:]
    while fcs:
        fcurves.remove(fcs.pop())

def noise(fcurves, scale=1.0, strength=1, depth=0, phase=1.0, offset=0.0):
    for fc in fcurves:
        m = fc.modifiers.new(type='NOISE')
        m.scale = scale
        m.strength = strength
        m.depth = depth
        m.phase = phase
        m.offset = offset

pbfcurves = [fc for fc in action.fcurves if fc.data_path.startswith("pose.bones")]

scalefcurves = [fc for fc in pbfcurves if fc.data_path.endswith(".scale")]

rotfcurves = [fc for fc in pbfcurves if fc.data_path.endswith(".rotation_quaternion")]

# clean modifiers from all fcurves

#demod(pbfcurves)

# add noise to all scale fcurves

noise(scalefcurves, scale=0.4, strength=2.0, offset=-5)

Further to this if you are adventurous, can do this from the python console.  Here I've found all the fcurves with a datapath, converted to lower case that contains the word "arm"

>>> action = D.actions['metarigAction']
>>> armfcurves = [fc for fc in action.fcurves if fc.data_path.lower().find("arm") > -1]
>>> for fc in armfcurves:
...     fc.data_path, fc.array_index
...
('pose.bones["upper_arm.L"].location', 0)
('pose.bones["upper_arm.L"].location', 1)
('pose.bones["upper_arm.L"].location', 2)
('pose.bones["upper_arm.L"].rotation_quaternion', 0)
('pose.bones["upper_arm.L"].rotation_quaternion', 1)
('pose.bones["upper_arm.L"].rotation_quaternion', 2)
('pose.bones["upper_arm.L"].rotation_quaternion', 3)
('pose.bones["upper_arm.L"].scale', 0)
('pose.bones["upper_arm.L"].scale', 1)
('pose.bones["upper_arm.L"].scale', 2)
('pose.bones["forearm.L"].location', 0)
('pose.bones["forearm.L"].location', 1)

All location.y arm fcurves

>>> armfcurves = [fc for fc in action.fcurves if fc.data_path.lower().find("arm") > -1 and fc.array_index == 1 and fc.data_path.endswith("location")]
>>> for fc in armfcurves:
...     fc.data_path, fc.array_index
...
('pose.bones["upper_arm.L"].location', 1)
('pose.bones["forearm.L"].location', 1)
('pose.bones["upper_arm.R"].location', 1)
('pose.bones["forearm.R"].location', 1)

>>>


What would be the easiest way to do or simulate color cycling for a face? Is there an easy way to create an color cycle effect like in the image?
I know that this was usually done manipulating index based colors from a palette. Perhaps a texture can be animated, if so how?

Image source http://commons.wikimedia.org/wiki/File:Color_cycling.gif

One way would be to animate the texture mapping.

Create an image with the colour gradient you want to use.
UV unwrap your object
Apply the image in the texture panel
Add keyframes for the mapping offset (RMB / insert keyframe).

For cycles the same thing applies - the keyframes can be added in the Mapping node.


Type with curvy front face / round front bevel I am trying to make a text that is slightly rounded on the front face (but still has angles), such as this:

All the other faces would be non-rounded.
It is not beveled, as it's more like the front fade is curved/bumpy.

This is what the letters I get look like (side cut):

and this is what I would like them to look like (side cut):

I've tried many techniques, such as bevel, sub surf, remeshing, and even exporting outline curves and one inline curve for each character from Illustrator and joining them, but I can't seem to find an easy way to do this.

By tweaking both the Bevel Depth and Modification Offset you should be able to achieve quite good results:

Start by increasing the depth: the font will increse its outline while creating the curved. Then use a negative offset value to compensate this growth and to make the flat face as small as possible. the You should also ensure that the beveling resolution is high enough in order to achieve the wanted smooth surface.

Then you could convert the text object to a mesh. This way you'll have more control upon the shading of the sharp edges. I marked them manually in the following example:


Trackpad behaviour - acting like mouse (OS X Macbook) Previously, using a trackpad with Blender on a Macbook was surprisingly easy and natural: Two-finger scrolling would smoothly rotate the view, pinching would zoom, and scrolling through controls was smooth also.

Recently, however, I have discovered that the trackpad seems to be acting like a mouse: scrolling zooms, multi-touch gestures aren't recognized, and scrolling scrolls in increments, like it does when using an old mouse-wheel.

Nosing around in the input preferences, I found that disabling the first two Scroll Up and Scroll Down controls under View2D Buttons List disables scrolling altogether, but content still moves from trackpad's inertia (without snapping to intervals, like desired). Also, disabling the last two Zoom View controls under 3D View > 3D View (Global) does the same thing. I.e., two-finger swiping in the 3D view does nothing, but inertia from the gesture rotates the 3D view like desired.

How can I restore the old trackpad behavior? It seems like Blender is not realizing I am using a trackpad, but it is treating it like a mouse.

Sorry—answered own question. Turns out to be related with the OS, not to do with Blender.

For any one else experiencing this problem, just sleep and wake the computer then relaunch Blender. Blender should now recognise trackpad input how it should. Hooray!


Why Is My Rendered Image Distorted? When I animate everything looks normal here:

But then I render it with F12 it looks like this:

Why is that?
I'm a beginner and not a native-english-speaker. So sorry if I get a bit confused.

From the look of your images, you are looking at your scene through the LookDev (A.K.A "Material Preview") tab. This is a setting that provides artificial lighting (not made by you) to the scene to be able to quickly preview things, but does not represent the way your scene actually is lit. To see how your scene will appear when rendered, you should preview your scene through the Rendered Preview display tab. See below:


Tile size in performance not changing at all I cannot get my tile size to change in the performance section. it will not budge from 32x32. is this normal in cycles rendering?

Blender render is stuck on 64x60

I do have some memory of it being able to change. I've tried resetting the defaults and it still suck on the same settings.

I'm guessing you have the Render Auto Tile Size addon enabled? If that's true, you can't change the tile size manually. Just disable the addon to input a custom size.


adding new letters/symbols from character map? How do you do it? I can't just copy and paste a symbol from the character map app to the text box I add into my project

You can't paste this symbols because standard blender font has no this symbols.

Select different font, that has this specific symbol (for example Times new roman), from your text object here:


Outline Bezier curve in 2D mode I'm editing 2D Bezier curves and I need a way to make a second curve that would outline existing curve.

For mesh shapes it could be easily done with SIRE outline or offset edges plugins, but is it possible with Curves? Is duplicating the whole curve and manually adjusting every point the only solution?

If not in Blender, then maybe in another software like Inkscape?

As shown you can use the Offset section in the Font / Curve Objects tab, of the Properties panel. This produces a reasonable offset perimeter for  2D Curve and Font objects. There are limitations with respect to self intersection.

I'm writing this response in Sept 2015, some of these details might change but they describe the current state of this feature.

A non-zero offset will expand or shrink the surface area of the Object.

here positive offset expands it:

You can't see the original shape as an outline when the offset is non-zero. I can imagine it would be useful sometimes to see the original via some ghosting outline, (You could duplicate the object and leave the duplicate with no offset to see the original form, but that's extra work..)
you can't see the 'projected' Curve handles. (Without looking at the code i'm not even sure they are projected ..the outline could be generated post tessellation of the surface, and you might only get a polyline.. i don't know.)
When you convert a font-object with offset to a Curve object, you get a 2D curve with the Curve handles of the original Glyphs. This means you don't get the Curve handles that are the result of the offset, same issue as above. Usually this isn't a problem, but I can imagine use-cases where the offset Curve handles would be preferred.

In a subsequent question you ask how one might get those handles. Currently i'm not aware that there is a way to get them easily without

changing Blender's source-code
writing a Python script that re-implements the C source for the 2D Curve offset as python operator, or implements an alternative outline algorithm to retain the Curve handles.

Making an outline anyway

Is possible, but any method that I can think of seems to have some inelegance.

For the above image I used 2 font objects, one with zero offset, and one a positive offset.
The Font object with offset is converted to mesh, then converted to Curve, and you get a single closed polyline. You set the Curve mode back to 2D and if you have the surface filled 2D Curve again, (but now it lacks Bezier handles).
Then you convert the original Font Object to a Curve (which will have Bezier handles) and join it with the new closed poly-line version to get something like this:


Why my Eevee material with Alpha won’t show correctly I have 2 objects:
1. An imported Image as Plane (2D).
2. And a simple 3d object.
I was following the advice in this video.

The Alpha is working fine for #1, but not for #2. They are using the exact same nodes though. Both have their Blend Mode as Alpha Blend.

The Alpha may be working for #2, but its texture got all screwed up. I thought it was just a mater of fiddling with the Normals, but that didn't help :frowning:

What could be the solution then?

Feel free to play with the .blend file attached herein.
https://blenderartists.org/uploads/default/original/4X/2/1/0/210127fbbbc80c006ad8bd33fe25be210d0d6490.blend

Thanks guys!

2 Solutions were found.
#1 by Benny_G: Instead of using Alpha Blend for the Blend mode, use Alpha Hashed.
#2 by NewVisitor: Use the Principled Shader instead of the Diffuse BSDF Shader, plugging Alpha to Alpha from the Image node to the Principled Shader.

What caused the need for this fix, it's still unknown.


Blender uses more ram than my pc has when rendering When I preview cycles render in viewport, the performance is solid and using 1 or 2GB memory. However when I render, at 128 samples, my pc freezes after about 2 seconds. Also, I have only got 16GB of ram, but the lower right corner says that the memory usage is 17.24GB. I render on the CPU, which is a Ryzen 2700x and I use blender 2.82. The scene is a desert render with an animated person walking. The desert has a subsurface material set to adaptive. There are only about 200.000 faces. Does anybody know what’s up with the ram and why my render freezes?
Thanks in advance

Blender will use as much RAM as it needs to render the scene, until your system cannot provide those resources any more.
Usually, when the program needs more ram than installed on the hardware, the operating system will resort to "virtual memory", where the operating system will use a paging file (or "swap") on a hard drive to store the data that doesn fit in RAM anymore, not only slowing things down, but potentially crashing if the paging file is not large enough or gets currupted.
You have at least 4 choices:
Be patient and let the computer work, and crash and start over.
Or simplify/optimize the scene to match the limits of your hardware,
or add more memory to the system to meet your desired output,
or use a render farm or cloud computing.

As to why the specific scene you are trying to render is pushing the computer to the edge, there could be multiple explanations.
Subdividing can easily create a number of vertices that become unmanageable. The size of textures will have an impact on the resources available. Particles and simulations, deformations, moving armatures they also need heavy computing power, the number of samples, the size of the tiles, final render size, denoising and compositing will also need to RAM and CPU time. So start investigating how you can minimize/optimize the scene so that you can get something out of your computer.


Bevel isn't working on the "walls" that I just modeled Bevel isn't working on the "walls" that I just modeled. I can add it but there seems to be no effect, even if I cranked up the settings. Still learning Blender.
My blender file .
or try this link

You need to AltM > Merge by Distance in order to get rid of overlapping vertices. In the Operator box (bottom left of the 3D view) put the factor at 0.001, you'll see that it will delete a lot of vertices (bottom right of the blender interface). Now bevel operation or Bevel modifier will work.


"'Context' object has no attribute 'active_object'" error when trying to use function as driver import bpy

def driver_func(val):
    activeobj = bpy.context.active_object

    if activeobj.name == "A":
        output = val * val
    else:
        output = val + 20

    return output

#add function to driver_namespace
bpy.app.driver_namespace['driver_func'] = driver_func

Thanks to RJG for the improvement.
This script indeed runs in the scripting editor without errors, but when I
add driver_func in the driver's editor as scripted expression to an object's transform (e.g. z-rotation) I get ERROR: Invalid Python Expression ...

The terminal message reads:

Traceback (most recent call last):
   File "<bpy driver>", line 1, in <module>
   File "/Users/.../Test.blend/TestPython", line 4, in driver_func
AttributeError: 'Context' object has no attribute 'active_object'

You could enable Use Self in the driver editor to get access to the object that the driver is used on. Then you would need to modify the arguments passed into function and use self to check for the name instead of trying to get the active object. The modified script look like this:

import bpy

def driver_func(self, val):
    if self.name == "A":
        output = val * val
    else:
        output = val + 20

    return output

#add function to driver_namespace
bpy.app.driver_namespace['driver_func'] = driver_func

Modify the expression to driver_func(self, var) or replace var with whatever your variable is called. Be aware that your current script increases the value very quickly.

I'm not an expert at Blender's drivers, so if somebody more experienced has a better solution, feel free to add another answer.

Alternatively you can access the active object through bpy.context.view_layer.objects.active as you've pointed out in the comments. Then the script would look like this:

import bpy

def driver_func(val):
    active_obj = bpy.context.view_layer.objects.active

    if active_obj.name == "A":
        output = val * val
    else:
        output = val + 20

    return output

#add function to driver_namespace
bpy.app.driver_namespace['driver_func'] = driver_func


Is there any way to make random areas of a mesh trasparent? I am currently making clouds and I was wondering if I could be efficient and make one cloud and let the computer randomly choose where it could make it transparent or do I have to make multiple meshes?

Create a texture (like clouds, voronoi or musgrave or even an image texture) and have that texture control the mixture between the base cloud shader and a transparent one. Additionally, you can use a color ramp to control the contrast on the texture.

A more computationally intensive approach to making clouds, would be to use a texture to control the density of a volume scatter shader connected to the volume socket of the material.


Deleting Objects With a Mass or Surface Area Less Than I have imported a 3D model from another program that I use to CAD. The CAD program I use creates these circular artifacts within the model and there is no way to remove them in that software.

I'm hoping to make some renders of this object in Blender but I do not want these little circles showing up.
Is there a way to remove a lot of objects at once based on their mass or surface area? Because they are the smallest objects in the scene, ideally I'd like to find  a way to just type in a number that whatever is less than or equal to that (mass or surface area), they would get deleted.
Each object in the scene is its own part I have tried to see if there is an order in the Outliner but it is all random so there is no way to select them manually since there are over 3,000 of them.

Join objects together Ctrl+J
Select one small face and search for Select Similar > Area (listed for Face select)

If you want to keep objects separated, just select all needed objects and switch to Edit mode and search for similar ...


Geometry Nodes and Exporting (Creating a mesh) in Blender 2.92 I'm trying to export Geometry Nodes geometry to an FBX.
When I import the file elsewhere, though , there don't seem to be any normals associated with the Geometry Nodes object.  Typically, I'm able to import modified geometry using traditional modifiers just fine, but nothing doing with Geometry Nodes, despite them living inside the "Modifiers" tab.
Even trying to apply the modifications is problematic.  If geometry nodes are applied to a Point Cloud, then Apply just gets me a "Cannot Apply Modifier" error message.  If they're tied to a mesh, then Apply causes the generated geometry to disappear altogether.
I'm very new to Blender, so it may be that I'm just butting up against my own ignorance, but I have been searching for some kind of answer for hours with no luck. Many thanks in advance.
Node Tree :

Download Blender File

Ok, after filing a bug report with Blender, I got a partial answer from HQ.

To get the instance geometry from the modifier, use the "Make Instances Real" operator. Applying modifiers on point clouds isn't supported yet.  For the other parts, we have this task: T85281.

This doesn't seem to directly address the export issue, but it's a start. For more info, head over to Task T85281 : Support piping legacy modifiers with the geometry nodes modifiers.


Mesh won't connect to bone! I worked on rigging this character for a very long time but once I was done (with cntrl+p and automatic weights) and went to Pose mode but only the bones move, not the mesh.

Here's the Dropbox link: https://www.dropbox.com/s/hjxk55abqc4ss84/fail.blend?dl=0

I looked into your file and it appears you may have accidentally deleted your character. This is very easily done by an accidental pressing of 'x' followed by a left-click. This has happened to me many times. My recommendation is that you try undoing the change. Your trouble with armature may be due to the fact that the automatic weight painting did not work and you need to weight paint each bone individually. Hope this helps.

Just a note for next time: please post a direct copy of your .blend file rather than a dropbox link. Thank you.


Is it possible to slice a 3d object into many 2d images? I made a script that turns images into Minecraft .schematic files so they can be imported as pixel art. A simple modification would allow it to use several files stacked up to make a 3D object. The issue is making all those images.

Is it possible to "slice" a 3D object (3D-printer style) into many 2D image files?

For example, slicing a sphere would give many individual image files. When played as a slideshow, they would show a circle expanding, then contracting.

It is absolutely possible to do this and I just covered the method in my upcoming book on OSL, in order to address volumetrics (given the pending support of OpenVDB or Field3D for them). It isn't exactly a menu option so much as a technique, but I suppose it could be worked into a plugin at some point.
What you'll want to do is set your scanning camera to face straight down (0, 0, 0 rotation) and put it at location (0, 0, 1). Scale your scanned model down to fit within the (-1, -1, 0)-(1, 1, 1) range. (Basically you'll want your setup to map every single slice of your mesh, and this is the active area for it.) You will want to set that camera to orthographic mode (not perspective) and set its orthographic scale to around 3.0; you may need to tweak this for the sake of your geometry.
Next, you'll want to add a cube to your scene matching that (2.0, 2.0, 1.0) scale, and make the following modifications to it. Set it to bright white, and go into edit mode. Add two slices to the cube with Ctrl+R and then rolling the mouse wheel up, left-click once, and then right-click to use the default adjustment. You'll want to scale them down along z to match your slice width. We're going to call this middle-of-sandwich space the "aperture". Then, select all four internal faces, and delete them; then (F)ill the space left between the edges of your two remaining capping shapes. The gap should typically be very narrow, you'll want it to be roughly 1.0/(number of slices) in height.
I've enclosed a picture of my general setup here.

The total number of frames rendered should be the number of image slices you want to get.
Now, you'll want to animate the aperture box to go from a starting position at (0.0, 0.0, 1.0) to (0.0, 0.0, 0.0). It should start moving at the beginning of your animation, and stop at the end, on a linear interpolation. Note that your aperture itself should be right on the shape's origin, and directly over the (0.0, 0.0, 1.0) coordinate; otherwise you'll have a skewed scan.
Lastly, you will want to add a Boolean modifier to your mesh, set to Difference mode, with your new clipping cube selected as its object. Here, I've called my modified cube "Clipping". That's effectively what it's doing—the only part of your mesh which will show in the render is the part that's between the two sandwich-slices of the cube, right on the aperture. Everything else is ignored because of this specific modifier.

Now, all you need to do is go to Output Properties and under the Output tab, give it a proper directory (since this is a whole array of images, I suggest a specific single-purpose directory per render). Choose your favorite image file format, and render. You will get an even-stepped set of images, of effective voxel size (2.0/[image width] x 2.0/[image height] x [aperture height]).
Obviously this method is extremely adjustable and tweakable, but this has worked for everything for me so far. The only modification you might need to make is the color of the background, and if you want specific diffuse colors you'll need to map them directly to the surface output in a shader. (Don't bother with emissive or diffuse shaders, just plug the color in directly—unless you want bloom screwing your image up.) By default, this is black on white. And—admitted shameless self promotion here—if you're interested in the full run-down and are interested in learning OSL, the book is "The Warrior Poet's Guide to Open Shading Language", completion and publication pending on Amazon. I'll have my actual Blend file on a public git repo eventually.
My general usage is to create a 3D coordinate space for volumetrics, where S and T map to image coordinate and P to image name. (STPQ is UV, when you need more than two dimensions, so it doesn't bump into W, which would be confusing and annoying.) Handy when you want to, say, map a shape onto a rendering of a cloud, or a liquid volume.
The thing to remember about Blender is that it's effectively a full-featured Python IDE at this point. There isn't a heck of a lot that can't be done with it anymore, if you've got the time and motivation to dig.


Fill a wireframe with a material? I would like to make a wireframe solid when using a specific Material and be a wireframe when not. Right now I have a normal Wireframe:

And I would like to have it look filled with the same color, but a different material:

This is just in edit mode but I would like to have it look like this. I found something about this already but since I'm fairly new to blender I don't understand what they do at all. How to make a material switching from Wire frame material to surface material?

I will keep on trying to understand what they are doing, but if there is a better way to do it, please let me know.

I guess you are using the Wireframe modifier. Instead use the Wireframe input Node to affect a Mix Shader Node

Here we have a Diffuse BSDF Node (Red) and a Transparent Shader mixed together. Without a Factor they will blend together to a pale Red.
With the Wireframe input as the factor only where the wireframe exists is Red, everywhere else is 100% transparent

As the geometry is not affected another material on the smae or duplicate object can be just solid.


Automatic weights affect opposite side of the pants Ok so I'm having this problem where i have these pants and i want to link them via mesh deform but when i try to apply automatic weights and even bone envelope weights, the bones will affect the opposite leg. So for example, i apply automatic weights to the right leg, and the heat map will go on the left leg. Does anyone have a reason for this and possible fix?

I found out what was wrong. Apparently I did have negative scaling. I just scaled the pants on the x axis until it flipped itself and now I've got proper weighting with bones.


hard self collision: make particles occupy space By default, Blender's particles don't have any spatial extension. This is fine as long as particles are rendered as halos. But if you give them a size and an appearance as object, it becomes obvious that they're able to go through each other.

What tricks can be pulled off to fix that problem?
For example, if you want to fill an area with houses, toss some leaves onto the floor, or just want charged balls to stick to each other.

I'm aware that a precise solution of this problem is very challenging -- but already some kind of approximation would do in most cases.

one partial and approximate solution is to use the harmonic forces as a self-effect on the particle system. Here, "harmonic forces" means to turn the particles into a set of oscillators, connected by virtual springs. The rest distance is the distance we want to keep between objects.

The key point to note is that this now adds an attraction for particles spaced wider than the rest distance, and that it might lead to wobbling. The latter can be controlled with a high damping factor (at or close to 1 gives us "acyclic damping"). To control the former, judicious use of the maximum distance and the strength and power of the force field is necessary. The result can be further improved by use of charged particles (so they repulse each other) and maybe combine that with invisible, charged objects as external attractors.

Downside of this approach is that the self effect on particles is limited to two forces and that getting the right behaviour can be tricky and insidious.
But the largest shortcoming is that there seems to be no way to tie the rest distance to the actual size of the particles, which might vary randomly


Setup a decal material in cycles I'm trying to setup a image decal in cycles, and I can't figure how to setup the nodes to work fine. Does anyone know the solution?

blendFile

Just have to plug the alpha value of the decal into the factor socket of the mix node. Hope it is useful for someone in the future.


When and when not to use subdivsion surfaces? I am new to 3D modelling and wondering if someone could break down when and when not to use subdivision surface modelling. I am thinking more in terms of hard surface stuff. Why wouldn't you always just use a subdivision surface as it looks to me like it produces nicer looking models.

I understand how they work and the way you can make edges catch light and so on. It's not an explanation of this I am after.

For example, I've watched people model realistic architectural visualisations and they won't use subdivision surfaces for the table tops or windows, even though in my mind wouldn't it create more realism to use a subdivision and have the nice edge catching light.

Or

Lot of props, building and cars for 3D renders or games and stuff seem to not always use subdivision surfaces. Is this because of poly counts or because it's easier to get good topology flow without the subdivision or maybe something else?

I realise that it's probably personal to each individual modeller and their preference, but was hoping to maybe get some peoples thoughts on this.

Cheers!

Sub-d surfaces generate a parametric surface with "infinite" quality that are easy to adjust (shifting holding edges, changing creasing,..), but this is what you pay with:

polygons are subdivided everywhere, even where detail is not needed (this is not true for adaptive subdivision)
most of the times the surface is not perfect:

Adding detail will pull the surface closer to the control mesh altering the original shape. Either the control mesh has to be dense enough to start with, or has to be projected with Shrinkwrap modifier back to the original surface. The first requires too much geometry to comfortably work with, the second does not produce perfect result anyways, it only lessens the issue.

It's always about quality vs. time (both render and production). If you can get away with beveled mesh, that's the method to use. If the mesh is not too close to camera, you cannot tell if it has been beveled or was sub-d modeled. Also the Meshmachine addon makes adjusting bevel easy like changing creasing on sub-d mesh (sometimes you find out you would like to catch more/less light on that edge after-all).

Imho the best hard-surface technique is to use sub-d and Modo's MeshFusion to get single shape with all edges rounded from procedural booleans. This offers great flexibility and exactly accurate results. You can create complex shapes without the complex topology and without the inaccuracy. Drastic adjustments are very easy to make.

Houdini has this addon for soft booleans and Maya has the Hardmesh addon for the same workflow.

There is also a Blender addon in wip state called Bevel after boolean, it's workflow is destructive for now but looks very promising. Another approach in Blender could be to use shader utilizing the Bevel node, however this increases render time significantly.


Can't get a transparent background for glass I need to make the bottle glass transparent in eevee. I used Principled shader with transmission value set to 1 for glass effect.

Set Blend Mode in material to Alpha Blend and Shadow Mode to Alpha Hashed.

or try this:


How can I blend a moon/planet (textured sphere) into the background (procedural sky texture)? I've been trying to tackle this challenge for a week or two now and I'm still somewhat stumped. I am trying to create the effect of a moon or large planet seen in orbit from the surface during daylight, when the darker values fade behind the blue sky and the brightest values shine through.

I'm trying to make this effect with RenderLayers compositing nodes, which I still don't really understand compared to shader nodes. I know the solution should involve mix nodes and color ramps, but I haven't  been able to get anything close yet. I've tried mixing the environment socket of the layers node with the image socket in various ways but I'm still stuck. Can someone point me on the right path?

In the compositor, use a Color Mix node to mix the moon and the background. Set it to Add mode, so that only the bright areas affect the background.


How could I replicate this this collar How could I create this collar with the rigged effect? Is it something as simple as extruding faces on the jacket? Or is it more complicated with nodes?

You could use normals to fake the stripes:
Create a plane, subdivide it, bump it, create a second plane to bake the first one:

Use the normal map to fake the stripes:


Boolean difference acting like union (checked normals, doubles, and manifold) I'm trying to perform a boolean difference to cut a piece out of this treasure chest lid to change to a pop-in hinge:

The model is an STL from Thingiverse. I created a shape that I want to cut out of the lid in Fusion360, exported it as an STL, and imported it into Blender:

I lined them up in Blender and then added a boolean difference modifier to the treasure chest lid, setting the cutting shape as the object to subtract.

Instead of cutting a piece out of the lid, it looks like it performed a union instead:

The original cutting shape is hidden, so what is visible here is the result of the operation. It looks like it unioned the two shapes.
I checked all the common reasons for problems:

Normals - Normals look fine when I show them. To be safe I opened each object in edit mode and did Mesh > Normals > Recalculate Outside. No change.
Duplicates - I attempted to eliminate duplicate points using Mesh > Clean Up > Merge By Distance for each object. No change.
Non-Manifold Geometry - When I go to Select > Select All by Trait > Non Manifold, nothing is selected for either object.

What else could be causing my boolean difference to fail? What can I do about it?
Here's a Dropbox link to the Blender file.

Your treasure chest 113Mb blend file was to large for my machine to handle you may want to "clean up" the STL before you upload files. Do a "Limited Dissolve". http://youtu.be/-OynHqYd_1I
Blender stackexchange has it's own file attachment system to help prevent files being "lost / moved" http://blend-exchange.giantcowfilms.com
Also are you going to 3D print this out? if so there's certain offsets when doing a Bool cut you need to take into account. Like making the cutting object about 0.2mm larger.
Are you using Blender 2.91? The "Bool Tool" using the Exact option may also help.
Here's an animated gif of the process using a box and your lid cutter.


Walls - Terrain modelling interactions I'm modelling a run-of-the-river power station which involves modelling several canals and intakes.

besides right now I'm trying to put some retention walls in a terrain in a way like this:

So, at one side of the wall the terrain has some altitude, and in the other side, a different one

This has come to be a little troublesome because I think using boolean modifiers (to produce the intersections) is a little messy and tricky in Blender, and I don't need a watertight or non-manifold model (I'm not running any simulations over it) I just want it to look right.

I was thinking, that if I think of the terrain as a sheet of paper, I would make cuts and displace up and down one part of the paper, and place a "wall" in between the cuts...

What would be a clean equivalent to this in Blender?

Like many (most?) things in Blender there are multiple solutions to any problem, and this challenge is no different. The decision on which method to use will largely depend upon underlying geometry, you need, what you plan to use the project for, what future use you might want to make of the geometry later, and at what stage you are at in the development of the project.

I've actually modeled bits of terrain where I was modeling actual parts of the US. The technique I like best so far is to start with a "circle" with four vertices, subdivide the edges, so that there is one vertex at each point where a contour line crosses the edge. I then extrude from vertices (or sometimes pairs of vertices, looking elevation to the vertices on the opposite edge. Then I fill the faces. In this method, the retaining wall poses no particular issue; the land above is at one elevation, the land below is at another. Depending upon the nature and construction of the retaining wall, I would either construct it as part of the terrain, or model it later with another object. Whether or not I would merge the retaining wall with the terrain would depend upon a number of factors. I can easily imagine instances where I might combine the retaining wall into the same object as the terrain, but generally would keep it separate.

Ive uploaded a simplified explanation of my general workflow here, along with a ~.blend file that illustrates the various steps. The first step is illustrated in layer 2, the second in layer 3, &c.

In my workflow, I would be unlikely to use a boolean modifier on the terrain, because the workflow I use would simply bypass any places where I would a boolean modifier.


How to recreate the spaghettification process around blackhole in blender? I have been using blender from about a year and working on Blender for 3d Scientific Animations. I am very much fascinated about how NASA and ESO create because of animations of Astronomy. Can they be created using a blender?
In this thread, I am specifically asking about the latest ESO animation:
https://www.youtube.com/watch?v=AKCp-1OGGP4
In this animation, the star is ripping apart and the black hole is eating it. How can I stretch the sphere like this in the blender?

This sounds like a job for the lattice-modifier!
Outside of the funnel-shaped lattice, the sphere is undeformed...

...then it gets sucked in...

...and spaghettifies!

Make the lattice a bit more detailed and curved, and you should get what you need.
The accretion disk and jets can be made with particle systems. As for the gravity-lensing, there are quite a lot of tutorials out there that deal with making "Interstellar"-like black holes


How do I transfer my high poly sculpt to my low poly retopo mesh so I can paint it? I'm a mega beginner, so I'm not exactly sure how to word my question to find good answers. I have been looking through videos and forums but I don't even know what it is I need? I just know I want to be able to paint this, and a high poly sculpt needs to be 'baked' (right?) onto my low poly retopo. I don't know where to go from here, please direct me to the right area. Maybe a short rundown/summary of the process would suffice if it's too complex to explain and I'll look up and research it, I just know what to look up or what do to at this point.
Here is what I have so far.
This is the whole thing, high poly sculpt is the head, the rest is low poly (minus the hair I guess)

This is it with no hair so you can see the high poly sculpt better.

And here is my very first retopo attempt lmao.

Please help and thank you so much

Your retopo attempt is looking fine. Try to Shade Smooth (right-click in Object Mode) and it should look much smoother.
You have created a low-poly mesh (step 1c, see below). If you want to animate/pose the character, you will also need to retopo the body or use a base body mesh and add the head to it.
Next, you can add a MultiRes modifier if you want and then start texturing.
A common workflow the following:

use a low-poly base mesh to form the shape of the character. This can be done in Sculpt Mode or Edit Mode. You have several options here:
a) you can use an existing base mesh and shape it in Sculpt Mode
b) OR box model it from scratch (Edit Mode)
c) OR sculpt it from scratch. The result is a high-poly mesh and you need to do a retopology to create a low-poly version from it.

optional: add a Multires Modifier to add details like wrinkles for the face, collarbones, scales, wrinkles for clothes, etc. You can transfer the details from your sculpt that you did in 1c with a Shrinkwrap Modifier.

texturing / texture baking
a) bake the Normal Map from the Multires Modifier OR bake it from the high-poly sculpt (1c) to the low-poly version. The purpose is to have a low-poly mesh but with the details of the high-poly/MultiRes version. (Low-poly + normal map == high-poly)
b) block out the base colors (Diffuse color) with a basic node setup (Ambient Occlusion and Pointiness). These nodes only work in Cycles. Baking them makes them available in Eevee and speeds up rendering
c) do a paint-over to adjust the colors. Add face color zones, make-up, etc on an extra image and mix it with the baked base colors (try MixRGB modes like Mix, Overlay, Multiply)
d) paint a Roughness map
e) optional: bake the final textures (to speed up render time and for export to game engines)


Deforming a modified Mesh to Match a sculpted Mesh with an extra Subdivision applied I want to add some detail to my model using the Multires modifier, sculpting and then baking it to a normal map and applying it to my simpler mesh.  Before I did this, I stupidly applied the basic subsurface modifier (with a factor of two) that I had already added to my mesh, so now it had all these extra vertices.

Of course my thinking was, "I'm just going to create a multires mesh and bake the normals back to the original model, so it doesn't matter if I apply my subsurf modifier and add a hard 2 extra layers of subdivision."

I haven't worked a ton with sculpting and multires, and I'm much better for the experience, but I figured out as I went along the reason this turned out to be dumb.

I ended up making a few significant tweaks to my character through the sculpting process, pushing them outside of a reasonable change to be recorded in a normal map.  It was only when I went to apply the changes to the base mesh that I remembered that I had applied the two extra layers of subdivision, so my base mesh was still higher res by a power of 4.

I of course still have a copy of my base mesh without the subsurface levels applied, but I cannot use the "Reshape" option by adding a multires to the original mesh because the two meshes have a different number of vertices.

Right now my compromise will have to be to bake the normals, edit the normal map to remove the areas that are significantly different, and re sculpt those changes the proper way.

However, I'm hoping that there might still be some way to displace the original mesh to align with the vertices of the modified mesh, as they are 90% the same.  I thought maybe the skin modifier?  I'm going to toy around with some ideas now, but hoping maybe someone will have a quick and easy solution in the meantime, or in case I can't figure it out.

Thanks a bunch!

Shrink Wrap Modifier

Hi Blazer, sounds like you have a good workflow going for your project, and it sounds like you're currently looking for the shrink wrap modifier. You can add the shrink wrap modifier to the lower res object, and then in the target field, add the name of the multires object. Before you add the shrinkwrap modifier, you may also want to put both objects in the same xyz space on different layers, and enable the xray option on the lower res object. In a sculpting/retopology/baking workflow, the shrinkwrap modifier is great tool.


How to change the shadow color in Blender Cycles? I want to change the color of the shadow casting by a cube to green. While it's very easy to do it in Blender Internal (you select the lamp, go to the Lamp data header and change the shadow's color in the Shadow panel) in Cycles there're no such options. How to achieve it in Cycles?

With the Cycles renderer enabled select the cube, give it a new material and set the material nodes as pictured below. Use the Is Camera Ray of the Light Path node as a factor for mixing the Diffuse and Transparent nodes (Is Shadow Ray works good as well).

Change the Hue, Saturation and Value values of the Transparent shader to change the shadow's color, intensity and transparency.

Here's the animated test using the changes mentioned above:


Modeling question - twist/bend part of a mesh Modeling question - twist/bend part of a mesh

Is there a way to twist/bend part of a mesh like this? I tried the Simple Deform modifier, but didn't really get a good result. Any suggestions?

Great method for shapes like that is shown here in the picture. Here is what you have to do:

place 3 profile (can be more) meshes depending on what form you want. Profiles must have the same vertex count.
join all the parts into 1 mesh.
with profiles selected press W and then 'Bridge edge loops'.
check 'Tools menu (T)' for more options if you need.
apply subdivision modifier.

You can see the result in the second picture. This is similar. For your case you must adjust the placement of the profiles and then adjust the 2nd. profile to match the one you need. I think you will need 4 profiles to get an accurate result.


Matrix won't stay on my plane Hi i need help on making these cubes stay on my plane, the location part is easy to do, but the rotation only rotates on it's bounds, not the group's bounds

any way i can fix this?

You can use Transform Matrix node to rotate whole matrix list.


Why are the instances on the right side turned 90 degrees? The instancing objects were mirrored over so they should be identical. The rotations are all 0 0 0.

If you are using a mirror modifier then the particles may not work properly until you apply the mirror modifier.


How to update a custom property value modified by script? I have a custom property that controls two shape keys. When I type bpy.context.object.pose.bones["Bone"]["prueba"] = 1.0 in the console, the value changes but does not affect the shape keys. If after that I click on the value slider of the property it updates the changes. What can I do to solve this?

You might have to force a frame change to get it to update.

   bpy.context.scene.frame_current += 1


Using shrinkwrap doesn't wrap the object correctly I'm trying to add my logo design to a shoulderpad of a miniature.

I imported a .svg file (my logo) and a existing .stl of the shoulderpad.
I transferred the .svg logo to a mesh object.
I added a lattice to the logo and made it flat and the size of the shoulderpad.
I added a shrinkwrap to the lattice and linked it to the shoulderpad.

 This is my result, logo show's on the inside of the shoulderpad and isn't realy wrapped around the curved outerparts :(
What am I missing? Do I need to add different settings to the shrinkwrap?

If your logo has only one face, it can't bend/shrinkwrap on a curved surface. Add a subdivision modifier to the logo so it creates more geometry, allowing it to bend. I would also try adding the shrinkwrap to the logo instead of the lattice.


I'm trying to learn Blender to animate. Am I doing it right? The idea of making 3D animations to tell stories has always been attractive to me. Yesterday, I decided to stop hesitating and began learning to use Blender. I am using the YouTube channel tutor4u's tutorials on how to make an alarm clock and how to animate it. I hope to achieve a basic idea of modeling, so then I can make models to animate, which I also hope to learn. I also plan to learn shading and coloring to make it look nice. So far, it is going smoothly, but I feel like as soon as I finish the tutorials, I'll be stuck, and anything I want to make will still be too complex. Simply put: I feel like I'm going to run into a wall trying to learn Blender. Am I worrying too much? Am I learning Blender right? Where do I go after a few tutorials?

Side Note: I'm not asking specifically for tutorials. I'm asking for the most efficient way to learn Blender. I think adding the name of the tutorial I am using would be relevant.

Yes, you are doing it right. It's kind of like learning to walk, starting with support from another person. The first time they let you go, you will fall. Get up again and continue trying.


Why can't I use "GeForce 9500 GT" for GPU rendering with Cycles? So I have an "NVIDIA GeForce 9500 GT" GPU and I have installed CUDA so the viewport of the blender is working with this GPU, but when I try to use it for GPU Computing (GPU Rendering with Cycles), both with CUDA, OptiX and OpenCL it says my GPU isn't compatible and uses the CPU for rendering.

The GPU's Capabilities:

Video Memory: 1GB
DirectX 10
OpenGL 3.3

How do I fix that and have faster renders when using Cycles engine?

The NVIDIA GeForce 9500 GT is from the GeForce 9 series, which doesn't fulfill the minimum requirements for Blender 2.8x.

  Supported Graphics Cards

  NVIDIA: GeForce 400 and newer, Quadro Tesla GPU architecture and newer, with NVIDIA drivers (list of all GeForce and Quadro
  GPUs)

  CUDA

  CUDA requires graphics cards with compute capability 3.0 and higher.
  To make sure your GPU is supported, see the list of Nvidia graphics
  cards with the compute capabilities and supported graphics cards.
  CUDA GPU rendering is supported on Windows, macOS, and Linux.

It's therefore neither supported for GPU rendering, which requires CUDA compute capability 3.0, nor for running Blender in general. The latter may still work, however given that old hardware doesn't receive driver updates anymore, you may be experiencing graphics glitches or crashes. The latest driver available for the GeForce 9 series is from 2016.


Radial wipe using mask modifier I have an animation of a needle going from left to right. So as the needle Animates in a semi circle, the Mask follows the animation of the needle revealing the background image. The problem I'm having is, the mask is awkwardly animating, stalling, & having parts of it delayed, the transition is not correct or smooth. I have a file to share which could make it easier to understand if someone can have a look at it.

Another way to do it would be to use the Screw modifier:

Create a simple edge, move it away from its origin:

Give it a Screw modifier, play with the Angle value:


Blender Python Data (equality works between instances, identity not) In the first example, a is b returns True as it should. In the second, it is False. (assume Blender is just opened and the default cube is present and selected).  I thought I was starting to understand until I got False.  This is copied form the Python console.

>>> a = [1, 2, 3]
>>> b = a
>>> a == b
True

>>> a is b
True

>>> a = bpy.context.active_object.data
>>> b = bpy.data.meshes[bpy.context.active_object.name]
>>> a
bpy.data.meshes['Cube']

>>> b
bpy.data.meshes['Cube']

>>> type(a)
<class 'bpy_types.Mesh'>

>>> type(b)
<class 'bpy_types.Mesh'>

>>> a == b
True

>>> a is b
False   # WHY?

Another example based on @ideasman42 explanation...

>>> a = bpy.context.object
>>> b = bpy.context.object
>>> a is b
False

Each time you access object.data it will return a new instance,
however this is a very small data type to access the real mesh data stored in Blender.

Equality works as expected (and they have the same __hash__), so you can put them into dict/set types. You just can't rely on identity. (As with any 2 strings with the same content).


Can't flip pose properly blender Pose reverse fails, tried to rename some bones to check if there's a problem but it didn't change anything. Here's a gif:

When you paste a mirrored pose, blender does the the following:

Mirror each bone's transformation in local space across the the YZ plane, this means that say a movement of 1 on the X axis will become a movement of -1 in the X axis.
Apply the mirrored translation of all bones that match the mirror naming convention or the original bones

Step 1 is probably the bit that is catching you out here, if the initial positions/rotations of the mirror bones are not a mirror, then the copied pose will not create a proper mirror.

In order to fix this, you need to go into edit mode and make sure each mirror bone is in the correct mirror position. The easiest way to do this is to enable X-Axis Mirror in the options section of the 'T' panel and then select one half of your armature, and press G then Enter to apply a translation of 0 to them. The mirror option you enabled will then snap the other bones to the correct mirror positions.


How can you scale stairs to decrease per step? Hello, i am buliding some kind of gate or portal. I used the Array Modifier on a block to get stairs and wondered if there is a way to make it decrease per every step. I want the stairs to get smaller to the top.

Add a "Simple Deform" modifier. Then select "Taper" and check either "Lock Y Axis" or "Lock X Axis" . Then adjust the "Deform Factor"


Cannot rotate or scale imported .obj from Sketchup Have tried to import this .obj into Blender. Cannot rotate or scale the object itself like other objects I have imported.

You may have accidentally lock your transformation here? If not upload the file so we can look into it? Another reason why models can't move is that it's a child of a parent object. If the vehicle comes with a rigged system ... I believe it could be the problem. You can try to break the parent-child link by Hitting the Alt + P and select "Clear Parent"

Clear Parent Menu


Logic Editor - only selected objects of Layer 1 are showing I am using 2.79a RC. (unfortunately also true as far back 2.78a)

Unless all my objects are on Layer 1, there is no way for me to select and view multiple objects in the logic panel.

Is anyone else able to confirm if this is bug or desired behavior?
And possibly provide a workaround?

This image is all objects in the scene selected. Several of them have logic bricks attached.

This image is the same file, I just moved everything to Layer 1 with M

To be able to select/link objects from layer 1 and 2 for example, both layers must be active.
You can select multiple layers by holding down the SHIFT key and selecting individual layers to toggle them on/off.
Use the same SHIFT method to select individual objects to link logic-bricks to and fro from the desired objects.


Where can I find the diameter of my object? I imported a file of a globe into Blender and would like to 3d print it on a friends printer.  I would like it to resize it so that I can send him the file, and the globe will be 2.5 inches in diameter when printed.  O can't find out where that info is though.

You can change units scall into the scene menu:


Voronoi Texture Node with differing options I am following this tutorial: https://www.youtube.com/watch?v=zJGphR_LBoM
When he adds a Voronoi Texture as displacement, his Voronoi Node looks like this:

but mine looks like this

I've double checked it a dozen times, and I am now quite sure that it got updated or changed, so how can I correctly pattern to Crackle?

Voronoi textures work by scattering points and connecting their edges to form a kind of mesh, then generating patterns based on distances within that mesh. The crackle pattern is created by measuring how close a shading point is from one of the edges. This results is a pattern of cracks following the random layout of the "edges" of the point mesh.

So to get the crackle pattern, you should first set the node to "distance to edge"

If you need an actual hard-edged crack pattern rather than just the distance to the edge, you can use the math node set to "greater than" to find areas that are more than a specified distance from an edge:

Finally, since this example uses a plane with UVs, you can change the texture from 3D to 2D. This will prevent the pattern from getting thicker where it intersects corners of the pattern in 3D space.


Creating a material similar to the art style of Gareth Davies @spudonkey I am working in blender to create assets and sprite sheets for a project i'm coding for school. I was going for a pixel art look until I stumbled across the work by Spudonkey. I'm looking at shadeless texturing and vector painting.(Probably going to be much flatter in colour than the work below). I just want your input on what node setup, engine and if its possible to get away with little splashes of colour and scratches without painting textures. My model is currently under 11000 tris, this is why i want to avoid textures because of sharp edges.

Firstly, you can try Edge nodes. http://blendernpr.org/edge-node-v1-2-4-july-2015/
I haven't tried it  myself but I think you can get the result you want.
If that seems too much of a hassle (which it probably is), I've managed to get the colors to be passable as an imitation. Of course you would have to improve this greatly. Here is the setup:

Play around with the noise and the mapping nodes to get diffirent color splashes. Also, it might be necessary for you to play with the Light path node in case the emmision shader's light is shown in other elements in your scene.
Hope this helps a little


Extruding a bone error I started to extrude a bone for the other arm but this happened.  What's going on with it?

Blend file

You have Skeleton Sketching enabled.
Disable this option and use E button to extrude the bone or Ctrl+LMB while the torso bone is selected.

To make the bone symmetrical on the mirrored side, after you extrude the bone enable Forked in Extrude Operator panel while you have X-Axis Mirror enabled


Clarifying Blender skeleton animation and OpenGL I'm looking into implememting skeleton animations. I use Blender to create the armatures, export them using the IQM file format (Inter Quake Model).
My first steps are to make sure that I'm getting the right values in my openGL application.

I created a very basic model in blender:

When I print the local matrix of the root bone in Blender I see:

>>> bpy.data.armatures[0].bones[0].matrix_local

Matrix(((1.0, 0.0,  0.0, 0.0),
        (0.0, 0.0, -1.0, 0.0),
        (0.0, 1.0,  0.0, 0.0),
        (0.0, 0.0,  0.0, 1.0)))

Which seems to be a 90º rotation around the X-axis.
Why does the matrix_local of this particular bone given me a 90º rotation around the X-axis?

Another question I have is, when I convert this matrix to a quaternion in Blender,
I get (0.7071068286895752, 0.7071068286895752, 0.0, 0.0)
(w,x,y,z). Though when I create my own quaternion with a 90º rotation around X, I also get (0.707107, 0.707107, 0.000000, 0.000000) (wxyz), though when I convert that back to a matrix using my own math lib, I get:

1.00,  0.00,  0.00,  0.00
0.00,  0.00,  1.00,  0.00
0.00, -1.00,  0.00,  0.00
0.00,  0.00,  0.00,  1.00

It would be great if someone could clarify this a bit!

Thanks

A rotation matrix tells you what to do with the components of a vector indicating the position of a point.  For a rotation around X, a vector along X does not change.  At 90 degrees, a vector along Y becomes a vector along Z, and a Z vector becomes -Y.  Rotation about X causes Z and Y to intermingle.

The fourth row/column do not matter - that is an artifact of doing 3D geometry in projective coordinates. We sometimes call it 'w' and normally just set it to 1.0 and leave it there.  The thing being rotated is a vector representing a direction or position.

The rotation matrix does the rotating.  Generally, it intermingles components in a two-dimensional subspace, and leaves a one dimension subspace, the axis of rotation, alone.

Quaternions, in contrast, are better thought of (sometimes) as the thing being rotated. No, not rotated, but "acted upon".   For quaternions act a bit odd.

The First Quirky Principle of Quaternions is that if we want to deal with a rotation of (theta) degrees, we work on the quaternion by half that angle.

The Second Quirky Principle: instead of having three components like a vector, we add a fourth, conventionally called 'W'. We may call it the "scalar component".  All four components are involved when we "act upon" the quaternion in a way corresponding to some rotation.  I've taken to calling this action "Spotation" for "Spinor Rotation" - in quantum physics, we use "spinors" which amount to the same thing as quaternions.

Consider a rotation about X, as before.  The Y and Z components intermingle, as with a vector, but at half the rotation angle. That is, a 90 degree X rotation which would swap Y and Z (minus signs as appropriate) for a vector, will look like a 45 degree rotation has acted upon the Y and Z components of a quaternion.  (Does Blender S.E allow LaTeX?)

Y' = 1/sqrt(2) Y - 1/sqrt(2) Z
Z' = 1/sqrt(2) Y + 1/sqrt(2) Z

But according to the second quirky principle of quaternions, the "spotation" action intermingles the scalar 'W' component and the X component in a similar manner.

W' = 1/sqrt(2) W - 1/sqrt(2) X
X' = 1/sqrt(2) W + 1/sqrt(2) X

The exact algebraic rules for doing this were invented by Hamilton in the late 19th Century.

Generally, a rotation about any axis A will correspond to a "spotation" about the same axis A, but while a given vector that happens to be parallel to A will remain unaffected by the rotation, the corresponding spotation acting on a quaternion whose vector part is along A, will be affected.

We can relate quaternions to rotations by starting off with a quaternion which is pure scalar, that is,  w,x,y,z = 1,0,0,0.   Then some rotation R about some axis A by angle (theta) will act on the quaternion by converting the W component, being the only nonzero component, into a scalar + vector parallel to A.

Note that one consequence of the Two Quirky Principles of Quaternions is that a 180 degree rotation about any axis, which will just negate any vector perpendicular to the axis of rotation, corresponds to a spotation which looks like a 90 degree rotation. If the axis is along X Y or Z, it cleanly trades (with minus signs as needed) between W, Z, Y or Z.   This is a key point to why interpolation of orientation works so nicely with quaternions, as discovered by Ken Shoemake in the 1980s.  Negation of a vector does not offer any natural way to find a half-way point, but quaternions provide that nice hint.

Another interesting consequence is that a 360 rotation, easily confused with "no operation", corresponds to a 180 degree spotation - negation of all four components of the spinor. I mean, quaternion.  Two different quaternions describe the same orientation of an object.  That sometimes leads to some problems when animating spinning, tumbling, rolling objects, but easily fixed by flipping the sign of a quaternion somewhere in the timeline.

This also describes the strange antics of quantum particles such as electrons. As a theoretical physicist, I could blabber on and on about how all this arises from deep and beautiful mathematical relations between the rotation group in three dimensions, SO(3), and its double-covering group SU(2), and elegant math using "multivectors", and more, but that's getting off-topic for this site...

(Note: "Quirky Principles of Quaternions" is a phrase I made up on the spot just now, to avoid dealing with any real math. You won't find it in any textbook.)


Working with very large objects Hi so I was wondering I am thinking of making a space ship for my game but I would want it be rather large around 350m long and have versus floor so my question is , based on my understanding if I want to make that to scale in blender I would need to make it in separate parts ? or should I make it smaller and then enlarge it in my game engine ?

There is no need to make it separate parts due to scale, but it is probably wise to break something like a spaceship into different parts (depending on the level of detail...more detail = more parts).

If your game engine is Unity (and most likely even if it isn't), you will want to use 1m = 1bu (blender unit) or switch to meters here:

As NoviceInDisguise mentioned in the comments, you may want to adjust the clipping distance in the 3D view if you are working with unusually large or small objects.


Can blender be used to analysis the acoustics of a 3D designed room or hall? Blender supports ray-tracing for the visuals. Can this feature be used to support audio-wave propagation, delay and frequency response in a 3D designed room?

--HPS

E.A.R seems to be pretty much what you looking for
although it hasn't been updated for quite long
https://blenderartists.org/forum/showthread.php?252708-E-A-R-Evaluation-of-Acoustics-using-Ray-tracing
http://www.explauralisation.org/


Is there some way to increase the thickness of the outline around selected objects? I'm visually handicapped, and am finding it very difficult sometimes to see which object, of many, in a scene is the "selected" one as The line/halo surrounding it is very thin.

Is there a setting in the preferences that controls this, or perhaps a third-party plug-in?

You do this by changing the Outline Width value in your user preferences under the Themes tab. The maximum value is 5 so if this is still hard to see, you can try changing the color (look for the value Active Color in the same panel) or try adjusting the color of your viewport to make it more prominent.


How to get depth data using python api I know how to do this manually but I want to know how to do this with a python script. I was trying to use nodes to connect the z buffer to the output.
However, when I save this, the outputs are all 0s and 1s.

#switch on nodes
scene.use_nodes = True
tree = scene.node_tree
links = tree.links

# clear default nodes
for n in tree.nodes:
    tree.nodes.remove(n)

# create input render layer node
rl = tree.nodes.new('CompositorNodeRLayers')

# create defocus layer
d = tree.nodes.new('CompositorNodeDefocus')
d.use_zbuffer = True

# create output node
v = tree.nodes.new('CompositorNodeViewer')
v.use_alpha = False

# Links
links.new(rl.outputs[0], d.inputs[0])  # link Image output to defocus Image
links.new(rl.outputs[2], d.inputs[1]) # link Z-Buffer output to defocus Z
links.new(d.outputs[0], v.inputs[0])

# render
bpy.ops.render.render()

# get viewer pixels
pixels = bpy.data.images['Viewer Node'].pixels
print(len(pixels)) # size is always width * height * 4 (rgba)

# copy buffer to numpy array for faster manipulation
arr = np.array(pixels[:])
fname = "depth.npz"
with open(fname, "wb") as f:
    np.savez(f, arr)

Ok. I finally got the depth data by directly connecting the z data to the viewer node:

# create input render layer node
rl = tree.nodes.new('CompositorNodeRLayers')

# create output node
v = tree.nodes.new('CompositorNodeViewer')
v.use_alpha = False

# Links
links.new(rl.outputs['Z'], v.inputs[0]) # link Z to output

# render
bpy.ops.render.render()

And then I output the information into an npz file to be used within python

# get viewer pixels
pixels = bpy.data.images['Viewer Node'].pixels
print(len(pixels)) # size is always width * height * 4 (rgba)

# copy buffer to numpy array for faster manipulation
arr = np.array(pixels[:])
fname2 = "depth.npz"
with open(fname2, "wb") as f:
    np.savez(f, arr)


Why render time in blender is increasing 10 times after rotating 3d model? I'm rendering  this scene in cycles (blender) on GPU with GTX 780 3GB
In preview mode it takes about 2mins to render 2000 samples.

In final render mode it takes about 40 seconds

But i need to rotate scene and render it from different view.
After rotation the model, render time has been increased to 20 times (to 20 mins per a frame)

But in preview mode it still renders for 2 mins

what's the problem?
Problem appears only after rotating the object. If i moove the camera and NOT rotate the object it renders for 2 mins. But I need to rotate the object and not moove camera.

I've posted at Blender's bug tracker and it seemed for first look as a bug, but
Brecht Van Lommel (Rendering Software Engineer) explained:

  This is a typical issue with raytracers, many long thin faces along one direction are difficult to fit well in a BVH unless the faces are aligned to the X/Y/Z axis.
  Also, the workaround is to subdivide the object more so the faces are not so long.

After subdivision mesh along faces render time decreased much.

LINK to this discussion on Blender's tracker.


Manipulating lists of objects BGE I am having a hard time trying to manipulate the rotation of every object on a list:

import bge
import bpy

cont = bge.logic.getCurrentController()
own = cont.owner
scene = bge.logic.getCurrentScene()

keyboard = bge.logic.keyboard #Declare Keyboard
wKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.WKEY] #Declare Keys
sKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.SKEY]
dKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.DKEY]
aKey = bge.logic.KX_INPUT_ACTIVE == keyboard.events[bge.events.AKEY]
spaceKey = bge.logic.KX_INPUT_JUST_ACTIVATED == keyboard.events[bge.events.SPACEKEY]

wKey_rel = bge.logic.KX_INPUT_JUST_RELEASED == keyboard.events[bge.events.WKEY]

cubes = (scene.objects["Cube.3"], scene.objects["Cube.4"])
for x in cubes:
    if spaceKey:
        x.applyRotation((0,.1,0), False)
        cubes.append(scene.objects["Cube.5"])
        print(cubes)
        break

The thing is that it works, but it only applies rotation to the first object and if I use x[0:3] or cubes[0:2] it doesn't work at all. What I am doing wrong?

AttributeError: 'tuple' object has no attribute 'append'
You explicitly break your loop.


How to make wireframe mode in 2.9 look like 2.8's version Blender 2.9x version changed the wireframe mode and it personally is much harder for me to tell what I'm looking at. Previous versions have full wireframes and I would like to know if there is a way to change it  to look like 2.8x's wireframe. The 2.9x version wireframe is attached below.

Switch to wireframe mode, click the top right viewport shading dropdown menu and change the X-Ray value to your liking, the higher it is the higher the opacity of the wireframe will be.


Hair particles on hair particles I have a dandelion which has a head covered with object hair particles made of an object (seed) which also has particles on it and everything works as expected

But when I want to use the dandelion as an object to another particle system, seeds don't show up

If you know how can I make it work, help

Nested particle systems are not allowed.

However, you can get the same basic effect by pressing the Convert button on the modifier to Make Duplicates Real.

Then you can tick these options in the Operator Panel:

And press CtrlJ to Join the converted particles to their parent particle object.


Whats this weird crease in my subsurface mod? So I'm following a youtube tutorial for some character modeling and there's this weird crease down my center face line when I have the subsurface mod on. I've tried smoothing the verts but then my shape is too deformed. I've also tried to create some more geometry to make the vertex less "pointy" looking.
Here's a pic:

1 year later...
If you have a mirror modifier, make sure it's above the subdivision surface modifier (at least in Blender 2.7).


Field property? what is that? So in this video, he talks about making property some sort of "Field" for the new blender api
https://youtu.be/Mjy-zGG3Wk4?t=108

but what is that field? I dont find reference on any web page. seems like no one used that in the history of python?

Those are type declarations, and were introduced in Python 3.6. Blender 2.80 uses those to create the RNA properties. It was implemented by Campbell in 11 July 2018.


How do I remove test code that sticks to the Info Panel? I recently done some work on an app, "Goodies Menu" as you'll see. Every one of those items (add-ons) have some veryatation with their, which is why I suspect their is no where that I can find to remove them. I've be doing some searching for the following woods, (which left me know where). Goodies menu.py, pie_views_numpad_menu.py

!Blender\2.80[RC2]\blender-2.80.0-git.ac8c795429f9-windows64\2.80\scripts\addons\space_view3d_pie_menus\pie_views_numpad_menu.py

Reload Scripts.

Go to the python console and type in:

bpy.ops.script.reload()

Or press F3 to bring up the Search Menu and type Reload Scripts:

You will have to run any non registered script again to have a single menu.  I have this operator prepended to my py console and text editor areas.

Or temporarily tack it to top of script while developing.

It had the default keymap  F8 in 2.7x and prior.


How can I change the directory used to cache BVH? Is there any way to specify where Blender saves the BVH cache files? It seems that it always goes to a folder inside my user profile (in my case, on Win7: c:\Users\username\AppData\Roaming\Blender Foundation\2.70\cache). I frequently run into system warnings and slow performance because the BVH cache files quickly fill up the available free space on that partition (almost 10 gig). I've got plenty of room on other drives but I cannot find a way to change the cache location...

Is that a bug?

Related: Is caching BVHs also useful for scenes where animated characters are acting in a static environment? The status text at the top of the render view does not indicate that Blender is rebuilding the BVHs for every frame (it only says "Updating BVH for scene" - but this takes far less time than the building for the first frame). So I guess this means it's working as intended but why is it creating upwards of 5 gigs of cache even for relatively simple scenes?

From the blender 2.62 release notes

  For renders where only the camera or materials are changing, while meshes stay fixed, it is now possible to skip the sometimes slow BVH step, by enabling BVH Cache in the Performance panel. This will store the BVH on disk for subsequent (animation) renders of the same scene. Note that if the scene does change in the animation, enabling this option will make rendering somewhat slower.

The best way to tell if your mesh is changing is to render a few frames, if you get more than one bvh file in the cache directory then the mesh is changing and cache bvh probably isn't helping. Some simple tests can show that an armature deforming a mesh is considered altering a mesh and creates a new cache file each frame, the same as an object moving in the scene, but a camera moving through a static scene can make use of one cache file.

5GB of cache files sounds extreme, of note here is that blender doesn't appear to clear this cache out by itself, you may want to delete everything in your cache folder.

As for where it is saved, you should be able to delete the cache folder and replace it with a shortcut - be sure to call the shortcut cache. I know this works on *nix systems but should also work on windows.


Is there another way to make a coloured topography? I'm modelling an ear and thought it would make things easier if I could colour the topography. I did this using a texture mapped with a side projection (2), which looks exactly how I want it to look (1), but unfortunately I need to re-unwrap the UV after every adjustment. Is there a way to either update the UVs automatically, or to do the same thing using only nodes? Cheers.

You could try something like this:

This will render in the viewport using the blender internal rendering engine, with GLSL shading (under the "shading" section of the tools menu ("N") of the 3D viewport), if you set the viewport to Textured render (ALT+z).

The "Orco" geometry input works such that the highest point on the mesh (including stray/hidden vertices) along the local z axis is red, and the lowest point is blue. It will not update in edit mode; tabbing in and out will change it.

If you want the gradient along the y or x axes instead, just change the output of the "seperate RGB" node (working here as a separate vector XYZ node) to G or R respectively.

You may need to modify your model such that the local z axis is aligned with the same direction you want your gradient.

Hope that helps!


I don't want to render from the Video Sequence Editor As soon as I have a strip in the Video Sequence Editor it renders from that.
How can I choose between rendering from the Video Sequence Editor and rendering the actual Scene?

If you have any kind of strip in the Sequencer and don't want it to be rendered, then:
In the Properties' Render panel > Post processing > uncheck Sequencer


Convert vertex back to world coords (Python) I painted a circle into the viewport with Python, the circle has a center Vector (self._center) in world space.

I want to move the center vertex to the local x location 0.
So I tried to convert the self._center first to local values by using the view matrix that I stored and set X to 0:
vm = self._view_context._view_mat
v = self._center.copy()
v = v @ vm
v[0] = 0

Now I want to set the self._center to the new value (v) but in world space. Does anybody know how to revert it back to world space?

Guess I solved it like this:
rot_mat = self._view_context._view_mat

v = rot_mat @ self._center
v2 = rot_mat.inverted() @ Vector((-v[0],0,0))

self._center += v2