Use the depsgraph

Using the code suggested here https://developer.blender.org/T58792

Adds an empty, displayed as a cube, at the particle location.   Make the object with the particle system active, move to desired frame and run script.

import bpy
from mathutils import Matrix

context = bpy.context
# beware removes all empties from scene (for testing)
for mt in (o for o in context.scene.objects if o.data is None):
    bpy.data.objects.remove(mt)

# get the depsgraph and the evaluated object
dg = context.evaluated_depsgraph_get()
ob = context.object.evaluated_get(dg)
# assume context object has a ps, use active
ps = ob.particle_systems.active
# this is the instance object
po = ps.settings.instance_object

for p in ps.particles:
    # make a matrix for the particles
    M = p.rotation.to_matrix().to_4x4()
    M.translation = p.location
    # put an empty at particle
    bpy.ops.object.empty_add()
    mt = context.object
    mt.matrix_world = M
    # the scale
    mt.scale = (p.size,) * 3
    mt.empty_display_type = 'CUBE'

The global location of each vertex of the instance object of the particle system will be

mt.matrix_world @ vert.co


Is possible to render in Cycles with modifiers on the scene?

As explained in the manual here, each modifier has a few buttons that enable/disable it at certain times. The small camera button is used to for displaying the modified result when rendering, if this is off it will not be visible when rendering.


How to connect nodes very fast using shortcut?

Ctrl+Shift+Left-Click on the node and it will connect to the viewer node. If no viewer exists, it will create one.

You can also select two different nodes and press F to connect them automatically (they will try and connect from the first output to the first input if they are available).

The Shift+Left-Click (or right-click as you mentioned) on the node socket output allows you to select which specific node sockets are connected when using F. This means you can also Shift+Left-Click on the target node socket to select which input it will connect to (by default it will connect to the next free input on the node).


Timeline markers are part of the scene data, you will only get the markers if you import the scene into another blend file.

Blender can have more than one scene in the same blend file, you could create a full copy of the current scene, remove the items you don't want and start your new animation. Similarly you could save a copy of your file and remove the un-needed items in the new file.

The other option is to use python to export/import the markers.

Run this in your current file to export the markers -

import bpy

markerfile = '/tmp/markertransfer.txt'

with open(markerfile, 'w') as mf:
    for m in bpy.context.scene.timeline_markers:
        mf.write('{},{}\n'.format(m.frame, m.name))

Then in your new file run this to get matching markers -

import bpy

markerfile = '/tmp/markertransfer.txt'

with open(markerfile, 'r') as mf:
    for l in mf:
        f,n = l.split(',')
        bpy.context.scene.timeline_markers.new(n.strip(), frame=int(f))


Unfamiliar edge is coming out of my model. How can I fix it?

Apparently it's the wireframe overlapping with one another. Here's another image of a close up showing what is happening. The blue color is the "correct"/ outside way of the face, and the red is the inside face.


As @JohnEason pointed out, in Edit Mode with my plane object selected, I can press E (and Z) to create a three-dimensional prism out of my polygon.


Blender won't display texture, even in UV editor, Using a PNG (screen shot included)

When you are using Cycles you also need to add it as a texture node for it to appear in the 3D view:

When in textured view the last selected image texture node is displayed, when in material view an approximation of the material is displayed, with all textures mixed according to the node setup.


You can use hair particles.

Add a particle system and set it to hair. Choose a higher number for segments (e.g. 10).
Go to Particle Edit mode. Select some tips and scale them towards their center to create a pointy end segment. ⎈ CtrlNumpad+ select additional segments of the same strands and comb, smooth or cut them.

Unwrap the emitter object and use Noise Textures to create color variations in the material.

Use child particles, if the hair is not dense enough.


Making my own Modifier : Make Texture operate as mask on vertices

A possibility (to avoid a bit difficult coding), more than a real answer:

Use a displacement modifier on a cutting object.

Then use this cutting object for a boolean 'difference' operation on the object you want to cut (or remove some vertices).

This is illustrated in this animation:


Knife will cut through obscuring faces, if Z is pressed while cutting, either on solid or wireframe mode.

Midpoint snap can be activated by pressing Ctrl while cutting.

Further options are displayed on the 3D View area's header, while Knife tool is active.


what is and how can i stop the constant "canceling..." in the compositer?

I was able to get it to stop by deleting the viewer node from my node group in the animation nodes add-on. I was using a viewer node to confirm my output was correct when sending some text data. From now on I know just to use it to check and then delete it. Probably has something to do with the viewer node also being used in the compositing tab?


Is it possible to programmaticaly render video from a blender pattern animated scene with images and mp3 as parameters?

Yes.

You can load a blender instance from command line and pass it arguments, and execute a script inside blender to change images / audio files, and then render.

Your scenario describes it adequately:

make a template blend file with placeholder audio file (a click track, whatever..)
add placeholder images (test screens for example, with numbers to allow you to debug
write the script that takes arguments (location of images, location of mp3)
execute from command line

I'm sure if you provide such a representative template .blend file one of us would probably give you a hand writing the script to change out the audio and image files.

Alternatively you can script the entire animation, while starting blender from console with an empty .blend file (but with the script preloaded to accept a directory of images / audio ), this is also easy enough if you know Python.

See this answer for an introduction to commandline blender (no gui needed)


Can you recreate this Subsurface Scattering effect in Cycles?

In the interest of completion I'll answer with the result I arrived at for rendering these leaves. I didn't arrive at precisely the same result but something quite close.

I have attached an image with the various tests and shader settings. I included the Displacement Texture Nodes I used for surface texture because it does have an effect on the final look.

The biggest changes were affected by altering the Transmission and Transmission Roughness values. And by using Random Walk instead of Christensen-Burley as the SSS Method.

This is what the Blender manual says about these SSS Methods:

  Subsurface Method Rendering method to simulate subsurface scattering.

  Christensen-Burley Is an approximation to physically-based volume
  scattering. Gives less blurry results than Cubic and Gaussian
  functions.

  Random Walk Provides the most accurate results for thin and curved
  objects. This comes at the cost of increased render time or noise for
  more dense media like skin, but also better geometry detail
  preservation. Random Walk uses true volumetric scattering inside the
  mesh, which means that it works best for closed meshes. Overlapping
  faces and holes in the mesh can cause problems.

One commentor suggested using Alpha for Transparency, but to me this appears to affect a different kind of near total transparency that doesn't seem to have any relation to the physical nature of the simulated material but something more like an overall opacity of the object. It is my understanding that Alpha is primarily used to modify another node which plugs into it. (But I stand to be corrected here).

In this particular case, adding Sheen also had an influence that came closer to approximating the look of realtime Eevee rendering in Material Preview mode.

Something I have not been able to imitate, is the way that realtime rendering in Eevee seems to pick out some edges with a highlight. Even after rendering an output image in Eevee this effect was not reproduced. Perhaps this is a feature of blender to allow for objects to be more quickly visually isolated while editing them, rather than physical accuracy for a final render. Just a guess.

This technique of picking out edges with a highlight is an effect used by old painters, you can see if you look at dark old oil paintings.

You might be able achieve a similar highlight with carefully placed back light, but for the purposes of this experiment I was more interested in trying to pin down some of the specific aesthetic effects of each render engine, albeit on this one very particular example, so I stuck with same default HDRI for the render.

I hope someone may find this useful sometime.


Semitransparent texture makes some objects behind transparent in viewport

For the .blend you have attached, it seems that ticking "Transparency" option in the object's Display settings does the trick.

If you want to see outline of the selected object, you can enable Bounds in the same Display section.
Still there can be an issue with display multiple faces with the transparent texture stacked behind each other, then can try to tune User Preferences -> System -> OpenGL -> Clip Alpha value.


Selecting the other side of the object in a boolean operation

When you are using Difference the other object is 'subtracted' from the one with the modifier. To get the other side you have to set the modifier to Intersect. This is the part where both objects overlap. The third option, Union would give you the boolean 'sum' of both objects.
In the image below the monkey head has the boolean modifier, the other object in the modifier is the cube.

BTW: notice the eye missing in the intersection case? The boolean modifier works on the object's volumes, but the monkey head is not a closed mesh, so the volume is not really defined. This may cause problems in some cases, so be aware of that.
EDIT: And as @stacker mentioned in the comments, since the boolean modifier works on the volume of the objects it might not work properly with a plane, at least when the edge of the plane is inside the volume of the other object.

UPDATE
There is no way to tell blender that it should take the other side of the object when using the boolean modifier set to Difference, since this is just the way the difference of two sets is defined: The difference of the sets A and B A\B are all points in A that are not in B. What points are in B is defined by the normal of your cutting plane; The normal points to the outside.
If you want the other half of the cube you have to flip the normal of the plane or set the boolean modifier to Intersect. The intersection of two sets A and B A^B is all points in A that are also in B. This is exactly the opposite of the difference.


How can I make a shader or change the scene lighting to make glass less reflective?

I think the basic node organization for glass is a mix between Glass and Transparency. The more your mix will tend to Transparency (Mix Shader value) the less it will be reflective. The Glass Roughness will make the glass more polished.

You can mix that with a Glossy Shader with a Layer Weight as factor if you want to add reflectivity on the normals for more realism, and same thing, play with the Layer Weight value.


The option is hidden in the Viewer Layer Properties panel. There you will find the Denoising Data checkbox. (In Blender 2.9x it's under Passes → Data.) Tick the checkbox and the Render Layers node will get some extra sockets for the Denoise node.


Get the location in world coordinates of a bone's head and tail while in pose mode

This simple script will print to the console and move two Empties to the location of the active bone in pose mode (last selected).

import bpy
from bpy import context

armature = "Armature" # change this to the name of your armature

tail = bpy.data.objects[armature].location + context.active_pose_bone.tail
head = bpy.data.objects[armature].location + context.active_pose_bone.head

print(tail, head)
bpy.data.objects['Empty.head'].location = head
bpy.data.objects['Empty.tail'].location = tail

You will need to have two empties in your scene and on a visible layer, named Empty.tail and Empty.head in order for lines 10 and 11 to work. If not comment out lines 10 and 11 with a #.

Lines 6 and 7 get the locations of the armature and the active bone's head and tail, then adds them together. bpy.data.objects[armature] accesses an object with the name specified in the variable armature. If your armature has a different name, change it in the variable defined on line 4.

Line 9 print(tail, head) just spits the two vectors to the console.

Lines 10 and 11 sets the location of the two named empties to the location of the head and tail of the bone. I found this way easier then copying numbers from the console.

Note that you need to be in pose mode for this to work. Also the armature can got be rotated or scaled in object mode.


Make a second texture that is a copy but is black everywhere except white where you want the shiny (gloss) and add that as a texture to influence the specular only in Blender Render material, or to control the amount of gloss node effect in Cycles material.


Ok, so there's apparently no command port in Blender. I needed one, so I've created an addon that implements this functionality.
It can be found on github:

Sources
Release

I hope, that someone else will find it useful, or worthy of improving, I'm open for ideas


world_to_camera_view incorrectly centering on object

There may be another issue here, but at least the matrix-vector multiplication order from object to world space is wrong, it should be the other way around:

coordinate3D = obj.matrix_world * bpy.data.objects[obj.name].data.vertices[blenderVertexIndex].co


How to repair cylinder mesh with misplaced vertices?

If your rocket is symmetrical you could delete the upper half of the vertices, add a mirror modifier and apply (for an easier selection, I would isolate the tip).

You are right, Gunslinger, here is a picture:


Can you turn a Simulation into Keyframes?

Yes, you can export fluid sim in alembic format (File -> Export -> Alembic) and import to different application with alembic support. It work similar than create shape key for every frame, but it do it smarter way.


Try this:

This will almost certainly screw up your Multires modifier, so apply it.
Select a vertex on the one half—say the left one—and hit Ctrl+L to select everything connected to it.
Delete it with X.
Move the boundary of the top section to align with the Z-axis.

You can try SX0 and then setting X to 0 in the transform properties, you'll probably still have some cleanup to do even if you use proportional editing.

Go out of edit mode and use a mirror modifier. (If I remember correctly, there's a Remove Doubles option you should use.)


Issues baking normals and ambient occlusion

as far as i can understand you have only one uv at the moment that gives you the colors on the mesh, you will have to create a second one, unwrap it (you can try and assist https://www.youtube.com/watch?v=scPSP_U858k), and bake your ao onto the second uv.

using two uv's can be a bit confusing (Multiple UV mapping in 2.8 eevee?)

good luck


Viewport rendered with some objects display in solid mode

You can use an Emission Shader, but you need to prevent it from contributing to the lighting : in Object Properties / Visibility / Ray Visibility, uncheck everything except "Camera".


Start Blender from the console with the '--enable-new-depsgraph' parameter. The Nodegroup will work now.


Shader: Rounded edge between the two intersecting faces?

There's an OSL bevel Shader for Cycles that I believe was originally written by the person who built Cycles.  Several people have been making adjustments to it and have been posting the results to the following thread on BlenderArtists.org  http://www.blenderartists.org/forum/showthread.php?329295-Bevel-shader
OSL Code
Paste the following code into a new Text Datablock in Blender, and use it in the script node of an OSL node tree:
void rng_seed(output int rng, int seed)
{
  int chash = seed;
  if (chash == 0) chash = 1;
  rng = chash * 30391861;
}

float rng_uniform(output int rng)
{
  float res = rng / float(2137483647) * 0.5 + 0.5;
  rng *= 30391861;
  return res;
}

void to_unit_disk(float x, float y, output float x_out, output float y_out)
{
  float r, phi;
  float a = 2.0 * x - 1.0;
  float b = 2.0 * y - 1.0;

  if(a > -b)
  { if(a > b)
    { r = a;
      phi = M_PI_4 *(b/a);
    }
    else
    { r = b;
      phi = M_PI_4 *(2.0 - a/b);
  } }
  else
  { if(a < b)
    { r = -a;
      phi = M_PI_4 *(4.0 + b/a);
    }
    else
    { r = -b;
      if(b != 0.0) phi = M_PI_4 *(6.0 - a/b);
      else phi = 0.0;
  } }
  x_out = r * cos(phi);
  y_out = r * sin(phi);
}

void make_orthonormals(vector N, output vector a, output vector b)
{
  if(N[0] != N[1] || N[0] != N[2]) a = cross(vector(1, 1, 1), N);
  else a = cross(vector(-1, 1, 1), N);

  a = normalize(a);
  b = cross(N, a);
}

vector sample_cos_hemisphere(vector N, float randu, float randv)
{
  vector T, B;

  make_orthonormals(N, T, B);
  to_unit_disk(randu, randv, randu, randv);
  float costheta = sqrt(max(1.0 - randu * randu - randv * randv, 0.0));

  return randu * T + randv * B + costheta * N;
}

shader node_occlusion2(
  color Effect = color(0),
  color No_Effect = color(1),
  int Mode = 0, /* 0: Concave (AO) 1:Convex (Wear) 2:Both */
  int InvertEffect = 0,
  float Distance = 0.2,
  int Samples = 1,
  output color Color = 0,
  output float Fac = 0,
  output normal outNormal = N
)
{
  int i, rng;
  float f, randu, randv, ray_t, hits = 0;
  vector ray_P, ray_R;
  normal hit_normal = N;
  float hit_dist;

  f = fmod(cellnoise(P*123456.0), 1.0);
  rng_seed(rng, int(f * 21374647));

  for(i = 0; i < Samples; i++)
  { randu = rng_uniform(rng);
    randv = rng_uniform(rng);

    ray_P = P;
    ray_R = sample_cos_hemisphere(-N, randu, randv);
    ray_t = Distance;

    if (!Mode)
    { if(trace(ray_P, -ray_R, "maxdist", ray_t)) {
            hits += 1.0;
            int HitNormal = getmessage ("trace", "N", hit_normal);
            outNormal = outNormal + (hit_normal);
        }
    }
    else if (Mode == 1)
    { if(trace(ray_P, ray_R, "maxdist", ray_t)) {
           hits += 1.0;
           int HitNormal = getmessage ("trace", "N", hit_normal);
           outNormal = outNormal - (hit_normal);
        }
    }
    else {
        if(trace(ray_P, -ray_R, "maxdist", ray_t)) {
            hits += 1.0;
            int HitNormal = getmessage ("trace", "N", hit_normal);
            outNormal = outNormal + (hit_normal);
        }
        if(trace(ray_P, ray_R, "maxdist", ray_t)) {
           hits += 1.0;
           int HitNormal = getmessage ("trace", "N", hit_normal);
           outNormal = outNormal - (hit_normal);
        }
    }
  }
  Fac = 1.0 - (hits/Samples);
  if(InvertEffect) Color = mix(No_Effect, Effect, Fac);
  else Color = mix(Effect, No_Effect, Fac);
  outNormal = normalize(outNormal);
}

Here's a render of many spheres that are all separate objects.  It works well in some cases but not always.


Material node - increase saturation one color?

you can separate by adding a math node, setting it to greater, and and add the solid color you want in the bottom input. Put your image texture in the top input and this will separate your image into black and white anywhere were there was blue (or any color you choose) will be black and the rest will be white. you can take the output of this node and put it into the saturation of a Hue/Saturation node. If you want to control the amount of saturation just put a math node between the Greater Than node and the Hue/Saturation node. I hope this helped you. :)


Here is where you set it:

It says 7.314, therefore the camera is 7.314 wide.

As to doing it in real-time, the python API you are looking for is camera.orthoscale to get the width of the camera.

Sample code (untested):

aspect_ratio = bge.render.getScreenHeight() / bge.render.getScreenWidth()
height = aspect_ratio * camera.orthoscale
top_right = camera.getAxisVect([width/2, height/2, 0.5])
bottom_left = camera.getAxisVect([-width/2, -height/2, 0.5])

Note that the 0.5's in the getAxisVect are to place the object slightly forwards of the camera to ensure it get's viewed.


Object won't move when I add Soft-Body physics

I figured it out, I need to press Playback and then "Set Start Frame." Didn't have to do that before so I don't know why I have to do that now. Hope they change this later one.


How do I become better at using blender?

First, try to think in terms beyond "good" and "bad" (good 3d art, good skills, good advice, become better...), a world of possibilities will open for you.
Don't follow tutorials blindly, stop wasting your life with them, most of them are crap, or made by want-to-be-entertainers who ramble but don't explain the tools, or the main concepts.
There is a manual for blender, use it! (yes, reading is still a great source of information). If you still insist on watching videos, then read about the tool you don't understand.
Set yourself a goal, a project that you want to do, and do it. Then do another.
Don't be afraid to fail, and fail again and keep failing until you find solutions. You will learn more from your own mistakes than following videos.
Start with the basic in small steps, until you reach a point where you don't know how to proceed, then ask specific questions on this site or others.


How do I recreate this translucent/subsurface material?

edit subsurface radius. this is the most overlooked sss settings in blender.
do note that before that you need to apply scale on model to get same results on every model that has this values.


Solution : I removed the flatpak version and install again using snapd !


Extra faces appear when I exit edit mode

Ok it appears that they were just hidden, all I needed to do is press alt + H


Trying to set transparency on the viewer Node

You don't need an ID mask, just use a transparent background for your scene and then composite using alpha over.

Enable film transparent,

Then use alpha over to combine the rendered image with the background:

The transparency from the glass should work fine.


Can't resize bones that have multiple children

To make bones more visible in the 3dview without altering there size you can use a mesh object as a custom shape, this mesh object can be any size you wish to make it, the initial size of the object will then be linked to the base scale of the bone.

If you have trouble finding bones, the outliner is a great place to find things. You can select an item in the outliner, delete it, rename it... ( RMB for context menu) It includes a search box to easily find items by name with search matches highlighted.

The little + next to an item will show children or other data like animation and materials, ⇧ Shift LMB on the + will expand all sub-items.


How do I make Freestyle ignore a specific edge, material or object?

You can exclude Freestyle lines on a per-edge, per-face, or per-object basis.

For edge-by-edge exclusion, you first mark specific mesh edges using Freestyle Edge Mark, and then use the Selection by Edge Types options in combination of the Exclusion flag.

By the same token, you can mark mesh faces using Freestyle Face Mark, and use the Selection by Face Marks for face-by-face exclusion of Freestyle lines.

Per-object line exclusion can be done by first adding objects to a group and then using the Selection by Group options.

See the Freestyle Line Set section of the online Blender manual for more detail on the three approaches:

https://www.blender.org/manual/render/freestyle/parameter_editor/line_set.html

UPDATE: Additional notes on edge-by-edge exclusion of lines

For example, if you want to draw silhouette lines except for those flagged by Freestyle edge marks, then follow the instructions below:

Enable the Inclusive option (that is the default).
Enable the Logical AND option (as opposed to the default Logical OR).
Turn on the Silhouette and Edge Mark toggles and also enable the X button next to the Edge Mark toggle.

The combination of these options indicates a condition like "silhouette lines AND NOT edge marks" as in a programming language.

There is a limitation in the Freestyle GUI that Logical OR and Logical AND cannot be used at the same time.

For example, suppose that you want to draw silhouette lines and crease lines but not those flagged by Freestyle edge marks.  In this case, you would need to specify a condition like "(silhouette lines OR crease lines) AND NOT edge marks".  This condition cannot be expressed by a single line set because the condition uses both logical AND and logical OR at the same time.  Instead you define two line sets, one for "silhouette lines AND NOT edge marks", and another for "crease lines AND NOT edge marks".  The two line sets are drawn one on top of another, so they are treated as if the two conditions were combined with logical OR.

Indeed edge-by-edge exclusion using Freestyle edge marks is a bit tricky to apply.  Inclusion of more lines by edge marks is much easier, and that is the most typical use case of edge marks.


How to merge multiple empties into 1 average empty

You can set the cursor to the midpoint of those Empties and create a new Empty at the cursor location:

Select your empties
Set the Transform Pivot Point to Median Point
Place the cursor at this middle point: Right Click to show the Object Context Menu > Snap > Cursor To Selected (or press Shift + S > Cursor To Selected)
Create the Empty: Shift + A > Empty


I want to combine several textures... Bump, displacement, diffuse, specular but I don't know the node combination. A screenshot would be nice

If i understood the question here the answer

With the powerful addon Node Wrangler in built in Blender you can set the node automatically.

Make a folder and paste all the images (Bump, displacement, diffuse, specular).

With the Principle BSDF Node selected Press Ctrl+Shit+T

A pop-up which need to access all the images made above folder. Select all (Press A)

Press Principle BSDF Setup and your done . Render it with F12


How do I fix certain parts of my character not moving with the armatures placed?

it is a weight paint error , i've checked the file and the part that is not moving has no parent , So
-re-parent the whole mesh with "envelope or automatic weight "
if it doesn't work :
-go to weight paint mode and do it manually
or :
-add theme to the vertex group with the bone name


Here is how you make a keyhole with all vertices connected.

1) Create a circle (say 32 vertices)
Stay in Edit Mode

2) Create a plane (also with 32 vertices)
Both the circle and the plane are a part of one object now.

3) Select both loops and connect them with Edge->Bridge Edge Loops
4) Almost done. All inner vertices are now connected into one loop.
5) You can now model you keyhole.

Summary: Edge loops work. It’s all quads.


The problem is that you are working in Local viewport.

You can swith from Local viewport to standard viewport and viceversa by pressing "/" key (on the numpad, or Shift+7). This will affect also the UV/Image editor (you can see the UVs only for the objects you see in local viewport).

The local viewport mode is useful because you can see only the selected objects, but you don't have to hide the other objects in the scene. Just select your object(s), press "/" and you see only them. Press "/" again and you will see all objects in the scene.


Why does Network Render require separate Master and Client roles?

While anyone can make use of network rendering, the main target is for small studios. Which would be the reason this design choice was made.

Imagine a studio with 10 artists, you setup a master and several slaves for the render farm. Each artist is then a client that sends render jobs to the farm, the master keeps track of all these jobs and which slaves are working on each task giving one central point to monitor all work being done by the farm. When the artists go home they can add their machine as a slave so it can keep working through the night. In the morning they can stop it as a slave and get back to their own work.

If each artist was also a master then they would all be fighting to get the slaves to do their work for them.

For a single artist this can be excessive or awkward but is really only a minor issue.


Use the Extrude option for curves. This let's you keep the SVG as adjustable vector art until you need to convert it to a mesh.

Import your SVG to Blender. Imported vector art normally comes in as a Blender curve. Depending on the complexity of your SVG, you may need to select all curves with the file and use cntl-J to combine them into a complex curve. Scale it to suit.
Select the SVG, and go to the Curve panel. The Curve panel offers a range of different options you can use to adjust the resolution, fill type or... lots of things.
Adjust Geometry > Extrude. This will extrude your SVG at 90-degrees to the plane of the SVG.
(Optional) Shape > Fill > Both. This might already be on Fill, but this will 'cap' closed curves in the SVG, creating solid pillars of your curve.
(Totally optional) Shape > Resolution > Preview U > [some number]. Curves have infinite resolution, but eventually you will probably need to convert the curve to a mesh. The 'U' number is the number of segments each line segment will be divided. Use this carefully if you have a combination of very long and very short segments. You may wish to subdivide long segments (or combine short ones) before you apply the 'U' value.
Have fun. Tip: You can adjust the extrude shape using another curve, providing an interesting way to shape your extrusion.

Demo video: Extruding SVGs


What is a good way to get rid of fireflies in renders? (cycles render)

Use the lastest version of Bleder 2.79.

You can find a denoising panel.

See the image:

See the link in Blender manual.


How to set the default duration of imported images in the VSE

The trick is to add all the images in one go using the Shift+A (Add Image) and Shift+Click each picture or press A if they are all in the same folder.  (Drag and drop doesn't seem to work the same way.)  Once you've inserted the images you will have a strip of one image per frame.  Select the strip and then press 'Y'.  You can then enter a number of frames to use for each image.  The result is a sequence of strips, one per image, all of the same length.  Make sure you have enough space on the current strip to the right of the insertion point to accommodate the new strips before pressing Y.

I'm unaware of any setting for this default value although mine was 26 frames so maybe there is a way.


It's a good Idea to restart the character and try to optimize the edge flow
Use retopology to fix the problems with the mesh (here is a very good tutorial for setting up retopology:https://www.youtube.com/watch?v=2hEHtKH55Us
Use the decimate-modifier and look if it gives you the results you want


Shape keys can be added and deleted through the Properties editor (the on the right ) under the Data tab in Shape keys :


Why do my vertices fade the further I zoom in?

The reason why the actual wire is partially hidden is because the actual geometry is affected by the Subdivision Surface Modifier and you see a modified version of the mesh, even in Edit Mode.
https://docs.blender.org/manual/en/latest/modeling/modifiers/generate/subdivision_surface.html

I'd suggest go to the Modifier Panel and enable 'On Cage' option of the Subdivision Surface Modifier by clicking the little triangle icon

or just disable the modifier temporary in order to affect how the mesh is visualized in Edit Mode.

The reason why zoom in/out affects those "fading" vertices is because blender is displaying partially wire inside of a mesh to improve viewport experience for vertices that would be quickly hidden in sharp angle view. This "inside" view is constant for viewport, but actual distances of vertices in viewport are changing.


How to disable motion blur on a single object in Blender 2.8 EEVEE?

The motion blur currently available in Eevee is camera based.

That means it compares the entire image between two frames and blurs all motion, it is not capable of blurring single objects.


Snap during transform can not snap to what I want

Solution in object mode :

Add an empty
Set snap to vertex option
Grab your empty to the needed vertex of the mesh to be moved
Shift+RMB to select the mesh to be moved additionally to the empty
Then grab them both to the destination


How to render ground reflections without rendering the ground?

Not an answer strictly... but...

Use a mirror modifier:

Works for Cycles and Eevee ; )
You can improve it for instance using UV parameters of the modifier.
If you shift its U to 1:

that can give a clue that you can use in the shader, to obtain this for instance:

to use it you can make a node group that you can plug into the alpha input of the principled BSDF (node group as you may have several materials).

The top line uses UV X coordinate (U) to look if under 1 (the mirrored part is over 1 because of the parameter in the modifier).
The bottom line uses Z coordinate to tune a progressive value from 1 to 0 as Z goes down.


Is it possible to have more fireflies at the same time I use more samples?

First I would recommend checking to see if you are using any small light sources. A sun should be fine but small spotlights and things of that nature can cause fireflies.
Blender Guru has a solution to fireflies. As to why the amount of samples cause more fireflies is strange,  but you are working with a complicated scene.
Blender Guru Fireflies


I want an arrayed object to be upright throughout a tapered spiral

I don't think you're doing anything funky..

The simplest way I can think of to persuade Blender to  respect the Normal, but ignore the Tangents of your curve is as follows:

In its Data tab > Shape panel, set the curve's Twist Method to 'Z Up'
Just as you have already, make a planar object, and give it array and curve modifiers:

As before, it tilts, but we're going to use it as a particle emitter, so it won't matter
Give this placeholder/emitter a Particle System with settings as follows:

All particles are emitted on frame 1
The same number of particles as the array count, evenly distributed, 1 per face.

And: ( my rendered object is called 'Mount')...

... emitting instances of your actual object, aligned to the emitter's Normal (but not its tangent axes)
The emitter planes are not shown in the final render... In my build, the viewport display sometimes needs kicking to refresh.. moving the current frame off 1 and back again does the trick.

This picture of the result also shows the working orientation of the green rendered mesh, with respect to its own object's local axes.. (adjust in Edit Mode)


you can edit written text via string game property but you need to assign it to your drawing property in this method, here is the code.

# import game engine modules
from bge import render, logic
# import stand alone modules
import bgl, blf

# create a new font object, use external ttf file
font_path = logic.expandPath('//C://Documents and Settings//Guillermo//Mis
documentos//Google Drive//Gproyectos//Proyectos con Blender//Zeyada.ttf')
# store the font indice - to use later
font_id = blf.load(font_path)
# we get the game property and assign it before drawing so we can change it always
cont = logic.getCurrentController()
chain = cont.owner['msg']

def write():
    """write on screen"""
    width = render.getWindowWidth()
    height = render.getWindowHeight()
    # OpenGL setup
    bgl.glMatrixMode(bgl.GL_PROJECTION)
    bgl.glLoadIdentity()
    bgl.gluOrtho2D(0, width, 0, height)
    bgl.glMatrixMode(bgl.GL_MODELVIEW)
    bgl.glLoadIdentity()

    # BLF drawing routine
    blf.position(font_id, (width * 0.2), (height * 0.3), 0)
    blf.size(font_id, 50, 72)
    bgl.glColor4f(1.0, 0.0, 0.0, 1.0)
    blf.draw(font_id,chain)

# set the font drawing routine to run every frame
scene = logic.getCurrentScene()
scene.post_draw = [write]

all you have to do is changing the owner property "msg" it will be drawn, you can also put a keyboard sensor and set the "msg" string as keystrokes log property so it will receive the keystrokes and display, them you don't need to connect it to the python controller but make sure that the code is always running, the code should be with the object that has the property "msg".


Yes, but it may be tricky to get a stack of modifiers that will work well for you modifiers. Here's an example with a simple target shape made with 2D Bezier curves getting warped in 3D space by a Lattice modifier:

The mesh created by the bezier object isn't going to play will with deformations, but the Remesh modifier will. But that won't work on something flat, so you need to use Solidify first. Give it a small thickness if you want the end result to still seem flat.

Depending on your shape, Remesh may need a larger Octree Depth, and sharpness tweaking.

Next, to fix the smooth shading around the edges, I added an EdgeSplit - the default options should work well.

Finally, the deform is done with a Lattice. If you aren't familiar with using a Lattice to deform objects, these are a little out of date, but still accurate: https://wiki.blender.org/index.php/Doc:2.6/Tutorials/Modifiers/Lattice/Shaping_a_Fork

If you don't need the level of control the Lattice gives you, you could also try the Cast modifier (with an Empty as the center of the virtual sphere it is being cast to):


List of un-assigned keys in Blender 2.69

I don't think it can be nice and practical to list all un-assigned keys, since there obviously are too many posibilities with combinations. Furthermore, same keys can be used in different modes and contexts without conflicts, which extends the possibilities even further.

However, as gandalf3 suggested, you can view all shortcuts in User Preferences > Input. Also, when switching Filter Type to Key Binding, it allows you to search specific key that is currently assigned:

If nothing is filtered, then congratulations, it hasn't yet been assigned to any operators among all contexts. You can use it 100% safely:


Background images will only be displayed in:

Camera Prespective view (Numpad 0)
Any of the preset Orthographic views:

Front/Back (Numpad 1 or Ctrl Numpad 1)

Right /Left (Numpad 3 or Ctrl Numpad 3)

Top/Bottom (Numpad 7 or Ctrl Numpad 7)

To toggle between Prespective and orthogonal view use Numpad 5


how to make "operator_menu_enum" keep the selected value displayed

This feature isn't supported by operator_menu_enum, the purpose of this is to be a submenu containing options. Not a persistent drop-down selection box, you may be better off to add an update callback to an enum property, then selecting an option can run some python code.

What you wan't can be done, but I think you're looking in the wrong place.

Simple answer:

You could replace the row.operator_menu_enum line with this.

    if bpy.props.selectedStuff:
        label = str(bpy.props.selectedStuff[1])
    else:
        label = "Stuff list"
    row.operator_menu_enum("stuff_list.menu", 'stuffList', text=label)

Longer answer:

it looks like this is not using the API correctly. You can't easily access operator properties from a panel (when the operator isn't running), you're better off to add a property-group to the scene that contains all your tool properties, then have the operators invoke function initialize from these settings (this is how most Blender operators do this).

Note:

Setting attributes in bpy.props is bad practice, just store this in the script. (as a class attribute for example)


This issue has been resolved by downloading the latest build (2.82-a) found at:
builder.blender.org/download/


From what I can see, this is exactly the behavior you are specifying: You have two boxes with active dynamics, so both will react to gravity. Joining them with a hinge will only make them fall together.
The hinge must connect to something fixed in the world, if you want it to act the way you want.


Able to mask out the eye but the glowing part of it

In your node group change the way the matte is mixed with the glow. You want to add black to the matte in the shape of the plane:

Then add the result to the rest:


From batFINGERS' answer:

  Instances can be obtained from the depsgraph.
  https://docs.blender.org/api/master/bpy.types.DepsgraphObjectInstance.html#module-bpy.types

  There is a section in

  https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Scene_and_Object_API

So, bpy.context.evaluated_depsgraph_get().object_instances is a replacement for bpy.context.object.dupli_list


Maybe another way you could use bezier curves, modify your curve until you get your desire form and transform it into mesh, so you can extrude after that.


How do I create a property in a panel to edit particle systems?

It would be something like:

particles = obj.modifiers.get("ParticleSystem 1")
if particles:
    row = layout.row()
    row.prop(particles.particle_system.settings, "count")

or

particles = obj.particle_systems.get('ParticleSystem')
if particles:
    row = layout.row()
    row.prop(particles.settings, "count")


Blender 2.8: Camera Lens Shift and Background Images Offset

Blender: 2.81

I just installed the newly released blender 2.81 and my problem seems to be gone. Now, the background image always sticks centered to the camera (as expected), but you are still able to give a background image offset (x/y).

Blender: 2.8

However, I also figured out a solution for my problem in Blender 2.8. The offset depends on the camera resolution ratio. Assuming the render resolution X is larger than the render resolution y (e.g. 1920x1080), the math to solve my issue is:

For Background Image Offset X:

There is no magic
A background image offset X of 1 is a shift by the resolution width to the right.
A background image offset X of -1 is a negative shift to the left.
The values between 0 and 1 are a fraction of the render resolution width, e.g. 0.1 = 10%, 0.5 = 50%, 0.75 = 75%, ...

For Background Image Offset Y:

This is a bit more complex, because the shift is related to the
render resolution
First, you need to divide the render resolution height by render resolution width to get a ratio (rr = rh / rw)
Second, you have to divide your camera lens shift y value by the calculated ratio (rr)
Third, you need to double this new value (for some reason?!)
Finally, you can set the newly calculated value to your background image offset y property

  Note: If the resolution height is larger than the resolution width, the solution from above is just flipped. Steps from Background Image OffsetX need to be done for Background Image OffsetY and vice versa.


Why text object can't align to Y axis accurately?

Your location is based upon you origin (little orange dot)

If this is offset from your geometry then you will have problems in setting the exact location through this method. Also with text the origin will be the same location, but per character/font/style you may need it to be in a different location. There are some other nuances for example, here the default Bfont drops the lower case characters under the origin.

So you can set it up (by adjusting your origin), but this will not be automatically applied to each new text object.

So in your specific example (where you have converted the text to a mesh) adjust the origin to the lower left of the P and it should just go to the world origin if you set the transform to X=0, Y=0. NB Moving Origins is easy now in object mode, press Options and select Origins and then you can simply move the origin of the object. I would recommend doing this by snapping to vertex.


How to move all parts to the center, based on selected object

It sounds like you need to adjust the object pivot point? A lot of rotation and centering problems can happen if an object's pivot point is way off. In the image below, there is a gun and three separate objects. The gun is the parent, and the objects are children. You can see how the gun rotates around the pivot point, and the children follow.

Using the 3d cursor and the "Set Origin to 3D Cursor" option, you can place your object's pivot point wherever you like, including the barrel or sight. I hope this helps.


Determining the object detected in sensor

Nvm, found the answer:

it would be:

if collision.positive:
        obj1 = collision.hitObjectList[0]


So always try to spot the repetitive pattern, which seems to be this one:

Recreate it, create a plane, cut it, bevel, cut again:

Move the faces on the Y axis, duplicate and rotate 180°:

Subdivide and clean a bit:

Array on the X and on the Z axis:

Give it a Simple Deform modifier/Bend mode:

Rework the mesh:

Give it a Solidify modifier, a Bevel modifier, a Subdivision Surface modifier, scale on the Z axis, apply the modifiers you want, merge the vertices, etc...


EDIT: haha, Leander beat me to it by 3 minutes with the same kind of answer :)

For the reference image type of helmet (a stretched sphere) I definitely would start with a cube that has Subsurf modifier applied:

After that, just add a new Subsurf modifier to it and it's smooth as silk and still quite easily editable:


I actually worked on a very similar project, and was frustrated by how difficult it was. I'll share the things I tried, and hopefully it will help.

EDIT: I remembered that I also had some reasonable degree of success by using image processing to convert the elevation maps into a grayscale height map, and then using the displace modifier to displace a high-poly plane. This is not a straightforward technique, though, and is very difficult to gauge the accuracy of. There's lots of weird math going on between the color of a pixel and the number representing it. Depending on how accurate/precise you need to be, this might be a tolerable option.

I had a hand-drawn contour map that I was fortunate to find easily scanned and converted to vectors. These vectors were relatively trivial to import into Blender as polylines. It looks like you already have lines in Blender. If they are curves, it'd be better for them to be polygon lines. But this is where the trouble began.

There are two main problems you're trying to solve. One is to fill in-between the contours with polygons. Secondly, we want those polygons to be reasonably well organized, so that they can be textured easily and rendered predictably.

I tried many different techniques to bridge from one contour to the next and the short answer is it can't be done in Blender. The primary hurdle with using the tools in Blender, is that the vertices used to define the lines need to be very carefully positioned in relationship to each other. Otherwise you get some very strange, and quite unhelpful results (as you might have experienced). It's possible to do this manually in Blender, but that is (as you might imagine) an ENORMOUS amount of work.

The only reasonable solution I came up with was Autodesk Revit. I think it's free, or there's a free trial, something like that (this was many years ago). As with most Autodesk products it's a pain-and-a-half to find and get installed. And once you do, it has more than its fair share of bugs. To make a long story less long, I loaded an image of my contours (you might be able to import yours, IDK), traced a line for each elevation, and then Revit was able to connect them into a 3D terrain surface. This is non-trivial, but unfortunately is beyond the scope of this website (because it's not Blender). If you need help with Revit, please get in touch with me. We can find a way to exchange contact info.

Unfortunately, the topology of the resulting mesh is horrendous, and makes texturing, sculpting more detail, and rendering quite difficult.

One of my early attempts to correct the topology showed some promise and might suit your purposes. I created a high-quality cloth simulation and draped a high-poly cloth over the mesh that came out of Revit. This is time consuming because of the simulation calculations, and it's prone to artifacts because the cloth can wrinkle in ways that don't represent the terrain, but it doesn't require any manual labor on your part. It's also limited in the kind of terrain it can accurately cover. High-relief terrain will be more difficult.

It looked like this: https://www.youtube.com/watch?v=lMH6fAW1G_4

What ultimately ended up working was actually using the shrinkwrap modifier to project a high-density plane directly down onto the mesh that came out of Revit. The right settings were important, though. Instead of using "Nearest Surface Point" or "Nearest Vertex," use "Projection." This will basically project the vertices of your high-poly mesh in exactly one direction (I did down, because I was already thinking in terms of laying a sheet on it) until they touch your target mesh. This ended up having reasonably good results, but required a lot of tweaking to get the right settings, and a fair amount of cleanup afterward.

I hope that helps.


Batch exporting scene collections or selected objects using glTF-Blender-IO

Approach to export collections using unlink and link methods
You can temporarily .unlink() all collections from the root level, then (re-)link() one by one to the scene level in order to export them and link them all back at the end of the script.
Tested this approach for a huge scene using the alembic export operator and it was pretty fast, surprisingly. For convenience I added a col_level integer to determine how many (sub-)levels of collections are going to be exported to gtlf or glb files:
import bpy

col_levels = 2                          # Levels to export
scn_col = bpy.context.scene.collection  # Root collection

def file_name(s):
    '''Return valid file name from string'''
    return "".join(x for x in s if x.isalnum())

def col_hierarchy(root_col, levels=1):
    '''Read hierarchy of the collections in the scene'''
    level_lookup = {}
    def recurse(root_col, parent, depth):
        if depth > levels:
            return
        if isinstance(parent,  bpy.types.Collection):
            level_lookup.setdefault(parent, []).append(root_col)
        for child in root_col.children:
            recurse(child, root_col,  depth + 1)
    recurse(root_col, root_col.children, 0)
    return level_lookup

# Root objects (in case)
scn_obj = [o for o in scn_col.objects]

# Lookups (Collections per level and Parents)
lkp_col = col_hierarchy(scn_col, levels=col_levels)
prt_col = {i : k for k, v in lkp_col.items() for i in v}

# All collections to export
candidates = [x for v in lkp_col.values() for x in v]

# (1) Unlink all Collections
for c in candidates:
    prt_col.get(c).children.unlink(c)

# (2) Export root objects (optional)
if scn_obj:
    bpy.ops.export_scene.gltf(
        filepath="/tmp/{}.glb".format(file_name(scn_col.name))
    )
    # Unlink objects of master collection
    for o in scn_obj: scn_col.objects.unlink(o)

# (3) (Re-)link collections of choice to root level and export
for c in candidates:
    # (Re-)link collection
    scn_col.children.link(c)
    # Export collection
    bpy.ops.export_scene.gltf(
        filepath="/tmp/{}.glb".format(file_name(c.name))
    )
    # Unlink collection
    scn_col.children.unlink(c)

# (4) Reset all back
for o in scn_obj: scn_col.objects.link(o)
for c in candidates: prt_col.get(c).children.link(c)

Note: The script is an initial proof of concept.

Operator to batch export collections
The core idea can be converted into an add-on using the famous ExportHelper class. Have a look into Templates > Python > Operator File Export in the Text Editor. Following add-on adds a new entry to the File > Export menu. The operator comes with the most important export settings as well as a level integer to export Collections to single gltf/glb files:

# ##### BEGIN GPL LICENSE BLOCK #####
#
#  This program is free software; you can redistribute it and/or
#  modify it under the terms of the GNU General Public License
#  as published by the Free Software Foundation; either version 2
#  of the License, or (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program; if not, write to the Free Software Foundation,
#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>

bl_info = {
    "name": "Batch export glTF/glb files",
    "author": "brockmann",
    "version": (0, 2),
    "blender": (2, 91, 0),
    "location": "File > Import-Export",
    "description": "Batch Export Collections to glTF/glb",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": "Import-Export"}

import bpy
import os

from bpy_extras.io_utils import ExportHelper
from bpy.props import (BoolProperty,
                       IntProperty,
                       StringProperty,
                       EnumProperty,
                       CollectionProperty
                       )

def file_name(s):
    """Return valid file name from string"""
    #return "".join(x for x in s if x.isalnum())
    return "".join( x for x in s if (x.isalnum() or x in "._- "))

def col_hierarchy(root_col, levels=1):
    """Read hierarchy of the collections in the scene"""
    level_lookup = {}
    def recurse(root_col, parent, depth):
        if depth > levels:
            return
        if isinstance(parent,  bpy.types.Collection):
            level_lookup.setdefault(parent, []).append(root_col)
        for child in root_col.children:
            recurse(child, root_col,  depth + 1)
    recurse(root_col, root_col.children, 0)
    return level_lookup

class SCENE_OT_batch_gltf(bpy.types.Operator, ExportHelper):
    """Batch export collections to glTF/glb files"""
    bl_idname = "export_scene.batch_gltf"
    bl_label = "Collections to glTF/glb"
    bl_options = {'PRESET', 'UNDO'}

    # ExportHelper mixin class uses this
    filename_ext = ''

    filter_glob: StringProperty(
            default='*.glb;*.gltf',
            options={'HIDDEN'}
    )

    # List of operator properties, the attributes will be assigned
    # to the class instance from the operator setting before calling.
    batch_export_format: EnumProperty(
        name='Format',
        items=(('GLB', 'glTF Binary (.glb)',
                'Exports a single file, with all data packed in binary form. '
                'Most efficient and portable, but more difficult to edit later'),
               ('GLTF_EMBEDDED', 'glTF Embedded (.gltf)',
                'Exports a single file, with all data packed in JSON. '
                'Less efficient than binary, but easier to edit later'),
               ('GLTF_SEPARATE', 'glTF Separate (.gltf + .bin + textures)',
                'Exports multiple files, with separate JSON, binary and texture data. '
                'Easiest to edit later')),
        description=(
            'Output format and embedding options. Binary is most efficient, '
            'but JSON (embedded or separate) may be easier to edit later'
        ),
        default='GLB'
    )

    batch_export_copyright: StringProperty(
        name='Copyright',
        description='Legal rights and conditions for the model',
        default=''
    )

    batch_export_image_format: EnumProperty(
        name='Images',
        items=(('AUTO', 'Automatic',
                'Save PNGs as PNGs and JPEGs as JPEGs.\n'
                'If neither one, use PNG'),
                ('JPEG', 'JPEG Format (.jpg)',
                'Save images as JPEGs. (Images that need alpha are saved as PNGs though.)\n'
                'Be aware of a possible loss in quality'),
               ),
        description=(
            'Output format for images. PNG is lossless and generally preferred, but JPEG might be preferable for web '
            'applications due to the smaller file size'
        ),
        default='AUTO'
    )

    batch_export_levels: IntProperty(
        name='Collection Levels',
        description='Set the levels of collections',
        default=2
    )

    batch_export_materials: EnumProperty(
        name='Materials',
        items=(('EXPORT', 'Export',
        'Export all materials used by included objects'),
        ('PLACEHOLDER', 'Placeholder',
        'Do not export materials, but write multiple primitive groups per mesh, keeping material slot information'),
        ('NONE', 'No export',
        'Do not export materials, and combine mesh primitive groups, losing material slot information')),
        description='Export materials ',
        default='EXPORT'
    )

    batch_export_colors: BoolProperty(
        name='Export Vertex Colors',
        description='Export vertex colors with meshes',
        default=True
    )

    batch_export_cameras: BoolProperty(
        name='Export Cameras',
        description='Export cameras',
        default=False
    )

    batch_export_extras: BoolProperty(
        name='Export Custom Properties',
        description='Export custom properties as glTF extras',
        default=False
    )

    batch_export_apply: BoolProperty(
        name='Export Apply Modifiers',
        description='Apply modifiers (excluding Armatures) to mesh objects -'
                    'WARNING: prevents exporting shape keys',
        default=False
    )

    batch_export_yup: BoolProperty(
        name='+Y Up',
        description='Export using glTF convention, +Y up',
        default=True
    )

    def execute(self, context):

        # Get the folder
        folder_path = os.path.dirname(self.filepath)
        scn_col = context.scene.collection

        # Lookups (Collections per level and Parents)
        lkp_col = col_hierarchy(scn_col, levels=self.batch_export_levels)
        prt_col = {i : k for k, v in lkp_col.items() for i in v}

        scn_obj = [o for o in scn_col.objects]
        candidates = [x for v in lkp_col.values() for x in v]

        if not candidates:
            self.report({'INFO'}, "Nothing to export")
            return {'CANCELLED'}

        # Unlink all Collections and objects
        for c in candidates:
            prt_col.get(c).children.unlink(c)
        for o in scn_obj:
            scn_col.objects.unlink(o)

        # (Re-)link collections of choice to root level and export
        for c in candidates:

            scn_col.children.link(c)

            fname = file_name(c.name)
            fpath = os.path.join(folder_path, fname)

            bpy.ops.export_scene.gltf(
                filepath = fpath,
                export_format = self.batch_export_format,
                export_copyright = self.batch_export_copyright,
                export_image_format = self.batch_export_image_format,
                export_materials = self.batch_export_materials,
                export_colors = self.batch_export_colors,
                export_cameras = self.batch_export_cameras,
                export_extras = self.batch_export_extras,
                export_yup = self.batch_export_yup,
                export_apply = self.batch_export_apply
            )

            scn_col.children.unlink(c)

        # Reset all back
        for o in scn_obj:
            scn_col.objects.link(o)
        for c in candidates:
            prt_col.get(c).children.link(c)

        return {'FINISHED'}

# Only needed if you want to add into a dynamic menu
def menu_func_import(self, context):
    self.layout.operator(SCENE_OT_batch_gltf.bl_idname, text="glTF Batch Export Collection (.glb/gltf)")

def register():
    bpy.utils.register_class(SCENE_OT_batch_gltf)
    bpy.types.TOPBAR_MT_file_export.append(menu_func_import)

def unregister():
    bpy.utils.unregister_class(SCENE_OT_batch_gltf)
    bpy.types.TOPBAR_MT_file_export.remove(menu_func_import)

if __name__ == "__main__":
    register()

    # test call
    #bpy.ops.export_scene.batch_gltf('INVOKE_DEFAULT')

For versions pre 2.91, replace the batch_export_materials property (line 117) using:
    batch_export_materials: BoolProperty(
            name='Export Materials',
            description='Export materials',
            default=True
    )

See the actual revision for 2.83: https://blender.stackexchange.com/revisions/175968/7


Saving projects to more than one file or path

I am not aware of any way to do that by default. That's why wrote a little add-on for you.

The add-on allows you to create a list of paths that the file should be saved to. Then every time a render is written to disk it is automatically copied to the specified paths.

The add-on can be downloaded here: https://github.com/oweissbarth/blender_multisave/releases/download/0.0.1/multisave_0_0_1.zip

To install the add-on click on "Edit" > "Preferences" > "Add-ons" > "Install..." and select the downloaded zip file and click "Install Add-on". Then activate the add-on by clicking on the checkbox next the its name.

The add-on will then appear in the properties editor in the output tab as its own panel called "MultiSave". You can add a new path to save to by clicking the "plus"-icon.  You can change the path of an item by double clicking it. And finally you can remove an item by selecting it from the list clicking the "x"-icon.

The source code is on github: https://github.com/oweissbarth/blender_multisave/


Blender sets Compute Device (CUDA) but doesn't use it for actual render (on EC2 GPU Instance)

I found one more setting to check that sets Blender to use CPU. I rendered using this script(gpurender.py):

import bpy
bpy.context.scene.cycles.device = 'GPU'
bpy.ops.render.render(True)

Command-line was:

blender -b file.blend -E CYCLES -t 0 -o `pwd`/outpre -P gpurender.py

If you check in python, bpy.context.scene.cycles.device will probably be CPU. I've tested and this uses the GPU on my EC2 instance.


Any idea whats going on with these back legs?


How to make a ''Follow Curve'' animation more harmonious?

Undo the parenting that you did with CTRL + P. It's handy, but it's limited.

Then select the camera and go to constraints. Select constrain "Follow path".

Then choose the curve as target, in the constraints menu.

Now you can select the curve and go to the "data" tab(the one that looks like a curve).
Under "Path animation" you can animate how fast and far the camera will move on the curve.

If you select the camera, you can animate the rotation as a normal animation(You can reset the position of the camera with "alt + g" to snap it to the curve).


How to make the strings of a guitar connect with the pegs?

Well you could use curves with a curve modifier and an Array modifier

Add Your curve:

Adapt your curve:

Add a new cylinder and assing it a curve modifier and an array modfier:


How to keep two separate UV maps when merging two objects into one?

On each object, prior to merging, give it an additional UV map with the name of the other object's UV map.  After merging the objects, it will merge these individual UV maps.  Although note that when you create an additional UV map, it will have the same UV values as the selected UV map, so you might want to do whatever you want to these-- there's no such thing as being unmapped in some map, that just means UV 0,0.


Animation Problem: Baking an Action creates a bad scaling animation

You need to delete all the scale keyframes of the bone called DEF-spine.006.
Also, you've keyframed the scale of several bones that are its parents (neck bones called DEF-spine.005 and DEF-spine.004), so you either need to disable the DEF-spine.006 Inherit Scale option, or you need to delete the scale keyframes of these other bones.
Also, make sure they are all at a scale of 1 (AltS).


Array along a curve that is made up of loose parts

You can't use multiple, separate curve segments to curve modify an object.  The curve modifier will only use the first curve it finds.  This is just not a technique that works with Blender.
You can create divisions between barriers by giving it both a relative and a constant offset:

If you want regular intervals of undivided, divided, you can have a relative array followed by a relative + constant array:

You could make a boolean cutter, with a curve modifier to follow the same curve, and use it to cut shapes out of your boundary with a boolean modifier:

It wouldn't be impossible to make an array that followed multiple curves-- you'd need to UV offset the arrays, then use the UV as a mask texture for a vertex group edit modifier to divide the array into multiple bits with different vertex group weights, then use those vertex groups to specify which particular curve object to follow for a particular bit of the array.  Not impossible.  It would be complicated and totally impractical though.


Mimic lightning in Blender's video editing mode

Blender VSE has a range of color effects you can apply on strips.
The simplest :

Select your strip
In the properties region > Filter, change the value of Multiply to change the bightness

Then you have modifiers:

In the Properties region > Modifiers > Add Strip Modifier, try :

White Balance
Bright/Contrast
Curves

Finally you have effect strips:

with your strip selected, hit shift+A (or click on "Add")
in Effect Strip, try :

Glow, then change its parameters in the properties region > Effect Strip
Color, then  set the blend mode to "Add" (in properties region > Edit Strip) and change the color in Effect Strip.


I know your question is ancient, but I've just hit the same problem, and yours was the closest matching thread to my circumstances - Cycles running out of VRAM on render when you have already checked Subsurf doesn't have higher Subdivisions on Render vs viewport.

My VRAM "leak" was off-camera objects. It appears viewport Cycles render only loads the objects currently on-screen into memory, while Render time everything not explicitly hidden in outliner in the Rendered layers enters VRAM.

Given you mentioned many objects, quickest fix is to use Camera Cull (think introduced Blender 2.76) ticking it under Scene> enable Simply > Tick Use Camera Cull. Then tick "Use Camera Cull" under all the possibly offscreen object's Object panel > Cycles Settings.
Provided you're not too fussed about off-camera objects casting shadows/reflections from far off, simply tick the Use Camera Cull on one object, then select all other objects with the initial object as Active and use the "Copy Custom Properties" button (installed from external script by  scorpion81: http://blenderartists.org/forum/showthread.php?316484-Addon-Copy-Custom-Properties), which will tick this on all objects instead of doing it one-by-one.


Blender 2.8: Target UV map is half the size of the source UV map

Solved this myself by some experimentation. What worked was to isolate the parts in a previous save before joining parts and check each mesh for Cleanup issues. I first checked for loose geometry and then to merge vertices or as they were called in v2.79 duplicated vertices. I did find issues. Not a lot but a few more than I expected to. I also checked for scaling and rotation issues but didn't find any.The last thing I did was to add 1 pixel's worth for margins. I baked and all went as expected with the target bake matching the source UV map whereas before the target UV map had its own mind and resembled little of the source. I'm including the redo bake of the house_parts uv map just to show it worked.

So in conclusion what I believe was at issue was the mesh irregularities. I'm concluding as a newbie (you can see my site to determine my skill level at All Aboard) that if baking is a goal that the mesh parts be free from any defects. Seems a rather obvious conclusion but in my situation there were a number of parts and I thought they all had been checked. The problem I had was nothing in the problem I listed above suggested there could be mesh issues. So lesson learned.

Here's the bake redo.


Is it possible to visualize the ray paths in the 3D viewport?

I've made a tutorial for you to explain all the steps.

The essential part is that you can't simply mirror a camera along an axis you need to parent the camera to an object/empty first and then operate on the parent to mirror it.
The video show other tricks like "clear parent inverse" to align a plane on the same camera plane.
Also "Copy Attribute" addon was used to copy the rotation (but you can do it manually)

Hope this answer your question if it does upvote :)


Having repeating problems with hotkeys and mouse controls, how can I fix them?

ESC Required

One possibility would be that you've accidentally activated a selection or an operator awaiting further input?

In this case the Header of your 3D View might change to something like:

Example for Knife Tool

ESC would cancel such operations.

Possible Solution

On Windows you can have different keyboard layouts and switch between them by pressing Left Alt-Shift which happens very easy when using Blender.
If this is the reason change the Hotkeys in Windows: Control panel / Region & Languages / Keyboard & languages / Change keyboard / Advanced key setting

Numeric Input

On my machine the numeric block is independent from whether or not the NumLock is active it never switches the layers as the normal digits would do. The option Emulate Numpad in the User Preferences / Input would make the main keys 1 to 0 to switch the Views Orientation. But it's never the other way around.


Flip Normals

(re the title "How to flip normals")

In edit mode, select the faces you wish to flip normals and

Mesh > Normals > Flip Normals


The problem was that I was using unapplied modifiers on the objects. To apply the modifiers to so many objects, I used the command Alt+C while having all the objects selected. Then used Ctrl+J to join like normal.


How to make non-linear movements with a Follow Path constraint?

The Evaluation Time property is keyframable, you can shape its F-curve to any function you like.
Select your bezier curve object, in the graph editor and expand it to show the Evaluation Time curve (add a keyframe if necessary if it doesn't show by default).
Under the Modifier panel add a Generator modifier, change poly order to $2$, and adjust the function to get the desired speed.


Help with add-on to auto save image when I save .blend

The problem is that the handler isn't persistent, so it will be registered when you first register the add-on, but as soon as you open a file it'll be gone again. Annotate it like this to make it work:

@bpy.app.handlers.persistent
def save_external_images(dummy):
    for img in bpy.data.images:
        print('Saving', img.name)
        img.save()

For more info, see the Blender API documentation.


Andrew Price did a tutorial on modeling a 747 where he used orthographic drawings of the plane as backgrounds in the scene and then modelled over the top of them.  The backgrounds can be associated with the view direction.  He also suggested in his tutorial a web repository of ortho drawings that you can goto for different vehicles.  I think the images were free, but I'm not sure.
Andrew goes through laying out and sizing background images, drawing over them and the other steps involved in constructing a model using this approach-which you see frequently in industrial design.
The advantage of this approach as opposed to just using reference images, is that it gives you dimensionally accurate references for laying out your meshes, eliminating a lot of the guesswork in determining sizes and proportions of elements in an object-especially if the camera angle and lens make those difficult to gauge.
As you gain experience and proficiency, you'll be able to rely on your memory more and incorporate your own ideas into the process.
Experts like Ron Cobb and Syd Meade can conjure incredible levels of detail and accuracy from their grey matter by virtue of being able to understand the interrelationships of geometry in their subjects and having exceptional control and discipline in their creative processes. So as to whether you can do well enough with reference images, I'd say that depends entirely on you and what you're trying to accomplish
But if you were a Syd Meade or Ronn Cob or John Laseter, you'd know it.  For the present, you should use the sketch layout (blueprint method) of modeling because it gives you the most opportunity to study how geometric shapes go together to create forms.
Where reference images really come in handy is in understanding the effects of light through different materials, how cameras and optical effects add impact and how composition creates drama in a scene.


You can use the Python Image Library (PIL) for instance, there's a Python 3k port:
https://github.com/gpolo/pil-py3k and https://github.com/sloonz/pil-py3k

or Pillow, which is also a PIL fork:
https://pypi.python.org/pypi/Pillow/2.2.1

Example code (for original PIL though):
http://www.daniweb.com/software-development/python/code/216637/resize-an-image-python

As PIL supported differnt interpolation techniques, all of the above should offer the same (or more).

You could also try without any extra modules, by saving the image in blender to another file using Image.save_render(). Note that this method can be used on any image, it doesn't save the rendered image only (render stands for render settings, the render settings of the given scene will be used to save the file. It ignores the resolution settings however. To change scale, you needed to import the saved image again (so that .pixels isn't empty, which is the case for render results), then call Image.scale() and save again. But you can't specify an interpolation mode.


Can't see the alpha/texture of sculpting brush when changing size

You need to enable the Falloff visibility in the Tool settings. You can access it in the header of the 3D view while sculpting or in the Tools properties in the properties editor.

Arguably the tooltip and the panel in which you access the overlay properties are misleading.
You can also change the opacity there. Enabling the Brush icon button will remove the overlay once you have clicked so it doesn't cover your mesh while sculpting.


Rendering multiple layers, missing background

Your model is receiving purple colour from the world material settings. There are two ways of dealing with this.

Compositor Method - If you simply want to add a background behind your render, you could change the world colour to white or anything else, and in the Compositor, plug in the render result into the bottom input of an Alpha Over node, and simply set the colour of your background in the other input setting. In your case, this step would come after your freestyle composite so you'll be adding a second Alpha Over.

Shader Method - If you want your actual scene background to have a different colour from what's being cast onto the objects, then in your world material, add a second Background shader. Connect this into a Mix shader along with the original Background shader. Then add a Light Path node and connect its "Is Camera Ray" output into the factor of the Mix node. And voila, now basically the colour on the top input of the mix is the one that the objects will receive but is not visible to us, and the second input is the one that we see but won't affect the scene.

Hope that makes sense! :)


Render is all gray, tried multiple things

You're getting a grey screen, because all your objects are set to be visible but not render.

If you check the outliner, you'll see that your "Skybox" object, "Bola" object as well as the spheres parented to the armatures are all set to not render (the camera icon is greyed out).

For each item that should be rendering, click the camera icon beside each one in the outliner.


Do a full render for what I am seeing without changing the default camera?

Press Numpad 0 to view what the camera is seeing, select the new camera and press G Z Z (Which means move the camera along its own Z axis), move the mouse until you get the desired framing (like if you put a real camera closer or far from the subject) and confirm with left click.

You will get the same framing of the viewport only if the viewport and the camera have the same focal lenght (both are 50 mm as default).


Is it possible to create duplicates of a mesh, that can be deformed and used as blendshape targets?

I assume you're talking about the blendshapes like these available in Maya (example tutorial: https://www.youtube.com/watch?v=WtfYPxhLO30). If so I'll show you how to do it in Blender on the same example.

Create a mesh, duplicate it 3 times and make some deformations on the duplicates.

Select all the deformed objects and then the base object. Then click on the down arrow in a Shapekeys panel and choose Join as Shapes option.

You have now all the deformed shapes applied to the base model.


You have overlapping faces in your model. You need to delete the ones you don't want.

If you use the dots in face select mode as a guide, it should be hard to find and delete them.

It looks like you may also have duplicated vertices, so I would suggest also using the remove doubles tool on your model to get rid of them.


How to reverse all animations, physics and simulations?

This can be done using the Video Sequencer Editor.

In the Render tab, scroll down to Post Processing and make sure Sequencer is checked.

Go to the VSE.

Click Add -> Scene -> Scene

In the VSE's Properties panel, scroll down to Filter and make sure Reverse is checked.

Go back to the default window layout (select Default where you selected Video Editing in the second step above), and render your animation.

During render, the original frame number will be displayed, counting down from the max to the min number. After render but before saving to file, the image will be passed through the VSE, and the file name will be changed appropriately.

As for the motion blur, it can be made to appear reversed by setting Position to Start on Frame and the Shutter Curve to fall from the upper left corner to the lower right corner.
Position defines when the shutter opens in relation to the frame's start time, and the shutter curve defines how it opens and closes. I also got slightly more pleasing results setting Shutter Type to Top-Bottom and Rolling Shutter Duration to a high value, though the difference is marginal.

The animation below moves the ball from the top left corner to the lower right corner, and was reversed by the above method to appear to move from the lower right to the top left.


GPU render with multiple cards: Does card order matter?

So I just tested this:

No, card order does not make a difference. Doesn't really matter which one is set as system (if the system is doing nothing) or to which the monitors are plugged. The render times were off by fractions of a second (BMW benchmark scene with 2 cars).

Both my cards are in PCI Express 3.0 at x16 slots.


Create proper UV islands without removing vertex doubles

Select the edges you want to be sharp, press Ctrl + E, mark sharp. Add modifier: Edge Split. Check Edge Angle to do it automatically. Check Sharp Edges to do it manually. Check both for a combination.

You can later also select all edges you marked sharp (use the space search function, I don't know what menu it's under), then mark them as seams if you want. Seams tell blender where to separate geometry. Usually, this is where sharp edges are, in order to hide seams on textures.


Unable to move a mirrored part of an object

A mesh data is fed through the modifier stack from top to bottom, and what's accessible through Edit mode is only the original data, not the result of the modifier stack. Modification of a modifier's output is only possible by applying it first, or through another modifier lower down the stack.

In your example, vertices generated on-the-fly by Mirror modifier can't be moved past the modifier's mirror axis, even if Clipping is disabled and the modifier is applied to editing cage. That's because it's not in the original mesh data, and its position is not stored independently but calculated by the modifier:

Modifying those vertices manually is possible after applying it, because those new vertices are now available in the original mesh data. Other modifier can also modify them if placed below the Mirror modifier, for example an Armature modifier (note the modifier stack):

or a Lattice modifier:


move instanced objects relative to empty

Here is a way to do it:

Create a large plane, subdivide it, create a sphere, create a small plane that you put at the same location as your sphere, subdivide this small plane, select all its vertices and create a vertex group:

Give your small plane a Shrinkwrap modifier / Wrap Method > Project with the large plane as Target. Give your sphere a Copy Location constraint, with the small plane as Target and in Vertex Group select the vertex group you've created, enable the Z axis only.
Create 2 empties, one under the large plane, the other one above, parent the bottom empty to the top empty, give your large plane a Warp modifier, choose the 2 empties in Object From and Object To, play with the Strength and Radius values, it will warp the plane surface:

Select the sphere and the small plane, press AltD to duplicate along the X axis, press ShiftR to repeat the duplication. Do the same on the Y axis. Make the planes invisible, move the top empty to deform the plane and the spheres should follow:


How can I prevent one or more bones from being added to the key frame?

What I can think of is locking the properties that you want to not change: Loc, Rot, Scale. You can see there are padlock icons for that. But I'm not sure if I understand your problem correctly.


Rotation Difference.
Believe what you are looking for is rotation_difference ie the minimum rotation required to rotate from one quaternion to another
Python console code
Define a couple of angles using Eulers,
>>> r1 = Euler((radians(30), radians(60), radians(45)))
>>> r2 = Euler((radians(0), radians(60), radians(45)))

As quaternions
>>> q1 = r1.to_quaternion()
>>> q2 = r2.to_quaternion()

The difference
>>> qd = q1.rotation_difference(q2)

>>> list(map(degrees, qd.to_euler()))
[-30.000000834826057, 2.481181138556882e-06, -3.316504514323493e-06]

Or other way
>>> qd = q2.rotation_difference(q1)
>>> list(map(degrees, qd.to_euler()))
[30.00000424992064, -3.4388197927083468e-06, 1.2883001108333913e-06]

And using this result to get back to q1 from q2
>>> qr = q2 @ qd
>>> qr
Quaternion((0.8223630785942078, 0.022260043770074844, 0.5319756269454956, 0.20056211948394775))

>>> q1
Quaternion((0.8223631381988525, 0.022260019555687904, 0.5319756865501404, 0.20056211948394775))

difference (within precision) is  pretty much Identity Quat (1, 0, 0, 0)
>>> qr.rotation_difference(q1)
Quaternion((1.0, -1.4901161193847656e-08, 3.4458935260772705e-08, -2.8870999813079834e-08))


Shadow-catcher stays noisy even with Denoising - also very dark

It's because denoising works only with RGB-channels, not alpha-channel.
You can try to denoise it in compose nodes.

I use Bilateral Blur to denoise alpha channel in render, then set it in result picture by Set Alpha node. Extract ground plane by object ID mask:


I made the swing system with IK constraint.

Creation procedure
Creation of arm system proceeded as follows:
Step 1: Simple arm system (Armature)
Step 2: Design drawing (Mesh)
Step 3: Basic arm system (Armature)

Step 1

Step 2

Step 3

Bone (Controller): Limit Rotation
Bone.002: IK constraint
Bone.003: Copy Rotation and Transformation
The Transformation constraint was used to absorb the bone length matching error. It is very difficult to exactly match the bone length a + b = c + d.
Appendix
With offset between Bone and Bone.003 length.


Why would there be a glow around bright objects?

If the air is clean and transparent the light travels right through it, with no scattering and there is no glow around light sources or bright objects.

If there are particles floating in the air, those would get lit by the light source, light gets scattered, hence the perceived glow (think of a foggy night or the smog on a city)

With glass is the same thing: Clean and high quality glass would produce a non significant halo/glow around bright objects, the light would pass through it with very little dispersion. A dirty, scratched or humid glass would show the bright parts of an image with blurred edges caused by dispersion on the surface or the thickness of the glass itself (think a fogged or dirty window, or even a low quality or scratched camera lens)

So how do you create a glow then?

Option 1

Using the compositor would give you the option of the dirty glass. You can expand the brightess of the bright pixels using a glow node on the rendered image.

Option 2

If you want an environment with suspended particles then you use volume scatter in your world.

Maybe a bit exaggerated but just to get the point across.


The reason for the leg stretching is because the foot bone is controlling most of the leg mesh. The leg bones are only slightly affecting the mesh, and thus you get stretching when both bones are 'pulling' on the same mesh. You will need to properly weight paint your mesh (or manually assign them in edit mode) and then work on your skeleton. I would suggest looking up tutorials for setting up IK constraints as that should do what you want.


In order to perform any kind of mirroring operation on your bones the names on the left and right side of your rig must have identical names, other than the L/R indication. All the bones on the right side of your armature have '.001' at the end of the names left over from being copied at some point. Remove the .001 from each of the names on the right side so they match the left side and you will be able to paste the pose mirrored.


BGE: Getting rigged door mesh to update for collisions

After some consideration, I've decided that my original approach is not a good way to make door rigs, even if reinstancePhysicsMesh() can be made to work for this use.

I am posting a partial answer, with what I believe to be a better way to make rigged doors. This solution assumes that armature deform is not a requirement for the doors.

The answer is partial because it does not address how to use reinstancePhysicsMesh(), but maybe someone else can post an answer addressing that aspect, or maybe it should be a separate question.

Essentially, all I did is separate the mesh into 2 objects, remove the vertex groups, and parent the entire door objects again from Pose Mode. No armature deformation, since the door panels are completely rigid.

I realize this contradicts my original statement about wanting a single mesh, but I've realized 2 things that make managing doors with multiple parts easier:

If the parent armature of the door and the door mesh objects each have their origins at the same location it's easier to keep track of them. Grouping them together would also be a good idea, of course.
Writing the game logic on a single mesh object and then separating its parts can save you from having to write duplicate logic.

These things become obvious once thought through and tried. Together they eliminate any reason for an aversion to multi-mesh door rigs. Managing large numbers of doors each with multiple mesh objects is actually not so difficult to organize. This brings me to a third point:

Texturing as a single mesh and then separating into multiple mesh objects can simplify production too.

tl;dr I believe this approach is totally sufficient unless you have a door made of meat or something, in which case we're back to needing reinstancePhysicsMesh(). For rigid doors, this covers it.


How can I sculpt multiple objects to fit together?

Boolean is a solution, but you could select, duplicate and separate a part of the first object (here the topology is messy because I've sculpted it with Dyntopo but it would be the exact same process with a clean mesh):

then extrude and sculpt (or model). Make sure that you don't alter too much the bottom so that it continues to fit well:


A few things wrong with this: 1) you are selecting vertices, not faces. This would be so much easier to do by selecting faces. 2) You are trying to scale the face along the X axis. Since it can not get thicker along that axis, to move it, transform it on the X axis, don't scale it.


How to preview texture correctly with its UV in object mode?

Have your image loaded as a texture
Set your material Base Color to the texture you want
With Object Mode in the 3D Viewport Set Viewport Shading Color to Texture

If anyone can elaborate on how to attach multiple textures to a mesh's UV that would be excellent

  !


Can't select loops, ALT+Left Mouse moves View

For those having the same issue: I have a real 3 button mouse, but Blender was set to "Emulate a 3 button mouse" (In Edit>Preferences>Input>"Emulate 3 Button Mouse" must be unchecked).
In hope that it helps anyone having the same issue.


Accidentally disabled transformation keys?

You probably inadvertently hit Alt+, (comma), this turns on Manipulate Center Points, also found near the middle of the 3D view footer.

This makes all transformations only manipulate the origins of the selected objects, so scaling and rotating only do anything if more than one object is selected.  To disable it just hit Alt+, again or click the button in the footer.


Animated text body drops Playback FPS by half

The issue was with unselecting the text object:
text.select_set(False)

testing if the text object is selected, to then unset it solved the issue.
if text.select_get():
    text.select_set(False)

Full fixed code:
import bpy
from bpy.app.handlers import persistent
import time

@persistent
def update_frame(scene,context):
    tic = time.time()
    time_t = bpy.context.scene.frame_current
    print(time.time()-tic)
    if 'Camera' in bpy.data.objects.keys() and time:
        tic = time.time()
        Camera = bpy.data.objects.get('Camera')
        size = 0.03
        coords = (-0.35,0.17,-1)
        children_name  = [children.name for children in  Camera.children]
        print(time.time()-tic)
        if "BlenderNC_time" not in children_name:
            tic = time.time()
            bpy.ops.object.text_add(radius=size)
            text=bpy.context.object
            text.name="BlenderNC_time"
            text.parent = Camera
            text.location = coords
            print(time.time()-tic)
        else:
            tic = time.time()
            childrens = Camera.children
            text = [child for child in childrens if child.name=="BlenderNC_time"][-1]
            print(time.time()-tic)
        tic = time.time()
        text.data.body = str(time_t)
        if text.select_get():
            text.select_set(False)
        print(time.time()-tic )

handlers = bpy.app.handlers

def registerBlenderNC():
    bpy.types.Scene.update_frame = update_frame
    handlers.frame_change_pre.append(bpy.types.Scene.update_frame)

def unregisterBlenderNC():
    del bpy.types.Scene.update_frame
    handlers.frame_change_pre.remove(update_frame)

registerBlenderNC()


Use a hooked cloth

Create a base mesh approximately the shape of a relaxed band with some subdivision (at least 4/5 vertices along its width, and around a hundred across):

... a couple subdivisions and a mirror later:

(hint: maybe I made it too relaxed. Make it tighter or it'll be very floppy during the simulation)
Select a bunch of vertices in the "hand" region, CtrlH > "Hook to New Object". This will create an Empty.

Repeat for the other hand
Select both the hooked regions, create a new Vertex Group and "Assign" these vertices to it

Create the other objects that will interact with your band (like: a foot, a floor) and select "Collision" from the Physics tab for each of them.

Animate the Empties (from step 2) according to the hand's motion
Select the rubber band, apply "Cloth" from the Physics menu. Use the Rubber preset but increase both the Structural and the Steps values. Enable "Pinning" and select the Vertex Group created at step 3. Increase also the Collision Quality. You can increase the Structural (how "hard" the band is) further, but every time you do so you should also increase Steps and Collision Quality.

Bake the Cloth Cache or just play the animation (AltA)


What does this triangle icon mean and how can I add another one?

That triangle indicates that your object is a Mesh Object.

Each time you add a new mesh object in Object Mode, it will be listed in the outliner:

Objects that are not meshes will appear with different icons:

If an object is parented to another, then the parent-children hierarchy will be reflected on the outliner:

If you switch to Edit Mode and add a new mesh, that mesh will be part of the active object, and it will not be added as a new object in the outliner:

To read more about the outliner visit: https://docs.blender.org/manual/en/dev/editors/outliner.html?highlight=outliner


UV unwrapping and efficient island packing?

I am just learning this myself, but since nobody else has jumped in, I'll chime in with my 2 cents... I certainly don't mark every "sharp edge". It is good to mark at a sharp edge, but not necessarily "every" sharp edge. I try to mark along lines where I expect the texture to change, and I try not to mark through areas where the texture will stay the same, especially places like the middle of a floor or wall or other large flat-ish surface. The more patterned the texture is, the more obvious it will be if you mark across it (imagine a tiled floor where the middle of the floor has a line through it where the tiles don't line up).

This way it is somewhat easier to texture, and once textured, the seams are not so visible. Of course, this is not always possible without severe stretching, so in cases where I MUST mark across an area where the texture doesn't change (to relieve stretching/squashing), I try to do it at a corner (or sharp edge, like where a wall meets the floor) or a place where it will seem less noticeable (with the grain for a wood pattern, behind an obstacle, in a dark area, etc...).

I don't worry much about where the "parts" land on the UV map. It would be ideal if everything with a matching texture were to land close to each other on the map, but I have tried and not yet found a way to do that without extensive effort after unwrapping (open to suggestions). It's easier to pick through it while texturing than to move things around beforehand.

Like I said, I'm just learning this myself, so let's hope someone with more experience will pipe in with some really good tips.


How can my shrinkwrapped clothes stay on top of my character's skin when I animate?

I think you have problems with Weights.
You can try transfer weights from character body to clothes: https://www.youtube.com/watch?v=stem2OPRAyA
About beard:
In object mode select beard, then armature. Press Ctrl + P and choose "Armature deform - With empty groups".
Then choose a beard, open edit mode. Select the beard and open data tab (on the left side of screen. It has the same label at your version of program. Find Vertex Group which is responsible for the head, choose Weight = 1 and click Assign.


How to fill a rectangular hole with an even amount of vertices on either side?

If both sides have the same number of vertices, you can quickly do this by using the Grid Fill tool (CtrlF > Grid Fill) and tweaking the operator settings. A Span and Offset of 2 should do the trick.


Updating a 2.7 script that uses frame_current to work with 2.8+

Updated script.
All changes here have been well documented.
Getting the updated mesh has changed.
How do I get a mesh data-block with modifiers and shape keys applied in Blender 2.8?
Scene update has been replaced.
What is the replacement for scene.update()?
Setting the frame is still done the same.  (frame_set is not a member of ViewLayer.)
Linking object to a scene has changed.
link new object to scene with python in 2.8
View layer objects has no link method.
revised script.
import bpy
context = bpy.context
scene = context.scene
dg = context.evaluated_depsgraph_get()

frame_current = scene.frame_current

r = range(scene.frame_start, scene.frame_end + 1)
l = len(str(len(r)))
obs = []

for f in r:
    scene.frame_set(f)
    #dg = context.evaluated_depsgraph_get()
    for ob in scene.objects:
        if ob.type == 'MESH' and ob.name.startswith("Cube"):
            ev_ob = ob.evaluated_get(dg)
            me = ev_ob.data.copy()
            new_ob = bpy.data.objects.new("%s_frame%0*i" % (ob.name, l, f), me)
            new_ob.matrix_world = ob.matrix_world.copy()
            obs.append(new_ob)

scene.frame_set(frame_current)
for ob in obs:
    context.collection.objects.link(ob)
context.view_layer.update()

Note haven't tested this thoroughly, re how often to evaluate the depsgraph, uncomment #dg = context.evalua.... to see if result differs when it is evaluated on a per frame basis.


Is there a way to make objects take up less memory?

If you have 1 triangle on 3d viewport and nothing more on the scene, and also when saving you select "COMPRESS" you will get to 96 kb.

Is this what you were looking for?

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

BFCT_Schiller