After Retopology, should I apply the modifiers to have a good "Normal Map Bake"?

Assuming wireframe vertices on screenshot are from low poly retopology object, that object is not "sticking" to the high poly by itself. It's only through modifiers (mostly shrinkwrap) that it doesn't look like the vertices you can see around high poly. So you have to apply modifiers before baking (thought you should make a duplicate before that, to change modifiers in case something goes wrong).

After that the easiest you can do is use Smart Unwrap, it will separate your retopo into "random" parts unwraping it. Thought it would be quite a bit better if you marked seams (Ctrl+E->M) and Unwraped it yourself (U->Unwrap). You can look up some simple tutorials on that (this from BlenderGuru for example).


Cycles normal input relative to object's rotation

Thanks to Mr Zak for the pointer, I started fiddling with the vector transform and that gave me the desired result.

This is without the vector transform:

And this is with vector transform:


Create copies of primitives a number of times along a given or random length between two primitives

The array modifier can repeat an object with additional space.
The array modifier with Fit Length below.

The array modifier can repeat object along a curve.  Curves can be straight lines as well.  Fit Curve below.

The array modifier is dynamic or can be applied for static placement.
Perhaps the array modifier is more powerful than that other feature in that other software.
Particle systems can also repeat geometry.


Pasting the correct answer here for visibility.

All ID passes (materials and object ID) by design are binary (a pixel can only belong to one object): developer.blender.org/T51121  This means you cannot use the ID passes when motionblur, depth of field, or transparency is involved.  In your case, you can use the dofocus node on the material pass to create the DoF as a postprocessing step, which CAN create a blurry mask for you to use.

For defocus to work correctly it needs to access the depth data. So you need to plug the 'Depth' output into the 'Z' input for the defocus node to correctly blur the image.


You don't have to install Blender. Just download and extract the ZIP file and you can run it directly. There is no need for administrator privileges.


This looks like a mesh binding problem. You should make sure your mesh's scale is applied, and then attach the mesh to the skeleton or rig more closely. You should go into weight paint mode and make sure the vertices farther down the chain aren't being influenced by the object you're manipulating.
Good luck.


Unable to move drone object after adding background image in Blender 2.80

Starting with 2.80, adding a background image actually adds an empty object that displays the image. This object can be selected and moved like any other, even if it is set to draw its image behind scene objects.

I would suggest making the empty non-selectable. In the outliner, select the empty. If the cursor is not visible in the restiction columns, you can enable it in the filter menu by clicking on the funnel in the header. You can also find the same option in the objects visibility properties.


Displacement with nodes doesn't work, do I need a Displacement modifier?

1) Material output Displacement input doesn't expect a color, it expects a value.  I don't have any idea what multiplying with what looks like .8 gray with a factor of 5 is going to do; that is highly unusual, to say the least.  Instead, use a simple math/multiply node to do this-- Blender will do an implicit RGB->BW conversion.

2) Rendered preview true displacement does not update with changes.  If you make changes to your displacement, you will need to leave and re-enter rendered preview.

3) I would recommend troubleshooting without any image texture plugged into your surface shader, with displacement set to "Both".  This will let you (and us) see if the issue is with the texture/ UV map, or due to some other issue.


How to Add Gradient Texture to My Node Setup?

You cannot directly mix different materials.
Turn one of them into a node group, and it will work.

Turn Material 01 into a Node group
Add the new Node group into Material 02 using a mix shader
Connect Gradient texture and use ColorRamp to control the gradient

Create a nodegroup from one of your materials.

Add the new node group into the other material using a mix node.
Use ColorRamp to control the gradient.

Notes:
Gradient texture connects into the FAC input of a mix node (Mix RGB, Mix Shader or ColorRamp)
To make the gradient vertical, I used a UV map projected from view.


How do you Adjust the number of vertices when creating a circle?

At the bottom-left and above the time line, you may need to deploy the panel (small arrow).


The window on the left is the Image Editor you need to use the new UV Editor to see the unwrap.


It's still there, just the name is changed :).
Now it's called  Align to Vertex Normal ✓

When setting up the constraint, change Mix to Add.
Otherwise the triangles won't line up later.

You can add the constraint to other objects using Object > Constraint > Copy Constraints. Just make sure, the constraint isn't on the circle itself :).


How to select welded elements with marked seams

When you use the Linked select, on the (T) toolbar popup you can choose what kind of link you want to use.

If this menu is collapsed there is a + tab that can open it back up on the bottom of the toolbar.

Blender usually automatically sets it to the Seam selection once you've unwrapped your object, but you can [shift]+[click] any of the options to turn them on and off. (If you know programming, this is an AND function; it will only select something that fulfills all of those selections.)


I couldn't fix the BGUI to solve the problem, but I found a workaround for this.

Set a Left Mouse Button Sensor and connect it to a python controller that activates a callback function.

if not own['sys'].layout.input._active == 1:
        own['sys'].layout.input.text = own['sys'].layout.input.text


How To Create New Vertex or Segment When Extrude Passing or Intersection Other Object or Shape

The easiest way to do it is by Bridging the Edge Loops.

Make two legs for the table:

Create two edge loops on both the legs by Ctrl+R. Make sure that it's perfectly aligned or else you will get a slope. To place the loopcuts perfectly hold down Ctrl while sliding the edge loop. Which will get you this:

Now select the faces as shown and press F3 and type in Bridge edge loops.

There you have it.


Sending a render request to a personal server

Run a render with a Bash command

You can use a bash command to run a render, something like :

blender -b my_file.blend -o output_picture_name -f 1

For more informations about arguments you can look at the documentation or type :

man blender

Run a Bash command with a script

In python, it would look like :

import subprocess
result = subprocess.run(["blender", "-b", "my_file.blend", "-o", "picture", "-f", "1"])
if(result.returncode == 0):
    print("Everything went good")
else:
    print("Something went wrong")


As I said in my comment, the problem is caused by your nodes for the plane. In BI, your plane rendered white with black cracks. In Cycles, you rendered black with white cracks, I believe. Also, your UV Mapping needed some touching up, as only part of the cracks image was actually showing. After fixing your nodes and the UV Mapping, I achieved the following result.

The following is the modified node setup for your plane mask. I used the Emission and Light Path > Is Camera Ray nodes to achieve the Shadeless effect provided in BI (logic from Import Images as Planes addon Cycles node setup). Then, I used the Alpha output of the cracks Image Texture to differentiate between white, normal, and cracks, black. I used the Alpha instead of the Color with Bright/Contrast to make a Fac: because in this case, there was a readily available B/W Fac: already.

Here is the .blend file. Note that I may have messed up several of your paths.

As an alternate solution, you can use the following compositing. Note the changes in the two nodes immediately following the mask's RenderLayer node. If you do this, do not utilize the above solution as well. I will say that this works slightly worse, but it's still reasonable.


Shadow catcher layer for After Effects not rendering

You should have both Scene Layers 1 and 3 selected so both layers affect each other. Your render layers can stay as is.

Also, you are using Layer 3 to mask out Layer 1, but because Layer 3 contains objects in front and behind the character on Layer 1 it's masking out the character completely.

You'll probably need to need put the elements behind the character (floor, etc.) on a different layer.

I'm getting something like this for the Shadows>Shadow pass.

Also, I noticed you're rendering out to PNG file without using the compositor. Doing it this way will just give you your main Combined pass. You'll need to render to a MultiLayer EXR (renders all passes into one file per frame), OR you'll have to set up File Output nodes in the compositor to render out separate PNG image sequences for the additional render passes you need.


That is exactly what Dupli Groups are for.

Create a group that includes all the individual components.
Add this group as an instance into the scene: Add > Group Instance. This instance will behave like one object.
You can link a group from another file, which could represent that library you want to create. In the library file you have still access to all the groups components and you can edit them, but the linked instance will behave like one entity.

This has also other benefits like saving memory if you need multiple instances of the same group.


How can i rip a circle open and turn it into a straight line?

One way to do it is to animate the Bevel Factor of a bezier curve that consists of the circle and the flattened line extending at one end.

You start with a bezier circle and turn off Cyclic in the properties panel.

In edit mode, rotate the handles by 45 degrees so that the circle shape is restored. One end of the arc is extruded to the bottom (with its handles rotated horizontally), the other end gets extruded along a line with the length of the circle's circumfence.

Add another curve – either a NURBS or bezier – to act as a Bevel Object. In the example I used a NURBS path with 0.05 length. In the properties of the “circle” select the new curve as bevel object and set the bevel factor mapping to Spline

Add a driver to both Start and End of the bevel factor by right clicking on it and selecting Add Driver > Manually Create Later (Single)

In the F-Curve editor (Graph Editor panel > Drivers mode > Drivers tab) set the drivers variable to the X Location of the circle.

The scripted expression for the Start should be var / (2*pi) / 2 (as the driver should run from $0$ to $0.5$ as the circle moves from $0$ to $2\pi$. The End expression is var / (2*pi) / 2 + .5 (running from $0.5$ to $1$).

Finally, you can animate the X location of the circle.

Another approach could be to animate the control points individually. If you go that route, you might want to look into an addon called Animation Nodes. A similar animation using a 3D rope unwinding has been explained in this answer by Omar Ahmad.


Object Data Path Input node needed in Animation Nodes

Spline Info node can be used to get the radii of the points, while Set Spline Radius node can be used to set the radii of the points.


Yes, you are misunderstanding how Spin works. Spin takes your selection and does a spin extrusion about the 3D Cursor, from the current perspective of the 3D Viewport.

Here's a screen shot to illustrate:

If you want your spin extrusion to be in alignment with a specific axis, align your 3D Viewport accordingly and enter Orthographic View before executing the Spin.


How Can I Make Clothes for a .VRM Model in Blender?

if you're looking for anime looking clothes, your best bet is to look up "low poly" clothing tutorials. A lot of the look of vtuber type clothes is in the textures though.
The first thing you should familiarize yourself with is learning how to shape the clothes in general. Here's a very basic tutorial on creating clothing.
https://www.youtube.com/watch?v=szEeu6_b4fg
After that, you need to learn about UV mapping. You can practice texture creation with the pre-made vroid clothes and whatever drawing program of your choosing, but when creating clothes entirely yourself you'll also need to be able to properly UV map them with the textures. Here's a tutorial I found very useful as I'm kind of new to uv mapping myself.
https://www.youtube.com/watch?v=bMRXGscbF5I
If you're having trouble with inspiration, or the mapping and textures, you can always start out with editing MMD clothing that allows editing, as they are similar to the style you're looking for. I find that working "backwards" with this stuff [by breaking things down and seeing how they work, and editing pre-made objects] often helps beginners learn easier, myself included.


Using alpha channel of generated images for cycles

I'm not sure I understand the question entirely..

If you want an image with a transparent background,
Make sure you set the image background to completely transparent (assuming that is what you want)

When you save the image you also want to make sure you use an image format that supports alpha channels - png would be the most common.

The RGBA button enables saving the alpha channel and is only visible if the image format supports alpha.

(If you want to render the image, the RGBA button is in the render settings panel.).

You can then set up a simple material such as this:


The post you linked to is using a translucent shader, you are using a transparent shader.

Transparency vs. Translucency

Transparency simply lets light pass through the object, only changing the color and intensity.  Translucency lets the light through as well, but it scatters the light on the opposite side from which it struck the surface.

Translucency and transparency are the two basic types of transmission, they are akin to diffuse and glossy in terms of reflection.


Why do I get an "internal error setting the array" error when editing a mesh with Python?

I got it working by replacing bpy.data.meshes.remove(mesh); with mesh.clear_geometry();.


Can I map blender with a MIDI controller?

Does "external software" include Blender add-ons? There are a few for MIDI in and out event detection. i.e. "Add MIDI" http://www.jpfep.net/pages/addmidi/ ;

I don't think you can map MIDI controllers without add-ons or at least a python script.


I would tackle this problem by using a curve guide force field where Kink is set to Wave. Frequency and Amplitude will help you to shape your movement.

I prepared a blend for you that illustrates the behaviour clearly and upload it here
http://www.pasteall.org/blend/29048

This screenshot should help all of you that don't like to download foreign blend files ;)

Consider that the wave kind is behaving like a sawtooth wave... so maybe you should form your curve guide like the sine wave you'd like to create.

Another way is to use a harmonic field... for a demo of this effect, look here: http://www.pasteall.org/blend/29061 The movements here are less uniform. If you need even more turbulence use the turbulence field on top..


BGE: How to create a countdown timer without using debug or python?

You can add a game property to an object, of type "Timer". For my BGE project, I created an Empty named "Clock", just for this purpose. It has one game property "GAME_TIME", as shown on this screenshot:

You can use this property to keep track of time, as it'll increase as long as the game is running. You can also set it to 0.0 to restart the timer.


Can a driver be used on shrink/fatten on a curve's control point?

Curves have Shape Keys. You can use these to define the shape and add the driver to them.

EDIT:

Actually I misread your questions. You can add a driver to a point's Radius  in the Transform section of the Properties panel to get the same result as shrink/fatten.


UV maps are editable in blender. In the UV editor select all (A) (all UV points will become yellow) and drug them with RMB to the desired location, then finish it with LMB. Or use G shortcut to start your "grab and nove".


Maybe UVMagic addon already in Blender. You can copy from objects to other objects, faces etc. its simple to use, hope it helps!
Features

11:40 Copy/Paste UV (Among faces in UV/Image Editor)
0:07 Copy/Paste
UV (Among objects)
0:51 Copy/Paste UV (Among faces in 3D View)
1:51 Transfer UV

Tutorial and feature list here

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


I think the trick to this is to correctly calculate how many frames you have, divide it by the number of particles you want to spawn in your frame rate.

In the below example I have my end time at 100 frames with 10 particles so it would spawn every 10 frames and a lifetime of 100. You will need to change these numbers based on how many frames you have in your animation.

I also just used a plane for my particle system (no subdivision) and made it smaller than my object that it was spawning. So it mostly comes out at the exact same spot.

Maybe somebody could come up with a better answer that is easier to control.

Probably animation nodes would be perfect for this. I just dont know it well enough.


It should work if you put the Snap Target on "closest", grab("g") the object and move your cursor to the face you want to snap to.

This works the same way in Edit-Mode.


Object surface be cracked when move too far grid center

This seems to be due to an old bug. The cause has been identified:

  The issue is actually coming from the way how ray bounce is happening: it is using ray_offset() in order to avoid self-intersection. This function will push ray along the face normal by a small value. This small value is different for different axis and actually depends on magnitude of the original coordinate. In this case ray is getting pushed a bit more along Y axis than along X and Z axis. This makes ray to be moved into the surface itself, causing light artifacts.

But it's apparently difficult to solve. There is a patch you can try if you are familiar with building software, but you'll likely have to apply it to an older version of blender (and it doesn't fix everything).


The face is probably a lot bigger than what you think, my guess would be that it cover the whole top surface, not just the white bit you see overlapping. In edit mode, face selection, X-ray ON,  you might be able to see the center of the face and select it. If you really can't, then you'll have to fix it manually.


Clipping through stl file of porous material

You will want to use a boolean modifier.  Start by adding a cube that overlaps with your object.  Select your object, go to the modifiers tab, and add a boolean modifier.  Set the target object to be your cube, and select 'difference' as your operation.

Before modifier:

After modifier:

In this screen shot I've set the cube draw type to wire so you can see what the modifier does.  You could simply move the cube to a different layer.


Offsetting "hair" particles from their emitting mesh

Answer taken from here. It's a bit of a clunky solution.

Say you have used an object as hair particle on a mesh.

To offset its position from the mesh you have to first switch from using an Object as hair particle to using a Path.

Once in the Path settings change the Start value. The larger the number the more it will be offset from the mesh. Once you have an acceptable value switch back to using an Object as hair particle.


Should I care about topology after applying booleans?

If the object isn't going to be animated and the topology doesn't cause any problems elsewhere (e.g. because hard edges are used and bad topology becomes apparent), then you don't have to.

If you'd like to retopo a static object, but don't like to spend a lot of time on it, I'd suggest taking a look at Instant Meshes an open-source tool for automatic retopo operations.


With the particle system,when I render the carpet I see no bristles,but I see them in object mode

Because of applying scale to copied and scaled rug, your settings become wrong. To obtain the same result in toilet file as in carpet file, you would need to increase number of particles, hair length and thickness in particle settings. I can't give you exact numbers, cause it would require some experimentation.
In the meantime, what you can do fast and easy way, is to delete the carpet and copy it again from the carpet file, but this time only scale it without applying the scale. This way you'll get exactly the same look without changing settings.


After having the same problem I figured out a solution.

I installed a different ppa and then went into Synaptic, uninstalled the stock Blender and installed the cutting edge build.  The import and export options are there!  Yay!

Here's the ppa homepage:

https://launchpad.net/~thomas-schiex/+ppa-packages

Pop!_os -- Ubuntu 18.04


Imported High Res texture but wrong resolution visualization in UV Editing

This is a technical limitation of how the image editor works and your GPU. The cause is that you GPU cannot draw the texture in a single go. Blender downscales the texture so it fits on you GPU and can be drawn.
The current limitation will be addressed but no effort has been made yet.


sorry it turns out i had to go into the rigid body cache and change its starting and ending frames


Drawing a simple arch with the curve tool

Let's go one by one:

Add the Mirror Modifier
Go Curve > Toggle Cyclic, shortcut: Alt+C (but it will mess with the mirror modifier)
Use Orthographic view and enable Snapping to Increment (with Absolute Grid snap)

Add the Mirror modifier

Toggle cyclic curve

Set up Orthographic view (Front/Top/Side)


Why have my appended objects lost their rigid body settings?

This is because there is no Rigid body world in your second file.
To fix this:

Press Add rigid body world in Properties > Scene > Rigid body world:

With your appended rigid body objects selected, press CtrlG to make a group. They should now have a green outline:

Select the group in Properties > Scene > Rigid Body world > Group:


How can I see the normal data of a face in Blender 2.9?

Like ZargulTheWizard said, scripting was needed. It turned out I had the script saved in a file from years ago. I'm a bit reluctant to post the script as I'm fairly certain I didn't write it myself, but I can't find the source when searching. So in order to help others I'll post it here. If you are the author, please let me know and I'll give credit accordingly.

This script will create an additional property in the "Normals" menu of the "Object Data Properties" tab:
import bpy
import bmesh
from mathutils import Vector

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

    me = context.object.data

    if me.is_editmode:
        bm = bmesh.from_edit_mesh(me)
        if bm.faces.active is not None:
            row = layout.row()
            col = row.column()
            col.prop(context.window_manager, "active_face_normal", text="", expand=True)
            row.prop(context.window_manager, "active_face_normal", text="")

            if context.window_manager.active_face_normal != bm.faces.active.normal:
                context.window_manager.active_face_normal = bm.faces.active.normal

    else:
        p = me.polygons
        if p.active is not None:
            row = layout.row()
            col = row.column()
            col.prop(p[p.active], "normal", text="", expand=True)
            row.prop(p[p.active], "normal", text="")

def upd_normal(self, context):
    bm = bmesh.from_edit_mesh(context.object.data)
    bm.faces.active.normal = self.active_face_normal.normalized()

def register():
    bpy.types.DATA_PT_normals.prepend(draw_func)
    bpy.types.WindowManager.active_face_normal = bpy.props.FloatVectorProperty(subtype='DIRECTION', precision=3, update=upd_normal)

def unregister():
    bpy.types.DATA_PT_normals.remove(draw_func)
    del bpy.types.WindowManager.active_face_normal

if __name__ == "__main__":
    register()


How do I displace/distort a texture map with another texture map?

Use a Vector Math node combined with your Noise (or any) texture to warp the vectors:

As I mentioned above, you can use other textures as well to create different effects. You can also get better control over the "distortion amount" by using a MixRGB node to mix the texture with white before it connects to the Vector Math Node :


Calling an Operator from an application handler

If you're only going to call this operator from the callback, you don't really need to use an operator.

However, the reason that your operator fails is that it doesn't support execution rather than invocation.

Add a method called execute with (self, context) as the arguments. If you want to use the invoke() method's code, just call self.invoke and pass None for the event (be careful with this). The execute() method should return a set for the result just as invoke() does, so if you're using invoke's body, just return the result of self.invoke(context, None).

Finally, call the operator as 'EXEC_DEFAULT' instead of 'INVOKE_DEFAULT'

import bpy

class FooOp(bpy.types.Operator):
    bl_idname = "development.fooop"
    bl_label = "Foo"

    @classmethod
    def poll(cls,context):
        return True

    def execute(self, context):
        return self.invoke(context, None)

    def invoke(self,context,event):
        self.report({'INFO'},"running FooOp!")
        return {'FINISHED'}

def make_foo(scene):
    bpy.ops.development.fooOp('EXEC_DEFAULT')

bpy.app.handlers.render_complete.append(make_foo)
bpy.utils.register_class(FooOp)


In addition to my comment above, I did a little research regarding what to expect in the future. It seems that it's not (only) a limitation in Eevee, but also depends heavily on the GPU/driver.
The Blender documentation states the following:

Memory Management
In Eevee, GPU Memory management is done by the GPU driver. In theory, only the needed textures and meshes (now referred as “the resources”) for a single draw call (i.e. one object) needs to fit into the GPU memory.
So if the scene is really heavy, the driver will swap things in and out to make sure all objects are rendered correctly.
In practice, using too much GPU memory can make the GPU driver crash, freeze, or kill the application. So be careful of what you ask.
There is no standard way of estimating if the resources will fit into the GPU memory and/or if the GPU will render them successfully.

Since Eevee is a real-time rendering engine (much like any other graphics engine found in modern games) based on OpenGL, it inherits all the limitations that come with OpenGL, the driver and the GPU.
The GPU drivers are designed to work as fast as possible, so they don't bother with sending messages back to the application to inform about a limit being reached.
Therefore it seems highly unlikely that we see any improvement of the current limitations in the near future.


Can't blender do a snap like the Sketchup?

In Object mode you have to move object to the right, release, than grab again and Snap.


Node setup for transparent wire fence PBR texture

Use the mask on the alpha socket, to determine transparency

I suspect the one called met is for metallic.


How to get black outlines in Blender 2.8 Workbench Render? Currently all my outline lines are white!

Activate freeline in the General Scene settings (I am using eevee render engine)

Go to the image sequence settings and let's configure freestyle like the picture:

You´re going to select Thickness and then add a modifier ALONG STROKE.

And you want to select CURVE for the modifier. Now you need a profile curve.
Draw one like this:

"M" shape which means thick at the beginning, lower towards the middle, and thick again on the end line.

You can change the color and thickness here:

Don´t forget to change the line blending mode from MIX to ADD. Here are my settings:

The render:

Thank you for your consideration to vote me as the answer by clicking to the left :the icon with a check mark and upvote this answer.

BFCT_Schiller


Background image isn't visible in the viewport

Use the Numpad 1 to enter preset ortho view. Ctrl+1 from the top of your keyboard adds a Subdivision Surface modifier.


How do I reduce edge loops without weird geometry?

First off there is no way to reduce 3 inner edges to 0 without adding a loop cut somewhere, or using triangles or Ngons.

You can reduce three inner edges down to one inner edge using only quads.

However you can reduce four inner edges down to zero.


Video Editing (NLE): Time results of rendering in non-native resolution

Blender's VSE always scales the image, unless the source is the same size as project.

The project's render properties determine the speed of the scale process.
In the properties panel look for Anti-Aliasing.

For best speed of scale turn this off. However the image will have jagged edges.

To improve quality of the VSE scaling or other transform effects, you must turn on the Anti-aliasing. There are many levels and algorithms to choose from. The render-speed change may not seem to great, but you must multiply the difference out over the total number of frames rendered. And this example was based on a very simple image.


Blender 2.82a very slow compared with 2.79

I had this same problem and I found a few ways to fix this. By default, the resolution % in 2.8 is set to 100%, whereas it was always 50% before. This only applies to renders however, not really anything else. You can find it in the Output tab underneath your dimension. Another thing you should do is make sure Blender is using your GPU. In your Render tab it may tell you it's using GPU compute but you need to go into your Preference settings and make sure it is using Cuda. I found all this out this morning and my render times went from 2 minutes to 12 seconds, and my playback is a lot smoother.


Is there a way to animate a spot light's SIZE and BLEND?

You can keyframe just about any property by hovering over it with your cursor and pressing I.

Just go to the frame where you want the animation to start, set the value you want it to start at, and hit I with your mouse over the property.  Then go the the frame where you want it to end and repeat the process with the ending value.


There is a quite important difference when you render Video footage only:

Only with Blender Internal you have the option of using Anti-Aliasing.

And there is a bit of a speed gain or loss depending on your settings there. But it makes a huge difference as soon as you activate a Scale function of at least one Strip. Cranking the samples per pixel up there didn't really affect my image quality nor speed, so you could leave it at 5, but switching it off completely results in a performance increase, but a visible image quality decrease on edges.

GPU Usage is only available in Cycles though. And depending whether you want to include rendered footage from a Scene as well and what effect  you want to achieve (basically more photorealism vs. speed) you need to select your Engine accordingly.

So in your case I'd suggest you'd use Blender Internal.


Why does cycles render shows faceting in shadows?

you need to increase the polycount of the ball, try subdividing it, either by right click in edit mode and subdivide, or using the subdivision surface modifier


My object isn't showing up when I import it

If your object has been imported without errors, you should be able to see it in the outliner:

If it's there, select it in the outliner (left click on its name).

You will be able to check its size in the "Number" panel at the right of the 3D viewport: if it's not showing, press N to open it. Look under "Transform">"Dimensions":

dimensions too small (smaller than 0.01) or too big (larger than 100) can be tricky to visualize. Scale your object up or down by using S and then moving the mouse until the dimensions are around 1.

You can also hit . to center your object into view.

If your object has dimensions of zero, there were probably some issues with the file format and/or the 3D information hasn't been imported properly. If that's the case, you should provide more information about the file format and the tools you are using to import it.


My take on this.

Sometimes it's more trouble than it's worth to completely avoid operators. Given the nature of this method I can't imagine you will be running it in a loop hundreds of times.  Adding a modifier I would always use the API method. Selecting and assigning vertex groups using the operator is often the go, but you are constricted by the need to be in a certain mode for context.

Here's a method to do same, but with no operators. Can get the object from the vertex group, so that's all I pass to the method with: the number of times to grow the vertex group; and the name of the mask modifier so we don't end up adding modifiers endlessly to the stack.

I'm using a bmesh, for the ease of finding the linked faces for each vertex.

Test code, run in object mode with a mesh object having a vertex group,  as context object.

import bpy
import bmesh

def mask_and_grow(vg, num=1, modname="Mask"):
    ob = vg.id_data
    mod = ob.modifiers.get(modname) or ob.modifiers.new(modname, type='MASK')
    mod.vertex_group = vg.name
    me = ob.data
    bm = bmesh.new()
    bm.from_mesh(me)
    bm.verts.ensure_lookup_table()
    def ingroup(vg, v):
        vert = me.vertices[v.index] # use either bm or me
        return vg.index in [vg.group for vg in vert.groups]

    def grow(v):
        return (v for f in v.link_faces
                for v in f.verts
                if not ingroup(vg, v))

    vg_verts =  (bm.verts[v.index] for v in me.vertices
            if ingroup(vg, v))
    for i in range(num):
        # only need to look at extended next time
        vg_verts = list(set(v for g in [grow(vgv) for vgv in vg_verts] for v in g))
        vg.add([v.index for v in vg_verts],
                1.0,
                'REPLACE')
    #me.update()
    bm.free()

# test call
ob = bpy.context.object
vg = ob.vertex_groups.active
mask_and_grow(vg, num=2)


Is it possible to use the startup.blend UI layout in older files?

When loading the file from the blender file browser uncheck the Load UI checkbox, which is on the left hand side in the toolbar, to ignore the layout in the file to be loaded:

Note: that this will keep the UI of the current file. It may help to reopen the startup file (Ctrl+N) to restore your default layout, and then open the file without loading the UI.

You can also go to File> User Preferences> File and uncheck the Load UI checkbox in the Save & Load section and save your user settings so that this is the default behaviour for blender when opening files:

In newer versions you need to click on the gear on the top right of the window to see the LoadUI option.


How to add particles on the surface of a mesh with Solidify modifier?

You need to make sure that the particle system is placed last in the modifier stack (the bottom most one) :

And also check "Use modifier stack" in the source panel of the particle settings :


How to animate focus/blur intensity on a VSE strip

Sorry the blur implemented in the vse doesn't use an image value for scale (blur quantity is determined by image value), so all you can do is mask the blur strip with a shape (like a texture). Then Alpha it over a copy of the source strip.


Possible to add a plane using vertices via Python?

With this code you can set the vertex location  manually:
import bpy

def create_custom_mesh(objname, px, py, pz):

    # Define arrays for holding data
    myvertex = []
    myfaces = []

    # Create all Vertices

    # vertex 0
    mypoint = [(-1.0, -1.0, 0.0)]
    myvertex.extend(mypoint)

    # vertex 1
    mypoint = [(1.0, -1.0, 0.0)]
    myvertex.extend(mypoint)

    # vertex 2
    mypoint = [(-1.0, 1.0, 0.0)]
    myvertex.extend(mypoint)

    # vertex 3
    mypoint = [(1.0, 1.0, 0.0)]
    myvertex.extend(mypoint)

    # -------------------------------------
    # Create all Faces
    # -------------------------------------
    myface = [(0, 1, 3, 2)]
    myfaces.extend(myface)

    mymesh = bpy.data.meshes.new(objname)

    myobject = bpy.data.objects.new(objname, mymesh)

    bpy.context.scene.collection.objects.link(myobject)

    # Generate mesh data
    mymesh.from_pydata(myvertex, [], myfaces)
    # Calculate the edges
    mymesh.update(calc_edges=True)

    # Set Location
    myobject.location.x = px
    myobject.location.y = py
    myobject.location.z = pz

    return myobject

curloc = bpy.context.scene.cursor.location

create_custom_mesh("Awesome_object", curloc[0], curloc[1], 0)

I hope this helps!


Starring and messy edges when smoothing or using sub surf modifier

You should avoid Boolean as much as possible. Often it doesn't give a good topology.

If you want to keep your object:

Go in Edit mode, select all and press ctrl N to make Normals Consistent.
Press ctrl W > Remove Doubles to delete all the vertices that are very close to each others. Play with the parameters on the bottom of the Tools panel (T to display).
In Object mode, increase the View Subdivisions of your Subsurf modifier and press Smooth in the T panel > Tools > Shading. You could get something not too ugly.

But you should redo your object this way:

Create a sphere, rotate it, cut its top.
Duplicate this sphere and rotate it 180°.
Merge the two spheres with the Snap tool enabled (horizontal bottom menu of the 3D view), Type of element > Vertex, and press the Automatically merge vertices option.
Scale down one of the sphere, add an edge loop to correct the topology.


Export the animation as .mdd file (enable export mdd addon in preferences). Choose the right fps and start and end frame of animation.
Now you can delete the cloth modifier from your flag object and delete all caches.
Add a Mesh Cache modifier to your flag and load the .mdd file with your animation.
Add a material slot and change it's link from Data to Object. Your flag copies will share the same mesh but will be able to have different materials.
Duplicate your flags with AltD. The Mesh Cache modifier will be copied to all the flags also.


How to toggle visibible / selectable / renderable for multiple objects?

The outliner is written in C, and not much is exposed to Python.

The operator that toggles the (render-)visibility or selectability is:

bpy.ops.outliner.object_operation()

Possible arguments for the type parameter are:

('SELECT', 'DESELECT', 'SELECT_HIERARCHY', 'DELETE', 'TOGVIS', 'TOGSEL', 'TOGREN', 'RENAME')

As you see, there are only toggles. Someone had to add some to only turn on or only turn off all pre-selected items (would unify the settings). Seems like a simple C task, but not sure how to do the interaction with the user...

Wouldn't make much sense to clutter the right-click menu with

  Toggle Visible
  Make Visible
  Make Invisible
  Toggle Selectable
  Make Selectable
  Make Unselectable
  Toggle Renderable
  Make Renderable
  Make Unrenderable

Hotkeys should work well however, Shift + R/S/V to turn all on, Alt + R/S/V to turn all off. Ctrl + ... wouldn't work, 'cause CtrlS is globally for save .blend.

Update:

I duplicated the toggle code and changed it to set visibility/selectability/renderability. This means you can switch each of them on, just like you would toggle them. If you want to turn them all off, turn them all on, then toggle to invert. Benefit: 3 operators / entries in the right-click menu less.

It might make sense to refactor the code and have only one operator each (so 3 in total) + an enum to turn on, off or toggle. I would still add turn on and toggle to RMB menu only.

Diff: http://www.pasteall.org/49381/diff

Windows 64bit build: http://graphicall.org/1101


Not sure what is really the underlying cause, but I figured out how to reduce the artifacts.

It seems to be related to the image filtering interpolation method.
Turning on Interpolation and increasing the Filter Size property seems to reduce the effect noticeably.


I thought I solved this. Using custom transformation from another object, eg. the axis I have through the sphere. The only thing is the earth mesh still seem to be calculating the coordinates from the global scene, and aligning to the custom transformation object. It would be nice If the X and Y axis would be kept at Zero (0) and only the Y axis changing values when I rotate the Y axis.

If I lock the X and Y axis, and now try to drag or change only the Z axis of the sphere, or to animiate it, it still spins around the global axis.

SOLUTION: Found out I had to change the Rotation from XYZ Euler to ZXY Euler, now rotating the Z axis gives me what I wanted.


Forcing Blender to measure ONLY in inches (not feet)

I believe if you check the separate units check box that should give you what you at least the thing displayed in feet and inches(rather than decimal notation).  But I don't know if it possible to have it only show in inches as noted in your example.


I found this link helpful.

I got rid of the Rigid Body Constraints.  They were doing nothing.
I set Torus.013 (center link) RB to active, mass of 0.5kg, margin 0.5m
Torus.026 (pendant) margin to 1m.

I believe that is all.   Here is the modified file, far from perfect:


Object exported as Obj looses textures in Unity

I'm a newbie too.  Almost all tutorials I've seen using Blender and Unity together use fbx files.  I don't know why and I don't know the relative advantages or .obj and .fbx, but maybe try exporting as an fbx (on the save screen, enable mesh, armature and material only).  This should at least export the material with the mesh, making it more likely they will be compatible...maybe.

Unity Result


Snapping doesn't seem to work on multiple objects

I happen to be on the same tutorial (I don't know how he doesn't have the same problem). I played around with it for a bit, and I found that, after duplicating all the blocks, selecting an odd number of columns/columnless tiles seems to remove the problem. Just select different numbers of blocks until it snaps properly and you should be fine.
If worse comes to worst, just move the blocks individually, it's not as big of a headache compared to doing the same thing with vertices.
P.S. Don't forget to add the roof spacing blocks.


How to set Opacity Maps with colored tga textures?

It looks to me like the alpha is in the blue channel of those images.

To use it in cycles just add a Seperate RGB node in between the image and where you normally would plug the alpha in (probably the Fac in a mix node).

I'm guessing the other colors are kind of an id map (just other parts of the texture segregated) so you can apply different shaders to different parts. And example is the "corvete" sticker on the right side. If you wanted to make the letters less shiny then the rest of the sticker, then you have a texture to use for that.

This is really nothing more then putting mutipal black and white texture maps into one color image.


Changes made to mesh does not appear in final render but appers in viewport render

It looks like maybe you created a backup copy of the object, hid it from the viewport, then did your editing. Hiding it from the viewport does not prevent it from being rendered however.
If you click the little Filter Dropdown above the scene collection hierarchy in the Outliner, you can enable the Disable in Render restriction toggle, which allows you to also prevent objects from being rendered by clicking that icon in the hierarchy.


How do I snap objects to edges in version 2.79?

Below the 3D window click on the magnetic icon to activate

Beside the magnetic icon there are type of snap. Click on it and you can find several type of snap inside it.


The artifacts you are talking about are results of a bad topology of your mesh. The subdivision modifier is very sensitive to your edge, vertex and loops placement. The mesh should be ideally all square faces (no triangles or ngons) and have similarly sized polygons around creases.

There is a lot on the internet about mesh topologies (examples etc.), search for "mesh topology" or "mesh edge flow". Here are some tutorials from CGcookie.

In your model you can start by removing ngons, having all quads, and spacing even edge-loops around your creases:


Cannot run simulation for smoke and fluid

I'll be focusing on your scene here, however I will also try to generalise a bit so that you can carry the new things over.

Let's start with the fluid simulation - the fluid simulation does simulate in the file you have provided. It pours over the statue.

It does show up like a solid object in the render because you've not added a shader to it, so currently it's just plain old white.

I might have understood that the wrong way, so here's what to do if instead you mean the fact that the domain reverts to a cube during the animation: You've not baked the fluid enough. The process takes a lot of time and can't (to my knowledge) be paused. Hit the "Bake" button located in the physics properties of the fluid domain to bake the fluid cache. This will take up time and space on your harddrive. Blender might be unresponsive during baking - however make sure to save after a bake, as the cache is bound to the save-file. If it crashes and you forgot to save... well, then you can re-bake the whole thing.

If that's not your issue then I'd love to have some clarification as to what's not working out for you.

Onto the smoke simulation! Here is the part where things get a bit more general.

Smoke simulations are hard to calculate for the CPU. The "division" setting for smoke simulations is also not a "quality" slider. There is however a setting called "Smoke High Resolution". I see that you've ticked that one - and at the same time upped the divisions to 100. Blender really didn't like that 100 in the divisions setting. I got a normal result from lowering that setting to 32.

I'd recommend setting the divisions to 32 or 64 and instead increasing the "Divisions" setting under "High Resolution" to increase the quality of the smoke. I'd recommend 2 or 3, anything above 3 will not be worth the additional space on the harddrive and baking times.

A smoke emitter also doesn't need a lot of vertecies - yours currently has about 10000. Replacing it with a simple plane will yield the same result. I've personally not experimented with it, but it might reduce baking times as well.


Center a mesh from a ply file in the origin

You can look at the following schortcuts maybe you will find what you need.

Shift+S = Snap

Shift+Ctrl+Alt+C = Set Origin


Is there a way to bake an array animation?

If the software you want to export it to supports alembic (i know for example that fusion does), you can use this fileformat. It was just added to Blender so it only works in the newest Versions. Exporting it in Blender and importing it again works fine and it bakes the animation to mesh cache (In Blender it then uses the mesh cache modifier). This is also how you can export fluid simulations for example.

Just choose File - Export: alembic (.abc) and configure the options (especially the end frame)


How do you script batch changes to bone constraints

I'd go about it this way.  I use context = bpy.context on test scripts, that can later be pasted into Operator or Panel code.  Work from the context object, rather than using a name like "Armature.001" (guilty myself on many occasions)

I use list comprehension out of preference.

import bpy
context = bpy.context
# the rig object
rig = context.object

# all copy location constraints on all pose bones
constraints = [c for pb in rig.pose.bones
                 for c in pb.constraints
                 if c.type == 'COPY_LOCATION'
               # and "XY" in c.name
              ]

# set the desired properties
for c in constraints:
    c.use_y = True

# similarly for Transformation
# type from mousing over add constraint in UI
constraints = [c for pb in rig.pose.bones
                 for c in pb.constraints
                 if c.type == 'TRANSFORM'
              ]

for tc in constraints:
    tc.to_max_y = 0.02 # given 1 blender unit is 1m

# all constraints from preselected pose bones
constraints = [c for pb in context.selected_pose_bones
                 for c in pb.constraints
              ]


You can 'Hook' the control point of the curve by pressing Ctrl+H while in edit mode, with the point of the curve you want to move selected and choosing 'Hook to new object'. Adding the hook via this shortcut is just a quick way of setting up the hook modifier, which will be present on the curve after the shortcut is pressed.

This will create an 'Empty' object which can be animated. The control point of the curve will be parented to the position of the empty and will follow the empty wherever you animate it to.


Mantaflow Sim Not Showing up in Final Render [2.83 Alpha]

This rendered for me, see attached zip file.
Only changes l made:

changed cycles from experimental
rendered a frame past frame 141 - increased the animation frames to 250 as it seemed at 75, 141 much wasnt coming out of the effector mesh holes , thus increasing the simulation .
increased the point light strength.
changed the fluid material to Glass  [ie water look]

File:
https://drive.google.com/file/d/1vuo8yEqGqUA4-DrVcNGuQoPjvgYsHEjg/view?usp=sharing


Reflective material don't reflect a mesh

You need to go to the render properties >>> Screen space reflections


How to rotate multiple faces in the same direction

Change pivot point to Individual Origins and rotate on Z axis, or instead of rotate you can Shear the faces from top view, with Median Point Pivot using Shift+CTRL+ALT+S and drag the mouse until you get the angle that you need.


Using the depsgraph
Since the upgrade to 2.8 the depsgraph is a member of the locals of a driver, as are the variables.  See answer to
How to use different types of data blocks for driver variables?
re setting up a test driver.
As an example, driver is on "Cube".  The object "Lamp" is in scene, and passed as an evaluated object  to the driver via the depsgraph.  The depsgraph can also be used.

def test(*args, depsgraph=None, **kwargs):
    for arg in args:
        print(arg)
    print(depsgraph)
    return -1 # a simple val to indicate working

<bpy_struct, Object("Cube") at 0x7f62fcbefa08, evaluated>
<bpy_struct, Object("Lamp") at 0x7f62fcbf0008, evaluated>
<bpy_struct, Depsgraph at 0x7f62faba6c08>

An example to return minimum global z of all other objects in the depsgraph.  The method of @lemon can be used for the object names. Other options could be tagging them via custom property or name prefix suffix.
def test(self, *args, depsgraph=None, **kwargs):

    z = min(o.matrix_world.translation.z for o in depsgraph.objects
    if o != self)

    return z

Pointerproperties.
IMO the best way to associate an object(s) with another is via a pointer property
bpy.types.Object.driver_obj1 = bpy.props.PointerProperty(type=bpy.types.Object)

which can be assigned via script or UI.
context.object.driver_object1 = context.scene.objects.get("Lamp")


Yes. In the upper left hand corner of the modifier pane, click the "apply" button, and this will make the modifications to the cylinder mesh permanent parts of the object.


Can't seem to get dynamic paint waves to behave correctly

the problem is the settings you are using ( the clear one is the smoothness which is killing all the ripples leaving only a sharp tail )  you have to adjust the settings according to the object speed and size to get the desired results :

using the following settings on the canvas (default plane with no subdivisions ) :

I get the following results :

 bake the dynamic paint and set the result as a  texture for the plane


This is because the bottom face doesn't have the proper geometry, the edge ring tool doesn't know where to direct the ring since there are several vertices (it is an ngon). You can only use this tool on quads (4 sided faces). So to fix, you can use the knife tool and rework the ngon into a large quad.

Additionally, there is also another problem, you have duplicate vertices at the point where the cut stops. To fix, first box select (B) the points shown below and use Alt + M > At Center to merge the duplicate points into one.

After you do that, use the Knife Tool (K) to create a quad as shown below. Press K and select one vertex then another and press Enter. Repeat for the other side and you should be able to add edge rings after.


Numpy point cloud
Test script.

Get the verts of context object
Save as test.npy
Load saved file
Create mesh with saved verts
Add mesh to new object and link to scene

Test script
import bpy
import numpy as np

context = bpy.context
ob = context.object
me = ob.data
# get the coords of context object
coords = np.empty(len(me.vertices) * 3)
me.vertices.foreach_get("co", coords)
print(coords.reshape(-1, 3))
# save to .npy file
np.save('test.npy', coords.reshape(-1, 3))
#load it into another array
verts = np.load('test.npy')
print(verts)
# new mesh
me = bpy.data.meshes.new("Verts")
# load in verts
me.from_pydata(verts, [], [])
# create object and link to scene
vob = bpy.data.objects.new("Verts", me)
context.collection.objects.link(vob)
# give same global transform
#vob.matrix_world = ob.matrix_world


Format IntProperty/FloatProperty in GUI layout.prop?

Having a formatted text inside the active part of the UI component is not possible, as far as I know.
What you can do, if it suits the UI you would like to get, is to put a label before and after the component with the value, and display only the value.
row = layout.row()
row.label(text="prefix")
row.separator(factor=1.0) # Optional. just in case you need more space between components
row.prop(propertyOwner, "property", "text="") #will display the property value without the text inside
row.separator(factor=1.0) # Optional. just in case you need more space between components
row.label(text="suffix")

Or, if you don't need the value component to be interactive, you can just draw a simple label, which you will be able to format as any Python string.
str = f"Prefix {propertyOwner.property:,} Suffix"
layout.label(text=str)


Transparent objects block objects behind them when not selected

In the properties of the "glass" shader, under Settings / Viewport color, lower the Alpha value.

In the properties of every transparent object, in Object / Display, check Transparency.

Bonus : this kind of transparency also works in Solid view, not only in Material view.


If you are baking with Cycles you just have to turn off the direct contribution when baking.


Okay, modifiers enthusiasts, let's have a good one.

Add a plane in the center of the world. Go into Edit mode. In the Mesh menu, choose Merge > At Center.

Now we have a unique vertex on $0,0,0$

Add a Displace modifier. Set its direction to X.
Add a Screw modifier, set axis to X. Set the steps to 8, angle to 0 and the screw to 0.5.
Right-click on the Screw value field, choose Copy as New Driver. Right-click in the Displace modifier Strength field, choose Paste Driver. Right-click again there and choose Edit Driver, change the driver type to Scripted Expression and set it to - screw_offset.

Now we have a line with $9$ vertices centered along the X axis.

Add a Screw modifier. Set Angle to $0$, axis to Z and Steps to $32$. Set the Screw value to $10$.
Add a Displace modifier along the Z direction.
Right-click on the previous Screw modifier value field and choose Copy as New Driver, right-click on the last displace strength field and choose Paste Driver. Right-click again, choose Edit Driver, change driver type to Scripted Expression, set - screw_offset.

Now we have a band centered along X and Y axis :

Add a Displace modifier, set the Direction to Y, Strength to $2$
Add a Simple Deform, set to Stretch 0, along Z, with a factor  of $-0.40$

Add a Simple Deform, set to Twist, along Z, with and Angle of $360°$
Add an Empty in the origin.
Add an Array modifier, set the count to $6$, uncheck Relative Offset, check Object Offset and set your empty.
Right-click the Array Count, choose Copy as New Driver. Go to your Empty's transforms, right-click the Z rotation and choose Paste Driver. Right-click again and choose Edit Driver. Set driver type to Scripted Expression and type 2*pi/count so that the angle is in radians.

We have so far some sort of pinecone. Tweak the first Screw offset so that there is no overlapping mesh when you add a lot of array count.

Add a Cast modifier, set it to Sphere (default), set the Strength to $1$
Add a Subdivision Surface modifier, set the strength to $2$
Add a Solidify modifier, thickness to $0.1$
Add a nice shiny material to it.

Final result:


Mirror Axis and Rotation of Whole Object

If I understand correctly your question, it looks like you're confusing Global orientation with Local orientation. The Mirror modifier will mirror the mesh on the object's local X, Y or Z axis, not on the global X, Y or Z axis. So for example, if you mirror on the X (local) axis, here is what you have:

If I come back to Object mode and rotate the object on the Z axis, it won't mess up the mirror because my rotation was in Object mode and didn't affect the mesh on its own local axis. Here I've enabled the Transform Orientation display to make it clear, it displays the object own local orientation, you can see that it follows the object rotation, so the mirror effect won't mess up the mesh.

But if I come back to Edit mode and rotate the mesh on its Z axis it will mess up the object because this time I'm in Edit mode and the Mirror modifier takes the mesh local orientation into account!


mesh=obj.data error when no object is present

yeah an if / else construct is fine.

def draw(self, context):

    obj = context.object
    if obj and obj.data:
        # do one thing, if it has data
    elif obj:
        # probably an empty, an object without data
    else:
        # show something in the case of no object selected

Study the poll functions of the UI scripts that come with Blender to get an idea of common practices. Though the poll functions are usually to completely prevent panels or menus from showing or stopping Operators from executing. You'll find the same logic in place for hidding sections of a menu / layout.

Also be aware that sometimes you should be checking for context.active_object rather than just context.object.


How do I make it so something will go when collected, then re-spawn after awhile?

You can toggle objects.

On request the visible object can remove itself and adds another invisible object that counts the 60s.

After timeout the invisible object deletes itself and adds the visible object again.

As you can only add objects from an invisible layer and you want to re-add your objects, I suggest to start with an empty that immediately adds the visible object. This "startup" empty is not needed anymore and can end itself too.


How do I focus on an object's center (Numpad period not working)

To fix the . shortcut, press N to bring a sidebar, go to View > View Lock and disable Lock to 3D Cursor

As for the rotating pivot point problem, you can change that at the middle top of the 3D Viewport.


It works when I uses a BMesh instead of a Mesh type. When I uses the select_set(True) from BMVerts, the shortest_path_select() works fine.


Transparent Alpha textures and Freestyle rendering

Move all objects that shouldn't have freestyle outlines to a new collection (you can select them, press M and create a new collection or choose an existing one). Then, in View Layer tab, inside Freestyle section, select the freestyle condition to also be based on a collection - then precise the new collection and choose exclusive to not draw over objects from that collection.


Is it possible to dock the annotation layers window?

The Annotation layers can also be found in the View Panel in the Right hand side panels. (Toggle with N)
You don't need to be using the Annotate tool to access it.
To keep it in place, right click on the sub-panel header and choose Pin. You can also use SHIFT + Left Mouse. Notice the Pin icon in the top right.
Click and drag the 8 dots in the top right of the sub-panel to rearrange it on top of all the others. That way it's always on top of whatever Panel you are in.


Moving vertex to the X/Y intersection of two others

Snapping does work, but it has to be in 2 constrained moves, I think.

Snap set to 'Vertex' and 'Active'
G X, and then G Y to the relevant vertices, with the snap active.

The first move could be G G, a slide, no snap, as far as it will go.


How can I make a shadow disappear in Cycles?

This affects the object casting the sadow not the lamp.

A slightly simpler solution exists: you can set the object you want not to cast shadows not to interact with shadow rays. You can then render your animation with and without the shadow. Finally you mix the two animations to control the fading.

The parameters are in Object > Ray Visibility > Shadow. See this qustion for more info about this:

How to make a cycles light emisson object invisible to the camera?


Output either 0 or 1 for every 24 frames using animation nodes

Here is an example,

1) Repeat node is giving values from 0 to 47 i.e 48 when the rate is 48.

2) Because repeat node also count 0, so I have substracted 1 from frame.

3) Then using compare boolean and switch nodes we can choose 0 for 0-23 frames (24) and for next 24-47 (24) frames, 1.

4) Last I use float text node to convert float to text and text object output to text-object.


Can't select individual hair particle in particle edit mode

As far as I know, you cannot select single hairs. Instead you use the brushes on the toolshelve (left) to refine your particle hair. The reason is that your particle hair is no actual geometry, but a field that generates geometry on the fly.

(edit:)
HOWEVER you can select the handles (called keys) of a strand.

On the bottom of the 3d-Viewport there is the header. In editmode you'd find edge-selection mode and face-selection-mode on it. In the very same place you'll see three types of strands: blank, riddled with points, and points on the tips. select the secon option and you're on. you can then select the points (called KEYS) by "rmb" and linked strands by "L", just the way you do with vertices on meshs. Be aware that these keys are handles and not vertices. You can remove keys or strands.


Notify Operator when scene property update

here is how i did it in my addon, i registerd my property's in directly in the register def and made a def at the top of my script that gets called when the value of the property changes

def Update_BoolProp(self, context):
    pass
bpy.types.Object.BoolProp = bpy.props.BoolProperty(
    name="BoolProp",
    description="description",
    default = True,
    update = Update_BoolProp
    )

i think that you can define the update function where ever you like as long as you can access where you define your property's.

ps: your vids are really helpful


Is it possible to make a property update other nodes like a link update does?

Looks like I forgot to add the update parameter in the custom property:

#Custom properties are basically a struct, you can have any number of built in (bpy) datatypes defined here:
weight= FloatProperty(default = 1.0) #no update triggered
value = FloatProperty(default = 1.0, update=uda) #update triggered

Additionally the node socket needed to have it's update callback initialised

def init(self, context):
    self.inputs.new("SynapseSocket", "Value 1").callback(self.name, "uda")

For anyone else that manages to stumble across this problem, see my previous question as well: Alternative update callback for PointerProperty?


since you didn't tell the detail, I will try to answer in the beginning.

first you need to import your svg file

File > Import > Scalable Vector Graphics (.svg)
its look like your svg is too small, goto edit mode and scale it up

press tab, then 's' to scale it up. remember to do it in edit mode.
goto the curve panel then increase the bevel depth value

this method will not get the very similar result to your reference image. if you want to get a great result you need to modelling it manually.


Making Loop Cuts On Same Mesh on Individual areas simultaneously

You can use Knife project for this.

Add a plane, with edges where you want the cuts
Switch to Orthographic mode
Use Mesh > Knife Project and check Cut through


Move modifier to the top of the stack through python

This can be done by some simple scripting. I assume obj is filled with the object with the modifier stack

def modifiers_by_name(obj, name):
    """ Find all modifiers with a specific name in obj """
    return [x for x in obj.modifiers if x.name == name]

def modifiers_by_type(obj, typename):
    """ Find all modifiers with a specific type in obj """
    return [x for x in obj.modifiers if x.type == typename]

# move all "Screw" modifiers to the top
for modifier in reversed(modifiers_by_type(obj, "SCREW")):
    # while modifier not on top
    while obj.modifiers.find(modifier.name) != 0:
        # move it one more to the top.
        bpy.ops.object.modifier_move_up(modifier=modifier.name)

Note I reversed the modifiers so the top "Screw" modifier will still be on the top after execution


How do you restrict the left click rate in the game engine?

You can create a timer property in the logic editor panel and name it whatever you want. Say - "dTimer". Now when your game runs it will run. And in your python script do like this -

if mouse_click.positive and own["dTimer"] >= 2: #2 seconds
    #do whatever you want
    own["dTimer"] = 0 #Reset the counter to zero

As soon as you reset it to 0, it will start the counting from 0 again. You can debug the property if you want.


To get your Lattice deformation to work:

First of all you have to subdivide a mesh at least with several loopcuts (and the more smooth transitions you want, the more subdivisions you need). To be concrete, exactly this wasn't done for your mesh in the file.
Then add a Lattice Modifier to your mesh, then select created lattice in the "Object" input box of the modifier.

Only after this is done, will modifications to the Lattice affect the mesh.

EDIT:
Alright, after taking a look a the blendfile, the reason for the modifier's misbehavior became clear: you simply don't have any subdivisions in your mesh, so it cannot bend. The lattice modifier affects existing geometry, and can only move existing vertices. As you can see in the gif below, after I added some subdivisions to the length of your mesh, using the Loop Cut and Slide Tool (CtrlR), the Lattice works fine.


Scale a ring curve while maintaining the ring width

I figured it out.

Go to edit-mode, select the outer edge of the ring and make a hook.
Select the inner edge of the ring and make another hook.
Go to object-mode and select the empty for the inner hook. Make driver for scale x, y and z.
Open Drivers editor and edit the existing variable (or make a new one if it doesn't exist).
Change the driver variable type to Transform Channel.
Select outer empty as object.
Change type to X Scale
Change space to World Space.
If you want to maintain 0.1 tickness then in the expression type "var-0.1" without the quotes for the expression.
Hide the inner empty.

Now if you scale using the outer empty, the ring should keep it's thickness.

Here is the example scene:


How to get Groupinstance Object with scene.ray_cast?

No, there is no way to access the object that instances the duplicator.

In fact there could be many (a chain of parents in a nested hierarchy).


Mesh moving in the opposite direction to bones

To solve your problem follow this:

Select your mesh and apply the mirror modifier and delete the armature modifier

Delete all vertex groups in your mesh
Select your mesh then Shift
and Right-Click select your armature then hit Ctrl+P and choose parent with automatic weight and it should work


Rendering in Cycles on OpenCL GPU Compute Leads to Artifacts

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

https://developer.blender.org/T77095


Select the camera, open the camera properties, and scroll down to the "Image Pipeline" panel.
In there, you can enable the "Transparent Film" option.


How do I remove green background without replacing it with another background?

For this Explanation i will use a clip of an alpaca on a greenscreen from here -
https://www.videvo.net/video/alpaca-on-green-screen/3442/
Step one - setup
Open blender with the General preset

And select the Compositing workspace

Select use nodes

Step two - add nodes
Remove The render Layers node by clicking it and pressing X on the keyboard

Add a Movie Clip node by clicking the add menu

Select the sub-menu Matte

And select Keying and drag the node to left of the Composite node

Add Movie Clip Node with Add -> Input -> Movie clip

Click Open On the Movie Clip node and select the video clip
Add a Viewer node with Add -> Output -> Viewer

and place it under composite node

click the yellow circle on the movie clip node and drag the mouse to the Image input on the left of the Keying node and connect all the other nodes as in the image

you will notice the clip in the background
Click V on your keyboard a few times to zoom out or Alt+V to zoom in so that you can clearly see your video.
Step three - Keying node
Select a frame in which there is a subject on the greenscreen
By changing the frame

Click The Color Input on the keying node

Click The eyedropper icon

And Click The Green on your image if there are darker and lighter areas click somewhere in the middle

you will see the green vanish but it won't be perfect every time so we will tweak some settings
Set The Feather Distance to about 2 or 3 pixels

Then Change the Dilate/Erode to some negative number that doesn't cut away from the character

Play with settings until it looks right
Step four - render
First set the End to the last frame of your shot which you can find by changing the frame

on the right select the output properties

Make sure the file format is set to png
and RGBA

Press the select file button

select a output folder and make sure it is empty because it will fill with images
and press accept on the bottom right
Now all you have to do is render out the animation
select it from the render dropdown and wait for it to finish.

when the image Stops changing Your Done!
You can import a image sequence in most video editing software including blender and the background is removed
Step 4 - finish
close blender with the big red X on the top right when it finishes rendering


Assigning Array and Curve for a large number of curves

Thank you lemon, your script is very useful, it is just what I need from a year ago.
I edited the script (names for a more generic work and not linked to the lamp), Mainpath for curves and Mainclone name for object. I changed the type of displacement to Constant Offset.
import bpy
import bmesh

# Scripting: lemon
# https://blender.stackexchange.com/users/19156/lemon
# Aug 15 '19 at 12:37
# get an existing collection or create it if it does not exist
# if created, the collection is added to the scene main collection
def get_or_create_collection( scene, collection_name ):
    collection = bpy.data.collections.get( collection_name )
    if collection is None:
        collection = bpy.data.collections.new( collection_name )
        scene.collection.children.link( collection )
    return collection

# duplicate an object and link it to a collection
# copy_data allow to know if the objects will share their data or not (are dupli or not)
def duplicate( obj, collection, copy_data ):
    new_obj = obj.copy()
    if copy_data:
        new_obj.data = obj.data.copy()
    collection.objects.link( new_obj )
    return new_obj

# get the scene
scene = bpy.context.scene

# get the base main clone
base_Mainclone = bpy.data.objects["Mainclone"]

# names of the collections
mainpath_collection_name = "Mainpath"
clones_collection_name = "Created_clones"

# get the source collection
mainpath_collection = bpy.data.collections.get( mainpath_collection_name )

if mainpath_collection is None or base_Mainclone is None:
    print( "will not work" )
else:
# get the destination collection
clones_collection = get_or_create_collection( scene, clones_collection_name )

for mainpath in [r for r in mainpath_collection.objects if r.type == 'CURVE']:
    # Duplicate the base main clone (True => not linked)
    Mainclone = duplicate( base_Mainclone, clones_collection, True )
    # Set the lamp at the road location so that curve can work
    Mainclone.location = mainpath.location
    # Add the array modifier
    array_modifier = Mainclone.modifiers.new( "array", 'ARRAY' )
    array_modifier.fit_type = 'FIT_CURVE'
    array_modifier.use_relative_offset = False
    array_modifier.use_constant_offset = True
    array_modifier.constant_offset_displace[0] = 10
    array_modifier.curve = mainpath
    # Add the curve modifier
    curve_modifier = Mainclone.modifiers.new( "curve", 'CURVE' )
    curve_modifier.object = mainpath

print( 'done' )


Im a total begineer at Blender, but I've got some technical knoweldge as a developer. If you don't find any solution, I think you might be able to install blender on a remote server (with a graphical user interface). Then import your file and then find a way to expose blender operations as a server. However if the main problem is to support a better python IDE than the one embedded in the blender text editor, I have no clue for that :/
I think you might be able to import bpy in you python IDE to let it detect blender symbols (bpy.context, bpy.data ...) but you'll still have to copy/past your scripts inside text editor to run the full script


Link selection between VSE strip and object?

A strip (sequence) is selected in the VSE when its select property is True.  The selected strips are available via the context.selected_sequences list, and the active strip is context.scene.sequence_editor.active_strip

Test code using modal timer operator. Prepended a toggle button to turn autoselect on / off, to the Sequence Editor header.

import bpy
from bpy.props import BoolProperty
from bl_ui.space_sequencer import act_strip

class SeqModalTimerOperator(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):
        scene = context.scene
        active_strip = act_strip(context)

        if event.type in {'ESC'} or not scene.auto_select:
            self.cancel(context)
            return {'CANCELLED'}

        if event.type == 'TIMER' and active_strip:

            # deselect everything
            for o in scene.objects:
                o.select = False
            # select empties, make active active.
            for s in context.selected_sequences:
                empty = scene.objects.get("Fader_%d" % s.channel)
                if empty:
                    empty.select = True
                    if s == active_strip:
                        scene.objects.active = empty

        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 toggle_auto_select(self, context):
    scene = context.scene
    layout = self.layout
    #layout.label("Auto Select")
    layout.prop(scene, "auto_select", toggle=True)

def auto_select(self, context):
    if self.auto_select:
        bpy.ops.wm.modal_timer_operator()

def register():
    bpy.utils.register_class(SeqModalTimerOperator)
    bpy.types.Scene.auto_select = BoolProperty(
                               default=False,
                               name="Auto Select",
                               description="Turn on to Auto select Empties",
                               update=auto_select)
    bpy.types.SEQUENCER_HT_header.prepend(toggle_auto_select)

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

if __name__ == "__main__":
    register()


Undo operation keeps resetting my settings

Yep, known problem:
https://developer.blender.org/T71759

Sculpt/Vertex/Weight Paint Brush Size Gets Undone After Undoing a
Stroke
Short description of error
After changing the size, then doing a
strike and immediately undoing it, the brush size gets undone as well.
Steps to reproduce

Splash Screen > Sculpting or File > New > Sculpting.
Change the size of the brush ]
Sculpt: Only one stroke.
Undo


Mantaflow bake fluid from command line, "NameError" : not defined

Baking Mantaflow (fluid) from command line works now. However, thus far, only with Blender 2.83+.

https://developer.blender.org/rBa50c131a0d71d04915cc39c5a412f4f16c6f706b :

"The issue was the usage of the global __ main __ Python module.
When running scripts in the text editor, Blender would overwrite
the __ main __ module."

Thanks to Ichlubna! ..and the many kind devs.


How do I composite render layers in 2.69 using Cycles?

Try using an Alpha Over node (ShiftA>Add node > Color > Alpha Over):


Which is the path to particle drivers data? (Blender Python API)

An emitter object emits particles. It does not have any drivers associated with it that it passes onto particles. When it emits objects, the objects it emits as particles can have drivers.

You need to be looking in the original objects for the drivers, each object gets duplicated as a particle - the drivers the particles use are duplicated from the original object.

>>> bpy.data.objects['Sphere.048'].animation_data.drivers[0].driver.expression
'randf(0.25,0.9)'

As far as the existence of particle_systems[0].particles[0].driver_add() goes, I expect it only exists as an inherited function from the base class, same as keyframe_insert, items, keys... To add a driver to an individual particle would mean it only exists during the particles lifetime, meaning you would need to add the driver as each particle is created. The properties you can access from each particle object is only relevant to a particles existence, so I also expect that most of these values are 'driven' by the particle system and will not actually work with drivers.


How to make this face look more voluminous, round and friendly?

There is no magic modifier to make your model look like some picture from the internet. You'll have to model or sculpt it according to your reference image. That can be very easy or very hard to do, depending on your skill level.


Image-based plane light eliminates mesh light

Got it in the meantime. The solution was to turn off multiple importance sampling for the image based (mesh) light. The reason I didn't realize the render was noisy, not "not showing" is the use of CPU for preview (bc GPU incompatibility). Anyone having a slow or unsupported rig should consider waiting for some result.


Is there a way to use Sverchok's ScriptNode without defining in_sockets?

No, and this is by design.

"ScriptNode" is the oldest of the available script nodes, the most recent iteration of the scriptnode is ScriptNode Lite (SNLite). Let me suggest using that instead because it exposes quite a bit more back-end functionality.

Find SNLite's development thread / docs / examples: here

One way around this, is a dummy socket.

"""
in dummy v
out verts v
"""

verts.append([])
verts[0].extend([[0,0,0], [1,0,0], [2,0,0]])

If you really don't want to see the socket, then you might do

"""
in dummy v
out verts v
"""

self.inputs[0].hide_safe = True

verts.append([])
verts[0].extend([[0,0,0], [1,0,0], [2,0,0]])

In the above example, the self represents the class instance of that node.


you have Mute ticked on in Playback. To fix it, you have non-standard workspaces setup, so you need to do the following:
Switch to Compositing workspace (top of viewport)
Open Playback menu (towards bottom left of viewport)
Untick Mute in Audio section (towards top of menu)


How can I prevent invisible faces when exporting to FBX file?

This issue is due to the fact that there are N-gons in your model (an N-gon being an N sided polygon). Either FBX doesn't support these or Unity can't import them, but, either way, the solution is to get rid of them. There are many ways to do this, but the fastest is probably to select those faces and Triangulate them (Ctrl + T) and, possibly, convert those to Quads (four sided polygons) (Alt + J).

Another approach, which might get you cleaner results is to use the Bridge Edge Loops tool; this tool doesn't appear to have a shortcut, but you can invoke it either from Edges menu with Ctrl+E > Bridge Edge Loops or by pressing Space (search for operators) and typing it's name. For this tool, you should have two edge loops selected, so delete the N-gon face and select the edges that were there before (Alt + RMB (selection button)) and then execute Bridge Edge Loops.


How do you specify the name of a new vertex group?

You can use  obj.vertex_groups.new(name="mygroup") instead where you can specify the name while creating the group.

if you need to use bpy.ops.object.vertex_group_add() and want to specify the name after that you can also set it as follows :  obj.vertex_groups[-1].name="mygroup"


Artifacts in render preview after adding emission/volume scatter shader to world output volume

I was running intel hd 520 graphics with a very old driver (2016). After updating the driver the peoblem was solved.


The solution is to have a makefile target that installs pip using the specific blender python version.

PYTHON_DEPS = \
    pyyaml \
    pillow \
    scipy

# Change these as needed
BLENDER_BIN_DIR = ~/bin/src/blender/build_linux/bin
BLENDER_VERSION = 2.78

# With luck you shouldn't need to touch these
PYTHON_PACKAGE_DIR = $(BLENDER_BIN_DIR)/$(BLENDER_VERSION)/python/local/lib/python3.5/dist-packages/
PYTHON3 = $(BLENDER_BIN_DIR)/$(BLENDER_VERSION)/python/bin/python3.5m

python-deps:
    # Install pip
    wget -nc https://bootstrap.pypa.io/get-pip.py
    $(PYTHON3) get-pip.py

    # Install dependencies
    $(PYTHON3) $(PYTHON_PACKAGE_DIR)/pip install $(PYTHON_DEPS)


Is it possible to bake materials to textures?

Materials contain amongst others a diffuse part. In short, this is the part that gives the model its colors. You can certainly bake specific parts of the assigned material to a texture in both Blender internal and Cycles. Since both methods differ from each other a little it would be good to know which render engine you use.


Cycles Render passes: Glossy Direct vs. Indirect

As you might know, Cycles is a Path Tracer, which calculates light "rays" shooting out of the camera, bouncing around, and then finding a light source. This, however, is the opposite of reality, where a light shoots out photons, which bounce around and make their way to our eyes.

Glossy Direct

A Glossy Direct pass produces a black and white result (a fac, or factor) that shows exactly what part of a scene is made up of visible Glossy BSDF materials.

In the following scene, there is a plane with a Glossy BSDF shader that is reflecting a blue-hued Diffuse BSDF shaded cube. It renders like this:

The Glossy Direct pass shows this:

Note how it excludes the background, the part of the plane hidden by the cube, and even the reflection of the cube. What it shows is only the rays that hit the Glossy BSDF and go directly to a light source.

These rays:

Not these rays:

Or these rays:

Or even these rays:

Glossy Indirect

A Glossy Indirect pass produces an in color result; at least partially. It is black everywhere except for any reflections.

In the same scene as above, the Glossy Indirect pass renders like this:

Note how it shows only the reflection of the blue cube. This can be especially helpful, because it can first be turned into an alpha mask pretty easily (see the Matte > Color Key node), which allows for compositing on reflections. See how it is used in gandalf3's answer on Post-processing Lightsabers in Blender. It can also be used just by itself. You can edit out the floor of a scene and leave yourself with just an object and it's reflection, which can produce a very cool result:

Above result composited like this:

These are just a few of the possibilities.

For the technical side of things, a Glossy Indirect pass shows these rays, which bounce off the glossy, hit any obstructions, bounce back to the glossy, and then find a light source. They indirectly touch glossy and find light:

Hope this helped and happy Blending!


It eens to me that you should add a little more geometry, make sure the roughness value on your glass shader is the same as your examples and the main difference that I see is the lighting setup. The other person is using some sort of image texture as their light source. A very nice touch. Also, I suggest you turn up your samples so the image isnt so grainy. If you have any questions as to how you can do any of this jut ask


Applying a camouflage material to multiple objects without merging them

In the link above, the answer refers to using 'Object' texture coordinates.  If you use Object coordinates on multiple objects, you'll still have the same issue you currently have:

However, the power of Object coordinates is that you can use any object, and you can use the same object for everything that uses the same material:

In this example I modeled a cube that I called "Texture_Cube" and I use that in the Object field of the "Texture Coordinate" node.  You can see all of the objects now have the same texture coordinates:

Here's the full node graph:

You don't have to use a giant cube like I did; you can use anything, even an Empty. You can also do fun stuff like rotate the object and it'll rotate your textures.  Hope this helps!


Motion tracked Video doesn't show up in the render or in the compositing tab

What you are missing is the alpha channel on the render layers. Without an alpha channel the "alpha over" will fail. Enable Film>Transparent so that the areas with no geometry will be "transparent".


Fluid with blocks remesh modifier jittering

I was following this tutorial https://www.youtube.com/watch?v=bpYkNTwK9Pg&feature=youtu.be&t

The heart of the problem  that boolean modifier must be placed before remesh modifier.
Maybe this problem is stupid, but I hope that this answer is useful nonetheless.


If I understand this correctly This could be easier to achieve with the help of some modifiers.
If you model a single cog and use a mirror modifier to make it's symmetry it will simplify the process so that you only have to rotate two edges in one direction. Followe that by adding an array modifier to accomplish the whole gear it will take care of the rest.


How to load a photosphere for panoramic extraction

If you are in Blender Internal, here is the method used in the reference video.

Move your camera to (0, 0, 0).
Create a sphere Shift+A > Sphere
Assign a material to the sphere and a texture to the material. Set the texture to image and load your image. Enable Shadeless on the material and set the texture's Mapping Coordinates to UV.
Load the texture into the image editor. Go into edit mode of the sphere, select all vertices A and unwrap by pressing U > Sphere Projection.
Set the viewports display mode to Textured Alt+Z or Material. Go into camera view Numpad0. Press Shift+F to look around. (Camera fly mode.)


Access python data path with ... (Ellipsis)

It is a quirk of Blender's current UI, but actually you can deduce its location a bit, helped by Blender's API documentation.

Direct Access

The property you're looking for is SpaceView3D.show_grease_pencil, that one is clear. Now, what class contains a Space (SpaceView3D's ancestor)? Scroll down to References section in that class' docs. One of references there leads to Area.spaces. This is easy, because one of its docs' Reference leads to Screen.areas, and Screen is the type of what's visible before the ellipsis. So the attribute's full path is:

bpy.data.screens['Default'].areas[X].spaces[Y].show_grease_pencil

... where X depends on the screen's subdivision, and Y is 0 if the 3D View is visible in that area. You can find that out from Console:

Using Context

It's easier to read 3D View space's settings through bpy.context, e.g.:

Use bpy.context.space_data, if the 3D View area is active (i.e. accessed through an operator executed from the 3D View itself).
Use bpy.context.area.spaces[1], if accessed through a Console whose display type is directly switched from a 3D View.
Use bpy.context.screen.areas[X].spaces[0] if accessed through a Console in another area, index X must be searched beforehand.

The same show_grease_pencil attribute is accessible through these different paths.


2.79 How do I fix the UV image editor displaying colors improperly?

Whenever Blender gets wonky like this as in, only does it with this file, the cure is simple.

Copy all assets in the outliner.

Open a new empty Blender.

Paste.

This was also the cure for when some sculpt brushes quit working so I figured this might cure it as well and it did.


How to apply Effect Strip in Video Sequence Editor

The command I was looking for was Make Meta Strip (Ctrl+G).


Exporting to Collada: Physics don't get exported

Assuming you want the motion generated by the rigid-body simulation (not the mass and other parameters), you can bake the simulation to keyframes.

There are two ways to do this:

Method one:
In the Tool shelf (N in the 3D view) > Rigid body tools, press Bake to Keyframes:

Method two:
Press 3D view > Header > Object > Animation > Bake action:


how to use the slider of the shapekey value for moving the shapekey and the bone connected to it

I forgot to mention.  the Cube in the file is the parent of the sphere.  If you move the cube, the sphere follows.  If you change the constraint modifier of the sphere to .5 it will follow half as much.      This method can be applied to your bones so that one bone controls another bone which controls the face.


I have finished rendering my animation into PNG files, how do I edit?

I use Hitfilm Express ( free ) and Openshot video editor ( also free ); both can import the set of .png's as an image sequence.

it is best to put them in a separate directory with only the image sequence as you need to select the directory.


Which color space should I use for 16-bit maps?

If I want to create my own displacement maps in, say, Photoshop, which color space should I use? Is 16-bit sRGB okay?

The term "sRGB" is thrown around far too frequently without an understanding as to what it means.

The best way to think about things like displacement maps and such, is that in many instances they are data, akin to units of measurement. That is, they are not colours.

This means that when you are building data in another application, it should be saved as such. Most image file formats are of course designed to encode colours. The sRGB specification, being designed for images, was likewise designed for colour encoding, not data.

Having data means that in many to most instances, one requires the encoded values to reflect a linear proportion, just as we would expect a ruler to have uniformly distributed markings. If we had a ruler with erratic / nonlinear markings, even if we re-distributed the measurements we took with such a ruler to be evenly distributed, the data would reflect overly sparse or overly dense regions based on the original erratic / nonlinear measurements. As a result, most image formats, being designed for nonlinear colour encoding, exhibit this behavior and are a poor choice as a result.

EXRs on the other hand, were designed from the ground up to encode data, including colour data. By convention, data encoded into an EXR is typically linear ratios, making it a great fit for data.

Being a display referred application designed for manipulating... Well... Photographs, Photoshop tends to be a sub-optimal solution here. Even PS's EXR support has been awful for a long time. Thankfully, FNordware has a useful plugin to use. There are plenty of PS "gotchas" though, so be careful and learn more about colour space encodings and colour management to give you control.

  Does Blender assume a particular color space or does it detect it in the image file itself?

Unlike graphic design applications that have an ICC Colour Management System in place, Blender utilizes OpenColorIO, which is designed to make very few assumptions about encoded data. It leans heavily on encoded data format detection and defaults, as well as filename support, which will hopefully land in Blender proper soon.

It makes assumptions based on the encoding format of the data. If it is 8 bit or 16 bit integer (non-decimal), it will assign a default transform, which is currently only the sRGB transfer function. This may be inappropriate depending on context.

If the file is encoded as 16 bit or 32 bit float (decimal) such as the data in an EXR, the default transform will be set to "Linear", which is also a colour format. When loading data, change the transform to be "Non-Color Data".


Well, if you really don't want or can't use arrays, you could use a "spacer shape", of fixed width, to help you to snap adjacent objects (even if different in shapes), like this:

here I snap a third red shape keeping the same distance by snapping to the same, duplicated (or moved) blue spacer


Cycles - Material Grey In Render and in Materials tab?

It's a very simple mistake to make. What you need to do is have your image textures hooked up to the color input of a shader, not directly into the mix shader. While it can sometimes work (as you saw in your preview and render modes), it doesn't always do as you expect (as evidenced by the final version). Simply putting diffuse nodes there should fix your problem.


Curves: how to make circular shapes within curves

You are missing that parametric curves have nothing to do with spheres.

Screenshoted frmo the preview of An accurate NURBS curve interpolation algorithm with short spline interpolation capacity

After you are satisfied with your curve you can utilize the To Sphere command. However, since it operate on points only, you have to do it after adding more points.

Duplicate your curve.
Instead of subdiving, remove the bevel, so the curve is only a curve. Then press AltC > Convert to mesh to convert it to a mesh. The points on the curve are now sampled. Convert is back to a curve with AltC > Convert to curve. Re-add your bevel settings.
If the center of your curve is at the world origin, move the 3D cursor to the origin and set it as the pivot point NumpadPeriod.
Select all. A
Execute the to sphere command. ⎈ Ctrl⇧ Shift⎇ AltS


Here's a shot at what your tree might look like, as corrected by @Jachym.

Introduce the branches one at a time,starting with Diffuse color on its own.
Unlike the illustration, forget the AO branch to begin with. Plug the Diffuse map straight into the Base Color.
Then check the Normal. If you want to get a better view, you can temporarily unplug the Diffuse map to see  the effect on a white object.
When that's OK, plug the Diffuse back in, and go for the Shininess.
Now go for the Subsurface Scattering. Split the Diffuse, and plug it into Subsurface Color too.
Plug the 'M' map into the Subsurface Radius.
Depending on the size of your model, adjust the 'Subsurface' slider down. (I would recommend scaling the model in Edit mode, to life-size, in whatever units your scene is in.) Plugged in as shown, the RGB values in the red 'M' map represent the distances R,G and B are allowed to scatter through the object, in Blender Units, before attenuating to 0. Those distances are then multiplied by the value in the 'Subsurface' slider.

This is hard to check without the file.. but I hope it heads in the right direction.

If you really need the AO, (the lighting shouldn't really need faking..), use an RGB Mix node set to 'Multiply' or 'Overlay' to mix it with the Diffuse map on the way into the Base Color.

There's every chance @Jachym will have to correct me again :)


Modeling a smooth curve in hard surface object

From an 'L' shape, I would remove the top and bottom faces, use bevel ⎈ CtrlB to get the two round corners, use the  Wheel to add some segments, you only want a couple of segments on the curves or you'll have too much work filling in the top.

Then fill the top with an n-gon face F and use inset I to get a clean edge loop around the top.

Then extend the edges from the curves to the outside to get an all quad mesh. Some more loop cuts can be made through the larger sections to get a more consistent face sizing over the mesh.

Now a subsurf modifier can be added to get a more rounded finish. If you want the outer corners to stay sharp you can add a crease to them ⇧ ShiftE and add an edge split modifier.

Here is an example to look at


How to assign FloatProperty, EnumProperty etc values through script

The update method will be invoked every time you try to modify the value of this property, like a callback function. The manual do warn about infinite loop when your update method constantly do something to props.
As your code, each time you update a new value, you set the value instead of check the value then set. So each time you invoke update method, blender will trigger another update function since you "set" value that is supervised by Blender system.
Not sure how to avoid this behavior but you might check the condition first then change the value:
def SetPos(self, context):
    if need_clamp(self['left']):
        self['left'] = Clamp(self['left'],0,1)
    # so next time this method will do nothing

Or just use setter and getter function:
Property Definitions (bpy.props) — Blender Python API


Materials not applied after importing .obj (ShapeNet)

This problem with the materials in Blender with the ShapeNet objects seems to be a common one. This worked for me (I used ShapeNetSem):
You can convert your .obj models to .gltf format using the obj2gltf package. Be sure that the ShapeNet textures can be found during converting: I had to put all the .jpg texture images inside the same directory as the .obj and corresponding .mtl files (you can see which textures are needed for a model by opening its .mtl file in a text editor). Then import your .gltf models in Blender. They should now load properly.
On top of that, you can also try to turn off Backface Culling and Auto Smooth, in Blender. This wasn't necessary in my case, but I've read it helps for some people.


Try applying a ground texture to the ground then going back to your particle system and assigning your particle’s material in the particle system drop down menus again. In that order it should work.


Objects keep disappearing over long distances

In the properties panel (toggled by pressing "N") and under "View", increase the end clipping until it appears again.