Baking details from a high-poly onto a texture of a low poly model

The first thing to understand about this answer is that it's not really a new answer. This question has been asked and answered before plenty of times before - but it seems the part you are getting stuck on is how to bake from multiple objects to a single target object, so I will address that.

Before going any further, here are some resources to help you learn about texture baking in Cycles:

Resource 1
Resource 2
Resource 3
Resource 4

In your situation, you are aiming to bake from multiple Selected objects to a single Active object. What does that actually mean in Blender? Let's examine.

A Selected object is any object that you have selected, and it will be highlighted in orange (or in my case blue because my theme settings have been customized). The Active object is the last object you have selected, and it appears highlighted, usually in a lighter color.

Here are multiple Selected objects, parented to a single Active object.

(The parenting has been done simply to generate the dotted lines showing the relationships. You don't need to parent in order to bake.)

So, how to bake a texture? Let's get to it!

Select all of your high-poly/detail objects, and then lastly select your target low-poly object. (the lastly selected object will be the Active object.)

Go to the Render Context:

And adjust your Bake settings:

Make sure you've created an image texture in the UV/Image Editor, and that you have created a material that utilizes that image, and assigned it to your bake target object. Then R-Click to select the Image Texture node for that texture. Selecting it will tell Blender which texture to bake to, since materials will often contain more than one image texture.

For an image that will be a Normal Map, choose Non-Color Data. This is because the colors in a Normal Map are really vector information, not values to be interpreted as actual color.

Then back in your Bake settings, with selections made, and the bake target still as the Active object, click the Bake button.

You probably won't get the result you want at first, and this is because you must adjust the Ray Distance slider to suit the size of your meshes. Play with this value until you get it right. In cases with very tricky geometry you may need to bake at multiple ray distances and combine the best parts in an image editor like Photoshop or GIMP afterward.

Here's an example .blend.

While baking, leave the image data disconnected from the shader's Normal input. Then connect it after baking. Otherwise you'll see a warning about a "cyclical dependency", meaning the object you're trying to bake a texture to is depending on that texture in order to calculate its own bake.

I may add more details later, but hopefully this gives you a basic idea of how the process works.


See the developer discussion about it here: https://developer.blender.org/T62576

It seems it is dropped officially. Personally, I still use it because sometimes that's the only format I can get models I need in, but while it's inconvenient, it is still possible to import 3ds to Blender 2.79 and copying models from 2.79 to 2.8 is no problem. As for exporting, there does not seem to be a direct way at the moment. I think the only convenient and straight forward option is to find another suitable format for your needs, and that should not be difficult. There is also a good chance someone will make an addon as 3ds is apparently still widely used and scripting the addon is probably not extremely difficult so it might just be a matter of time till it comes back.


Is there a way to make hand painted designs glow?

Quite simply, use an emission shader.
Longer answer:

Make your drawing, and get it as an image file, preferably black and white. You can use GIMP to edit a scanned drawing. It doesn’t technically matter which is which, but to save yourself a node (and possibly some confusion) you can make the glowing part white and the non-glowing part black.
If possible, use a Principled BSDF shader in your object’s material, and connect the drawing to “Emission Strength,” then set “Emission Color” to the desired value.
If Principled BSDF is not an option, input your drawing as the factor in a Mix Shader node, and hook your regular shader and an Emission BSDF to that Mix Shader. Set the Emission BSDF’s color value as desired.


Where these white spots in the preview image of the shader come from?

This is only a preview for the material, and the white dots are reflection render.

Don't worry about it.


If you want individual smaller cubes it would be easier to generate them with an array rather than subdividing a large cube.  This is because when you subdivide, Blender doesn't generate internal faces.

Create a cube.
Add an array modifier with a count of 3 and an X
relative offset of 1.1.
Add a second array modifier with a count of 3 and a Y relative offset of 1.1.
Add a third array modifier with a count of 3 and a Z relative offset of 1.1.

At this point you should have something that looks like a subdivided cube.

To convert to a single mesh object, select the object then press Alt+C to bring up the Convert To menu then select Mesh from Curve/Meta/Surf/Text.


How to run a python script at regular intervals?

See the Operator Modal Timer template in the Text Editor:

import bpy

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

    _timer = None

    def modal(self, context, event):
        if event.type == 'ESC':
            return self.cancel(context)

        if event.type == 'TIMER':
            # change theme color, silly!
            color = context.user_preferences.themes[0].view_3d.space.gradients.high_gradient
            color.s = 1.0
            color.h += 0.01

        return {'PASS_THROUGH'}

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

    def cancel(self, context):
        context.window_manager.event_timer_remove(self._timer)
        return {'CANCELLED'}

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

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

if __name__ == "__main__":
    register()

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

You can specify the interval for the 'TIMER' event, but note that all active timers will be caught (there is no way to distinguish them).

The timer class also comes with some handy attributes:

if event.type == 'TIMER':
    print (self._timer.time_duration) # elapsed time since the operator call
    print (self._timer.time_delta)    # elapsed time since the last step
    ...

Beware of using threads, they can crash Blender.


Create a UV Sphere / Object in Blender from Python

EDIT: Updated for 2.8x, for prior see revision

import bpy
import bmesh

# Create an empty mesh and the object.
mesh = bpy.data.meshes.new('Basic_Sphere')
basic_sphere = bpy.data.objects.new("Basic_Sphere", mesh)

# Add the object into the scene.
bpy.context.collection.objects.link(basic_sphere)

# Select the newly created object
bpy.context.view_layer.objects.active = basic_sphere
basic_sphere.select_set(True)

# Construct the bmesh sphere and assign it to the blender mesh.
bm = bmesh.new()
bmesh.ops.create_uvsphere(bm, u_segments=32, v_segments=16, diameter=1)
bm.to_mesh(mesh)
bm.free()

bpy.ops.object.modifier_add(type='SUBSURF')
bpy.ops.object.shade_smooth()

In this case you need keyword arguments for all but the first, meaning you need to specify the argument name like u_segments=. The first argument is a positional argument, you only need to give the value bm. How do I know that? Because the Blender API Documentation is not very precise here, Blender told me in the Error message "bmesh operators expect a single BMesh positional argument, all other args must be keyword".

u_segments and v_segments control the initial subdivision of the mesh. diameter is the sphere size in local coordinate system (object transforation comes on top). matrix can be used if you want to shear, scale, rotate or move the sphere in one step. calc_uvs is about UV maps, but don't ask me what exactly.


Is it possible to delete linked Mesh Data?

Not directly. I have written a script that imports and exports meshes, when the unlinked data hits a critical amount of objects (around 50k) Blender slows down like crazy. I ended up restarting it for each cycle. All I found out - and I talked to a lot of people, even at Bcon - that's not supported. I would love to be proven wrong, though.
However you can delete them by re-loading your file. Make sure there is a 0 in front of your datablock. Every datablock that has no users (materials, images etc. as well) will be deleted on closing the file. So if you delete every object that has the according mesh attached, the datablock will be deleted next time you open the file.
I don't know what you want to achieve by using 'make single user', but selecting a couple of objects and then the one with worldspawn_16740 last, pressing CRTL L -> link object data will have the same effect as deleting the objects in regard to their meshes.
EDIT: Looks like more ppl had the same problem and as so often the devs listened. In Blender 2.8+ you can do this:

I know that doesn't help with batch setting the users to 0, but I'm just happy I found this.


What is wrong with this simple node setup using textures from Poliigon?

You're using the normal map as if it was a displacement map. You have to put it through a normal map node first and then into the normal input of your diffuse shader. And inverting the gloss is actually right.

Refer to this: How to add a normal map texture and a diffuse texture on a model in cycles?.


Blender 2.80 hair dynamics. As soon as I advance a few frames hair goes haywire

Apply scale and transform
Set origin to geometry
Before tweaking any settings run hair simulation, then go back to frame 1 and assign vertex group and other values according to your character
Also try reducing segments in 'Emission'


Using Smart Booleans with Subsurface modifier to get smooth edges

Usually hard surface modeling workflow avoids to make holes in a sphere exactly due to those problems. Also you should never add subdivision before a bevel. Bevel only works well when the vertices of the sphere are not caught inside the bevel.

When they get to close you see artifacts.

The denser the topology the harder it is to keep vertices away.

That's why I suggest not to use subdivision surface.
As a pro tip you can also keep bevel segments low when you use weighted normals modifier after the bevel.
This is single segment bevel without weighted normals.

The setup I usually use:

And this is after weighted normals modifier was added.

Looks just like a bevel with many segments, but it has much smaller chance of generating artifacts.
Only other solution is to apply the modifiers and perform manual cleanup. Several commercial add-ons (I think it was BoxCutter or HardOps) ships with a script to clear the topology to fix exactly this problem.


Will increasing samples reduce fireflies?

Just posting for empirical data:

These renders are at 2000 samples with a Sun Lamp pointed at an Icosphere with 100% glossy shader... just to demonstrate differences between firefly reduction techniques:

For noise reduction, see this answer: https://blender.stackexchange.com/a/84326/38953


Exporting from Blender to Browser (Web Viewer)? What is the best way?

The direct successor to Blend4Web would be Verge 3D: https://www.soft8soft.com/
This is in active development and should be quite good for what you want.

Alternatively, you could try out https://sketchfab.com/

If you want something FOSS, you might want to give Godot a try: https://www.godotengine.org/ It has  WebGL-export and the model and material transfer from Blender works rather well, but it may require somewhat more effort than the two abovementioned alternatives.


I assume you're talking about something like the following.

This is enabled by the Limit Selection to Visible button at the bottom of the 3D Viewport (). Clicking it will toggle the transparency.


The active textures don't get recognized as keyframes

As suggested by @Gilderman, you have keyframed the Active Texture Index, hence the texture box being yellow, rather than the Use Textures checkbox.  Only add single keyframe otherwise you will end up with an fcurve for all texture slots, used or not.

The index on the fcurve, which is shown on fcurve editor,  "[1] Use Textures" indicates which slot, starting from zero, the texture is in.

The "Active Texture Index" is more of a UI thing as it indicates which texture details to display on the panel, by setting the active_texture_index of the material.

My suggestion would be to add a custom property for eyes open / closed and then drive the use_texture with this.


Thicken Walls of Building without Distortion

Solidify & Shrink/Fatten

A way to give thickness to planar object is the Solidify modifier you can find in the modifier tab of the object. As you want to keep the profile even, you should enable the Even Thickness checkbox:

This will keep the wall straight and clean till your current topology allows.

Once the modifier has been apply, the correct way to increase the wall's thickness only on the seleced faces is to use the Shrink/Fatten tool you can find in the Transform tab of the Tooshelf or call it with Alt+S shortcut.

Press Alt (or S) while ruiing the command to enable Even Thickness option to keep walls straight during the transformation.


Is there a way to infinitely make a certain mesh appear in blender?

You can use Animation Nodes to do that without coding.

Create a source collection to pick the object templates from.

Then:

Test if time is reached using a "repeat time" node. "Repeat time" will loop from 0 to a given value over time.

Get a random object from the source collection.

Create an instance when time is reached and keep this instance putting it in another collection.

(have added a little animation, but this is not the point here)


How to remove a common prefix from vertex-group names?

To remove the "b_" prefix

import bpy
obj = bpy.context.active_object
prefixes = ["b_", "f_", "h_", "x_"]

bpy.ops.object.mode_set(mode='OBJECT',toggle=True)
for g in obj.vertex_groups:
    for prefix in prefixes:
        if g.name.startswith(prefix):
            g.name = g.name[2:]


If you click on the little filter icon (See screenshot) you will see that a lot of things are turned of in your render. Simply enable the things you want to be seen, and you should be good to go.

PS: dont mind the purple, you didnt upload the textures ;P


Linked scenes with different materials in blender 2.82++

One way would be to create a duplicate of any new object and link it with the 2nd scene and also link the object data of the original and duplicate.

Then you can just link the materials to object instead of data.


Final

Lights

As a light use Sun Lamp with Size 0. This will make shadows completely sharp. I've also changed Strength to 2.

World

For World I've used simple Linear Gradient to look similar to your reference image. This will give blueish tint to whole image, but we will take care of it later.

Compositing:

First of all you will need to give your objects same Pass Index. Take a look here how to do it: Object ID to a whole group.

And check Object Index under Render Layers > Passes.

Now we can use our objects as mask for Color Correction and reduce unnecessary saturation for shadows/highlights and everything we need without affecting World Background.


add a ground plane and add displace modifier.

add another plane above the ground plane. do not add thickness now. it may behave unexpectedly with next modifier.

add shrinkwrap modifier to the path plane and choose the ground plane as the target object.

add solidify modifier now to give some volume to the path.


How to stop fluid simulation to stick with moving obstacle after collision

Thanks to Nick Bosse 18,
So the solution is to check 'remove air bubbles' in Physics -> Fluid -> Fluid Boundary.
*Note: After I did this, the effect of the frog leaping into the water doesn't look as 'strong' as before but I have bubbles emitting from it. So I keyframed the size of the bubbles from big ones when it enters the water, to smaller ones when it's swimming.


How to connect value from custom properties to value of object's translate/rotation/scale

Sure. You can drive the values directly.

Create your custom property (I used a cube)
RMB on the value > Copy as New Driver
Target the other object (I used a Cone)  and RMB > Paste Driver


Change the "major dimension" that Orthographic Scale affects?

A bit confusingly worded question, but what I'm gathering is you want to know how to exclusively scale along the X, Y, and Z axes? (X and Y are horizontal, Z is vertical). All you have to do is after pressing S to scale, simply press X, Y, or Z. This will restrict your scale to whatever dimension you chose. Also, if you press Shift+X, Y, or Z after pressing S, this will restrict scaling to every axis except the axis you selected. For example, S then Shift+Z will make your scaling only scale along the X and Y axes.


How to create a cylinder with a given circumference?

OK, I assume you need the box to stay the same size and want an octagon that has the right size or else Bastian's answer would be best. I also assume that you want a really clean result because one could simply scale around the cursor (with the cursor sitting on a vertex of the box and the box snapped to the box using the magnet), getting it roughly right and then zoom all the way in to do the fine adjustment.

I tried to use snapping while scaling it but somehow Blender steadily refuses to bend to my will. So I use a more predictable approach.

I set the magnet to vertex and closest. Then I go into the editmode of the box, select the right face and duplicate it. I rotate the face by 45 degrees (R45Return) and then move it holding ctrl so the magnet snaps it to the edge of the box. It's sometimes easier to roughly position the face first without snapping so that Blender gets which verts are supposed to be closest. I repeat to snap rotated faces until I have the octagon.

After that I hit remove doubles and fill the edgeloops and delete the inside face so the mesh stays manifold. I also select all verts and hit ctrl-N to recalc the normals

An array modifier would of course work, too.


Can't resize armature without it disappearing or worse

Import DAE with Import Units option enabled.

Thant's what I get when imported ... (not so far or behinde as you wrote). Scale of armature is 5, but objects are 1, that make a difference. All is rotated in Y axis, but better fix that after meshes are not parented to armature. Also I would recommend to Apply Rotation (Ctrl+A) > Rotation before parenting meshes back to an armature to avoid other issues.

To fix Scale:

Select Mesh objects and Clear Parent (Alt+P)
Select Armature and Clear Scale (Alt+S)

Then you can parent objects back to armature (select meshes, armature as last to be an active object and press Ctrl+P).

BTW: hand seems to be in a wrong position and meshes are not assigned to the armature


The easiest way to avoid intersection is by using Close packing Node. Which is available on Animation Nodes + Extra Nodes build.


UV mapping problem - separated triangles instead of one surface

Just answering this, so it can be removed from unanswered :).

You need to

Apply scale (its at 0,001)
Merge double vertices (122 overall)
Then UV unwrap


This object is badly designed, imho :) but it surely can be fixed!

I guess it comes from a vector import (cad maybe) but even if blender in solid mode does a decent job of displaying it, this mesh has many flaws. You shouldn't believe me, you should believe the numbers.

Numbers: your model has 70% duplicated verts. A simple "remove doubles" reduces your 38287 verts to 11504!You have 26783 doubles...

But it's not all, imho: in wireframe mode you can even see many weird edges here and there, but to get more numbers, I used the bundled "3d print toolbox", which makes easy to find mesh problems.

Here the result after removing doubles...

Since we know nothing about your "own renderer (OpenGL)" it could be this one to visually show the model weird, probably due to many issues in the model. If you could post a picture of the model in that renderer something could perhaps be guessed...


Rigid body physics problem even a torus acts like it had no hole in it

By default the shape of rigid body collisions is set to 'Convex Hull', if you want the the collision shapes to include holes you need to set the collision shape to 'Mesh':

However like it is indicated in the comments, if you need objects constrained to each other you should use Rigid Body Constraints, otherwise you might not be able to get a smooth simulation without errors.


Animation Node and the Different Ways to Make Grids

When using the Object Instancer node, you are basically duplicating the object while keeping the same mesh data block. When using the Replicate Mesh node, you are constructing a single mesh by replicating the source mesh along the input transformations.

The array modifier would be roughly equivalent to the replication method, however, it is very limited when it comes to the patterns that you can generate.


Is it better for your character model to be filled or hollow inside?

Hollow and if I'm correct you can not fill your model it's just not possible.
And even if you fill your model it will be very expensive as it will drastically increase poly count making you animation worse and also punish your hardware.


How to connect two sets of vertices with each other

This looks like CtrlE Edge Menu > Bridge Edge Loops, 'Blend Surface', with one cut.

If this is not exactly what you're after, have a play with the other settings (e.g. 'Merge') to get the sense of them.


Smoke is not appearing in the "render" viewport, version 2.82

I'm sorry if this is a dumb answer...but is your inflow (the plane) inside the confines of the domain? If it is even with the borders, or slightly outside the domain of the domain i don't think it will work. I think it needs to be totally inside.


How to clone a texture from other UV Map Image in the Texture Paint Mode in Blender 2.77a?

I finally found out how to set the Clone.

Steps

The following step is under Blender 2.77a in Ubuntu.

Go to Texture Paint mode.

According to the following image, you can click Brush -> Image Paint Tool -> Clone.

Set the Brush to clone.

Go to Option and configure the setting like the following.

Go to Slots and select the Paint Mode as Image.

Create a new Canvas Image and rename it as what you want. e.g. Casper Texture.

Set the UV Map you want to paint it to.

Check the checkbox Clone from image/UV map.

Select the Source Clone UV/Map.

Select the image of the UV/Map you want to clone.

Paint it.

Save your painted UV/Map image.

References

Blender - "Micky" Ch.1 - Pt. 9 - Texture painting with Clone Brush


When you set some animation keyframes to an object Blender stores your keyframes in an "Action". The dopesheet shows all actions of the scene. You can set the dopesheet window to "Action editor", select an action and press the "Push down" button to create an "NLA Action strip", which contains the same informations of the action, but can be manipulated with all the NLA options.

So, an "Action strip" is a Blender datablock, that refers to a certain object in a certain scene of a certain file: it's true that you can apply it to a different object, but when you have a rig maden of multiple bones it's very difficult to find an action strip that will work with a different rig, and this is the reason why no one share action strips on the internet: they would be pretty unuseful.

Bvh files are actions derived from a live action: they work well when you apply them to a rig identical to the one used to capture the live performance, but if you want to apply them to a different rig, you will have to perform a complex operation called "retargeting": there are various addon that can help you, but it's not a beginner task: if you want to follow this line, search for "Bvh retargeting" and "Bvh workflows".


Just for fun, you can use a simple plane with the Array modifier :).


How to save blender project without the original files [Unable to pack file Warning]

The .blend in your link comes with a file missing (Fields_wallpapers_488.jpg).
It was not packed properly by the creator of the file.

Packed files do not need to be unpacked for them to work in Blender. If files are unpacked they are usually used from the location they are unpacked to and automatic packing is turned off. If it's enabled again then the files are packed from the location they were unpacked. As you can see asset packing and unpacking functionality is quite complete in Blender and it usually works as intended. In this specific case the file comes with a missing asset - that's why it's not possible to find. The creator of the file must have received the same warning and chose to ignore it.


How can I get the rotatation with fcurves.find()?

From blender 2.76 we can use fcurves.find(data_path, index) to get specific fcurves for an object. The fcurves for rotation data may be stored under several different data_path values depending on what rotation_mode was enabled when the keyframes were added.

Of the eight possible values for rotation_mode three different data_path values are used, one is rotation_quaternion, one is rotation_axis_angle and the other is rotation_euler that is used by all six permutations of XYZ used for euler rotation modes.

import bpy

obj = bpy.context.object
obj_fcurves = obj.animation_data.action.fcurves

if obj.rotation_mode == 'QUATERNION':
    w_fcurve = obj_fcurves.find('rotation_quaternion', index=0)
    x_fcurve = obj_fcurves.find('rotation_quaternion', index=1)
    y_fcurve = obj_fcurves.find('rotation_quaternion', index=2)
    z_fcurve = obj_fcurves.find('rotation_quaternion', index=3)
elif obj.rotation_mode == 'AXIS_ANGLE':
    w_fcurve = obj_fcurves.find('rotation_axis_angle', index=0)
    x_fcurve = obj_fcurves.find('rotation_axis_angle', index=1)
    y_fcurve = obj_fcurves.find('rotation_axis_angle', index=2)
    z_fcurve = obj_fcurves.find('rotation_axis_angle', index=3)
else:
    x_fcurve = obj_fcurves.find('rotation_euler', index=0)
    y_fcurve = obj_fcurves.find('rotation_euler', index=1)
    z_fcurve = obj_fcurves.find('rotation_euler', index=2)

For versions before 2.76 fcurves.find() is a generic find that doesn't work as expected, in this case you need to loop through the curves to find the one you want.

for c in obj_fcurves:
    if c.data_path == 'rotation_quaternion':
        if c.array_index == 0:
            w_fcurve = c
        elif c.array_index == 1:
            x_fcurve = c
        elif c.array_index == 2:
            y_fcurve = c
        elif c.array_index == 3:
            z_fcurve = c


Answer by Paul Gonet in the comments. Thank you so much.

Select the edge loop around the hole and fill it with F. Set the transformation orientation type to Normal and then extrude. – Paul Gonet

That worked as expected. Thanks a lot, Paul Gonet.


Which angles are at these selected edges?

The Angle information is going to be around the axis of the particular edge.  You can think about it as the angle between two adjacent faces.

In your example, the two 90 degree angles are formed between faces that are perpendicular to one another.  The 0 degree angle, however, is formed between two faces that exist in the same plane.

In other words, it's not measuring the angle between two edges.  For that, you would need to activate the Face Info Angle (shown in blue):

Edit: This might help visualize it a little more:


how to change the location of all keyframes in blender timeline at once

Use the Graph Editor:

Enable the Only Include Channels option (little arrow button) so that you'll only see the curve related to the selected object.
Select your object in the 3D view, unfold the tracks in the Graph Editor.
Lock all the locks. Only open the one you want. Or select the track you want and ShiftH to hide all the others. Or use the search field to only display the wanted tracks.
Select the curve and move it manually or with the value you want, then Enter. To move the curve vertically press GY, horizontally press GX


I don't know why your head object is acting so strangely with the Boolean modifier. The proper setting for the Boolean is "Intersect" in order to get the cubes to cut holes in the head:

However, I don't know why the body disappears. So, here is a work-around:

First, delete the back vertices of the cubes you're going to use to cut out the eye holes so they are just rectangles, like this:

Then go into Front Ortho view (front view with Numpad 1, ortho view with Numpad 5):

Now first select the rectangles, then hold down SHIFT and also select the player, so that both are selected together.
Now, press TAB to go into Edit mode, then in the Tools panel, in the Tools tab, click on Knife Project:

This will cut holes in the face of the player.
Now select the vertices of the newly-made eye sockets and extrude them back along the Y axis:

Now select the back-most vertices of one eye socket and then press F to make a face there. Then do the same thing for the other eye socket:


I found out what the problem is. When I'm in Pose Mode I have to pres "A" to select all animated bones. Then I have to press "I".


There are not enough seam cuts, you really have to think like you're cutting the shirt with scissors, otherwise Blender can't properly unfold the mesh. If you add some additional seams on the shoulder and on the sides it will map properly.


When appending, uncheck "Localize All" in the lower left hand corner of the screen.


Connect grease pencil to object transform

As of Blender 2.78 you can parent Grease pencil strokes to objects or armatures which will make them follow transformations of the parent.

If you want to preview strokes independant on the object selection you should create Grease Pencil layer of the Scene type:

In the top of the menu choose Scene option and create a new layer. Rename it if need be, then choose which object you'd like to parent it to (it isn't important whether strokes are already drawn or not).

As parenting works on Layer level you need as many layers as there are different annotations you'd like to move separately (2 in the example above). So create several layers and choose desired parent in the Parent drop-down as shown above.

To have different colors create several palettes, each for desired color.

If you don't want strokes to be visible through the objects uncheck X-Ray in the Layer settings. After that strokes might be needed to be moved out a bit:

One way to stick them back to surface is to use Reproject Strokes tool available in version 2.78+. Orient the viewport roughly as it was when strokes were drawn (proejcting will be done according to the viewpoint orientation). Then in the Edit Strokes mode (note, not Edit mode) find the tool on the Toolshelf and choose Surface to project strokes back.


Add Rigify Widgets to Weight Painted Figure

With Rigify, you need to generate the rig from the meta rig first, before weight painting.

In blender all control widgets etc are also bones, but may or may not be allowed to move the mesh, depending on whether the deform flag is set on them or not (this can be found in the bone properties tab in the properties editor). In the generated rigify rigs, the deform bones are hidden by default, and normally on the third to last layer:

These are the ones you need to weight paint.

You may also find the following (slightly old) link useful:
https://blenderartists.org/t/rigging-with-rigify/673045/2


Controlling mesh modifiers with animation nodes

It can be done using the "Object Data Path Output" node:

Add the node to the node tree.

Select the object whose properties are to be modified in the first input of the Object Data Path Output node.

Copy the data path from the parameter you want to animate by right-clicking and selecting "Copy data path."

Paste the data path into the Path input of the Object Data Path Output node.

Set the value of the property using the Value input of the Object Data Path Output node.


For Blender 2.79 and older check the header of the Info Window, above the 3D View to the right by default on the factory screen layout.

For Blender 2.8* series check the status bar running along the bottom of every main window towards the right.

For 2.9 series this has been moved into each independent viewport, so it can display relevant statistics for each separate 3D View depending on what is shown/selected in them. You can toggle it on or off from the Overlays Popover in the 3D View header.

There are statistics about the scene's total count of vertices, faces and triangles, in addition to your current selection of objects.
If you enter Edit Mode, it will switch to showing statistics about currently selected objects.
Global scene statistics (not dependent on viewport states) can be found on the status bar, in addition to system stats, like available memory and GPU VRAM.

If you need to see them at the bottom right of the screen you can enable the information using Edit > Preferences > Interface > Editors > Status Bar, and enable the information you want to view as part of the Status Bar.
You can also just right click on them and pick the desired options.


How to correct the scaling problem of the texture using UV wrap

To avoid texture scaling on the mesh it is necessary to apply object scale before unwrapping. To apply the scale you need to be in object mode, then hit CTRL+A and select scale from the menu. Once scale is applied it is safe to unwrap the mesh without having scale distortion.


Unfortunately blender doesn't provide many options for doing much with vertex colours.

If you can convert the colours to greyscale texture, with values in a range of 0 to 1 (with your current green value as 0.5) instead, you can use this to control a displace modifier on the mesh. Set the midpoint to 0.5 and the strength to the difference between the maximum increase and maximum decrease that you want. This will require UV unwrapping your mesh. The conversion to texture could be achieved by creating the right shader and baking surface colour.

Alternatively, you could create 2 vertex groups for the positive and negative displacement and use these to control two displacement modifiers without textures, one using a positive strength, the other a negative. No UV unwrap is required here. A script would be required to convert the vertex colours to groups.


How to enable freestyle edges on top of freestyle faces?

I'm not sure to get it perfectly, but you can set freestyle to only render edges specified as "freestyle edge", like this

if you use face marks (here in blue)

you can use it to (eg) exclude some parts of the previously marked edges (also blue to make them more visible):


Rendered as PNG, how to play it as a mp4

Go to the Blender's VSE window and add an image, then select all the PNGs: they will be automatically loaded as a sequence. You can render out this sequence as mp4, and the render time will be very short,


Object not visible in render with hair particles enabled(!?)

I found the solution, "Show Emitter" under particle settings was not enabled.


Overlap unwrapped texture with transparent image

If I understand your problem, you want to create a second UV map because by now a single stroke creates multiple strokes on your texture. This can be done in the vertex tab, clicking the plus icon in the UV panel and re-unwrapping with the new UV selected. Don't forget to add an UV input node for every material you have, to indicate which UV map to use in that material and avoid unexpected projections.


yes, make the mesh a group and put the original on a different layer.

Then create a group instance on the layer you want to make the edits and move it to be right over the armature.

Now you animate without being able to go into edit mode because its a group instance.

And if you want to edit the mesh in edit mode, you can edit the original and all group instances get updated automatically.


The line below is invalid.

bpy.data.meshes.polygons[2].select = True

bpy.data.meshes is a collection of all meshes in this .blend file, it doesn't have an attribute .polygons. You are close though, you need to reference a specific  mesh either via

mesh = bpy.data.objects['some_object_name'].data
# or
mesh = bpy.data.meshes['some_mesh_name']

Important to note here that Objects are not the same as Meshes

An Object can hold a reference to a Mesh. (or Curves, or other Types)
A Mesh only holds references to the objects that use it. (Actually, I think it only holds the count of objects that reference it.. not their names: maybe someone can correct me?)

In Object Mode

One way to select by face index is, go to Object Mode first then do

obj = bpy.context.active_object
obj.data.polygons[2].select = True

When you go back to Edit Mode you'll see the face is selected.

In Edit Mode

If you wanted to do that in Edit Mode, this might be unintuitive at first, but it involves a little more code. Blender  comes with a useful collection of templates for mesh editing. The relevant template for this question can be found in Text Editor > Templates > Python > Bmesh Simple Edit Mode.

Below is a slight modification to that template, copy it to the Text Editor and press Run.

import bpy
import bmesh

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

# notice in Bmesh polygons are called faces
bm.faces[4].select = True  # select index 4

# Show the updates in the viewport
bmesh.update_edit_mesh(me, True)


I cant get my textures in final rendered image

I got it to work. I just simply added a hdri background image and it worked. For anyone else having the same problem, try googling how to add hdri background in blender and you will get the answer. Thanks  to everyone who answered..


Will Blender Sensei Format work MacOS and Win10?

Addons work regardless of operating system. Here is how you can install Sensei Format on MacOS: blendersensei.com/forums/topic/sensei-format-on-mac


Use Shift + S and then "Cursor to center".

Or you can use use a direct hotkey Shift+C.

You can also use the right panel to set the position manually (bottom right of the picture) :


Can't See Background Image on Ortho View

Background images will only be displayed in

  Camera Prespective view (Numpad 0)

Any of the Preset Orthographic views

  Front/Back (Numpad 1 or CtrlNumpad 1)
  Right /Left (Numpad 3 or CtrlNumpad 3)
  Top/Bottom (Numpad 7 or CtrlNumpad 7)

Background images will not show in perspective view.

To switch between Perspective and Orthographic view use Numpad 5

Background images are used for reference only and will not be part of the final render.


The first thing would be to see if the mesh has a non-square face (ie, with 5 vertices) and fix it if it does. If it does and you want do be lazy, simply add one vertex in the middle and use that to make triangles.

(Faces that are made of more than four vertices are known to cause problems in weird places, so making a habit of removing them and keeping a good topology will make things easier. I think blender for the most part doesn't have a problem with it except for edges and faces that do have the same location.)

The best way to fix the uv map is probably to make a new one. I would recommend you first use it with a checker texture to find any weirdness first, so you might discover any other problems you might have missed.


Colours of the mesh are gone after I rendered and saved the project

You are in solid preview mode. Press Z in the 3D viewport and select either "Material Preview" or "Rendered" from the pie menu. You can also change preview modes by clicking on one of the 4 little circles in the top-right of the viewport (left to right - Wireframe, Solid, Material Preview, Rendered)


What is the way to move a material above another?

Delete the top material slot, then add a new slot and select the material from the deleted slot.

In your case, you'll then want to assign the surface material (bottom slot) with everything selected in edit mode.


How to convert materials into textures in EEVEE?

As of July of this year, you can't bake Eevee-specific elements to textures, since Eevee itself doesn't support baking.

There's a discussion about this on the blender community page

https://blender.community/c/rightclickselect/X0dbbc/

The main takeaway from the original post there is;

"Baking isn't currently available in Eevee in any form." -jpgarsemailbox

If you have an object that uses non-Eevee-specific nodes, you could bake it in Cycles (et al) and bring it back into Eevee. You might even be able to bake everything except the Eevee-specific parts, then layer those on top after backing in another renderer.


Array along the curve keeping rotation and equal steps along an axis

Here is a workaround using native tools, unfortunately it is destructive, so save a copy of your curve before proceeding.

Make an array of a simple plane object with the desired spacing.

Make a copy of you original curve (for safe keeping) and extrude it slightly in Z so it can encompass your plane size, then convert it to a mesh object.

On the arrayed plane add a Shrinkwrap modifier set to the mesh-converted curve. Adjust its settings to Project (so spacing remains even) and both Positive and Negative if necessary.

Now place your cubes using a particle system, adjust Count as necessary to match the Array Count$+1$ (due to a bug). Pick the cube as rendered object and turn on Unborn and Died.

Under Rotation set it to None so the cubes always face the same direction.


Try Bake Action (make sure you're in Pose Mode, it works in Object mode also) and ensure 'apply constraints' is checked. This will clear all your constraint, so if needed I would duplicate the armature and move to another layer before doing this if you need to bake more animations later on.


Are there significant differences between Filmic shipped with Blender and its development version?

Quoting @troy_s, (the creator of the filmic blender's color transform LUTs and config.ocio files)

Is there any difference between this repository and the filmic blender in 2.79?

  Indeed.

  The default "Filmic" view, which carries on Blender's confused description of what a display is, is actually the Filmic Log Encoding Base coupled with the Base Contrast.

  There currently is no means to generate a purely Filmic Log encoded image. You can see this by comparing the "None" creative look against "Base Contrast" and note that the two are identical.

  This will pose issues for anyone seeking to use alternative display referred tool chains. For example, the Agent team used the Filmic Log encoded imagery at 16 bit for grading within Resolve.

The version on github works the way the author designed it to work: so that is possible to save images in log without any looks applied. Using log encoded images would allow users to save images in formats like 16 bit Tiff, to be used for further post-production (compositing, color grading, etc), and without having to distort the data or otherwise compromise the dynamic range of the images generated in blender.

Another difference is that you will find a sRGB EOTF transform. (again quoting the github page:

  This is an accurate version of the sRGB transfer function.

As I understand it the developers chose to keep some of the previous pieces of code to prevent error messages when opening older files, that expect the default color transform to be named sRGB

Other differences:

The github version includes a BT.1886 EOTF. It not does not include any of the "film emluation" looks. (for additional information read: Combine Filmic Blender and "Standard" Film Emulation), some other color transforms (greyscale and false colour) were moved from looks to views.


How to Bend profiled rectangle exactly to 45 degrees?

This is rather easy to do.

Just add a Simple Deform Modifier.
Set it to Bend and select the right axis.
Enter the desired angle (it's 45° by default)

Note:
In this case bending along the Z axis doesn't work as expected.
To make it work, rotate the object's origin by -90°, or use an empty rotated by -90°.

Thanks to @lemon, @plem and @robin-betts for pointing that out.


Pros and cons of seperating meshes into objects and ways to switch between

you can join objects/meshes by selecting more objects and then CTRL - J


Scale was set too high for the modifier, which was putting the vertices way to close to each other giving me errors. Seemed starting at the default scale while building the mesh, and then scaling it up afterwards still enabled me to use the scale i needed for importing.


Solidify thickness doesn't correspond to specified scale

Your object has uneven scale

Apply the scale to your object with Ctrl + A > Scale


To set the snap menu in Blender, you must open Blender preferences, and go to the input tab.

In the search blank, type "snap keys". One result-snap keys should show up. As you showed in the picture, the blank for controlling this action with a shortcut was empty. If no results show up, then make a new shortcut with these settings:


Get Blender files to save with a thumbnail preview?

Kinda Late but here's what I found...

I ran into this post about 4 months ago with the same problem you had, after some googling and some realization that this was not currently possible I decided to change my direction of googling.
With the little knowledge of Xcode and Obj-C I had I decided to attempt to slap this together...

Please note:
It's not as err "optimized" as a well seasoned coder may make it, but it's enough to do the job.
So far I have had pretty good luck with it and I hope you fellows do to
Also I've found that the thumbnails that blender makes are low-quality, so its not as pretty as I hoped it would be.
And lastly i've noticed that it does not allways succeed in creating icons for the desktop (odd).

Installation
It's quite easy, download the QuickLookViewer here and move it to either ~/Library/Quicklook or /Library/Quicklook if the folder Quicklook does not exist there feel free to create it. Please notice that the one location is local in your account and the other is global on the whole computer.
Next you need to update the Quicklook engine...
Either log out and log back in (the hard solution I might add).
Or simply type the following in Terminal and hit the return key
qlmanage -r

This will force the ql engine to reset...
last of all cheers and good luck!
I guess this is my contribution to the Blender project for now! (until they implement it later cause they should)


How can I create a mathematically correct arc/circular segment?

Add Primitive Arc Operator

The theory is well covered here Calculate the radius of a circle given the chord length and height of a segment
The text editor > Templates > Python > Operator Add Mesh template modified to add an arc.
Input the arc length, arc height and number of segments and it creates an arc.
Notes. Haven't dealt with the restriction that arc height can only ever by at most half chord length for a semi circle.
bl_info = {
    "name": "Circular Arc",
    "author": "batFINGER",
    "version": (1, 0),
    "blender": (2, 80, 0),
    "location": "View3D > Add > Mesh > Circular Arc",
    "description": "Adds a mesh circumcircle given base and height",
    "warning": "",
    "doc_url": "",
    "category": "Add Mesh",
}

import bpy
import bmesh
from mathutils import Matrix
from math import asin
from bpy_extras.object_utils import AddObjectHelper

from bpy.props import (
    IntProperty,
    BoolProperty,
    FloatProperty,
)

class MESH_OT_primitive_arc_add(AddObjectHelper, bpy.types.Operator):
    """Add a simple arc mesh"""
    bl_idname = "mesh.primitive_arc_add"
    bl_label = "Add Circular Arc"
    bl_options = {'REGISTER', 'UNDO'}

    length: FloatProperty(
        name="length",
        description="Chord Length",
        min=0.01,
        max=100.0,
        default=2.0,
        unit='LENGTH',
    )
    height: FloatProperty(
        name="Height",
        description="Arc Height",
        min=0.01,
        max=100.0,
        unit='LENGTH',
        default=1.0,
    )
    segments: IntProperty(
        name="Arc Segments",
        description="Number of Segments",
        min=1,
        default=8,
    )

    def draw(self, context):
        '''Generic Draw'''
        layout = self.layout
        # annnotated on this class
        for prop in self.__class__.__annotations__.keys():
            layout.prop(self, prop)
        # annotated on AddObjectHelper
        for prop in AddObjectHelper.__annotations__.keys():
            layout.prop(self, prop)

    def execute(self, context):
        h = self.height
        a = self.length / 2
        r = (a * a + h * h) / (2 * h)
        if abs(a / r) > 1:
            # math domain error on arcsin
            return {'CANCELLED'}
        angle = 2 * asin(a / r)

        mesh = bpy.data.meshes.new("Arc")

        bm = bmesh.new()
        v = bm.verts.new((0, r, 0))
        bmesh.ops.rotate(
            bm, verts=[v], matrix=Matrix.Rotation(angle / 2, 3, 'Z'))
        bmesh.ops.spin(
            bm,
            geom=[v],
            axis=(0, 0, 1),
            steps=self.segments,
            angle=-angle,
        )

        for v in bm.verts:
            v.co.y -= r - h
            v.select = True
        bm.to_mesh(mesh)
        #mesh.update()

        # add the mesh as an object into the scene with this utility module
        from bpy_extras import object_utils
        object_utils.object_data_add(context, mesh, operator=self)

        return {'FINISHED'}

def menu_func(self, context):
    self.layout.operator(MESH_OT_primitive_arc_add.bl_idname, icon='MESH_CUBE')

def register():
    bpy.utils.register_class(MESH_OT_primitive_arc_add)
    bpy.types.VIEW3D_MT_mesh_add.append(menu_func)

def unregister():
    bpy.utils.unregister_class(MESH_OT_primitive_arc_add)
    bpy.types.VIEW3D_MT_mesh_add.remove(menu_func)

if __name__ == "__main__":
    register()

    # test call
    bpy.ops.mesh.primitive_arc_add()


Weight painted mesh stays in place when rotated

Select your head (or weighted object). Go to weight paint mode. Open in the object's properties your vertex group, there you should see a list of all your bones organized as vertex group's influences. Use your keyboard's down arrow to go from top to bottom, one by one until you see the head bone (it should color your head in red color: full influence), keep going down the list and there should be other vertex group influenciating your head. If so: stay on that vertex group,now switch your painting weight brush from DRAW to subtract. Strength 1, weight 1. "Paint to delete" that influence. Repeat for all remaining groups that have influence. Go back to head bone vertex group, switch back the weight brush to DRAW. Strenght to 1, weight to 1. Move your bone head until your head deforms, now paint the remaining vertices (left behind) and they will sit in place now.


The difference in face colours is an indicator that the direction of those faces are not uniform.

Enter edit mode and look for the side panel submenu called "Mesh Display"

In the normals subheading, select the face icon. Lines (called normals) will start to emit from each face. I've adjusted the size slider so those lines aren't ridiculously large or small. The thing to note here is that if you don't see the line emitting from some faces, that those faces are flipped.

To make them uniform press cltr+F to get the faces menu and Recalc normals   (Or Directly using Ctrl+N)

This makes the mesh faces point in a uniform way, and the colour difference will go away:


Blender 2.82 - Object disappears and reappears when moving the cutter in boolean difference

I subdivided the cube, but the result was the same. Being new in Blender I saw, when the object disappears while moving the cutter, some small areas marked in orange. I looked into the mesh there and found still some issues with vertices, which needed cleaning. Afterwards the Boolean worked fine throughout the whole movement.


Object not visible in render even when it is not disabled in rendering

Not a whole answer: I've figured out what happens, but not why. I thought it best to share it anyway since it might help.
In the 3D Viewport the object seems to be affected by the Surface Deform modifier. But for rendering it is not. When rendered it is in the shape (and location) where it would be without the Surface Deform modifier.
If you render the character from the back you can see the object in this location, partly hidden in the body of the character.

A possible solution is to Apply the the Surface Deform modifier on the object.


Why won't my sculpted details bake into a normal map in cycles?

Your bake is failing because your low poly mesh is not unwrapped. You need to create a UV map for your low poly mesh so that Blender knows how to map a point on the surface of your 3D mesh onto the 2D texture.


Bezier curve handles - precision modeling

Re. 1: To equalize the handle's lenght (without changing their angles) you may select the whole handle, press V-->Set Handle Type-->Free and enable the Snapping Tool (press the magnet icon and change its mode to Vertex). Rotate the shorter handle tip 180 degrees, then select the longer one and snap it to the shorter. Select the rotated one again and rotate it back to its place (input -180 while rotating).

Note: Sorry for an odd method to do it but nothing else comes to my mind right now:). The advantage of this method over Polosson's idea is you keep the angles of the handles, while when you change the handle type to Automatic you don't.

Re. 2: Change the Transform Orientation type to Normal and select the handle you want to move. Press G and input the desired axis (remember to press the button, which defines the axis twice to make a transformation along normal coordinates).

You may also just use scaling. Select desired handle tip and press S.


How to fix an animation project from overuse of particles

I'm not sure about it, but is your cache file still in place
(can you move it somewhere else), maybe computer has a problem loading a huge cache file.

Another way of rescuing might be to create a new blend and import stuff from the other blend file that you like to rescue, if the file is really broken I'm afraid there are not many options left.


When I copy and paste objects they are joined

When you duplicate objects be sure you are in object mode. If you are in edit mode they may conjoin and be made a single object. I have trouble with this too.


I was watching a tutorial today and they mentioned the roll setting for the bone. It made me think of the problem I was having with the tentacle and I went to the model, changed the roll setting to be the same on all bones and the problem has been fixed.


How to run blender video editor on a weak graphics card?

Not having your exact hardware, it is really difficult to give an exact answer, or even good suggestions. You didn't even describe your pc specs or your card model, drivers version. It could help.

But I think you could, as a last resort, try a software opengl emulation. It won't be performant, it won't be fast and it could have (other) glitches, but at least you could try.

How? In simple terms, usually blender relies on the (usually much powerful) opengl hardware implementation but there are software implementation that are run by your cpu, and they could support better opengl levels, hopefully better than your gpu or driver.

The most used, I think is Mesa (https://mesa3d.org/) and you should build (compile) it to obtain a dll. But you can also find some .dll pre-built around... just be careful about the source you're relying on!

Here is a developer's thread that explains roughly how to do this (note the link suggested is now dead!):

https://developer.blender.org/T43077

  Download opengl32.dll from
  http://download.blender.org/ftp/incoming/softwaregl/ and put it into
  the same folder as the blender.exe. This will switch blender to fully
  software opengl mode, avoiding possible issues with
  driver/configuration

I found a steam thread that has working links, apparently

  for 32bit
  http://download.blender.org/ftp/sergey/softwaregl/win32/opengl32.dll
  and for 64
  http://download.blender.org/ftp/sergey/softwaregl/win64/opengl32.dll
  once downloaded just put in the directory of blender

https://steamcommunity.com/app/365670/discussions/0/598198356178829559/

See this thread also

https://www.opengl.org/discussion_boards/showthread.php/138029-OpenGL32-dll

I used this approach once (on linux, on thinkpad R60 with a crappy intel card) and it kinda worked, although the most complex functions in blender had issues, but I used this way until I had a new pc, with a much better card, to use the (at the time) newest blender versions... So, you have to try, and maybe report here your findings, to help others!

Good luck!


It might be because they are not displayed in the viewport, click on the key icon on the top and activate the Disable in Viewport icon (monitor icon) to make this option visible in the Outliner, then activate it for the object or collection you want to make visible in the viewport. You'll also need to make sure your objects or collections are visible for render (camera icon this time).


First, make sure you're in Object mode, with the stroke object selected.

Nowadays, the conversion tools are in the contextual menu:

If you use Left click select, you can open this menu via right-click on the stroke object. Otherwise, you need to hit the W key.

For now, using the mesh conversion on a stroke object results to a curve object for some reason, I guess it will be fixed. If you get that issue, simply redo the same thing on the curve object.


How should an animated character be moved while repeating a walk cycle?

For each cycle, make sure the support foot (one that's planted to the ground) moves back in linear speed. Use Set Keyframe Interpolation T > Linear for the support foot's first keyframe. You should also know the distance it moves back. Just Ctrl-drag (snap to increment) so the distance value is easy to reproduce, no need for guesswork.

Next, move the root bone, at the same distance, also in linear speed. Here's an example before moving the root bone, using David Rodriguez's Carmen rig (box moved linearly, standing in as the ground):

and after moving it [GIF] (box still as ground), and the animation's graph:

Support foot's position within the cycle represents how far the ground "moves". By moving it at linear speed, with known distance, it's easy to move the root bone in a way that will counter the support foot's.

NLA-based Walkcycle

The workflow is also applicable for non-linear animation, with slight difference. Create a separate action data for root bone's animation, put it above the walkcycle track:

Though the walkcycle's action is the same, the root bone's need to be extrapolated linearly. For the root bone's action, execute Channel > Extrapolation Mode Shift-E, and select Linear Extrapolation. That way, the root bone's animation strip only needs to be scaled to match the walkcycle's, no matter how long is repeated.


How do I remove weight from weight painting?

From the Manual on  blend mode:

Subtract: In this blend mode the specified weight is subtracted from the vertex weights. The strength determines which fraction of the weight gets removed per stroke. However the brush will not paint weight values below 0.0.

Lighten: In this blend mode the specified weight value is interpreted as the target weight very similar to the Mix Blend mode. But only weights below the target weight are affected. Weights above the target weight remain unchanged.

Blur: tries to smooth out the weighting of adjacent vertices. In this mode the Weight Value is ignored. The strength defines how effectively the blur is applied.


utf-8 codec can't decode strings randomly

I think your code is breaking because (as stated by @wilks) UTF has a variable length of bytes, not always just 1. Assuming your file format has UTF-8 null-terminated strings inside a larger block of binary data we can do something like the following little test program you can run in iPython or your favorite ide. It has a list of valid, null-terminated utf-8 bytes with cruft at the end.

bob=b'\xe2\x9c\x93 means check\x00\xc0'

chars = bytearray()

for c in bob:
    if c == 0: # c is int so does not match b'\x00'
        break
    chars.append(c)

print(chars.decode('utf-8'))

And here is the (untested) changes I would make to your read_string function:
def read_string(f):
    chars = bytearray() # avoid lists
    i = 0
    while True:
        c = f.read(1)
        i += 1
        if (c == b'\x00' ): # c is bytes()
            return (chars.decode('utf-8') )
        chars.append( c[0] ) # stick another bare byte onto chars


The easiest way to fix it would be to copy IK target, that you already have (It's R.Hand I presume), call it R.Hand_IK or something of that meaning. From what I see on the image it has no parent already - good.Disable Deform option for this bone (showed on the image below). Parent old R.Hand bone to arm bone (don't know how you called it, but it's the yellow one on the image). Remove IK constraint from the arm bone and add it to R.Hand bone. Then make R.Hand_IK target of this constraint.


Why doesn't my script work on all of the vertices of a mesh?

Oh nevermind. All I had to do was remove the line: if luv.select: so that the script doesn't verify if the uv layer is selected for all vertices.


2D- Bounding box around human model with sub meshes and armature

You can use this addon made by @sambler's answer found here, which creates a bounding box for the selected objects. So you can select both armature and mesh in your script and modify the addon to get the bounding box data without creating the bounding box cube.


Lofting between two different shapes along a path

The Curve modifier might give you the results you are looking for and is added after the the loft. You can also sub-divide the curve for more control.


Finding grease pencil erasers via python in 2.8

You can check the gpencil_tool property of the brush object.

According to the documentation, it will contain one of these options:

  DRAW Draw, The brush is of type used for drawing strokes.
  FILL Fill, The brush is of type used for filling areas.
  ERASE Erase, The brush is used for erasing strokes.

So you can make sure you only access DRAW brushes by using this if statement in your loop:

if brush.gpencil_tool == "DRAW":
    #Do something


You could try it with a curve that you bevel with a second curve as Bevel Object and a third as Taper Object. For the material it looks like a painted picture (a bit more stylized than what I've used here), so maybe use an image editor then import into an Image Texture node? Then duplicate, and probably convert to mesh to work the shape a bit more precisely (keep it low-poly like in your picture):

You could also try a procedural material:

From what you say, in your reference image, the hair are painted, it makes things much easier, so maybe mix painted and procedural effects (particularaly bumps and glossy effects):


Output two files when rendering an animation

Yes there is a way! The Compositor has a File Output node, of which you can have more than one! This node should allow you to save as many versions of your image as you need, at whatever stage of the compositing process, and with whichever passes you need.


For Eevee, the principle is similar to the one used in this answer.

Simply you can change the input parameters and play with the Voronoi texture options.

I've changed few things to the node setting.

Voronoi input is set to camera texture coordinates.

Voronoi changed to 2D and distance to edge.

Colors inverted.

Inputs on the right tuned.


Combining parts to a single stl for cheaper printing

Welcome to the wonderful (and often confusing) world of Blender!

So, the first thing you'll need to do is right-click the default cube to select it.*

Hit S6 to scale the cube up by 6. Hit ↩ Return to finish. (You'll see Dimensions in the right panel go to 12 in each direction. We're pretending the units are inches.)
Set the cube's maximum draw type to Wire, this will avoid it getting in the way:

Ignore the cube for now.

Now, do you have a number pad? If not, you should probably go into the preferences (⌘, on a mac, ⌃ Ctrl+⌥ Alt+U elsewhere) and turn on Emulate Numpad in the Input tab. Be sure to hit the Save User Settings button, or you'll get a surprise when you restart Blender!
Hit 1 on the numpad, or the regular key if you've got Emulate Numpad turned on. This will align your view so you're looking straight on sideways. Then hit 5 on the numpad to switch to "orthographic mode"; this makes your view flat, like an architectural drawing. (There is no perspective; things that are far away look just as big as things that are up close.)
Turn on snapping with Shift+Tab. If it gives you trouble later, you can turn it off again.
For each case (I'm assuming they're all one piece here, please tell me if not):

Select it by right-clicking.
Hit G to Grab it, and then Z to only move it along the Z axis (up/down).
Move your mouse up/down until the bottom of the case is aligned with the floor, which is that red horizontal line going across your viewport.

Now you need that cube again.

Select it by right-clicking on its wire.
Press GZ and move it up 6 to align it with the floor.
Hit Numpad 7 to switch to top view.
Grab each case, like before except without the Z locking, and make sure it's inside the cube's walls.
If you want them to all be one piece, join them with Ctrl+J.
Delete the default cube with X. Now you're done! You can find STL export under the File menu.

Please note that I used A+B to mean "press B while holding A", and AB to mean "press A, then B".

*Yes, it's weird, but you get used to it. If you absolutely hate it, you can change it in the preferences. Just make sure to hit "save user settings" afterward.


Your "Background" render layer has the lights on it, so all you need to do is some "Luminance" keying like so:


You can make AI drivers follow a path very easily. First, add an always sensor. Enable Positive triggering (pulse mode). connect that to an And controller. Then add a Steering actuator. (connect that to the And controller) change the Steering actuator's Behavior from Seek to Path Following. Then add a a plane, extrude it to whatever shape you want, then change the Physics type from Static to Navigation Mesh. Add an object to be used as the end destination. Your navigation mesh must connect from your AI driver's starting point to the ending point. Select your AI driver, and put the name of your Navigation Mesh in the input field entitled navigation mesh. then put your ending destination object's name in the input field for Target Object. if you did this correctly, your AI driver will follow the navigation mesh On The Shortest Route Possible to reach the end point. It is important to note two things. First, the navigation mesh is invisible and has no collision with anything else. Secondly, Because the AI driver will follow the path on the shortest route possible, the thinner the path, the better. Notice the path the object will take in the following pictures

From those two pictures, you can conclude that a wide path does not work as expected.

AI Driver's logic setup


How to Do Kinetic Text with Animation Nodes?

The first thing to do is create a text object for each character as follows:

Next, create a spline that roughly represents the path that the characters  will take. Then create a follow-spline-action out of that spline using the Follow Spline Action node, then delay the action by some frames. The Action Viewer node can be used to visualize how this action will play out, where each row represents one of the characters, the start of the white block determine the time at which the follow spline animation will start and the end of the white block determine the time at which the follow spline animation will end. As you can see, the delay node offsets the animation of each character by some amount while the duration controls the duration of the animation:

The Object Action Output node is used to animate the objects based on that action we created, however, we offset each character along the x-axis by some amount that define the spacing between each character:

While everything should be ready, the action oriented the texts in a wrong direction, so we are just going to adjust it as follows, but this may vary depending on what orientation you want your text:

Which gives:

You might notice weird character spacing for non monospace fonts, this is because of our choice of a constant character offset, to fix this, a variable offset based on the local bounding box width of each character can be used.

For the bounce effect, a simple Animate Float node to control the x location with the y location controlled by the time evaluated at a bounce interpolation will do. The subtract node inverts the results such that its starts high and ends low while the multiple node controles how high its starts:

The other effects follow the same workflow. Falloffs are also very useful when dealing with such animation, see the documentation on falloffs for more information.


Smoothing in sculpt mode but not by Smooth tool

So I guess the answer is in your question  ;)   it looks like if you use the Clay brush with a high Autosmooth you add geometry without deforming the general shape. Also, maybe he sometimes switches to the Smooth brush with the shift shortcut. Of course make sure that your Dyntopo is activated with a low enough Detail Size (the lower it will be the smaller the geometry will be) and the Subdivide Collapse and Relative Detail options activated (so that the detail size will depend on your zooming).


2.8: Is it possible to Scale up the Grease Pencil object symbol?

When you have your Grease Pencil object selected, you should find in the "Data" panel of the Properties window a section called "Viewport Display" with an option to control the size of the marker


Inside the fluid simulation settings, go into the Cache menu. Inside of it there should be a file path. This will lead to the location where your fluid data is stored in.
Navigate to the folder where the Cache says the data is. Inside that folder, look for more folders titled with names like Data, Mesh, Config as those are the folder names that Blender uses to store fluid sim data. If you are able to find these folders and they have files inside, then you have a problem because Blender is not reading them. Double-check the file paths.
If they don't exist, then you have a problem because the fluid simulation files are gone. This is usually because if you do not specify a cache folder, then Blender finds a temporary space for it. On my computer, this temporary space is always cleared when it shuts down or restarts. This means you have to rebake everything again.
To avoid this problem in the future, always specify a cache folder in the cache menu before you bake anything.


2.79b Blender texture paint stroke oddity

Suggestion is to have a fresh start.
Delete the Brush in question and create a new one.  Use the new Brush and see if the problem persists.

You may have changed a setting unintentionally. There are many settings in Blender that you or I or some others may not have the time to track down at the moment. In the sense of triage you may have more important things to occupy your concerns.


My VDB from embergen is blocky and pixelated

Try increasing the samples and/or decreasing the tile size in the Volumetrics Settings in the Render Properties tab. Start and end work to increase resolution as well, however these settings modify the volume visibility based on camera distance, so be careful that your camera will remain within the distance range:


How to get cursor position in clip editor?

I'm assuming you're talking about the Mask mode of the Movie Clip Editor (it's the only 'clip editor' that has a 2D cursor). I've looked through Blender's source code, and it seems that the cursor location is not exposed to Python.


Scale/Dimension change when I add a curve modifier

Solution Found!! :D

Modifying the dimensions of the objects in EDIT mode solves the issue. It seems that my previous method of modifying dimensions in OBJECT mode does not actually modify the dimensions but applies a transform to the objects. And when the plane gets associated to the curve via the modifier, it seems that the transform of the curve gets also applied to the plane, which results in the weird change in dimensions I was observing.

Anyway, problem solved... Thanks to all those who tried to help!


How can I make a desert with sand that interacts with a car?

I have seen your Question and the video you have provided. Your first question is that whether it is possible to create that kickup effect. The answer is yes, but not the way you thought. You can't actually use a particle system for this one. For this, you need to use a smoke sim. They are easier to control and are way better. But I am warning you, YOU_ARE_GONNA_HAVE_A__BAD_TIME.
As for the tire tracks, that would probably need the particle system or some sort of addon like the molecular script. To create the dust simulation, you have to do this. Delete the default cube because its only purpose was to get deleted. Next, add a circle and flip it to be straight like this:
                               |
                               |
                               |

Next, go to the particles tab and create a new particle system. Go to End and set it to 1 and set the lifetime to 3. Next, go to velocity and set the speed to something like 10 m/s or something you prefer, and set randomize to 3 or something higher than 1. Next, use quick smoke and it has turned into a quick smoke simulation. Do you think I am done? No, I am just getting started.
Now, click on the emitter, click on the physics tab and select the flow source as the particle system. Next, select initial velocity. Now click on the box thingy and go to settings and set the resolution division to 120 or higher or lower depending on the quality you want. Set the time scale to the minimum value as a dust sim is a slow sim.  Now as you want a dust sim, it is pretty clear that you want the dust to rise, but no so much, so set density to 0.2 in behavior. Next, skip to Vorticity and set it to 4, the maximum value, as dust swirls a lot.
If you want ultra high resolution, select a high resolution for a very high-quality dust sim.
For more realism, add a turbulence force field behind the emitter (the circle) and play with the noise for how much strength you want. I recommend going very high because dust goes very long. Now click on the black box and select dissolve and set time to a very high number because dust takes a lot of time to dissolve. Select adaptive domain. Next name your simulation cache whatever you want and bake the simulation if you are happy with your sim. Next,
go to shading and add a volume info node. There, pick density and attach it to density in the principled bsdf density. If you want more naturalism, add a math node and set it to multiply, and set the value to some large number like 30 or anything depending on the visibility of the dust. Keep in mind the math node should be in the middle of the volume info node and principled bsdf node. Set the color to whatever you like but I would recommend setting it to the hex code #C0A080, the literal color of a dust storm.
Next, you have to render this out obviously so you can render it on your computer if it is beefy, watch it burn if it is weak, or what I suggest, send it to a render farm like fox render. Please don't strike me for spam as I am just suggesting a name. You have your dust sim ready. As for the tire tracks, I would say use an addon, as the molecular script addon. Please note that you don't necessarily have to use the values in this answer, you can mess with the values as you prefer. I will be sharing a video link. It is mostly for reference and I would recommend going with the answer than the video. (Please don't strike me for a huge wall of text.)
Here's the link:
https://www.youtube.com/watch?v=sNHIdcjhJT4
Hope it helps.


The displayed unit is megabyte, therefore you're using approximately 8.4 GB. The value is based on the performed memory allocations and can be higher due than your RAM due to virtual memory and swapping. The operating system can use your hard drive to allocate additional memory, in case all available space on the RAM is already in use. If you're trying to access parts of the virtual memory, that is physically stored on the hard drive, it will cause a page fault and the operating system will load the memory from the hard drive. In order to load this memory, it will have to swap parts of the allocated space from RAM with the allocated space from disk. Swapping is slow since the data rate for a hard disk is lower and latency for I/O is significantly higher than accessing RAM. However the big benefit is that you can use more memory than the physically available RAM.


Can you change the color of camera composition lines?

The option to change the composition lines in the camera is located in the User Preferences Themes tab under 3D View. Its called View Overlay.


There is no need to convert text or curves to mesh to extrude.
Curves converted to mesh will en up in bad topology most of the time... If there are overlapping segments then you will have errors like the ones shown on the question.
Use the Extrude settings in the Geometry section of the text controls in the properties window.

And please don't use photos from your phone, use screen captures, they are more readable


Background images only show up in cameras and the orthographic views. To get to the orthographic view, press numpad 1, 3 or 7 and then numpad 5, or press numpad 0 to go into the camera view


Edited UV of low poly object but now high poly object wont show in UV tab (2.8 Beta)

You are in Local mode. Press / on numpad.

Local mode temporary isolates selected objects for working with them.


What is the difference between dissolve and limited dissolve?

As per the wiki

A dissolve

  ...effectively turns the selection into a single N-gon. Dissolve works
  slightly different based on if you have edges, faces or vertices
  selected. You can add detail where you need it, or quickly remove it
  where you don't.

While a limited dissolve

  ...reduces detail on planer faces and linear edges with an adjustable
  angle threshold.

From experience, you would use a dissolve to create one large N-gon from several vertices while a limited dissolve can be used to remove excess geometry.


What is the reason these two UV maps interfere with each other?

The problem is that your UVMap Face 1 is actually mapping the Face 1.png

In your list of UV Maps, select the UVMap Face 1.
In the 3D view, select all the faces except the dice face 1.
In the UV/Image editor, press W twice (Weld) and move the dot to some where safe(transparent)

That'll resolve your problem.


Vertex stuck during cloth animation on rigged model

There are just too many conflicts in this file and the structure does not make it easy to try resolve.

To start / you have a vertex group called Dress assigned a weight of 1 that does what exactly? Nothing that I can see and would just remove it. A lot of the other vertex group came along for the ride with your transfer, like the fingers. You don't need those vertex groups in your outfit. You also have geometry overlapping like the cloak that is part of the Main Body object and the Outfit object which does not make things easier to understand.

If you select your rig and activate the 3rd last layer you will get your deform bones. Select the chest bone in pose mode and then the outfit before going into Weight Paint. You will see the weight painting is not that successful...
and the weight group also makes that clear...

A few suggestions. Work in Solid mode as it is easier to see. Ctrl N - will turn your normals all the same direction which is never a bad thing. Automated proccesses seem like a good thing but can also cause more work as you have to clean them up.

Guess you know you are being quite ambitious to try so many things at once?


Glowing/outline effect when particle and object are colliding

Dynamic Paint and Freestyle

Dynamic Paint. Contrasting particle paint with a mysterious mesh object in the shape of a number moving on the z-axis.  The mysterious mesh object is not shown to emphasize the Dynamic Paint process and not mesh movement. No Compositing Nodes. Image Above

Dynamic paint. Stopping particles with collision plane to show coincident locations.

Dynamic paint with Particle System.

A dynamic paint render. A cyan plane has been colored yellow with fading where the particles have hit the plane.  Image above.  Please click on image to see a larger version in a different browser window. The images were created by dynamic paint feature and then applied as a texture.

A Blender Render Node system showing a blur node.  Please improve and customize.

Dynamic Paint Example. Canvas, Brush, Particle System. Please customize to your tastes. Image above.  One panel is pinned to show data from more than one object.  Note that using a particles system with dynamic paint may eliminate some options that the OP might find useful in a future version of Blender.  The particles above seems to be used for location of the paint effect, disregarding size and shape.  The mesh paint effect which is not a particles clearly respect the volume.  Particles can be made in meshes by make real.  Keep aware of physical forces.

Mysterious Mesh object brush with brush settings for dynamic paint.  Not a particle. Image above.

Files created by Dynamic Paint based on particle system typically used as part of a  Blender File render. 2 Images above.  The yellow blobs show where the particle hit the plane.

Dynamic paint can detect a contact point / intersection or proximity between

Particles and a surface
Two objects

and color a surface.

The Blender compositor can use a [blur node] to create a visual blur because it can recognize different objects by object id.  A blur effect can be composed onto the image.
Freestyle and the compositor.  Freestyle topic can be searched here at BSE.

Outlining again.

You may consider fire/smoke as well.

These three bullet points are high level information.  Tutorials exists for these topics on video websites or you may find smaller explanations here at BSE

https://docs.blender.org/manual/en/latest/physics/dynamic_paint/index.html

https://docs.blender.org/manual/en/latest/render/freestyle/index.html?highlight=freestyle


As mentioned by CharlesL,
that glow is caused when the particles are rendered with Halo selected in Particle settings > Render:

From the wiki:

  Particles may be rendered as:

  Halos (for Flames, Smoke, Clouds).
      Meshes which in turn may be animated (e.g. fish, bees, …). In these cases, each particle “carries” another object.
      Strands (for Hair, Fur, Grass); the complete way of a particle will be shown as a strand. These strands can be manipulated in the 3D
  window (combing, adding, cutting, moving, etc).

To render a surface, you can change the rendered type to Object (to render a copy of an object in place of the particle) or Group (to randomly select the object from a group of objects)

You can change the halo settings by adding a halo material to the emitter object and changing the Material setting to the appropriate value in Particle settings > Render

The other options are

None
fairly self-explanatory, do not render particles
Line
Render a line along the vector of the particle
Path
Used with hair particles
Billboard
Render 2D planes at a fixed angle to the camera


Render colors do not match the reference picture

It's because the color is just in the material, the rendered image is affected by lighting/reflections. I would recommend going into the rendered preview mode and just tweaking the color/comparing the render to what you need until it matches up.


Switch to Scripting screen
RMB on Brush and click Edit Source
Cursor will be located in this line: layout.menu("VIEW3D_MT_brush")
Search for VIEW3D_MT_brush in the file (CtrlF, you may need to enable Wrap)
You will find the class VIEW3D_MT_brush(Menu): ...
Scroll down a bit and locate Curve Presets, the code line islayout.operator_menu_enum("brush.curve_preset", "shape", text="Curve Preset")

As you can see, there's actually no menu, but an enum property that is displayed like a menu.

Thus, you can't use bpy.ops.wm.call_menu(). If you use UILayout.operator_enum() in the draw function for WindowManager.popup_menu() and wrap that call in an operator, it is possible to show the presets like a menu:

import bpy

def draw_func(self, context):
    layout = self.layout
    layout.operator_enum("brush.curve_preset", "shape")

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

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

    def execute(self, context):
        wm = bpy.context.window_manager
        wm.popup_menu(draw_func, title="Curve Preset")
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

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

How to set up keymaps is covered here, if you want to let the script do that itself: Addon Tutorial #Keymaps (you should make your script an addon in order to use keymaps)


How do I define a command for each of the options?

One operator.
Rather than communicate enums between two operators, can add logic to use one.

If I understand the question properly, either wish to apply (try) all modifiers or one of all using the enum.
For this example have expanded the enum, and added the ALL option to the enum, tested for it.
In hindsight prob should have named the enum modifier
Other options to consider would be to have an operator boolean property to apply all.  Operator properties can be passed via layout with
op = layout.operator("foo.bar")
op.apply_all = True

to have a button to call same operator but do something different.
Test script.
bl_info = {
    "name": "Test Add ons",
    "blender": (2,91,2),
    "category":"Object",
}

import bpy

class ModifiersBase:
    @classmethod
    def poll(cls, context):
        ob = context.object
        return ob and ob.modifiers

class ApplyModifiersOperator(ModifiersBase, bpy.types.Operator):
    bl_idname = "object.apply_all_modifiers"
    bl_label = "Apply All Modifiers"

    def modifier_items(self, context):
        ob = context.object
        items = []
        for m in ob.modifiers:
            items.append((m.name, m.name, m.type))
        items.append(None)
        items.append(("ALL", "ALL", "Apply All Modifiers"))
        return items

    modifiers : bpy.props.EnumProperty(
            items=modifier_items,
            )

    def execute(self,context):
        ob = context.object
        wm = context.window_manager
        def ShowMessageBox(message = "", title = "Message Box", icon = 'INFO'):

            def draw(self, context):
                self.layout.label(text=message)

            wm.popup_menu(draw, title = title, icon = icon)
        try:
            if self.modifiers == 'ALL':
                for m in ob.modifiers:
                     bpy.ops.object.modifier_apply(modifier=m.name)
            else:
                bpy.ops.object.modifier_apply(modifier=self.modifiers)

        except RuntimeError as ex:
            ShowMessageBox("Please be sure of the modifiers setting", "Error", 'ERROR')

        return {'FINISHED'}

class ModifierPanel(ModifiersBase, bpy.types.Panel):
    bl_label = "Apply Modifiers"
    bl_idname = "OBJECT_PT_apply_modifiers"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "modifier"

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

        row = layout.row()
        row.operator_enum("object.apply_all_modifiers", "modifiers")

classes = (
        ModifierPanel,
        ApplyModifiersOperator,
)
def register():
    for cls in classes:
        bpy.utils.register_class(cls)

def unregister():
    for cls in reversed(classes):
        bpy.utils.unregister_class(cls)

if __name__ == "__main__":
    register()


Create a Mask with Nodes where There are Shadows (Cycles)

In Cycles I used the following setup for my "Earth + Sun" model. First of all, I've got an Empty parented to my Earth object. The Empty has a Track To constraint, target is the sun object and Target Axis is -Z, so it's pointing away from the sun.
In the Earth material I use the Object output of a Texture Coordinate node with the Empty as object. A Separate XYZ gives the Z value. The "sunny side" of the Earth is equal or below zero and the shadow side is greater than zero. This I use as multiplier for the emission. Of course you can use a Color Ramp or other methods for sharper transitions or whatever. This is just to give the basic idea, you can always tweak here and there.

These are the objects:

This is the Z output I get from the Separate XYZ node as multiplier:

And my final node setup of the Earth material for this example (my real Earth model of course uses more complex textures etc):

Here are some examples how to tweak the transition from light to shadow. The above image of the Z output looks simply black on the one side, but since these are the object's texture coordinates the black part isn't simply 0 but goes from 0 in the middle to -1 on the outer edge. A Map Range node mapping the -1 to 1 range on a 0 to 1 range colored by a ramp shows this:

To make the transition sharper you can shrink down the range by changing the From Min and From Max values, e.g. to -0.1 and 0.1:

Or maybe you want to shift the city lights a little bit to the sunny side (people already turning on their lights as the daylight fades?), than you can do that by shifting the From Min and From Max values more to the negative side, like -0.3 and -0.1:

I guess you can imagine a lot more variations of manipulating this.


Choosing the image on which the baking goes

Here's the method I use:

Create a new Texture in the UV/Image Editor and name it appropriately.
Create a new Image Texture node in the Node Editor (no connection to the tree) and select your created Image in the dropdown menu.
With this new texture node selected, go to yo Render Panel and bake your texture.
Repeat from Step 1 for different Bake Types.


Go to the render tab -> Shading and change the Alpha from Sky to Transparent.


Enable shipped add-on Curve Tools. Sidebar > 'Outline' > Offset curve
Answer provided by: @Robin Betts


Texture Painting mode: Missing data warning

To paint on the model you need to create a texture in the material.

Click on Add Paint Slot and select Diffuse Color.
This will create a texture that will have Color influence on the material in Blender Internal, and if you are in Cycles Render it will add a texture node on the material.


You can find the brush options in the N panel (on the right of your 3D view) > Tool tab > Brush > Blend, or in the Properties editor > Active Tool tab (the second one) > Brush > Blend. In Weight Paint mode I don't think you can invert the function with any shortcut, ctrl is for sculpting, it would be a nice idea though.


There are a few things to improve in your scripts.

for v in [v for v in bm.verts if v.select]:

Here you create a list of selected vertices, and then loop over that list. That list constructed using the list comprehension is unnecessary. Instead just write this:

for v in bm.verts:
    if not v.select:
        continue
    ...

The same goes for creating Empties in your second script. It's not necessary to first create the entire list in memory. Either use a generator expression or just use an if ...: continue construct.

The empties.append((v.index, empty)) adds items to a list that is never used. Better remove it.

In the second script you use operators where you could use regular functions. For example, use bpy.data.armatures.new(...) and link it to a new object, instead of using bpy.ops.object.armature_add(...). Every operator call creates an undo-step in memory, so it's much slower than using direct data access functions.

Here is the second script, which uses a single armature for all the bones, and as much direct data access (properties, function calls) as possible:

import bpy

C = bpy.context
try:
    arm_ob = bpy.data.objects['Armature']
except KeyError:
    arm = bpy.data.armatures.new('Armature')
    arm_ob = bpy.data.objects.new('Armature', arm)
    C.scene.objects.link(arm_ob)
else:
    arm = arm_ob.data

# Set to EDIT mode so we can add bones.
C.scene.objects.active = arm_ob
bpy.ops.object.mode_set(mode='EDIT')

# Add the bones
for l in C.scene.objects:
    if l.type != 'EMPTY':
        continue

    bone = arm.edit_bones.new(l.name)
    bone.head = l.location
    bone.tail = bone.head
    bone.tail.z += 0.5

# Go to POSE mode so we can add constraints
bpy.ops.object.mode_set(mode='POSE')
for bone in arm_ob.pose.bones:
    clc = bone.constraints.new('COPY_LOCATION')
    clc.target = C.scene.objects[bone.name]

The armature for the subdivided Suzanne below took around a second to create, and consists of 2012 bones:


Yeah, that is just not going to work. It is actually not compatible with 2.8 or many of the previous versions. Even though it may say. There are forums all over the place that say the same thing. No one has gotten it to work. But, it is probably for the best. Renderman is not near as capable in clarity of pixelization as cycles. 1080p in Cycles vs Rman is a pretty big difference. Plus, I would guess that alot of the modifiers in Blender would not work in Renderman. It also takes alot more time to Render especially in Windows. And a huge bug with Renderman that comes from what people like about it overcasting light, is that you will get pitch black shadows sometimes that you cannot get rid of.


About 20 seconds after I posted this I realized there was another view options section on the top right side of the view port or it can be accessed with hotkey N. I had pretty much every setting in the view section on the top left hand side, and almost every setting in the navigation and view port sections of the preferences settings. Please discard this question, I am just a beginner and am not used to the interface yet


blender videoediting Use Python batch save mp4，Save all the cut small videos in batch

If the strips in question could be selected before executing the strip, this task becomes fairly easy, since we can use the final_frame_end and final_frame_start attributes of each strip.

Make sure, the desired strips are selected.

Then execute the script. (Note, that there will be no feedback except for the console, so you will have a hard time tracking the progress of the render, except for checking on the filesize of the created files. Blender UI will freeze untill the completion of all renders intiated by the script.)

import bpy

seqs = bpy.context.selected_sequences
scn = bpy.context.scene

# store the filepath and original start and end
filepath = scn.render.filepath
start, end = scn.frame_start, scn.frame_end

# loop through all selected sequences
for s in seqs:

    # set the rendersettings start and end to the
    # current strips start and end
    scn.frame_start = s.frame_final_start
    scn.frame_end = s.frame_final_end - 1

    # add the strip name to the rendered movie name
    scn.render.filepath = filepath + s.name

    # start the animation render operation
    bpy.ops.render.render(animation=True)

    # write something to the console so we know
    # that a clip finished
    print("Rendered", s.name)

# REstore the filepath and original start and end
scn.frame_start = start
scn.frame_end = end
scn.render.filepath = filepath


(BGE) Track To Actuator only works when crossing the track axis

You want to start tracking when the object is created -> activate the TrackToActuator with an AlwaysSensor.

Be aware the ray sensor measures along local axis. This means it turns with the object. The Sensor will only evaluate positive when detecting an object (= must block the ray). In other words tracking starts after seeing an enemy.


rendering negative frame ranges. How to?

In 2.8 there is an option to do this in the blender properties window.


I think you are using Export UV Layout function - this just exports an image containing a wire so you know where to paint the texture.

If you already have the texture and just want to save it, open it in UV/Image Editor and press F3.