Move multiple objects to new vertices in animation, assign automatically

You may be able to use particle systems to do this. The Harmonic force-field can set up a one-to one correspondence between particles in source and target systems. With damping set to 1, source particles stop at their target-partners locations.

On the target, set up a particle system with no physics,
[vertex-count] particles emitted from vertices, all at frame 1.
In 'Force Field Settings', set the target system to generate a Harmonic field, with quite a high strength, and Damping of 1:

Set up a  source particle system, set the emission as for the target, this time from the source object, and in its 'Field Weights' set it to respond to the Harmonic field of the target.

So far, so good. The source system will be attracted to, and land on the target system (which you will be hide, in any render)
The remaining question is how to avoid collisions between the source particles on their journey to the target..

Here, in the 'Force Field Settings' of the source system, I've given the particles a 'Charge'. This does, at least, seem to cause enough repulsion between particles to avoid interpenetration:

Options might include giving the source system 'Boid' rather than 'Newtonian' Physics, with an 'Avoid' rule, and plenty of 'Personal Space'. If the worst comes to the worst, you could have a third particle system with 'Keyed' physics, which would let you mix-and-match between other particle systems, picking the parts of their behaviours which work for you.

Have a play, anyway, it might be a starting-point.


It seems like you need to go into the object mode and apply the rotation. Go into the object mode, select your object and press CtrlA and then apply rotation.


Problem: light passing through metal surface

The point lamp was larger than the mesh that contained it, reducing the size of the lamp I solve the problem.

Thank you all


how do I put the 3D cursor inside an object?

Press Space and select Add Empty then Plain Axes, or add any other dummy object to your scene. Move the Empty object to your desired location using the usual G command. Then bring up the Snap menu with Shift+S and select Cursor to Selected (with access key u). Finally, press Delete to remove the Empty object.

The other techniques described in the comments (zooming in, being in wireframe mode and using Shift+S with Cursor to Grid) are quicker, whereas this technique gives you more precision.

Alternatively, you can press N to bring up the Properties pane, and manually adjust the 3D Cursor's X, Y and Z coordinates:


So as your numbers are flat you should rather use an image texture than 3D meshes:

Give colors to the different parts of your mesh (here red, black, and whatever for the rest).

Unwrap the whole mesh.

In the UV Editor, export the UV layout.

Use this UV layout as a blueprint to create the numbers layout in an image editor. Keep a layer of white letters on a transparent background, save as PNG.

Import the image in Blender's UV Editor, align the UV correctly.

Go in the Shader Editor, select the red material, create an Image Texture node, plug it into a Diffuse, plug its Alpha into the Factor of a Mix Shader, plug the red Diffuse into the other socket of this mix. Do the same thing for the black material.

The numbers should appear on the roulette.


The Texture on a mesh moves in animation

Looks like you have reflectivity turned on. Uncheck this box:

If using Cycles renderer, make sure you're using a Diffuse texture instead of a Glossy one:


Is there a way to pack all simulation results in to one file?

No you can't pack the simulation into the .blend file, but you can save the blend file and the baked simulations on to the same folder and move them to a different computer for rendering.

Just make sure you use relative paths //


Fastest PBR Material Workflow for a beginner?

Here's an answer Reddit user Mcurt posted on the Blender sub:

"There are a lot of factors that determine what tool/workflow is the best for texturing. If you're mostly just using PBR texture maps online, there are a bunch of other sites besides Poliigon that offer free textures. I rarely use Poliigon anymore because they don't have free textures, or at least any at decent resolution. Here are some other sources.

https://texturehaven.com/textures/

https://beta.gametextures.com/shop?order=popular

https://www.textures.com/

https://cc0textures.com/tagged/all

https://www.cgbookcase.com/downloads/

If you enable the node wrangler addon, you can ctrl+shift+T on the Principled BSDF node and instantly add your whole PBR shader.

I find Substance Painter to be most useful for mixing multiple materials in a single texture using smart masks, etc. It is probably not quite as necessary for arch viz stuff.

Other than that, procedural materials created in Blender can be really useful too. This requires practice and a bit of studying the node trees of materials you find on the web. I don't know of many up-to-date sources for procedural cycles materials aside from the Cycles Material Vault, which I'd love to pick up some day."


Basically the constrained object (a mesh, a bone, an empty) has to be set (or keyframed) in the world origin location (0,0,0) when the follow path constraint is set up, so that in the first frame of the constrained action it will be exactly where the first point of the path is, and in the last on the last.
If you still have offset problems and you don't want to change your elements you can create  an empty, set it as path constrained, and parent the root bone of your armature to the empty, then move the root bone to the appropriate location on the first frame.


Align curve control point tilt with snapping target

I don't know if this is what you're looking for but you may enable the project individual elements on the surface of other objects option (with the snapping tool (Face) enabled also).


Similar to what happens here: Text objects are messed up when using Offset

(October 2015)

Most font rendering engines cope with this OK, currently Blender doesn't, but maybe not for very satisfying reasons and perhaps it needs some explanation. There are reasons to consider this a flaw in Blender's Glyph conversion, but at the same time the Font Designer made a decision to release a font which has a few technical flaws (like overlaps and intersections).

Text Objects can be thought of as a specialized case of the Curve object, and Curve data can contain multiple disjoint parts called Splines or in typographic lingo "Elements".

Make a Text Object using that font, add the capital T glyph.
In Object Mode convert the Text Object to a Curve to analyze the splines/elements of the glyph. (Alt+C).

Now you'll see the elements that make up this letter. These are the curves as the typographer would see them (more or less).

The scanfill algorithm is what converts 2d outlines taken from the curves to 2d surfaces. The problem with this font is that some parts self intersect (they overlap, and cross a boundary), the algorithm that decides whether to subtract an element is oblivious to the intention of the Glyph designer, and seems to be oblivious to the concept of element direction in Glyphs.

If the intention was a Boolean AND (right), that's not what happens, we get a Boolean XOR difference (left):

Overlap, is a technique often used to quickly create sharp transitions. Some consider it bad practice in Glyph design, Font Editing software will even warn about it before saving. But people like convenience, and overlaps can be taken advantage of, see below: Notice that the direction of the element determines whether it is additive or subtractive:

here's the same glyph rendered in Blender:

Technically this is a valid glyph, in the same sense that it's legal to drive through an orange light we are recommended to avoid doing that. Blender doesn't recognize element 'direction' as a factor in whether it should subtract or add Curve elements, until that's implemented you will get the occasional unexpected font-rendering.

Back to your font.

Below I selected the left most element and translated it away in the Y direction so you can see where the overlap was happening. If you do the same and move it slowly you'll see how the scanfill algorithm responds.

That's all great, but How do I make this work in Blender?

Edit the Curve directly

- convert to Curve
- of the letter in question, select all elements and individually switch off their Cycle U toggle.
- then move around the handles/anchors that overlap and join them in the appropriate places
- then finally once all of the major overlaps are fixed, then press toggle   Cyclic back on.

Edit the font!
It's a .ttf, on linux you can use the free FontForge and cut away the overlaps. (beyond the scope of Blender.StackExchange)


Where is the color selection for text menus?

This is in the the group Pulldown under User Interface as Text.


Strange shading on surface. Normals facing right way, no double faces, no double vertices

You have autosmooth enabled, you just need to disable it:

Since your objects have all triangular faces, what you see is the result of auto smooth shading which enhances those triangular shapes.

edit: to other readers benefit, I'll add that as (again) @Mr Zak pointed out, the real reason for this behavior should be "custom split normals" created by the external application from which it was imported this file in Blender.

below an image showing how to remove those custom split normal data (I couldn't find it before), and the effect on 3d viewport shading. After clearing that custom data, the "autosmooth" limit angle data is enabled again, although it is not needed at all in this case.


Now that Geometry Nodes is here Should I still learn Animation Nodes?

It depends on your use case.  I still use Animation Nodes due to the fact that I can use it with loops and include python scripts with it, which makes it very powerful.
The original creator of Animation Nodes is also one of the developers working on Geometry nodes  (Jacques Lucke).
I have no doubt geometry nodes will eventually get there but it will take time, the thing is how long are you willing to wait.
Geometry Nodes Project Link:


Bones with copy rotation rotate when the parent bone rotates

First, I changed your coat tail bones from Quaternion rotation to Euler XYZ because you won't ever need quaternions if you don't also have 3-axis rotations (and you don't have them because the local Y of your coat tail bones is not of relevance to any motions). This change wasn't essential to the solution which appears below, however, so while my version of your file has this change, if you don't want it, you can safely switch the coat tail bones back to Quaternion if preferred.
Start by selecting all your coat tail bones in Pose Mode. Open the Bone Constraint tab in the Properties Panel. Uncollapse your Limit Rotation constraint listing (NOT the Copy Rotation one). Hold down the Alt key, and while it is held, change Owner from Local with Parent to Local Space. By holding Alt while doing this, it applies the change to all selected bones at once.

Your coat tails will now respect the rotation of your waist bone, but also rotate with your thigh bones.

Here's a link to a recent video I watched that I thought was very good for helping me more deeply understand how constraint space works in Blender.
https://www.youtube.com/watch?v=bhRrVn5gXZk&t=626s
Hope this helps.


Blender Logic Editor Sensor Property True If Z Value Less Than Property

It turned out that the properties are not the custom properties of the object - more like variables on the right side of the logic editor which I didn't see because the view was to small.


3D Medical implant designing and Printing - Perfect Adaptation to Surface with Complex Geometry

You need a shrinkwrap modifier on the plane, targeting the mandibule, then after that you use solidify modifier with 1mm thickness (turn on high quality normal too). Make sure your plane has plenty of geometry to shrinkwrap onto the mandible, do so by adding a subdivision modifier before the shrinkwrap if necessary.

If the shrinkwrap act weirdly try decimating the mandible a little bit with a decimate modifier since it's very high poly and might glitch the shrinkwrap.


How to render over camera border or overscan?

There is currently no builtin way to correctly setup an overscan. However you can simply use the workaround Andrew Price mention in his twitter feed from 2015.

  In the render dimensions set to 105%. Then with the camera selected, go to focal length, click edit, add *0.95 to end of whatever is current.

To add 20% to the image:

Go to the render dimensions and enter 120% under the Resolution section.

Then click into the focal length field of the camera and divide the current focal length by 1.2

This obviously won't produce a true overscan, like an .exr image supports. You'll have to add a Reformat node (centered) in Nuke manually.


How do I disconnect two points of a bezier curve?

To close a curve (make it Cyclic), select the first and last segments and press Alt+C.

To open a closed curve at the press Alt+C again.

To open a curve at any point that is not the start and end of the loop, select two control points and press Delete (or X) and select Delete Segment


To enable accurate object collision, in Physics tab change Collision Shape of the rigid body to Mesh instead of default Convex Hull.


[Blender2.8]When getting vertex belongs to vertex group

No verts are assigned to the group
The trivial error in question code (bpy not boy) aside, you have not assigned any vertices to the new group.
Test script, assigns verts indices 0, 1 and 4 to the new vertex group of object named "Cube" if it exists.
import bpy

obj = bpy.data.objects.get("Cube")

if obj:
    vg = obj.vertex_groups.new(name='Group')
    # need to assign some verts to group
    vg.add([0, 1, 4], 1.0, 'REPLACE')
    for v in obj.data.vertices:
        for g in v.groups:
             if g.group == vg.index:
                 print(v.index)

If you already have a vg named "Group" and wish to use it, or create if non existent
vg = (obj.vertex_groups.get('Group')
     or obj.vertex_groups.new(name='Group'))

Feel it is important to note that question code
obj.vertex_groups.new(name='Group')
vertexgroup = obj.vertex_group.get('Group')

will work "as expected" only when there is no prior vg named "Group".  Other wise the newly added group will be named "Group.001", "Group.002" etc etc, yet you are only ever getting the one originally named "Group".


Blender using memory for no reason; Blender loading up Memory Usage. Why is that?

Basically the problem you're facing is that blender is storing a large amount of memory for the undo steps.

You can change this by going to File -> user preferences, under the Editing tab you'll find a section called Undo.
Here you can adjust the number of undo steps and memory limit.
The lower the amount of undo steps, the less memory blender will have to store.

That's why repeatedly clicking on random operators is clearing your memory stored in previous computationally expensive undo steps.


subsurf splits the mirrored model into two objects

A couple of things could be effecting your model.

Internal faces cause the subsurf modifier to "pull in". To fix this you need to delete the faces that will become internal faces after the mirror modifier duplicates your mesh.

The order that the modifiers are listed effects how they interact. Having the subsurf before the mirror can cause the edges in the centre of the mesh to pull away before the mirror duplicates the mesh. To fix this you need to have the subsurf under the mirror modifier. You can use the up and down arrows on the modifiers to re-order them.
If your subsurf modifier is after the mirror and the edges still shrink away from the centre of your object you need to enable merge in the mirror modifier. Enabling clipping in the mirror modifier can also help to get the centre vertices aligned so that they merge.


How to change default option for UV selection?

Just untick option in Preferences... (I searched by key, which is 'L', and scrolled down to UV Editor).


Is it possible to reduce video light flicker with Bender?

You could normalize the brightness and dark values then retarget them but the gama value would be almost impossible to determine of the image is being over exposed. Deflicker is non trivial and requires inter frame access which blenders nodes don't have.


How to set individual shadow catcher objects per render layer

This is my workaround about it:

I Used 3 frames and set the Shadow Catcher for every object in its frame.

Let the mouse pointer over the Shadow Catcher checkbox and press  I , this will make a keyframe to that single frame.

Move to the next frame, check the Shadow Catcher and with mouse pointer over the Shadow Catcher checkbox and press  I  again.

To the next frame, unckeck the Shadow Catcher and with mouse pointer over the Shadow Catcher checkbox and press  I  again.

Repest it to the other object. But using: frame 1 - unckeked, frame 2 - unchecked and frame 3 - checked.

Render the 3 frames an Animation.

See the image below:


Why are some edges not appearing in my Freestyle render?

You can select those edges and mark them as Freestyle edges. Then tick the Edge Mark option.

Alternatively you can probably tweak the crease angle, but you may get unwanted lines.


Best settings to reduce cycles memory consumption

Here are some hints for better memory usage.
Though with only general info its hard to give a good answer.

Avoid floating point textures where possible - typically EXR, HDR.(includes 16bit PNG, TIFF, JPEG2000 which are converted to floating-point), these use 4x memory.
Avoid displaying textured objects in the viewport (OpenGL-GLSL), this will load textures into memory which is not shared with Cycles - so the textures get loaded twice.
Use instanced objects where possible.
Take care using subsurf, curve-render subdivision levels.

The only other suggestions would be to reduce memory use from the rest of Blender.

Render in background mode. or...
Reduce undo steps (undo can use a lot of ram), you could even dissable undo.

There may not be a whole lot you can do, if you already checked that you don't have excessively high geometry or high-resolution textures, perhaps you just have to render less complex scenes or buy more ram.


Black zones of zero weight insist in showing in my model no matter what I do and they don't move at all. What am I doing wrong?

I found a solution: the blend on "add", then I painted the black areas in one of the upper bones in red (1.0). I guess in other words no weight had been assigned to those vertices and once I did, those parts move with every bone.


When I try to move a model everything in a circle around it moves as well

You have proportional editing turned on. Look at the middle on the bar at the top, the thing that looks like a target sign. It is blue in your case, meaning it is enabled. Click it, or press O to turn it off.

Proportional editing allows you to affect the movement of nearby objects when moving one. It is useful in some cases, like in edit mode when you want to create smooth bumps but don't want to move individual vertices.


How do I animate the scaling of a texture?

One way I do this is through creating multiple uv maps.

Create the first UV map as usual.
In the Object Data panel click the "+" to add a new UV Map.

In the UV/Image Editor the new UV Map will now be active. Move the UV Map (G) to the new desired location.

In the Node Editor create two "UV Map" nodes from the input submenu, selecting one of your UV Maps on each.
Plug them into a color, Mix RGB node.
Use this as the input for the Vector value on your image texture node.

The Factor (Fac) value is now the value for going between the two UV maps.
Animate this value by pressing i while your mouse hovers over the fac field. You should place the first keyframe when the slider is at 0 and your time cursor is at the beginning of your animation, and the second when the slider is at 1 and your time cursor is at the end of the animation.

In the end, your final result should look like this:

Please note: this method works for scaling, and translating. Small rotations (< 90 degrees) will work okay, but any larger will start to cause larger distortions and other methods should be use.

I hope this was helpful.

Thank you,

Uncle Snail


Keep in mind that in wireframe view, your strokes are applied to all vertecies behind the brush not just the ones on the closest face. You might try rotataing the model, so only what you want to paint will be hit by the brush, or not using wireframe mode (wireframe mode renders edges as dotted white lines). You can use the "Limit Selection to Visible" button at the bottom toolbar of the viewport to change whether or not your strokes apply to verticies behind the first surface you hit.


Just an idea..

You could just draw with really soft brush in Photoshop/Gimp, something similar to a flame. Then use that as the mask factor.

I just did this on a flat plane. If you use a solid object just make sure all the sides are close to each other or it might look a little weird.


Setting Stroke Placement to View should do the job.

In Blender 2.8, you can find the option here:


Is it possible to make the 3D view in the UV Editing context 'opaque'?

Enable limit selection to visible in the header of the 3D view:


Where is python file for exporting DAE (collada)

The collada import/export functionality is provided through c++ source code included with blender that links to an external opencollada library.

If you want a python example for collada have a look at the better collada exporter it is part of the godot project as is meant to be better than the default blender collada exporter.


Creating a space dome? Is that how that works?

You can make a star field by shooting a panorama in one scene, then using the resulting image in another scene as a world texture. You won't have to render the particles all the time and you can pan anywhere.

Make a cube with only static particles
Place the camera at the center of the particle cube (emitter) and
remember to turn off the emitter object (so that it doesn't render).

Use a simple icosphere as the star object and hide it on another
layer.

Set the camera to the center and make it Equirectangular Panoramic.

Make sure that the scene you render is high resolution and square. In this case 3000 x 3000 pixels. I have set the samples very low to render faster. As all the stars use emission materials there is no noise.

Nb. I have accidentaly left the particle object on the same layer and you can see it as the largest star in the sky (bottom left corner).

Make a new Scene with only a camera in it. Then make a World material using the star field that you just created.

You will be able to pan or tilt anywhere in this world, even fly towards the stars but never reach them.

Usefully you could also write names in the stars as modified particles and have them display in your world as well.


Add particle system as suggested here Python and particle system
Make sure the cell fracture addon is enabled, and call the operator
bpy.ops.object.add_cell_fracture_objects()

Which uses defaults as mapped out in doc string
>>> bpy.ops.object.add_fracture_cell_objects(
bpy.ops.object.add_fracture_cell_objects(source={'PARTICLE_OWN'},
        source_limit=100,
        source_noise=0,
        cell_scale=(1, 1, 1),
        recursion=0,
        recursion_source_limit=8,
        recursion_clamp=250,
        recursion_chance=0.25,
        recursion_chance_select='SIZE_MIN',
        use_smooth_faces=False,
        use_sharp_edges=True,
        use_sharp_edges_apply=True,
        use_data_match=True,
        use_island_split=True,
        margin=0.001,
        material_index=0,
        use_interior_vgroup=False,
        mass_mode='VOLUME',
        mass=1,
        use_recenter=True,
        use_remove_original=True,
        collection_name="",
        use_debug_points=False,
        use_debug_redraw=True,
        use_debug_bool=False)
(undocumented operator)

Test code, produces result as in image above.
import bpy
from addon_utils import enable

# make sure cell fracture is enabled
enable("object_fracture_cell")

context = bpy.context

# Draw hemisphere of 1 m radius
bpy.ops.mesh.primitive_circle_add(
    radius=1,
    enter_editmode=True,
    align='WORLD',
    location=(0, 0, 0),
    fill_type='NGON',  # NOTHING  or NGON
    )

bpy.ops.mesh.bisect(
    plane_co=(0, 0, 0),
    plane_no=(0, -1, 0),
    clear_inner=True,
    )

bpy.ops.object.editmode_toggle()

# Particles

ob = context.object
ps = ob.modifiers.new("Part", 'PARTICLE_SYSTEM').particle_system
ps.seed = 1
ps.settings.count = 100
ps.settings.frame_end = 1

# cell fracture

bpy.ops.object.add_fracture_cell_objects()


How would you go about making a polarizing camera filter in Cycles?

You can fake this effect from the material point of view not from Camera or global as @JaroslavJerrynoNovotny stated in the comments.

This effect can be used to control object Roughness (best with Principled BSDF) or for mixing material/shader with Transparent Shader (water, glass) or just for mixing different materials.

Scene setup

Most important thing here is to have object in front of Camera which will be our "filter".

I've used Plane parented to Camera for ease of use.

Materials

"Filter"

It's only Transparent shader. Pure white value for invisible filter or a little bit darker to make it more realistic as polarization filters tend to be darker.

Water/Glass/Mix

In this setup we are using Light Path > Transparent Depth as a mix factor to utilize our transparent filter. Math node controls how strong this mix is. You can make material fully transparent or leave some reflections as I did.

To make this process faster along other materials in the scene you can create simple group out of Light Path, Math, Transparent and Mix exposing Math socket and shader socket.

Other materials

You can use Light Path > Transparent Depth (with Math) as a Roughness input but this method seems to be way to artificial. If I come with better idea than this I'll make an edit.


It is possible to get UV coordinates and UV colors but for that, you have to install Animation Nodes + Extra Nodes because it has UV nodes and Texture Input node.

Step-1: In this example, I'm using Cube object and its default UV map with a simple image texture,

Step-2: You can access the UV coordinates with the UV Map Data Input node. I have subtracted combine (UV coordinates) by value 0.5 to bring these vectors at the world center in 3D space,

Step-3: Next, add the image texture (whose color values you want at the UV vertices) as Texture,

Step-4: Now, we will evaluate the texture at the UV coordinates (green points) in 3D Space with the help of Texture Input.

Step-5: But, we have a small problem that Blender does not show the Texture in the 3D space and its scale. So, I have added the Vector Math (scale) and Vector Offset nodes to estimate the scale of the texture,

Step-6: Next, connect the Texture Input node and adjust the scale such that it should match scale in Step-1. In this example, the value of scale is 2. The output of the Texture Input node is the colors of the image at the UV vertices.

Blend File:


Matching identical objects in two models

You can do this:

set the origins of these identical objects to geometry -> In object mode choose the first object in the top menu, select Object->Set Origin->Origin to Geometry (do this for both objects)
With both object selected press "Ctrl"+"a" ->"All transforms" -- just in case reset the transforms.
select the object which you want to remains in the current position
press "Shift"+S -> select "Cursor to selected"
select the second object
6)press "Shift"+S -> select "Selection to cursor"
The second object will match the first.


Artifacts in render, but not in preview?

You have a duplicate of the cylinder with holes object called Circle.002 which is hidden in the viewport, but not in the render. If you enable it in the viewport, the effect becomes obvious:

Also I'm pretty sure you don't need so much subsurf. Usually I don't use more than two subdivisions, sometimes three.

With all objects set to one level of subsurf, your scene renders in about 2:48 for me.

With the original subsurf settings, it renders in 3:50.

The visual difference seems pretty negligible, but there is change some of the lighting/camera angle in between tests because I stupidly did the 1 subd test first, then had to reload the scene to get the original subserf levels..

There are also quite a few ngons (faces made up of more than 4 vertices). These usually don't play well with subsurf, and cause some distortion. Here is an example screenshot of some ngons (subsurf is disabled in the screenshot):

I also noticed that you are getting a lot of noise from the environment texture. Enabling Multiple importance sampling in the world settings should help reduce that:


Is there a way to make baking sound to F-curves more accurate?

It's not an answer, but I've worked around it by processing the audio data in Sonic Visualizer, saving the spectrogram as a PNG, then importing the data into blender through a script I wrote. It basically splits the image into several long strips, each representing a bar, and treats each pixel in the X direction as a new frame. It sets the height of the bar based on the brightness of the brightest pixel in the current chunk, with some stuff to smooth out the motion, and then keyframes it. After I've cleaned it up a bit, I'll edit this to include it.


Unfortunately, the message you want to get ride (Fra:5...) is printed directly on stdout by a fprintf function (source/blender/render/intern/source/pipeline.c). It's not printed by a specific function which has a hook with python... And I don't think the embedded Python engine has the power to act on the pipe between the console and Blender. I think the only way to do what you want is to write an external launcher script to filter Blender stdout. As you don't want to use external tools like awk, you can use the Blender python engine which is in the blender directory.


This is happening because your curve Preview resolution is low,

So, in the curve-properties, increase the curve Preview resolution


In case of creating geometry parametricaly, you can use addons:

Sverchok (github) -  is a powerful parametric tool for architects, allowing geometry to be programmed visually with nodes.

Animation nodes - this tool mostly for animation, but maybe it can be also useful for you

Anyway, you must create your own logic using this addons (or find node trees in internet), so you must study how to create meshes using logic nodes from this addons.


How do you model a shape that is asymmetrical?

in your 3D view, Add > Image > Reference > select your image, press AltR to reset its rotation, choose orthographic top view, create a plane and extrude until you have this kind of result:

Then extrude up, bevel the angle, give it a Subdivision Surface modifier, etc...


Saving/Exporting an Image (Directly from 3D View)

Your only options are to either do an OpenGL Render (available via the Render menu at the top of the window) - which will re-render your image using OpenGL (which is what the viewport uses so is quick and should look the same as your image) - or you can tell Blender to take a screenshot of your current Blender window by pressing Ctrl+F3 (although once you've saved your screenshot you'll need to open an image editor (eg, Gimp) to trim off the rest of the window as the screenshot will consist of everything).


How do I get hair strands to curve in blender?

You could try increasing the number of segments. In my image that setting is greyed out, because I've done some particle edit after setting it. It needs to be set before editing the hair. 50 segments, like I have here, is overkill, I just set it to something high.

Lowering the Degrees setting under Render in the Particle settings may also help. To access that setting you'll need to activate Strand render.
You could also fiddle with the B-spline setting, but increasing the number of steps will slow things down.

Here are some settings I've just played with. The ones under Hair dynamics affect how fast and how far the hairs will fall.

And this is what I put together using those settings


How to select vertices based on their number of edges

Use bmesh

Strongly suggest ditching bpy.ops.mesh operators for bmesh.

Test script, run in object mode, creates the grid mesh and pokes it.  The return of the poke operator gives the new faces as well as the new "poke" vertices.  For example sake have added to a vertex group named "Poke".

Select the vertex group "Poke" and will see that all newly poked, (linked to 4 edges) verts are in it. Alternatively see edit mode answer below.

Object Mode Script

Create a new mesh, load up the newly created bmesh, add a new object with the mesh and link to scene. No operators, no edit mode toggling, no selecting....

import bpy
import bmesh
context = bpy.context
collection = context.collection

bm = bmesh.new()
bmesh.ops.create_grid(bm,
        size=11.95,
        x_segments=30,
        y_segments=30
        )

ret = bmesh.ops.poke(bm, faces=bm.faces)
verts = [v.index for v in ret['verts']]

me = bpy.data.meshes.new("PokedGrid")
bm.to_mesh(me)
ob = bpy.data.objects.new("PokedGrid", me)
vg = ob.vertex_groups.new(name="Poke")
vg.add(verts, 1.0, 'ADD')
context.collection.objects.link(ob)

Edit mode.

Run this test script in edit mode.  Selects all vertices with 8 linked edges.

import bpy
import bmesh

context = bpy.context
me = context.edit_object.data

bm = bmesh.from_edit_mesh(me)
for v in bm.verts:
    v.select = len(v.link_edges) == 8

bmesh.update_edit_mesh(me)

Lastly on distribution, recommend collections.defaultdict

import bpy
import bmesh
from collections import defaultdict

context = bpy.context
me = context.edit_object.data

bm = bmesh.from_edit_mesh(me)

verts = defaultdict(list)

for v in bm.verts:
    verts[len(v.link_edges)].append(v.index)

print("Total Verts", len(bm.verts))
for k, v in verts.items():
    print(k, "linked edges", len(v))

Output.

Total Verts 1741
3 linked edges 4
5 linked edges 112
8 linked edges 784
4 linked edges 841


Why can`t Blender move appended objects normally?

It is looks like you activated local transform orientation:

in this case each object moves on it's own local axis.

If I'm not right, attach a screenshot.


You can. The "sink" is called outflow, look for "Outflow" in the fluid sim. And the outflow mesh stops water from overflowing.


Creating a "bubble" shape lense for goggles

If you have a nice number of vertices in the perimeter ( I think you do.. 12 on each side of the triangle?)

Then:

One inset
Delete inner face, and select new perimeter
CtrlF (Face Menu) > 'Grid Fill'..

.. can give you a nice topology, in which you can select a central vertex, and
 O Proportionally Edit it. Set the Transform Orientation to 'Normal', and GZZ bulge the vertices outwards.

If you need to conform to existing geometry, you can hide the outer edge-ring (blue in the picture) while you're doing the proportional edit.

If when you unhide the outer ring the transition is too sharp, you can select  all but the vertices on the perimeter and  CtrlV > 'Vertex Smooth' them.


Disclaimer: as the question is about workflow, maybe we'll have to change some things about this answer depending on the OP needs. We'll see.
Disclaimer 2: If you are not using the node wrangler add-on yet, that's the time to start. It makes node-inspecting much easier.
I think you can't (and you won't): layering is in the material.
This is the setup I would use for this situation:

The first node (or gruop of nodes) is the shader of the non-decal(layer1), then you have a second node that basdically overlay the shader of the decal in the right places (inside there's a mix shader node and another shader group as shown below) (layer2)

Other shaders have a similar setup: a shader (layer1), if you need the decal, you just add the Decal node (which is the same for all the materials) (layer2).

I would change the material of the model in the material slot on the right. Remember to enable Fake user, or you'll lose them at quitting.

So basically, my "Decal" material is not a material, but a Node Group that contains a shader. Layering happens inside each node group. This way blending can be animated for example linearly, with a mask, ecc... it's more flexible.


how to render multiple things separately

This tutorial explains how to work with view/render layers
https://www.youtube.com/watch?v=jOO3K1B9vgg

View layers is to render separately.
render layers is how you combine them in compositing.


Is it possible to slide an edge beyond the two vertices its attached to?

Not as far as I know. If this is for an animation, have a look at booleans: https://www.blender.org/manual/modifiers/generate/booleans.html

They are implemented as a modifier, so you could have a hidden (hide it from the outliner by disabling it's render) circle (or rather a cylinder) acting as a "stencil" and then a plane that gradually grows in width. This plane would have the modifier set as "intersect" on it. This would make the plane only show in places that are inside the cylinder, thus creating an effect of the plane filling the circle.


How to combine compositor render passes from 2 types to get only one?

What you normally do when you combine passes is to add indirect pass with direct pass and then multiply with the color, then do the same with the other type of passes and add them together, so:

Composite = Xcolor * (Xind + XDir) + Ycolor * (Yind + YDir)

now you want to separate Composite in Zcolor * (Zind + ZDir), then:

Zcolor * (Zind + ZDir) = Xcolor * (Xind + XDir) + Ycolor * (Yind + YDir)

There are 3 unknowns for one equation, therefore you have to assume more relationships for the unknowns, I chose these because they give good results:

Zind = Xind + Yind

ZDir = XDir + YDir

with these relationships Zcolor can be solved to

Zcolor = Composite/(Zind + ZDir)

This is the node setup.


In the Cycles modifier, select After Mode > Repeat with Offset. But make sure that the last keyframe of your cycle is a bit lower on the Y axis otherwise it won't be visible:


How can I get more saturated colors when I render?

Watch your albedos. It doesn't matter if you use pure primaries or highly saturated colours; Filmic will desaturate as things get too intense. High albedo will race those values through the roof quickly, leading to desaturation. As Cegaton wisely said, the old adages are pure rubbish based on a lack of understanding regarding view transforms; feel free to use as heavily saturated colours as you want when designing your looks for textures.
You can't have an object that is highly saturated and highly intense. It is simply impossible. Colour is a byproduct of the ratios of the three lights, which means that as the intensity increases, the room for those ratios become more and more limited. Find the sweet spot keeping your colour within the exposure range.
There is an intimate relationship between the apparent saturation and the contrast. Try to be delicate with contrast adjustments that focus on the saturation you desire. For a fulcrum based contrast tweak around middle grey, divide your render by 0.18, use the power function of the CDL, then multiply by 0.18 on the other side. This will adjust contrast based around the middle grey point as a fulcrum.


Stitch video with blender to make a 360 video

This is not possible.

Here is a google search for possible free alternatives, I cannot, however recommend any of them: free 360 video stitching software


Is it possible to use a custom shape for proportional editing?

Another method would be to select all vertices that should not be affected and hide them temporarilly H.

It could be easier to select the vertices that should be influenced and invert the selection I.


It's perfectly ok.

You are seeing it because mesh after using Subdivision Surface modifier cross boundaries of your low poly model and those have color with very low opacity but still visible.

Also they are dark because of your selected Blender theme which is if I'm not wrong 'Graph'.

If you don't like this appearance you can always switch to different theme.


How to constrain rigid bodies to an axis?

In blender 2.80 (and likely earlier versions), you can selectively lock translation and rotation axes, limiting physics simulations to your choosing.

Do this in the Transform sidebar (hit N to toggle).

As seen above, both X and Y axis has been locked, forcing simulation to only translate along Z-axis, but otherwise rotate freely.

This can be handy for quickly placing objects using physics. For example:


How to create sci-fi panels using modifiers?

Mark the sharp edges where you want to apply the separation, then add an Edge Split modifier, a Solidify and a Bevel modifiers.


Python set active face/batch unwrap Follow Active Quads

You can set the active face in your loop with bm.faces.active = face.

With what you have so far, you are looping through every face and doing select linked, even if you may have already unwrapped and hidden the face.

The following script seems to do what you are trying to accomplish.

import bpy
import bmesh

obj = bpy.context.object
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_mode(type='FACE')
bpy.ops.mesh.select_all(action='DESELECT')
bm = bmesh.from_edit_mesh(obj.data)

for face in bm.faces:
    if not face.hide:
        face.select = True
        bm.faces.active = face
        bpy.ops.mesh.select_linked(delimit={'SEAM'})
        bpy.ops.uv.follow_active_quads(mode='EVEN')
        bpy.ops.mesh.hide(unselected=False)

bpy.ops.mesh.reveal()
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.uv.unwrap()
bpy.ops.object.mode_set(mode='OBJECT')
bm.free()


How can I have Alpha 0 but only shows highlight

Using Eevee, you can use the "shader to RGB" node from a "glass" node. "shader to RGB" is like a prerendering from with we can get colors.

From it, we can use 2 color ramps: the first to control the light reflexion intensity and color and the other to control the level of transparency.

Color is given directly to the Principled and its alpha value is given by the intensity of the light.
Make sure to set the object transparent (alpha blend) in Eevee material settings.

Alternatively, you can also keep the original environment/light colors with this setting (look nicer, I think, but...):


Camera movement shows in viewport but not in render animation

I just had to reboot.
Things that might solve the problem:

this: Why is my camera pan not rendering
Rebooting
Adding a new camera to the scene.
Making sure you're not using a mesh as a camera (How can I make a camera the active one?)


Color vertex by deformation value in an animation

Using numpy and foreach_get
In as much as I love using bmesh, for speed it is quicker to use numpy in conjunction with partners in crime foreach_get and foreach_set in object mode from the mesh object.
My numpy knowledge is rudimentary, so there is a chance that this can be optimised further.

Simple Test Run, "Copy" on right of cube on left. Black for no link edge change, red else
import bpy
import numpy as np

class BATVertColors:
    def color_by_verts(self, colors):
        cols = colors[self.vert_index_table]
        self.vcolor_layer.foreach_set(
                "color",
                cols.ravel()
                )
    def __init__(self, me, vcollayer):

        nloops = len(me.loops)
        vert_index_table = np.zeros(nloops, dtype=np.int32)
        me.loops.foreach_get(
                "vertex_index",
                vert_index_table
                )
        self.vcolor_layer = vcollayer
        self.vert_index_table = vert_index_table

class BATMesh:
    def vert_link_edges(self, index):
        return np.logical_or(*np.isin(self.edges, index).T)
    def __init__(self, me, vcol="Col"):
        nverts = len(me.vertices)
        nedges = len(me.edges)
        #nloops = len(me.loops)

        vcoords = np.empty(3 * nverts)
        me.vertices.foreach_get("co", vcoords)
        edges = np.zeros(2 * nedges, dtype=np.int32)
        me.edges.foreach_get("vertices", edges)

        vcoords3d = vcoords.reshape((-1, 3))
        a, b = edges.reshape((-1, 2)).T

        edge_lengths = np.linalg.norm(
                vcoords3d[a] - vcoords3d[b],
                axis=1,
                )
        self.edges = edges.reshape((-1, 2))
        self.vcoords3d = vcoords3d
        self.edge_lengths = edge_lengths

        # colors

        col = me.vertex_colors.get(vcol)
        self.vcol_layer = BATVertColors(me, col.data) if col else None

# give it a test run

context = bpy.context
scene = context.scene

ob = bpy.context.object
me = ob.data

mesh0 = BATMesh(me)

# warped object copy
copy = scene.objects.get("Copy")
assert(copy) # <---
mesh1 = BATMesh(copy.data)
nverts = len(copy.data.vertices)
delta_edge_length = (mesh1.edge_lengths - mesh0.edge_lengths) / mesh0.edge_lengths
rgbas = np.array([[0, 0, 0, 1]] * nverts)
# could be a more numpy-centric way to do please share
for i in range(nverts):
    link_edges = mesh0.vert_link_edges(i)
    m = np.mean(delta_edge_length[link_edges])
    if m > 0:
        rgbas[i] = (1, 0, 0, 1)

mesh1.vcol_layer.color_by_verts(rgbas)

Some notes.
Have reduced  to no bmesh and "for x in y"  looping over the vertices once. Looping is generally the rate determining step.  Using methods as displayed above is going to be a lot quicker.
Some minor tweaks to speed up question code.
Since it's there, and it works, it's worth making a few comments re possible ways to optimize too
The default cube has 8 verts and 24 loops. In question code each vert is being processed for each connected face (loop), or 3 times.  A default dictionary could be used here, or another way to keep tabs not to process a vert more than once. (Example of a vert index to loop index LUT)
>>> from collections import default_dict

>>> lut = defaultdict(list)
>>> for f in bm.faces:
...     for l in f.loops:
...         lut[l.vert.index].append(l.index)
...
>>> pprint.pprint(lut)
defaultdict(<class 'list'>,
            {0: [0, 15, 19],
             1: [1, 14, 22],
             2: [3, 4, 16],
             3: [2, 5, 21],
             4: [11, 12, 18],
             5: [10, 13, 23],
             6: [7, 8, 17],
             7: [6, 9, 20]})

In this case tho would loop verts, and set color for each then when looping faceloops
loop[layer] = colors[loop.vert.index]

Bmesh has worked out all the links for us
This is going to be very expensive (re above) each time looping over all edges to find a vert's linked edges,
# get all the edges that belong to this vertex
Eges = [e.index for e in bm.edges if v in e.verts]

and can be replaced with v.link_edges eg for cube
>>> for v in bm.verts:
...     [e.index for e in v.link_edges]
...
[0, 1, 10]
[1, 2, 11]
[0, 3, 4]
[2, 3, 5]
[7, 9, 10]
[8, 9, 11]
[4, 6, 7]
[5, 6, 8]


Are there any viable ways of using the particle system with micro-displacement?

I had figured out how to solve that problem. I used a duplicated mesh without the adaptive displacement modifier and scaled it to a point where it barely beneath the mesh. However, I used that technique on a standard human mesh, so it may not work as properly on a highly irregular mesh unless that mesh matches the projected displacement.


Get list of global IDs with the material name with Python

I managed to get it working:

import bpy
import csv
import os

outputFile = 'C:/Temp/0_IFCGuid_IFCMaterial.csv'
f = open(outputFile,'w')

for o in bpy.context.scene.objects:
    if o.type=='MESH':
        material = o.active_material.name
        global_id_index = o.BIMObjectProperties.attributes.find('GlobalId')
        guid = o.BIMObjectProperties.attributes[global_id_index].string_value
        print(guid)
        print(material)
        f.writelines(guid)
        f.writelines('\n')
        f.writelines(material)
        f.writelines('\n')
f.close()


The Geometry node provides a Backfacing value that indicates whether the front or back face is being rendered. By using this to mix between the normal image coordinates and coordinates which have been scales by -1 in one direction we can effectively flip the image for the opposite face, "unmirroring" the image so that the same image is shown on the front and back.

This can be achieved with the following nodes :

Note the Mapping node with the Y-scale set to -1. The Mix node selects which set of input coordinates (Generated or the 'flipped' generated) are used to drive the Image Texture.

Additional...

This only works 'as-is' due to the Image Texture being set to 'Repeat'. The 'unflipped' coordinates vary in the Y coordinate from 0.0 to 1.0 and so the mapping node is translating this to 0.0 to **-**1.0 - ie, the opposite to the usual coordinates. Since the Image Texture is set to 'Repeat' this isn't a problem since the image repeats in all directions.

In order to allow this to work with 'Clipped' images you can simply use the Location settings of the Mapping node to offset Y by 1.0 (set 'Y' Location to 1.0). This will translate the 0.0 to -1.0 values to 1.0 to 0.0 (ie, reversed).


You have a subdivision surface modifier enabled. These modifiers are helpful since they are procedural, meaning that you can easily undo, clear, or modify what came before them.

Subdivision surface is helpful since it allows you to get smoother, and higher resolution meshes (the solid mesh shown below) from a lower resolution source mesh (the transparent wireframe mesh). That lower resolution source mesh also makes it easier to make edits, though there are some cases where that isn't helpful and you have to apply the subsurf modifier.

If you don't want to view the subdivide surface modifier while in edit mode, you can disable the button shown in the screenshot below. If you need direct access to specific vertices, edges or faces that were created by the subsurf modifier, apply the modifier. Keep in mind that if you apply the modifier, you won't be able to undo that step once you go beyond the max undo steps.


How do i close a view window that's not the same size as the ones next to it?

There are two options.

The most direct option is to expend the 3D Viewport over the timline, so that the 3D Viewport is the same size as the Outliner. Then expand the 3D Viewport over the Outliner. Then split the 3D Viewport, and make the timeline again.

The other option is to split the Outliner horizontally. Then line that border up with the border between the 3D Viewport and the Timeline, then expand the 3D Viewport over the top Outliner pane, and expand the Timeline over the bottom Outliner pane.

For more detail on how to expand these panes, check out How to close view windows?

ALTERNATIVELY, if you're wanting to make the 3D Viewport bigger, just hover your mouse over it and press shiftspace. Then shiftspace again to return it to its original size. This lets you maximize your 3D Viewport space without losing the all-important Properties panel. I'd highly recommend changing that Outliner into a Properties panel... you'll be using it ALL the time, and then use the shiftspace trick to alternate between full-screen and regular layout. In fact, shiftspace will work with any pane all the time.


Making a 3D Live Wallpaper with Blender only

You can record it in Blender then save it as video file to be used in Wallpaper Engine.


How do I snap the cursor to selected bone?(python)

Set cursor

Given an example of snapping cursor to active edit bone.  ie armature object is ob = context.object and the active edit bone is bone = context.active_bone

The cursor is in scene, global or world coordinates. Bones are in local space.  Multiply local space coordinates by object world matrix to get global coordinates.

An operator that begins with bpy.ops.view3d is designed to run in the 3d view. Running from py console or text editor most likely will produce an invalid context error.

However it is simplest to set the values directly

In 2.7x

Set Scene.cursor_location  in edit mode to active bone

scene = context.scene
bone = context.active_bone
scene.cursor_location = context.object.matrix_world * bone.matrix.translation

Snap to Selected requires summing all selected bones locations and dividing by their number to get an average location.

I have used bone.matrix.translation which is the equivalent of bone.head.

from mathutils import Vector
local_loc = sum([b.matrix.translation for b in context.selected_bones, Vector()) / len(context.selected_bones)
# and then setting
scene.cursor_location = context.object.matrix_world * local_loc

Alternatively from using context could for example snap to edit bone "Bone" of the armature object "Armature"

ob = scene.objects.get("Armature") # by name
if ob and ob.type == 'ARMATURE': # check exists and is armature.
    bone = ob.data.edit_bones.get("Bone")

In 2.8x can set both the translation and rotation of the Scene.cursor object by setting the matrix property

scene = context.scene
bone = context.active_bone
scene.cursor.matrix = context.object.matrix_world @ bone.matrix.translation

scene.tag_update() # updates location and rotation of cursor to bone head as soon as view is  redrawn.


How to download and install an add-on hosted on github properly?

Option 1 - Release version
Before downloading the entire repository using the 'Clone or download' button, make sure there is no actual release (In most cases there is, to keep development organized):

If so, click on Releases Tab and download the latest release (zip or single py file):

Option 2 - init.py folder (Clone or download)
There are lazy authors so in some rare cases the 'Clone or download' is the only option. Search for __init__.py in the repository and copy the folder containing this file to your Add-on directory:

Linux: $HOME/.config/blender/<version>/
OSX: /Library/Application Support/Blender/<version>/
Windows: %USERPROFILE%\AppData\Roaming\Blender Foundation\Blender\<version>\

You can get also get the folder per machine using the python console: bpy.utils.script_path_user() and / or bpy.utils.script_paths("addons")
Further reading: Addons: Only some .zips will install


How do you connect vertex groups to an armature?

What you could do is give your bones the name of the vertex group they are supposed to control then parent your mesh to the armature with a simple CtrlP > Armature Deform. Each bone will automatically control the group with the same name.


Is it possible to colour or put textures on Bevel curves?

You can assign materials to curves just like you would on any mesh with a few limitations.

Just create multiple material slots and in Edit Mode pick a vertex and press Assign to apply it to the complete corresponding spline. Only limitation is you can only apply one single material per spline, not per segment.

Under the Properties Window > Object Data (Curve) > Texture Space you can turn on Use UVs for basic simple automated UV coordinates generation.

They are limited in that they stretch for longer segments and give uneven texture density, but will do for basic stuff.

Anyway if you want to export this for a game engine I guess there is really no way around converting to mesh and manually unwrapping it properly. You may keep the original object as curve in case you need to go back and edit something, do the conversion on a duplicate for safe keeping.

After conversion to mesh the basic Automatic UVs are preserved, so you have somewhere to start. If these are enough check if they are also preserved when exporting the file to a game engine.

Also have in mind that if your Blender lags after converting your curves to mesh there may be too much geometry, and that it will also likely cause problems in the game engine. Consider simplifying your curve geometry before converting to mesh.


Sky-only pass with the foreground knocked out?

If you go to "renderlayers -> Passes" You can activate the "environment" pass. This will deliver the background as an RGB value in the compositor. All abjects are now black. This gives you the freedom to combine them as you wish.


How to get cameras local x-axis pointing up?

You probably want to use the "Track To" constraint. Then you can configure which axis should point to the object, and which axis should point upward. For a camera this would be typically -Z for the "To" axis, and Y for the "Up" axis:


Use layer.passes[0].rect = blue_rect instead of layer.rect in your code.


For this kind of animation (long distance walk) you could use a walk cycle and make the armature follow a curve, but, as ZargulTheWizard says, it is pretty easy to fix in the Graph Editor:

First delete the 3 last keyframes (which are identical), select the whole series of keyframes, duplicate them whith ShiftD, move them on the right and keep them selected:

Switch to Graph Editor with shortcut CtrltTab, unfold the Armature's tracks on the left, select the track called Z Location (mixamorig.Hips) which is the root bone, and make it the only one visible with a ShiftH:

Now move up the handles until it fits with the beginning of the curve (keep pressing Shiftt if you want to move more precisely). Now the character will continue its walk as it should:


After applied as rest position mesh doesn't move

If you have nothing to loose, delete and regenerate your rig.
When i reset my rig i select all the bones and then
Select all the bones, in pose mode with A. Then, hit:
ALT R to reset all rotations,
ALT G to reset all translations,
ALT S to reset all scales.
Or select all bones (A) and hit space. Then search for "clear pose"


Emissive Material not Rendered at Some Angles

@Allen Simpson' s answer inspired me. Now I found the solution by simply setting the IOR value of the window glass to 1.0 or slightly larger (1.45 is the default setting).
Here is the result.


Collisions detect intersections of faces only.

If your object is "inside" the over object without intersecting any face it can't be sensed.

If you want this kind of detection you need to ensure the sensing object has no gap that a sensed object could "hide" without touching a face (and vice versa).

The background is simple: The physics engine does not perform "inside" checks. It assumes that objects will intersect a surface before being inside another object. This is for performance reasons. Unfortunately small fast travelling objects can do exactly that.

A possible solution for you is to add additional faces inside the surrounding object.


What's the distance between the camera eye and the canvas and how it's related to focal length

It depends on the Sensor Size of the camera
Short answer:
If you didn't scale your gizmo (object's scale = 1,1,1) you can se the formula:
Canvas distance = Focal Lenght / Sensor Size

Explanation
Like all the objects you add to your scene, cameras have a default size of 1, measured on the X axis. You can clearly see that changing the focal lenght doesn't affect the X size of the gizmo.

The Y size depend on the proportion bewtween the X and Y resolution, so if the screen is 16:9, the Y size would be 9/16 of X

The projection plane is distanced from the POV in Z exactly by the measure of the focal lenght, but you have to take into account the Sensor Size. If you match the size of the gizmo on X (1 meter=1000m) to the Sensor Size, the distance of the plane will be the same as the focal lenght:

If you use a custom Sensor Size, the plane distance from POV is the ratio between the Focal lenght and the Sensor Size:
Zdepth = Scale*Focal Lenght/Sensor Size

Blender's default camera has a Focal Lenght of 50mm and a Sensor Size of 36mm, so the default distance is:
1*50/36=1.3888888888...9

You can scale the gizmo to match the sensor size, this way you'll have the Focal Lenght = Canvas distance:


After compositing , the 3d model gets faint and translucent in the final render

looks like i was not key-framing the factor node in the compositing properly , the factor was increasing from 0 to 1 in 70 frames but it was supposed to remain 1 during those frames


I use PyCharm Professional for Blender add-on development. It has debugging support (the Community edition does not) and limited auto-completion if you create auto-completion files for it with this tool.

Here's a tutorial and a Blender add-on to connect Blender to the PyCharm debugger.

My workflow then is like this:

Create an add-on and enable it in Blender. An add-on is basically a Python package you create inside a new package folder under <version>\scripts\addons.
Edit its code in PyCharm.
Reload the add-on in Blender with F8. This requires the __init__.py of the package to have a specific layout. Here are the bare bones I always use: I added some comments to the end of the lines and left several modules in there as an example (which you'd create accordingly in python code files inside the package directory):

bl_info = {
    "name": "Title as it appears in settings",
    "description": "Smaller description below it",
    "author": "Your name",
    "version": (1, 0, 0), # A tuple of version numbers
    "blender": (2, 75, 0), # The minimum required Blender version
    "location": "File > Import-Export", # Where it will be located. These strings are hard-code in Blender
    "warning": "This add-on is under development.", # A warning with a yellow triangle if you want.
    "wiki_url": "https://github.com/Syroot/io_scene_kcl/wiki", # Link to a wiki
    "tracker_url": "https://github.com/Syroot/io_scene_kcl/issues", # Link to an issue tracker
    "support": "COMMUNITY", # Probably just COMMUNITY since you're not an official developer etc.
    "category": "Import-Export" # Also hardcode
}

# Reload the package modules when reloading add-ons in Blender with F8.
if "bpy" in locals():
    import importlib
    if "log"       in locals(): importlib.reload(log)
    if "binary_io" in locals(): importlib.reload(binary_io)
    if "kcl_file"  in locals(): importlib.reload(kcl_file)
    if "importing" in locals(): importlib.reload(importing)
    if "editing"   in locals(): importlib.reload(editing)
    if "exporting" in locals(): importlib.reload(exporting)

import bpy
from . import log
from . import binary_io
from . import importing
from . import editing
from . import exporting

def register():
    bpy.utils.register_module(__name__)
    # Importing
    bpy.types.INFO_MT_file_import.append(importing.ImportOperator.menu_func_import) # Add menu entry to File > Import
    # Editing
    bpy.types.VIEW3D_MT_edit_mesh_select_similar.append(editing.KclSelectSimilar.menu_func) # Add custom properties to a mesh
    bpy.app.handlers.scene_update_post.append(editing.scene_update_post_handler) # Listen to global Blender-wide events
    # Exporting
    bpy.types.INFO_MT_file_export.append(exporting.ExportOperator.menu_func_export) # Add menu entry to File > Export

def unregister(): # Basically just undo the stuff done in register()
    bpy.utils.unregister_module(__name__)
    # Importing
    bpy.types.INFO_MT_file_import.remove(importing.ImportOperator.menu_func_import)
    # Editing
    bpy.types.VIEW3D_MT_edit_mesh_select_similar.remove(editing.KclSelectSimilar.menu_func)
    bpy.app.handlers.scene_update_post.remove(editing.scene_update_post_handler)
    # Exporting
    bpy.types.INFO_MT_file_export.remove(exporting.ExportOperator.menu_func_export)

# Register the package modules when Blender runs this script.
if __name__ == "__main__":
    register()

Optionally, set breakpoints and connect Blender to the remote debugger of PyCharm.
Call operators the add-on defines, test the stuff it adds.
Fix errors, reload with F8, rinse, repeat.

You can find some samples of add-ons of me in my GitHub repos (check out those named with the io_scene_* name prefix).


When i use a image texture with transparent background it makes the image dissapear and the transparent part stays

The connections on the mix shader are wrong...
Transparent must be on the first shader and the actual image on the second then the alpha on the factor


Simply make the shelf and add a stripes of "light" to every part U wanna have lit. As U could see on the picture below (top-right corner) the lights are only a polygons with an emission material applied - that could be seen on the right. Set the power of light as U need and done!

Hope it helps my buddy, Jan.


How to make a camera face exactly downwards at the centre point?

Alt+R reset to the default orientation, which is downward.


Baking a particle system in Blender to use in Unity

This is not possible. Particle System simulations are not supported at all due to the fact that Unity has a completely different solution.

Unity currently imports (from blender)
all nodes with position, rotation and scale. Pivot points and Names are also imported.
Meshes with vertices, polygons, triangles, UVs, and normals.
Bones,
Skinned Meshes, and
Animations


I think I have solved the problem of the hook modifier behavior by making custom vertex group hooks. I copied the vert group and assigned it but also made an exact copy as a separate mini-mesh.
The shiny torus was manipulated with the hook technique I came up with today. If anyone else has trouble with hook behavior, perhaps I should upload the screen shots.
FYI the custom vert/hook objects are invisible on the torus but I parented them to the cylinders. I will try on real bones later.


Under the brush settings, in Texture, click New. In the properties panel, in Texture/Image click Open, then locate your picture file. You can now use the picture as a brush.


Single vert, array modifier, object offset, duplivert.

Animating the scale of the offset object
With the "Add Mesh Extra Objects" addon enabled can add a single vert object. Or by other means.
Since the single vert has no dimensions can array it and only effect the arrayed vert locations.
Add an array modifier to the single vert. Give it object offset add an empty.
Under Properties > Object > Instancing select Verts.
Make the display object you "really" want to array a child of the single vert.  Will now have this object instanced at location of each vert created by array modifier.

In the example image the empty has been given x location 2, and x scale 2.  The duplivert object is default cube with some scale in z.
Some theory.  Assume object is at (0, 0, 0)
>>> loc = Vector() # zero

Get the matrix of the object offset object (the empty)
>>> C.object
bpy.data.objects['Empty']

>>> M = C.object.matrix_world

Ok original is at x = 0.  For the next 4 arrayed objects, apply the offset object transform
>>> for i in range(4):
...     loc = M @ loc
...     print(loc.x)
...
2.0
6.0
14.0
30.0


Why my object looks like this in Object Mode?

First possibility.

Change Viewport Shading to Solid or press Z in Object Mode.

Second possibility.

Change Maximum Draw Type in Object tab to at least Solid. Have object selected.


Cycles procedural stripe texture along slope

I did now a little bit of work on that problem. I didn't get it perfect but it's pretty good I think so I wanted to share it. My attempt was to take the Normal of the currently rendering Pixel and calculate the slope 90° downwards from the normal (that's a tangent to the surface). My results with that are ok but not perfect because at the 3 edges of your model it will fail almost completly. I tried my best to counteract that with the Pointyness value and different direction of the tangent and so on but nothing did quite work exactly like I wanted it. Here are the results:

You can see how perfect it works an that planes. The stripes are always downwards, no matter how its rotated.


Probably best way is change Outliner into Blender File mode, right click on action and click delete.


Hard to tell from far away.
Try the funnel in the top right corner and enable "Disable in renders".

That way you can check your collections, whether they are enabled for rendering or not.
I've set my collection "DONT-RENDER" to "disable in renders". So, the red cube is shown in the viewport but "missing" in final render.


Get Shape Key from Action or FCurve in Python?

key_block names can be used for different shape key lists, which means same shape key name but different objects. Every object uses its own action, thus you need to use the action the object references (Object.data.shape_keys.animation_data.action). See:

# Cube

>>> bpy.data.objects['Cube'].data.shape_keys.animation_data.action.fcurves[0].data_path
'key_blocks["Key 1"].value'

>>> bpy.data.objects['Cube'].data.shape_keys.animation_data.action.fcurves[0].id_data
bpy.data.actions['KeyAction']

# Cube.001

>>> bpy.data.objects['Cube.001'].data.shape_keys.animation_data.action.fcurves[0].data_path
'key_blocks["Key 1"].value'

>>> bpy.data.objects['Cube.001'].data.shape_keys.animation_data.action.fcurves[0].id_data
bpy.data.actions['Key.001Action']


How can I make an animation interpolate linearly between two keyframes?

The rotation will use a bezier interpolation by default (ease in and ease out). This can be viewed and changed in the Graph Editor.

Open up the graph editor, (make sure you have you're object selected), then select both keyframes for the X axis and press T while having your mouse in the graph editor window. This will bring up a menu with different keyframe interpolation modes to chose from, Select Linear and the rotation will have a constant rotation.


You have scaled your object incredibly small and to zero on the Z-Axis. If you ALTS in Object Mode (to remove scale) and then either zoom out, or hit the Home you will see your model again and can edit if further in Edit Mode.


Is it possible to bake a single frame of a smoke simulation?

You can't bake a single frame in the middle of a simulation because blender needs to know what the state of the simulation in the previous frame was in order to compute the state for the next frame.

As an alternative, you could try using the cloud generator script for BI (tutorial), or modeling your clouds manually.


how can i fill these boundaries by quad topology?

I saw this pop up and even though it is an old question thought it worthwhile putting forward an answer. The original image is not great but here is a mesh that will work and is adaptable.

With matcap in object mode and a subdivison surface x 2

A simple bend deformer applied shows the deformation without any artifacts/creasing/lighting issues.

Extruded with bend modifier


Is it possible to control dynamic bevel segments with a stylus?

Found it. For Blender 2.79 the Numpad Minus and Numpad Plus also do what the missing scroll wheel does.

For Blender 2.8, When you are in the Bevel tool, press S (for Segments). At the bottom of the screen there is a list of all Bevel Properties that can be triggered with hotkeys. You can switch to different properties at will and the last setting will be set for you.


Shade Smooth and Auto-Smooth problem when combining objects

Solution 01
Smooth/flat shading is applied per face, not per object.
So just change it for individual faces of your mesh.

Here is an example of a chain.
It's one object, consisting of multiple meshes, like in your case.

Select only one mesh.
Click a face and then Select->Select Linked->Linked

Apply shading only to these faces.
Mesh->Shading->Smooth faces

You're done.
Different parts of your object are now shaded differently.

Solution 02
Play with the Auto-smooth angle.
Auto-smooth is applied per the whole object, but you can adjust what edges are considered smooth.

Solution 02.1
(thanks to Robin Betts)
Mark some edges as sharp.
They will then be shaded flat, no matter what the angle is.
Edge->Mark Sharp.


How does the Action Wiggle Node works in animation nodes?

Since AN 2.1.5 is still a work in progress version. The node may not be final and documentation is missing.

Here is a working example. Hope it helps you.
You need to add and define the affected channel path.

location
scale
rotation_euler


Get day and time in python and assign that value to BGE property

You can get the current time in python with the time module (who would've thunk, right?)

time.localtime() gives you a struct containing everything you need:

import time
import bge

def clamp(n, nmin, nmax):
    if n > nmax:
        return nmax
    elif n < nmin:
        return nmin
    else:
        return n

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

# this returns a struct containing the year, month, day etc.
now = time.localtime()

# combine the hour and minute to get the total number of minutes, plus seconds (clamped to avoid tangling with leap seconds) scaled to .00 to .99
own['minute'] = now.tm_min + now.tm_hour*60 + clamp(now.tm_sec, 0, 59)*.01667
# we don't even need to do anything to get the year day. Note that this can return 356 on leap days, so be sure you either clamp it here or handle such a situation properly later.
own['day'] = now.tm_yday

Just hook it up to an always sensor. I set the skip on the always sensor so it only gets executed once a second at 60 tics per second, to avoid using extra precious cpu time:


Is it possible to animate a transformation that go from an object to another?

Finally, I found a pretty intuitive solution: I used shape keys on the paths I used to do my curve. So thank you all, you made me think about shape keys and I have now exactly what I wanted!


You can move a vertex along the normal of the associated face. This doesn't ensure that the face was planar in the first place.

Switch to Normal orientation mode.
Select a Face in face mode.
Scale its Z normal to 0 in face mode. SZZ0

At this point nothing should have changed. If anything changed your face was not planar to begin with.

Make sure all vertices of the face only belong to a single face by ripping them. V
Move them along the face normal. G⇧ ShiftZZ


Addon: Render burst - doesn't work as expected

You need to use the newest version with 2.81+ compatibility.
It's available here on GitHub, and here's a cleaned-up version by @p2or.

Don't forget to enable it in Preferences > Addons


What causes fire to gradually turn off or disappear?

In this case it is camera distance. But, instead usual camera distance, that is located in camera settings, this is volumetric distance, that can be adjusted in render settings


Erratic apply-scale behavior with vert groups and displacement modifier

OK, found your culprit.

I just realized that you typed out the correct step in #7, however, it seems that you have mistaken the icon per your screenshot on your erroneous one (it's easy to do, because it looks very similar). Be sure to set your pivot point to individual origins.

Here's the behavior of doing S Z 0 using the different pivot modes:

Active Element:

When using the active Element, Blender is considering the origin of whatever your last active selected item is (in this case, the last face selected). In other cases/selection modes, it could be the last selected vertex/edge, as well as in Object mode - this would be the last selected Object, and would consider its origin as the pivot center.

Median Point:

In the demonstration below, I used two selections for simplification, however when using this mode, Blender will take whatever is selected and calculate an averaged pivot location, and use that.

Individual Origins:

For this mode, Blender considers the "origin/pivot point" whatever the median pivot would be if you were to use median, and pick only one object. The difference is that it does this on everything selected.

3D Cursor:

For this mode, anything selected will pivot from the Viewport's 3D cursor location.

Bounding Box:

This one acts a lot like Median Point, although instead of thinking about calculating a median like origin between object origins, it calculated the extremity boundaries of the items selected, and then brings you to the mid/center point of that (in this example it is hard to tell the difference between Bounding Box & Median Point Pivot Mode.


If you are using Blender 2.78 (set to experimental)

You need to first take that image and blur it slightly. Then Make sure you subdivide your mesh and unwrap. Add a subserf modifier, click adaptive. Then set everything up as you see in the images below.

You are getting those spikes because the image is not blurred.


Why is that when I open up my file in blender, the reference picture is gone

By default, Blender does not save images as part of the .blend file (this applies to background images or textures used as part of the scene).
To make those images part of the file they have to be packed.
If the images are not packed, blender has to re-load them form the hard drive every time you open the file. If unpacked image files get relocated on a different folder or drive, you'll be presented with nothing (for background pictures) or a pink color instead of textures and images used for compositing.
So you have two options:
1. Pack the images to make a self contained .blend file:

After packing you have to re-save your file.
Keep in mind that the file size will increase when saving images.
NOTE: You can't pack image sequences or video files in a blend file.
2. If you don't pack the images,
then they have to be stored on every computer you use to work on the file, using the correct path so that blender can find it.


How can i make the shoulder joint deform smoothly?

You can go with bad topology, IMO. I’ve answered a similar problem here:
Realistic Rigging with real skeleton?
Basically, you need a shape key for every pose of the arm. Then blend between 2 shape keys, other then the Basis.

If you have questions, I’d be glad to answer them.


Minimum number of samples for the Branched Path Tracing

Cycles generates each sample type as different "images" which are then combined into the final render. Each of these passes can be made available in the render layer settings which can then be used within the compositor.

While cycles could be made to work with one or more of these passes being missing, there is no benefit to doing it. A simple scene with one sample of each pass can be rendered in less than a second. It is only when you are rendering with hundreds or thousands of samples that a pass adds any time to the render, having one sample of a type you don't use can only add less than a second to your render and the couple of MB that could be saved in memory use will not make a difference on any recent computer.

AA is Anti-Aliasing, it softens the edges to hide the jagged edges seen from sudden colour changes. 64 AA samples is high, the AA samples defines how many neighbouring pixels are used to determine the final pixel colour and as you noticed it multiplies the final sample count.

If you want to know the effect of each pass then enable them all in the render layers and mix them in the compositor where you can turn each on/off to see how they effect the final image. CGCookie has a fundamentals of compositing series that explains how to do this.


Have object and its shadow behind object appear in front

If you want to place the 3D car in a 2D image, you need to model some geometry.
Use the knife tool (K in Edit mode) on the background image that you have. Cut out the shapes of the pole/lantern, the tower, the wall, and the stairs. Cut it, then select the faces, duplicate them (Shift+(D) and separate them (P). Add a Soldify modifier and a Bevel modifier to the new object cut out.
For the tree, you only need half of the vertical outline. Then use the Screw modifier. While doing so, check the correct face orientation and origin.
Extrude the floor and correct the texture mapping in the UV editor if necessary. For the wall in any case. Add a Bump node to the stair's material. Set up a few lights.
Done. The car is now in the "image".


Is it possible to wrap the original textures into the new mesh without distortion?

As long as your texture has image information for the ripped out part, you can correct the UVs by hand. One quick way to do it us by using the Pin Tool in UV Editor.

Example
I have a mesh with a hole in the middle (left). After filling the hole manually I may end up with a highly distorted, but still connected UV projection (right).

When selecting the original mesh part in Edit Mode, by default only the selcted and correctly unwrapped faces are shown in UV Image Editor. Move cursor to the UV Editor, select all vertices with A and press P to pin these vertices. This means they will not be changed if the mesh is unwrapped again.

Next select all vertices, including the newly created with distorted UVs, and unwrap using the default method (in Edit Mode: select all, U -> Unwrap; in UV Editor: select all, U)

The distorted parts are automatically repaired whilst the original parts are untouched. Optionally, press Alt+P to remove the pins again.


Is the physics engine capable of reproducing this effect of a ball oscilating due to a water jet? [video]

No, the fluid simulation system is independant of other simulation systems and can't interact with rigid bodies.

Rigid bodies can't be simulated with the fluid system either.

  Note that the simulator is not suitable for non-fluids, such as materials that do not “flow”. Simply setting the viscosity to very large values will not result in rigid body behavior, but might cause instabilities.

A workaround would be to simulate the rigid body before hand and "simulate" the fluid with placeholder objects, like force fields or other constrained rigid bodies or hand animation. That way it would appear as if the fluid system had an effect on the rigid body.
During the fluid simulation, the rigid body has to be set as a fluid obstacle. For the fluid simulation, it is irrelevant how the motion of the obstacle was created.
The fluid can't influence the rigid body.

Related questions:
Rigid body and fluid interaction
Fluid and hair interaction


It has nothing to do with the painting per se.

First, you need to paint the emission map of your shader :

Make sure to use black as blank color when creating the texture, so it doesn't emit light when nothing is painted.
I don't use the Principled BSDF's emission here because there's no strength input.

The glow itself comes from his viewport which is in rendered mode:

And using Eevee which has a bloom effect that can be seen in the viewport:

You can do the same with Cycles, except it doesn't have any SFX visible in the viewport, you would need to do it through compositing using a glare node in fog glow mode:


What's the best way to model organic shapes?

The current topology cannot benefit that. The basic workflow and recommended topology would be:

Create the base mesh for the sole.
Add a Subdivide Surface modifier, then apply.
Add another Subdivide Surface modifier. Tweak mesh shape with Proportional Editing.
Build the straps with operations such as Extrude, Bridge and Loop Cut.
Build other details, such as thickness.
Finally refine the shape.

Example file:


Where does light come from in a Cycles scene without lamps?

In cycles the World emits light. You can turn this off by setting the world color to black, or setting the Strength to 0 in Properties > World:

If you still want the background to appear as a color besides black, you can make the world emit light only for the camera by mixing two Background shaders based on the Is Camera Ray output of the Light Path node:

Result:


Does Blender support any form of collaborative editing?

Blender does not provide a way for multiple uses to edit the same blend file at exactly the same time. *

However typically you can manage this by splitting your assets into separate blend files and linking from one file to another.
Blender supports recursive linking so a scene, node-groups, animation, models, materials etc can all have their own files.

Here is the documentation for the linking structure use by the open movie; Tears of Steel

Some projects do this more fine grained, where the material, armature, mesh, action are all stored in 4 separate blend files and they are combined in a 5th, and composited in a 6th. But inter-linking complexity needs to be managed or you have a mess too, where you load a blend file and 100's of megabytes are loaded because files are interlinking in situations that might be avoided.

I have found the best way to manage linking is to only go in one direction.
So for example:

Materials/Nodes -> Models/Rigs/Environments -> Animation -> Compositing

But never link an animation into a material file for eg.

This way its predictable and you can manage what loads in a more controlled way.

Update: since 2.78 its now possible to reload libraries without re-opening the file, see: Datablock and Library Management.

*Blender used to have Verse integration, but it was removed due to not being very practical to use for real projects.


Technique to model a 3D button (Image attached)

Here's the Text version of the Step-by-Step (please see Images below for visual reference of each step).

In Object Mode add a plane by hitting: Shift+A -> Plane.
Hit TAB to enter into Edit Mode.
Select all Vertices by hitting A. Hit Delete -> Only Faces.
Select all Vertices by hitting A. (**NOTE: Repeat the Next Steps 3 Times) Hit W -> S.
Add a circle mesh by hitting Shift+A -> Circle. Next scale it down by hitting S -> 0 -> . -> 5 -> Enter.

Ensure all Vertices are selected (A to toggle - you will probably have to hit this twice at this point), then hit W -> E, this will invoke the Bridge Edge Loops command to fill the gap between the rectangular mesh perimeter, and the inner circular mesh perimeter.

Hover your cursor over one of the newly created connection edges (eg. about the mid-point on an edge that spans from the perimeter plane to the perimeter circle) and hit Ctrl+R. Next move your mouse until you have the desired shape, then Left Mouse Click.

Refer to

for how to manipulate it afterwards.


You need to modify the clip distance, both for the viewport and the camera,
to have a clip distance that uses a much closer range.
See:
How do I increase the render distance?


Basic topology & bevel help - How to fix beveling issue?

I've reworked your topology to get a more clean bevel, Try this:

By adding a little bit of thickness to the back face, you can allow more room for the bevel to run before it overshoots. But keep in mind there will always be artifacts if you push the bevel too far on any kind of geometry.
If you want a thicker bevel and more control over the mesh, you can always take a subd approach. But for this piece I don't think it's necessary.
Here's the blend file with the reworked topology:
https://blend-exchange.giantcowfilms.com/b/D2ZXy03E/
Hope this helps!


Blender Crashes when Baking High Resolution Textures "Circular Dependency" error

The issue was just that I did not have sufficient memory. So I had to downscale the high resolution textures to make it work


Does anyone know how to fix the blocks turning purple when I import my minecraft world (.obj)?

Purple color (instead of expected shading) = missing texture. Meaning, you have to locate the texture and reapply it to your mesh manually.


Facial Motion Capture in Blender with Depth Sensors and/or Multiple Camera setups

It's not possible yet as Blender has no Multicam Support. There is a GSoC project currently and it seems to be possible later this year.


How to remain the appended Brushes in grease pencil?

After appending, select the brush, open the Active Tool and Workspace Settings menu on the right and next to the brush there is this shield icon.
When you hover your mouse over it it displays:

Fake user. Save this data-block even if it has no users.

Make sure to click that so it's blue, and to do this to every different brush you want to use next time, or else Blender sees them as unused and doesn't bother saving them.


So sorry for the very late reply. I found the answer in another thread and with some help.
But below is the Render Function I am currently using.
    bl_idname = "render.colorways"
    bl_label = "Render list"
    bl_description = "Render colorways with marker in filename"

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

    # Set up the handler methods
    def pre(self, scene, depsgraph):
        self.rendering = True

    def post(self, scene, depsgraph):
        self.rendering = False

    def cancelled(self, scene, depsgraph):
        self.stop = True

    def execute(self, context):
        # Define the variables during execution. This allows
        # to define when called from a button
        self.stop = False
        self.rendering = False

        # Get all markers in a list and assign them to shots variable
        itemmarkers = bpy.context.scene.timeline_markers.items()
        self.shots = []
        self.shots.clear
        for m in itemmarkers:
            self.shots.append(m[0])

        #don't know why but I need to begin 1 frame before the start
        bpy.context.scene.frame_set(bpy.context.scene.frame_start - 1)

        self.path = context.scene.render.filepath

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

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

        return {"RUNNING_MODAL"}

    def modal(self, context, event):
        if event.type == 'TIMER':
            scn = context.scene

            # filename prefix ans suffix
            firstpart = bpy.context.scene.TextInputProps.nameprefix
            lastpart = bpy.context.scene.TextInputProps.namesuffix

            # No frames in the list or user hits ESC
            if True in (scn.frame_current >= scn.frame_end, self.stop is True):

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

                # Reset the output path
                scn.render.filepath = self.path
                return {"FINISHED"}

            elif self.rendering is False: # Nothing is currently rendering.
                                          # Proceed to render.
                # Get the marker from the list
                marker_name  = self.shots[scn.frame_current]

                #Create filename variable
                if firstpart == "" and lastpart == "":
                    finalfilename = marker_name
                elif firstpart == "" and lastpart != "":
                    finalfilename = marker_name +"_"+ lastpart
                elif firstpart != "" and lastpart == "":
                    finalfilename = firstpart +"_"+ marker_name
                else:
                    finalfilename = firstpart +"_"+ marker_name +"_"+ lastpart

                # Assemble the file path and filename
                scn.render.filepath = os.path.join(self.path, finalfilename + "." + scn.render.image_settings.file_format)

                # Call the render operator
                bpy.ops.render.render("INVOKE_DEFAULT", write_still=True)

                # Set the next frame
                scn.frame_set(scn.frame_current + 1)

        return {"PASS_THROUGH"}

There is one issue, in the render process certain frames don't save. Perhaps optimizing the loop the statement in the def modal would help.
I hope this helps.


How to scale vertices uniformly in one direction?

Pivot is the origin, not the goal.

The pivot point is considered the origin of the transformation space. Scaling the objects with a factor smaller than 1 will make them collapse toward the origin, while what you would like to achieve is verteices spreaded from the origin toward another point. The scaling factor should be greater than 1 in this case (e.g. the double, the triple...).

I suggest to change the position of the 3D cursor to the symmetry axis instead of the goal point. This way you'll be able to scale your vertices uniformly, even if they are not evenly spaced.


Blender scene animation exported to Three.js without bones or skinning?

Not sure if this is what you need, but it's a plugin for blender to export json for threejs.

https://github.com/mrdoob/three.js/tree/master/utils/exporters/blender

It has the instructions on how to install it.

To animate my stuff I use shapekeys.
Try this tutorial :

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

Hope that was helpful


How should I design the jaw for rigify pitchipoy?

When rigging you need to be clear about what you want to achieve, because every little function takes time to accommodate for. Which also means that I cannot give you the perfect answer unless you describe your character more clearly. If you want a character with a normal organic jaw, then skip the following paragraph.

The only reason you would parent something without weight paints is if you want a ridged object attached. If this character had an iron jaw for example, it might make sense. I'm not sure if pitchipoy is built for that, but if you were to attach it to just one bone you could probably achieve a ridged effect. However, that would make some mesh items harder to track down. So i'd recommend a ridged bind (flood the influence to one bone) that is IF you want a ridged jaw.

If you want a normal organic jaw, then ignore your tutorial and find a better one because organic meshes generally require weight binding. I'd follow the official video for that: https://www.youtube.com/watch?v=-dwCXMc2V0U

The only thing i'd advise making into separate geometry is the teeth and tongue. That's just so that it's easier and more clean of a job when weight painting. Teeth can have ridged weighting, tongue can have auto weights. For the mouth, it's just a concave section of geometry, and of course attached to the rest of the surround mesh. You will need to ensure that the weights do not collapse the geo into the teeth and tongue when the character open's it's mouth.


Blender on Google Colab not finding Graphics Card

I'm also facing the same problem. I think colab is not allowing GPU to use for any commands that include "sudo" in it.

Solution I found was to install blender and then run the command to render without "sudo".

I installed blender from PPA ppa:thomas-schiex/blender

commands to execute:

!sudo add-apt-repository ppa:thomas-schiex/blender
!sudo apt-get install blender
!blender -b -P script.py filename.blend -o fileoutput -F PNG -f 1

script.py contains code to select gpu, I generally upload to colab. Save following code as script.py

import bpy, _cycles

bpy.context.scene.cycles.device = 'GPU'

avail_devices = _cycles.available_devices('CUDA')
print(avail_devices)

prop = bpy.context.preferences.addons['cycles'].preferences

prop.get_devices(prop.compute_device_type)
prop.compute_device_type = 'CUDA'

for device in prop.devices:
    if device.type == 'CUDA':
        print('device: ', device)
        device.use = True

this worked for me !


Start by adding a Bezier Curve. Enter edit mode and select the whole thing with A. Press V + V and then V + L to straighten it and align the handle vectors.

Now duplicate the curve with Shift + D, and translate it up a bit on the Z axis.

Now duplicate the pair and move it an equal distance away on both the X and the Y axis. Rotate 90 degrees to make the L shape.

Now, select the points you want the path to follow and join them by either right-clicking and selecting "Make Segment" or by pressing F (For example, the top and bottom end points, and the "elbows").

Now add a plane to make your "planks" (you can make a block if you want, I just did a plane for ease.)

Give the plane an Array Modifier, and a Curve Modifier. Select the Bezier Curve as your curve object, and adjust the repeat amount and the offset of the array to your liking.

For the rollers, go back into edit mode (on the curve) and select only the top points. Duplicate them and translate down on the Z to halfway between the top and bottom "edges" of your main curve. Press P and select "Separate". Keep in mind that you may need to extend the ends slightly to make it fully take up the space beneath the conveyor belt (The "conveyor belt" is hidden in this image)

Now, go back to object mode and create a cylinder to your liking:

Now do the same thing as before, add an Array Modifier and a Curve Modifier to the Cylinder, but this time choose the new (separated) curve as your curve object:

Final result all together looks like this (be mindful as the "corner" cylinder stretches a little - try and scale it or hide it to compensate. If anyone else knows of a way to not have this happen, I would really love to know what it is.)


Matching up perspective to background image

The reason you're having trouble is that your photo camera wasn't straight.  I can tell because the far corner isn't perfectly vertical.  It's VERY easy to fix this particular image:

go to the Camera view
Hit 'R' (Rotate)
Type -4.2

Pretty darn close when you move it back to the corner.  You can tweak it a little either direction to make it more exact. Caveat is that I had to guess a bit because that gray floor was in the way since I just downloaded your example image.


How to create loop cut through an object?

Loop cut is always made on one loop of faces.
In your example you have 2 separate loops so it cannot be cut at once with this tool.

What you can do is to make one loopcut for each face loop (inner & outer):

or use Knife tool K with Z (cut through) option enabled (the Z key is not captured in the example). Hold Ctrl to make a cuts in the middle of edges or if you want to place it some were else but have it accurate press C to constrain the direction of the cut to 45 degree steps.


Select four top vertices, choose the edge select mode and press X-->Edge Collapse.


Invalid Python expression when using driver with Python script

Found a solution after a while. Seems like global functions doesn't work the same way in Blender as in raw Python.

I used mini3d's solution found on the blender forum: https://www.blender.org/forum/viewtopic.php?t=27291

Here's a summary of the solution

import bpy

# Define global variables
bpy.types.Scene.prevTime = bpy.props.FloatProperty()

def getSettings():
    settings = bpy.data.scenes.get("Settings")
    if settings is None:
        settings = bpy.data.scenes.new("Settings")

    return settings

def rotate(rotSpeed, curRot):
    .
    .
    getSettings().prevTime = time
    .
    .

EDIT: Global variables do in fact work the same way. The following solution is much cleaner as suggested by batFINGER

The problem was that I tried to edit a global variable in a function without using the keyword "global".

import bpy

# Define global variables
prevTime = 0

def rotate(rotSpeed, curRot):
    # This will give us the ability to edit the global variable
    global prevTime
    .
    .