Try 'high bit depth' and / or 'soft shadows' in the render panel 'shadows' bit, or maybe the 'method' or 'cube size' / 'cascade size' (hover over tool-tip says what type of light they are for).

There's also the 'softness', 'bias', 'exponent' etc. settings in the light properties tab (when you've the light selected obviously), and more 'cascade shadow map' settings - if it's a 'sun' type light.


You can do this with shape keys. First make the cube that had the smiling face. Then go to Properties > object data > shape keys and add a basis key. Now add another shape key.Go to the mesh and make the face to the frowning guy.  you can pan between the two keys slowly to make it form into the other.

The higher you set the value, the more frowny your guy will appear.


Video Sequence Editor: playback lag after stripchange

Encode your video files with post-production codec.

First thing you should look at is what a video codec you use. Every codec has a different use. In fact, most codecs that compress the video stream are only for linear playback.

So when you try to use codec what designed just for playing in videoplayer, it can be slow in non-linear playback. If you need fast workflow, use a special post-production codec. In blender good variant is a Avid DNxHD codec. Also you can try Apple ProRes

Unlike other programs, in the blender you must process the source material  manually (if necessary). If you use another application, you will see, that most other programs will re-encode the video before adding it to the editing line. In this there are pluses and minuses, but this is so.

Therefore, you still need to transcode the video, but next time you will encode into the right format. If you use files, that are not optimized to work in the video editor, there are no ways to make the workflow fast.


How to assign random numbers to phase value for all noise F-Curves modifiers?

Explained in the inline comments:

import bpy
from random import random

# Only selected (thus visible), editable objects
# bpy.data.objects would affect all objects in all scenes!
for ob in bpy.context.selected_editable_objects:

    # OPTIONAL: Ignore object types other than mesh
    if ob.type != 'MESH':
        continue

    # Is there an animation?
    if ob.animation_data is not None and ob.animation_data.action is not None:
        action = ob.animation_data.action

        # Iterate over all F-Curves
        for fcu in action.fcurves:

            # Iterate over all F-Curve modifiers
            for mod in fcu.modifiers:

                # Only act upon Noise modifiers
                if mod.type == 'NOISE':
                    mod.phase = random() * 5


How can a Script be periodically invoked from the BGE?

I had to click the small button (highlighted) and set the frequency to 1.

The option is called bpy.types.Sensor.use_pulse_true_level


Use a collection as object inputs in Animation nodes

Use a Loop Subprogram to do "for each something in somehing":


You can work around this by parenting force-field empties to the rigid bodies instead of making the rigid-bodies effectors themselves:

Add the force field: ShiftA>Force field > Force.
Parent it to your rigid-body sphere. Select the force-field, then the sphere and press CtrlP> Object.

It is important that the force-field has the same rotation and location as the sphere.

The force-fields will not have any affect on the sphere they are parented to, as the center of mass of the sphere is in the same place as the center of the force-field. They will affect the other spheres though.

Example animation (click for html5 version):

Example .blend


FYI : I didn't realize I didn't weld the seams in export.  I thought I did.  It was breaking on the seams.


How can i make Blender export multiple meshes with PLY/STL format for printing in 3D?

You can (maybe on a file copy, or even temporary just to export) convert the posed mesh to "mesh": select the posed mesh in object mode and press ALTC, select "convert to mesh". Or, you can apply the armature modifier, is the same.

Then the posed mesh is permanent, still parented in the same way but no more deformed, so you can join it to other objects, and then export.

However, joined object may pose some problem to 3d printing, since they were not modeled as a single mesh: they will not be connected, for sure, and may have overlaps, etc. You may need to edit the joined shape to fix any 3d printing issue.

In some case 3d printing software can address lesser problems, but you can also check with the (bundled, but disabled by default) addon "3d printing toolbox" to find and address most of them.


how to raise ambient light in a animation

Try adjusting the world background. A brighter color will result in more lighting. This setting is located in the World tab of the Properties editor. You can also add an HDRI by clicking the Use Nodes option, then selecting Environment Texture under the Surface options.


What exports does blender have for 3d printers?

When considering 3d printing, you should be more concerned with your mesh topology than an actual output format. BlenderCookie has a tutorial on preparing a model for 3d printing. An application or company that does this will take anything from .ply to .obj as all these formats do is hold mesh data.

Here is also an extensive article on (recently new) official support for 3d printing in Blender.

So as for a definitive answer to this question. 3d printing giants Shapeways make mention of .STL in this tutorial

  Finally, export to STL. When uploading the file, make sure to select
  "millimeters" for scale. If all went well, it'll upload, and you'll
  get notified that it's ready for printing.

and there is a set of tools called 3D Printing Toolbox available for Blender that assists with the overall process. Statistics/Cleanup/Export etc

You can enable the addon in Blender from the Mesh tab.

There is also a DVD on the Blender eShop on 3d printing. It is very modern and up to date.


No, that is not possible. Blender internal and eevee are way too different to be cross compatible. Materials can only be converted manually by baking the property maps or recreating the textures and functions in the node editor. You are better off keeping the latest version of 2.79 for your old files rather than porting them to 2.8x.


How can I make a texture follow the edges of my model?

Blender use “Checker texture” as 3D texture, that is the reason for curvature on non-cubic shapes (like your).

You can imagine 3D texture like a volume of black and white cubes glued together in real world. If you shape this volume into your cylinder shape you get exactly that curvature on surface.

To wrap object by checker texture you should use UV socket in "Texture Coordinates" node (instead Generated). To make it works you have to unwrap your object firts (if it’s not already unwrapped automatically).

In your case try to unwrap existing object by “Cylinder Projection” see tutorial here ...

... or even better by “Follow Active Quad” type. See details in Blender’s Manual how to use it. Don't skip “Note” paragraph that is essential to get correct result (90°grid). Or here - nicely explained

Alternatively

You can start from scratch ... add Cylinder object (that's unwrapped automaticaly). Since you choose UV (in Texture Coordinate node output) you get something like this.

If you go to "UV Editor" blender's layout, switch your object to edit mode and select all vertices. Grid appears in an UV Editor, so you can see how the mesh faces are unwrapped.

Add more loops (Ctrl+R)

Scale them to your shape. Go back to UV Editor and rearrange vertices to get more even grid for texture.


Make bone roll match a face/vertex normal?

Construct the bone matrix

Here is a script that creates a  bone at each edge such that the bones y axis is aligned vert 0 to vert 1 and the z axis to the "edge normal" ie the average of the two linked face normals.
Select mesh object in object mode, run script creates an armature with bone on each edge.
import bpy
import bmesh
from mathutils import Vector, Matrix
context = bpy.context
vl = context.view_layer
coll = context.collection
ob = context.object # the mesh
me = ob.data
bm = bmesh.new()
bm.from_mesh(me)
arm = bpy.data.armatures.new("Foo")
arm_obj = bpy.data.objects.new("Foo", arm)
coll.objects.link(arm_obj)
vl.objects.active = arm_obj
bpy.ops.object.mode_set(mode='EDIT')

for e in bm.edges:
    eb = arm.edit_bones.new(f"edge{e.index}")
    v = e.verts[1].co - e.verts[0].co

    y = v.normalized()
    z = sum((f.normal for f in e.link_faces), Vector()).normalized()
    x = y.cross(z)
    M = Matrix((x, y, z)).transposed().to_4x4()
    M.translation = e.verts[0].co
    eb.matrix = M
    eb.tail = e.verts[1].co

bpy.ops.object.mode_set()


Dual functionality for a single hotkey (S for Scale) - similar to the G hotkey for Move and Slide Move

I found the answer in a different post which goes into more detail on how to get it to work.

I don't know if this is allowed but I will link to the original post for a more detailed answer:

Link: How to define double shortcut like GG

Here is the code I used. The explanation on how to set up the keymap so this works is in the post I linked. Once everything is set up, I can tap the S key multiple times, first to activate the scale operator and any subsequent presses toggle between two Pivot Modes I specified.

import bpy
from bpy.props import IntProperty, FloatProperty

class ARC_CustomScale(bpy.types.Operator):
    """Allow SS with the Scale operator, similar to pressing GG to toggle functionality
       of the move tool while the operator is still active"""

    bl_idname = "arc.scale"
    bl_label = "Scale (ARC)"
    bl_options = {'REGISTER', 'UNDO'}

    count=0

    def modal(self, context, event):
        self.count +=1
        if self.count ==1:
            bpy.context.tool_settings.transform_pivot_point = 'MEDIAN_POINT'
            bpy.ops.transform.resize('INVOKE_DEFAULT')
            print("First Press")

        elif event.type == 'S':
            bpy.context.tool_settings.transform_pivot_point = 'INDIVIDUAL_ORIGINS'
            bpy.ops.transform.resize('INVOKE_DEFAULT')
            bpy.context.tool_settings.transform_pivot_point = 'MEDIAN_POINT'
            print("Second Press")
            self.count = 0
            #return {'CANCELLED'}

        elif event.type == 'LEFTMOUSE':
            return {'FINISHED'}

        elif event.type in {'RIGHTMOUSE', 'ESC'}:
            return {'CANCELLED'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        if context.object:

            context.window_manager.modal_handler_add(self)
            return {'RUNNING_MODAL'}
        else:
            self.report({'WARNING'}, "No active object, could not finish")
            return {'CANCELLED'}

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

def unregister():
    bpy.utils.unregister_class(ModalOperator)
ARC_CustomScale

if __name__ == "__main__":
    register()


Calling properties of objects in python only works for current scene even when other scenes are defined?

Do not use bpy in BGE, it uses blender data that is not accesible while running the game.

But that's not the problem, that's just to avoid future problems. It's not possible to know exactly whats happening without the blend file but you can check the following list:

An object with name "obj2" exists in a scene with the name "hud".
Such object is present in a visible layer.
The scene with the name "hud" has been added as an overlay or underlay scene.
obj2 is not hidden.

Seeing the kind of error you've got it seems that the scene is there but the object isn't. You can print all the objects in the scene with print(hud.objects), that should help finding it. You can also print all inactive objects with print(hud.objectsInactive). If neither of them shows your object, it's probably hidden or unreachable by the game engine. You'll have to investigate what's wrong with it.

By the way, though it's true that you're defining a variable (and that is an object in Python), you are not defining an object (at last not in BGE). You're creating a varaiable that points to an already existing object, it would be more acurate to say that you are referencing an object. The same applies to scenes.


Molecular Script Add-on: Why does this simple particle system blow up?

Issue comes from particles self collision (so boundaries).
In your case if you Display as Circles, you can see they are overlapping, set Render size to 0.02. Particles stops to explode.

To see particle's collision boundaries switch Viewport display > Display as Rendered to Circle.
Adjust Size value, so circles doesn't overlap.
The same value set in Render > Render as Object > Scale panel.
Then you can switch back Display > Display as Rendered.
Scale object (Sphere) in 3Dview (Object or Edit mode) to desired size.

What matters - Render Scale (viewport size is only for reference)
What confuse - Object Scale in 3D view does not affect self collision
The goal is to keep not overlapped "Display as Circles" with the same value for "Render as Object" ... Than if you scale object (Sphere) in 3Dview via Object mode or Edit mode doesn't matter. A size of object doesn't matter here, object can overlap each other or be a micro, its size doesn't affect behaviour of particles.
Render Scale 0.05

Render Scale 0.1

To see real boundary with Rendered as Object - add a new Sphere (by default Scale 1 / Dimension 2) and set Render Scale to 0.02, same set for selected Sphere in 3Dview Properties > Item > Transform > Scale. To see it right, uncheck in Particles Properties > Render > Object >  Object Scale. Now you can change only Render Scale value and have a control over real boundary at the same time (don't change Scale in 3D view from now).

Note: Object Scale means - use object scale value on top of particle scale. If particle will be size 2 and object scale 0.5 rendered particle (Sphere) will be size 1, but size of collision boundary stay 2. And "Render Scale" value matters :)


Import After Effects Camera Motion into Blender?

There is a script by Atom that uses Javascript to accomplish this. The full thread to download, and very clear instructions on how to use it are here in blenderartists.org


Blender 2.91.0 Broken Material in Material Mode and Render Mode?

The problem is the VGA driver.
I rolled back to version 20.11.1 and it worked.
I downloaded here:
https://www.amd.com/en/support/previous-drivers/graphics/radeon-500-series/radeon-rx-500-series/radeon-rx-570


How can I make this Dodecahedron shaped product?

As @Robin Betts said, Use the addon Add Mesh: Extra Objects to create the Dodecahedron.

Then in edit mode select the rouge edges that you can't use and dissolve them.

The select everything and delete only faces.
Back in object mode and convert to curve.
Now it is a curve object you can easily add roundness to the segments by increasing the bevel size, this is nice because you can come back later to change the size if you need to.

Now it's a simple matter of adding your favorite sphere shape and snapping its centre to every vertex of the dodecahedron. I recommend using ALT-D to duplicate so that if you want to change their size you can do them all at the same time.

For the seams, you could add a plane along where it needs to be, then use the knife tool to cut it up with some randomness and give it some slight thickness with a Solidify modifier and maybe a subsurf if it needs it.


2.78 broke all of my files' texture rendering

The real issue is that the subdivision surface modifier on the main plane is set to a different value between preview and render:

Additionally, the way Dupvertex interprets object scaling has been changed in 2.79. The best way to move forward is to scale the 'pixel' cube into a square and then apply the scale with Ctrl+A:

Finally, adjust the bevel modifier to get the right amount of bevel again.


Why is my thin glass dome taking so much light away from what is inside?

Notice in your reference image that there are multiple light sources clearly visible through the reflection on the gold egg. With any type of reflective/metallic object, having objects/lamps to reflect is important when trying to make the object not look flat.

I made a few changes to your scene to fix up the lighting:

I enabled smooth shading and auto-smooth normals on the glass dome, which also allowed me to reduce the number of subdivision surface iterations down to 2. That helped reduce render times a bit.
You should also consider moving the subsurf modifier on the glass dome before the
solidify modifier. When you apply the subsurf after the solidify
modifier, you end up flattening the solidify modifier by quite a bit.
I increased the size of the lamp from 0.1m to 0.44m. Glass refracts/and reflects light, so some of the light rays that would have struck the teapot without the glass would be refracted away from those points on the teapot as demonstrated by the shadow on the ground. That contributes to the perception of the gold being flat/dark. It also lets the light comes in from more angles, so more rays can strike the glass at points that make
them refract onto the teapot.


How To Fix Pixelated Cycles 3D Viewport Editor

To echo @brockmann (who commented), eight samples is very, very, very low. If your graphics card is working with cycles render, I would at least use 512 samples and work from there.
Edit: I was unable to find questions on what samples are, so I guess I’ll explain it myself. A “sample” is one shot of data for rendering, and more shots mean better looking renders, just like more signal flares with more wind conditions will give you a better idea of where the ship is. In Cycles, a sample is a single ray of light, traced backwards out of a camera, through a pixel, hitting what it may until it gets to a light source, thus defining what color that pixel of the image should be. An “importance map” is made just before the rest of the rendering which maps out where lights are in the scene, so the backwards-traced rays will be more likely to go towards them and not oblivion. The blender manual at docs.blender.org explains it better, but basically, a light ray will bounce in an arbitrary direction if it hits a rough surface, and a more predictable direction if it hits a smooth one. Few samples will then return a lot of fuzz on rough objects. “Caustics” is another place where fuzz can be created, where light being bounced around by mirrors or glass can have a hard time finding a light source from the “importance map.” Thus, there is a lot of fuzz in your cube as only eight rays work on each pixel: it’s like calling eight random people in a country to find out how popular a TV show is. One set of eight might indicate no popularity, while another is more correct, while still another indicates that everyone watches that TV show. Lots of samples means lots of rays, lots of tested directions light could be coming from, and lots more actual representation of what kind of light is hitting that spot. More samples also means more computing time, but if you’ve got time for how long your computer (or GPU) takes, go ahead and do it.
NVidia is the best, so you can probably do a lot of samples


Try selecting the object and pressing M to move between layers. If all the layers are selected in the dialog which subsequently appears, press 1 (or click on the first layer in the dialog with  LMB) to move the object to just that layer.


Here is a little snippet that prints out all the coordinates of the hair vertices from the first particle system on a selected object. Make sure the object has a hair particle system.

import bpy

object = bpy.context.object
hairs = object.particle_systems[0].particles
for i, h in enumerate(hairs):
    print('hair number {i}:'.format(i=i))
    for i, hv in enumerate(h.hair_keys):
        print('  vertex {i} coordinates: {co}'.format(i=i, co=hv.co))

particle_systems[0] is used to get to the first particle system of the object. After this the particles are all the particles in the system (in this case the hairs). The hair vertices are accessed with hair_keys. Finally to get the coordinates of a hair vertex you use co.

If you want the coordinate of only one hair vertex, you could type it in one nasty line:

bpy.context.object.particle_systems[0].particles[0].hair_keys[0].co


How would I go about UV mapping this object?

Never mind everyone I did a UV Smart Project and it looks like this:

Would this be good for making the light map and stop the overlapping?


That means that a few vertices aren't weighted to any of your bones. Select your rig, go to Pose Mode, then select your mesh and go to Weight Paint Mode. Now select the bone that should be controlling those vertices and using the Add Brush add some weight to those vertices and they will automatically update and follow the bone you have selected. You can make two or more bones control a vertex by giving that vertex a weight from multiple bones.


Cycles is not rendering caustics, even though "No Caustics" is disabled?

Lamps (with the exception of mesh lamps) will not cast caustics if they don't have Multiple Importance Sampling enabled on them.

Make sure any lamps in your scene have this enabled:


Optimal way to fill terrain between roads

You could:
Create your road with Array and Curve modifiers:

Extrude the outer and inner borders of the road and AltS to scale. Fill the inner face, create a plane all around:

Make the road invisible with H

Create a second object, a plane that you subdivide and that you put over your road, delete the faces only:

Go in the top orthographic view, select the grid, shift select the road, use the Knife Project tool to print the grid on the road object. Unhide the road vertices, here is what you should get:

Now you can shrinkrap the object to another surface. If you don't want the road to shrinkwrap, create a vertex group that you exclude from the Shrinkwrap modifier. You can also sculpt the object, if you want to keep the road flat, hide it before switching to Sculpt mode.
Edit:
How to make the square plane around the road: Extrude the vertex, F to fill between two vertices, F to fill the whole face:


Rotate multiple objects randomly at 90 degree intervals

Well, I gave it a shot, but all I could manage was to rotate entire selection by whatever angle (value) is used. I am not iterating over individual meshes. If somebody can tweak this, I'm sure it would work:

import bpy
import random
from datetime import datetime
import math
import mathutils

for obj in bpy.context.selected_objects:
    random.seed(datetime.now())
    randnum = math.radians(90 * random.randint(0,3))
    bpy.ops.transform.rotate(value=randnum, orient_axis='Z', orient_type='GLOBAL', orient_matrix=((1, 0, 0), (0, 1, 0), (0, 0, 1)), orient_matrix_type='GLOBAL', constraint_axis=(False, False, True), mirror=True, use_proportional_edit=False, proportional_edit_falloff='SMOOTH', proportional_size=1, use_proportional_connected=False, use_proportional_projected=False)

Change 90 to 45 and you will see what I mean. Scripts are accessible in 2.8 from the Scripting tab.

EDIT:  Actually , selecting each panel one at a time, hovering the cursor over the script panel, and pressing "ALT"+"P" (which runs the script on the selected tile) takes less than a second. Doing this with each of these hundred panels took less than 100 seconds. The result looks like what you want and the time is reasonable if you want to tile a hundred or fewer panels on a wall:

Note: You will see if you open the .blend file, but each of these tiles is a copy of a scaled down cube with two vertices moved down slightly. This ensures the back of the tiles are flush with the wall. You can move them down further (or the other two up) if you want a more dramatic slope. But you will need to delete the other 99 and generate, then apply the arrays again. That will only take a few seconds though.


Images added to be used as "reference" or as "background" will not render, they are reference only. The same is valid for Images used as empties. Think of those images as "virtual" or "auxiliary objects" or with no renderable attributes (like a surface or material).

If you want a plane that uses an image as a texture then you have to enable the "add images as planes" addon in the preferences window.

Now you can add an image as plane. The difference is that this addon will create real object: a plane with 4 vertices and a face that uses the image as a textures on the material. This new object is renderable.

Read also: How to map an Image on a plane manually?


Despite the name, f-curves can contain either curve data or sampled data. The sampled data that is used when you bake a sound to an fcurve is not editable.

There are methods available in python to convert between curves and sampled data but blender does not provide a way to do this through the user interface. There is an addon that adds this to the graph editor here.

After installing and enabling the addon you can convert the baked sound to curves which you can then edit as you wish.


The biggest thing that stands out between your reference and render is variety. There is so much variety of plant species in the reference, but little to none in your render. You need to get to modeling several versions of many of those species to start getting something that looks nearly as good or photorealistic. Your biggest problem is not your material, but your models.

Another (smaller) suggestion I have is to use an add shader for the translucency. You can use a setup like the one below to control the brightness of the translucency (connect a mix shader to the translucent node and nothing else, then run that to an add shader that adds it to the rest of the material...the mix factor on the mix shader will control the amount of translucency). Have you noticed that a leaf with translucency isn't generally any darker on the front side as one that is not translucent? I don't know the physical reason why, (perhaps a good question for physics.se), but it certainly seems to be true at least visually. I first learned this trick by looking at the Grass Essentials marketing material by Andrew Price.

For another example of photo-realistic grass, the Cosmos Laundromat benchmark scene has the Blender Foundation's grass shader which if I recall correctly uses simply a mix shader. They also have much more detail in the texturing than your shader currently has, but I don't know what type or style of grass you are aiming for anyway.

I would reference the Gooseberry project (and Andrew's materials if you have the money). Disclaimer: although "The Grass Essentials" is insanely successful and well-rated, I do not own it myself, so take my recommendation with a grain of salt.

You may find more good reference materials on BlendSwap:

https://www.blendswap.com/blends/search?keywords=grass&is_fan_art=1&blend_license=&render_engine=Cycles&sort=downloads&direction=desc


Local view, accessed by pressing "/" on the numpad, isolates the view to only show selected objects. Think of it like hiding all of the layers in something like Photoshop, but leaving only the one you're working on.
When in local view, move only lets you leave local view. Most likely because it puts the object in an isolated collection.
You can get around this though, by splitting your view, which should have the rest of the scene, then you can move normally while your mouse is hovered over the section with the rest of the scene.
You can even add objects to your local view by selecting all in local view, and adding the objects you want to the current selection from the view with the whole scene. Then just exit and re-enter local view.


Multiple array modifiers and object offset rotation

Add a second array modifier to your column.
Crate a second empty at the same location of origin of the column and assign it in the second array modifier.
Set the 3D Cursor where the center of the array should be.
Set Pivot Point to 3D Cursor
Select the second empty and rotate it on Z axis (360/count number in second array modifier)


instead readd you circle and then go the left panel (press  T  button) and then you can decrease the number of vertices of your circle


Python function behaves differently in a loop?

The loop is not the problem. The dimensions are based on the selection, which is why running the loop did not work.

All you need is to add in selection and deselection to your script.

Notice on line 6 ob.select = True and on line 25 ob.select = False.
That selects the object the loop is working on, then deselects it when that iteration of the loop is done.
The reason you need to select and deselect each object is because ob.dimensions is the bounding box of the selection, not just one object.
Which is why it seamed to work for only one object at a time.

Entire script:

import bpy
import math

def set_orientation(ob, target_rotation):
    bpy.context.scene.objects.active = ob
    ob.select = True
    #ob: object to operate on

    #this assumes you are starting at 0 rotaton, so you pobably want to apply rotation before doing anything:
    bpy.ops.object.transform_apply(location=False, rotation=True, scale=False) #apply rotation
    #get inverse of rotation we want:
    t_rot = (math.radians(target_rotation[0]*-1),
             math.radians(target_rotation[1]*-1),
             math.radians(target_rotation[2]*-1))
    #we need to apply the rotations in reverse order, so unsure that we are in zyx:
    ob.rotation_mode = 'ZYX'
    ob.rotation_euler = (t_rot) #set rotation to inverse
    bpy.ops.object.transform_apply(location=False, rotation=True, scale=False) #apply rotation

    t_rot = (math.radians(target_rotation[0]),
             math.radians(target_rotation[1]),
             math.radians(target_rotation[2]))
    ob.rotation_mode = 'XYZ' #set rotation mode back (was zyx, so we want xyz)
    ob.rotation_euler = (t_rot) #set rotation
    ob.select = False

def fix_orientation(ob):
    if ob.type != 'MESH':
        return

    d = ob.dimensions
    correction = (0,0,0)

    if d[0] > d[1] and d[0] > d[2]:
        correction = (0,0,90)

    if d[1] > d[0] and d[0] > d[2]:
        correction = (0,0,0)

    if d[2] > d[0] and d[2] > d[1]:
        correction = (90,0,0)

    # hack for fixing rotation on boards at 45 degree angles:
    if abs(d[0] - d[1]) < .1:
        correction = (0,0,45)

    if abs(d[0] - d[2]) < .1:
        correction = (0,45,0)

    if abs(d[1] - d[2]) < .1:
        correction = (45,0,0)

    set_orientation(ob, correction)

for ob in bpy.data.objects:
    fix_orientation(ob)


Is there any way to use input() or raw_input() functions in blender scripting?

No simply there is not... but I have made this solution for you, it creates a entire menu that pops up and ask the info(scale/name) for the cube to be added. Here is the code:

import bpy
import mathutils as math

# This class is the actual dialog that pops up to create the cube
class AddCubeDialogOperator(bpy.types.Operator):
    bl_idname = "object.add_cube_dialog"
    bl_label = "Add Cube"

    # Here you declare everything you want to show in the dialog
    name = bpy.props.StringProperty(name = "Objects Name:", default = "Cube")
    scale = bpy.props.FloatVectorProperty(name = "Scale:", default = (1.0, 1.0, 1.0))

    # This is the method that is called when the ok button is pressed
    # which is what calls the AddCube() method
    def execute(self, context):
        AddCube(self.name, self.scale)
        self.report({'INFO'}, "Added Cube")
        return {'FINISHED'}

    # This is called when the operator is called, this "shows" the dialog
    def invoke(self, context, event):
        wm = context.window_manager
        return wm.invoke_props_dialog(self)

# This method adds a cube to the current scene and then applys scale and
# name to the cube
def AddCube(name, scale):
    bpy.ops.mesh.primitive_cube_add()
    bpy.context.scene.objects.active.name = name
    bpy.context.scene.objects.active.scale = scale

# Registers the cube dialog to blender so that it can be called
bpy.utils.register_class(AddCubeDialogOperator)

# Calls the menu when the script is ran
bpy.ops.object.add_cube_dialog('INVOKE_DEFAULT')

I tried to comment everything to make you understand it all, just reply if you don't understand something. If you run this code you should get something like:


Is there a way to create "snap to surface" constraint?

Tell me if this is what you want:

Create a plane, go in Edit mode, W > Subdivide a bit and assign the whole mesh a Group name in Properties > Data > Vertex Groups.
Give your Camera a Copy Location constraint, choose the plane as the Target, then choose the Group. Click Offset and move the Camera until it is over the plane at the place you want.
Give your plane a Shrinkwrap modifier and choose the ground as your Target.
Move your plane, the Camera should follow the ground on the same Z distance all along.


VIewport View Rotates Weirdly Around Certain Object's Pivot

Oh, I just solved it myself. It seems my camera was locked to that object in the N menu in the "view" section. I just removed object from there.


Is it possible you have zoomed in too far? Try selecting an object in your scene and hitting "." on the num pad to recenter the view port on that object. Hope this helps.


Why does rendering to one slot remove renders from other slots?

Needed to click the blank button to right of Slot 1.
Then select the render.
It was there, just hiding.


Dump Scene object Information To console or String for debugging purposes

I had the need to do something similar recently, and here is a very brief solution that I attempted, hopefully it can be helpful:

Create a script at the same location with your target .blend file named something like script.py:

import bpy
# Use bpy.context.scene.objects.keys() to get the name of objects

with open('output.txt', 'w+') as the_file:
    the_file.write(', '.join(bpy.context.scene.objects.keys()))

Execute blender in background for the target file and run the script: In command line, use blender -b filename.blend -P script.py to run blender in background and execute the script on the scene.

This script will dump all object names in the scene into a file named "output.txt".


How to change texture of all objects at the same time?

Try applying the same materials on those parts if they are just using the same texture. have them UV unwrapped uniformly so they will have the same amount and look of the texture as you adjust the material.


IK rigged elbows have unexpected "laggy" or "jumpy" behaviour when animated

So by messing around I managed to find my own mistake, and hopefully this answer will help others avoid it.

As is the standard with most IK setups, I have 2 bones in the place of the Hand:

The actual deforming Hand bone, which is child of the Lower Arm bone
A helper "Controller" bone, which occupies the same space as the Hand bone, but is not a child of the skeleton.

The Lower arm bone has a regular IK with the hand Contoller as a target, the deforming Hand bone then has a Copy Rotation constraint, so that it always has the same orientation as the hand Controller.

And here's where I made my mistake:

I wanted to add some extra realism to my rig by adding a Copy Rotation constraint on top of the IK to the Lower arm, 0.5 weight and limited to Y, so that the forearm would twist slightly as the hand bone turns. But I've set the target of this constraint to be the deforming Hand bone, and not the Controller bone.
That means the IK solver had to compute a lower arm bone, which rotation was dependent on the hand bone, which rotation was dependent on the controller bone. The rotation of the Lower arm basically had to be calculated in two steps, which is most likely what caused the strange Elbow desync as seen in that gif above.

I've discovered this by the elbows suddenly fixing themselves when I muted the lower arm's copy rotation constraint.

So the solution is following:

As ironical as it is compared to the length of my descriptions, the solution was as simple as changing the target of the Lower arm's Copy Rotation constraint from the Hand bone to the hand Controller bone. That way the rotation for the lower arm is only calculated once, and the problem disappears.


How do I set my camera rotation with Python?

def setupCamera(scene, c):
    pi = math.pi

    scene.camera.rotation_euler[0] = c[0] * (pi / 180.0)
    scene.camera.rotation_euler[1] = c[1] * (pi / 180.0)
    scene.camera.rotation_euler[2] = c[2] * (pi / 180.0)

    scene.camera.location.x = c[3]
    scene.camera.location.y = c[4]
    scene.camera.location.z = c[5]

    return

scene = bpy.data.scenes["Scene"]

config = list([67.1349, 0.779594, 148.858, 5.57961, 9.16202, 5.34536])

bpy.ops.object.camera_add()
cam = bpy.data.objects['Camera']
cam.rotation_mode = 'XYZ'

scene.camera = cam

setupCamera(scene=scene, c=config)


Issues with cloth simulations such as this are most commonly caused by either needing to Apply Scale, starting already intersecting with a collision mesh, Collision settings or Self Collision settings.
Things to try :

Apply Scale on all of your meshes (the cloth and any colliders)
Separate the meshes more at the start of the simulation and see if that helps avoid the erratic behaviour to rule out intersections
Adjust collision settings one at a time to see how they affect collisions
Check your normals are facing the correct direction on each of your collision meshes
Try disabling Self Collision and/or adjust each setting to see what helps

After each stage you’ll need to re-bake the animation to ensure the new state is taken into account.


If you reparent With Automatic Weight it will works rather fine, so the solution may be to make hands separate objects, parent With Automatic Weight, then if necessary join back to the rest:

If you don't want to reparent With Automatic Weight for some reasons, then you need to give some manual corrections in order to extend a bit the influence of each bone. First thing, display the layers with the bones that deform your mesh and the ones that command:

You need then to extend a bit the influence of each phalanx, before:

After:

It will work better:

Use the Paint Mask option to make it easier to paint on the right faces, also make sure that you enable all the options that allow to paint through (in the N panel):

You can also do all the corrections through the Vertex Groups list and Assign button, which may be quicker:


Background Image (Movie clip) appearing purple

Pink always mean that the image used is missing or cannot be displayed.

If the frame you are trying to use does not exist in your video file you can instruct blender where to start the video file.

as described in this link:

How can I make a "Movie Clip" node start at a certain frame of the scene?

use the frame, start frame and offset for the video or image sequence.

Now why would your video be missing the first frame?

It is likely that you are dealing with video that has been compressed with an interframe codec using P or B frames and the reference keyframe at the beginning of the Group of Pictures is missing or cannot be read, so the first image displayed is the first keyframe of the next GOP. For more info on this read: https://www.bhphotovideo.com/explora/video/tips-and-solutions/compression-a-basic-understanding


UV mapping - multi-texture material shared by multiple meshes

So I finally figured out how to fix my problem. The solution is pretty simple - just create new uv_layer for texture with same name as uv_layer in mesh.

Here is fix for my plugin for everyone who is interested in: blender-plugin-vietcong


The Subdivision Surface modifier (which it looks like you are using) smoothes the object based on the average of the points. So in order to make a crease look sharper, add more geometry there. You can do this with a loop cut by using CtrlR. There are also many other ways.

But then again, as mentioned by @RobinBetts, it is much easier to make the handle and blade separately, apply the modifiers, and then join them together.


You should to add more edge loops in blue side , Equal with red side to join , then add one loop between red and blue side and Bevel to have a curvy conection .
Upload Blend file to show you how it's possible .


Ok, I finally solve it.
The normalized mist pass node group with and without alpha mask:


What sort of difficulty have you met? To do this kind of thing:

Create your cylinder, in the Physics panel press Rigid Body, choose Type > Passive and Shape > Mesh.
Create your falling object, in the Physics panel press Rigid Body, choose Type > Active.
Duplicate your object with altD (linked duplication).
Play the animation.


Denoising options in latest 2.91 nightly builds

The short answer is that if you enable the Denoising in the render options you do not need to use the compositor Denoise node. And OpenImageDenoise is better.
The longer answer is that OpenImageDenoise is the same as the compositor node but it works while rendering rather then after the the render which can speed things up a lot. NLM is a denoiser that doesn't use ai unlike the others so it isn't as good.
This is a version of a project i started that has subsurface scattering so it is harder to render
This is with only 5 samples and no denoising

This is all the same and still with 5 samples but with NLM denoiser which is the one that doesn't use ai

And this is identical but with the OpenImageDenoiser made by Intel that uses ai but can sometimes be slightly slower than Optix ai denoiser by Nvidia that is only for compatible Nvidia graphics cards and slightly less impressive
As you see the OpenImageDenoise is better
For curiosity's sake this is the faster but only for Nvidea cards Optix real-time denoiser that is somewhere in between NLM and Intel OpenImageDenoise


Backup you latest defective file and work with a copy.

The armature modifier can be deleted and then a second bind to armature can be performed.

Deleting an armature modifier may sound error prone.  Yet Blender features can be deleted and recreated.

If you saved the binding position for example in Frame 1 then you can simply bind a second time.

It is unfortunate that you had this location of mesh accident.  There are many ways this can happen. One is moving the keyframed mesh and NOT setting a location keyframe. Keyframe mesh position in frame 1.

You may choose to move your mesh to the origin.  Place the armature and bind to armature correctly.  Frame 1.

You may consider in the future that you may rebind at any time in Frame 1.


How to create a material that is part solid, part transparent wireframe?

In Blender Internal render engine, you can use Freestyle. To enable freestyle - Go to the render panel and click freestyle -

Then go to edit mode, select the edges that you want to render and press "Crtl+E"
and click "mark freestyle edge".

Then go to "Render Layers", click on the Line set that should be automaticly created and click only on "edge mark"

Then on the tab "freestyle line style", you have options for the lines.

Then you can click on render.


You just need to swap your last call with the one you want to use.

For example if you want to export to gltf use

bpy.ops.export_scene.gltf(filepath='path/to/file.gltf')

For stl its

bpy.ops.export_mesh.stl(filepath='path/to/file.stl')

If you get an error when running the script, that may mean that the addon is not enabled. You can use the addon_utils module to enable an addon.

import addon_utils
addon_utils.enable('addon_name')

where "addon_name" is the addons file/folder name within the addons folder.

You can also enable addons on the CLI when starting blender.

blender -b -addons io_scene_3ds,io_import_dxf file.blend -P script.py


Make a mesh inside another mesh appear over the the outer mesh

For Cycles I use this setup (not mine, but I can't remember where i found it) :

You can also use Freestyle, it's a different approach but gives a lot of control over the edge style, thickness etc.


Cycles needs to cache the scene into memory, this takes time, see: https://blender.stackexchange.com/a/31976/21508

That answer also correlates with your question.


3D Connexion Space Mouse stops responding during Blender operations

I don't think this is a 3D mouse issue, this is a well known general Blender limitation.

Most of those operators are modals (Knife Project, Extrude, Translate etc), and while they are running one cant access any other operators, until operation is terminated (that also includes viewport navigation operators like Move View or Rotate View). Bottom line is this is also an issue with regular mouse and keyboard.

Things may yet improve for the upcoming 2.8 series, but nothing is written in stone.


I would just use Snapping.

set Snapping to Face
grab a curve point while holding Ctrl to temporarily enable the Snap to follow the shape of a target object

You can also take a look at Shrinkwrap modifier, but it can be little tricky for this kind of usage.
https://docs.blender.org/manual/en/latest/modeling/modifiers/deform/shrinkwrap.html


How to importing all active hosting servers as server list into blender game engine?

To name a few, there are numerous, Python network modules out there, for example socket, pickle (and cPickle).


How to set transparent property per object for fade in/out, without having redundancy of materials?

You can use the object viewport color to force variation per-object, even if they share the same material.

The setup is quite simple :

If you are using Eevee, don't forget to tweak the blend mode and uncheck "Show Backface"

Add some keyframes and play :

Further reading on viewport color


Python Script FBX export blender problem

I needed to specify my entire file path in the filepath parameter of the bpy.ops.export_scene.fbx method.


I was poking around and I think I found a solution:
# Import
import bpy
from bpy.props import StringProperty

# Properties
class Blank(bpy.types.Operator):
    bl_label = "Blank"
    bl_idname = "blank.example"

    current: StringProperty()
    last: StringProperty()

    # TESTING ##################################################################
    def modal(self, context, event):
        current = bpy.context.active_object.name
        if event.type == 'MOUSEMOVE' and current != self.last:
            name = bpy.context.active_object.name
            print(name)
        if event.type == 'ESC':
            print("CANCELLED")
            return{'CANCELLED'}
        self.last = bpy.context.active_object.name
        return{'PASS_THROUGH'}
    def invoke(self, context, event):
        context.window_manager.modal_handler_add(self)
        self.last = bpy.context.active_object.name
        return{'RUNNING_MODAL'}
    ############################################################################

# Menu on the Sidebar
class Blank_PT_Panel(bpy.types.Panel):
    bl_label = "Panel"
    bl_idname = "OBJECT_PT_Blank"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'UI'
    bl_category = "Blank"
    bl_context = "objectmode"

    def draw(self, context):
        layout = self.layout
        # Button
        row = layout.row(align=True)
        row.operator("blank.example", text="Button", icon="QUESTION")

# Registration
classes = (
    Blank_PT_Panel,
    Blank,
    )
def register():
    from bpy.utils import register_class
    for cls in classes:
        register_class(cls)
def unregister():
    from bpy.utils import unregister_class
    for cls in reversed(classes):
        unregister_class(cls)
if __name__ == "__main__":
    register()


Why Blender 2.49 does not show button on ubuntu like it does in windows?

You can find your addon for 2.79 and 2.8 in link here.
https://github.com/sketchfab/blender-plugin

If you are unfamiliar with 2.8, you can see basic tutorials in link below.
https://www.youtube.com/playlist?list=PLa1F2ddGya_-UvuAqHAksYnB0qL9yWDO6

Playlists of tutorials for 2.8x on page 4 and those for 2.7x on page 5. I regard those as best for absolute beginners.
https://docs.google.com/presentation/d/13UpIjJEE7Oa7x5BiMsjXGW5CGOTDF03-SocRYi4Babs/


This is actually an add-on (shipped with blender) but you have to activate it. Go to Edit > Preferences > Add-ons and look for "Import images as planes"


Arrange order of items in collection / outliner?

Even though you can't manually rearrange objects like in C4D, you can use an "Empty" which is the equivalent to a "Null Object" to separate objects inside a collection.


If I understandyour question, as you are getting from  the color ramp a shading information, you can use it as a color multiplyer before the actual shader.


2.9. Joined my Armature and now my Weight Paints don't work

Weight paint only allows you to select bones on an armature that is linked to the mesh with an armature modifier, so you need to make sure that that is set up properly before weight painting.


Bridge Edge loops can handle this situation.
Make a selection on the top row of n contiguous vertices.
Also make a selection on the bottom row of n contiguous vertices.
Bridge Edge loops.


In Object Mode press Alt+C and select Curve from Mesh/Text. Then in the curve properties under Fill select Full and to give it depth under Bevel increase Depth. Also use Resolution to make it more round.


Tire modelling. Problem with sharp edges on tread

Given that you are using a curve modifier to bend your array, try increasing its resolution. The default value is 12, but it might not be enough for the kind of detail you need.

Also, make sure to enable "smooth shading" for the object.


You might want to have a look at this: http://www.blendswap.com/blends/view/65505
or this: http://www.blendswap.com/blends/view/44982

They are both using Freestyle for the lines, and Eight_Bit blending has no anti-aliasing. But you can find all that out with a look at the .blend files.


There is no file in the module directory that gives acces to the bge module's code which is written in the source of blender executable.


How to rig a car wheel. I don't find the add single driver option

Yes, it's an UI update that happened between 2.77 and 2.74.

The workflow initially was to assign an "empty" driver and then define it in the graph editor. Nowdays it's provided an option to set a driver based on a picked object.

You can obtain the same result shown in your video by choosing "Manually Create Later (Single)" option in the driver menu.


Edit custom properties cycles_visibility

I figured out how to fix this. Just add new property, than ckick "Edit". In "Property name" type cycles_visibility and in "Property value" erase "1.0".


Why type.event ?

You should get your event.type, and you may want to compare the event.value as well:

def modal(self, context, event):
    if event.type in {"LEFTMOUSE"} and event.value == "RELEASE":
        return {'FINISHED'}
    return {'PASS_THROUGH'}

Also, it might be possible that an event been stop propagate in most of the event handling system. You might need to check the context carefully to see what is the main problem.


Geometry Nodes. What to enter in the result to get a change in the Z axis?

I guess one solution to do what you are asking is a tree like the following:

Click to enlarge
The logic behind this is simple, use a  separate xyz node, and use a math>add before the combine xyz node to control scale in the transform node.
The value node simply provides a means for uniform scaling in all or multiple axes.
This produces the following result on a point instance of cubes.

Do note that the geometry nodes project is a work in progress, and some features are still being adjusted as development continues.


How to recreate this "default-like" look with Cycles?

Go to "[your Blender installation
folder] \ [version]\datafiles\studiolights\matcap" and select your matcap.
make a node setup like above. (note that values in mapping node are changed)
add a sun.
from here on you can adjust the nodes and sun to mimic workbench more.

here is basic 2 matcap with sun strength to 3:

my node setup is sourced from this video: https://youtu.be/QdlBB4-uW_E


Multiplying the color of the HDRi with the blackbody color seems to do what you want. I don't know if it's physically accurate however.

Multiply node is added by adding a Color > MixRGB node and changing the operator to Multiply


Blender 2.78 file size grows and does never shrink

Your scene is far from empty (couldn't be any other way), there are plenty of objects there stored inside groups.

Try switching your outliner to Group view and you will find plenty of group definitions you can insert into your scene, with lots of high poly objects stored in them.

Not sure exactly how they are stored or where they come from, but they are causing your big file size. Will try to investigate further.

If you go into the Outliner > Datablocks view you can also see lots of data stored inside your file, like images, objects, groups, brushes, etc.

To actually delete data, select the (un)desired groups in the Outliner under Group mode, Right Click over the group name (not the icon) and choose Unlink option.

You have to save, quit file, close Blender and then reopen the file again, for actual data to be gone. Save again and file size should be reduced.

EDIT

Ok, only way I figured out how to actually reduce file was to go into the Outliner, after unlinking all groups as described above, switch to Blender File mode, go into the Mesh category and manually select everything and erase it with Right Click > Delete. This reduced file size to about 5Mb

Due to the large amount it is probably easier to just select everything with A and deselect all other categories before erasing


I think that there is something around this reason:

You take an internal pointer "uv = object.data.uv_textures[0].data"
This pointer is modified/reallocated during "bpy.ops.object.material_slot_assign()"
So "uv[x]" is no longer available

You can instead do something like that:

import bpy

object = bpy.context.scene.objects.active

uv = object.data.uv_textures[0].data

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

for i, slot in enumerate( object.material_slots ):
    for p in [p for p in object.data.polygons if p.select]:
        p.material_index = i
    #bpy.ops.object.mode_set(mode = 'EDIT')
    #bpy.ops.object.material_slot_assign()
    #bpy.ops.object.mode_set(mode = 'OBJECT')

print( uv[1].image )

Or, of course, access to an available pointer again:

import bpy

object = bpy.context.scene.objects.active

uv = object.data.uv_textures[0].data

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

for i, slot in enumerate( object.material_slots ):
    bpy.ops.object.mode_set(mode = 'EDIT')
    bpy.ops.object.material_slot_assign()
    bpy.ops.object.mode_set(mode = 'OBJECT')

uv = object.data.uv_textures[0].data
print( uv[1].image )

... but I don't get the meaning of this loop, as it will assign to the last material at the end (probably because this is an extract of the whole code...).


A shadow in a world without light ? Can you crack this riddle?

I could be off base, but when this happens in my scenes it's usually because of either;

the object has flipped normals
or the scale is inverted (which is kind of the same issue)


Rendering frames:Black and white instead of colour images, settings are RGBA

It was because the textures are not imported. If you are importing models, make sure that textures are also imported before rendering


As far as I know, you can't go back.
You have to delete what it imported and re-import with the new settings.


BUG? Particles offset from emitter when using object

I kept running into this. In my case I had to:

Apply all offsets to both the emitter as well as all objects in my particle group

Set the origin to the geometry of all objects in my particle group as well as the emitter

Took me a while to figure this out


No, you don't need to add extra bones. You may need to rearrange some of the existing bones.

Remember, when something doesn't work like real life, the best thing you can do is try to mimic real life.

Here's a picture I drew, with proper weights on the leg and a diagram of how the real bone structure is.

Notice how the effects of the leg bone has are very little on the glutes. This will help with crouching as the but won't have to stretch out in order to reach a full squat. Above the hip joint there should be little to no weight, except a little on the abdominal muscles, which need to suck in a little in order for the leg to not collide with them.

I think this should solve most of your problems; it always works for me.


Is it possible to compress or split '.blend' files within Blender? If so, how?

All you need to do is check the Compress File box when saving. If your file is still too big, consider using a service like Dropbox or YouSendIt.


Rock Generator says it doesn't work in 2.8

The error message you're seeing means that the add-on has not been updated for 2.8.  Until it is, it will not work in Blender 2.8.

You can either use it in Blender 2.79 (assuming it's compatible with 2.79), or wait for the add-on to be updated for 2.8.


Exactly positioning and aligning objects

Here are some useful tips for precise modeling in Blender:

01) Set your units to milimeters
Properties Panel->Scene->Units->Length

02) Set snapping to Increments
and enable Absolute snapping.

03) Use orthographic view and side views
This allows you to use grid better, and align precisely
Orthographic view shortcut: Numpad 5
Viewpoint shortcut: ~ or use Numpad numbers.

Switch to orthographic view and out

Use ~ to switch views

04) Make use of Quad View

05) Learn to use 3D cursor and work with Object origin.
These are very powerful together for precise object alignment.

06) Adjust your grid scale.
The default setting is good for most situations, but sometimes you may need to adjust it.

07) Blender is no CAD, but it will get you there :).
And as @Leander said - tinyCAD addon.
Enable it in Preferences->Addons  (and Save preferences)


Can't see the Armature in Object Mode and in Weight Painting Mode in blender 2.8

Maybe you disabled Bones in the Viewport Overlay options?
The options are at the two intersecting circles on the top right.


In that example I worked only with the cylinder and extended it out and squared it off to look like a cube edge .. But if you want to attach the cylinder to a separate cube and want it to join it properly, you have to match vertices.

Remove the faces off the top of the cube and then add or remove vertices to the cube along the edge so both the cylinder and the cube have the same number where they meet. Then you fill in the faces, bridging the gap .. I have an example. The cylinder has 32 vertices along the edge and the cube began with 4. I connected the corners to the cylinder using edges, that's 4. THen I added 7 vertices on each side of the cube. That gave the cube 32 as well (7x4 +4). Then I began filling the gap.

If you look at bolts in the add-on 'bolts' you'll see they are made the same way basically where the screw part meets the head .. the cylinder is extended along the flat to the edge and the hexagonal edge vertices have to match the cylinder (ie top of the screw).

Also I have a quick example of attaching two shapes very roughly similar to your die cast example. I attached them  (this involves some editting where they meet) and THEN I worry about extending the flat area which I started to do. Hope it helps.

Oh ya, I saw the comment about retopo ... that's a good method too .. In essence it's joining various shapes and then laying over it a mesh you construct. You have know about how to lay meshes you build on top of objects which is what retopo is .. anyway .. good luck


why array modifier merging the mesh in each other?

You have an Array modifier with Object Offset. The offset object is an empty. Its rotation value is too low, so your ornement overlaps itself. If you increase the rotation value (RZ) you will avoid overlapping except between first and last.

Your ornement is bent, you should have made sure that it covered 1/4 of a circle (or 1/3 or 1/5 but not 1.2/4, otherwise the overlapping had to happen.

I'm not sure there's any easy solution if you didn't keep a flat version of your ornement. You can try to flatten it back with the Simple Deform modifier / Bend mode (and Z axis). Then try Array + Curve or Array + Simple Deform modifier to make the ornement go 360° with no overlapping, then modify the ornement a bit so that it sticks to the glass.


Text fractured with cell fracture add-on doesn't resemble text object on first layer

Cell Fracture Preparation

Converted extruded text to Mesh.

Edit Mode.  Select All Vertices. Vertex remove doubles.

Object Mode. Add a Remesh Modifer to prepare your mesh for Cell Fracture.  Apply.

Now Begin Cell Fracture.

Warning

The text format conversion to mesh does [not] guarantee a conversion appropriate for cell fracture.


How can I change the angle of an edge loop?

I think you mean Shear? Shift+Ctrl+Alt+S with selected vertices, then drag the mouse cursor around to effect the amount.

But I think he uses a simple Rotate (R), with the pivot point set to Median Point, then move the mouse to adjust the rotation amount.


No save startup file or load factory settings option?

the new path is File > Defaults > Save Startup File


Create a boundary mesh around complex mesh

I made and addon that do this. actually work in 2.7.8 a. download

actually you need fix your mesh.

full video:
https://www.youtube.com/watch?v=CIMbexeP3aE


Rotate an object around an axis using python script

If you don't want to manipulate matrix_world you have to check the rotation_mode of the object first and set the corresponding value accordingly.

import bpy
import math
import mathutils

obj = bpy.context.active_object
eul = mathutils.Euler((0.0, math.radians(45.0), 0.0), 'XYZ')

if obj.rotation_mode == "QUATERNION":
    obj.rotation_quaternion = eul.to_quaternion()
elif obj.rotation_mode == "AXIS_ANGLE":
    q = eul.to_quaternion()
    obj.rotation_axis_angle[0]  = q.angle
    obj.rotation_axis_angle[1:] = q.axis
else:
    obj.rotation_euler = eul if eul.order == obj.rotation_mode else(
        eul.to_quaternion().to_euler(obj.rotation_mode))


UV Unwrap brick wall, gable ends, slanted roof

As @3fingeredfrog pointed out, use Project from view.
This will guarantee uniform scale of your texture.

Go to front orthographic view
Select faces and use UV > Project From View
Switch to left/right orthographic view, and repeat.

To keep the UV maps in proportion, scale them all at once.


How to convert blender scripts bpy to python scripts py

Scripts written for Blender are Python scripts (*.py). The difference is that they may use Blender's API through import bpy which is not available to a regular Python interpreter out of the box. If the script is using anything from the bpy namespace it can't be executed outside of Blender, that is unless you build and install Blender as a Python module. In this case you get (limited) access to Blender's Python API to functionality that does not require a UI. As long as a Python script does not use Blender's API, then it can be executed by a regular Python interpreter without any modifications.

How to convert Blender scripts to Python scripts?
You don't. If it uses Blender's API you can either execute it in Blender or you have to install Blender as Python module for your Python interpreter.
What is the difference between Blender scripts and Python scripts?
The use of Blender's API is the difference. Other than that they are just regular Python scripts, the programming language is the same.


player.applyForce Not Working with Character Physics [BGE Python]

I tested your script and found that character physics don`t have mass attribute as rigid body and dynamic does, and to apply force the object need mass attribute to work. So you will need to work with rigid body or dynamic.


How to get sharper shadows out of an HDRI

Here is a thread over on blender Artists, maybe this helps

https://blenderartists.org/t/how-to-setup-a-hdri-to-get-sharp-shadows/578712/24

or you can use this blogposts by Greg Zaal with a lot of helpful Information
http://blog.gregzaal.com/2016/02/23/what-makes-good-hdri/

http://blog.gregzaal.com/2013/07/24/cif-2-hdr-lighting/


bezier curve with bevel object: nice corner

As Duarte Farrajota Ramos commented, it isn't possible as a 3D-curve at the moment.
However, you can use seperate 2D-curves (see the links in the comments) or make at least the left joint of the corner horizontal:

Use shrink/fatten (alt+S) to fatten it by the factor $\sqrt{2}\approx1.41421$


How to add an object with texture inside another object?

The first thing you need is to model a proper eye. Like so:

The outer part is 0.1cm away from the inner in this case.

The outer part needs to be refractive (or even just transparent) and it will also need specular as it will catch the high spec of the eye.

Depending on the render budget you have you can add SSS to the inner part. I did in this case but the difference here is subtle. In this case i'm aiming cartoon semirealistic eye but the principles are pretty much the same for any eye.

You now have to UV unwrap the inner part. Easy, divide the eye in two parts on its XZ plane center and Unwrap.

Now you can add the diffuse texture to the inner part of the eye, but note that for a proper eye render you will need more than just a diffuse shader.
Personally I add a specular map only to the iris using an high IOR and roughness value, a bump (or displacement if needed) map aswell.

Here is the final graph of my setup:

and a little GIF preview:


This may not apply in your case, but it would be much easier to copy than to follow:

Select the perimeter of your shape
ShiftD duplicate it and P part it off into a new object
Header Menu > Object > Convert to > Curve
Adjust the curve's bevel in its Data tab > Geometry panel

Convert back to mesh if necessary.


Select the cloth. Enter Weight paint mode with CtrlTab, assign weights of 1 to the vertices you want to pin (paint with brush these vertices red)
In cloth physics settings, check 'pinning' and select the vertex group
Then enter Object mode with CtrlTab. Make sure to select the cloth first and then the object you want to pin on.
Parent the cloth to the object with CtrlP and select 'Set parent to object'


How to circumscribe a cilinder around an irregular shape using edges of irregular shape?

I would recommend adding a new cylinder with more sides in this case.

Press Shift+A to add a new object, and select Mesh > Cylinder.

Before you click or do anything else, you should see a small collapsed box in the bottom left corner labelled Add Cylinder. Expand it, and change the number of vertices (first option).

If you're looking for a good beginner tutorial series, I would recommend you follow the Donut Tutorial Series by BlenderGuru.

Edit:

Here's a lengthier method if you want to build off the starting mesh.

If you want to keep the original shape, first duplicate it then work off of the new object.

With the object selected, Tab into edit mode. Press 2 to enter edge select mode, and while holding Shift+Alt, click on one of the horizontal edges on the top, and bottom. This should have selected the top/bottom edge loops.

Now, right-click (or left, if you're using right-click select), and select Subdivide at the top of the menu that pops up. This will add additional vertical cuts in the middle of all the faces.

Now, hold Ctrl+Alt and select one of the original vertical edges. This should select all the vertical edges. Next, go to the Select drop-down menu in the top left corner, and select Checker Deselect. Now only the newly added edges should be selected.

Now, you can press S to scale, then Shift+Z to scale in XY axes only. Scale it up a bit, and there you go, the mesh is closer to a cylinder. If you want a clearer view of the mesh while scaling, press 7 on the Numpad to enter the top orthographic view.

If you wish to add even more sides, you can repeat this process.

If you're looking for a smoothly shaded cylinder, follow the process below.

In edit mode, select the top and bottom edge loops using the same shortcut as before, then right-click and select Mark Seam. Then, Tab back out into object mode, right-click and select Shade Smooth.

The last thing you will need to do is to go to the Object Properties tab (the icon is a green triangle with squares on each corner), and go to Normals > Auto-smooth. Enable auto-smooth.

This is the result using one iteration of subdividing the surface.


Is it possible to use object motion to drive audio properties in Blender?

For anyone else interested in this, the following StackExchange post contains a script which does exactly what I need.
https://blender.stackexchange.com/a/66257/70741
Having never used drivers before, I found this an incredibly useful introduction to them, and I can see myself using them a lot in future - I am, by trade, a programmer, so it kind of suits my mindset I guess.
Basically just follow the instructions there to get the delta X,Y,Z between frames and drive some custom properties dX, dY, and dZ on the moving object - the linked discussion talks you through doing all of this.
Once you've done this, you can use the custom properties in turn to derive the distance of motion between frames as sqrt(dX*dX + dY*dY + dZ*dZ) and drive another custom property distance
Once you've done that, you can use the custom distance property to drive the volume of a speaker object (or whatever else) however you'd like. You can also easily calculate a speed value using the frame rate if you need it (distance was sufficient for me)
You'll likely need to tweak the resulting values to suit your requirements, but it's not that hard to do.
The adjustments are a little "choppy", but I'm pretty sure that can be smoothed out by updating the script to track a moving average over several frames, rather than just between single frames (which I'll be experimenting with next).
Thanks to everyone who dropped by to help out!


Can I modify a rigify rig to add a head after generating it?

https://docs.blender.org/manual/en/2.81/addons/rigging/rigify.html
From the manual:
Nondisruptive re-rig
If the generated rig doesn’t fit all the features you need or, for example, you decide to add something more to your character (like a sixth arm or a tail), you can re-generate your rig without losing your previously generated features and your animation data.


Image used on a plane does not line up when using an array modifier

As suggested by ateks, a curve modifier did the trick. In order to keep it straight, I just extended the curve, nurbspath, on x axis (g-x), then applied the modifier to the road section. Then applied the array modifier to lock it all in.


How to create objects in blender using matrices

A matrix on its own is not a model, as discussed in the comments. In 3d graphics, 4x4 matrices are normally used to for projections (e.g. camera projection) and transformations (e.g. specifying the location, rotation and scale of an object).

To load a matrix into blender, you best bet would be to export the data from whatever program you are creating it in as a text file like a csv or something and use python to read it in. You will need to use a python script to do anything useful with it anyway.

However, having some experience working with computer vision and related concepts, if you don't understand what a matrix is, and some of the underlying maths, what you are proposing is likely to be exceedingly difficult for you, so I would recommend learning some of the basic concepts first.


Yes, blenders sequencer has full Python API access so it can be used to do quite advanced video editing both from the UI or in background mode (headless).
import os

from bpy import context
scene = context.scene

path = "/my_path/to/images"
files = os.listdir(path)
files.sort()

# create the sequencer data
scene.sequence_editor_create()

seq = scene.sequence_editor.sequences.new_image(
        name="MyStrip",
        filepath=os.path.join(path, files[0]),
        channel=1, frame_start=1)

# add the rest of the images.
for f in files:
    seq.elements.append(f)

# reverse if you want
seq.use_reverse_frames = False

# You may want to render the result:
render = scene.render
scene.frame_start = 1
scene.frame_end = 1 + len(files)

render.resolution_x = 1280
render.resolution_y = 720
render.fps = 25

render.image_settings.file_format = 'FFMPEG'
render.ffmpeg.format = 'MPEG4'
render.ffmpeg.codec = 'H264'

render.ffmpeg.constant_rate_factor = 'HIGH'
render.ffmpeg.ffmpeg_preset = 'BEST'

bpy.ops.render.render(animation=True)

The rest I'm sure you can work out as you may want to tweak encoding, frame rate... etc.


What is the simplest way to turn off all but one layer in python

not sure how terse you want this ;)

bpy.context.scene.layers = [i == 6 for i in range(20)]

The layer with index 6 will be flipped on, the others off.


Fluid Simulator: odd behaviour. Cache problem?

Data for fluid sims is saved to external files, if the current blend is not saved this will be in a temporary folder, it may also get a temporary path if the domain is created before saving the blend file, even if the simulation isn't baked before saving. While this should use a random path name generated each time blender is run, there is a chance of old temporary data being used, thinking it is the current sim data.

The path used for saving sim data can be found in the domain settings. You can change the path to prevent the old data being seen.

While other simulations provide options to clear the baked data, the current fluid sim does not.


As you know the scenes animation fcurves are found in

fc = bpy.context.scene.animation_data.action.fcurves

The fcurves list has a remove method -

fc.remove(fc[0])

Which leads to changing your code to

for scene in bpy.data.scenes:
    fcurves = scene.animation_data.action.fcurves
    for c in fcurves:
        if c.data_path.startswith("animated_render_border"):
            fcurves.remove(c)


Falloff of the influence of a Hook does work but it requires some unexpected setup; you need to Assign multiple verticies to the modifier in Edit mode rather than rely on the 'Vertex Group' to indicate the affectedvertices.
Hooking to a single vert will move just that vertex. However, in Edit mode you can also 'Assign' other vertices to the modifier - it is these 'assigned' vertices that are affected by the 'Falloff' of the modifier. A Radius of zero inicates 'no falloff' (so all vertices are affected equally). Therefore, the steps you require are to select and 'assign' the surrounding vertices and then increase the Radius and Type until the required effect is achieved. This is demonstrated in the following image :


Now I feel dumb because I just realised how you can do this after posting the question.. :P
Anyways, here's one way to do it:

It's actually really simple node setup. You just have to combine a diffuse/transparent mix with a fully transparent node, and use transparency depth as a factor.

That way cycles disregards anything that is behind the first "layer" of transparency. Here's the result:

It's a much cleaner and nicer opacity-like transparency for many cases. I'll use it for illustrative/instructional animations and motion graphics, since those are all areas where simplicity is very important and transparent materials are often needed.

And best of all, you are saved from setting up different renderlayers and compositing nodes, and it also reduces rendertimes in many cases because there's no need for multiple renders!


How to zoom in into an environment texture ?

add a node "coordinate texture" to environment texture and scale only "X" and "Y"


Why does my displacement look inverted in Eevee?

This is happening because you are using a Vector Displacement Node. For traditional displacement, connect the texture to the height input of a regular Displacement Node and/or the height input of a Bump Node. You can use either one, or both, however, for EEVEE, I find the Bump Node arrangement on its own to be sufficient 99% of the time.


Blender3D - Getting artifact geometry when subdividing?

If you look at the algorithm for generating new vertices and moving the old ones in Catmull-Clark subdivision, you can see that the first step is the creation of a 'Face-Point' at the average position of all the vertices of an existing polygonal face. That point then has a significant influence on the placing of newly-created edge vertices, and usually a less significant influence on the movement of existing vertices.

If you have a very large face, whose Face Point is miles away from the vertices being interpolated, and that face has concave inclusions, so the Face Point lies outside the face, there is nothing to stop the newly-created 'internal' vertices at the Face Points, being placed outside the polygons bounded by the (adjusted) existing vertices.

In the top pair of objects below, the quad dart has been subdivided once. The newly created Face Point vertex, not dividing an existing edge (white) has been placed outside the sickle shape bounded by the other points.

In the second pair, the dart has been cut up by hand, so its components are convex.The newly created vertices after one subdivision are all inside the areas bounded by the existing vertices.

As you can see, with respect to this problem, it doesn't matter that all the faces are quads -  they will be after the first generation of subdivision anyway. The rule is: divide your concave faces into convex components - keep the Face Points internal to the edges that will be subdivided...


Print specific coordinates of keyframes?

Avoid the enumerate, change keys to object as Doyousketch2 mentioned.

import bpy
import math

selection = bpy.context.selected_objects

def get_keyframes(obj_list):
    keyframes = []
    for obj in obj_list:
        anim = obj.animation_data
        if anim is not None and anim.action is not None:
            for fcu in anim.action.fcurves:
                for keyframe in fcu.keyframe_points:
                    x, y = keyframe.co
                    if x not in keyframes:
                        keyframes.append(math.ceil(x)) #(math.ceil(x)))
    return keyframes

def print_details(obj_list):
    XRot = round(obj_list.rotation_euler.x, 2)
    ZRot = round(obj_list.rotation_euler.z, 2)
    YRot = round(obj_list.rotation_euler.y, 2)
    xloc = round(obj_list.location.x, 2)
    yloc = round(obj_list.location.y, 2)
    zloc = round(obj_list.location.z, 2)
    print(obj_list.name)
    print("X Rot : ", XRot, '\t'*2, "Y Rot : ", YRot, '\t'*2, "Z Rot : ", ZRot)
    print("X Loc : ", xloc, '\t'*2, "Y Loc : ", yloc, '\t'*2, "Z Loc : ", zloc)

print("-"*25, "starting","-"*25)
for key in get_keyframes(selection):
    bpy.context.scene.frame_set(key)
    print("key : ", key)
    for obj in selection:
        print_details(obj)
print("-"*25, "ending","-"*25)

refer to example How can I get the location of an object at each keyframe?


How to extrude inwards without leaving faces?

Follow these steps

1) Go on Face select

2) Select the faces you want to "block" and click on Offset Edge slide

In this way these 2 faces will be indipendent from the others

3) Move your middle face in the position you prefer. Remember: move it, not extrude.

4) Select all your mesh and press w --> Remove doubles


How to scale a mesh without destroying the UV Map

When you scale your object on Z axis in 3D viewport, you must be careful to adjust your geometry in UV Image Editor because it don't have Z axis and you have to adjust on both X and Y axis.

You must scale the UV Unwrapped Geometry like this:

See images and scale accordingly.

Default Mesh with texture.

Scaled on Z Axis with Texture

Can you see I have scaled the UV Map differently in both images.
Shortcuts are same for scaling in UV Image Editor that is S

  There are many free tutorials out their who covers Texture Mapping.

All the Best.


Microdisplaement in Blender projecting only in one direction!

You are presumably using a version of Blender later than the official 2.79b release - at release 2.79b the Displacement socket of the Material Output node was a 'Scalar' value (meaning it represented a displacement along the surface normal at each point on the surface).

Note that the True Displacement feature was an Experimental feature at that release and subject to change at some point in the future.

If you were to download one of the 'nightly build' pre-release versions of Blender (eg, 2.79.5) or build from the latest source you would find additional features. One such feature affects the True Displacement - the Displacement socket of the Material Output node is no longer a Scalar value (it has changed from being grey coloured to being blue - to represent a Vector. This means that the Displacement now represents a Vector displacement (in Object space).

In order to mimic the previous behaviour (where the displacement would act along the surface normal) a new Displacement node has been introduced which will generate the vector from your scalar value to then pass to the Displacement socket.

See https://blender.stackexchange.com/a/112162/29586


How to use bpy.ops.macro - defining macro steps

Here is a corrected version: the Test.define needed different values.
Works perfect now - even including calling the transform and waiting till that is done so you script can continue with the next command/macro!

The transformation is started via calling Test.define("TRANSFORM_OT_translate") between the first and last macro step.

import bpy
from bpy.types import Operator, Macro

#End : Snap 3D Cursor and delete empty
class Finalize(Operator):
    bl_idname = "s3dc.finalize"
    bl_label = "Finalize S3DC"

    def execute(self, context):
        bpy.ops.view3d.snap_cursor_to_selected()
        bpy.ops.object.delete();
        print("DONE!")
        return {'FINISHED'}

#Start : Create the empty
class Make(Operator):
    bl_idname = "s3dc.make"
    bl_label = "Make S3DC"

    def execute(self, context):
        bpy.ops.object.select_all(action='DESELECT')
        bpy.ops.object.empty_add()
        print('Started')
        return {'FINISHED'}

#Execute : Start the macro sequence
class S3DC(Macro):
    bl_idname = "s3dc.trigger_macro"
    bl_label = "S3DC Macro Sequence"

# UI Button in Tool Shelfe
class ObjectData(bpy.types.Panel):
    bl_label = "Object + Mesh Data"
    bl_idname = "ObjectData"
    bl_space_type = 'VIEW_3D'
    bl_region_type = 'TOOLS'
    bl_category = "Modeling Toolbox"

    def draw(self, context):
        layout = self.layout
        row = layout.row()
        row.operator("s3dc.trigger_macro", text="Run Set 3D Cursos macro")

# END
def register():
    bpy.utils.register_module(__name__)

    S3DC.define("S3DC_OT_make")
    S3DC.define("TRANSFORM_OT_translate")  # This starts the transformation command
    S3DC.define("S3DC_OT_finalize")

def unregister():
    bpy.utils.unregister_module(__name__)

if __name__ == "__main__":
    register()


Objects are transparent from certain angles

Based on the description of your situation, you might have inverted the normal of your mesh object.

Go into mesh edit mode.  Select the entire head/or everything, go to mesh menu, select Normals option, select Recalculate Outside option.


You can use a VES transform effect first to shrink the image...

Make sure to set interpolation to off.

Next and another Transform effect onto the first, and reverse the scale. Enlarging the image. Make sure that Interpolation is off again.


While you can't 'hide' the object used to render the particles you can make it invisible by setting it's material to be transparent.

For non-meta objects you can use the Particle Info node to detect which 'objects' are particles and use this to mix between the actual shader and a transparent shader to 'hide' the 'original' object - eg, by using a math Greater Than node to distinguish between those particles with a Lifetime greater than 0 (the particles) and that with Lifetime of zero (the 'original' object).

For Meta objects this is difference since the whole collection of particles and the 'original' object is rendered as a single combined surface so the Particle Info node is not applicable. In this case you can use the location of each rendered point to determine whether to render that surface or not. For example, positioning the 'original' object above the particle system you can use the Object texture coordinates to make the object transparent while leaving the particles rendered :

Adjust the Greater Than node so that the original object is hidden but the particles are not.


Is this good practice? Joining two objects after subdivision

There isn't one right way, use what works best for you :)

You can either join objects into one object (CTRL+J) consisting of multiple meshes
Or even join into one mesh, with all vertices manually connected (seamless)

Example
This sword is one object consisting of multiple meshes

Easy to swap different parts
It resembles a real sword structure which adds to realism


If you are using English Software (Blender) under Windows
based Operating Systems but with an AZERTY keyboard, accidentally hitting Shift+Alt keys toggles keyboard layouts, as explained here.

This apparently "disables" the Undo/Redo operators, when in fact what happens is it changes the keyboard shortcuts

Ofcourse they still work, but now you need to use Ctrl+W to Undo instead of the usuall Ctrl+Z, or use Shift+Alt to toggle back to your usual keyboard layout.

You can also disable the shortcut in the Regional Options of the control panel if you follow the steps described here

Credit goes to 3fingeredfrog for the explanation


How to set skin_root_mark on selected vertices of a skinned mesh generated in Python?

As said in comment, the object is not active and that's why the ops failed.

You may use:

bpy.context.view_layer.objects.active = obj

before the ops.

Though you can also without ops:

# Add the skin modifier
obj.modifiers.new(name="SK", type="SKIN")

#Get the skin vertices layers
skin_vertices = obj.data.skin_vertices
#Get the layer
skin_layer = skin_vertices[0]

#Assigns radius to some vertices
skin_layer.data[0].radius = (0.20,0.20) #Indices 0 and 1 are the vertex indices
skin_layer.data[1].radius = (0.10,0.10)

#Assigns root
skin_layer.data[1].use_root = True
#Assigns loose
skin_layer.data[1].use_loose = True

Also note that, this way you can assign multiple roots which is not allowed from the UI. I don't know if this can lead to issues or not.


The x-axis mirroring got screwed up during sculpting, is there any way to fix my topology?

Go in Edit mode and click on the header menu > Mesh > Symmetrize:

Choose the right axis in the Operator box:


Where's "link object data" When creating new scenes?

The method to organize things is different with the new collection system. If you want to link object data, choose linked copy, then in your new scene right-click on the collection(s) and duplicate linked. Then uncheck the old one to hide it from this scene.


Hair particles will not appear on specific faces?

You need to click Use modifier stack in particles settings:


Why do I see edges partially see-through on back face (in viewport)?

I don't really know the correct answer to this one, I think this is a limitation of the current opengl viewport rendering engine. Would like to hear from one of the devs about it, if it is actually fixable or a bug, or if anyone else knows any other way to fix it.

Only way to remedy the situation I found is to adjust viewport clipping. It's a workaround with its own side effects but can minimize the issue.

In the 3d view properties shelf N key, under the View panel there is a setting for viewpor clipping, star and end. Try bringing the two values closer together like increasing clip start and/or increasing clip end but keeping them in a usable state for your scene.

Edit: Worked well on my end

Ok, missed one detail, if you are in camera view mode, then you need to adjust the clipping settings in the camera's Object Data Settings in the Properties window, not viewport clipping as it has no effect while in camera view mode.


What's causing these artefacts when rendering my baked normal maps?

I'm pretty sure that weird artifacts on your bake were caused by the bad topology of low poly mesh. I 've made a really quick and dirty retopology of the model (it's still, like your previous low poly model, around 50 000 verts). I 've also really quickly unwrapped that mesh and baked the texture.

Here are the results and as you can see there are still some artifacts around UV seams. I'm sure you can do it better than I did if you invest some time in making a good mesh and a UV map.

the normal map bake:

Look in the .BLEND file for more information. I removed the high poly model from it because of the size but you already have it, so I guess that isn't a problem.


Why do I get 'addon not found' errors when starting blender from the command line?

Looks like you're missing some of the addons, which Blender expects to find but can't. Some of them are available as their own source package, and generally are located in the [version]/scripts/addons directory. Compiling from source may have skipped some of those, as they are technically their own subprogram.

They aren't essential for Blender to run, but provide useful services; without UV Layout, as an example, you won't be able to export a UV-unwrap as a 2D graphic. It's been a while since I compiled the program myself, but it's possible that it simply failed during the portion meant to build these—like a missing dependency, as an example—and it just kept going with what it could build. You can find and build many of them independently and simply drop them in that folder.

If you still have the stdout from the build, you may find a hint as to what's missing in there. I hope this helps you.


Render large 3D graphs (Millions of vertices & edges)

Okay, thanks everybody! What I ended up doing:

From the vertex & edge lists create a mesh via python api:

# Create mesh & object
mesh = bpy.data.meshes.new("mesh")
obj = bpy.data.objects.new("graph", mesh)

scene = bpy.context.scene
scene.objects.link(obj)
scene.objects.active = obj
obj.select = True

mesh = bpy.context.object.data
bm = bmesh.new()

# Example data - replace with parser
node_dic = {0: (1,0,0), 1: (0,1,0), 2: (0,0,1), 3: (1, 1, 0)}
edge_list =[(0,1), (1,2), (2,3), (3,0)]
index_map = {}

# Add vertices to object:
for node_id, node_pos in node_dic.items():
    pos = np.array(node_pos)
    v = bm.verts.new(pos)
    index_map[node_id] = v

# Add edges to object:
for edge in edge_list:
    bm.edges.new((index_map[edge[0]], index_map[edge[1]]))

bm.to_mesh(mesh)
bm.free()

This allows for very fast import of rather large graphs (several million vertices and edges). Now for visualizing the vertices as spheres or anything else use dupliverts (https://docs.blender.org/manual/en/dev/editors/3dview/object/properties/duplication/dupliverts.html) on that object.
Visualize the edges between nodes by adding a material to the object.


How to create and export multiple animation/actions in blender?

Wavefront OBJ is a widely supported file format for 3D models. It can store vertex coordinates, UVs, vertex normals, face definitions and texture vertices (plus additional, but not standard-compliant data in some softwares).

Animations are not supported. The export option Animation in the OBj exporter does not really export an animation, but an OBJ for every frame in your scene. So it's really a series of OBJ models. Some engines may support this for animations.

As said, the addon uses the scene, so the current timeline. Every object can reference not more than a single action. Therefore, only that one action is exported. Batch export of all actions is not supported.

It would be trivial to do code-wise, but we lack an essential information: which action belongs to which object? All actions are stored globally (bpy.data.actions in python). For which objects an action works, is not stored. You can "run" an action on any object, e.g. matching bones in another, different armature will be animated too.

Thus, you need to switch actions on your animated object, change start and end frame on your timeline and export them one by one. Or adapt the export addon to batch-export all actions for the active object (you may use Action.frame_range to determine the keyframed boundaries).

You can check the export by either inspecting the output folder, or by checking the system console (on Windows, it's as easy as Window > Toggle System Console):

OBJ Export path: 'C:\\Users\\CoDEmanX\\Desktop\\untitled_000249.obj'
OBJ Export time: 0.00
OBJ Export path: 'C:\\Users\\CoDEmanX\\Desktop\\untitled_000250.obj'
OBJ Export time: 0.00


Blender 2.8 vertices of object doesn't update after location change in python

For the scene global coordinate system, multiply by the object's world matrix:

myObj  = bpy.data.objects['testObj']
print (myObj.data.vertices[0].co)
myObj.location = mathutils.Vector((1,3,5))
print (myObj.matrix_world @ myObj.data.vertices[0].co) # <----


There are Custom Split Normals creating artifacts in your mesh.
Go to Properties Window > Object Data Tab > Geometry Data Panel and press Clear Custom Split Normals Data
If for some reason you wish to keep those, disabling Auto Smooth under the Properties Window > Object Data Tab > Normals Panel > Auto Smooth seems to be a valid workaround.
Also, if you horse is to remain perfectly symmetric consider erasing half of the mesh and adding a Mirror modifier. Might save you some cleanup work and resources in the future.


how to use dynamic paint weight for texturing object?

i did it! just add a second canvas with vertex format and paint surface type, disable dry and add dissolve if to the same time fade has on weight paint (if needed) then you have to use the attribute node with dp_wetmap and use the output as fac for anything you want. with that you could recreate the colors weight paint has in obj mode.

works like a charm
ill edit some pics in later


In order to specify what the subsurf modifier should smooth and how much, you can use the Mean crease setting. This will allow you to (basically) tell the subsurf that it can subdivide an edge, but leave it sharp (instead of smoothing it). There are other techniques for getting sharp edges in an organic model workflow, most of which are discussed here.

It discusses using more edge loops very close together, which is effective, but very inefficient.
It discusses using weighted creases (which is what I recommended above)
And it discusses the edge-split modifier

...all of which are effective tools for making sharp edges. Each has its benefits and draw-backs.


Bone dissapears in edit mode, but seen in pose mode?

I have solved my very stupid question.  I hope this serves well for anyone who happens to stumble across this.
It was hiding in edit mode but not in pose mode.  I think there should be a better way for blender to handle trying to delete hidden bones.  Because it just gives you a menu and it does nothing.  When you come back in pose mode the bone still there. Give me an error message at least?


How do I fix camera weird mapping quirk?

Nevermind, I just realized that I had to subdivide the plane because if you don't have enough polygons, project from view will produce bad/inaccurate results.


I can I shape a 3D object in a 2D, and the put the unwrap in a new 3D conformation without any deformations?

The answer is by no means without flaw.

Start by enabling Import-Export UV Layout && Import-Export: Scalable Vector Graphics in add-ons

In UV editor select desired map + open UVs menu --> Export UV Layout

Make sure to export as .svg

Last File --> Import --> svg

Every polygon is going to be its own curve so Alt + C --> convert to mesh from curve and join them after.

It's not perfect


How to rotate object and render with a script

After some trial and error I found that this python script works for me:

import bpy, math

knob = bpy.data.objects["MyBlenderKnob"]
knob.rotation_mode = 'XYZ'

rotate_by = 4.21875   #How many degrees to rotate the knob for every step
start_angle = 45      #What angle to start from

for x in range(1,65):
    angle = (start_angle * (math.pi/180)) + (x*-1) * (rotate_by * (math.pi/180))
    knob.rotation_euler = ( 0, 0, angle )

    bpy.context.scene.render.filepath = "/Users/myfolder/KnobFrame%d.png" % (x)
    bpy.ops.render.render(write_still=True, use_viewport=True)

It grabs my blender object called "MyBlenderKnob" and rotates it 4.21875° on the Z-axis, then it renders it according to the current render-settings in the project. Then it saves the files in "myfolder".

Beautiful! A real timesaver.


How to edit curve, but not ruined tilt settings?

I think you might want to change tilting to Z-Up under the Properties Window > Object Data Tab > Shape Panel

Although it is not perfect it will probably be the closest to a correct "always up" tilt. You can then manually adjust whichever parts are not supposed to point up, which I believe are probably a minority compared to the tilting curves.

From my admittedly limited testing with Z-Up changing other parts of the curve has no effect on the already established tilts


how can i quickly optimize this mesh out from a curve?

Try to tweak the curve properties before converting it to a mesh. The Resolution values get you control over the density of your model, so you can increase or decrease the number of polygons.

And my suggestion is to active the wire/draw all edges options in the Object>Display properties so you can have a nice preview of how many polygons you will have your object after the conversion.


invoke_props_dialog: callback during change?

The props_dialog shows Properties, so you can define set/get functions for them like for any other Property to control changes: https://docs.blender.org/api/2.79/bpy.props.html#get-set-example

Example for your case:

class SomeOperator(Operator):
    bl_idname = "test.some_operator"
    bl_label = "Example"

    def set_start(self, value):
        if value > self["stop_frame"]:
            print("start frame has to be smaller or equal to stop frame")
            self["start_frame"] = self["stop_frame"]
        else:
            print("setting start frame")
            self["start_frame"] = value

    def get_start(self):
        return self["start_frame"]

    start_frame = bpy.props.IntProperty(set=set_start, get=get_start)
    stop_frame = bpy.props.IntProperty()

Notes:

You have to define both a setter and a getter (you can't define only a setter, the property will return always 0 if you set no getter).
In the setter/getter you should call the operator's properties with self["property_name"], not self.property_name. This way you can get/set the value without calling your own setter/getter functions (which would lead to infinite recursion).


How can I add a second layer to a video?

Make sure you have the sequencer enabled in the Post Processing section of your scene.