Type Error: 'expected class "execute" to be a function not a method' When Removing Poll i'm following a 2.79 blender python tutorial for beginners, under 2.83.2.  i'm having trouble removing the poll from the classmethod.  (is there a reason i shouldn't do that?)  this works:
class MonkeyOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.make_monkey"
    bl_label = "Monkey Operator"

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

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

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

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

if __name__ == "__main__":
    register()

...
but if i comment out or delete the poll lines, it throws this error:

line 61, in register
TypeError: expected Operator, MonkeyOperator class "execute" attribute to be a function, not a method

the execute is exactly the same as before. so... ???

You would have to remove or comment out the method including the @classmethod decorator:
import bpy

class MonkeyOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.make_monkey"
    bl_label = "Monkey Operator"

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

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

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

if __name__ == "__main__":
    register()

For multiline comments you can use triple-quoted strings:
'''
@classmethod
def poll(cls, context):
    return context.object is None
'''


Feed values into Crop Node (Left, Right, Top and Bottom) I am a noob at doing this, as I started very recently.
I tried cropping every frame in a video file to my mouse cursor. So, I searched up the Track Position Node and tracked the position of my cursor slowly moving.

Then, I made a Math Node tried outputting variables for my Crop Node's Left, Right, Top and Bottom values. However, there are no input nodes other than Image.

Is there any way I can feed a value output into the Crop Node's Left Right, Top and Bottom?

QUICK UPDATE

Found a workaround, just used an array of nodes that had x and y inputs

Going to crop manually later using another crop node


blender python: evaluate extruded curve points I need to find coordinates of points extruded from blender's bezier curve with python. All I know right now is how to evaluate each point on the curve(mathutils.geometry.interpolate_bezier) but I don't know how to find the perpendicular vector with Spline's tilt.

Basically, I need to find a perpendicular vector with the original vector and tilt in each curve vertex. How do I do that in python?

So far I've only gotten the spline points but not the extrusion, here:

import bpy
import mathutils
interp = mathutils.geometry.interpolate_bezier

class DummyOp(bpy.types.Operator):
    bl_idname = "object.get_bezier"
    bl_label = "Extract Bezier Points"

    def execute(self, context):
        ob = context.object
        dat = ob.data
        bzp = dat.splines[0].bezier_points
        points=interp(bzp[0].co, bzp[0].handle_right, bzp[1].handle_left, bzp[1].co, dat.resolution_u+1)
        print(f"So far I can only extract this data:\n{dat.resolution_u},\nCurve points:")
        for p in points:
            print(p)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

    bpy.ops.object.get_bezier()

You can use object.to_mesh():
>>> curve_ob = bpy.context.scene.objects['MyCurve']
>>> me = curve_ob.to_mesh()
>>> me.vertices[0].co
Vector((0.0, -1.0, -0.6200000047683716))

This allocates a mesh object specifically for the prupose of being manipulated using Python. You can then free this extra memory with object.to_mesh_clear().


Insert keyframe on an object's custom property with Python How can I add keyframes to custom properties with python?  Usually, I can use the function

object.keyframe_insert(data_path="location")

but I couldn't find the right data_path of a custom property.

Keyframes on custom properties use Python's getitem/setitem syntax rather then getattr/setattr.

This matches python api, where you would access object.location as an attribute and object["prop"] for a custom property.

So you would need to write it like this:

object.keyframe_insert(data_path='["prop"]')

Note that you have to use " quotes, not ','["prop"]' can be written as "[\"prop\"]" too of course.

I think we have this documented, I'll have to double check though.


Getting the scene an object is in (blender 2.9) It's fairly easy to get the objects that are in a scene:
dict(myScene.collection.all_objects) # mapping from name to object.

But how to go the other way?
scene = magic_get_linked_scenes(myOb)

One could iterate through all scenes:
linked_scenes = []
for scene_name, scene in dict(bpy.data.scenes):
  for ob_name, ob in dict(scene.collection.all_objects):
     if ob.name == name:
         linked_scenes.append(scene) # checking object equality should also work.

But this is clumsy and slow if there are a very large number of objects. Is there a better way?

object.users_scene seems to show the scenes using the object.
Blender's Python Console is very useful when finding this stuff out. If you start typing and hit Tab Auto Complete shows you all the options you have:


How work translate=True in layout.label ? (Python Ui question) I'm trying translate = True, in a label, but I see that no translation is done when I change the languages in the preferences, now I don't understand how this option works and if it can work, I'd like to understand if it is possible to translate automatically.

layout.label(text='My Text', translate=True)

The output on the interface is always "My text" tested in all languages.

There is no automatic translation, you will have to create a dictionary with the translations that is registered/unregistered through bpy.app.translations.register() and
bpy.app.translations.unregister(). The Manage UI Translations add-on can help you generate the tuples from which the dictionary is generated.

More information can be found in the manual and the wiki.


edges.new - Edges Not Adding Correctly (black not solid orange) I'm using a python script to create edges.

For some reason, my script is recognizing some edges, displayed in solid orange.
Others are not recognized the same and are displayed in black.
(see image)

When I manually select two of the verticies on a black line and hit f the edge is added correctly and displays orange. This is specifically a problem because I cannot face-->fill the shape until all the edges are displaying as orange.

I'm adding the edges like this:

class Graphics:

    def __init__(self,bm):

    def drawLoop(self, bm, lines):
        for i in lines:
            self.drawLine(bm, i.p1tuple(),i.p2tuple())

    def drawLine(self, bm, tup1, tup2):
        v1 = bm.verts.new(tup1)
        v2 = bm.verts.new(tup2)
        bm.edges.new((v1, v2))

My Main is like this:

import bpy
import bmesh
import sys

obj = bpy.context.object
me = obj.data
bm = bmesh.from_edit_mesh(me)

graphics = Graphics(bm)

bmesh.update_edit_mesh(obj.data)

Look like you are creating 2 new vertices per line, that's creating disjointed segments. Instead, just create a new vertex, then the new edge between the previous vertex and the new one, etc...


How do I "mask" out certain areas of a photo? Can I use blender to take an existing jpeg image and mask certain areas out of that image?

I'm still very new to Blender and I've searched this topic, but all Q&A's seem to be about masking objects in a 3D setting. I'm wondering about masking a certain part of a 2D image so that I can use the image as a background on an animation, such that the elements of my animation show "through" the masked out areas.

Any help would be appreciated. Thank you for reading.

Blender's compositor can be used to mix together video and still images. The render output of a 3d scene doesn't have to be used in the compositor, any image or video can be input and placed on top of another using a mix node.

A transform node can move and resize the image. A mask can then be used to cut out part of the image you are adding, box and ellipse mask nodes are available in the compositor, you can also create odd shaped masks in the UV/Image editor which can be animated if you want the mask to move or distort over time.


How to position the origin of an object next to edges of another object with python First I import a cone next to a box:

The cone has a good position in the X axis but not in the Y and Z axis.

So I translate it to this position :

Ideally, I want about 1 mm between the edges of the box and the center of the cone. I was wondering how can I translate the cone to that position (which is linked to the box) with a python script ?

If both objects origins are at their centers ; set their names in the script and run it :

import bpy

cone = bpy.data.objects['Cone']
box = bpy.data.objects['Cube']

edge = box.dimensions[2]/2 + box.location[2]
cone.location[2] = edge-0.1  #assuming 1BU->1cm


Is there a way to split a hollow mesh by faces? For example, I have a hollow cubic sphere like this:

A problem is to split it by all its faces like this:

The way I have done this one is an application the P > Selection to an outer face and an appropriate inner one. Then I just have connected appropriate edges to get that little piece. But this way is not really practical since I have to iterate over each face of the sphere manually.
Is there a way to get the result automatically?

You can:

AltE then "individual faces"
Don't move the extrusion just validate it
Invert the selection CtrlI to select the base vertices
X delete vertices
A to select
E to extrude
Again don't move the extrusion just validate it
S to scale
P to separate by loose parts


I don't know what is wrong with my python script I am trying to generate a bunch of points from a bezier curve. I am converting my curve to mesh then gather vertices then delete the mesh as discussed by helpful contributors in the past.

But the points I generated do not match the curve 3D location. Please see attached screenshot, blender file, and code.

To recreate my problem:
1. create a bezier curve
2. manually move bezier curve on all 3 axies
3. run the python script
4. see points generated do not correspond to the new 3D locations of the curve but rather match its original position only (when it was created at origin).

Thank you!

    #https://blender.stackexchange.com/questions/34145/calculate-points-on-a-nurbs-curve-without-converting-to-mesh
    import bpy
    obj = bpy.context.object
    scene = bpy.context.scene
    obj_mesh = obj.to_mesh(scene, True, 'PREVIEW')
    verts = [v.co for v in obj_mesh.vertices]
    print("total numbers of vertices generated = %d"%len(verts))
    for i in verts:
        bpy.ops.mesh.primitive_uv_sphere_add(size=0.05, location=i)
    bpy.data.meshes.remove(obj_mesh)

For global coordinates, multiply local coordinates by world matrix of object.

Data (obj.data) coordinates are in local space.  The global scene coordinates have an origin at (0, 0, 0) with no rotation or scale. An object's origin is its local coordinate (0, 0, 0).  An object's location is the location of its origin.

Latitude and longitude on earth could be considered a local coordinate system, with origin (0, 0) ... It's just some arbitrary point on the equator.. It tells us nothing about where we are in the universe, that the axis is tilted towards the sun...

Can calculate a global coordinate from any local coordinate by pre-multiplying the vector by the object's matrix world (obj.matrix_world) This accounts for any translation, rotation and scale on the object in global space.

When an object has no transformation, no rotation and unity scale, its world matrix is the Identity matrix.  Multiplying by the identity matrix is the scalar equivalent of multiplying by one.  In this case, and only this case, all global and local coordinates will be the same.  Will find a number of answers on here that don't take this into account.

Applying location, rotation and scale has the effect of making an objects matrix world identity, by converting all local coordinates to their global equivalent.

import bpy
obj = bpy.context.object
mw = obj.matrix_world
scene = bpy.context.scene
obj_mesh = obj.to_mesh(scene, True, 'PREVIEW')
local_coords = [v.co for v in obj_mesh.vertices]
print("total numbers of vertices generated = %d" % len(local_coords))
for local_coord in local_coords:
    global_coord = mw * local_coord
    bpy.ops.mesh.primitive_uv_sphere_add(size=0.05,
            location=global_coord)
bpy.data.meshes.remove(obj_mesh)

In case you missed it, the link provided by @tet_li in comments provides a detailed explanation of coordinates in blender.


How to randomize wood pattern in many object? I want to make wood house. but my wood pattern is not nature. If i use texture, all woods have same pattern. Is there any way to randomize wood pattern?

so you can use object info node for this!

just add a mix rgb node and put the image texture in the first node and a color ramp in the second one. just choose some shades of grey in the ramp. you might want to choose similar types of shades. just vary them a little( my colors are too drastic).

no each copy of the wood mesh will have different color due to the mixing. rememder to make the wood meshes different objects(duplicate them in object mode not in edit mode).

Now to vary the wooden pattern, yoou can scale he uvs differently and get different patterns, just move the uvs randomly and scale them a litle. remember to use UV coordinates in your image texture.

you can combine both methods to get different looking wood materials.


How to properly denoise renderings? Since the Denoise feature was added to Blender I only use the default setting with it and it really does the work. But sometimes the denoise is noticable on some of my renders. How can I overcome the blurred effect? Denoising for me is a big help because my system is quite aged.

Denoising is a great tool, but it is not a miracle button that works equally for each and every cause of render noise. It seems to work better in areas where the surfaces don't have a lot of detail, and the brightness values and colors are more homogeneous.

High contrast areas or with lots of  variation in their values might not fare so well after denoise.

In this example the denoiser is creating a splotchy or smeared image:

The same with fireflies, where the bright spots have very different than their surrounding pixels.

Read: https://developer.blender.org/T52802

There are many causes for noise in rendering, each scene is different, and what worked in some circumstances might not work in others.

But the key thing to be aware of is that denoising will introduce new artifacts, and is certainly not a substitute for a decent number of samples.

Depending on the kind of noise you are dealing with you might get decent results with it along with other tricks, and in some cases not using denoise at all.

Some examples:

64 samples. Horribly noisy and full of fireflies, as expected:

(Click on any  of the images to show full screen)

Compare to 64 Samples with denoiser's default settings:

Most of the noise and fireflies and are gone, but the the noise has been replaced with areas that look blotchy or smeared. New Black artifacts have appeared around the thin and bright areas of the image.

At 500 samples

Image with no denoising:

Compare to 500 samples with default setting for the denoiser. Most of the smearing is gone, but the black artifacts on the bright areas remain.

Increasing the radius makes the problem worse (at the maximum strength of 25 pixels the artifacts in the thin bright areas is worsened).

A smaller radius helps with the black dots around the thin bright areas, but the blotchy areas re-appear to some extent.

Combining denoiser with low values for all of the settings along with some clamping (direct and indirect):

1,000 samples with no denoiser, some clamp direct and clamp indirect:

A lot less noise on and the fireflies are lessened, but the brightness of the scene's highlights has suffered.

Lastly, just for fun, a very clear render at 100,000 samples, no denoiser or other magic settings:

Very low noise, no fireflies and no artifacts... but many hours to render.

As you can see, the denoiser works wonderfully for some situations and not at all in others, having more samples makes some the artifacts introduced less apparent (smear) but does not solve all of the issues with high contrast...

Hopefully this will help you make more informed decisions when to use it or what to expect.

Another example:

100 samples, Fireflies without denoiser.

100 samples: Fireflies with denoiser:

No denoiser, more samples and clamp indirect:

Please read through the following related links and explore the many solutions for noise, maybe one of them will work for your project.

How to avoid noisy renders in Cycles?

Problems with denoising in rendering
How to reduce fireflies in Cycles?

What is branched path tracing and how is it useful?

Branched Path Tracing

What does "number of diffuse/glossy/... bounce samples" mean?

How do I use the cycles Denoiser?


What's the best book to learn blender? Just as the title says, I am looking for beginner's book for blender. Specifically I want to learn special effects and 3D models.
Anyone got any suggestions?

Well...I don't know of any books I'd recommend, but I can give you a few suggestions when it comes to digital content.

A good place to start is with BlenderGuru's Donut Tutorial Series. That'll help you get a good start with Blender (learning the UI, basic modelling, texturing, rendering etc).

If you're willing to spend a bit of money, I've found the Hard Surface Modelling Tutorial Series to be a fantastic way to quickly progress from a beginner level to an intermediate one (in terms of modelling). There are a few caveats, as it has been recorded with the 2.79 UI. However, everything that they teach can also be learned while using 2.80+ (I can personally attest to that). They'll teach you the tools that you have at your disposal, many modelling techniques and workflows, not including sculpting, and the theory behind proper shading, good topology etc.

As far as special effects and animating goes, there are plenty of free materials online. Poke around StackExchange and find Q/As that are related to what you want to do. Try to focus on understanding the tools that are presented so that you may apply them elsewhere. Tutorials such as the LazyTutorials by IanHubert can help you in that aspect.

To be honest, where you want to go and what you want to focus on is up to you. To my knowledge, everything that you can learn from paid tutorials can also be learned for free or figured out on your own. What the paid tutorials do is to condense the knowledge down so that you can learn quicker and in a more organized fashion.


Matching 2nd camera to a scene I found nice looking house and wanted to recreate it, used fSpy instead of BLAM, but found it works well. I placed cubes instead of normal models. My problem is, that there is second and third photo of this room and i can't match perspective of the second camera to the ready scene. I tried fSpy, but it hasn't fitted it properly.
What should i do if i want to fit 2nd camera to both scene and reference by hand?

I got it. The nunmer of solve errors was about 3.2, but now it fits perfectly. Firstly i used fSpy, copied focal lenght and pasted it into camera settings in mation tracking. After that i changed refine from none to focal lenght and optical center. The most important thing is that i made a perpective point on the table. It caused so high solve error, but it works. Unfortunately i must redo models, but now it perfectly matches.


is there a software to download python scripts? I want to download and install some add ons and wonder about how to download the python script.
This question is probably stupid but I really don't know the Answer.

Add-ons are written in Python. So after downloading your add-on file(s) it will be either a .py file or a .zip file depending on the add-on.

To install it, you go to file->user preferences->add-ons tab->install from file (found at the bottom)->choose your downloaded add-on->then the add-on information will appear after installing it->click the checkbox and the add-on will be active


How to render one side of a cube with different material than the other sides Picking up 3D graphics since 2004, so I'm a bit lost now.

I'm trying to make a cube of metal look rough cut on 5 sides, and mirror smooth on one side.

I've managed to control the roughness with vectors for the bumb and so on, but I hit the wall trying to assign another property of the one side to be smooth.

I'm thinking it should just be to separate the face that are to be smooth from the rest.

When looking into this site's answers, it looks like I just have to select the face I want to separate with key "Y". It's separates all right, but I can't seem to assign a specific material to that separated side, it always includes the other sides vectored bump.

Why is a separated mesh face still "slaved" to the other faces when it comes to material assignment?

"You do not, and should not, separate a face if all you want is to assign a different material to it. You just add another material in the materials tab, make sure it is highlighted, tab into edit mode, select the face(s) you want and click the 'assign' button. – photox 2 hours ago"


Making regular polyhedra in Blender using Python How can I make regular polyhedra in Blender such as tetrahedron, octahedron, dodecahedron and icosahedron so that their vertices lie on a sphere with radius r? I eventually want to write Python code to do this. That's why I think an add-on like this would not be useful for me as it seems that I cannot install add-ons using Python and work with them (correct me if I'm wrong).

It turns out it's easy (a bit hacky though) to make such regular shapes in Blender without using add-ons. Here's how:

Tetrahedron
Bring up the Add Mesh menu (Shift+A), and select a Cone. Set the number of Vertices to 3, leave Radius 1 at its default value of 1.000 and Radius 2 at 0.000. Now, set the Depth to square root of 2 =~ 1.414213

bpy.ops.mesh.primitive_cone_add(vertices=3, depth=1.414213)

Octahedron
This shape is the dual of the cube -- it has vertices where the cube has faces, and faces where the cube has vertices. To make it, first create a cube. Press TAB to switch to Edit mode. All the vertices should already be selected. Press W  to bring up the Specials menu, and select the Bevel function (or select it directly with CTRL+B). As you move the mouse, you will see each vertex of the cube turn into a triangular face; don’t bother getting the shape exactly right, simply press LMB to finish the drag. Then, look in the panel that should have appeared at the bottom of the Toolshelf on the left of the 3D view (press T to toggle its visibility); you should see an editable numeric field labelled “Offset”. Type the value 1.0 into this field, and that should exactly form the octahedron shape. Finally, bring up the Specials menu again, and this time select Remove Doubles.

bpy.ops.mesh.primitive_cube_add()
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.bevel(offset=1)
bpy.ops.mesh.remove_doubles()
bpy.ops.object.mode_set(mode='OBJECT')

Icosahedron
Bring up the Add Mesh menu, and select an Icosphere. Set the Subdivision to 1. Simple!

bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=1)

Dodecahedron
This shape is the dual of the icosahedron. To create it, make an icosahedron as above. Then do what you did to make an octahedron out of a cube: press TAB to switch to Edit mode. All the vertices should already be selected. Press W to bring up the Specials menu, and select the Bevel function. As with the octahedron, press LBM to finish the drag. Then set the Offset value to 0.607, the closest I could find. Then, bring up the Specials menu again, and this time select Remove Doubles. However, the default Merge Distance of 0.0001 will not be enough to remove all the doubled vertices; change this to 0.001, and you should see the message “Removed 40 vertices” briefly flash up.

bpy.ops.mesh.primitive_ico_sphere_add(subdivisions=1)
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.bevel(offset=0.607)
bpy.ops.mesh.remove_doubles(threshold=0.001)
bpy.ops.object.mode_set(mode='OBJECT')

Source


Modal Operator double keytrigger (RELEASE triggered twice on Ubuntu) here the smallest bit of code to show what I mean.

import bpy
from bpy.props import IntProperty

class ModalOperator(bpy.types.Operator):
    """Move an object with the mouse, example"""
    bl_idname = "object.modal_test_operator"
    bl_label = "AA Run"

    modal_counter = IntProperty(default=0)

    def modal(self, context, event):
        if (event.type == 'MINUS') and (event.value == 'RELEASE'):
            self.modal_counter += 1
            print('triggered!', self.modal_counter)

        elif event.type == 'LEFTMOUSE':
            print('ended by finish')
            return {'FINISHED'}

        elif event.type in {'RIGHTMOUSE', 'ESC'}:
            print('ended by cancel')
            return {'CANCELLED'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        self.modal_counter = 0
        print('start')
        context.window_manager.modal_handler_add(self)
        return {'RUNNING_MODAL'}

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

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

if __name__ == "__main__":
    register()

The output of this operator when you press the Minus key twice is this:

start
triggered! 1     <-- first press
triggered! 2     <-- first press
triggered! 3     <-- second press
triggered! 4     <-- second press
ended by finish

What am I doing wrong? If i set it to listen for event.value == 'PRESS' it's OK, but it seems 'RELEASE' is triggered twice?

The problem here was with the operating system /environment, and confirmed by pink-vertex. While this isn't a bug report, it may still be handy to keep around in case others experience it.
The behaviour had me stumped until I wrote the above code to localize what was happening.
This seems to be a long-standing bug in the windowing system that ubuntu uses: https://developer.blender.org/T21528 (dating:  Mar 9 2010)

knowing it's broken isn't good enough.
@NoamPeled asks how one might get a working solution in the case of the windowing system throwing multiple repeat event.values, like RELEASE -- thus  increaseing the potential for the interface to behave in unexpected ways (ie a quick tap of a key could trigger release once or twice, but mostly twice -- at the very least the lack of consistency is the true issue then)
untested and verbose,
# somewhere at the top of your python file
# add any other keys you want to track
event_values = {'MINUS': None}

# your modal operator code (snipped for brevity, see above in the question)

    def modal(self, context, event):

        # somewhere it makes sense
        if event.type in event_values.keys():
            if event.value == event_values.get(event.type):
                pass  # or some other passthrough/ignore
            else:
                event_values[event.type] = event.value
                # do some other useful thing


How to import buildings/terrain from google earth I'm making a live action short film where the characters fly a magic carpet over a city. It's a fast paced scene with the characters weaving around buildings and plummeting to the ground, and using drone footage as a background plate for my green screen footage wont work.

I was thinking of going CG for the view of the city using Blender, but then my problem is getting the model/materials.

I know Google Earth has very good coverage of the city this takes place in, so is there any good way to export Google Earth terrain/building data into Blender so I can proceed to tidy up the models/materials and render it in Cycles?

As far as I know There is no way to do this from Google Earth. There is, however a site called openstreetmaps.org that lets you do what you are envisioning. A great tutorial i found is CG Geek's Realistic city tutorial

you probably dont need to watch the whole thing, but the first part will show you how to do this


Error when processing a blender file in Python I work on some system that generates objects in spatial configurations using Blender. I have a few samples of objects (.blend) file (e.g., cube, cylinder, sphere) and they work fine on my system. I tried to create more objects like: bottle, cup, toy, etc, and I follow tutorials on youtube but I always get errors when using them with python. One of these common errors is:
AttributeError: ‘AreaLamp’ object has no attribute ‘vertices’

This is particularly related to some code that loops over objects in the scene and use the vertices information of each object in order to calculate the centroid. So I can estimate that there is a problem in accessing vertex information.
Despite the fact that I compare the new blender files attentively to those that work well in the system, I have the same parameters in both but they always raise errors.
I attach a link to a new object (Cone) that I created which raised this error: Cone
VS
an original .blend file for an object (Sphere) which works in my python system without any problem:
Sphere
So what is missing that makes the (Cone) object raises this error?  Why isn't the vertex information accessible?

There's a chance you deleted the lamp but it's still lingering somewhere in your blendfile and the script is accessing it. To be sure this is not the case, try saving, closing, and opening the blendfile multiple times to completely get rid of unused data and try your script again. Or you can try copying the mesh files to a brand new blender scene without any object and run the script there


Is there a way to render single frame using network rendering in Cycles? I'm working on architectural visualisations, and I can't imagine more useful feature. How render farms for rent do that?

I'm not sure if a render farm currently exists to do this, but theoretically it's easy. Simply use a method called Image Stacking, where you render the same image multiple times with different seeds and then mix them together to average out the noise.

The first two images would mix 50/50, the third would mix into that by 33.3%, the fourth 25%, 5th 20%... basically 1/n where n is the number of images in the mix.

This is the method that renderfarm.fi uses, but I believe they have a minimum animation length so you can't use it to render a single still image.


Removing overlapping faces and internal edges from a 2d geometry I have the following 2d geometry (the figure shows it in edit mode):

I need to make it a simple polygon, without the overlapping faces and the non-necessary edges (just want to keep the ones of the perimeter and holes).

How can I do that in Blender?

I've tried this solution but didn't work, also I've tried the options of dissolving vertices/edges/faces but didn't work either.

If you are on 2.79, you could use the TinyCAD addon:

Make sure that all your planes are on the same level on the Z axis, if not select all and press SZ0.
Keep everything selected and press W > TinyCAD > XALL
Only the edges remain, press W > Remove Doubles.
Delete the useless vertices with X > Vertices.
Fill the faces with F.
If you want to keep a central hole you need to have enough topology.


2.8 How can I draw and fill a closed shape in 2D? I was drawing something in 2d today when 2 hours of work went up in flames as I couldn't fill in any colors.

Was this a bug/glitch within the 2.80 Beta, or am I missing something?

I would use the fill to fill in a space, fully enclosed, but it would just make a rectangle, and not work. Is there something I am missing?

Blender 2.8: Grease Pencil Fill Brush Not Working

Set the fill in the Properties panel > Material section (same place as you would set the material for a mesh).  It's a little Check box.


Changing geometry in linked duplicates I have a parent object with numerous child objects and made also a bunch of linked copies (via alt+D) of said parent object inside my scene.
As it turns out, I need to merge the child objects into the mesh of the parent object now and was wondering if there is a way to accomplish that without breaking the link to all the linked copies and basically propagate the same change to all of these linked copies.
The problem is, that memory usage of the scene would just explode if I loose the linked duplicates.

Let say the object A has a lot of linked duplications, and object A has a mesh called A'. Let say you have a B object with a mesh called B'. You want B' to be part of A. If you select B object, then select A, then ctrlJ, the A object is now made of the A' + B'. All the A linked copies are now made of A' + B'. It won't explode any memory as a linked duplication doesn't weigh on the file.

Now, if B was also linked duplicated and you need to delete all the now useless copies of B (considering B' is now part of A), you can select one of the B objects and press shift L Select Linked > Object Data and it will select all the Bs. Then X to delete.

Does it answer?


User preferences lags Blender Whenever I open up the user preferences tab, it always makes blender glitch, and I have to re-open blender. This might be because I have an old computer (windows vista) or it might be something else that I am not aware of. Is there any way to fix this?

This usually happens on lower end machines. One fix is to open the preferences view in an already open window (such as the 3d view or timeline) instead of creating one via the File menu.


Moving a vertex of a Bézier Curve moves the origin point of a mesh with array+curve modifier (why and how to stop) (Original video: https://imgur.com/a/tHl2RQz)
So, I set up a Bézier curve and made a rope mesh follow it with the curve and array modifiers. Then I hooked up each Vertex of the curve to an empty (Goal is to animate tying knots as tutorials). Everything works like a charm. When I move/rotate the empties, my rope will move and rotate as well. Great!
Only, when moving this one single vertex (the one that has by default(?) red coloured handles), the entire mesh is offset from the curve (or collapsed inwards when I move the vertex along the x axis). Further testing yielded that apparently when moving that vertex of the curve, the origin point of the mesh is moved as well. Has anyone an idea what is causing this/ how to fix this? It happens only with this single vertex, and for the animation especially of the more complicated knots I need to have every single vertex be able to move freely without messing up everything else.
Thank you so much in advance and have a great day!

Ok, so @HenrikD was right indeed; for some reason there was an empty that the whole mesh was parented to. CLearing the parent and setting up the curve modifier anew was enough to solve the problem.


Disable Blender autosaving files It seems that Blender is auto saving my projects, because when I exit Blender and go to my .blendfile again my latest progress (even the ones I did not save nor want to save) were present.

Is there some kind of setting I accidentally changed?

Thanks for the help.

Are you talking about auto save or do you mean that when Blender opens up it automatically opens your last saved project?

Anyway go to File Menu > User Preferences > File Tab > Auto Save: on the bottom right

Disable either Auto Save Temporary Files, reduce the number of files, or disable Keep session if when Blender opens up for the first time it automatically brings up the last opened file.

Keep session doesn't really save the changes to you actual work file however, as far as I know the session is saved to an internal Blender file in the user folder in the last state it was before closing. The actual work file in its directory however should be unchanged and hold only the changes up until the last explicit user save.

Beware that some addons do an automatic save of the file on export (like Blend4Web for example) even if you don't save the file, on export it automatically saves any changes without warning the user or specific user consent, resulting in unwanted and unforeseen file saves. If you are using any addons check in it's preferences if there is such setting as 'auto-save'


Rigid body physics: Why objects are attracted without any force applied? I am running a very simple simulation. However, something weird happens at the beginning of the simulations. It looks like the chair is pulling the monitor towards itself. Or the monitor is attracted to the chair. Why is that?

I tried your file, I found  that just following what @moonboots said above in comments should work, but sometimes... it doesn't, and it's weird!

Here is when I tried to "free" rigid body cache, and also to "free all bakes": it didn't work.

Then I tried a trick: apply scale, and it worked, the "screen" mesh fell in a more natural way, but after reaching the floor, it fell downwards...

So, I tried to apply also rotation, and in this way it worked how you probably expected:

Applying transforms (particularly scale and rotation) is always recommended when you simulate physics in blender, and most of the times it solves even weird issues like this one.


Draw geometry on screen using BGL module I am trying to use the bgl module to draw triangles on top of the Blender interface. My understanding is that glBegin/glEnd are deprecated, and vertex array or display list or VBO should be used instead.

But I can't seems to find the relevant functions I need (glDrawArray, glBindBuffer, etc) in the bgl module. Any insights?

my bgl.glGetString(bgl.GL_VERSION) is 2.1 ATI-1.8.18

All the available OpenGL calls exposed in the bgl API are: https://www.blender.org/api/blender_python_api_current/bgl.html

(or in https://svn.blender.org/svnroot/bf-blender/trunk/blender/source/blender/python/generic/bgl.c without the gl prefix)

It has a few OpenGL 2.0 calls, but not even all I think.
It's easy to extend it to specific functions, but we are close to the point where it makes more sense to use a full OpenGL wrapper such as PyGL (and that's why the number of functions exposed is a bit stagnated).


UV Mapping & Mesh Separation I'm very new to blender, and have modeled a character poly-by-poly starting from the face/head and extruding downwards to create one solid mesh containing all limbs.

I want to UV map this guy, but I seem to be terrible at it. I have bought books and watched online tutorials, and the people seem to UV unwrap meshes separately, i.e. the head is its own thing, the arms are their own thing, etc.

Do you do this by separating the head into its own object, or adding a seam to the head, arms, shirt, etc. then UV unwrapping the entire mesh?

Can I just add a seam to each body part (head, arms, torso, legs, feet, hands, etc) then unwrap the entire mesh?

I'm very confused as to how this works and all of the tutorials seem to not mention this part.

Thanks!

General Workflow

After unwrapping countless models, my current workflow is this.

Select and focus on the portion of the mesh by ShiftH in edit mode. In this way you do not have to separate your meshes into part and then rejoin them later. You can create the seams of the selected part one at a time and uv unwrap them individually to test if they unwrap properly. AltH to unhide the whole mesh in edit mode. Then proceed to another part of the mesh and repeat until you have the whole model seam up.

For the final steps it's pretty straight forward. Just select the whole mesh and hit U and remember to adjust your margins in the tool panel to make sure those margins between the islands are about 8-12 pixel wide. If you want to
make sure your islands are scale correctly use CltA with your mouse.

..

How to seam?
The answer as to how you cut those seams would be to always understand the concept of unwrapping a box into a flat plane. Then learn how to apply the concept to any mesh. The most important of all is to make sure those seams are hidden from view (as much as possible) . So you will want to hide those seams behind , eg. a belt, hair line , watch straps ... etc.

..

Fine Tuning
After you are done with all the steps above. It's time to fine tune those wonky
warped uv unwrap. I like to define the centre line of the mesh if any, and pin them. Turning on the UV editor > UVs menu > Live Unwrap , deselect the previously pinned center line and select those twisted portion you want to adjust, pin them before G move them. You will see live unwrap giving you real time update on how your manipulation to a single point affects the whole mesh. Very intuitive and easy to use!

Good luck.


Rendering frames:Black and white instead of colour images, settings are RGBA I am trying to render few specific frames through python, both depth and colour images. Script is given below. Output images of depth are correct but rgb images are black and white. What could be the reason, how can I fix it?

 .

render_layers = nodes.new('CompositorNodeRLayers')
output_file_rgb = nodes.new("CompositorNodeOutputFile")
output_file_depth= nodes.new("CompositorNodeOutputFile")
normalizer=nodes.new("CompositorNodeNormalize")
viewer = nodes.new('CompositorNodeViewer')

scene.node_tree.links.new(
    render_layers.outputs['Image'],
    output_file_rgb.inputs['Image']
    )
scene.node_tree.links.new(
    render_layers.outputs['Z'],
    normalizer.inputs['Value']
    )
scene.node_tree.links.new(
    normalizer.outputs['Value'],
    output_file_depth.inputs['Image']
    )
scene.node_tree.links.new(
    normalizer.outputs['Value'],
    viewer.inputs['Image']
    )

.
.
.

for f in frame_numbers:
     scene.frame_set( f )
     scene.update()
     output_file_depth.base_path = "D:/dep/"
     output_file_depth.file_slots[0].path="Imagede"
     output_file_rgb.base_path = "D:/rgb/"
     output_file_rgb.file_slots[0].path="Imagergb"
     bpy.ops.render.render(write_still=True)

It was because the textures are not imported. If you are importing models, make sure that textures are also imported before rendering


Significant digits in Measure Tool I would like to set the number of significant digits given by the Measure tool.
While measuring I obtain values with 5 significant digits (as seen in the image).

Could you please tell me how to set Blender to round the number to only 2 significant digits?
I would like to get for this case something like 3.05 mm, instead of 3.05158 mm ...
Thanks a lot!

go to view -> measureit tools -> precision

UPDATE: Measure

Move one end with cursor, then hold CTRL and let go on one edge of default cube. Same to other end.
Result:


With python align text to camera I want to add a text to an object, soft of like a label.
The thing is, when I do it with python, view_align=True doesn't work. The text keeps it's original orientation.

I'm not writing a plugin or anything, I have the script in a text file in blender and just run it.

I'm thinking that the view isn't active when I run the script and because of that the text doesn't know what view to orient towards.

Maybe I could find the rotation of the camera and use that to set the rotation of the text object.

I got the idea while writing my question. I'm not very good at 3D math with matrices etc but it worked.

Maybe someone will be helped by this.

cam_rot = scene.camera.rotation_euler
bpy.ops.object.text_add(location=(x,y,z))
textobject=bpy.context.object
textobject.rotation_euler = cam_rot


I can only see the wireframe of my objects and they don´t appear in the render I was testing with shadow catchers, glowing textures and smoke in a project and now, all of my meshes are in wireframe and don´t show in renders and I would like to reset everything. I would like to start again but preserving the meshes, their location and scale; I don´t care about everything else like materials, visibility settings of the objects or render settings. I thought about appending the meshes into a new proyect,but, besides I´ve tried and I can´t, I think the visibility settings would remain the same. Anyone can help please?

I`ve solved it, I don´t know why but I had this (the box inside the red circle) in "wire".


Fluid won't go through a hollow-moving-effector, they just move aside Obligatory kinda new to blender, have just been following some little tutorials here and there.
Background about my project :
I'm trying to make an archimedes screw. Basically it is made of a long metal rod as an axis and curving around it is a helix pipe. It rests on a 30° ish angle from the river/water, so that when the whole thing rotate around the rod axis, the tip will dip intonthe water each rotation and water will go up by some magical physic power.
What i did :
Following some tutorials about fluid, i managed to make a flowing river with cube as the inflow shape and bigger cube as the domain. I also managed to make the rotating helix with a circle shape and screw modifier, then i deleted both the cap faces, and added solidify. I have also doubled my resolution to 64 (edit : 120) since i thought that might be the problem.
The problem :
But even when i chose my hollow moving helix as the effector, and after i checked that the helix color was blue in the face orientation, the water just didnt want to go into the pipe, they just went around it for each rotation as a simple obstacle.
Any ideas about this? Thanks in advance.
Edit :
Blend file https://pasteall.org/blend/22c63053a57b403aacf56fad30186c75
Screenshot :
(this one is collision setting of the helix)

(this one is for domain of my box)

I've downloaded your file and changed a few things to make it work: first of all I disabled Only Rim in the Solidify Modifier of the screw. That way your pipe has an inner wall with face normals pointing in the right direction.
Then the Domain Resolution of 120 is too small for your pipe. It measures around 30 cm on the outside while a voxel at that resolution is about 5.5 cm big. In combination with  possible margin issues there's not much open space for the voxels to enter the pipe. I've set the resolution and now (some) liquid goes into the pipe.
And I've expanded the length of the animation to 250 frames, even then the fluid hasn't gone very far up the pipe. If you want it to climb further up, the animation needs to be quite a bit longer.
Finally I've set the Particle Radius of the Mesh to 1.2 instead of 2, so that the fluid doesn't look more like a blob, although with the higher Domain Resolution this might not have been necessary.


2.8 Why are collections grayed out? How can I open them? I've bought Cup models from Internet.

When opening .blend file I get Blender's Interface changed. To avoid this I've unchecked "Load UI" on opening the file.

But now I cannot see the objects of the project (I can see and render them when opening the file and leaving "Load UI" checked).

"Collection 1" on the "Objects Panel" (Don't know if it is it's name). is grayed out.

cup-models.blend with LOAD UI:

cup-models.blend without LOAD UI:

Blender 2.8:

tl;dr: Your collections are set to be excluded from the scene.

This is the Blender 2.80 replacement for enabling/disabling layers. Instead of selecting or deselecting a couple of layers in your viewport, you set your collection to be excluded from the viewport.

Go to the Outliner, left-click on one or Shift + left-click on multiple collections, right-click to open the Menu and go to "View Layer" and click "Clear Exclude" - alternatively hit the Shortcut Alt+E while your mouse pointer is within the Outliner.


How do you affect the translate node by the location of object? I have this group input that generates a "lens flare":

I would like to know if it is possible to 'parent' the location of the flare to the sphere at the bottom of the image. I do not want to use any scripts [yet]. Any help would be appreciated. :)

[EDIT]

My menu options:

Blender Render vs. Cycles [Help!]

Not sure if its what your looking for but the [Input > Object Info] node allows access to the vector location of the object in the current context...

from there basic maths should magic you up some results

best of luck =)

screenie =P

Here are some links to some decent youtube channels that have helped me learn cycles

https://www.youtube.com/user/AndrewPPrice

https://www.youtube.com/user/blendercookie

https://www.youtube.com/user/tutor4u

and of coarse blender.stackexchange is here for specific quesions


Is the Orange Peel transparency effect impossible in Eevee? I have a motorcycle windshield with transparency in the alpha channel of the texture. I need the texture to be double-sided and transparent, but apparently Eevee can't handle this.

It seems to me, that if I were to take a sphere, and paint a transparent hole in it, I should be able to make it double sided and be able to look inside of the hole to see the inside.

Hence the "Orange Peel" effect I'm trying to create here. Is this not possible?

Here is the effect I'm trying to achieve. this is a screenshot from Substance Painter:

The Orange peel effect, where you can see both sides of a single solid object that has a transparency channel. Seems to me like any 3D application that supports transparency should be able to do this.

Here is what I get inside Eevee, with "show backface" checked:

And here is with "show backface" unchecked:

So my question is this: are orange peel transparency effects possible in Eevee?

You mean this kind of effect? I don't understand the relationship between orange effect and transparent issue. You might need to confirm what is your main question.

It should be work while you use Screen Space Refraction at render panel:

You will need to turn on Refraction if you want to see thing behind the glass.

And also turn on both alpha blend mode and Screen Space Refraction in your glass material:

Reference

Unable to see objects through Glass BSDF


How would I get brighter color with the voronoi node? I haven't used the texture nodes much but was experimenting with them today. From everything I have tried, the voronoi node always ends up kind of dark. I like the look of it, but the only thing that comes close in shapes while giving me the brightness I want is the Musgrave node. And it's still not really there. Can anyone help point me in the right direction? My node setups are below for each as well as a low sample Suzanne to help show what I'm talking about. The Musgrave gives much brighter color in comparison. Thanks in advance.

I would personally use the ColorRamp node. It permits not only to color but also to adjust the brightness of the result. This can help you: When can a Color Ramp be used to create a gradiant in a Cycles shader?


dynamic PropertyGroup / Panel I'm building a Blender (2.75) plugin for our 3D engine (https://github.com/aerys/minko). So far so good.

One of the things I'd like to do is to mimic Unity's feature that scripts can be directly added to scene nodes in the editor. Such scripts properties can then be edited directly through a dynamic property inspector built by parsing the script public members.

I've already done what I think is the worst part: using libclang and the python bindings to parse my C++ headers and retrieve a list of the public properties (each property being a public getter/setter pair). I can use this list to generate a list of Blender properties like so:

def get_properties(self):
    if not self._props:
        c = self._get_minko_script_classes(self._clangSource.cursor)
        setters = self._get_class_setters(c[0])

        self._props = {}
        for name, set_type in setters.items():
            if set_type == 'bool':
                self._props[name] = bpy.props.BoolProperty(name=name)
            elif set_type == 'int':
                self._props[name] = bpy.props.IntProperty(name=name)
            elif set_type == 'minko::math::ivec2':
                self._props[name] = bpy.props.IntVectorProperty(name=name, size=2)
            elif set_type == 'minko::math::ivec3':
                self._props[name] = bpy.props.IntVectorProperty(name=name, size=3)
            elif set_type == 'minko::math::ivec4':
                self._props[name] = bpy.props.IntVectorProperty(name=name, size=4)
            elif set_type == 'float':
                self._props[name] = bpy.props.FloatProperty(name=name)
            elif set_type == 'minko::math::vec2':
                self._props[name] = bpy.props.FloatVectorProperty(name=name, size=2)
            elif set_type == 'minko::math::vec3':
                self._props[name] = bpy.props.FloatVectorProperty(name=name, size=3)
            elif set_type == 'minko::math::vec4':
                self._props[name] = bpy.props.FloatVectorProperty(name=name, size=4)
            elif set_type == 'std::string':
                self._props[name] = bpy.props.StringProperty(name=name)

    return self._props

Now I want to display those properties (self._props) in a panel. But Blender examples are all about "static" property definition, declaring properties as class members... I guess Python would let me create dynamic classes definitions. But it sounds hacky.

So my question is: how to pass this list of Blender *Property to the UI to display it properly in a Blender friendly way?

Thank you,

Using Custom Properties (ID properties) works:

for key, key_type in props.items():
    context.active_object[MinkoScript.format_property_name(i, key)] = script.get_property_default_value(key)

In order to be able to iterate on a specific script properties to draw the panel, I also store the properties dict in an ID property:

context.active_object[MinkoScript.format_property_name(i, '$properties')] = props

Then in the panel:

for i in range(0, context.active_object['minko_num_scripts']):
    layout.label(
        context.active_object[MinkoScript.format_property_name(i, '$name')] + ':',
        icon='TEXT'
    )
    box = layout.box()
    script_id = 'minko_script_' + str(i)
    script_props = context.active_object[MinkoScript.format_property_name(i, '$properties')]
    keys = sorted(script_props.keys())
    for key in keys:
        row = box.row(True)
        col = row.column(True)
        col.label(key + ':')
        col = row.column(True)
        col.prop(
            context.active_object,
            '["' + MinkoScript.format_property_name(i, key) + '"]',
            text=''
        )
    row = box.row(True)
    row.operator(MinkoRemoveScriptOperator.bl_idname, text="Remove").script_id = i
    row.operator(MinkoReloadScriptOperator.bl_idname, text="Reload").script_id = i


Rain with water puddles Someone can help me? I'm trying to do like in this video https://www.youtube.com/watch?v=Ij-99hlCcCc rain with water puddle in asphalt, but this video is so fast and no explain how him did it
Here is perfect

But at render mode is a bit idk haha

It's how is now

Try this node setup. There are 3 components, the COLOR, the NORMAL, and the ROUGHNESS MASK. I show the whole setup in the first picture, and closeups of the node arrangements in the second and third. The last image is the final product.
The Breakdown is as follows

For the normal and roughness, I started with a scaled up musgrave texture to get a good small grainy look. However, this setup causes the unwanted effect of large dark blotches among the grain, so I copied the texture but increased the dimension which thankfully, provides only those big dark blotches. So, I subtracted the big blotches (top texture in graph) from the original musgrave image to leave me with just the grit. I also noticed while writing this that the colorramp I put In my graph was for my testing purposes only, and doesn't need to be there.
To compliment this texture arrangement, I slightly scaled down noise texture and used 2 different color ramps on the result. The ramp going to the ROUGHNESS, I clamped rather tightly, because I wanted blotches with sharp cutoffs (not as much greyscale) to use as part of the roughness mask. The other one I simply lightened the darks and darkened the lights slightly to soften the impact on the normal map. (These represent the big, not-shiny blotches you can see, but also warp the normal slightly - the road would  look too distorted  if I plugged it in at full strength)
I then mixed the two texture maps (the musgrave mix and the noise) to make a bump map that I could then use as the strength factor of a normal map. I also provided the color from the musgrave to the normalmap to help define the finer detail areas. For the roughness, I mixed the sharpened noise map with the musgrave mix (the musgrave doesn't need to be clamped like the noise - a smoother greyscale gradient helps simulate surface distortion caused by freshly fallen raindrops). I inverted this mix before using a roughness mask because for normals white represents high and black represents low, wheras for roughness white represents rough and black represents shiny. Usually you invert the roughness mask because "higher" areas of things are more prone to wear and therefore are first to become shiny (think of the dots on a basketball). To be honest, it doesn't matter as much here because all i'm defining is the difference between a wet ground and a "wetter" puddle. This arrangement happened to look the best.

For the color, my aim was simple, make 2 yellow lines and a dotted white line on a black background. The lines I was able to get by using a wave texture, scaling as needed until I had the right number of lines and mostly correct spacing - I further corrected the position and spacing  with the use of a texture coordinate node (typically use generated for procedural textures ) and a mapping node to be able to play with the positional values. To help with the line definition and colors I used color ramps, clamped rather tightly.
For the center line, It was simply a matter of making a solid white line in the center, and another wave texture with a bunch of dark lines. I rotated the bunch of white lines 90 degrees sideways using the mapping node, and then multiplied it with the solid line (with black and white, multiplication works because black areas stay black [anything multiplied by 0 stays 0], but white areas also get multiplied by 0 and therefore, subtracted].
I finally used a mix node to combine the color lines with the dotted white line.

Together, when all connected to the BSDF, they produce this result.

I hope this helps. Let me know what you think.
Cheers
EDIT - I have included the file of my setup here in case anyone wants to have a look. Just know, this is not meant to be perfect, just a quick, procedural rainy road. I'm sure many improvements can be made by playing with the values. I encourage you to experiment.
Link is here:
EDIT # 2 - So, I got fed up playing with the shader nodes... I think I've been at it too long. I'm much more familiar with Substance Designer's nodes, so I made this road material just for you. There is no need for any HDRI, scene lights will do just fine.
Files are here: https://drive.google.com/drive/folders/1v2_GDIgjTtdj6_2e22YH7535ZNPO9Wd2?usp=sharing
Here's how to connect them. Pay attention to a couple of things: First, the strength on the bump node, it's set to 0.1 on purpose - 1 is generally way too high. Also, the bright/contrast node is not necessary, however I put it there to be able to control the "darkness" of the road (level of white "stones"). Also, this will require unwrapped UV's, but since it's only a flat road you're making (a simple plane probably), this is well within the skill level of even the newest beginner. If you notice on the mapping node, I have the texture scaled 2x2. for the size of the plane I was using, this looked the best without showing any noticeable repeats. Adjust the scale as necessary to fit your project.

Lastly, if this material doesn't work for you (don't feel bad if it doesn't - it didn't take me that long ), you might be able to find others to your liking at free PBR material sites such as this one - https://3dtextures.me/
Best of luck with your video.
EDIT # 3 - MOVING THE RAIN
Ok, I posted a pic of how to achieve a pretty good approximation of the rain in motion. The secret is to add a VALUE node, but instead of choosing a number for the value, click on the field and type in #frame. This will cause the value to change with the frame as the animation plays. Connect this to the LOCATION input of separate mapping node connected only to the NORMAL MAP. However, the frame number in it's own it too high and would move the map too fast, so I myltiply it by something small (0.001) with a math node before connecting. When you hit play, the normal will be dragged diagonally across the x/y f the image. Try it out and see what I mean. Assuming you used the images I provided, the setup should look like this:


How to smooth a specific edge? I have had a problem dealing with this edge no matter what I do. As you can see I am trying to make a face and last time I checked nobody has a sharpish edge going down the side of their head. I've tried smooth, bevel, and subdivide and none have worked and if I move the vertices in it creates a indent instead. Do I just need to try harder to get the vertices right? Help.

Try 'Remove Doubles'. W -> Remove Doubles You may have two rings right next to each other. If that is the case, items like Bevel and Subdivide, will not smooth the crease any more, because there is no space between verts to divide.

But you will have to play with the settings in the Tool Panel, or you could remove too many vertices.


Image as Plane no longer shows texture in object mode I have just updated blender from v2.77a to v2.78.

When using image as plane the texture no longer shows in object mode after exiting wire frame mode.
Enabling "Textured Solid" under the display panel no longer works.

Is there an additional setting that is now needed to be enabled to view the texture in object mode again?

video of this working in previous blender versions

Here is the addon that i am using.

Image as Plane Addon

It's possible that the way you've been doing it is no longer supported. This should work:


Unable to align extruded text to grid bottom So I am busy modelling a simple keyring I would like to 3D Print. I add text (Each letter is a separate text object so I can extrude them to different "heights") so that the text alternates one high, one low:

The Issue I am having is that the characters are not all aligned at the bottom, and I need to print the bottom of all characters as a single layer on the 3d Printer. They need to all be aligned on the yellow line basically:

What would be the easiest way to align all the characters to the bottom of the grid so that the bottom layer will be one layer for all characters when 3D Printing?

You could set a driver to Z Location:

However, this can cause glitching in Edit Mode:

You could therefore use a Python script to align objects whenever you need - go to scripting tab, create a new file, paste the below and press the Play  button to realign:
import bpy

aligned_objects = ['Cube']

for name in aligned_objects:
    aligned_object = bpy.data.objects[name]
    aligned_object.location.z = - aligned_object.bound_box[0][2]


Why is using 'C.object.data.uv_layers.remove()' in a loop not removing all UV layers? After hours of arguing with my code (Trying to eliminate some uv_layers), I'm trying this script directly in the console:
for uv in C.object.data.uv_layers:
    C.object.data.uv_layers.remove(uv)

This is producing unexpected results, including partial, but not complete, deletion of all uv_layers (Uv Map)
I would have expected all maps to be deleted.
In addition in some cases I get strange errors, with uv_layers names that are not even present in the C.object.data.uv_layers list.
I would like to be sure that we are talking about a bug, in this case I would eliminate the question right away.
If not, I'd like to know if I'm doing something wrong.
A simple test is to add a dozen or more uv_layers, manually, and run this code
The result:

Try a while loop.
Rather than looping thru a list you are removing from, it is often a better to make a copy of that list and pop and remove until list exhausted.
Using pop() is taking from the end of the list.
>>> me = C.object.data
>>> me
bpy.data.meshes['Suzanne']

>>> uvlayers = me.uv_layers[:]
>>> while uvlayers:
...     me.uv_layers.remove(uvlayers.pop())


bpy add object in game is it possible to add an object inside the game engine with upbge 3.X.X while having game physics work properly ?
What I'm doing is:
patch = bpy.data.objects['Patch1']

for i in range(4):
    for j in range(4):
        if i or j:
            copy = patch.copy()
            copy.data = patch.data.copy()
            bpy.context.collection.objects.link(copy)
            copy.location = (i*256, j*256, 0)

This is connected to an 'always' sensor set on tap and does add my patches of ground as expected, but there are no physics and the player goes through the objects.
I tried adding

copy.game.physics_type = 'STATIC'

But this doesn't sort my issue.

you have to use own.scene.convertBlenderObject(bpy_object) to wrap it in a KX_Object / convert its logic


My object is keeping its original shape aswell as adding the additional movement I was trying to add the droop you see but the original shape was not changing when I did so. I checked and made sure I had no other duplicates and I don't.

Caught green handed. Your subdivision surface modifier is set to 0 subdivisions in the viewport (though the render levels are at 2). Also, it is animated. Right click -> clear keyframes, or any manual change will be cleared if you accidentally switch frames.


keyboard doesn't work with blender (OSX) I've got this issue. My keyboard works fine in OS and other applications but when I start Blender have to hold down opt or my keyboard writes signs like: "ß∂ƒ¸˛√ªﬁø" instead of "asdfgh".

Anyone know why this happens?

It's because OSX keyboards have their own Apple Mac layout, incompatible with Windows PCs Maybe the link below helps

https://support.apple.com/en-us/HT202676


Align edges and join/merge vertices without adding additional faces etc I'm new to blender and still trying to get to grips with some of the basics.

I've duplicated a section from one corner of my model and I'm now trying to attach a copy to the other 3 corners. The problem is I'm struggling to line up the edges perfectly and merge them. I don't want to use bridge or anything which adds additional faces/edges etc, I just want to merge the two existing edges into one to keep it the same dimensions as the original part I duplicated.

Is there an easy way to align these edges, move them together and merge/remove duplicate vertices?

You can use the snap to vertex functions, with the mode set to 'active', like this:

The first button marked with a red arrow activates snapping (however, you can use the Ctrl key as a much faster alternative. The second one allows you to set the snapping target, in this case vertices. The third one tells Blender to try to snap the selection based on the last selected vertex, the so-called active vertex (red circle). You can identify it by its color, in my theme white as opposed to orange.

Now, activate grab and move G and move the selection towards the target point. When you're somewhat close, the mesh should snap there entirely. Use 'remove doubles' from the 'Tools' Panel to eliminate overlapping vertices.


Switch from Armature Weight Paint to Hair Weight Paint? In Weight Paint mode, how do I switch from painting the armature to hair?  I am stuck on armature, and want to paint emission instead.

Weight paint mode doesn't paint "armatures" or "hairs". It paints "vertex groups" which are used in any way, may it be an armature, particles, objects relationships, modifiers influences, ...

So, to make it simple: you just have to choose which vertex group you want to work on, from the vertex group panel in your object data tab:


Absolute Location of a Mesh with Curve Modifier Applied I animated a plane moving continuously in the y axis. It has a curve modifier applied, and follows the curving path. A change in the planes x location is not reflected in the plane's object properties. I would like to use the perceived change in x location as an object input for animation nodes. Is there any way to see what the "absolute" location of the mesh is, where I am actually seeing it in space in object mode?

If you are using Animation Nodes, try to minimize your use of modifiers and constraints, because transferring data between blender and AN is not optimal. In this case, a simple spline evaluation or spline projection will give you what you want:


Syntax for operator Make Single User using the mesh data block so imagine you have two objects but they are linked so it is one mesh data block

The following command should make the cubes single users so that the mesh data blocks are not shared but it doesnt do it.

row.operator("object.make_single_user")

So I am curious how one has to add the value for the object + data:

bpy.ops.object.make_single_user(type='SELECTED_OBJECTS',
                                object=True,
                                obdata=True,
                                material=False,
                                texture=False,
                                animation=False)

or how one could call this menu:

The default options for bpy.ops.object.make_single_user() are all false so you need to specify at least one True option when you call the operator. When calling an operator directly you can just include the optional values in the call -

bpy.ops.object.make_single_user(type='SELECTED_OBJECTS', object=True, obdata=True)

When using layout.operator() in a panel or menu,  you can't pass options this way but there are two methods you can use. When you only have one option to set you can add the property to the operator line -

layout.operator("object.make_single_user", text="Object").object = True

When you need to define multiple options you need to keep the operator item that is created and then adjust it's properties. As shown from the make single user menu -

props = layout.operator("object.make_single_user", text="Object")
props.object = True
props.obdata = props.material = props.texture = props.animation = False

props = layout.operator("object.make_single_user", text="Object & Data")
props.object = props.obdata = True
props.material = props.texture = props.animation = False


is there any way i can use crossview3d while editing? there is a 3d viewing technique calld crossview. you basically cross your eyes until 2 side by side images match up and create a single 3d image.

i always thought beaing able to view models in 3d while working on them would be helpfull, and when i discovered crossview i thought: i need to be able to view blender stuff like this.

what im looking for is a option to have 2 views of your obj open at the same time with a bit of offset and be able to turn them both while editing. i know you can just open other views and try to align them but as soon as i turn my view only one turns.

help would be greatly appreciated.
-laurin

BTW: for some crossview examples check out /r/crossview

for blender v2.79 you can try this:

in the properties editor switch to 'Render Layers'
than activate 'views'
this defaults to 'Stereo 3D'
now go to the main menu 'Window' there is a new option 'Set Stereo 3D' - click it
here you can find multiple different ways - one is 'Side-by-Side'
if you choose it you can additionally enable 'Cross-Eyed'

for this to work you have to enter Full-Screen mode (Alt+F11).

additional information can also be found in this answer
and in the official documentation on multi-views


Can Grease Pencil work with 3D Scene/Objects in Viewport for Grease Pencil? Is it possible to use a modelled a hall, corridor-- throne room etc as background whilst using grease pencil for viewport working? So allowing you to have the 3D environment as background whilst you use Grease Pencil for the 2D animation?

Yes. Grease pencil objects exist in 3d space so they can be used in scenes together with traditionally modelled 3d objects.

This video shows regular 3d models being used as a reference in a 2d animated scene: https://vimeo.com/164067136


What techniques are the best to make a gradually curved surface for the side of a model train? (photo attached) I would like some advice before I start a new build. I am trying to work out the best way of gradually curving the sides of a train as per the image below. The sides (on most trains these are typically flat) are slightly curved and feature windows inset into them which I will need to model. I was wondering what the best way to achieve this would be in Blender? Would a bevel work and if so then are there any tips that could help as I have found that beveling things to get coplicated if there are a significant number of curved surfaces.

Any help would be very gratefully received.

Thanks

Personally I would not use a modifier to do this, but block it out low poly at first.

This was created (very fast) using extrude E, creating loop cuts ctrl+R then beveling these cuts Ctrl+B (using the mouse wheel to control the amount of bevel).

Windows are created with Ctrl+I to insert faces, then F3 to repeat the same insert amount for all the windows.

the side curve are created with a single loop cut Ctrl+R, and scaled on the width and beveled it out Ctrl+B to get the rounding.


Pull Apart Educational Model Is it still possible to make a model that I can export to somewhere and when viewed the user can interact by clicking on certain items for them to be hidden? I'd have thought the game engineer would have done that but I know that's been removed, it'd be nice if I didn't need to ship it to unity first.
cheers

So here is how you would do this using game logic. (The blend file at the end if you want to skip my explanation).

1) Connect an Always sensor to a Mouse actuator (the default state of this actuator is to make the mouse visible so you shouldn't have to change anything).

2) Where the yellow box is add a Boolean property and make sure it's starting state is True (checked).

3) Add two mouse sensors (as seen in the light blue box). Set one to Mouse Over and the other to Left Button. Connect both sensors to the same controller and make sure it is set to Add (that is the default). Now connect the Add controller to a Property actuator set to toggle the property you created in step 2 (see the dark blue box).

4) Add a Property sensor and set it to Equal "True" then connect it to a Visibility actuator in which Visible is checked.

5) Add a Property sensor and set it to Equal "False" then connect it to a Visibility actuator in which Visible is unchecked and Occlusion is checked.


Cannot get camera / lamp aligned after importing DXF file I have imported a DXF file in a new scene. When I add a sun lamp and a camera I cannot get them aligned. This imported 3D model has a scale of millimeters. I will attach the blend file

The problem is your dxf imported objects are by far too large, look how they compare to the blender grid!

If you select all them and scale them by 0.01 they almost fit again in the blender grid...

like this

now you can add a plane, a sun lamp and a camera and use them correctly

edit: expanding the answer to follow comments request.

I guess opening a new specific question would be better, but: dimensions are relative to the scene units and scale.

Try this: select a sample mesh (eg: a door panel) go into edit mode, select only a vertical front door edge (it should be around 2 meters). Now in the properties panel (N key) under "mesh display", enable "edge info: length".

if units are "none" what length does the edge show?

and what if units are "metric"?

that door is too high...

You can adjust to the right measure either

scaling the whole mesh accordingly (try scaling 0.01, and apply scaling)
scaling the scene metric units by the same amount (both will make your model sized more like the blender grid)

eg: method 2

I hope this help more...


Eevee Shader not showing in final render So i've tried to render this animation a couple of times, but in the final result it doesn't show the colors of the Sky(Plane) like it does on the sun. I used the same shader on both objects, just with other colors.
https://drive.google.com/drive/folders/1u0f0i5NZXxUbIkHjgmLmKPWjTaXAe_z9?usp=sharing
I hope that this link works.
Thanks in advance.
Edit: I tried it in Cycles and have the same problem as with Eevee. I also have added some renderresults to the folder.

In the particle system that is applied to the plane you need to check "Show Emitter" in the render tab.


Rotate snapping a bone between two vertices I thought it should be easy to pose a bone so it fits between to vertices: First move and snap the root of the bone to the first vertex v0, and then rotate the bone so that the tip of the bone snaps to the second vertex v1. (The length of the bone can be assumed to be almost equal to the length between the two vertices).
However, rotation snapping is mysterious: Its behaviour gives me no idea how this feature works. How does the rotation snapping feature works? How do I rotate and snap the tip of my bone to the other vertex? I want to move the bone from rest position to my new, precise position so that I can animate this movement.

IF you are animating this process you can create a IK bone constraint on the bone.
Snap the 3d cursor to the v0 location
Add a second bone in edit mode to be your target for the IK constraint. "target"
Snap the "target" bone to the vertex1 (edit mode on the cube, snap 3d cursor, pose mode snap target bone to 3d cursor).
Now you have a min-snap rig- that will drive your bone you want to animate and you can bake the animation down when you are done or leave the IK constraint on.


Using python to manipulate vertices I would like to perform the following things:

for the selected object get all the vertices, treat the vertices as a vector, perform a Matrix x Vector multiplication
do the same Matrix x Vector multiplication for all the objects on a scene

The purpose of this is to visualize the result of a given operation using concepts from linear algebra, but also have a quick way to manipulate the source (the 3D mesh).

So far I don't understand the reasoning behind the naming and the general design of the python API under Blender. Multiple things access the same information which is not always related to the name of the access methods used.

Sometimes the autocomplete feature CTRLSPACE gets in the way, for example

bpy.context.selected_objects[0]

with CTRLSPACE becomes

bpy.context.selected_objects[0]['cycles'].name

which doesn't seem to be a useful piece of information when there is no object named cycles.  Instead what I want is something like

bpy.context.selected_objects[0].name

Can show me how to perform these tasks simply?

You can do this by iterating through all of the objects in the scene which are found at bpy.data.objects. This is all the objects in all the all the scenes. You could also use bpy.contex.scene.objects which would be the objects in the current scene. Then you would want to make sure it was a mesh object by checking its type. Then get all the vertex positions, convert them to world space, and make them tuples, if you want. In the end you get this:

import bpy
for object in bpy.data.objects:
    if object.type == "MESH": #check if mesh object
        verts = [object.matrix_world * vert.co for vert in object.data.vertices] #get vertex data
        tup_verts = [vert.to_tuple() for vert in verts] #convert to tuples
        print(tup_verts) #display list

You could add tup_verts to a larger list if you wanted, and you can leave the positions as Vectors by accessing verts instead of tup_verts

In more recent versions of blender (>=2.80) it is necessary to use the "@" operator for the element-wise matrix multiplication instead of "*". I.e. "object.matrix_world @ vert.co". See this answer: https://blender.stackexchange.com/a/129474/22220


Vertex Group Weights disappear when I move the bone I have 'Vertex Group Weights' enabled in edit mode but for some reason the weight values aren't showing up on the mesh whenever I rotate a bone. I can assign a group of vertices a weight of 1 and it stays blue, and even when I cancel the rotation/relocation of the bone and go back into edit mode, it still hides the weight values.

I tried changing the 'zero weights' selection to Active and All but the problem was still there.
Is there anyone who knows how I could fix this?

Edit: Part of the project I was working on:

Every modifier has three or four display options.

The first one shows the result of the modifier when rendering.

The second shows the result in the viewport.

The third shows the result while in edit mode

The fourth shows the result on the edit cage while in edit mode. Enabling this only works when the third is enabled.

By having the edit mesh options disabled, you will only see the undeformed mesh in edit mode. Enable both of these to have the edit mesh follow the armature.

While in edit mode, selecting bones has no effect on the display of vertex group weights. Select a vertex group in the mesh properties to change the weights displayed in the viewport.


Limit Blender RAM usage? So Blender started crashing whenever I bake fluid for no reason (I mean no reason, discussion here). I'm thinking maybe reducing the amount of RAM it uses could help, but I can't figure out how to reduce it.

File > User Preferences > System > Middle Column at the Bottom (Sequencer / Clip Editor:) and reduce the Memory Cache Limit: value (I believe it's in Kb, but you would have to check that).


Using a bézier curve to raise/lower height of vertices? I would like to be able to modify the height of vertices on a plane using a bézier curve. I sculpted a example of what I would like to do:

For my case, I would need the deformation to be somewhat smooth (i.e. the change in height is greatest at points closest to the curve, and then dampening off as they are further away, until they are far enough that they are not changed at all).

Is there any way to achieve this?

I have tried going a different route, using the curve + array modifier but I end up with undesired results like this.

I am comfortable with trying to write a custom script if needed; but was wondering if there is already a built-in method or known plugin that does this?

You can, but you will have to use a workaround.

The principle is using a Vertex Weight Proximity modifier to influence displacement strength.

Issue is unfortunately you can't really use a bezier curve object directly, so you will have to use a mesh object with an Array modifier plus a Curve modifier to affect the displacement.

Just array to any mesh (possibly a simple cylinder) and add an Array modifier set to Fit Curve. Then add a Curve modifier on top of it, point it to the same bezier curve as described here.

On your (soon to be) deformed mesh create a vertex group and add all vertex to it. Then add a Vertex Weight Proximity modifier set to control that same vertex group in Distance to Geometry > Face mode.

Now add a displace modifier influenced by the above vertex group as described here, adjust values and distances as necessary.


Braided hose modeling HoW could I make braided hose like this, I know I have to use array but I have troubles making piece that should be arrayed.

Here is higher res but I don't need those single threads to be show but just single like in image above.

Here a more accurate answer.
And here is a simpler solution for the first picture (but you can use this kind of solution to fake the second one):

Create 2 bricks (front view), the proportion is 2 x 1 units, subdivide a bit, rotate them 45° and stick them together.

Use a first Array modifier to duplicate them on the X axis. Find the good Relative Offset value.

Use a second Array modifier to duplicate them on the Z axis. Again, find the good Relative Offset value.

Add a Simple Deform modifier / Bend mode, find the good Deform Angle value (more than 360°).

Add a Subdivision Surface modifier and press Smooth Shading.
To make it follow a curve, use a Curve modifier.


Where is the sculpt tool in 2.70? Im following the Blender 2.6 tutorial from lynda and I can't find the sculpt tool in sculpt mode in Blender 2.70.

In 2.6 the sculpt tool is under the texture now the only options I have are:

Texture
Stroke
Curve
Topology
Symmetry Lock

In blender 2.70 just as in 2.60 the Sculpt Tools can be found under Brush once in Sculpt Mode.

In the 3d header switch to sculpt mode, note your active selection needs to be a sculptable mesh

In the Tools tab at the very top you will see the brush section. Exapnd it and you will have access to the sculpt brushes


Access hair child strands (animation nodes) Animation nodes has a Hair Data node that allows you to get Splines from Particle Hair strands. However, it does not seem to output child hair strands. Is there any way to get the Child hair strands as splines or edges too?

Problem Definition

Animation Nodes provides a set of nodes that returns some information about particle systems, however, non of which provides any information regarding hair children, and this is a known limitation in blender.

To get around this, we shall replicate the children system in blender's particle system using Animation Nodes.

Inputs

Our input is a list of poly splines that represents the hair returned by the Hair Data Node :

Each of the following section will concern with on particular aspect about children, any section can be ignored if it has no need for you. We shall attempt to replicate all children options.

Children Generation

Given a single spline that represents a single hair, the simplest of things we can do to generate some children would be as following. We can make copies of that spline, move them around in random directions and return them. Animation Node have a particular node that does exactly that, the Replicate Spline Node:

Notice that the used transformations acts as offsets to the original spline locations, this is due to the fact that splines are described in global space, something we have defined in the Hair Data Node. So it is sufficient to use the output of the random vector node directly.

Tangent Based Offsets

The previouse simple method imposes certain effect that you might consider faulty, since the hair can move freely in any direction, it might move away from the surface and be considered detached from the mesh. A solution is to restrict the motion to the two axis that are perpendicular to the tangent. There are many ways which we can do this, the simplest of which would be to project the random vectors on the plane with normal equal to the tangent at the start of the splines:

Notice that the magnitude of the random vector may change based on the angle they make with the normal of the plane, so you might want to renormalize the random vectors accordingly. A more efficient method to do that same thing would be to compute two perpendicular vector that are perpendicular to the tangent, Animation Nodes already gives us one of those vectors, the Normal vector (Though it can still be computed by taking the cross product between the tangent and some arbitrary unit vector), if we take the cross product between the tangent and the normal, we will get a cotangent that is perpendicular to both vectors, if we define the random vectors as a linear combination between the normal and the cotangent, we will get similar results to the projection method:

Remember that a linear combination between two vectors is the sum of the vectors multiplied by some scalar, in this case, random scalars. This works because both vectors are linearly independent from the tangent, this guarantee there won't be an offset along the tangent direction.

Surface Normal Based Offsets

Using the tangent of the first bit of the hair spline may not achieve the result we are looking for, this is due to the fact that if the angle between the tangent and the surface normal at that point is high enough, the offset will still be away from the surface and subsequently it will look detached ! So a possible fix is to use the surface normal at that point instead, to get the surface normal at the tip of the hair, we can use the BVH Find Nearest Surface Point Node:

This, I think, is the method blender uses because it gives very similar if not identical results to the children hairs. It should be noted that this method is more expensive than other methods because it required BVH operations which are costly for large data sets.

Advanced Point To Point Offsets

To really get fine control over the output spline, we will take it a step deeper and edit the individual points of of the spline. We will first evaluate some points on the spline, get their locations, normals and cotangents, to get the cotangent, we use the cross product as we learned before. Then we create a loop that has two iterators which are some random values that we will use as scalars in the linear combination just as before, inside the loop, we perform the linear combination and create a poly spline from the result and return them:

Now that we have a good base children hair, we can go ahead and add some effects to it.

Clump Effect

A clump effect is making the hair closer to each other at the tip or the root of the hair, since we are actually offsetting the children's points, all we have to do is to scale down the offset factor based on the location along the hair, for instance, if we were to clump the hair at its root, will will multiply the scalars of the linear combination by some small value for points near the root and leave the scalars of the points at the tip as this, in other words, we will multiply all the scalars by values ranging from zero to one where zero is at the root and one is at the tip:

The added nodes are highlighted in blue. If I want the clumping to happen at the tip, I simply have to invert the values of the interval:

Let us take it a step further and control the clump factor using an interpolation curve, all we have to do is to evaluate the interpolation at the values we used before:

Which gives the effect:

Randomize Hair Points

Adding noise to the hair is as easy as adding the random vectors on the hair points, so I will leave this one to you.

Hair Trimming

We can trim hair using the Trim Spline Node:

We can also input random values from the trim node:

Which results:

Hair Noise

We can use Animation Node's noise functions to offset hair points and making it look a bit noisy:

Noise can be evaluated three times to construct a vector noise which can be add on the final point locations instead of the offset factor.

Curl Kink

Curl king is shaping the hair as a helix. This can be done by adding a vector defined by the parametric equation of the circle ($x = cos(t), y = \sin(t)$) where the parameter $t$ is a scalar multiple of the index of the point along each hair, this is exactly the equation of the helix except we are using the normal and contangent as the fundamental vectors of the space where is the normal helix equation is defined in terms of the $x$ and $y$ fundamental vectors:

Which results:

Notice that we can optimize the node tree by putting the interpolation and kink computations outside the loop since it is constant for all hair strands:

Radial Kink

Radial kink is making the hair oscillate as a sine wave radially around the base hair, so it is as simple as adding a sine wave by the factor we generated from the interpolation:

I have shown most of the effects achievable through hair children system in blender, there are millions of other ways to control the children, I think I have showed the workflow and you will be able to do whatever you want yourself. Finally, here is a sample blend file for a combination of effects to play with and explore:


Is there a way to make a ball bounce endlesly? (using soft body and physics) I can make a ball bounce endlessly by using keyframes - but i'm looking for that cool softbody+phsyics "giggle" when the ball gets when it hits the ground. Unfortunately i couldn't figure out if its possible to use physics and make the ball bounce endlessly (I mean from Z 100cm to 0cm and back to 100 and 0 again and again)

thanks in advance!

Basically prepare your physics simulation as you like, bake the frames, and apply cycles modifier in the graph editor


Blender's view distance can I make the blenders view distance much further?

Yes, you can.
When not in camera view,  like this:
For the camera view,  like this:


Having non-English Text in the addon code of blender I wanna have Persian text in the addon code of blender.For example I want to use this code: layout.label(text="سلام").
What should I've done?

Please help me.
Thanks in advance.

Enable international fonts in user preferences. Bottom right corner.


Chain addon question When you create chain, Blender add path called deform and rot_link which is empty.

I have extruded the vertices of deform path to make more links in the chain.

Now the problem is when is scale down the chain. Scaling down deform path, links are disapearing.

How to scale/manipulate the chain after you create it ?

EDIT: Make a chain, extrude deform a couple of times and scale down the chain, deform and rot link.

EDIT:  I have scaled down chain in edit mode. Is it possible to scale deform path so that it fits the length of the chain? You can see how path is way to bigger than chain itself.

To scale the links of the chain, you have the chain object selected and go into Edit mode. The links disappearing is a desired behavior, as the links are trying to fit the length of the deform curve.


Why does pressing a transform hotkey not display the axes on the selected object? I open Blender 2.80 (official release, not a beta or RC) and get the new scene with the usual 3 objects present (camera, light and cube). I select the cube, press 't' for the tools menu and click on the Move tool. The usual 3 axis glyph appears at the cube's origin as expected. But if I use the hotkey 'g' to activate the move transform instead of selecting the tool from the menu with the mouse this glyph does not appear. The exact same problem exists if I use the a hotkey for rotate or scale as well. Why? Is there some clickable checkbox setting hidden somewhere that could have disabled this?

That is by design. When you are using shortcuts you can restrict the movement to a single axis by pressing G followed by X, Y or Z. Alternatively to restrict the motion to only two you can use SHIFT + the axis you don't want any movement on. Therefore there is no need for the gizmo in that context.

If you want to enable the move version with the gizmo press SHIFT+SPACEBAR+G or you can right click on the icon in the toolbar and assign your own shortcut. Just make sure it doesn't conflict with any existing shortcuts.

The gizmos for translate, rotate and scale can be permanently enabled in the Viewport Gizmos.


Create edge loop with C select I have a lot of vertices forming lines.
From these vertices I want to create several edge loops.
I am now selecting them separately by clicking on them whilst holding shift and then pressing J to create the edge loop.

Because its faster I would like to be able to select the vertices by pressing C and then holding the mouse button and pan over them. But for some reason it does not create an edgeloop when I press J with this method.

Does somebody have a solution for this?

I'm not 100% positive I understood your question correctly, but here goes:

When you select vertices in a specific order by clicking each vertex individually, then Blender uses that order to join the vertices with edges.

When you use brush selection by pressing C then Blender does not get an order.
So now, when you try to join the vertices by pressing J, an error popup is displayed that says: "Invalid selection order"

To work around that you can simply press F instead of J to make a face of the selected verices and then you delete the face afterwards, so you end up with just the edges.

Here's a gif showing the whole thing:


Parenting fails: with the error "can only make proxy for referenced object" I am following the Blender fundamentals tutorial from the official Blender site. When I try to select the 3 cubes and do Ctrl+P, I get this error.

In fact I get that error even if I shut down Blender, restart and press Ctrl+P with just the basic cube after the startup and having done nothing else. Weirdly, after that selecting the objects doesn't work, pressing A to deselect starts the animation player. X doesn't work and a number of such things. This happens even after I reset to factory settings.

Also when I parent by setting the parent in the Object properties window it works without any issues.

I am running blender downloaded from the official site and installed in Ubuntu 18.04.

What is the problem? What can I do to fix this?

According to the commencts I decided to put the answer like this.

In situations where some shortcuts does not work like they should and restart of a program does not help then try to search for stuck keys (keys stayed pressed).

The question above looks like a keyboard problem (ALT key) and sometimes its really hard to find out!

Sincerely, Jan


zoom and pan are not working on the mouse Orbiting around objects with the  MMB, or ⎇ Alt LMB is working, and zooming is working with ⇧ Shift+/-,

However panning using ⇧ Shift LMB or ⎇ Alt LMB, and ⇧ Shift MMB are not functioning anymore. Neither is zooming in/out with scroll wheel. I've reset to factory defaults and restarted Blender several times.

My system:

  macOS Sierra
  Version 10.12.4

  MacBook Pro (Retina, Mid 2012)
  Processor 2.3 GHz Intel Core i7
  Memory 16 GB 1600 MHz DDR3
  Startup Disk Macintosh HD
  Graphics

  NVIDIA GeForce GT 650M 1024 MB
  Intel HD Grphics 4000 1536 MB

  Serial Number C02J71T5DKQ4

My storage and files are being accessed from an external drive.

after restarting Blender many times over 2 days, and loading factory settings, finally decided to try changing orbit turntable to trackball instead, everything worked normally again once I did that. Changed back to turntable and saved to test it, things still working normally. problem solved.(so far). i`ll update this if status changes again.


How would i go about creating a material where i can use a color ramp to control areas or total transparency? Title pretty much says it. I want to make a material where certain areas are completely see through. For reference i want the black areas of this material to be see through like air not glass.

use the texture as the factor of a mix node between the surface material and a transparent node.

Hope this helps.