Glossing over some things a bit..
Every geometrical entity in Blender is made up of two parts: they are Objects, which contain Data.
In the case of a polygonal object, the Data is a representation of the Object's mesh - the location of all its vertices, which vertices constitute which edges and faces,and so on. The vertex locations in the Data are not measured in World Space, but in the space of their Object. You can see the space of an Object by switching on 'Axis' in the Object > Properties > 'Viewport Display' panel.

The top face of the default 2x2x2 cube on the left is at Z = 1, in its object's space. Because the object has no transform, the top face is also at Z = 1 in World Space. The cube next door has been scaled in Z, and the one on the right rotated, too. As far as the Data are concerned, the top faces of those cubes are still at Z = 1, in their object's spaces. They are then given their object's transform, which puts them at different locations and rotations in the world.
In Edit Mode, you are transforming elements of the mesh in their object's space. In Object Mode, you are transforming the object (i.e its space, along with the vertices in it.)
When you Apply the transforms of an object, the World transform of the object is given to all of its vertices in their object's space, and, to compensate, the inverse of the transform is given to the object itself. That results in the mesh remaining where it was in the world, and the object's transform being returned to 0 translation, 0 rotation, 1 scale...

Counting from 0, an object-targeted Array modifier gives each iteration of the mesh [iteration-count] times whatever transform would would map the zeroth (original) arrayed object on to the target object. (The inverse of the arrayed object's transform in the target object's space.) The first copy's axes, if it had them,  would always match the target's axes. Try it with some simple transforms, and the axes showing, to get the idea.


Is it possible (plugin?) to use a camera input (solidview or materialview) in the compositor as a preview?

If you're using 2.8x, you can change the render engine to 'Workbench.'

It's the equivalent of a viewport render in previous Blender versions, except it ports into Blender's rendering system, and therefore the compositor.  It should render a frame about as quickly as the viewport, and gives you to extra options (depth of field, outline, basic shadows, etc.)


I don't think particles are the way to go for this effect

If you are just looking for a 2D style animation you can easily do this with bezier curves and shapekyes or the offset property.

Just add a circle to your scene, duplicate it a few times (as many as desired) and scale them up a constant scale factor so they dist the same from each other.

Join them all into a single curve with Ctrl+J. Don't forget to apply the scale and reset all vertex radius into $1$ so they have the same weight.

Make all vertex handles type Free, then erase all segments leaving only a quarter circle. Rotate it $45º$ about the center and exit Edit Mode

Make a duplicate of your waves object for reference and make sure you add one additional wave outside the last one, again with the correct distance for snapping.

Now create two new shapekeys , one base and one for editing. In the editing one, scale all segments one by one so they reach exactly the one immediately after it with a bigger radius.
Make sure you scale with pivot on the 3D Cursor (period key .) and that the cursor is correctly placed at the center of the wave emission.

Animate the effect by keyframing the Factor property of your shapekeys with the i key, then make sure the animation curve handle is set to vector in the Graph Editor so the animation is smooth and without discontinuities.

Now add bevels and materials as desired

If you want a similar effect but with a 3D appearance and volumetric shape, then replace the bezier curves by 3D mesh spheres.

Bonus point if add a material with a gradient from color to transparent so the curves fade in and out at the ends.

EDIT

I just found out a much easier way to achieve this, animate the Offset curve property instead, saves the trouble with all the shapekeys and scaling with references. Just create the concentric circles and join them together as before, but then just keyframe the Modification > Offset property instead.

Here is a bonus image with a possible node setup for the material. Add the gradient to transparency if you want it to fade away


Blender render doesn't display skybox while opengl render does

The problem resides in your material; You just need to check 'Face Textures', under the options tab of your cube material.


Diffuse baking - extremly weird result (cycles)

I solved it, I had to add the texture bakeResult0001 created at step #4 to each material as none connected image texture node, I also had to only check "color" in the bake settings, otherwise weird black spots were baked onto the texture.

I created a video: https://youtu.be/nOvtGUgWCA0


The part about the shading looking slightly different sounds like the normals are flipped.  To flip a face's normal, select the face(s) in edit mode and hit CTRL F, then select flip normals.

Here is the documentation on normals, at the bottom of the page.


The object that you want to rotate should first be parented to an 'empty'.

In Object Mode, hit Shift-A, then select 'Empty', then 'Circle'.
Clear all rotations on your gear object (set all to zero)
Move your object to the center of the Circle Empty.
Select your rotating gear object FIRST, then hold shift and select the Empty, then hit 'Ctrl+P', then 'Object'

You can now place your Empty (along with the gear) anywhere you want, at any angle. When you tell the gear object to rotate it will rotate around the X,Y,Z orientation local to the empty.


I would not do this in the compositor at all. You are giving yourself a lot of extra work.

The easiest solution is to place the camera at the correct place, giving you exactly the layout you want.

Like this:

The border around the render region turns red.

Open the options panel to the right (N). Use the normal view control keyboard commands to rotate and pan the camera until you are satisfied.


Using rigify will cause problems, especially if you have not cleared the scale. I would say as you have a character with many objects, go with making a rig and assigning each bone to each object. I have some very horrible experiences with rigify and going with bone by bone is much easier. As for if it is possible to do a walk cycle, yes it is highly possible.


need help with material nodes- accidentally tampered with them

Here is a much simpler node set up for you.

Essentially all you are seeing is the noise texture. You dont need all that other stuff.

Also the sockets have to plug into the same color (you can break this rule sometimes, but not in your case.)

You can use something other than a noise texture to have a different type of bump.

Or even better just use this set up since you want shine and bump.


How to return to the default view that you see when blender starts?

If you want to reset the default viewport view and not the camera view,run this in text editor :

import bpy

vm = ((0.41, -0.4017, 0.8188, 0.0),(0.912, 0.1936, -0.3617, 0.0),(-0.0133, 0.8959, 0.4458, 0.0),(0.0, 0.0, -14.9892, 1.0))

for area in bpy.context.screen.areas:
    if area.type == 'VIEW_3D':
        v3d = area.spaces[0].region_3d
        if v3d :
            v3d.view_matrix = vm
            v3d.view_perspective = 'PERSP'

if you are wondering where those values are from , i simply started the default scene and used
print(v3d.view_matrix) to get the default coordinates.


There is no current frame property for objects, there's only a frame_current for every Scene. What "current frame" means to an object is not defined.

What you might want to do is to get the current frame of the active scene, there's only a single active scene per Blender window and it's what the user sees (are you using a frame change handler that changes Text.body based on frame_current?)


How to add equally wide border to a plane?

For this specific case, this is my solution using Hooks & Vertex parenting.
I am not sure whether there is an easier solution but this should work.
I made 4 empties, each is parented to corresponding corner-vertex.
Then for the border object, I made vertex groups also for each corner and used Hook modifiers to link them to empties.

Here is a version with copy rotation constraints to fix the rotation issues:


normal map in internal and vector transform node

Use nodes Vector Transform for transformation Camera->World and Vector Curves for correction Normal ...

example blend file:


Starting from version 2.8

CUDA renders no longer need to use large tiles. In many cases rendering with a tile size of for example 32x32 will actually be faster now. When using denoising it may still be somewhat faster to user large tiles, but this comes with a high memory usage cost. (6da6f8d6da)

reference: https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Cycles
For 2.83 new changes:

For GPU rendering, adaptive sampling sometimes needs a bigger tile size for good performance. For combined CPU + GPU rendering, tiles rendered on the CPU and GPU may not match exactly. We will investigate automatic solutions to these problems for future releases.

reference https://wiki.blender.org/wiki/Reference/Release_Notes/2.83/Cycles


Best way to transfer weight groups between two meshes with same topology?

Try this script if the vertex order is the same:

import bpy

# rename this to your Female & Male names
target = bpy.data.objects["Male"]
pattern = bpy.data.objects["Female"]

# transfer vertex groups
for v_group in pattern.vertex_groups:
    target.vertex_groups.new(name=v_group.name)

# transfer vertex weights
for id, vert in enumerate(pattern.data.vertices):
    for v_group in vert.groups:
        target.vertex_groups[v_group.group].add([id], v_group.weight, 'REPLACE')


Use an [edge split modifier] with smooth shading to round some areas and keep sharp edges.


Python: How to completely remove an object

You can use bpy.ops.object.delete() operator to remove selected objects:

import bpy

# Deselect all
bpy.ops.object.select_all(action='DESELECT')

# Select the object
bpy.data.objects['Camera'].select = True    # Blender 2.7x

# https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Scene_and_Object_API
bpy.data.objects['Camera'].select_set(True) # Blender 2.8x

bpy.ops.object.delete()

In order to remove multiple objects, you can iterate through all objects, set the select state in Blender 2.7x or call select_set(state) in Blender 2.8x based on a certain condition and finally call the operator one time.

Blender 2.7x

import bpy

# Delect objects by type
for o in bpy.context.scene.objects:
    if o.type == 'MESH':
        o.select = True
    else:
        o.select = False

# Call the operator only once
bpy.ops.object.delete()

# Save and re-open the file to clean up the data blocks
bpy.ops.wm.save_as_mainfile(filepath=bpy.data.filepath)
bpy.ops.wm.open_mainfile(filepath=bpy.data.filepath)

Blender 2.8x

import bpy

# Select objects by type
for o in bpy.context.scene.objects:
    if o.type == 'MESH':
        o.select_set(True)
    else:
        o.select_set(False)

# Call the operator only once
bpy.ops.object.delete()

# Save and re-open the file to clean up the data blocks
bpy.ops.wm.save_as_mainfile(filepath=bpy.data.filepath)
bpy.ops.wm.open_mainfile(filepath=bpy.data.filepath)

Context override (2.7x & 2.8x)

Instead of (de)selecting the object(s) beforehand, you can also pass a custom context (a list of objects in this case) to avoid changing the selection within the viewport:

import bpy

objs = [bpy.context.scene.objects['Camera'], bpy.context.scene.objects['Cube']]
bpy.ops.object.delete({"selected_objects": objs})

Example on how to remove objects by certain types:

import bpy

objs = [ob for ob in bpy.context.scene.objects if ob.type in ('CAMERA', 'MESH')]
bpy.ops.object.delete({"selected_objects": objs})

Further reading: https://docs.blender.org/api/current/bpy.ops.html#overriding-context


How to remove duplicate verts after spin tool?

Your topology is a bit messy, to quickly fix it you can:

Only keep one portion:

Fix the topology, give it a Mirror modifier:

Create an empty at the current origin of the object:

Give your object an Array modifier, deactivate Relative Offset, activate Object Offset with the empty as Object, rotate the empty 37,72° (as you want 11 iterations), enable the Merge option then the First and Last option:

Keep a copy of your object and empty. Apply the Mirror and the Array modifiers, then Merge By Distance to remove any overlapping vertices:

Edit:
Your topology is still bad, your faces are overlapping, etc:

Once you'll be good, you can extrude, use the LoopTools to make sure that you have nice circles, bevel the angle so that it will sharp when you'll have the Subdivision Surface modifier, etc...:

Also you may need to keep only 1/11 of your object again and use the same Array modifier around an object, it allows you to work precisely on a portion of the object without having to repeat the operations all around.


What are the files in the /tmp folder and can I delete them?

To expand on cegatons answer - /tmp/ is the default location for some data paths unless you change them.

The main one is the render output, unless you change the output filepath before rendering, your renders will be saved to tmp. Changing the output path before saving your startup file will prevent any renders going into tmp.

Simulation cache files can also be saved in tmp. While most prevent saving of external cache data until the blend file is saved, the fluid simulation will save it's cache files to tmp if you haven't saved the blend file first. If you then save the file, the path will still point to data in tmp instead of moving the data to where you saved your blend.

The ocean modifier is another that will store it's data in tmp if you haven't saved the file before baking the simulation.

If you save your blend file to disk before starting any simulations then the data will first get saved within the same folder as your blend file.


How to stop fluid going straight through a .stl imported obstacle?

Concerning your pipe object, you just need to apply location, rotation and scale and it will work. Press Ctrl+A, choose location, repeat shortcuts to choose rotation and scale.


How can I hang an object on a rope or cloth simulation

As no one could give a complete answer yet, I'll show you an easy hack/workaround that maybe is sufficient to solve your problem:

In my example I have filpped the plane, put it over the cube, made the cube a collision object, made the plane an unpinned cloth, let the cloth fall on the cube and wrap around it, found a keyframe in which the deformation was good, apply it as shape key, rotated back the plane so that the deformation was toward the bottom.

Then I animated the cube with 3 keyframes only: the start, the contact and the bouncing end; turned the second keyframe's interpolation form Beziers to bouncing, adjusted the values.

Then I went to the plane's shape key, set its max to 2 and min to -1, so tho have room for deformations in both directions, set manually a keyframe over every max and minimum of the bouncin curve, adjusted the curve in graph editor (there is more room to further adjust, but I think  it's enough for the tut purposes).

Ten minutes bouncin!


Animate collection instance (material) independently?

Sure.  Check it out:

There are a number of different ways to identify exactly which emitters you want behaving this way or that, but I think that using UV is the easiest, particularly with 2.8 improvements.  Here, I'm using the UV.x position of each object, which has been shrunk to 0 with individual origins pivot, to decide what period to use for the sine wave that I'm using to drive emissions.  Everything is driven from a single value node, where I just entered #frame to get my current frame count.

You can use something other than UV to identify which objects you want behaving which way, like object ID or position or vertex color.  I just find UV easy to use and flexible.  If you're using UV already, just create a new UV map; but if you're using linked objects, you'll need to use a different identifier.


There's a separate procedure that needs to be done after rigging the model known as 'Weight Painting'.

More info here:
https://youtu.be/vMGTQFOgV_0
https://youtu.be/mhQY2_gVoVg


Read pixel color with foreach_get() on image data

"The python console check"
In case Markus is busy can get a lot of info using autocomplete Tab in the python console, with an image as img
>>> img.pixels.foreach_get(
foreach_get(seq)
.. method:: foreach_get(seq)
This is a function to give fast access to array data.

which is plainly different from, for instance a mesh me vertices, which asks for an attribute attr , eg for vert coordinates "co"
>>> me.vertices.foreach_get(
foreach_get(attr, seq)
.. method:: foreach_get(attr, seq)
This is a function to give fast access to attributes within a collection.

A very slight improvement in speed can be attained by using np.empty to initialize the array, since any garbage  will be filled by the foreach get.
import time
import numpy as np

REPS = 100

def time_it(func):
    def wrapper(*arg, **kw):
        t1 = time.time()
        for i in range(REPS):
            func(*arg, **kw)
        t2 = time.time()
        print(func.__name__, (t2 - t1))
    return wrapper

@time_it
def read_pixels(img):
    resolution = img.size[0] * img.size[1]
    colors = np.zeros(resolution*4, dtype=np.float32)
    img.pixels.foreach_get(colors)
    colors = np.reshape(colors, (resolution, 4))
    return colors

@time_it
def read_pixels2(img):
    x, y = img.size
    pixels = np.empty(x * y << 2, dtype=np.float32)
    img.pixels.foreach_get(pixels)
    return pixels.reshape((x, y, 4))

@time_it
def nptest1(img):
    x, y = img.size
    return np.array(img.pixels, dtype=np.float32).reshape((x, y, 4))

@time_it
def nptest2(img):
    x, y = img.size
    return np.array(img.pixels[:], dtype=np.float32).reshape((x, y, 4))

import bpy
for img in bpy.data.images:
    nptest1(img)
    nptest2(img)
    read_pixels(img)
    read_pixels2(img)
    #break

Results
nptest1 8.4240
nptest2 7.0605
read_pixels 0.2264
read_pixels2 0.2222

Note on posting noticed I had reshaped to image x, y, 4, however reshape is an almost time "free" method, will get back if otherwise.  (Got a squeak more using bitwise shift to quadruple)


How does scaling work in Blender, *exactly*?

I wondered the same, and when I saw that there was no answer here, I looked it up in the source. Dealing with signs is complicated, but without considering signs, the method is as follows. The sources work with 3x3 matrices (position doesn't influence scale), so I'll do the same here.

Let $S$ be the original scaling matrix, and $R$ be the original rotation matrix. Now, to scale by a new matrix $N$, calculate $A = S\times R\times N$ and obtain the new sizes on each axis by calculating the Euclidean norm of each row of $A$.

In your case:

  Suppose that M is the transformation matrix of a Blender object (and therefore satisfied the conditions above). I now apply a scaling of factor 3 along the global x-axis. How is the resulting transformation matrix calculated?

Take the $3\times 3$ matrix $M' = S\times R$ by discarding the last row and column of $M$, then obtain $A = M'\times\left[\begin{matrix}3 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1\end{matrix}\right]$. Now, the new X scale is $\sqrt{a_{11}^2 + a_{12}^2 + a_{13}^2}$, the new Y scale is $\sqrt{a_{21}^2 + a_{22}^2 + a_{23}^2}$, and the new Z scale is $\sqrt{a_{31}^2 + a_{32}^2 + a_{33}^2}$. Use these as the elements of the diagonal of the new scaling matrix, $S'$. The new $3\times3$ matrix is obtained as $S'\times R$ and the $4\times4$ matrix by adding back the last row and column of the original $4\times4$ matrix.

For your example:

  Start with the default cube. Rotate it by 30 degrees along the y-axis (ry30Enter). Now rescale by 3 in the x-direction (sx3Enter).

we have $S = I$ (no scaling on the cube to start with), $R = \left[\begin{matrix}\cos 30°&0&\sin 30°\\0&1&0\\-\sin 30°&0&\cos 30°\end{matrix}\right] = \left[\begin{matrix}\sqrt3/2&0&1/2\\0&1&0\\-1/2&0&\sqrt3/2\end{matrix}\right]$ and $N = \left[\begin{matrix}3 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1\end{matrix}\right]$. Now $A = S\times R\times N = \left[\begin{matrix}3\sqrt3/2&0&1/2\\0&1&0\\-3/2&0&\sqrt3/2\end{matrix}\right]$ so the new scale on X is $\sqrt{(3\sqrt3/2)^2+(1/2)^2} = \sqrt7\approx 2.646$, on Y is 1, and on Z is $\sqrt{(-3/2)^2+(\sqrt3/2)^2} = \sqrt3\approx 1.732$.

The code can be found in source/blender/editors/transform/transform.c in function ElementResize(). Function TransMat3ToSize() extracts the norm of each row and deals with signs.


Unwanted flickering in rendered animation

A slight modification of Laurent Roro's solution worked for me. I changed camera Clip End first, but the flickering remained the same. I then changed camera Clip Start, and the flickering completely disappeared. My scene had objects from a little over 100 feet from the camera to 7 miles back, so the default (?) setting of just over zero for Clip Start apparently caused a lot of flickering on the distant objects.
Update: In reply to Ben's inquiry, while I don't have the scene in front of me right now for exact numeric values, I lowered the Clip End to a little beyond the farthest object. Like I said, that didn't really change anything for me. I just now opened Blender on my work machine, and I see that the camera defaults to a Clip Start of .328 feet. I'm guessing the reason mine started out far lower might be a result of importing the camera from After Effects. Anyhow, I changed Clip Start to 100 feet, since the nearest object was at 140 feet or so (can't recall). My reasoning was that it might be similar to the old shadow maps in Blender internal, but that's not a very scientific line of reasoning, or an explanation. Anyhow, the difference was dramatic. I had a particular, low roughness tower in the background that had been flickering like crazy, such that the entire tower basically changed shades of gray from frame to frame.


Not sure I understand everything going on, but if it's a problem with the whole armature, you could try parenting bone to your object. Then make that bone the parent bone.
Or you could try the child of constraint.


Cycles Texture looks odd on the normal side

looks like I forgot to mark this one as solved, to solution was choosing non color data for normal image in material / node editor


(Blender Bug?) Chaning Property In Redo Panel Deselects Geometry

Nevermind, just needed to add: bl_options = {'REGISTER', 'UNDO'} under my operator variables.


When you create your primitive object you always have the possibility to change some parameters on the bottom of the Tools panel, if you increase Segments and Rings it will create more polygons. If you ever move your object or go in Edit mode, though, you won't have access to these parameters anymore.

But actually when you sculpt there's a tool called Dyntopo that allows you to increase the topology only on the area you sculpt with your brush, that is useful because you don't need to increase your object up to a crazy amount of polygons if you don't need details everywhere. The lower the dyntopo Detail Size factor is the more it will add polygons.

Anyway, even if you end up with a very high poly at the end you can come back to a lower poly with tricks like baking the normals for a low poly version of your object (in this case, before any Dyntopo, save the low-poly version).

You could also dig into the Multiresolution modifier, nice way to sculpt.


Is there a way to add a color legend in the mesh analysis?

What about Ambient Oclussion node with Inside feature enabled?
I'm not sure how precise result is, but seems to work much better than Mesh Analysis.

(Bar in screen is just a 2D gradient.)
Compare to Mesh Analysis, this shader:

can be rendered (with Cycles engine)
color is assigned to vertex (not a face)

Tips:

To share same ColorRamp node in both material close this node into Node Group in one material and add this Node Group into second material.
Color Management switch from Filmic to Standard

Note: Eevee with AO enabled produce colours, but there is not "Inside" feature we use for thickness.

Accuracy
quite interesting Q since a thickness depends  on direction of meassure. Like plate of glass that we use to say and meassure a thickness in depth direction, that is thin. But you can also meassure thickness in width direction that would ve very thick in this case.
That is what Mesh Analysis measure. If you check @RobinBetts blend with OSL shaders, inside is one material called NormalDepth and that does exactly the same thing as Mesh Analysis - it shoots a single ray in face normal direction up to another face. This distance is represented by corresponding color assigned to a face. So if you open node group and check Map Range node - the first two values defines start / end of Color Ramp.
Example - From Min = 0 means red starts on distance zero and From Max = 1 means blue ends on distance 1 m. Playing with these two values you can exactly specify what distance ColorRamp represents. So this material seems to be the best for you.
But same as Mesh Analysis it generates "weird"  colored faces that Are mathematically correct. Like when you check bottom part of Monkey's jaw, there is dark blue even that part of mesh is not such thick, but ray shooted from face goes all the way up to eyebrows, that make distance correspond to dark blue for that face.
There are other methods how to calculate thickness, where is not used a single ray direction. Like AO shooted many in hemisphere directions. Final colors represents average od these distances.
Comparison - Normal Depth (OSL)/ Ambient Occlusion / Lambert Depth (OSL)

Bar object is 1m high and 1m depth shaped as wedge object. Bar on the left uses Normal Depth shader and works just because distance is measured ONLY from one direction. Cube is 0.5 m so pure green in correct color for distance in a middle of bar. But as you can see other two shadery let you know that corners of Cube are thinner in 3d observation than Middle Mass of cube.

NormalDepth shader seems to be accurate ... with values of Ambient Occlusion and Lambert I had to play, to get similar colors. And I don't have a clue how to control.


How do I apply all of my downloaded .tga textures to my model?

I am familiar with this scenario; it is common to have several texture maps assigned to a single model, especially in video games. You will need to know what geometry belongs to which texture, select that geometry, and then import and/or select the texture file in the UV Image Editor.

For example, the eye ball texture probably only belongs on the geometry that makes the eyes. So in edit mode, select only the eye geometry, and then in the UV editor you can select the appropriate texture. You can use things like the 'L' shortcut (select linked) to select connected geometry easily.


How to setup blender to generate 2d background(s)

First of all, make sure your render resolution slider is set to 100%,
Also, (forgive me if I'm mentioning the obvious here), but If you're rendering in Cycles, you need to set your sample-count higher, as that may be what's causing the "pixelated" look. A good starting point should be something like 500 samples. See below:


No, the mesh stays the same it just gets bigger. The UV map scales with the mesh as well so textures will appear the same as well.


Black bounding box surrounding camera view has disappeared

A 'Bounding box' in Blender is the 3d space defined by an imaginary box with sides parallel to the axis of the object's local space:

They can be used for simplifying complex scenes or simplifying various simulations or also may help visualizing the space an object occupies and so on.

Clearly you are using the term incorrectly.

What you are talking about is the camera's 'passepartout' or overlay around the camera's view. It can be switched on and off in the camera properties in the Properties Editor under Display section:

You may not be able to see the camera or the overlay if you are looking through it and are zoomed in too much, and also have locked the camera to view in the side panel of a 3d View (the n panel):

You would need to unlock it and zoom out in that case.


How to rename instanced objects in animation nodes?

This question is now moot but I'm not sure how to close it.
I believe that the problem I was experiencing here was due to using the AN+EN build for 2.83 LTS with Blender 2.90.1 instead.
I resolved my Cycles material issue in 2.90.1 with a simple script:
materialIn.node_tree.nodes["Principled BSDF"].inputs[17].default_value = newColor
materialOut = materialIn

and now I'm just using the latest AN and EN in 2.90.1, without a lot of crashes.


World Space in transformation constraint not working as expected

Use the Y rotation instead, change X rotation back to 0, change Y rotation to 90, then change the Y >> Y box to X >> Y. Now suzanne will rotate on the world X axis ( her Y axis).


How to have multiple animations in a blender file, with a multiobject mesh without a rig

Using a rig is the best way, expecially for exporting to Unity. It lets you also join all the meshes into one and still be able to control each part individually with a serie of separate actions.
This kinds of rigs are very simple, just create in edit mode a bone for every piece, orient them in the same way as Unity's world coordinates for easier editing.
Establish any parent-child relation you need, and create a root bone which will be the parent of every other branch of bones.
Then select the mesh, shift select the armature, press Ctrl P and choose "with empty groups".
Then select the mesh, enter edit mode select all vertices of a piece (shortcut L), select the relevant vertex group/bone and click assign weight 1.0.
Repeat for every piece.
Don't use "with automatic weights", as the pieces are not supposed to deform.
Don't forget to Apply (Ctrl A) all transformations of mesh and armature before rigging.


Making the buttonpress F6 into a scripted button

If you mean the "redo last" operation, which I believe is the default key binding for this function, then you can use this: (note that    you'll have to include bl_info and register and unregister functions    as in the code snippet below )

import bpy

class redo_last_operator(bpy.types.Operator):
    bl_idname = "screen.redo_last_operator"
    bl_label = "redo last"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self,context):
        bpy.ops.screen.redo_last()
        return {'FINISHED'}

Please note that importing this as an add-on will only add the operator to Blender, not add a Button to any panel. You can do that yourself, however, by creating a panel for it or adding it to a Panel yourself. The following code will create a panel as well:

import bpy

bl_info = {
    "version": (1, 0),
    "blender": (2, 75, 0),
    "name": "Redo Last Operator",
    "description": """Creates an operator for the redo last menu""" ,
    "category": "File",
    "location": """""",
}

class redo_last_operator(bpy.types.Operator):
    # this class is meant only for destroying data blocks of a certain type, very powerful but very dangerous
    bl_idname = "screen.redo_last_operator"
    bl_label = "redo last"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self,context):
        bpy.ops.screen.redo_last()
        return {'FINISHED'}

class redo_last_operator_panel(bpy.types.Panel):
    bl_label="redo last"
    bl_idname="redo_last_operator"
    bl_space_type = "VIEW_3D"
    bl_region_type = "TOOLS"
    bl_category='Addons'

    def draw(self,context):
        self.layout.operator(redo_last_operator.bl_idname)

def register():
    bpy.utils.register_class(redo_last_operator)
    bpy.utils.register_class(redo_last_operator_panel)

def unregister():
    bpy.utils.unregister_class(redo_last_operator)
    bpy.utils.unregister_class(redo_last_operator_panel)

if __name__ == "__main__":
    register()

If, on the other hand, you meant another operation, you can use the same code and still bind it to the button by replacing the code under execute().


How to randomly (with a checkered pattern) select a number of faces in a mesh?

Go to the icosphere's Edit mode with Face selection, execute Select > Random, set Percent to 50%:

It won't select exactly 50% of the faces, but close enough that only a few additional manual (de)selection is needed. Then execute Delete X > Only Faces.

You can see exactly how many faces were selected by looking at the Info view header

Non-Adjacent Selection

I use this occasion to learn BMesh, and come up with this script:

import bpy
import bmesh

obj = bpy.context.object
prev_mode = obj.mode
bpy.ops.object.mode_set(mode='OBJECT')
bm = bmesh.new()
bm.from_mesh(obj.data)

bm.faces[0].select = True
selected_edges = list(bm.faces[0].edges)
for face in bm.faces:
    sl = [(edge in selected_edges) for edge in face.edges]
    if any(sl):
        continue
    selected_edges.extend(face.edges)

    face.select = True
print('*' * 10)

bm.to_mesh(obj.data)
bpy.ops.object.mode_set(mode=prev_mode)

Unlike Checker Deselect mentioned by @CoDEmanX, it only selects less than half of the faces in an icosphere. I think those strips can't be selected without breaking the non-adjacency requirement:


Detect drag and dropped files from python?

No, it's not possible. In Blender's C code, I found references to "dropboxes" and code to deal with them in different area types, but the process is completely inaccessible through Python (no variables to check, nor callbacks to register).

There is bpy.ops.object.drop_named_image, that looks like a modal operator. It supposedly adds a dropped image as an empty, but does nothing when executed and crashes Blender when invoked, so I think it's an internal operator just like bpy.ops.mesh.drop_named_image. So there's no directly-callable Python operator for drag-and-drop either.

Besides, Blender doesn't support URI-formatted filepath.


based on this answer https://blender.stackexchange.com/a/7197

import bpy

context = bpy.context
bpy.ops.object.mode_set(mode='OBJECT')

for ob in bpy.context.selected_objects:
    n = len(ob.modifiers)
    if (n) and (ob.type not in ('LAMP','CAMERA','ARMATURE','EMPTY')):
        print ("Applying " + str(n) +  " modifiers on object " + ob.name)
        oldmesh = ob.data
        ob.data  = ob.to_mesh(context.scene,True, 'PREVIEW')
        ob.modifiers.clear()
        bpy.data.meshes.remove(oldmesh)


physics type to No collision using python

You can't change the physics type.

You can replace the object with another one, that is of the desired physics type. Do not forget to copy all necessary attributes from the previous object (such as linear and angular velocity).


There's a built-in primitive for 'growing spirals' in the extra curves addon shipped by default with Blender

Just activate the addon Add curve extra objects and add it through the menu adjusting settings as desired.
You can then add another flat curve as bevel object for a ribbon effect


Is a Graphics tablet essential in grease pencil?

Oh no, definitely not. Well, technically anyway. But it means drawing with the mouse.


Make light visible once it passed through a transparent object

(This answer revised thanks to @lemon pointing out what should have been obvious..)
If you're prepared to use OSL, (and therefore the CPU for rendering,) this  script might be a tool to add to your box. By tracing back down the incoming ray to a light, it returns information about the object being lit. It's not all used in this example, but might be useful if you go for a different effect.
#include "stdosl.h"

shader LitObjectIDX(
        output float    ObjectIdx = 0.0,
        output float    MaterialIdx = 0.0,
        output vector   LitP = 0.0,
        output vector   LitN = 0.0
)
{

    if (trace(P,I)){
        getmessage("trace", "object:index", ObjectIdx);
        getmessage("trace", "material:index", MaterialIdx);
        getmessage("trace", "P", LitP);
        getmessage("trace", "N", LitN);
    }
}

ObjectIdx and MaterialIdx are the Pass Index settings for the object and material being lit. LitP and LitN are the location and the normal of the lit point, in World space.
Make a 'Portal' plane, of ordinary fully transparent material, occupying the doorway. For this tree, give it a Pass Index of 20 in its Object > Relations panel. You could use other indices, for other portals.
This node set-up for the yellow through-light restricts the lighting to the portal itself, and areas seen through the portal, contrasting those seen from behind and those seen from in front. Since writing, you've told me that the camera doesn't need to move, so the second restriction, (most of the bottom branch) is not required. Just use the Transparent Depth on its own. My effect looks a bit odd, anyway.

The attached .blend is a bit more complex than needed just to illustrate this method.. you would probably just want to use the script, one way or another, to suit your particular purposes.


Sverchok beginner: Viewer draw Mk3: How to connect faces and edges to vertices?

please follow the tutorials here instead:
start here

00/soft_intro_01

01/lesson_01

01/notes (notes for lesson 02)

01/lesson_02

01/lesson_03

i'll try to update the online manual (compiled "read.thedocs") soon.

to address your progress in the tutorial, when you use that number node to scale the vertices, they are indeed scaling. If you look carefully, you see even in the image that the white-dots (vertices) are scaling outwards. In the top example.
In the bottom example, the input into the node is not correct. The node in the tutorial you are following (the old viewer node) handles the same input differently, you'll notice the old node had a socket that accepted both Edges and Faces/Polygons at the same time.  The New ViewerDrawMK3 node however has separate sockets for edges and faces and also reads the socket data differently. The node has gone red to indicate a problem with the input, it will do nothing until the input is corrected.
You will ( i am sure ) have better luck following the tutorial updated for b.28. Which i linked to above.


You can actually darken the shadow using a light path node.With or without HDRI lights..
You can adjust the darkness by increasing or decreasing the brightness value.... I don't know is there any better way to do this,but this will do the job!


Is it possible to create a mesh between two different objects that has single edge via Animation Nodes?

Assuming your vertices are in a typical order, you can use the polygon and edge indices from a grid mesh to construct you mesh as follows:

Blend file:


Creating a wave-like animation with plane/ image

Using a Lattice you can control the deformation.

Create a lattice with a few subdivisions, In Edit mode select the middle points of the lattice and scale them on the Y axis, then bring those segments up on the Z axis.

On your plane object add a Lattice Modifier and select the deformed lattice to control it.


Recreating the Animation Nodes FCurve Animation Offset Template

Lets say we have a cube with some f-curves that controls its location.

And we have an array of spheres that we want to transform based on the f-curves of the cube with an offset it time.

What we are going to do is create a loop that evaluates the x, y and z f-curves at multiple offset values, combine the result in a vector and append it. The offsets shall be of uniform range generated using the Float Range node.

By adding the evaluated locations to the locations of the spheres, we get the result you are looking for.


For PBR textures - Metallic/Specular, Roughness/Glossiness, Height/Displacement, and Normal Maps, should be set to Non-Color. Basecolor, Emission, and AO can remain in whatever color space they use natively.


The cloth isn't on the character when enabling cloth stimulation

Remove the cloth simulation. Select your cloth mesh. Position it where you want it on your character CTRL+A > Apply all transforms. Your cloth's origin will be in the world's origin. Now apply your cloth modifier. Your body should have a collision modifier. Press play on the timeline, your cloth should adjust to the body as you intend.


Loop cut is skipping one face in particular

The problem is being caused by the parallel set of vertices (circled in red). This is causing a break in the set of faces on which you wish to create loop cut.

When zoomed in, it looks like this

So the solution is to dissolve one set of parallel edges, that is not connected to the edge marked in green.(hot Key 'X')

Once they are dissolved, you will be able to loop cut through those faces.
Checkout the attached blend file in which I dissolved those edges.


The light is too dark even at a high value

There are a few possibilities why this could be happening, unfortunately the question does not have enough information to be able to determine the cause for sure. So here are a few things to look for:

The light is blocked by other objects or is not reaching the featured object

Check that there are no hidden or disabled objects blocking the path of the lights.
The lamps could be disabled for rendering in the outliner

To fix enable the camera icon.

The lights might be in a different layer that is not being rendered.

To fix move them to the active layer or enable the layer for the lights as part of the rendered layers.
The overall birghness of the scene could be clamped in the render settings.

Any value below 1 in Clamp Direct, will make the image darker. Clamping is really preventing the ligthts to be any brighter than the value specified.

To fix, disable clamping by resetting the values back to 0 (0 = no clamping)
The model might be too large or the lights might be too far away so the model is lit just by the color of the environment.

Cycles uses values close to those of the real world. If your model is set at a scale where the turntable is as large as a city block, then one small light will definitely not be enough, or it would need to be very bright. As a rule it is better to try to keep scenes to real world sizes.


How can I achieve more realism in this given scene?

Work on the details and imperfections(cracks,  scratches, etc.).
Add more assets as you can.  I believe there is no car wash that is sitting alone in a parkway. From simple things like debris and trash cans to more complex scenery like cars and humans will make your scene complete.

Try to reduce low-quality textures for the building and try to model it yourself using procedural materials. 90% of realism is focused on lighting, materials, and scaling.

And I don't think StackExchange is a good place for critics and specific requests, try Blender Artists instead.


How to make objects not pass through each other?

Solved my problem by applying Soft Body (with a few settings, so my objects won't jump around) and Collision effects


My mouse is displaying even though I made it invisible?

So I did a little more digging on this. And realized that is was an issue that should have never been an issue in the first place. A few days ago I made a pause scene and had an invisible mouse actuator connected to an always Sensor I had to delete those two connectors for the mouse to not show up. This seems to be a glitch so if anyone comes across an issue similar to this. I would check your mouse actuators you made a while ago....


Joined Object to Mesh Separates when Moved

Maybe, in the Properties panel > Object Data > Vertex Groups, remove the rose from all groups (down arrow dropdown menu > Remove from All Groups) then assign it to the vertex group you want.
Another way to fix this is to remove the rose vertices from all vertex groups, to separate it as a second object, then, in Object mode, select the rose, shift select the shirt, switch to Edit mode, select one or 3 vertices of the shirt and press CtrlP > Make Vertex Parent, it will make the rose follow these vertices.


For this kind of project you need to create some seams before the unwrap, then load a wood image texture that is tileable so that it can repeat without visible seam, in the UV Editor place the UV islands correctly on this image, load the image into an Image Texture node, plug this node into the Principled BSDF node, and to give a bit 3D bumps to your texture, plug a black and white version of your texture into a Bump node that you plug into the Normal socket of the Principled (or ideally, create a b&w displacement map from your wood texture with a software like CrazyBump). Of course the texture is improvable with a bit of glossiness etc...


You really should open up the Graph Editor...

I you select the arms, you should be able to uncheck all animations at first by clicking the upmost EYE icon

Then select one (open the eye) of the rotation channels (you may have X Y Z Euler Rotation unlike in the image). Then keep your mouse cursor over the curve and press A to select all keys, then press G to grab them and then Y to restrict the Y axis and then just move your mouse up or down to adjust the rotation of the arm.

Hope this helps


What you want is the rip tool: Select the edge loop, press V, select one of the parts with L, if you move it you can see it is now a separate mesh (but still part of the same object, to make a new object with this part, press P).


Boolean operations consistently producing weird results

Blender's Boolean operations are still lacking a lot. There isn't really anything that you can do about this. I do believe that there was some kind of add-on that fixed a lot of issues but I can't remember the name.

Maybe the Boolean operation within Edit Mode could give you better results. To do this (be in Edit Mode) press Spacebar and search Boolean. Choose the Boolean in Edit Mode option. Here is the official documentation: Link


Is it possible to make a Cycles material detect the number of vertices in a face and shade it accordingly?

Before Blender renders, all models are triangulated and normals are calculated. There is no way to detect whether the face was an ngon or a tri. But you could apply different material indicies for the ngons than for tris. Then you could just get the info from the object info node. You could easily do that by selecting a tri for example and hitting Shift+G (make sure you are in face select mode). A menu pops up and you choose Polygon Sides. That assign the same Material as before but in a new Materials Slot.


I can't select multiple objects using Shift-Left Click in object mode

Make sure the objects are selectable. For instance, I've turned the Central Empty non-selectable in the following screen capture:


Overlaped/intruding meshes in ONE object，how to combine them into one mesh like boolean？

Go to Edit Mode, then press P (mnemonic: seParate) and choose "Loose parts". That'll undo the join, and produce an object for each part of your mesh.


This is a common problem with smooth-shaded, low-polygon-count models. It is caused by mismatching of the true shape of the polygonal model and the smoothed normals.
Here are three solutions:
1. Soften the lighting.
Increasing the size of the light will:
✔ Preserve the polygon count.
✔ Preserve the shader realism.
✖ Alter the look of the render.
2. Adjust the shadow termination.*
Adjusting the shadow termination offset will:
✔ Preserve the polygon count.
✖ Alter the shader realism.
✔ Preserve the look of the render.
3. Subdivide the geometry.
Subdividing the geometry will:
✖ Alter the polygon count.
✔ Preserve the shader realism.
✔ Preserve the look of the render.
* Blender 2.9+ Cycles only


Modify transparency of a text object along the timeline using Python scripting

You need to use a material mat applied to each text object, and set its use_transparency property to true :

mat.use_transparency = True
mat.transparency_method = 'Z_TRANSPARENCY'

Then, around the particular t you want the text to have full opacity, you need to set the aplha property of the material, and insert a keyframe corresponding to the alpha

for i in range(anim_length):
    alpha = (t - i) / anim_length + 1 - t / anim_length
    scene.frame_set(t - i)
    mat.alpha = alpha
    mat.keyframe_insert(data_path='alpha')
    scene.frame_set(t + i)
    mat.alpha = alpha
    mat.keyframe_insert(data_path='alpha')

Hope that helps.


This is where the color of the material is set. If the trees came with an image texture, add it as an Image Texture node and connect it here. If not, set this color to something besides white.


can I transfer an object into another project?

In general, you can use the "link" menu item in the files menu to create a link to an object in one file from another file. This creates a non-editable instance of the object in the second file. Alternatively you can use the "append" menu item in the same place to create a copy of the object from one file into another.

However, there are a number of considerations that come into play when trying to combine parts of the two files you downloaded, among which may be incompatibilities of and orientation of the two objects, and the rig having been designed for specific attachment points that may not also not be compatible between the rig and the mesh.


I have been pondering this as well while trying to figure out the most efficient pbr texturing workflow without shelling out for substance painter (just yet), and mixer is not quite there and neither is armor paint.
What I have so far is not ideal and involves some annoying texture switching and a paid blender addon (Layer Painter) but its the best I have figured out so far.
This layer painter addon has a pretty good workflow and is fairly similar to the basic layer workflow in substance painter and mixer.
So to paint pbr layers as a stencil I enable the channels I want active on a layer like albedo, normals & AO.
I create a new paint texture for each channel
I load my stencils albedo source image and move the stencil into the right location on the mesh and enable painting on the albedo channel and paint in what ever area i need on the mesh.
I dont move the mesh or the stencil and just change the stencil texture to the normal stencil source, disable the albedo channel in layer painter, enable the normal channel and paint over the same area.
I do the same for AO and although it is not ideal and requires alot of texture switching and an extra addon Its the best I have got so far.
I will ask the dev if they could add the ability to add a material to the Texture/stencil feature so that when we paint with the stencil material it will align to the corresponding channels in the material layer we paint on.
I understand this probably makes little to no sense if you are unfamiliar with the addon so here are some follow up screenshots.


I don't know if there is a way to achieve this with the green arrows, but it is done easily using the movement hotkeys. If you press G, the vertices will move freely. If you press x, y, or z after that, they will only move in that direction. But if you press G + Z + Z, it will not move in the global z direction, but in the local z direction, which is what you want here. For example, in the image below, I have a rotated cube, and I move 1 face not upwards, but in the direction that is it facing, by pressing z twice after pressing g.

I hope this helps!


How to load older versions of a blend file?

By default blender will save 2 old versions whenever you save the blend file. That feature is what makes the .blend1 .blend2 flies. Read the bottom of gandalf3's answer here, for more info on the persistent save feature. The .blend1 will be in the same folder as the blend file it is a backup of.

However if you do not have a backup blend, there is now way in blender to get back to a edit that has been saved over.


How to color particles based on the texture of the object from which they are emitted, using the "grid" emission setting?

A bit 'complicated' solution, as it seems that the particles UV are relative to the mesh boundings when the 'grid' option is set, not to the parent UV map (so I don't think this is possible to tune the nodes to obtain the wanted result, if you want to use particles) :

To do it :

Tune your particle system to obtain the grid dimensions you need
Apply the particle system, by clicking convert here :

You will obtain a duplicate of the cubes (on the right here) :

This cubes are dupli from the same object, so make them single user, by selecting them all and use the "make single user/object & data' menu, like below, and confirm 'selected objects'

Now join them all in order to have 1 mesh from them. As they are still all selected use Ctrl+J
Enter edit mode Tab
Them select all the vertices and unwrap U using the 'smart UV project' mode. It will give you some kind of UV grid like in the right part of the picture below :

Now we will make a bake from the original to the cube shape. This bake wont work directly because the proximity between the cubes and the original mesh is not good.
So, to overpass that :

Add a shrinkwrap modifier to the cubes and set your original mesh as target object :

Now we can bake :

1 : Add a material to your cube mesh
2 : Add a image texture with a newly created texture. Keep this node active.
3 : Select your original mesh RMB then the cube mesh with Shift+RMB
4 : Go to the bake part of the render panel and check 'selected to active'
5 : click 'bake'

Disable or remove the shrinkwrap modifier we set above
Using the baked texture, you obtain this below, with several colors on each cube :

If you need one color per cube, (edit : one color per face !)

Go to the UV editor
Select all your UVs
Set pivot to individual origins
Then scale to 0 S0

Doing that each cube UV is reduced to one point, and we obtain this :

If needed you can separate the cube in edit mode, using P then 'by loose parts' (this may take some calculations...).


Archipack autohole not working with Archipack walls?

The door hasn't been created the right way.
There is a panel CREATE under the ARCHIPACK tab on the TOOL panel. One must create doors and windows using that tab, not by adding an Archipack mesh as a mesh.


Why did references, vertex dots, vertex lines, and ground lines disappear in blender

press this button (show overlays) again

you can find it in the upper right corner of your 3d view.


How to animate the opacity of a texture painting

You need to find a way to mix the basic material and your spot image texture, for example use a MixRGB and plug the Alpha of the Image Texture in the factor socket, then find a way to vary the alpha value, here with a Converter > Math (Multiply):


Lamp energy in BGE does not get higher than 10!

10.0 is the limit for lamps. You really should not need it that bright. If you do, consider using a Constant falloff instead of a mathematical fall-off. Maybe adjust world Mist values?
Note also that Sun and Spot are the only lamps that cast shadows. And those start and end values have to be set just so.


Can't make Bevel Modifier working on engraved mesh

Turn off the “clamp overlap” in the modifier. This has gotten me a few times too.


Is there a shortcut or hotkey that I could use to access the Transform panel of the properties shelf in the 3D viewport?

You can also use the keyboard shortcuts combined with the Arrow Keys.

For example: in top view pressing G and the up/down arrow keys will move the selected vertices on the vertical (Y) axis. The left and right arrows will move on the horixontal (X) axis.

On any side view, the up/down arrows will control movement on the Z axis.

You can still use constraints like GX, G Y, GZ to limit the movement to one axis

The precision of your movements will depend on how far you zoom in on the viewport.

For even smaller moves you can press Shift while pressing the arrow keys.


Is there a way to set the radius of an edge loop exactly by typing in a number somewhere?

If know the current diameter of the loop, you can scale the whole loop by x/d, where x is your new diameter, and d is your current one.

To determine the current diameter, you can use the Measure tool in the 3D viewport. Set the snapping mode to Vertex and Click+drag between two vertices on opposite sides of the loop. (It appears that even with snapping enabled, you still have to hold the Ctrl key to snap with the Measure tool.)

Once you know the current diameter of the loop, select the whole loop and scale by x/d.

For instance, if you want the final diameter to be 6.5, and your current diameter is 3.60979 (as in the example above), you can scale the loop by 6.5/3.60979, or 1.80066. Press S to scale, and type the value.

Note: Because of the way Blender parses math during operations, you may not be able to type 6.5/3.60979 during the operation. You either have to calculate the value beforehand and type the one number (1.80066), or you can scale twice, once by 6.5 and once by 1/3.60979.


Update: In Blender 2.81 you will be able to use 1, 2 and 3 for switching vertex, edge and face select even when your keymap is based on the Industry Compatible keymap. The operator is now decoupled from the specific keymap. It's using object.mode_set_with_submode as operator instead of ic_keymap.mesh_select_mode. This change was added with commit rB23d19c2b0dd3f47339ef07be39d47c41848be39b.

The reason this issue occurs is because the industrial keymap registers an operator called IC_KEYMAP_OT_mesh_select_mode which provides the functionality to switch between selection modes for vertices, edges and faces. However this registration happens only when the industrial keymap is loaded / selected in the preferences. A custom keymap based on the industrial keymap doesn't trigger this, resulting in a shortcut referencing an operator that doesn't exist. However if you open your preferences after restarting Blender and switch to the industrial keymap and then back to your custom keymap, it will have the operator registered because you have loaded the industrial keymap before.


You don't (perhaps surprisingly) need to delete the faces before using the 'Bridge Edge Loops' tool.

Select both faces in face mode
CtrlE Edge Menu > 'Bridge Edge Loops'

Done.

The tool behaves nicely and removes the internal faces


A Pole Target interferes or takes president over the Inverse Kinematics constraining in the Bone Properties tab for the last bone in the chain.
Some info here and (more or less accurate info with a bunch of links) here
I think that sadly there aren't any (easy) workarounds. Non that I'm aware of in any case.


Why does the shortcut I created change to NDOF Fit

Blender Preferences > 3D View > 3D View Global > View Selected > Keyboard F


Blender ignores changes to python scripts

Once a Python module has been imported, it will never be reloaded by the interpreter (that is, not automatically) when source file changes.

Blender has an operator to reload all of its py scripts, triggered by the F8 shortcut (in default keymap).

Now, that will only reload registered addons (and startup/UI scripts), if your addon contains several sub-modules you need to handle their reload yourself, using that kind of construct in your __init__.py addon’s file:

# When bpy is already in local, we know this is not the initial import...
if "bpy" in locals():
    # ...so we need to reload our submodule(s) using importlib
    import importlib
    if "my_submodule" in locals():
        importlib.reload(my_submodule)

# This is only relevant on first run, on later reloads those modules
# are already in locals() and those statements do not do anything.
import bpy
import my_submodule


Particle System (Hair) - Rendered objects appears rotated/ off place

You need to select the mesh you are using as hair, go to edit mode, and rotate / move till the floor emits the hairs in the correct position.


Is it possible to Highlight all Animation keyframes in the dope sheet and make all frames stick to a specific location, all at once?

I'd do as @Policesate suggests, make a backup of the original Blend file, then - Try making a master parent for the model.  From there the included animations should become local to the parent.  Either enter in your desired location for the parent or simply drag it there - keyframe that.
The included animations should stay with it.  If they've keyframed the root bone, and it takes the model somewhere else for the idle state or other action, go into the Graph editor and drag all of that action's X/Y keyframes up or down to drag it back.  Press G Y to ensure you don't drift sideways in the editor.


How to select a brush by it's name, and generate one if not existing?

If it can be avoided, it is better to not use operators inside an operator. You should not use bpy.context in the operator, instead use the context parameter that is passed in, this allows a context to be overridden and if calling other operators should be passed along.

To find an existing erase brush you can loop over the brushes found in bpy.data.brushes and see if any that are set to be used in texture painting (use_paint_image is True) and the blend mode is Erase Alpha then you can set it as the active brush in the tool settings that you have found. If no erase brushes are found, you can create a new one. Checking the name of a brush is unreliable as the user may change it to anything, such as "gomme" being french for eraser.

def execute(self, context):
    # get a list of erase alpha brushes
    erase_brushes = [b for b in bpy.data.brushes
                if b.use_paint_image and b.blend == 'ERASE_ALPHA']
    if len(erase_brushes):
        # if we have more than one just use the first
        use_brush = erase_brushes[0]
    else:
        # create an erase alpha brush
        use_brush = bpy.data.brushes.new('AlphaErase')
        use_brush.blend = 'ERASE_ALPHA'
        use_brush.use_pressure_strength = False

    context.scene.tool_settings.unified_paint_settings.use_pressure_size = False
    context.tool_settings.image_paint.brush = use_brush
    return {'FINISHED'}


Version 2.78, 3D view, Problems displaying a movie clip as background, how to fix it?

This is what I meant in comments above (if I got what you meant)

As said

also selecting "image" you can select a movie file, it should work anyway
or, using "movie" option, try disabling "camera clip" and select again the video through the "open" button


How many vertices can I connect to a face?

If it's a big flat surface, it is absolutely fine to leave it as Ngons. A polygons with more than 4 vertices are called N-gons. For rendering and UV unwrapping there should not be much issue, if it's going to be staying within the blender environment.

However if you are working on models that would be exported into a game engine, it's best to define your 4 sided polys all over your meshes as much as possible. Games engine tends to mess up your triangles when no definition of edges are found. They pretty much auto tesselate your meshes for you, which usually produce "unhappy" results producing in-game artifacts.

The link that iKris posted is pretty clear on a number of reason when to use them, and when to avoid them.


You have to increase the "Clip End" of your camera to include everything you want to see in the view.


How to make a curve segment perpendicular to a face?

Unfortunately Blender isn't great for precision modelling as it currently stands, and it becomes even more difficult with bezier curves. That being said you can achieve most operations even if it is an involved and time consuming process.

You could try one of three methods

Enter edit mode on your mesh
Select the face you want to make the curve perpendicular to
Snap the cursor to it
Add a curve there
Enter edit mode in the curve
Make both handle types Vector
Move the starting point of the curve to local coordinate 0,0,0
Now exit edit mode of the curve and enter edit mode in the mesh
Extrude previously selected face (this is a temporary hack)
Now snap the cursor to the newly created face
You can now undo the extrusion and exit edit mode
Enter edit mode on the previously created curve and snap the end point to the cursor
Profit!

The con of this method is the curve's axis wont be properly oriented to be perpendicular to the face, only the segment, so you couldn't easily convert it to a bi dimensional 2D curve (if that is what you want).
Also it can be time consuming and become unpractical for many iterations.

This second method is my favorite and as the advantage to leave your curve properly oriented, however it can become inadequate if you only want a few instances.

Snap the cursor to the object whose face you want to make the curve perpendicular to (not the single face)
Add a curve there
Enter edit mode and make it's vertex start at 0,0,0 and end at 0,0,1
Now exit edit mode and parent the curve to the mesh
Select the mesh object and in the Properties Window > Object > Duplication > Enable Face duplication
Now make the curves independent objects with the operator "Make Duplicates Real*
Profit!

Third method is the simplest using snapping, but may give inaccurate results because Blender may average the normals of surrounding vertex

Turn on "Align the rotation with the snapping target" option at the bottom of the 3D view right next to the snap options
Switch to  "Snap to Faces" mode
Add a new curve
Move it with G and use snapping to align it to the surface normal as you move it around by pressing Ctrl while grabbing.
If you turn on "Project individual elements on the surface of other objects" option (also next to the snap options), the curve will orient itself to the surface (no need for pressing Ctrl).
Enter edit mode in the curve
Translate one curve endpoint to the face
Switch to  "Snap to Vertex" mode
Translate handle point (or second point for Nurbs) to the point from step 6
Translate the same point along the Z axis to get a perpendicular start/segment
Grand Total profit!


You probably turned off overlays. See below:


The cube has backface culling enabled. Tab into object mode, hit N to bring up the Properties Region, then scroll to shading and untick "Backface Culling".


How do I smooth only the outside edges of a complex object?

I agree with the quad based topology would be the answer on this. Please see my suggestion: I have added the blend. file for this as well.


Select the bones you want to keyframe, then change the mode from Object Mode to Pose Mode.

Then, once you are satisfied with editing your bones, press I and then click on LocRotScale.

This will add a keyframe for the location, rotation and scaling for all selected bones. I suggest you read this.


Object with origin set to geometry not at center when coordinates are set to 0,0,0

There's a thin line, it means that your object has a parent and that its location values will remain the ones before parenting wherever it is now in your scene, you need to:

Go in the Properties panel > Object > Relations > Parent and remove the parent (yes, cruel).

Or AltP > Clear Parent.

Or header menu > Object > Parent > Clear Parent.


How to mask normal maps or How to select and apply portions of normal map?

In comparison to bump maps were black and white are 0% and 100% influence, normal maps work from a blueish base tone.

rgb (128,128,256): is 0% normal map influence

you can use your bw-mask as a factorial in the color-mix-node while using your normal map as one input and the rgb color(128,128,256) as a second input.


Before any requests read the manual on using images in empties.
https://docs.blender.org/manual/en/latest/modeling/empties.html?highlight=image%20reference#image

If you want images as reference, don't use images as planes, use Add > Image > Reference.

This tool allows you to create an empty with an image associated with it, that ist is visible in Solid mode. It is not really an object with vertices or faces, and it will not render in the final image. Such image will appear in front of the geometry.
To have an image that shows behind the geometry, then use Add > Image > Background
You can always change how the image is displayed:

To resize the image to an exact size use  the Size controls for the properties of the empty.

Or use the sliders for scale to change the aspect ratio in whichever axis you need.

Images as planes is meant to be used when you need a plane with actual vertices and faces, that has an image mapped into the material.


Finger stops moving while the bone keeps going

The reason of the fingers issue is, that vertices of fingers are in Wrist (left and right accordingly) Vertex Groups with weight of 1 and in appropriate fingers Vertex Groups.
Remove them from Wrists Vertex Groups and they will start follow fingers accurately.

P.S. Consider removing doubles in the model, there are bunch of those.


Is there any way to export the last frame of a physics simulation from command line?

Bake the point cache

Using same method as with particles here CLI How to render last frame of hair dynamics sym?

Replace "runs physics simulation" with a bake operator below. Not sure if playing, or frame setting, and baking happen in bg mode as they do when using GUI.

rbw.py

import bpy
context = bpy.context

scene = context.scene
rbw = scene.rigidbody_world
pc = rbw.point_cache

# match bake to animation
print(pc.frame_start, pc.frame_end)

bpy.ops.ptcache.bake({"point_cache": pc}, bake=True)

scene.frame_set(250)
bpy.ops.export_scene.obj(filepath="test.obj")

Testing in CLI with

blender -b xxx.blend -P rbw.py

can confirm  test.obj is a result of simple physics sim at 250.


Modelling best practice - can I build a library of meshes?

Yes, a library is a great practice. You can then link or append those library files into a current project. I recommend using append because you can then edit that particular object in you current project file.

https://www.blender.org/manual/data_system/linked_libraries.html

I also build a library of materials.


VSE. I need to rotate image with arbitrary center pivot point that is not in the center of the image

It is possible friend, just follow these steps

import your image file in Blender VSE
click image offset

Another step should be adding your transform strip to it but this is the place where you go wrong so before adding transform strip change these values by the formula -

x dimension =  (video dimension x - file dimension x)/2

y dimension =  (video dimension y - file dimension y)/2

so here my video dimensions are - (1920,1080)

and my image dimension are - (620,387)

so I will change these values -

to x = (1920-620)/2 = 650
   Y = (1080-387)/2 = 347

so what we did here is all because to put the pivot point of image file in center.

now add your transform strip and rotate

Now it will rotate from center
you can change the x and Y points of your transform strip to position your image anywhere but do not change the X Y points of original file .....Use transform strip only to position and rotation.


As far as fixing nonmanifold issues are concerned, you don't need to worry about the UV unwrapping at all (except for possibly having to unwrap it again when you change your vertices around).

The problem you have in the middle probably happened after you applied your mirror modifier, but it's an easy fix. Make sure just that section is selected, then scale it to 0 on the x axis. LEAVE IT SELECTED. Next you're going to go to your search bar (space in 2.79) and start typing in 'remove'. A few options should pop up, but what you want is remove doubles. You can also access it from the 'W' menu, but sometimes it just doesn't show up for me, so that's an alternative method.

Your other manifold problem looks like you might have internal faces. To check, go to face mode and see if you see any of those floating dots inside your model. If you do, move back into edge select and only select the edges on the inside (so you won't make holes in your model) and delete them.

I hope this helps!


As with any X11 based program you can run blender on a remote server and have it's windows displayed locally by using X11 forwarding. Over a local network this can work but won't give the same performance as a local copy of blender.

If you want to create a web based solution, I would start with building blender as a module and use webgl to draw in the browser. I doubt you could get full functionality this way but you may be able to setup a simple 3d editor using blender as the backend.


You should definitely go toward manual weighting, which is not as complicated as it seems: automatic weighting is a fast shortcut for simple models that don't require fine tuned movements: it's not wortking on your model because it needs a manifold, joined, closed unique mesh, while your model is broken into multiple pieces and is far too complex to be manageable by automatic weighting. When you parent the mesh to the armature choose the option "With empty groups": this will create an empty vertex group associated with every bone marked as "deforming" in the armature, then select the relevant vertices and assign weight. Here are some useful weighting tricks: Rigify : skin overlapping clothes


Different view from viewport than the render

For the bottle you have different levels of subdivision (1 for preview, and 2 for render). That gives the inconsistency.


How to register a single property (not a property group) in blender 2.8? (Python API)

Silly me... This is what I was looking for:

bpy.types.Material.myprop = bpy.props.FloatProperty(name="myprop")

Reference:

Assigning property to existing class


How do I add a porous texture to a mesh?

Using image textures:
There are a few things that could be causing your texture to look distorted:

Ensure that your mesh is properly UV unwrapped

Check that you have UV coordinates selected; in cycles this is accessed with the Texture coordinate node, in Blender Internal it is set in Texture settings > Mapping.

Using Procedural textures:
As said on the wiki:

Procedural textures are textures that are defined mathematically. They are generally relatively simple to use, because they don't need to be mapped in a special way - which doesn't mean that procedural textures can't become very complex.
These types of textures are 'real' 3D. By that we mean that they fit together perfectly at the edges and continue to look like what they are meant to look like even when they are cut; as if a block of wood had really been cut in two. Procedural textures are not filtered or anti-aliased. This is hardly ever a problem: the user can easily keep the specified frequencies within acceptable limits.

Blender Internal:
Here is a quick example of a bump mapped cloud noise texture:

To create this:

Add a new material

Add a new Clouds texture

In Texture settings > Influence > Diffuse disable Color, and in Influence > Geometry enable Normal to use bump mapping. (you may want to scale down the influence a bit, and change the Method to Best quality)

In Texture settings > Clouds > Basis change the Size value as desired.

Cycles:
To bump map, simply plug the texture into the Displace socket of the Material output node.

Note that this can also be done per shader with the Bump node and the Vector input socket of shader nodes.


Fluid not interacting with obstacle correctly Blender 2.8

I've checked your file and you need to aplly transforms yo all the objects that interact with your fluid simulation, also you should tweak some settings inside the parameters of fluids in order to get better results, also adding some geometry with simple subdiv (not catmull-clark).

Also use larger dimensions, Blender works better in simulations with larger objects.


Sound (and occasionally video) disappears in VSE

When you can't see/hear strips content any more it's usually due to moved footage location. When Blender can't access the originally imported footage anymore it will just show black/play nothing even the strips remain in place and will work again once the footage is back in its original location or once you refreshed each affected single strips source.


Why do I get a "can't edit this property from a linked data block" message when trying to edit an appended object?

Never mind, found it. Had to go to out-liner and delete the linked data from there, works like a charm now.


How to insert a keyframe in the VSE via script?

Keyframe insert

In a late edit to previous answer I wanted to point out that the sequencers new_movie(..) method returns the newly created strip. (In the docs from the link where it says "Returns") Assigned it to variable ms

The context scene alreasy is assigned to scene.  Hence there is no need for bpy.context.scene.sequences_all[name]...  Doing it this way will cause problems if there already a strip named "foo", the new one will be named "foo.001" and you will be looking at old one instead. This is one big reason to use API methods that return a reference to the object they've created.

There are oodles of questions and answers on bse re adding keyfraems using keyframe_insert(datapath, frame) which can be used like

# set the value
ob.foo_bar = 22
# insert the keyframe at frame f
ob.keyframe_insert("foo_bar", frame=f)

There is no need to change the scene.frame_current first.

Ammended code.

import bpy
import os, glob

# glob all movie files from
vid_dir = "/home/batfinger/Videos/"
# note this will recursively find movies in folder
exts = bpy.path.extensions_movie
files = [f for ext in exts for f in glob.glob(os.path.join(vid_dir, "*%s" % ext))]
files.sort()

scene = bpy.context.scene
scene.sequence_editor_create()
seq = scene.sequence_editor.sequences
for i, fp in enumerate(files):
    frame_start = (i * 48) + (i * i) + 1# some offset
    name = os.path.basename(fp)
    ms = seq.new_movie(name=name,
                  filepath=fp,
                  channel=32 - i,
                  frame_start=frame_start
                  )
    ms.blend_type = 'CROSS'
    f = frame_start + ((i+1) * 48) + ((i+1) * (i+1)) + 1
    ms.blend_alpha = 100
    ms.keyframe_insert("blend_alpha", frame=f)

    f = frame_start + ((i+2) * 48) + ((i+2) * (i+2)) + 1
    ms.blend_alpha = 0
    ms.keyframe_insert("blend_alpha", frame=f)

To see what's happening you need to print something (or throw an error)

print("this will be seen in system console (terminal)")


I installed that program, and even though it does provide for the conversion, it requires a registered version of it (ie. paid version). So far, I've only found ogre converter and a website that does mesh conversion (http://www.meshconvert.com/) to be reliable.


this script will help you

import bpy, bmesh

print("*"*50)
oa = bpy.context.active_object
obj = bpy.context.object

bpy.ops.mesh.shortest_path_select() #add for request

me = obj.data
bm = bmesh.from_edit_mesh(me)

v1,v2 = [elem for elem in bm.select_history if isinstance(elem, bmesh.types.BMVert)]

list = [v1]
verts = len([v.index for v in bm.verts if v.select])

cont=0

while cont< verts:
    v=list[cont]
    edges = v.link_edges

    for e in edges:
        if e.select:
            vn = e.other_vert(v)
            if vn not in list:
                list.append(vn)

    cont+=1

print(list)

for v in list:
    print(v.index)
bmesh.update_edit_mesh(me, True)


It's the same, only thing is that they changed the name.


You can achieve a simplistic tree growth animation using the Bevel Factor property of the curve.

You might have to separate your tree into several discreet branch levels, and for a proper realistic effect it will probably require a lot of manual work.

Create a Sapling tree, enter Edit Mode select the whole main trunk and separate it with P.

Then select one of the branch tips (radius $0$), Shift+G Select Grouped > Radius then Ctrl+L to select all linked vertex. Press P again to separate that whole branch level.

Repeat for every branch level you wish to animate independently.

You can then animate the individual Bevel Factor properties on each curve object to achieve a simplistic growth animation by pressing keyframing the property with i while hovering it.

Separate into further objects for more detailed growth, for example by height levels, so lower branches can start growing before the upper ones.


Adding a vignette to a render is fairly common and you can find examples in many tutorials. A vignette is often circular and darkens the corners but the same principal applies.

Basically you create a mask, blur it, then use it to mix together the results you want. In this example I have used a CombineRGBA to input a semi-transparent white background that I added a render result over. There is also an Ellipse Mask if you want the rounded result.


2.8: How to assign a Procedural "wood" texture(for example) i just made to a material

Uhh... you raise an excellent point, actually.

The short answer is:

Ensure the Viewport Shading type in the top right is set to Look Dev or Rendered, not Solid.
In the Shading workspace or any Shader Editor, edit your Material, setting the Base Colour type to use a Wave Texture Node. There is no 'Wood'. It's kinda weird.

So... creating that Wood Texture on the right-side Textures context doesn't really do anything - it's showing your Brush and Brush Mask textures. Procedural textures aren't really 'stored' how you may expect.

The Nodes you would use to get the same procedural effects have completely inconsistent names with the list of texture types on that Texture tab.
I haven't looked into this, but there's probably a developer discussion about sorting this all out, because until I tried answering your question I hadn't really realised what an utter mess that all is.

Here's a shader editor showing all the Texture node types available... beside the list of texture names on that tab. I'm slightly baffled, to be honest.


Blender particle system objects not colliding

Add the collision pannel under Physics, turn the Particle Friction up... hope this helps.


Blender on OS X Sierra 10.12.4 - Menus not working correctly

Ok, working with some other Mac software I found the following pattern to clean up stale bits that could be causing bad behavior.

So I did the following rm -rf  ~/Library/Caches/Blender/*.  I assume I blew away a few customizations with this as weel.

I will just leave this here and hope it helps someone else.

The issue came back.  This time I unplugged all USB peripherals except my mouse and keyboard and the issue disappered.


The first thing that you have to do is create a mask.

There are two places where you can do this:

In the Image Editor.

Or it can be created on the Movie Clip Editor

Go to the Motion Tracking Screen Layout and load in your movie. Select Mask in the bottom options panel where it probably currently says Tracking.

 -->

Click  to add a new mask, or select the one you already made from the dropdown. Make sure your mask is named, so that you recognize it:

Key Ctrl +  LMB to add a new control point. Keep clicking to mask your object. When done, key A once or twice until everything is selected and key Alt + C last to connect the polygon. If you want the mask to move, key I to insert a keyframe, move the time cursor in the Timeline, move the control points, and key I again. They will glide in between.

When you are done with the mask, go back to the Video Sequence Editor, and your mask should be there.


How do I remove unwanted Transform Orientations?

The custom transforms are also listed in the 'Transform Orientations' panel in the Properties shelf (N).

Choose the custom transform you would like to delete from the list, then press the 'x' next to it to remove it:


How can I cast a text element to float in animation-nodes?

Search in the menu (Shift+A) for Convert

It's a generic node that converts all to all.
There are other nodes that are not in the menu yet.

Sometimes it is added automatically.

In this case it is not cause you have to be a bit careful about the input, not to get a None. None is not taken well by some types of data/sockets and will give errors for vectors and others. So don't jump in using it all around :)


Translation snapping toggle - Specific dynamic snapping

It's not so much that you can't change targets while snapping, its more that generally if you are snapping that usually means you are using some sort of  transform operator already.

Now transform operators are generally Modal operators, so that means while they run there is generally a predefined set of actions you can preform, limited by what Blender developers coded into that operator.

As far as I know you could not invoke wm.context_toggle while an operator is already running.

That being said some of the operators do provide some snapping options you can configure. Just go to File > User Preferences > Input search for a transform operator like Translate if you expand it you can control its specific sub-keymap, which includes some basic snapping options like Invert or toggling on and off.


I hate loading factory default because of all the settings/theme that I would have to reset.
Downloading and installing a new version did not fix the problem either.
So, I had Blender on another computer with it's startup.blend on dropbox, I just opened that and saved it as the new start up file.
All brushes were there now.
Thanks for the answers.


As is standard for my dyslexia, I misread the number of arguments. Don't make my mistake, kids. X-Ray was actually turned off.


How can I copy frames from one action to another action?

To solve this, you just have to put the armature(bones) to POSE MODE before copying the keyframes. Then copy (CTRL+C) the keyframes and paste (CTRL+V) to other action or a new action (+ button).


Why is the camera drifting when following a path and tracking an object?

You have two cameras on the scene.

You have a marker in the timelilne that controls switching the active camera to camera.001 as the active one at a certain frame.

On the second camera you have a different kind of animated motion.

You can delete the marker or disable the 2nd camera for rendering. You disabled the visibility of it but not the renderability (the camera icon)


Blender file Dialogue window always hides suggested folders, how to show by default?

I have tested this on Windows but I hope it works on Mac as well.
To modify Open File dialog settings, you need open new Blend, set the dialog panels to desired positions and save the current Blend as a Startup File:

Start the Blender so you have empty (default) project opened

Open the Open File dialog by File > Open (or F1)

Resize your panels as you wish

Close the dialog so you return to Blender's workspace

Press Ctrl+U to Save Startup File - this saves the current settings as a default for any new projects (together with your panel)
(this trick also works for remembering startup window configuration for multiple displays)

Note: If you want to use F1 shortcut for opening a file, you need to configure this dialog as well, it's settings is independent from File -> Open dialog.
To save settings of the Install Add-on dialog, don't open the dialog from User Preferences, but use Spacebar & type "Install" > hit Install Add-on from File. It will use Open File dialog settings this way.


Deepcopy is not supported as the Blender objects are optimized for performance.
Most objects have the option, to create a copy by using .copy method

obj = bpy.context.object
copied_obj = obj.copy()

Please note that .copy will also create a new object in the scene (same as duplicate).
Making a fully detached copy of an object, you need to do yourself. as you will by then make a local copy of everything in the python interpreter.

In these cases it is best to do it manual and only select the data you need so the performance can be controlled better.


Always layout UVs up and right from 0,0. Otherwise this will happen. Never go left and down.


How to make nice curvy contour on high detailed (sculpted) mesh?

the reason of that resides on the actual geometry of your mesh, seems to have to many vertex and a very nested topology. I recomend you to try reduce your vertex acount from the beggining and use the subdivision surface modifier it'll round your shapes but it'll still will follow the topologhy.
You can try to use remesh modifier or decimate modifier to reduce vertex number. But you'll loose all the sculpted allready details.
good luck!


The priority is following:

UV Seam - Red
Bevel Weight - Blue
Edge Crease - Purple
Sharp Edge - Cyan
Freestyle Edge - Green

Note: Default colors in Blender 2.82


one possible way is to use :

use the Transformation constraint to convert translation to rotation from control bone to lower bones
use the copy rotation constraint to make the upper bone rotate in reverse to the lower bone

The Transformation constraint to the lower bone with this settings :

the Copy rotation constraint on the upper bone :

there's only one plane ( with middle edge) and have an array modifier controlled by an empty ( see the .blend file )


Animation problem on rigged object after export

Nvm, I figured it out. The model would only show the animation after i converted it to a .mesh format. But now I have another problem, my animations are only half a second no what i do.


You are in Edit mode. You can only set "dimensions" in object mode (same as with scale).


If you want your arrow to grow along the curve:

Give your arrow an Array modifier, choose Fit Type > Fixed Count, and End Cap > arrow like you did.
Give your arrow a second modifier, a Curve modifier, and choose the Path as the Object.
Now increase the amount of Count of your Array, the arrow grows along the curve.
You can now insert keyframes so that at frame 1 of the timeline there is only one duplication and at frame X there is as many duplications as you want.
Note that, anyway, the arrow will be messed up at the U turn of the curve, as your arrow is not subdivide, is big, and the curve is sharp. If you don't want the front of your arrow to be deformed it should be a separate object and it should move along the curve (with the method explained below).

If you want your arrow to move along the curve:

You gave your arrow a Curve modifier while, for your purpose (follow a curve without deformation) you should have given it a Follow Path constraint.

Right now it is behaving like it is supposed to. You've given your arrow a Curve modifier, which means that it follows the curve you've chosen as Object and it deforms along this curve. As your arrow is big and doesn't have a high poly mesh, the deformation is a bit messy. Even with a high poly mesh it won't give anything great.

If you want your arrow to follow the curve without any deformation, you need to give it a Follow Path constraint:

Remove the Follow Path you gave to the curve (it is useless, the curve won't follow any path).
Delete the Curve modifier you gave to the arrow.
Delete the previous Follow Path you gave to the arrow and give it a new one.
In this modifier click on the Animate Path button, and enable the Follow Curve option. As Blender doesn't know how you want to orientate the arrow, try different Forward (X is the good one).
Now the arrow follows the curve without any deformation.

Now if you want to control the speed of the arrow along the curve:

Select the curve, open the Graph Editor window, on the left panel (Path > NurbsPath.001), unfold NurbsPath.001 and click on Evaluation Time. Open the right panel with N and click on the Modifiers tab. Delete the Generator modifier (X). You've delete the animation you've automatically generated when you created the Follow Path constraint you gave to the arrow, and the arrow doesn't move any more. You have to reprogram the animation.
In the Properties panel > Data > Path Animation, choose the amount of Frames you want. 100 by default is ok. It means you choose to segment your curve 100 times. The Evaluation Time will determine at what segment of your curve your arrow will be at the time you want. For example place your timeline cursor (green bar) at 1 and create a keyframe (i) on the Evaluation Time > 0.00. Now move your timeline cursor to 20, go back to the Evaluation Time, choose 50, and create a keyframe. Now from frame 1 to frame 20 the arrow moves from the beginning of the curve to its middle.
If you want the animation to be linear and not smooth as it is by default, in the Graph Editor, press t and choose Linear.


Difference in layout panel / menu ? difference in set property in operator / menu?

1_conscience_0_dimen Answered me a solution.
Basically the layout work differently but
we can call the menu in this different way to keep the right layout.
He posted me this script that show the behaviour.
You can see it in the link above too
import bpy

###Panel
class PANEL_PT_Menu(bpy.types.Panel):
    bl_label = "panel menu"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "0data"  # to hide it. bl_context = "object" to show it in props
    bl_options = {'DEFAULT_CLOSED'}

    def draw(self, context):
        layout = self.layout
        layout.label(text="The Menu you want as a panel")

####call as an operator
class SimpleOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.simple_operator"
    bl_label = "Simple Object Operator"

    def execute(self, context):
        bpy.ops.wm.call_panel(name='PANEL_PT_Menu', keep_open=True)
        return {'FINISHED'}

addon_keymaps = []

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

    wm = bpy.context.window_manager

    if wm.keyconfigs.addon: #### call it from a key

        km = wm.keyconfigs.addon.keymaps.new(name = '3D View Generic', space_type = 'VIEW_3D')
        kmi = km.keymap_items.new(idname='wm.call_panel', type='Q', value='PRESS', alt=True)
        kmi.properties.name = "PANEL_PT_Menu"
        addon_keymaps.append((km, kmi))

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

    wm = bpy.context.window_manager
    kc = wm.keyconfigs.addon
    if kc:
        for km, kmi in addon_keymaps:
            km.keymap_items.remove(kmi)
    addon_keymaps.clear()

if __name__ == "__main__":
    register()

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


Your problem is absolutely topology related. I see 2 things going on that are causing your shading issues. Firstly, there are triangles mixed with quads - this usually causes problems, especially around edges and areas that will be shaded smoothly - both of which are true in your case. Secondly, it seems you have formed the "blade" by moving the front faces away from the rest of the mesh. This has left non-planar (impossible shape) faces along the edges of the blade. I suggest you begin with topology looking like this: notice - all quads.

When starting with this shape, you can extrude the "blade" area instead of moving it. This will not create any non-planar faces.

From there, you can move and scale the blade section down to your desired size.

After this, it's almost done, but to make nice edges, you probably want to select the areas I've highlighted below, and inset them slightly (0.001 was good enough for me).

To make the rest of it look as clean as possible, I would also recommend adding edge loops - one around the edge of the "hilt" where it meets the front (blade containing) face, and one more along each end of the blade itself. (I put one in the center of the blade and beveled (CTRL+B) to make it into 2 lines, and then dragged until they were almost at the ends).

Here is the end result with smooth shading, and even a subdivision surface modifier.

Hope this helps.


For some toggles, you can first select multiple strips, then right click on them and choose "Copy to Selected".

For batch controls on proxy quality setting, there is a very nice VSE addon here, which can make it much easier.


Chopping excess bits off an imported stl :)

To chop off stuff, there is an option in Blender, I believe, to delete disconnected parts of a mesh. You can also use the removed doubles option to remove overlapping vertices. If you want to remove triangles as well, you can press Alt+J to remove them as well.


After you joined the two meshes, you must select in edit mode all the bones of the second armature and parent them to the "master" bone of the first armature, the one which moves all the others (choose "keep offset" option when asked to).


It's difficult to tell without more information, but it looks like you just have a broken mesh.

Simply select the two vertices and press Alt + M to merge them together to create a quad:

EDIT: As far as closing up the back seam...

Just create Tris on the bottom by selecting three vertices and pressing F to fill.

With the Merge Vertices option enabled, it will automatically connect both sides of the Mirror Modifier:

You can Ctrl + RightClick to select a series of vertices at the seam and just pull them over to connect since you've enabled Merge.


Is it possible to save pixel perfect full-spectrum rgb height map?

Your calculation looks incorrect. Also, are you expecting RGB values in the range 0-255 or in the range 0.0-1.0? Blender shader nodes expect values in the range 0.0 -> 1.0.
I suspect you actually require something like the folllowing :
B = C % 256
G = ( (C - B) / 256 ) % 256
R = ( ( (C - B) / 256 - G ) / 256 )

This will produce a colour with each channel in the range 0-255
Then, produce a shader colour (ranged 0.0-1.0) using :
Color = (R/255 , G/255, B/255)


Before you install Blender 2.80 verify that your system meets the minimum requirements.

Since you're unfamiliar with Linux, I'd suggest you download the archive version. First check if you're using a 64 bit or 32 bit operating system. In case you don't know, either take a look at the system information in the system settings or open a terminal and run:

uname -m

If it returns x86_64 you're running a 64 bit OS, 32 bit otherwise.

Then download the appropriate version and extract the archive:

Blender 2.80 Linux 64 bit
Blender 2.80 Linux 32 bit

Navigate into the extracted directory and find the file named blender. That is the program you need to run. An alternative to the archive version is to install Blender through Steam.

In case these instruction aren't detailed enough, please leave a comment which states what Linux distribution you're using.