Mesh in object mode shows up with 0 vertices, help? I got some weird issue, in object mode my selected mesh has 0 vertices etc

but in edit mode it shows the correct number of vertices(gewijzigd)

when I export the mesh it shows up empty as if there isn't anything
Anyone got an idea what's causing this ?

For some reason there was only 1 layer in the scene selected in the render layers tab which caused this issue. I've selected them all again and the issue fixed itself.


how to fix pupils (nodes) ive tried to make a black and white 2d mesh (the 2d mesh does have a curve however) i have used nodes to make a black, shiny mesh texture with glowing white pupils, however for some reason on my eye mesh the white pupils do not show,

on a plane mesh which is a 2d sphere, i get what im looking for when it comes to nodes, however if i try to bend this mesh in any way the pupils shrinks and disappears to the corner and cant be brought back.

this is the same mesh that i have moved with the sculpt tool

this is the mesh that i have made, this is the one that i need help with as the pupils do not show

the material says the pupils are there and yet there not, i know its something to do with the shape of my mesh probably however i need this exact shape for the rest of my character, so if you could help with this it would be most helpful, also this mesh does not have mirror modifier

it does work, it works well honestly, however though you mesh works fine, and mine works with it too
however when i try to move t it shrinks, though i might be because of the orb controlling the pupils needs to stay close to the mesh, my mesh curves a lot

this means the orb shrinks and disappears is there some way to control how far the pupil controller can be from the eye

besides from that the pupil works i just need to know if this new problem is easily solvable

Actually the problem is that you're deforming the object in 3D. The material setup, that works fine for a 2D object, will deform in 3D. You could fix that with the Mapping node, but as you want to animate the pupil, you need to find another solution, because animating with the Mapping node would be a bit tedious.
A quick way to do it is to create an empty, parent it to the head and give your Texture Coordinate the empty as Object:

Now when you move the empty the pupil follows. You can give it a Limit Location constraint (Local Space mode) so that it sticks around the eye area when you manipulate it:

A more accurate solution would be to give your eye an Image Texture and move the texture with the UV Warp modifier, see video here or Blender Stack Exchange answer here.


Render Animation on still scene, No BVH reloading I have a scene I would like to do a fly-through on. There are quite a few polygons. This means that blender spends quite a lot of time loading the scene before it stars to render it. It should not reload the scene because nothing has changed (except the camera). Is there a way to tell blender to only load the scene once and then just re-use what is in the RAM? I am using cycles.

In the performance panel of the render tab, check Cache BVH:

This will make Blender use the last BVH built when you press F12.

If you want faster render times for the viewport, change Dynamic BVH to Static BVH:


how to create cloth for animation? The shirt entered human object. How to correct the problem

You can use 3 different ways:

1 - Hide the underlying body and pants vertices with a vertex group assigned to a mask modifier

2 - create a shape key with a driver so that when the bones bend in such an extreme pose the shirt gets bigger and doesn't cross the body anymore

3 - Weight paint the body and the shirt exactly in the same way (if the topology lets you do this)


What would be a simple way to model a curved funnel? I'd like to model a surface like this curved funnel (pic from Wolfram Math World):

So far I've tried starting with a cone, subdividing it and scaling down successive rings of vertices, but it's a bit fiddly and the result wasn't great. Ideally I'd like a solution which doesn't involve too much vertex selection, so that I can implement it via the API.

Can anyone think of a better way?

You could make a bent line in the XY plane for example (1), a subdivision surface modifier and use a screw modifier (2) with

screw : 0
steps : as you like
angle : 360

(1)

(2)


How to inset and shear polygons evenly? I have sheared several parts of the mesh on the edge and trying to inset them evenly.
I have tried 2 methods (and also reset all transformations just in case it was a scale issue). But both of them I'm getting uneven results as seen in the examples.
If I use Boolean operation it will make a mess on the object, so I'd like to keep it with clean topology, so whats the correct method to getting the result?
Thank you.

The simplest workaround is to flip the order.

Inset/extrude first, so the geometry is even (check Offset even)
Shear the resulting geometry in any direction
Done


Erasing Alpha does not erase the Mesh in Texture Paint? I started texture painting this object. I came across the brush tool "Erase Alpha". So i started removing some of the mesh (at least thats what i thought) in solid view.

But when i go into rendered mode, it doesn't actually erase any of the mesh, it just turns it black. I thought that if it really did erase the mesh, i could have got the "ripped" cloth look i was looking for without remodeling the mesh. I guess there is no way to actually erase the mesh as easy as that?

I know there are better ways to create cloth, but its a low poly mesh so yeh. Any ideas?

In eevee you have to select the material and enable "Alpha something" as blend mode in the settings.


Shrink-wrap Objects Together? I'm wondering if there is any quick way to shrinkwrap objects together. For example, creating five spheres inside of an object, then mushing them all together to look like this:

If you're attempting to recreate the reference image, look at Metaballs. They're mathematically based geometry that have pseudo-surface tension.


I don't know why object has changed color Why is the color on the area near the mouth and nose of my model more dark? I can't change it and I don't know what is it. Even when I add texture it is visible.

From looking at your screenshot, it seems that your normals are inconsistent. To fix this,  Tab  into edit mode, then select everything by pressing A  twice,(assuming nothing is already selected in the scene) and press  Ctrl +  N to make your normals consistent.

You can usually tell if your normals have been flipped because the shading on your object will darken.


I want to make the head and arms as different objects which are as single mesh now with the bone structure intact I am a new and novice in blender.
I want to use the head and arms as separate objects than the body. But I have them attached together and the bones are also created and set as if they are together. Now I want to make the head and arms as different objects with bones as it was before ie without destroying the bone structure and its functionality. so that i can use them in unity and switch the head on and off.
Please pardon My English.

I'm not entirely sure if it does or doesn't corrupt your animation data as the weights possibly change but here a workflow worth a try:

Select the mesh and go in edit mode 'tab'.
Select the head press Y to split the geometry.
Repeat the process for the arms.
While still being in edit mode press P and select "separate by loose parts".

This should separate the geometry into parts. I'm not sure how this will affect the armature / binding and animations.
-> run an animation to check if that already solved your issues
If the bindings are lost (arms / head etc, don't react to the bones):

Select all objects you want to bind to the rig.
Select the rig last.
Press Ctrl+P and select "With Automatic Weight".

Run an animation - if the deformations are weird, you probably have to take a look into weight painting.


Why isn't my render matching up with renderview mode on blender 2.8? This picture is in render view mode

This picture is what happened when  pressed render image.

If it works by deleting a grass layer, then I suppose the issue comes from the particle's settings. Make sure this option in the particle's render panel is enabled:


object is no longer moving smoothly I do not know what I did to make it do this, if anything. After creating an eye. I went back to my other object to palce it inside of it. Resized eye. But now when I try to move it into place it moves in chuncks. Like it can only move by one of them "block sizes" in the graph that shows in the vewier. No longer able to move in minutiae movements.

Is that little magnet icon on your tool bar near the bottom (default area) selected? If yes then make sure it is not selected. It's that simple.


Is there a way to integrate other software in a Blender pipeline? I'm considering starting a small studio, but the people I know do not use Blender.  Is there any known way to effectively integrate other programs into a pipeline like Maya and After Effects with Blender?  I watched Francesco Siddi's talk on Blender Pipeline, but admittedly, I found it difficult to understand.

I used to be the supervisor of a studio where we are using Blender.
First, I implanted blender for modeling/UV, you can then export the mesh in obj or FBX and used them in any CG software (Maya, Max, etc ...)

Then we started to animate in Blender and render in 3DS Max with Vray, so all Modeling, Setup, Animation were done in Blender, then you export the all scene in Alembic, that keep animation data and you can load it in Max or Maya to make the render.

As for Compositing software, of course you can use any Blender render (use pass render in EXR) in Nuke, Fusion or After Effect.

So yes, Blender can be implented, in my humble opinion, in any pipe, and more easely if you are starting your own bussiness.

Hope it helps you


Lagging sculpting with over 1 milion polygons on a High-End PC As in the title I have the problem with non responsive scultping while I’m working on my T-Rex.
The brush is so delayed that I can’t sculpt, sometimes I have to wait like 5 seconds to see the effect, I tried to serach on the web how to resolve the problem but I couldn’t find anything, I will add that I’m not using any modifier and my PC specs are quite good:

CPU Ryzen 3900 12 cores
GPU RTX 2080 Super
RAM 32 Gb 3600 Mhz

(I have the lattest drivers)
Please help me I’m quite newbie, I was searching how to resolve it since yesterday and still nothing :(

I opened your file, and sculpting was definitely a little bit laggy, but nowhere near what you're describing (Having to wait 5 seconds before seeing the result of a sculpting change). However I managed to fix the problem by doing the following:

Hide the "Teeth", "Bones", and "Eyes" collections.
Important: Deactivate the Armature modifier from displaying in the viewport.

After I did this performance increased drastically for me.
Hope this helps!


Script or Command for selecting Adjacent Faces in Blender (see image) I'm looking for a way to automate the selection of adjacent faces through a script, which I could then assign to a hotkey in Blender.

I come from Maya, which doesn't have this ability either, but I was able to make a Mel script that does this type of selection for me with the following steps.

1- Store the current selection of faces in a variable.

2- Expand the selection once ("ctrl +" is the blender equivalent).

3- Subtract the faces I stored at the beginning from my current selection.

4- The polygon border remains!

Is there a way to achieve the same thing through a blender script, or maybe there's an existing blender command I'm unaware of? Even if there is some methodology for doing this in blender, the one-key-press automation is my ultimate goal.

Bmesh and sets.

Use sets because there will only be one instance of an item.

One set is our selected faces.

For all the vertices in each selected face, look at the link faces loop (all edges connected to that vert) and add any face that isn't  already selected to another set.

import bpy
import bmesh
context = bpy.context
ob = context.edit_object
me = ob.data
bm = bmesh.from_edit_mesh(me)

sel_faces = set(f for f in bm.faces if f.select)

grow_faces =  set(fs for f in sel_faces for v in f.verts for fs in v.link_faces if not fs.select)

for f in sel_faces:
    f.select = False
for f in grow_faces:
    f.select = True

bmesh.update_edit_mesh(me)

Note: For keypress operation convert this into an operator, because I'm feeling generous here is above pasted into Text editor > Templates > Python > Simple Operator

import bpy
import bmesh

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

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

    def execute(self, context):
        ob = context.edit_object
        me = ob.data
        bm = bmesh.from_edit_mesh(me)

        sel_faces = set(f for f in bm.faces if f.select)

        grow_faces =  set(fs for f in sel_faces for v in f.verts for fs in v.link_faces if not fs.select)

        for f in sel_faces:
            f.select = False
        for f in grow_faces:
            f.select = True

        bmesh.update_edit_mesh(me)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.object.simple_operator()


Is it possible to make a sequence of renders and give the user the option to cancel the process through the UI at any given time? I'm trying to make a script where I have to render several images of the same scene at the same frame, and write to disk with appropriate names. The problem is that although this works fine with a non-responsive UI, it doesn't work well when the render progress appears in the Blender UI.

I mean,

bpy.ops.render.render()

uses "EXEC_DEFAULT" when called from a script. This leaves a blocked User Interface until the render finishes, meaning that you can't cancel the process, except by killing Blender. The problem is that the render may be too big in resolution, and the user could want to stop the process when realizing that the render could take hours, so the idea is to cancel this process without losing the currently opened project.

If I call,

bpy.ops.render.render("INVOKE_DEFAULT")

I get a nice preview bar in the Info Window with a clickable "X" button.
I want the user to be able to press that button to cancel the operation if needed, but for a series of renders (not animation).

The problem here seems to be when trying to loop this command with the INVOKE_DEFAULT context to write several renders. I made a lot of testing, and this way of calling the render operator seems to continue with whatever is next in the script, so it loops very fast and ends before the rendering actually finishes.

I think that I need some way to stop the script and make it wait until render finishes to continue looping with the next ones. I tried the "render_complete" and "render_cancel" handlers, but I can't use them to start a new render or even make the rest of the script wait until the loop of renders is complete. I tried threading and events without success either. Maybe I'm doing something wrong.

import bpy

render = bpy.context.scene.render
path = render.filepath = "/tmp/"
shots = ["one", "two", "three"]

for x in shots:
    render.filepath = path + x
    bpy.ops.render.render("INVOKE_DEFAULT", write_still=True) # this doesn't work

    # but if I use:
    # bpy.ops.render.render(write_still=True)
    # without the INVOKE thing, images are written as expected,
    # but losing the possibility to see the progress and cancel rendering

Yes! This is possible.

I finally managed to get it to work in a loop.
The current solution allows to cancel the operation with the X button in the Info Window and the ESC key. The images are rendered in sequence on the same frame without the need to create additional scenes or keyframes.
Render handlers are used to know the moment when a new render can be started. Then, a modal timer is used in a loop to start the render when it becomes available. I think this timer should be similar to the wait method of the threading.Event() object, but I failed making it to work with the render operator that way.

The problem with builtin modal operators like render.render is that these need to be wrapped and executed inside a modal loop to work correctly. If this is not the case, the older job locks, and prevents subsequent renders to spawn and start, making basic loops pretty useless. This is why additional scenes don't make a difference, because a render job can be executed once at a time in a blender instance.

So, to make it work, a new operator needs to be created. The actual render process stays inside the modal method, and handlers take care of signaling.

import bpy

class Multi_Render(bpy.types.Operator):
    """Docstring"""
    bl_idname = "render.multi"
    bl_label = "Render multiple times"

    # Define some variables to register
    _timer = None
    shots = None
    stop = None
    rendering = None
    path = "/tmp/"

    # Define the handler functions. I use pre and
    # post to know if Blender "is rendering"
    def pre(self, dummy):
        self.rendering = True

    def post(self, dummy):
        self.shots.pop(0) # This is just to render the next
                          # image in another path
        self.rendering = False

    def cancelled(self, dummy):
        self.stop = True

    def execute(self, context):
        # Define the variables during execution. This allows
        # to define when called from a button
        self.stop = False
        self.rendering = False
        self.shots = ["one.png",   # I'm just rendering 3 images but you
                      "two.png",   # can adapt to your needs
                      "three.png"]

        context.scene.render.filepath = self.path

        bpy.app.handlers.render_pre.append(self.pre)
        bpy.app.handlers.render_post.append(self.post)
        bpy.app.handlers.render_cancel.append(self.cancelled)

        # The timer gets created and the modal handler
        # is added to the window manager
        self._timer = context.window_manager.event_timer_add(0.5, window=context.window)
        context.window_manager.modal_handler_add(self)

        return {"RUNNING_MODAL"}

    def modal(self, context, event):
        if event.type == 'TIMER': # This event is signaled every half a second
                                  # and will start the render if available

            # If cancelled or no more shots to render, finish.
            if True in (not self.shots, self.stop is True):

                # We remove the handlers and the modal timer to clean everything
                bpy.app.handlers.render_pre.remove(self.pre)
                bpy.app.handlers.render_post.remove(self.post)
                bpy.app.handlers.render_cancel.remove(self.cancelled)
                context.window_manager.event_timer_remove(self._timer)

                return {"FINISHED"} # I didn't separate the cancel and finish
                                    # events, because in my case I don't need to,
                                    # but you can create them as you need

            elif self.rendering is False: # Nothing is currently rendering.
                                          # Proceed to render.
                sc = context.scene

                # I'm using cameras named just as the output files,
                # but adapt to your needs
                sc.camera = bpy.data.objects[self.shots[0]]

                sc.render.filepath = self.path + self.shots[0]
                bpy.ops.render.render("INVOKE_DEFAULT", write_still=True)

        return {"PASS_THROUGH"}
        # This is very important! If we used "RUNNING_MODAL", this new modal function
        # would prevent the use of the X button to cancel rendering, because this
        # button is managed by the modal function of the render operator,
        # not this new operator!

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

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

if __name__ == "__main__":
    register()

    bpy.ops.render.multi() # Test call

I hope this can help others if in the same situation.


Realistic deep water shader How would you go about creating a realistic deep water shader to depict a scene such as this one from blue planet II? I tried with a volume scatterer but had mixed results. Ideally it would be amazing to tie the shader to the water's depth, thus simulating everything from shallow waters, twilight zone, and the deep.

All you need is the Principled Volume shader.

Create a volumetric cube
Give the volume a very light color, and use Density to control it
Use real units for light intensity (lumens). Related answer: Simulating a 40W Light Bulb.

Lights: 10 million lumens (a really strong searchlight), Density: 0.1, Samples: 2000 + Denoiser


How to delay explosion animation How can i delay the explosion animation? it is starting the first frame. I want to start other frames, for example 50 or 80. how can i do that? i try to change active to passive from rigit body. but it is not work!

Ok. i did find. how i will do that. you can look that image:


Add Edge to face deleted I removed faces from my object. It is mirrored but I want to add faces back to form an L shape closing the geometry with faces.
I highlighted where I want to add the lines. How do i do this with its vertices so I can still select them and fill them with F?

Thank you in advance.

Select the front two middle edges (like in the image below).

Turn on vertex (or edge) snapping, and extrude those selected edges along the Y axis to the middle.

Now select the pairs of edges to create the new faces.
In this image I already filled one face and have another selection ready for filling.

Do note that this does create a triangle in the corner, depending of what you are going to do with this mesh that may be undesirable.

Now here is an animated gif of the whole process.

Another way, if you have the F2 addon enabled, is to select the corer vertex and simply press F. Repeat for the bottom three faces. Then fill the vertical faces like before.


Turbulence particles not working? Ok, Im trying to mimic the "firefly" particle systems available in unity, where the particles "glint" but more so move around in a swarming way:
https://www.youtube.com/watch?v=9O5XU_jshBU

Ive just turned off gravity and added turbulence to my particle system, however Im still not getting the swarming:

What is wrong here?

You should add a Force Field. [Shift + A] -> Force Field -> Turbulence

Make sure it's in the same layer as the particles object you want to affect, to get the a turbulent flow of the type you linked.

It looks like what you did was add turbulence to the Particle System in the Force Field Settings tab, which makes each individual particle act as a force field (if you turn on Self-Effect in that tab, you'll see how this affects the particle system).

The Field Weights settings tab controls how much each type of force field affects the particles.


How to apply the texture on the model The sleeves have been correctly unwrapped, but why don't I see the texture applied?

It seems like you have only opened the image in image editor but you haven't given your material the image texture.

You can give your material image texture by clicking the yellow dot next to Base color and by choosing Image Texture.

Next press Open and find your image.


Why won't this fluid simulation bake? I have a scene which contains a creek. This creek continues to the very bottom of the scene and has a depth of approximately 25 default cubes. I have my fluid domain that surrounds the inflow object, outflow object and also my creek.

The problem is when I hit the 'Bake' button (final frame - 65). The fluid simulation progress bar which appears above the scene gets stuck at 0 percent progress all the time. After a while it goes invisible again.

When I came up with this error I opened another project and created a default cube as domain and inflow and it worked! After that I returned to my creek project and did the same things and it didn't work.

I did some research on the web and a lot of people says that "you should play with the variables of domain" but there has to be a solid solution for this.
This is my scene.

I've had a similar situation while modeling a complicated scene in a bottle. It works eventually; but there seems to be some kind of pre-caching and precalculating involved which is related to the obstacle complexity. For me, on a reasonably good machine, I was at around 10 MB of memory with a lot of wiggling for the fluid to do, and it was close to a minute of wait time before the meter started to move.

I would suggest starting with some simpler subset of your scene, and verifying that the fluid simulation works as intended. I would also suggest at times of long 0% waits simplifying your modeling to rely on the fluid sim as little as possible.


How can I translate & rotate an object to match a pair of xyz coordinates? I'm trying to script the modeling of a set of 3D vectors. For a given vector, I have the start and end points in 3D space -- for example from 1,1,1 to 2,2,2. I'm not sure of the best way to approach this problem.

I'm imagining a cylinder with a cone on the end ("arrow") all grouped together that is located in some arbitrary location but with a unit length (e.g., 0,0,0 to 0,0,1). My inclination was parent the arrow to a bone and the translate the bone to the first position, followed by translation of the other end of the bone to the second position. Since the arrow is radially symmetric, rotation won't be an issue.

This solution seemed convoluted to me though (building an armature, etc.), since I have the endpoints where the geometry should go. It seems like there should be a way to translate the central node of the cylinder to point 1 and then translate/rotate the node at the tip of the cone to point 2.

I have read some of the other questions about orienting lights to normals (here, here, here), or rotating planes to be normal to a point, so I think the solution might be along those lines.

How do I construct a transformation matrix from 3 vertices? gives a generic technique to convert a triangle into a transformation matrix.  You could use this to pick a transform matrix to apply to a generic cylinder.

If you don't like the choice of X as the primary axis, you can rearrange the arguments to Matrix([a2,b2,c2]) , although some of those orderings will be left-handed instead of right-handed, requiring you to reverse one of them.  For example Matrix([b2,a2,-c2]).

Also, since your use case only includes 2 points, you'll need to pick a 3rd in order to construct the matrix.  If you know something about the direction of the pairs of coordinates and can guarantee a 3rd coordinate that will always be non-colinear, use that.  Otherwise, you'll have to add a little bit of logic that checks for things being "too colinear" and using a different 3rd axis.

If you want your cylinder to stretch with the distance between the points, you can use non-normalized a instead of a2.

If this narrative is a little too vague, go ahead and request some refinements in the comments.


Can I block the area of a face (the surface) and then have one axis length automatically changed? I want to explore different possibilities with the same M2 that I need, is for an architectural purpose, I want this process to be easier and not to calculate the distance every time I change one side. The image is an example of what I´m looking at

This would not be possible for single faces in vanilla Blender.  There may be an add-on for this somewhere.  One of the main problems is that faces aren't always rectangular quads aligned on an axis.  Once you get out of that realm, the math can become pretty messy.

There is a way to do this in Object Mode, though, for whole objects using Drivers.  The only problem with this method is you can't add a Driver to the Object Dimensions.  So we must Drive the Scale of the object instead.

I won't go into all the ins and outs of creating a driver because that subject is well documented.  A great intro video tutorial can be found here: https://www.youtube.com/watch?v=BJJJpWcxp0o

This will show how to scale proportionally in the X/Y direction:

1.) Create a Single Driver for the X-Scale of the cube.

2.) Create two custom properties: "Area" (for the desired L x W area) and "X @ Scale 1.0" (to describe the X dimension when the Scale is at 1.0).  The reason we need the latter is because we cannot use the actual X dimension, since we are using the driver to change that dimension, which would create a circular dependency.

3.) Use the following for the Driver expression: (Area / Y_Dim ) / X_Dim  -- where Area = the ["Area"] custom property, Y_Dim = the actual Y Dimension of the object, and X_Dim is the custom property ["X @ Scale 1.0"]

The relevant information is highlighted with red.  After setting the Y-Dimension to what you want, it will be necessary to click the "Update Dependencies" button to get the most accurate X dimension.  Click the image to enlarge:

If you Apply the Scale you must change the ["X @ Scale 1.0"] Property to reflect the new value.


Using some kind of unit of measurement for scale? So I'm not very experienced in making scenes. So for my first attempt at doing so I want to make a scale model of my apartment. I'd like to make it last night and still possible, but I don't know how to turn gauge what the foot is in blender. If there's no built-in function for this, is there some way I can measure things to some kind of equivalent scale?

In fact Blender could be switched to Metrics or Imperials using menu shown below...

...in my case, every single "rectangle" of the grey grid is one square metre. After switching to this You will be able to simply put the EXACT data in the "N" menu (right one) of your ViewPort where the Location or Size is (Location could be seen on the picture).

Hope it helps buddy, Jan.


bpy.data.libraries.write not working? I want to save selected objects into a separate .blend file in 2.8.

https://docs.blender.org/api/blender2.8/bpy.types.BlendDataLibraries.html
suggests:

import bpy

filepath = "//new_library.blend"
data_blocks = set(bpy.context.selected_objects)
bpy.data.libraries.write(filepath, data_blocks)

I created a blank scene, added two spheres to it and saved everything.
Afterwards I selected them both and let the script run through: A ".blend" file gets created, however it doesn't contain anything.

I re downloaded 2.79 and got the same result. So I am unsure where the problem lies and don't want to file a bug report immediately without having some outside input. Could somebody please clarify things for me, please?

Check the data

Chances are   the objects are saved to the library blend, . but are not linked to any scene, or collection, hence the file appears empty when opened.

Check the library files bpy.data.objects collection to confirm.

Consider adding the scene datablock to the library.


How can I make my own mesh and add it to Addmenu > Mesh? As Blender is an open-source Program of coarse I can Edit its program files !

I want to make my own mesh (Car/Bus/) and I want it become a a regular mesh In add menu like a cube,sphere (Because I use it many times)

Why?

I do not want my mesh to be in file and every time i want to use i must imported.

How Can i Make it ? - Of coarse it will be made with Python - ( Are n't I right ? )

N.B :
Plese in answer Be ware that i am new to blender python. bpy.

Refrence

Consider that this is my mesh:

And I Want Its Shortcut in This Menu Here:

You'd have to create your own add-on for this. First create a Python function that creates the mesh, then create an operator to call that Python function, then add the operator to a menu. There are loads of online tutorials on how to do these things; the Blender API documentation is a good start, as it also includes information about best practices and common pitfalls.

You can check out the built-in Add Extra Objects add-on to look at similar functionality.


Make a hollow Minecraft build solid I have an .STL file of a Minecraft building which I would like to 3D print. The building itself is "hollow", but I understand that in the world of 3D rendering, there is no such concept - just vertices and edges.
So the issue I'm having in Blender is that the building is made of units of blocks which themselves are solid, but together create an overall model which is hollow. Thus when attempting a 3D print, the hollow inside of the building is not being infilled which is causing problems.
I just care about the exterior of the model. How do I edit the model in Blender to in essence "fill" the interior of the model? I thought of trying to select all the exterior vertices, then invert, then delete the interior vertices, but that did not work in my case and is unreliable/tedious. I assume there is a proper way to do this anyway (I am relatively new to Blender).
Edit: (Link to file): https://pasteall.org/blend/510d7027732e4e07be713198e682c060
Photos:

The first image is the exterior, the second is the hollow interior. I just want to print the exterior shape as if the whole model were totally solid. How can I achieve this. Thanks!

For 3D Printing, what you need is a "watertight" or "manifold" model. Both terms mean that there are no holes in the exterior of the geometry, but more importantly, no internal faces, which is what you have here.
A great addon for checking your model is the 3D Print Toolbox, which comes standard in Blender, you just need to turn it on!
The simplest way to fix this is to use a Remesh modifier, this will recalculate the object into "voxels" (3D cubes) of a specific size that you can define based on the exterior. This, however, is VERY CPU heavy! It's REALLY slow to calculate!
There is a MUCH better remesh option though. It lives either in the tools panel in the sculpting mode, or under the Remesh tab in the Object Data Properties tab.

0.1mm setting is more than good enough for 3D Printing. But be warned, this is still quite CPU intensive!
For your model, you may need to leave it for a few hours depending on how powerful your PC is!


Rigging Clothes To A Character I've spent the entire weekend trying to get a grasp on how to rig clothes to characters. I feel like I've tried every possible solution on google and YouTube. What I've done is imported a character with a rig on it, tested before hand the rig itself works perfectly. From a cube I modeled a primitive shirt design, added a Sub Surf modifier and a Shrinkwrap modifier. I parented the Shirt to the rig, clicking the shirt first, holding shift and selecting the rig 2nd, parenting it using the Armature Deform With Empty Groups. Then added the Data Transfer modifier as you can see in the picture. If the modifier is first or applied the shirt modes on the Z axis slightly towards the characters head and is not rigged. When going into pose mode and moving any of the bones, the Shirt mesh completely stands still. Am I doing something wrong or missing a critical step? Any help or guidance will be greatly appreciated. Thanks ahead of time!

Hi Nathan, I appreciate you taking the time to answer my question. But after reading all of that, Its honestly just created more questions in my mind instead of answering any.
1. You say "(With the armature modifier. Use ctrl-p armature deform.)" What do you mean with the armature modifier? Also I'm not supposed to do ctrl-p armature deform with empty groups? Everywhere else I've ever seen people do it they use empty groups.
2. You say "because you don't want to transfer from a posed character, you want to transfer from an unposed character and only then pose both the character and the clothes." I'm currently using Adobe Fuse CC to create my characters, defaulted they come in T-Pose mode. Would this be considered a pose even though its defaulted like that? If so what would be an non-posed character? Because technically in order to get the character in any other position that the defauled one, I'd have to pose it.

I've reread your comment probably 30 times trying to understand what you mean and trying different things, but I just cannot get it to work.

A data transfer of vertex groups, all on its own, will do nothing to deform a mesh.  For good or ill.

Please forgive me if I'm telling you something you already know, but it's necessary to parent the shirt to the armature after applying the data transfer.  (With the armature modifier.  Use ctrl-p armature deform.)

If the shirt has any other deforming modifiers limited by vertex groups, data transfers can affect those as well.

It's common for armatures to have slightly different positions in pose as opposed to resting, even without any explicit pose, just from constraints.  Remember that your data transfer modifier will transfer from its target's final, modified position.  It's very easy to data transfer from a model that is slightly deformed from its own armature modifier, and this is not usually what you want.  Consider carefully your target before applying the data transfer, consider which modifiers you want visible for purposes of the data transfer.  You can always disable them temporarily, then re-enable them after the modifier.

You usually want an applied data transfer for this purpose, unless you have an unparented copy of the model somewhere, because you don't want to transfer from a posed character, you want to transfer from an unposed character and only then pose both the character and the clothes.

Finally, even though you didn't ask, unless your shirt mirrors the topology of the data transfer target, you probably don't want to transfer from nearest vertex.  Transferring from nearest face interpolated is likely to give better results.

Edit: I'll try to answer your questions.

When you select a mesh, then select an armature, then hit ctrl-P and use one of the armature deform techniques, it does at least two things: it parents your mesh to your armature, with a child/parent relationship exactly the same as if you parent a mesh to an empty; and it creates an armature modifier.  Parenting alone is not-quite necessary for armatures to work, but the armature modifier is essential.  So when I wrote,

  (With the armature modifier. Use ctrl-p armature deform.)

I was clarifying that parenting alone was not sufficient to get deformation from an armature; the armature modifier has to exist as well.

  Also I'm not supposed to do ctrl-p armature deform with empty groups? Everywhere else I've ever seen people do it they use empty groups.

I'm afraid I don't understand this question.  When you use ctrl-p to parent an armature to a mesh, you get a few armature specific options.

If you choose only "Armature deform," the action will not change any vertex groups on the model.  Any deforming bones that happen to have the same name as existing vertex groups will function fine, because you already have vertex groups created for them.  I consider this the correct way to parent a mesh that is already weighted.

If you choose "armature deform with empty weights", it will create vertex groups for any deforming bones in the armature that do not already exist.  No vertices will be assigned to any of these groups, but any already assigned will remain assigned.  If a vertex group already exists, it won't be changed.  Using this to parent an already weighted mesh to an armature is fine.  But its more typical use is simply to prepare an unweighted model for manual weighting.

If you choose "armature deform with automatic weights" or "envelope weights", it will create any vertex groups it needs (deforming bones) and it will write values into those groups.  If those groups already exist, any values in them will be overwritten.  So you shouldn't use this method to parent a model that already has weights that you want to keep-- like weights from a data transfer.

  defaulted they come in T-Pose mode. Would this be considered a pose even though its defaulted like that?

If the model with only an armature modifier is in any way different from its edit mode position, it is posed.  If it is not, it is not posed.  As I said, sometimes posing is subtle, and sometimes it is generated by constraints on an armature rather than due to any manual animation.  The safest thing to do is to disable any armature modifiers on the target of a data transfer modifier before applying that data transfer, and then re-enabling it afterwards.  An alternative would be to select your armature, and in the armature tab of the properties view, set the armature to rest position.


Howcan I apply the material changes I did for a cube? The material on the right is golden but the cube is not.

change view mode from solid to material to see shaders in viewport


How to scale a light's size , and strength proportionally with the rest of the scene in Cycles? I have a question regarding the scaling of lights alongside the scaling of a scene in Blender.

Say I have a scene consisting of a plane acting as a surface, and a simple white UV Sphere. Both are at their default size

I have an Area lamp shining directly perpendicular to the top of the UV sphere. The Area Lamp is at a distance of 6 units on the Z-axis, while the UV is at 0 .

I want to scale the entire scene down by a sixth of its original size. I can scale both the plane and sphere by 1/6 to reduce them to a sixth of their size

However, when I do the same to the area light, and reduce its strength and size by sixth in the material editor, it simply does not light the scene the same way as prior to scaling

So with that, comes my question. How do I scale everything in the scene , lights included , while also maintaining the same distance between mesh and lights, proportionally so that they look the exact same as before in the render,  with only the scale values affected?

As you can see in following images,first image  is how it  looks un-scaled. This is how the scene should LOOK

In the second image, Mesh,plane are scaled by a sixth, light strength size scaled by sixth. Still does not look like first image at all

You need to scale the light intensity according to the inverse square law. [Calculator]

When dividing scene size by 6, divide light power by 36.
When dividing scene size by 10, divide light power by 100

Important note:
Point and Spot lights don't change their Size when scaled with the scene. You need to change their Size manually in the Lights panel. Area lights scale properly with the rest of the scene.

Example:
Scene scale divided by 6. Point light Size also divided by 6. Point light power divided by 36.


Edge Loop creates duplicate in 2.8 Using the excellent tutorial by Andrew Price for intro to blender, I reached the point where he is making bendy sprinkles.  Using the edge loop just as he did doesn't bend the sprinkle; it creates some form of extrusion or duplicate, as shown in the screenshot.

What am I doing wrong, here?

Thanks in advance for any help on this question.  =)

BB]1

It looks like, for some reason, the vertices at the bottom of the top cap and the top of the bottom cap have been duplicated -- so there's a "hidden" set of faces in the middle, which you're exposing when you bend the other set out of the way.

If I'm right, fixing it will be easy. There are two options:

If you can still undo the "extrusion": in Edit Mode, select all of the vertices with A. Then hit Alt-M, and click "By Distance". This will automatically merge all vertices that are within a certain very small threshold from one another, removing duplicates. After you've done that, you should find that the loop cut step works as expected.
If you've already committed to the "extrusion": Select the extra faces (the ones that weren't affected by your loop cut) and delete them with X. Then do the same as I described above to merge the extra vertices.


How to import model along with embed texture in blender? I have a FBX model with embed texture. When I import the model in blender the model get import but not its texture. Model has a bitmap texture folder from which it has to call texture. Now how can I call all the texture from that bitmap folder so that the FBX model import all the textures.

first: Activate the node add ons
Second: In shader editor: click in principled bsdf, after press shift + ctrl + t, and select all texture


What setting should I use to keep the same quality of video file? I've used Blender to edit video, but can't find necessary settings for audio/video: my file becomes much bigger or smaller than it should. All what I did is removed about 5 seconds of audio. After render I feel difference in sound, its tone becomes more deep, and probably less in quality.
Original was: 262.8 MB. After rendering it became: 285.5 MB.
I tried to use H.264 video format, lossless output, FLAC audio format, in that case I get file with size of 1.4 GB.
I wanna know how to keep the same quality or at least what settings would be maximally close to original quality.
Properties of the original file:

  Duration: 00:02:43.50, start: 0.000000, bitrate: 12859 kb/s
    Stream #0.0(eng): Video: mjpeg, yuvj420p, 848x480, 12794 kb/s, 30 fps, 30 tbr, 30 tbn
    Metadata:
      creation_time   : 2014-05-16 18:00:29
    Stream #0.1(eng): Audio: pcm_u8, 8000 Hz, 1 channels, u8, 64 kb/s

Here's my rendering settings:

I wanna know how to keep the same quality or at least what settings would be maximally close to original quality.

The short answer is you can't; migrating to a codec will always result in a degradation of the nebulous term “quality.”

If one speaks of quantization quality, the source RGB will be degraded. If one speaks of a general “perceptual” quality, the source RGB will also be degraded.

Encoding is an extremely complex domain, with content of work factoring into the resultant encode, as well as many other subtleties.

Best advice for optimal perceptual encoded quality is to remember BINAE; Blender Is Not An Encoder. Use an appropriate tool such as FFMPEG to encode material.

Some additional complexities outlined here.


How to get the selected bone's selected order in python API After selected several bones in Edit mode, Let's say 3 bones in order of name "A", "B", "C". When I check the selected_bones array index from 0 - 2, the order of the array is not selected order but something different(BCA or CBA something doesn't much to actual selected order). It seems the order is an order that I can see on the outliner window. But I would like to know the selected order of bones for script that I made for renaming bones. Is there a way to get that data? Thank you.

You can use a modal operator to handle your own selection order:

The script below is based on one of the scripts templates available in Blender (the one called 'operator modal draw', but 'operator modal' can be enough if you don't want to draw anything).

The needed parts are commented below (but please comment if you need more information):

import bpy
import bgl
import blf

def draw_callback_px(self, context):
    font_id = 0
    blf.position(font_id, 15, 30, 0)
    blf.size(font_id, 20, 72)
    blf.draw(font_id, " / ".join([b.name for b in self.bones]))

class ModalDrawOperator(bpy.types.Operator):
    """Draw a line with the mouse"""
    bl_idname = "view3d.modal_operator"
    bl_label = "Simple Modal View3D Operator"

    def modal(self, context, event):
        context.area.tag_redraw()

        #Escape here allows to stop, but you can also do it from any other property from your addon
        if event.type in {'ESC'}:
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}

        #Last selected is first in this way of coding
        self.bones = [b for b in context.selected_bones if b not in self.bones] + [b for b in self.bones if b in context.selected_bones]

        #Return PASS_THROUGH in order to allow Blender interpret the events
        return {'PASS_THROUGH'}

    def invoke(self, context, event):
        #Check the context for 'EDIT_ARMATURE'
        if context.area.type == 'VIEW_3D' and context.mode == 'EDIT_ARMATURE':
            args = (self, context)
            self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_PIXEL')

            #Empty bones at the beginning
            self.bones = []
            #Or allready selected
            #self.bones = context.selected_bones[:]
            #Or from your data
            #self.bones = your previous selection

            context.window_manager.modal_handler_add(self)
            return {'RUNNING_MODAL'}
        else:
            self.report({'WARNING'}, "View3D not found, cannot run operator")
            return {'CANCELLED'}

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

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

if __name__ == "__main__":
    register()


SpaceNavigator in Linux: How to configure with Blender? I have since yesterday a SpaceNavigator (from 3Dconnection).

I  got it to work with the demo apps (xcube and xvalue). *

But it doesn't do anything with Blender.

I did not find any posts about it except some "it will be possible in 2.48" or "there's a plug-in for 2.46" (should I use it? Because I have Blender 2.7. And how can we add a plug-in?).

I use Blender 2.7 and I wonder if there is something to add, or it's just something to configure in Ubuntu (13.10).

I watched many sites, but they all talk about 2.4_ or 2.5_, no 2.7 or even 2.6!

Every help is welcome! :)

*: Some informations about how I installed it (from the given CD):
 - I followed that (part of the official how to):

    cd /tmp
    tar xf /<cdrom>/3dxunix.tar linux   [where <cdrom> is the path to the root directory of your mounted CD]   (I replaced <cdrom> with the correct path)
    sh /tmp/linux/install-3dxunix.sh

I had an error:

error while loading shared libraries: libXm.so.3: cannot open shared object file: No such file or directory

and found an answer there: 3Dconnection forum

the install worked. -> I have now one "app" (the driver app?) : 3DxWare 1.6.0

First you need to install Spacenav, which I've found works very simply.

Install 'spacenav', I expect most Linux distros would have a package for this.
Run sudo spacenavd -v -d
Run blender, the 3D mouse will be detected, and printed in the terminal.

spacenavd can run automatically as a service but to begin with just execute in a terminal.

See spavenav's site, it has general info. I followed the Arch Linux 3D Mouse Instructions to get this working.


How can I change the number of vertices in surface mesh? I created a surface mesh in itksnap with stl format. I can import it to blender. Please consider it with 3000 vertices and 1700 facets.  At now I want to change the number of vertices to 2200. How can I do it?

Shahrokh

Reduce the number of vertices with the decimate modifier

Add a decimate modifier to the object and set it to collapse.
In the ratio field, enter desired amount / current amount.
If needed, apply the modifier.


When pressing A it doesnt select all 2.81 It's the latest build v2.81.16

When I press A once it should select all but now i have to smash it at least ten times before it selects all but usually it just deselects everything. SO, how do I select all now? Preferences says that its binded to A but that's not the case apparently.

This really sounds like a keyboard issue where you're getting double "A" keypresses registering.  In my experience, it's not unusual to have a bad connection on a keyboard that you don't notice much during regular typing but that acts up when you use a key shortcut, just because of differences in the positioning of fingers and force of keystrokes when touch-typing versus using shortcuts.  Also remember, if you do any gaming with this keyboard, the WASD cluster tends to suffer some of the worst abuses.

I'd suggest disabling the dbl-A ("double click A") mapping in the Keymap preferences, to see if that resolves the problem.  In Preferences -> Keymap, search for "Key-Binding" of "A" and unclick the checkboxes for the dbl-A bindings -- note that there's a binding for each mode, so maybe disable "Object Mode" and "Mesh" to start.  If that fixes the problem, then Blender is registering double-taps on the "A" key, whether your keyboard is to blame or not.  You may also want to try checking in an editor whether hitting "A" at different angles or with less than usual force occasionally registers multiple keystrokes.


How can I delete a single frame? I have an extra frame that's not supposed to be in the video that I imported in. I'm not sure why it's there, but for the video to play smoothly, I need frame 116 gone and for frame 117 to become frame 116 essentially. Thank in advance!

Ethan

You can also do a "hard cut" (SH-K) after frame 115, shift the right strip that's now separated a little (to the right), hard cut it's 1st frame off (frame 116), and drag what's left to the left again to join it with the left strip.  The two strips will play and render in sequence, and importantly, without frame 116.


Problems with scaling meshes. Unwrapping transforms the scale back to normal I've been stuck the past hours by trying to scale my mesh. In object mode the mesh i use is perfectly scaled but once i go into the editor it seems that the mesh won't really scale. I have attached two pictures illustrating my problem:

As shown in picture 2, the mesh is scaling but once i unwrap it, the mesh is scaled back to its normal (as shown in picture 1).
Does anyone of you know how my mesh can be scaled as intended after the unwrapping has been made?
Help would be much appreciated :-)!

It's not that UV unwrapping transforms the scale. It just discards previous UV mapping and creates a new one for selected faces. And it tries to take as much texture as possible (if it won't cause stretching), so in your case it just puts 4 corners of a square face on 4 corners of a square texture. I don't know why you keep unwrapping the mesh after scaling it, but either way you should consider using scale vector of a mapping node:


Cycles Object vector as UV map Is there any way to bake the Object vector that you get from the Cycles texture coordinate node to UVs so that it can be used for image textures? This would be for Dynamic Paint, or just a quicker or more convenient way to get a clean UV unwrap.

Object texture coordinates do the job well for most of my procedural texturing needs. There are times where I want to use image textures, but getting clean UV unwraps is always a nightmare.

The bottom line is:
This is theoretically impossible
If you think about it, object, generated, mirror (and any other auto-generated texture coordinates) can be as detailed as is necessary -- they are not based on the detail of the mesh. UV maps, on the other hand, are very much related to the detail/design of the mesh object. This is often called comparing apples and oranges :)
That being said, the only way to fake it would be to use a texture (to get much more detail than a mesh, but less than auto-generated coords) as mentioned here. If it would be easy to convert the clean object or generated coordinates into uv-maps, game devs would be using it everyday...but there isn't. So for right now we just need to stick to smart unwrap and our uv seams ; )
Finally, if you're still not convinced, take a look at this mess of auto-generated coordinates...

Here I am mixing three different texture coordinates (generated, window, and reflection) and using the result in the checker texture's vector input. This material is applied to a cube and however you manipulate the uvs, you will never be able to mimic this mapping because these texture coordinates act like textures themselves: the massive amount of warping from the checker texture is only because of the strange texture coordinates. Oh, and about the texture coordinates acting like textures themselves...have you ever tried to apply a texture as the model (I mean a diffuse/albedo/color texture not a displacement map)?
Yet another reason as to why this would not be feasible or even desirable is that the texture coordinates, excluding uvs, are all volumetric while the uvs are two-dimensional. Therefore, as soon as you "converted" to uvs you would have lost the most important benefit that the object texture coordinate gives you: flexibility.
I hope this helps to clear up your question effectively.


How to set visibility on view layers via python? What was obj.hide in Blender 2.79 is now obj.hide_viewport in 2.80.

This is different from the newly introduced visibility on view layers, which describes visibility on different viewlayers, and is what the default show/hide ops or the eye icons in the outliner describe.

Using obj.visible_get() you can return the the visibility state on the active view layer.

There is no visible_set() method, as far as I can tell.  So how can you set the visibility on the active or other view layers?

FWIW, it's obj.hide_set(True), has been introduces 2 months ago or so, I think.


How to use dual scroll wheel mouse in Blender? I've seen some mice with an extra scroll wheel like the Logitech MX Revolution. Is it possible to use this in Blender? If so, what is a good use for it?

I currently have a MX518 mouse, which has these buttons

Left / Right / Middle-scroll
Resolution switch (pointless)
Menu button (could be usable)
Back / Forward button on thumb

I'm about to buy a new mouse now, and I'd like to know if it's any point with two scroll wheels.

Also, I'd like any tips on mice that are recommended to increase effeciency in Blender, for example using multiple buttons for common commands.

Or is it simply better to just have your hand on the keyboard (which I guess I do anyways) on S, G, R, etc?

A hacky solution could be use AutoHotkey script:

*WheelLeft::Send % ((A_PriorHotkey=A_ThisHotkey)&&(A_TimeSincePriorHotkey<20))?"":"{Blind}{F14}"
*WheelRight::Send % ((A_PriorHotkey=A_ThisHotkey)&&(A_TimeSincePriorHotkey<20))?"":"{Blind}{F15}"

And then use HorizontalScroll as it was F14 and F15 that is normally unavailable in most keyboards. (it works with modifiers keys also)


Why can't I sculpt on a plane I added a solidify modifier to? So, what I've done is to model a dagger using a plane.
And to that plane I've added a solidify modifier, however, when I try sculpting it using one of my brushes it only turns into a disfigured piece of junk.

How can I solve this?

I saw a video from a few years back and it looks like that person is scaling the plane, but when I try the same thing it doesn't work (hence why I added the solidify modifier).

I'm a blender noob so don't be afraid to become too detailed in your answer.

You have two options:

Option 1:
In sculpt mode, on the left tool shelf you need to enable "Dyntopo" the lower the number the more detailed your sculpt will be.

Option 2:
In the modifier panel add a subdivision surface to sub divide your plane so there are more faces to sculpt.

Hope that works.


How do I get dimensions for an object? This is an object for which I want dimensions.

As others mentioned, you can have the object's dimensions in the side bar. But understand it's only the objects panel from a bounding box. In your case, the dimensions are calculated from a box kind of like this :

If you want more precise measurements, ex something like that:

You can use the MeasureIt addon. AFAIK it's included in Blender.


How can I access history list? (python) I want to be able to track if history changed by waiting for its last element to change from modal operator. Is there a way to access such list over python?

Unfortunately, you cannot access the history list directly from python (I'm pretty confident this is the case.).

The history list is called by bpy.ops.ed.undo_history() and doesn't have any accessible attributes that you can read into a list. In fact, bpy.ops.ed's methods come from bpy.types where the class  starts with ED_OT_ (eg. bpy.ops.ed.undo() is really an instance of bpy.types.ED_OT_undo()

It looks like the undo stuff is in the guts of blender-app.exe but you can try and mess around with this bpy.ops.ed stuff and see if you can manage something that I may be overlooking.


How to fix the uv mapping I have uvwrap the face with the normal unrwap option pressing u and on the projection the image is turn down side and the original image is correct. When i rotate in uv applied and render it still the same. How can i fix it. Any suggestion or help. Thanks

Your texture coordinates are set to Generated.
To fix your problem change mapping coordinates to UV


How do I get a popup UV Image Editor and force it to show the Active Paint Slot? This is a question that is an aside from my previous question of How to get name of image corresponding to active paint slot?

And in that question, I was looking to ultimately arrive at an Image Editor as a popup to use quickly while painting in 3d view that would immediately show the active paint slot to take advantage of the way that the Editor only shows one image at a time.

My own code from the previous post only gets the active texture to coincide with the current active paint slot, but by myself I did not get the popup editor to show it.

Blender does not support creating a new window officially. However, there is an obscure workaround: You can open up a new user preferences window and change its type to IMAGE_EDITOR, read: How to open an image editor window and display an image file in it?

In order to display the active paint slot in that window, just get the active image slot reference and then assign it to SpaceImageEditor.image. Following code is a simple operator, you can either install it like an Add-on or paste and run it in blenders text editor per session.

Blender 2.8x

bl_info = {
    "name": "Display active Slot",
    "description": "",
    "author": "brockmann",
    "version": (0, 0, 1),
    "blender": (2, 80, 0),
    "location": "Texture Paint > Tools Panel > Slots",
    "category": "Paint"
}

import bpy

class DisplayActivePaintSlot(bpy.types.Operator):
    '''Display selected paint slot in new window'''
    bl_label = "Display Active Slot"
    bl_idname = "paint.display_active_slot"
    bl_options = {'REGISTER'}

    @classmethod
    def poll(self, context):
        return context.object.active_material.texture_paint_images

    def execute(self, context):
        if context.object.active_material.texture_paint_images:
            # Get the Image
            mat = bpy.context.object.active_material
            image = mat.texture_paint_images[mat.paint_active_slot]
            # Call user prefs window
            bpy.ops.screen.userpref_show('INVOKE_DEFAULT')
            # Change area type
            area = context.window_manager.windows[-1].screen.areas[0]
            area.type = 'IMAGE_EDITOR'
            # Assign the Image
            context.area.spaces.active.image = image
        else:
            self.report({'INFO'}, "No active Slot")
        return {'FINISHED'}

def draw_display_slot_operator(self, context):
    if context.object.active_material.texture_paint_images:
        layout = self.layout
        row = layout.row(align=True)
        row.operator(DisplayActivePaintSlot.bl_idname, icon='ZOOM_ALL')

def register():
    bpy.utils.register_class(DisplayActivePaintSlot)
    bpy.types.VIEW3D_PT_slots_projectpaint.prepend(draw_display_slot_operator)

def unregister():
    bpy.utils.unregister_class(DisplayActivePaintSlot)
    bpy.types.VIEW3D_PT_slots_projectpaint.remove(draw_display_slot_operator)

if __name__ == "__main__":
    register()

    # test call
    #bpy.ops.paint.display_active_slot()

Blender 2.7x

bl_info = {
    "name": "Display active Slot",
    "description": "",
    "author": "brockmann",
    "version": (0, 0, 1),
    "blender": (2, 70, 0),
    "location": "Texture Paint > Tools Panel > Slots",
    "category": "Paint"
}

import bpy

class DisplayActivePaintSlot(bpy.types.Operator):
    '''Display selected paint slot in new window'''
    bl_label = "Display active Slot"
    bl_idname = "paint.display_active_slot"
    bl_options = {'REGISTER'}

    @classmethod
    def poll(self, context):
        return context.object.active_material.texture_paint_images

    def execute(self, context):
        if context.object.active_material.texture_paint_images:
            # Get the Image
            mat = bpy.context.object.active_material
            image = mat.texture_paint_images[mat.paint_active_slot]
            # Call user prefs window
            bpy.ops.screen.userpref_show('INVOKE_DEFAULT')
            # Change area type
            area = context.window_manager.windows[-1].screen.areas[0]
            area.type = 'IMAGE_EDITOR'
            # Assign the Image
            context.area.spaces.active.image = image
        else:
            self.report({'INFO'}, "No active Slot")
        return {'FINISHED'}

def draw_display_slot_operator(self, context):
    if context.object.active_material.texture_paint_images:
        layout = self.layout
        row = layout.row(align=True)
        row.operator(DisplayActivePaintSlot.bl_idname, icon='IMAGE_COL')

def register():
    bpy.utils.register_class(DisplayActivePaintSlot)
    bpy.types.VIEW3D_PT_slots_projectpaint.prepend(draw_display_slot_operator)

def unregister():
    bpy.utils.unregister_class(DisplayActivePaintSlot)
    bpy.types.VIEW3D_PT_slots_projectpaint.remove(draw_display_slot_operator)

if __name__ == "__main__":
    register()

    # test call
    #bpy.ops.paint.display_active_slot()


How to make a material that toggles between 2 colors when object surface overlapping? I want to make a material that toggles between 2 colors when overlapping.
For example: if the object surface overlaps an odd number from the camera ray, the material will show yellow. If the object surfaces overlap an even number from the camera ray, the material will show cyan. If it's not possible, using a compositor is fine too.

This is a video example I want to achieve. (3:20 - 3:33)
https://youtu.be/zkLJoFp2UAE?t=200

I'm pretty sure your example will have been done in compositing.. that leaves much more room for flexibility; you can shoot your basic plates, and then decide how to combine them at a later stage.
But if your shapes are single surfaces, and you don't mind using OSL, which means you can't use your GPU,then this could be enough for a variety of effects:
shader LayersBehind(

 // Number of layers found behind P
 output int LayersBehind = 0
)
{
    point ray0 = P;     //The first of a sequence of ray origins
    int limit = 20;     //Limit on length of ray-chain

    while ((LayersBehind<limit) && trace(ray0,-I,"mindist",0.000001)){
        getmessage("trace", "P", ray0);
        LayersBehind++;
    }
}

The output of this script-node is the number of surfaces hit, behind the shading-point, on the way out from the camera.

I guess the computation for this kind of render isn't too high, so sacrificing your GPU may not be too much of a hit.


Render is grainy with GPU Here is my problem. When I try to render with my GPU the image (mainly the lights) are not the same as with my CPU. The image is more grainy with the GPU than with the CPU and even if I do not change any parameter from one rendering to another. I would like to be able to use my GPU to save time with my rendering

My config :

CPU : AMD Ryzen 2700x
GPU : EVGA GTX 1070
Blender version : 2.79

I can'T upload the .blend files because he is pack with all the texture (more than 600MB)

I think I found my problem. It is related to the shader "volume scattering" that I put in the world settings in the "volume" if I remove this option my CPU rendering become identical to my GPU rendering. I found on several website people who say that there is a problem with the "volume scattering" and the CUDA.

https://blenderartists.org/t/cycles-gpu-renderer-cant-render-volume-scatter/647962

https://developer.blender.org/T50808

https://blenderartists.org/t/volume-scatter-with-gpu-worse-than-with-cpu-in-cycles/651603


How can I make a mesh copy the same shape of another mesh? I know I have already asked a similar question before, but I just can't seem to achieve the result in such a perfect way.

Is there a way that I could have the green mesh transform its shape to be exactly like the shape of the grey mesh without losing any data or quality all around.

As you can see on the picture, the green mesh is deformed and I want to be the same shape as the grey one without effecting the quality of it.

Thank you for your help

your best option in this case is mesh-align-plus, and modify it according to your needs, I do not understand much of your question but I try to deduce with risk to make a mistake, but this surely fits your problem


Adding cloth displaces mesh geometry When I add a Cloth modifier to an FBX-imported mesh ("thread004"), the mesh suddenly jumps to a new location distant from its origin.   Is there a way to prevent this?   The "thread004" mesh was previously wound onto its parent ("spool002") and its therefore important to keep it exactly placed as spool002 will be a collision object.
Before adding Cloth:

If I switch to edit mode, the cloth returns to surrounding the spool.  blend is tiny over 30MB so here's a: public URL
After adding Cloth

This is because your timeline starts 885 and ends with 1500. The cloth sim starts at 1, which makes it jump.
Reset the beginning and end according to your timeline and then rewind once.
The rope will jump back where it started.


boolean modifier failure I am trying to use the boolean modifier to cut holes inside the long object that is displayed in the picture. The holes need to have the shape of the 4 diamond pieces that or also displayed in the picture.
When I'm using the boolean modifier with the option difference selected, it only works properly with 2 of the 4 shapes (as seen in the picture).
To my knowledge both the parts are healthy. I already recalculated the normals and removed doubles on both the objects.
I also tried to triangulate bigger faces and subdivided the mesh of the diamond shapes but both resulted in worse outcomes.

I also included the blend file.

Does anyone have a solution?

The bmesh fails in some cases, try the Carve solver instead.

[Click on the image to enlarge.]

The documentation is very sparse about the inner workings of this option.

  Solver
  Determines what set of algorithms are used to calculate the boolean operation. Carve uses the external Carve Library while BMesh uses Blender’s built-in library and should give better results.


What's the best way to model complicated pipes? I've been trying to model a realistic rocket engine and if you've never seen a rocket engine before, they have some really complicated plumbing structure.

I've tried getting some crazy shapes using either the Array or Curve modifier but they don't work that well with complicated curves and always produce some weird results. Is there a better way to make a weirdly bent pipe or wire?

first create a circle of 16 vertices or 32 verts (16 its better for less polycount), then convert it to a curve with Alt+C , then add a bezier curve and set the bevel object to that circle, also if there are too much edge loops reduce the resolution size to 6 or 8, then stretch or shape your curve recording what you want in edit mode.


How do I select and change a text? I know this is a stupid question, but for some reason I can't select a text to change it. I've tried right clicking and hitting Tab but for some reason it is not letting me change what the text says. Please help.

The following should be noted:
I'm using a MacBook air,
I am using Bender 2.71,
And I am very new to Bender.

If the Tab key for some reason doesn't put you in Edit Mode, try changing into edit mode using the dropdown menu:

You can find more information about text editing in the manual: http://www.blender.org/manual/modeling/texts/introduction.html#editing-text

Also, if you are a new user and do not have special reasons, there is no point in using an older version. Try the latest release, it's faster and has more features.


White lines problem texture bake; render engine I have a 3d scan that I'm baking onto a lower poly model inside the blender render engine. The baked image result shows some white lines that correspond with the uv islands of the UV map of the 3d scan. Anyone know how to get rid of these?

Found it out. Turns out it solves it when you uncheck the box use alpha in the texture panel.


Smoothing Bezier Curves in Animation Nodes I have a strange curvature showing when I generate a curve with animation nodes. I can "fix" the appearance by choosing "Cyclic" but I need a start and an end in order to animate.

The first screenshot below shows the curve I am getting and the second, the curve I would like but not cyclical.

The curve starts and stops on the large sphere.

Here is a screenshot showing the results with a center point added.

You can set the handles of the spline points to be along the normals of the surface points as follows:


Trying to change modifier properties through script There are plenty of questions on here asking how to add a new modifier to an object or objects. I am looking to change the properties of an existing modifier on an object. The following text is what I have came up with as an attempt that has failed.

import bpy

obj =  bpy.context.object

modifier = obj.modifier(name="Array", type='ARRAY')

modifier.constant_offset_displace[0] = 1.6

You can get the list of existing modifiers from obj.modifiers.
You can access them by index or by name. For example, if the array modifier you want is the first in the stack and called "Array", you can get with either of these:

modifier = obj.modifiers[0]
modifier = obj.modifiers["Array"]

From there on you can set the properties as you see them in the Python tooltips or in the auto completion of the Python console (or the API reference).

One correct solution for the code of your example would be:

import bpy

obj =  bpy.context.object
modifier = obj.modifiers["Array"] # Get existing modifier with name "Array"
modifier.constant_offset_displace[0] = 1.6

Note that the user can change a modifier's name at any time, so you might want to use a more stable way of finding the modifier, but what's the best way to do that depends on your specific case.


How to avoid smooth and roundnes in my alpha brush when sculpting hard surface? Im totally a noob in sculpting with Blender, I want to use some alpha brushes to sculpt hard surfaces, I add a texture as a brush, select the texture under the sculpting brush, but when I use it it´s rounded and soften towards the corners (see picture).
This happen to me with every texture I try.

How can I make my brush harder and avoid this softnes?
Thank in advance to anyone who can help me out with this.

I solved it, it was an oversight on my behalf, i just selected the straight "set brush shape" option in the "curve" tab


I set Bone roll in python to 37 it sets roll value to 2636 degrees. Whats wrong? This is very similar to another question today about setting bones in python for use with ManuelBastioniLab and may have the same answer, but Im setting bone roll values in edit mode and he is setting location values in pose mode.

Im trying to import animations including pre done mocap data and animations I make myself (possably fk and ik rigs) from Blender to Unreal (UE4). This is using the manuelbastionilab addon to create human characters and create an ik skeleton and load bvh mocap data.
I have spent about 100 hours or more trying to do this and Ive come to the conclusion the only way to do it is to reset the bone roll values to some kind of default for each animation / skeleton. Otherwise the mesh becomes incredibly twisted in many different ways in UE4.

So Ive started to write a python script to set all the values.
This is my first python script so its fair to say I dont know what Im doing, but I have got it to set the bone roll values using 2 slightly different methods and they both give the same results.
Im having this problem using a fk skeleton (forward kinematics) (no ik on this one). So for setting the bone roll on the little finger I set pinky01_R to 37 but blender sets it to 2636, and the other pinky03_R is set to -47,but blender sets it to -2693. I don't know in what universe 37 == 2636, but Id like to know if its a bug or if there is some way to set the bone roll to the value I give it. The blender scene is set to metric and degrees and scene scale 0.01

If you want to re create this you will can use the manuelbastionilab addon click initcharacter then finalize, then run my script (press space type MBSetDefaultBoneRolls)

Here is my code so far

bl_info = {
   "name": "Setup bone rolls",
   "category": "Rigging"
}

import bpy
import math

class MBBoneRollsSet(bpy.types.Operator):
    """Sets  bone roll values to default for Manuelbastionilab ik and fk     skel"""
    bl_idname = 'rigging.mbbonerollsetter'
    bl_label = 'MBSetDefaultBoneRolls'
    bl_options = {'REGISTER', 'UNDO'}
    bl_category = 'Rigging'

    def execute(self, context):
        Armat = None
        for obj in bpy.context.selected_objects:
            if obj.type == 'MESH' and obj.parent and obj.parent.type == 'ARMATURE':
                Armat = obj.parent
                break
            if obj.type == 'ARMATURE' :
                Armat = obj
                break

        if Armat == None:
            for obj in bpy.data.objects:
                if obj.type == 'MESH' and obj.parent and obj.parent.type == 'ARMATURE':
                    Armat = obj.parent
                    break

        for obj in bpy.context.selected_objects:
            obj.select = False

        if Armat != None:
            Armat.select = True
            bpy.context.scene.objects.active = Armat
            bpy.ops.object.mode_set(mode = 'EDIT')

            Armat.select = True
            #Armat.data.edit_bones:
            bpy.context.object.data.edit_bones['pinky01_R'].roll =46.0
            for EBone in Armat.data.edit_bones:
                if EBone.name == 'pinky03_R':
                   EBone.roll = -47
            bpy.context.scene.update()
            bpy.ops.object.mode_set(mode='OBJECT')

        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

Anyway if there is anyone who knows why its setting such a wrong value and or what can be done about it, that would be great!

Python always sets rotation in Radians, not degrees.

$2\pi$ radians is equal to $360^\circ$. This explains your issue, since

$$37 \text{ radians} = (37\cdot 180/\pi)^\circ \approx -2693^\circ$$

You'll need to convert degrees to radians by multiplying by $\pi\approx 3.14...$ and dividing by $180$.


Why do some values on nodes lack an input socket? Why do some nodes have values without input sockets?

E.g. The glare node:

This may not be the most useful example, but there are instances where a plug might be useful, e.g. the dimensions of a blur node.

This can be easily worked around with a driver, proving that there is no technical limitation:

Is there any reason for certain values not having a node input?

The reason is that this is the way the node is written by the developer,
Sometimes it makes sense for values to be adjusted per-pixel and sockets are used, other times its enough to have a setting on the node.

The are undoubtedly cases where you might want to adjust a setting per-pixel but there isn't a socket input. I guess you could call this a not-yet-implemented feature. There may be a good reason the developer chose not to do this, or it may be an oversight.


bge - EditObjectActuator.time changed at will? with a script, can we change at will the EditObjectActuator.time ? in my case, I want to  add time of life to an object, while the game is running with a property or a message from another object ...
I 'm a newbie in scripting with Python, I used to code with logic bricks but I do not know how to do ...

JL

I've tried many methods uncessfully. So I simplified the code to show what I want to do.
This is the head of the snake

The problem is "How to increase the timelife at will ?"

Yes, not only you can change the actuator.time attribute in realtime, but you can add an object without an actuator.

Change the time based on a property

import bge

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

act = cont.actuators["AddObjectActuator"]

act.time = own["MyProperty"]
cont.activate(act)

Adding object through script

import bge

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

# Both objects can be from scene.objects instead of names
scene.addObject("ObjectNameToAdd", "ObjectWhereToAdd", time=own["MyProperty"])

More info about this method here.


Transfer weight operator changes vertex groups I started out with an ordinary rigged human character model, complete with vertex groups and correct weights.

Then I did some geometry modification. I had to reassign the vertex groups and that understandibly wrecked the weights.

So the idea was to transfer the weights from the old mesh to the modified mesh. I put the meshes on top of each other and did everything to the book, selecting the source first, then the destination, entering weight paint and hitting weights transfer.

At first it looked great, with all the correct weights in place on the destination mesh.

Then came the shock. I noticed that all vertex groups in the destination mesh had been altered such that every single vertex group whether affected by the weight change or not now comprised all vertices of the entire mesh. Of course that renders the mesh unusable.

I tried all different options in the weights transfer operator, to no avail.

Parenting the source mesh to the destination armature didn't help either.

What could be the problem. I am at my wits end.

You can use the weight tool Clean to fix that. It will remove from the group, every vertex with a weight under the specified threshold.

To remove every vertex with weight 0, from each vertex group :

Subset : All Groups
Limit : 0


Can't bake a proper normal map in Blender 2.9 I'm trying to follow Andrew Price's anvil tutorial but I'm completely stuck at the point where he bakes the normal map from a high-poly sculpted mesh to a basic mesh...
I have tried changing the ray distance and extrusion, I've also tried to Alt +  S the low-poly mesh and use it as a cage, but no matter what I do, the best normal map I get looks like this.

Most of it is blue-ish/purple, so the color scheme is matching a "proper" normal map, however it still looks really weird once I apply this image as a normal input to the low-poly mesh material. Does anyone know what I'm doing wrong?

When you create a new image in order to bake the normals, enable 32-Bit Float:

Also, use another material for the high-poly object, otherwise the normal map will cumulate with the real bumps.


How do I extrude a shape along a curve in Blender 2.8 I can't find any posts on how to extrude a shape along a curve in Blender 2.8.

Let's say I wanted to make a curved pipe.
In Blender 2.7 I used 2 curves (1 path and 1 shape). With the path selected, under geometry, I chose the shape as bevel object, and finally converted the result to a mesh.

But in 2.8, I can't figure out how the modifiers work.
I've tried an array modifier combined with a curve modifier, but I can't get it to do anything remotely useful. The bevel modifier doesn't seem to do the trick either. I've tried numerous different combinations of modifiers, but with no luck.

For some reason I thought modifiers were the "next generation" geometry tab.

Luckily it turns out I had overlooked that the geometry tab still exists in Blender 2.8!
It's the green triangle icon in the menu on the right hand side of the default layout.

From there on, it's just like in Blender 2.7, as I described in the question.

Thanks for the quick comments to my questions!


Mesh becomes flat when working with Fracture Modifier Branch. Is this a regular bug? I'm working on a simulation with the Fracture Modifier Branch. Sometimes my fractured object turns into this flat object and there's no way I can restore this. I tried removing the rigid body world, turning the modifiers on and off, but nothing seems to work. Does anyone know how to fix this issue?

Hmm, this looks very odd indeed. Looks like something has been scaled to 0 in one direction accidently. The FM does apply the scaling when fracturing, though.(bullet cannot deal very well with scaled objects, imho).

But without the blend this is all just guessing. Could you share it here maybe, so I can take a look ?


Run ModalOperatorTimer automatically on animation playback I have the following script. It updates a MixRGB node's factor input to itself to solve some issues with GLSL viewport in textured mode. Anyways, I was wondering if there is a way to attach this script, so that it runs automatically when I click on the "Play" button or press Alt-A and stop automatically as well when the playback is suspended?
What would be the easiest way to go about doing this? Is creating an addon a feasible solution?

import bpy

class ModalTimerOperator(bpy.types.Operator):
    """Operator which runs its self from a timer"""
    bl_idname = "wm.modal_timer_operator"
    bl_label = "Modal Timer Operator"

    _timer = None

    def modal(self, context, event):
#        if event.type in {'RIGHTMOUSE', 'ESC'}:
#            self.cancel(context)
#            return {'CANCELLED'}

        if event.type == 'TIMER':
            mat = bpy.data.materials['Material']
            nodes = mat.node_tree.nodes
            mix = nodes["Mix"].inputs[0]
            mix.default_value = mix.default_value
            print('Current Frame:')

        return {'PASS_THROUGH'}

    def execute(self, context):
        wm = context.window_manager
        self._timer = wm.event_timer_add(0.1, context.window)
        wm.modal_handler_add(self)
        return {'RUNNING_MODAL'}

    def cancel(self, context):
        wm = context.window_manager
        wm.event_timer_remove(self._timer)

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

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

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.wm.modal_timer_operator()

I'm aware of Handlers in Blender. However I tried the below script with no luck:

import bpy

def refreshNow(val):
    mat = bpy.data.materials['Material']
    nodes = mat.node_tree.nodes
    nodes["Mix"].inputs[0].default_value = nodes["Mix"].inputs[0].default_value
    return val

refreshNow(0)

bpy.app.driver_namespace['refresh'] = refreshNow

def my_handler():
    refreshNow(0)

def register():
    bpy.app.handlers.frame_change_post.append(my_handler)

Solution to the above problem is to use Handler rather than a Modal Operator.
Thanks to @Chebhou for his help in this thread and here.

Below is a working solution to execute on playback using handlers:

import bpy

def refreshNow(val):
    mat = bpy.data.materials['Material']
    nodes = mat.node_tree.nodes
    nodes["Mix"].inputs[0].default_value = nodes["Mix"].inputs[0].default_value
    bpy.context.scene.update()
    return val

refreshNow(0)

bpy.app.driver_namespace['refresh'] = refreshNow
def my_handler(scene):
    refreshNow(0)

def register():
    bpy.app.handlers.frame_change_post.append(my_handler)

if __name__ == "__main__":
    register()


What can I do to blend the transition between 2 materials in specific parts of a mesh in Cycles? I need to blend or smooth the transition between theese materials on my charecter:

]1
I need to mix the 2 materials but only where the dark blue hits the light blue
I need it to smooth, blend or anything that does not make it look so bad hahaha

Try using a single material with both your material setups connected to a mix shader node, and then use:
a. a texture for your model, made with the texture painter after you've unwrapped your model
b. use the vertex colours, set the brush to black or white and paint where you want your materials to be.
and connect either of those to the factor of your mix shader


How could penetration between human models be avoided? In a fight scene I have several actions where the movement is only limted by the freedom of movement of the rigged bones. When a punch hits the body of the other character it shouldn't penetrate the body hit it should rather push it away or stop when the collision is detected.

Can this be achieved with rigid body constraints?

The two characters are linked into the scene and have proxies,
I tried several settings in this dialog but whatever I do it seems to have no effect.

No, Blender isn't capable of doing that (yet). I've tried combining armature-based animation with physics-based cloth/rigid body simulation, and the latter always override any manual animation I've made.

I'd try to limit the range of punch based on bounding-box proximity between the two characters, or trigger a knocked-back animation (faster than the punch animation) depending on how far the punch animation is played + bounding-box proximity.


how can I make the material on the surface different color than the sprinkles on this cube? EDIT
I have played around with colors in Blender and I have yet a problem:
how can I make the background in different color than the sprinkles
on the cube ? Say, I want to make the background in red and sprinkles
in random green as they presently are. What shall I touch ? Please see the first snippet. I've almost succeeded with shader but the background is still green.

I have a wonder what to touch so that the cube in the snippet below becomes blue.
I'm new to blender.

To change the color, you must use the Material Properties tab:

To answer your edit, if you want the cube to have a different color than the sprinkles, you have to use different materials for the Cube and Particle Instance objects, respectively.
CUBE MATERIAL

PARTICLE MATERIAL (On sphere and cone)

EDIT - Here is a file with the Cube, as requested:


I can't pose my character with the hair particle system I've made a tiger and a hair particle system for fur. It all worked well until I rigged it. The model moved with the bones bit not the hair. Please help

Check your modifier stack. You most likely have the Armature under the particle system (usually happens when creating something like this). Instead, you will want the armature to be above the particle system so that the hair grows out of the deformed model.


how to change origin to export a animation I play on second life, a game where people can use avastar to make poses,animations ect. I opened blender yesterday to find when i went to export my animation that it was a red box with this

This works with [reference links][blog] I've tried changing origin of the armature, factory reset of Blender, reapplying the avastar addon but to no luck!

Any help would be appreciated!

Click the megaphone icon next to origin in the dope sheet to mute it. I upload anims for SL too and this works for me!


mesh faces permanently highlighted? Very new to blender, trying to touch up a file for eventual 3d printing of a helmet. I was selectively blending areas of the obj file, and then for some reason the selection of faces I was currently trying not to smooth with my subdivision surface modified (highlighted in the pink/maroon on the right side of the picture) became permanently highlighted, as if selected. I thought I may have had to do with the subdivision surface modifier, so I deleted it, but to no avail.

any help? its very hard to work with, as it obscured my view of the model.

Crease indicators

Pink colored edges in Blender is used to show edges that have a crease greater than the default value (which is -1). As written in the manual's page, crease is:

  ...used to define the sharpness of edges in subdivision surface meshes.

You can set the crease of the selected edges by pressing the Shift+E shortcut and enter a numeric value. Here's a few examples of possible values:

-1 - edge doesn't have any sharpness (no purple color)
+0 - edge have an average sharpness (dark purple color)
+1 - edge is sharp (bright purple color)

You can also control the visibility setting of this overlay (an many other such as seams or sharp edges...) in the Mesh Display panel of the Properties bar.


Where is the definition of this function "layout.template_node_view" I will be much appreciated if anyone can give me a pointer.
I've no idea why there is no item but only "Remove" and "Disconnect" in the combo box of the right panel. There are actually two parts on the right surface panel, the top one is generated by me with about 100 line of code, it is flexible because I can change anything in it. However the bottom one is more elegant, it is generated through this function "layout.template_node_view" which I notice from the source code of "Cycles", the thing is there is no other items in the combo box.
Where is the definition of this function? I searched the whole folder of blender, found nothing but references of this function.

And BTW, why are the two comboboxes have different style? What are the official name of them?

Thanks for any tips.

It's defined in C code here: rna_ui_api.c#871

And this is called: node_templates.c#721

I don't know how to use it properly, but I guess you need to roll your own panel for your custom nodes in a custom node tree. This seems to work as panel draw code:

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

        ntree = bpy.data.node_groups["NodeTree"] # our custom node tree
        node = ntree.nodes.active # selected node
        for socket in node.outputs:
            layout.template_node_view(ntree, node, socket)


Replicating sharp broken glass edges I am inspired by an image from a recent question here. I couldn't figure out how to model (Maybe texture) the look and feel of sharp glass edges around a spherical shape and SubSurf.

A quick example

To make glass just model it to how u want it to look, try and keep it as random as u can.

Then just add a glass material
https://www.youtube.com/watch?v=yRRN7yzPNQI
btw your glass should look way better if u follow the tutorial i just added the material without doing anything to it in the photo below

Also if u dont want to use cycles u can just turn down the transparency (alpha) as ive done here https://sketchfab.com/models/177e494fdada4b64b02acf041ae8cfdd

Edit: Something like this?


How to make particle systems of particle systems? I have a sphere with a particle system that adds petals to turn it into a flower. I want to then create a particle system to distribute flowers across a plane. However, when I try to use the sphere as a dupli object, it only uses the sphere, not the rest of the flower. How do I get it to use the entire flower? Sorry if this is confusing, I'm happy to clarify if there's any confusion.

EDIT: I tried the particle instance modifier, but couldn't get it to work. I'm linking the file, and hopefully, that will help. Sorry that it's a bit messy.

I know of no way to be able to make a particle system with particle systems underneath.  However, there is a way you can convert the flower particles into mesh.  You have to start by applying any modifiers that are given to the objects being used in the particle systems applied to the flower.

Then you select the flower, go to the modifiers tab in the Properties bar, and click the convert button on each particle modifier.  The particles are now converted into a mesh.  Now join the petals, nectar stems, and sphere together so it's all one mesh.  Now you are able to make a particle system that uses this flower.

This does make the flower have more vertices, so you may want to go try to reduce the number of vertices to save memory.
Hope this helps


How to bake multiple objects into one? I have one unwrapped object (it's a log). I copied it via Alt+D and built a house. Then i merged all objects into one with ⎈ Ctrl+J, but didnt do unwrap. Everything works fine.

Then I want to bake the lighting, so I do next:

Copy object.
Unwrap the copy.
Select both objects with copy active.
"Bake" combined with "Selected to active" checked.

But the result is very strange:

It has no rotations.
It has holes in some places.

Frankly, it looks awful and almost definetely i miss some general concept, but i can't figure it out.

Pls help :(

It would be easier to help you if you had provided a blender scene or some screenshots.
If you want to bake multiple objects together, the way to go is the following (from what I understand you are doing some steps correctly, but might miss out on a few things to consider):

create a separate uv channel for all objects and set it active
note: every material must have a unconnected texture node with the texture you would like to bake to (this node has to be active)
unwrap your objects: you can either select all objects and unwrap them together. (this will distribute the uv-coordinates for all objects on one uv-layout) Or you can manually unwrap the objects. but you need to make sure that they will not overlap with the uv coordinates from other objects you also want to bake)
Make a copy of all objects and merge them
hide the original objects
bake (watch out that the island margin is not too big -> play around with it)

Edit: if you keep the original objects hidden, you can later apply the baked texture to all those objects and you still have them separate. Or you can apply the texture on the joined object, whatever you prefer


Blender Python select stored object without name I would like to create several cameras, and store them as follows:

a = bpy.ops.object.camera_add()
b = bpy.ops.object.camera_add()
c = bpy.ops.object.camera_add()

This command allows me to select the camera called "Camera.001"

bpy.data.objects['Camera.001'].select = True

But if my scene already contained several cameras before I created a, b & c, how would I select camera b without knowing its name?  This code doesn't work:

bpy.data.objects[b].select = True

Thanks for your help.  My python knowledge is minimal.

bpy.ops don't return items like that.

Instead, you want to work on the cameras and objects data blocks directly, like so:

camdata = bpy.data.cameras.new(name="Camera A")
a = bpy.data.objects.new(name="Camera A", object_data=camdata)

Then, link it to the currently active scene:

bpy.context.scene.objects.link(a)

You could then select the camera either, by just doing:

a.select = True

or by doing

bpy.data.objects[a.name].select = True