Create and export bounding boxes for objects

From my answer here, you can create a bounding cube around an object:

  Select the target object and press CtrlShiftAltC > Origin to goemetry, and then press F6 and select bounds center.
  With the target object selected, press ShiftS> Cursor to selected to move the cursor to the objects origin.
  Add a cube to be the bounding box. It will automatically be centered at the 3D cursor, which is snapped to the target object's
  origin point.
  Copy the Dimension and Rotation values from the target object to the bounding cube. These values are located on the Properties
  region (N in the 3D view):

  You can quickly copy and paste values by hovering over the number
  field and pressing
  CtrlC/CtrlV accordingly.

  Since this process of copying and pasting the values of each channel
  can be a bit tedious, you can use a quick bit of python to do this for
  you:

import bpy

active = bpy.context.active_object
selected = bpy.context.selected_objects

for obj in selected:
    obj.dimensions = active.dimensions

  Parent the bounding box to the target object so the relative location, rotation, and scale is kept the same. You can also set the
  bounding cube's Draw type to Wire in Properties > Object >
  Display > Maximum Draw Type.

This processes could be automated in python:

import bpy

selected = bpy.context.selected_objects

for obj in selected:
    #ensure origin is centered on bounding box center
    bpy.ops.object.origin_set(type='ORIGIN_GEOMETRY', center='BOUNDS')
    #create a cube for the bounding box
    bpy.ops.mesh.primitive_cube_add()
    #our new cube is now the active object, so we can keep track of it in a variable:
    bound_box = bpy.context.active_object

    #copy transforms
    bound_box.dimensions = obj.dimensions
    bound_box.location = obj.location
    bound_box.rotation_euler = obj.rotation_euler

This adds a bounding box object for every selected object.


How can I group Vertices for easy painting

Yes, its possible!

In Edit Mode, select the vertices. In the Object Data panel create a Vertex Group, name it what you want and hit Assign.

Now, in the 3D view menu, Tab back into Paint Mode and toggle Face Selection Masking for Painting . You will notice the masked areas are now grayed and can't be painted.


T will toggle open/close the Toolshelf, and that menu is at the bottom of the Toolshelf.

Alternately, you may see a plus at the bottom of the Toolshelf. Click on it.


Comment by Giorgious echo: the circle that is not getting screwed is perfectly centered on the object origin. Move the geometry to that the touching point of the two circles is what is over the origin.


Increase cycles speed for interior render

It sounds like you are using a sun lamp for it, that really slows it down. So the only thing I can add to Gwenn answer is: for interior renders, use planes with an emission shader in every window hole, and disable the "camera" option in the "ray visibility" panel in the object properties so you don't see it when rendering. You can combine that with a sun lamp if you want hard edge shadows coming from the sun.

I use this method a lot and it really speeds things up.


Sadly this is not possible, however you can approximate a result like this fairly easily.

First, go to File > User Preferences > Themes > 3D View and change the Wire color to the default grey. (Around Hex 6B6B6B)

This will make it less visible, but not invisible. You can make it so that selected edges are not shown as well by going to the N menu and finding the Mesh Display options.

Also see this question


Boid Particles - How To Use Fighting/Battle Information In Animation (Fighting Ants)

I think you are expecting too much from the boids fight option. The boids documentation describes fight as Move toward nearby boids. It won't animate two ants in combat for you.

For more advanced simulation options have a look at Crowd Master or the commercial Crowd Sim 3D.


How can i slow down the Animation Speed of ALL Animations in a Project?

It depends on if you want to slow down the animations or the render:

To slow down the animations themselves, go into the Dopesheet, put your blue cursor at frame 0 (the cursor position will determine the operation center), select all and scale up with S + drag.

To slow down the render itself, i.e. increase the amount of frames as if you were shooting in slow motion, go into the Properties panel > Output > Dimensions and play with the Time Remapping values. The Old and New values allows you to set the ratio between the current speed and the one you want, for example to double the time you need to choose a ratio of 1(Old)/2(New), to add 20% choose 10/12 or 5/6, etc. If you’ve slowed down by a half you’ll need to double the Frame End value, otherwise you’ll only render half of the whole animation.


Append > object > and your camera should be in the list. Are you sure you haven't renamed the camera and are looking for the wrong name? I've appended many cameras this way. Can you post a blend?


How do you make hair with different colors on the same strand?

Using the hair-info node's 'Intercept' output and a colorRamp node, you can control the color of a particle hair strand from root to tip.


Aligning a single triangle object's local origin (y axis) to the triangle's normal (non-backface side)

First off, you are way over complicating this. There is no need to use a script to correct the origin's rotation at all.

Starting with the tree with the array and curve modifier before it is applied (GCF green in images), instead of separating each tree along the curve, create a second tree (X-27 blue in images) and parent it to the tree with the modifiers.

Then set the the first tree's Duplication to Faces to add new trees with the location and rotation of each of the existing trees along the curve.

Then Make Duplicates Real by pressing Ctrl+Shift+A to make the second set of trees separate objects. Now all of the new trees have there own origins in the correct places.

If you want to, you can delete the curve and the first tree. Also, any tree you now select will also have the correct local rotation.


First, despite the fact that it appears to be out of scope for the site, I'm answering this question because the question and your reputation on the site suggest to me that you are a beginning Blenderhead. Although it seems to me that your question is more about the operating system on your device, than about the internals of Blender, a beginner might not easily recognize where Blender ends, and the operating system begins. I would suggest you take the tour, and review the sections of the help center related to asking questions.

That written, the information in the question is a bit sparse. It would be helpful to know, for example, what OS (Mac, Linux, Windows) you are using. What I would try first in Windows is to open the a file folder window, and select the "Computer" option in the navigation pane on the left. In the search box in the upper right hand corner of the window, search for any file modified beginning with a time several hours before you started the render. For example, suppose you know you started the render within the past 12 hours, search for all files modified today. If the render got saved (and I'm not at all sure that it was) this search parameter should produce results for all such files the search finds on your computer, including any drives assigned a drive letter. The file you rendered to should be found in that list. The time modified should be about the same time as you started the render.

If you don't find the file you rendered to in the list, it's possible that you failed to specify a location to which to save, and that you need to render the scene again.


"Undo" not working in Video Sequence Editor

The "Undo" doesn't work unless you have set the "Default mode" to "Object mode" vs. "Edit mode" (vertices) in the 3D view. Of odd reasons this setting also applies to the "Video Sequence Editor".


The apply modifier button will be on the modifier.
Blender 2.9x
In Blender 2.9x click on the top triangle to apply the modifier, or use Ctrl+A.

See: How to apply a modifier in V2.9+
Blender 2.7x

You have to be in object mode to apply modifiers. Applying the  modifier does not work on multiple selections, only the active object gets applied.


How do I get an object to stay put when keyframing child of constraint influence?

You animated the "influence" on your "Child of" constraint. On frame 0, it was set to Influence of 1.00, but then its influence goes all the way to 0.00 at frame 1.
This means that you must have accidentally animated the influence from 1.00 to 0.00 in the animation. So, just reset the Influence value back to 1.00 at frame 1.


Is there a way to automatically translate position of vertices to normalize to 0-1?

Do you mean, that every x-, y- and z-coordinate of every vertex in your mesh should have a value between 0 and 1? If yes, here's the solution (fully in the 3D Viewport):

with your Mesh selected in object mode apply the scale of your model (Ctrl-A then click Scale)
set the origin to be at the center of the bounds of the object: Ctrl-Shift-Alt-C, then click Origin to Geometry, hit F6 and choose in the Menu after Center: Bounds Center
open the properties shelf on the right N
you see a panel called Transform. In this panel you see a property called Dimensions:. choose the largest value of the three and change it to $1$.
under Scale: one of the three $1.00000$ will have changed. Copy that value by hovering over it and pressing Ctrl-C
Paste it over all other $1.00000$ in Scale: (hovering over the value again and pressing Ctrl-V)
Under Location: set every entry to $0.5$ (you can set the first and copy-paste it like explained before.)
Your Mesh now fits perfectly into the box from 0 to 1 on all axis. Lastly you can set the origin if you want to $(0,0,0)$, which may be useful for Monogame later. Do this by applying the location of your model (Ctrl-A then click Location)
Additionally you can apply the scale, but that's depending on what Monogame requires. (Ctrl-A then click Scale)


How to have a even thickness around the mesh

The only way is to split corner edge. You can use Edge Split modifier if you don't care about overlapping geometry.

Or try to set Even and Offset minus 1 instead, so it looks a bit nicer from some angle. But the corner will always fail.

Solidify generates a copy of each vertex with offset in face normal direction. In your case the problem is RIM. Generated faces on sides are pointed in oposite direction. Blender tries calculate average connection that results in a twist.
By other words - the result you expect require additional geometry, it is more than  - copy vertex and offset. It meams you'r asking modifier to do more than was designed.


How to create a generic texture using python?

Name is no guaranty as another texture with the same name may exist. Use bpy.data.textures.new() and just pass a name as well as the modifier type:

import bpy

# Get the object and context
C = bpy.context
ob = C.object

# Generate the texture and set the attributes
voronoi_tex = bpy.data.textures.new("displace_voronoi", 'VORONOI')
voronoi_tex.noise_intensity = .5
voronoi_tex.noise_scale = .5
voronoi_tex.nabla = .05

# Displacement modifier
disp_mod = None
for modifier in ob.modifiers:
    if modifier.type == 'DISPLACE':
        disp_mod = modifier

if not disp_mod:
    disp_mod = ob.modifiers.new(name='MyVoronoiDisplace', type='DISPLACE')

# Assign the texture
disp_mod.texture = voronoi_tex
disp_mod.strength = .5
disp_mod.vertex_group = "Group"


Ok I think I've got it.. simply select 1 object (not a group) and the properties of the IDs will appear


combine objects by name in scene into one object

You can use the startswith() function to select all the objects that stqrts with Verts and join them into one object :

import bpy

bpy.ops.object.select_all(action='DESELECT')
objects = bpy.context.scene.objects
for o in objects:
    if obj.name.startswith("Verts") :
        obj.select = True
bpy.ops.object.join()


How do you apply a gloss and spec map on one cycles material?

I used the 4 images on their pricing page in my demo.

Click for full size

The Albedo Map goes in to the Diffuse node as the base color.
The Specular Map goes in to the Glossy node as the specular color. (metals are one of the few materials that have a colored specular highlight.)
The Gloss Map is used as the mix factor in the Mix Shader node between the diffuse and the glossy.
The Normal Map get plugged in to a Normal Map node then connected to both the diffuse and the glossy nodes.


As has been mentioned, there are multiple ways to achieve what you want, but I just thought I'd elaborate on the technique I used when I did this very thing not long ago...

First, Add 2 circles and move them so they're just touching. Then select both and Join (Ctrl+J) them into a single mesh, and set their Origin to Geometry (Shift+Ctrl+Alt+C) so that the pivot point is centered.

Next, add a Screw Modifier and change the Axis, Screw, and Iterations values until it looks right (for circles of size 1, a Screw value of 4 seems right), and then Apply the modifier.

Next, go into Edit Mode (Tab) and Deselect All (A). Then change to Wireframe Mode (Z) and select just the top few vertices.

After that, turn on Proportional Editing (O) and Scale the vertices to 0 (S>0). You can then scroll your mouse wheel until the Proportional Editing circle covers as much of the screw as you desire.

And one last thing, for whatever reason, the normals on one of the circles is always inverted, so just select Make Normals Consistent (Ctrl+N) to get them all facing out. You should then have a nice-looking twisted cone.


Why i cant see the poster through transparent material

You need to move the poster&LED plane between the two light emission planes.
As in the file you posted:

After moving the poster&LED plane into the middle

After moving the poster&LED plane down the image starts to appear


More pixels rendered, worse screen space reflection result. [EEVEE]

Solution to the problem:
Don't set the Trace Precision to the maximum (1000) as it will cause reflection errors like this. The screen space reflection will work perfectly if set to be around 0.950 or lower.


How to Enable Frame Blending in Blender 2.74?

This option was lost in the transition to 2.5. Not sure exactly why, maybe the design of it didn't fit with the newer design (under the hood, not UI) It might be a Todo item.
You might want to use the program 'slomovideo' http://slowmovideo.granjow.net/
that does pixel-flo type blurs and blends to do this effect. (It is also free and open source)


Objects that are used in multiple scenes will have their object origins displayed as cyan.

The file that you linked to contains 2 scenes, 'bottom' and 'side', as shown in the 3D header:

The object 'body' for example has a blue origin because it is used in both scenes. This means if you move the object in one scene the position of the same object in the other scene will also update to match it. You can see how many scenes an object is being used in by looking on the 'Object' panel of the object and noting the number of 'users'. In the case of 'body' it is being used in 2 scenes:

You can separate the object in one scene from the other by clicking the '2'. Instead of one object linked between two scenes you would now end up with two independent objects, which are no longer linked.

Also see 'Copying and linking objects between scenes' and 'Linking to a scene' in the Blender Wiki Manual.

If the outline of the object and the object origin were blue it would be because the file was linked from another file.


2 things : the first being constraints , Remove them for full accessibility.

The second being transform locks , They are in the objects tab. Make sure they are all deselected / unlocked


Blender Displace Modifier not importing into Unity

Yup, you won't be able to export that. There's no support for vertex animation/morph targets in Unity. You can only import bone-based animated objects.


Can Blender manipulate remote assets, without me having to download them to the client machine manually?

Not directly possible, Blender needs its data to be local (it does not understand uri, FTP, etc.).

You could set up a 'fake' local file system on your students' machine, though, which would actually be a network one (like a samba/windows sharing, or other similar solution). It will work as long as Blender can see it as a local directory.


How to create trigger for character to switch scenes in BGE?

The "property" actuator on it's own only senses the value of a property. This is useful if you want to make sure something is at a certain value (i.e. Money = $250--> AND--> buy laptop) but it really has no direct sense of the physical world. The sensors that do are called the physics sensors.

Near: senses when a object is within a certain range.
Collision: senses if an object is being touched.
Radar: works like "Near" but not Omni-directional.
Ray: sends an invisible "beam", sense if something touches or obstructs the beam.

As you can probably see, the sensor you want to use is "Near", since it will sense if your player is near a certain object in the game.

Put the sensor on the object that you want to sense the player and set its property value to "player". play with the distance values till you get a result you like, make sure "reset" stay a tad higher than the "distance".


A Bobj file sounds like it could be a Binary OBJ file, However i believe this is not a specific standard of file.

Blender's Fluid simulator outputs bobj.gz as a format in binary, and compressed.

Edited:

bobj files are used in the fluid tab of the physics settings.

Make sure the bobj.gz files are in a directory of their own, and then goto that directory in the highlighted field.
Make sure you only have the directory name in the field, and not the file name of the fluid cache.

You also need to make sure the file names do not change from fluidsurface_final_xxxx.bobj
and set the viewport Display to Final.


The effect of Proportional Editing in Random mode is not as strong as I expected. How can I make it more intense?

After having initiated the G ("move") action, scroll up the mouse wheel ( wheel) to enlarge the area of influence of the proportional edit.

While scrolling (up or down) you'll see a circle representing roughly to what spatial extent the other vertices will be affected. Make sure it is large enough to encompass several of the other vertices.

Then just keep moving the selected vertex to see the effect. (As Ashutosh Budhdeo noted, you may want to use Z during the "move" action to constrain the movement to the vertical axis).


Thanks for the pointers in the comments. Turns out I screwed up during retopo.
This was one face. The edge across was not connected to the faces, i.e. splitting them.
Found the issue by selecting faces and comparing the count to what I was seeing. I suppose this is exactly what @susu meant with "disconnected faces", so cheers

I solved it by deleting the face and filling in between the edges to create the two faces I expected


3D manipulators unselectable while "Lock to Cursor" is turned on.

I contacted Blender team and was notified that a fix was found :
https://developer.blender.org/T53850

Hope this help =)


You should to know the scale used in the STL file, for example OpenSCAD uses millimeters for all, when you export your work from OpenSCAD to a STL file, the scale will be mm.
So you should configure the scale in the Blender importer to use 0.001 as scale, because, in Blender, if configured the world scale in the metric system, a unit is a meter.
Summarizing:

Configure the world units in Blender as Metric system.
Left the World scale in Blender as 1.000 (1 Blender's unit will be 1 meter)
When importing, select 0.001 as scale for the STL file. So 1 unit in the STL will be a Blender's unit * 0.001 converting the mm of the STL to meters.


Smooth option in Blender 2.8 mesh context menu missing for edges and faces

Like in older versions, you can call menus for vertex, edge or face (with Ctrl+V, Ctrl+E, Ctrl+F respectively), being in any selection mode. And, as you say, it really works. :-)


Transparency not working when using several textures

Not sure, if you using Cycles or Eevee... But at least in Eevee you have to enable alpha for the leaf material in the settings.


Every time I touch an object a full-render starts

In the compositor windows turn off Auto Render


Bake Simple Deform animation into mesh for Unity3D export?

There's not much ways to do that… Only one I can think of is applying enough 'keyframes' of your deform animation as shapekeys (you can copy modifier, apply as shapekey the copy, go five frames later, copy, apply as shapekey the copy, etc.), and then in Unity (or Blender), create an animation interpolating between those shapekeys. But this will be rather painful to set up I’m afraid.


How can a f-curve be used in an animation in BGE?

F-curve is generally used for controlling actions, I assume that you were asking "how to use action in BGE".

The simplest way is to set the Actuator type to Action. Then choose the action you want, and tweak a few settings within it, as shown below. Hope I didn't misunderstand that.

EDIT: I'm feeling that I sort of misunderstood that, did I? :-\


How to deform armature and keep its volume?

If I understand correctly, you try to move your arm with an armature but the bone deforms the arm too much and you want to correct the proportions.
To do so I think you need to use Shapekeys and Drivers, Shapekeys will allow you to correct the shape and Drivers will allow your bone to control the shapekey value:

Create your mesh and armature, parent the mesh to the armature With Automatic Weight, in the Armature modifier enable the Display Edit Mode and the On Cage options, bend the arm the way you want, in Object mode create 2 shapekeys for your mesh, select the second shapekey, go in Edit mode and modify the mesh so that it gets the shape you want:

Back to Object mode, right click on the Shapekey Value and click on Add Driver, it opens a panel, in this panel > Object > choose the armature and the arm bone, Type >  choose the type of transformation the bone will affect (here Z Rotation), and Space > Local Space:

Click on the Shapekey Value again and this time choose Open Drivers Editor, you should see the driver curve, select all and type V to make the curve straight, rotate the curve until you're satisfied of its effect on the mesh. Now when you'll rotate the arm the mesh will bend and also apply the shapekey you've created.


The bump node converts a height to a normal map by reading grayscale gradients. If the height map is too sharp there isn't anything to create surface angle shifts.

Increase the mortar smooth to get a broader gradient at the brick edges


When I open blender it loads a previous project

It seems like you have inadvertently saved that file as your startup file.   I'd make sure you have a backup of that old project file.    Delete all the objects that you see.   Then select (File, Save Startup file).   Close and re-open Blender and see if that's more to your liking.


Take the factor from your texture into a Vector/Bump node, then take the normal from that node into the normal input on your shaders.


You can actually animate the object, and the fluid should stay with the object. You should increase the strength of the control factor while it moves to make sure the fluid doesn't slip away.


There are many possible workflows for this that depend on your needs.  Here is mine:

Create one file for each model used in any scene.
Create one scene file for every different collection of models.  Link the models into this scene file.
Create one shot file for every shot.
Link the relevant scene into the shot file.
Link models that aren't changed for that scene.
Append models that are modified for the scene.

Link models if edits to them should appear in all shots.  This avoids having to find the model in each shot file and repeating the edit.  For example, you decide to make a statue taller everywhere it appears.

Append models if edits to them are meant to differ from scene to scene. For example, you have a prop that has a different color in some scenes.

This will save you much work and confusion as your conception of the appearance of shots changes.

I made my first short following the workflow using

I do recommend the book.


There are multiple things happening in the algorithms presented in the link you shared, but the most important thing that's happening is not possible in Blender's compositor.

Converting an image into a fixed of points
transfering that set of points as a parameter into a hypothetical "voronoi" node. There is no such data type
using a vornoi algorithm to fill in polygons with sampled colors from a set of points

Now, in theory you could reduce that set of instructions into just one step

a python compositor node

but to do that is no small chore

There are plenty of clues in the codegolf post on how to process the image, how to find edges, how to make that bitmap into a set of points, how to process the points into polygons, and how to fill them.

I'd like to offer up the code for a python compositor node that just does all that for you, but it would just take a terrible amount of time. An onerous amount of time. Enough time that the short answer to your question is "no."

On the other hand! If you're also interested in exploring the general effect and breaking out of the compositor-node-constraint, there are other things you could explore. (in your comments, it seems you're only interested in voronoi specifically, but i'll try anyway)

Here's an image that was made with a "lens" made from a box, one side heavily subdivided, displaced with a cloud texture, and then decimated. The lens is using a glass texture with 0.02 roughness to generalize the colors coming through each face. If the displace filter was made to transpose over time, the facets would change and shimmer.

While it's not exactly what you asked for, in my opinion, it falls into the non-photo-realistic category. I think you could go quite far with it -- especially with render layers feeding into the compositor.


I played a bit with this task, creating the basic setup. The screenshots are kinda helpful, but don't tell the full story yet. So in essence, I've created a flat plane with the microstructure on it, and a cylinder wall with the structure on it. Both use the same mesh, all you need to model is this here:

It's a cube with the top face deleted, and then three faces extruded out of that. The cube has the desired 100 um size. Using arrays with the merge option turned on, and the merge tolerance set to something really low like 10 um, you'll get the flat plane with the structure. If you need that with a circular cut around it, you can use one boolean. I didn't do that so far, as I'm not sure where this is going yet.
The sidewall is the same mesh, just one additional modifier added after the arrays: The Bend modifier. I used an Empty to control the direction. And this is what it looks like on the cylinder:

The Blend file is here:
Based on your own model
Edit Updated Blend file is here:
As stated in the comment section, I cannot upload the file with modifiers applied, as there is a limit of 30 MB at https://blend-exchange.giantcowfilms.com, and the resulting file is 32MB. By the way, how does blender crash on your end? Because if what you see is Blender freezing for a while, that's just because the modifier calculation takes a long time. On my machine 30 seconds, and this is a real beast. So if that's the case for you, just be patient  :)


How do I reset the transforms of an object to the original values?

ctrl+a in 3d View panel will call the Apply menu:

By applying transforms you make them 0, but keep the object unchanged.

If you wanted to set the transforms to 0, you can use alt+g for location, alt+r for rotation and alt+s for scale


How can I paint and animate a mask with the new Grease Pencil?

Using Subtract as a Blend mode for a Grease Pencil layer acts just like a mask:

Subtracted layers will act as holdout for every other layer that is listed below them, but regardless of their view-depth (layers in front are masked out too). Layers in other GP objects are not affected


I'm not have shortcut about Selection to Cursor

There is a custom shortcut defined in the blender version he is using.

You can do this by opening the menu, right clicking on the item, hovering over the box and putting in a shortcut.


You can't cancel velocities with a null vector (0, 0, 0). A null vector is treated as "no change".

You need to apply a very small velocity such as (0, 0, 0.00002).

This belongs to the Python code as well as the motion actuator.


You use Replace blending mode for these strips, but I would say you probably used Add when you edited action. Changing back to "Add" blend type - seems solved the issue here.

There of course matter what blend mode you used while editing, also there matters what action is used bellow.

BTW

To do changes on imported animations I would use NLA editor to adjust animation. If you use GGT add-on its automatically imported as NLA action strips (animations).

I cleaned up all unused tracks and left only one to keep it more clear.
("Riffle_Crouch_Walk")

Action editor
- create a new action
(or delete existing and add keyframe for selected bones in Pose mode)
- here you can do all edits that are Replaced, Added or what ever (is set in NLA strip properties) on top of imported track (action)

NLA editor
- top action is always used (if not disabled)
- top row (with dope sheet icon) is always editable one
- all bellow (with star icon) are "Push Down" for strip mixing
(like now "Riffle_Crouch_Walk" imported action)

When you finish edits, you can search "Bake Action" (with cursor inside NLA editor) into one animation.

See blend file


How do I add a Specials Menu to the Video Sequencer?

This seems to be working, however, the cut functions aren't called properly for some reason?

import bpy

class SequencerEditMenu(bpy.types.Menu):
    bl_label = "Specials"
    bl_idname = "SEQUENCER_OT_sequencer_edit_menu"

    def draw(self, context):

        if context.space_data.type == 'SEQUENCE_EDITOR':

            layout = self.layout
            layout.operator("sequencer.gap_remove").all = False
            layout.operator("sequencer.gap_insert")
            layout.separator()
            props = layout.operator("sequencer.strip_jump", text="Jump to Previous Strip")
            props.next = False
            props.center = False
            props = layout.operator("sequencer.strip_jump", text="Jump to Next Strip")
            props.next = True
            props.center = False
            layout.separator()
            layout.operator("transform.transform", text="Grab/Move").mode = 'TRANSLATION'
            layout.operator("transform.transform", text="Grab/Extend from Frame").mode = 'TIME_EXTEND'
            layout.operator("sequencer.slip", text="Slip Strip Contents")
            layout.separator()
            layout.operator("sequencer.cut", text="Cut (Hard) at frame").type = 'HARD'
            layout.operator("sequencer.cut", text="Cut (Soft) at frame").type = 'SOFT'

addon_keymaps = []
def register():
    bpy.utils.register_class(SequencerEditMenu)

    # handle the keymap
    wm = bpy.context.window_manager
    kc = wm.keyconfigs.addon
    if kc:
        km = wm.keyconfigs.addon.keymaps.new(name='Sequencer', space_type='SEQUENCE_EDITOR')
        kmi = km.keymap_items.new('wm.call_menu', 'W', 'PRESS')
        kmi.properties.name = "SEQUENCER_OT_sequencer_edit_menu"
        addon_keymaps.append((km, kmi))

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

    for km, kmi in addon_keymaps:
        km.keymap_items.remove(kmi)
    addon_keymaps.clear()

if __name__ == "__main__":
    register()


I took the python template Simple Operator and inserted the operator that sets the origin to geometry (found when pressing the button and looking in the Info window). I then selected a few objects and set them up with origins at the cursor so I could test, and ran the script. With all of them selected, I pressed the space bar and chose "Origin to Geometry All", the name of the new operator.

Maybe it could help, though it isn't as clean as it could be with some work.

edit: turns out you don't need all that since the operator works on multiple objects at once already. Simply select all the objects you need to change origins to geometry and then press 'Origin to Geometry' in the tool bar. So if you have imported 30 objects and need to fix their origins, select all and then press the operator.


Black reflections at extreme angles with glossy shader on smooth surfaces

The problem occurs in smooth shading because it changes the way the shading is calculated across the surfaces, giving the illusion of a smooth surface even if the angle between the faces is sharp.

To correct that, add edge split modifier while all faces are set to smooth shading.


Can you make an object always follow the surface of another mesh with some kind of projected line?

I came up with two methods which might help you. See this blend file for an example of both of them:

This is what the results look like (the deforming cube is shrinkwrap method, the curvy one is the curve method):

Curve deformed by curve and used as path

Create a 3D curve to define the branch (and use Bevel and Taper Curves to give it thickness etc.)
Animate the branch curve any way you like (I used hooks, but it should be irrelevant)
Create another 3D curve to serve as a path for the bug and painstakingly put curve points around the branch curve's resulting mesh and don't forget to adjust the tilt in case you want the bug to around the branch
Add a Curve-Modifier to the bugs path and choose the branch curve as deformer and make sure you check the button so the modifier is applied to the curve points, not the resulting mesh:
Add a Follow Path Constraint to your bug and choose the path for the bug
Done!

Shrinkwrap-Contraint

This one is a bit simpler and might be sufficient depending on the complexity and strength of your branches animations.

Create a 3D curve to define the branch
Create a mesh for the branch
Add a Curve-Modifier to your mesh and choose the branch as curve deformer
Animate the branch curve any way you like (I used hooks, but it should be irrelevant)
Add a Shrinkwrap-Constraint to your bug and choose the branch mesh as target


Make an add-on with multiple python files

Organize your folder structure like this:

myaddon/
├── __init__.py
├── operators/
    ├── first_operator.py

In the __init__.py do this:

import bpy

from .operators.first_operator import FirstOperator

bl_info = {
    "name": "MyAddon",
    "description": "A demo addon",
    "author": "myname",
    "version": (1, 0, 0),
    "blender": (2, 7, 9),
    "wiki_url": "my github url here",
    "tracker_url": "my github url here/issues",
    "category": "Animation"
}

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

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

In the operators/first_operator.py file, do this:

import bpy

class FirstOperator(bpy.types.Operator):
    bl_label = "First Operator"
    bl_idname = "myaddon.first_operator"
    bl_description = "A demo operator"

    def execute(self, context):
        print("hello world")

        return {"FINISHED"}

You'll have to install the addon to use it. You can't just run the __init__.py from the text editor in Blender to make it work.


Snapping with 'median' part has a bug in 2.80?

Edit: seems to be a bug effectively. Snapping with median target works only if the object origin is at the center of the world. If not, there is a delta which correspond to the delta between its origin and the world center.

So the following is true only if the edited object is at center:

This is not a bug, but an enhancement.

In 2.8 you can specify what will be snap (vertex, edge, etc.) and that has an influence on what is considered as snap target.

So you can snap vertices (with median) and that will stuck to the target vertices.

Or you can snap edges and that will stuck to the target edges.


Where are Blender 2.79 and later rigid body constraint angular limits documented?

OK, so I didn't find any Blender specific documentation for this and ended up looking at the python code for:
bpy.ops.rigidbody.constraint_add() bpy.context.object.rigid_body_constraint.type = 'HINGE' bpy.context.object.rigid_body_constraint.object1 = bpy.data.objects["ObjectA"] bpy.context.object.rigid_body_constraint.object2 = bpy.data.objects["ObjectB"] bpy.context.object.rigid_body_constraint.use_limit_ang_z = True bpy.context.object.rigid_body_constraint.limit_ang_z_lower = -0.785398 bpy.context.object.rigid_body_constraint.limit_ang_z_upper = 0.785398
and the Blender and Bullet C code.
Observations:

Adding a Blender HINGE constraint, ultimately calls the Bullet function to create a HINGE constraint and not a GENERIC as previously suspected.
Looking at the Bullet create function and reading Bullet forum posts, the  constraint is set up relative to the frame (local transform) of the second Object passed to the function. You can override this behaviour and set up the constraint  relative to the transform of the first object, using a boolean flag. Blender sticks with the default, so the constraint transform is relative to Object 2.
Looking into the "set angular limit" function, there is a normalisation of the limit range mid point between -2PI and 2PI, so excessively large limit angles just get pulled back into the range -360 to 360 degrees.

What this means in plain terms is:

Limit angle "zero" is local x axis of objectB
+ve Upper Limit is in anticlockwise direction, when looking along the constraint's local +ve Z axis from the origin
-ve Lower Limit is in clockwise direction, when looking along the constraint's local +ve Z axis from the origin
The orientation of the constraint's local X and Y axis doesn't affect the joint's rotational range.

This is probably hard to visualise, so I've included a picture with 3 scenarios.

Top left is the starting set-up. Note the direction of the central constraint local Z axis.
Bottom left has the constraint local transform rotated 180 degrees around the local X axis, so the local Z axis now points towards the view. Upper and lower limits now flip.
Finally the image on the right is the same as the top left but Object B (2) to rotated downwards by 45 degrees and the limits move relative to this.

Ultimately, what was confusing me, was the fact that the limit angle range "zero" is defined by object 2 and not the orientation of the constraint itself.
I assume a similar set-up will apply to the other Bullet constraints, notwithstanding the axes of rotation may be different.
Cheers.


You can use vertex groups to limit the effect of a curve modifier.

Create the vertex group manually or enter weight paint mode using Ctrl+Tab. Red means max weight, dark blue means no weight.


How can I connect several links in the input node?

Links are created using node_tree.links.new:

  new(input, output, verify_limits=True)

  Add a node link to this node tree

  Parameters:

  input (NodeSocket, (never None)) – The input socket
  output (NodeSocket, (never None)) – The output socket
  verify_limits (boolean, (optional)) – Verify Limits, Remove existing links if connection limit is exceeded

  Returns: New node link

  Return type: NodeLink


How can I navigate the viewport using Python?

I would suggest not to call operators at all, these are rather cumbersome way to interact with the view, Instead manipulate the view directly.

If you write an operator you can access the viewport like this...

v3d = context.space_data
rv3d = v3d.region_3d
rv3d.view_location.x += 1.0

You may also want to treat the view as a 4x4 matrix since in some cases this is more convenient since you can multiply it with other matrices to combine transformations, accessible from the view_matrix.

See RegionView3D API docs

To get started you may want to try things out in the python console...

For this you need to specify the absolute path to the 3D region.

In the Scripting screen layout you can run this from the console or editor...

rv3d = bpy.context.screen.areas[2].spaces[0].region_3d
rv3d.view_rotation.rotate(Euler((0, 0, 0.1)))
rv3d.view_location.x += 1.0
rv3d.view_distance -= 1.0

We have a template of an operator that edits the view in the text editor Operator Modal View3D


Why Does My Mesh Move When Attaching Armature?

To fix this follow the below steps:

1- Select your armature and hit ctrl+A

2- Hit Apply Rotation

3- Do step 1 again and hit Apply Scale then again and Apply Location

4- Select your mesh and do steps from 1-3 again.

5- Voila, it will work :)


Yo guys. No more upvotes here, please. @ChristopherBennet and @RobinBetts both posted great answers below. Thankyouverymuch.

It looks like the color is based on viewing angle.

Add the Layer Weight node
Use the Facing output to drive a MixRGB node
Adjust the Blend value to control the gradient


Is there hidden data in this .blend file? Trying to minimize the file size

Yes. There are three packed jpg files.

Go to UV editor, select the first one, then click on the X button near its name, while holding the shift key.

Repeat this for the second and the third one, then save this file again.

A "0" will appear near the deleted images.


This doesn't answer your question exactly, but it might produce the result your looking for.

First un-parent the banner. Then clear the location(Alt + G). Add a Curve modifier and add your path as the curve object with Y as the deform axis. If the rotation is now wrong, rotate on the Y axis 90 degrees. Make sure your at the first frame of the animation, and move the banner on the Y axis until it is positioned behind the bird. Set a location keyframe(I, then "Location"). Go to the end of the animation and move the banner on the Y axis until it is again positioned behind the bird(type 302 into Y location it will get you close). Set another location keyframe. Go to the Graph Editor and under Key->Interpolation Mode choose "Linear".

So its not using a cloth simulation, but it should do what you want.


How to bevel something on only some faces?

Its sort of unavoidable.  You'll need to transition from the single edge (above) to the split/beveled edge (below) somehow.
If you want the bevel to only be on the vertical part, you can add an edge loop (highlighted) just below the current knee joint, and then select the edge below the edge loop and just bevel that. Then the 'fan' that transitions from no-bevel to bevel will be on the vertical edge.


Selection Behavior and Limit Selection to Visible

As the tutorial explicitly states, you should have Limit Selection to visible unselected. Once it is unselected, you will be able to see (if in perspective view), select and delete the back parts of your mesh.

If using the default theme, a selected button should have a dark background  and an unselected button should have a light one .


How to get rid of areas of depression between 2 beveled edges

The problem was solved when i stopped using Harden Normals option in bevel modifier that made the bevel stand out and make the depression


Personally I use the fact that Blender can have multiple scenes each with wildly different settings/setups/objects.

Click the plus sign at the top of the screen next to Scene.

Select New and rename it to something relevant.

note that it resets to the Blender defaults, in this case I Blender Render not Cycles, so remember to update it.

Add a Text object and add a camera. set the rotation to 0,0,0 and position it above your text.

Set the Camera to Orthographic.

There are various ways of getting the Text lit.

I usually add a Lamp set to Sun and pointing directly down. Change the Strength to 4 to get a strong contrast.

Depending on what outcome you want you can either set the background colour or set as Transparent.

Now in the VSE you can add a new Scene as a video strip

Then set the Strip settings to your new Scene

final set the Strip Blend to Alpha Over and the Alpha Mode to Transparent

When you render the strips will be combined.

Here the default Scene contains the default Cube with the default Lighting and our Title Text Scene is Rendered and placed in front of it.

The great thing about this technique is that you can do really cool animations with the text. From basic scrolling to bouncing to 3D manipulations. And you can do this with as many scenes as you need.


Is there a way to unwrap multiple objects into separate UV space?

You could join them - In Object Mode Hold down SHIFT then Click on each object. THen SHIFT + J will join the objects, the UV unwrap


How can I render an object with an hdr background?

There are a few pieces to make this work. Note that there are a few differences on how this works in 2.7x and 2.8x versions.

First Step:

In the world section, set the surface to Background and the Color to use Environment Texture.

Then select the HDRI image you want to use.

For version 2.8x the world section is here:

Once the image is loaded enable Scene World in the viewport shading. Otherwise blender will use an HDR image that is "built in".

For 2.7x
To view the image in the 3d viewport enable Display> World Background.

Usually HDRi images use an Equirectangular Projection. Think of it a as a huge sphere that completely surrounds the scene.

Note that the Background can only be displayed in perspective view, it will not be on orthogonal view.

The HDRi not only becomes the background for the scene, but is also used to light the scene. Every pixel of the HDR image contributes to the lighting of the scene. That is why the results of lighting wiht an image resemble the real world, where light acts in very complex ways.

The intensity of the illumination of the scene can be controlled by making the image brighter or darker with the Strength value on the world settings.

To render the HDRi in the background of the scene
disable>Film>Transparent.

The rendered image will be lit bythe HDR image and use that same image as the background of your scene.

If you want to use the HDRi to light the scene, but want a transparent background to be composited later with the background, or want to blur the HDR or maybe replace the background all together, then enable film transparent and enable the Environment output for the render layers, and use it as a different element in the compositor.

For 2.8 enable the Environment pass for the View Layer

To change the placement for the background

In the World section of the Shader Editor add a Texture Coordinate node and a Mapping node to control the placement of the Environment texture. By changing the rotation on the mapping node you can place the HDR where you need it.

For 2.8x:

For 2.7x


How Do You Select Only Part Of a Timeline To Be Rendered?

Specifying Render Output Settings

You can specify a specific start frame and end frame for your render in the Dimensions section of the Render tab:

Render tab -> Dimensions section -> set Start Frame and End Frame

If your animation is 250 frames long, but you only want to render frames 50 - 75, then set the Start Frame to 50 and the End Frame to 75.

You can also specify your render format to be AVI RAW in the same window:

Render tab -> Output section -> AVI RAW


Why object deformed in Follow Path (ctrl + p)?

I do not know what you did wrong, but, I did everything that was shown on the video and it worked. Try again.


Convert simply python script to animation node setup

binweg's answer solves the problem perfectly. The only problem that might occur is with adding Euler angles. Flipping might occur which will lead to improper results as shown in the following picture (where no cube but a pentagon was used as base shape):

The problem can be got rid of by using quaternions math instead of Euler math as shown in the following setup:

Unfortunately for the 'Object Transform Input' to work properly with Quaternions, the Transform for the Rotation of the corresponding object (in this case the Empty) must be set to Quaternion (WXYZ) in the properties panel of the 3D View.


How to see several texture slots at once? (cycles)

To see the effect of a new image added in the material draw mode when painting, be sure to actually have it mixed into your other image as if you were dealing with layers in an image editor program. Here I use the image of alpha 1 and white as a base and another image with 0 alpha to overlay on top of the white image, mixed with factor of 1 in the color mix node before sending to the shader. I plug the alpha socket of the 0 alpha image into the mix factor of the color mix node to control how it mixes them, revealing the colors underneath in the other image.

 Remember to keep adding the images to the lower mix inputs, as Blender uses a top to bottom stack (like added lines of code in a text editor)versus the bottom to top style we see in image editors(like layers of acetate on top of each other). I believe the disconnected image node is mainly used for baking out a shader to a single image.


How to implement deltaTime with blender's physics engine?

I was not able to come up with a solution (yet), but I'd like to share some progress I made. Maybe framerate-independent realtime physics is not possible, but let's keep the mindset "There is a way, we just haven't found it yet" for now.

Testcase

blackhole mentioned, that it's extremely difficult to test whether Blenders Bullet Physics run in RealTime or not. So I looked for a simple real-world example which could serve as a reference for comparing an expectation vs. what Blender is doing. I have choosen a simple free-falling cube, which is placed at a height above an object so that it should hit the ground after exactly 2 seconds (no friction, air resistance or other fancy stuff).

Here's the setup (*blend below):

When pressing "SPACE", you can observe the framerate dropping - I put some sleep in a Python controller.

Parameters of Interest

The first four of the following list are new since 2.77 as far as I know.

bge.logic.getClockTime()
bge.logic.getFrameTime()
bge.logic.getRealTime()
bge.logic.getTimeScale()
Objects "Timer" properties
Render -> System -> "use Frame rate" Checkbox
World -> Phsyics -> "FPS" value

There are several versions of Time available, which I personally find confusing. I used getRealTime (system clock) to measure the time of collision of the falling cube.

Observations

Some of them are obvious to more experienced BGE users (than me), but I'd like to write them down nevertheless. The time of collision

was at least one frame delayed. (2.016 seconds at 60 FPS)
went down (=cube fell faster) by a factor of 2 in case I put 30 FPS in physics and uncecked "Use Frame Rate" - the simulation was running at 60 FPS then.
went up once I added some expensive logic which let the framerate go down (sleep, triggered by SPACE)
varied with the "margin" setting in the objects collision bounds settings.

Whatever I tried so far, I did not find a solution which let the cube hit the ground after 2 seconds when I let the framerate drop by the sleeps. In case frame-independent realtime physics are possible in Blender, there should be a way of making that happen. The new setUseExternalClock and setClockTime might be an option. Maybe my *.blend helps along the way.


Why can I not use the Make Segments command on my Surface NURBS Curves?

After reading the tutorial, here are a few points you can check in your workflow:
Point #1
Make sure you add a Surface NURB Curve, not any other kind of object. A "Surface" is different from a "Mesh" or a "Curve", as you can see here in the Add menu:

Notice there are other objects that have NURB or Curve in their name, but these are not what the tutorial is describing:

So, when adding a new object, go by the first level of names, as shown here:

Point #2
After Adding the first Surface NURB Curve, you must be in Edit mode when you duplicate it
(SHIFTD), because the Make Segments command (F) will only work in Edit mode.

If you were not in Edit mode when you made the duplicates, each one would be it's own separate object and the F command would not work.
By duplicating the surfaces while in Edit mode, all of the duplicates are considered one object,
even if they are not connected (which they aren't until you use F)
Point #3
After duplicating the Surfaces, stay in Edit mode, then select All with A, and then press F to Make Segments (connect them all together):

Just to explain the name of the command, when you use "Make Segments" (F), the "segments" that are made are the ones connecting the vertices together, shown here in yellow on the right:


Blender Scale and Unit problem, how to fix?

As this answer suggests:
How can I make the default size of new objects 1 x 1?
You can, along changing meters to centimeters, also change the unit scale to 0.01 (as 1 cm is 0.01 m)

This will probably solve all your problems not just huge cubes being added, but you may find it important, that when using proportional editing, there's a circle of influence visible, which you can scale by using your mouse wheel. Due to your scale problems, this circle could be so big, that it was entirely outside of the viewport, so you should see it if you zoom out considerably before moving / rotating / scaling or if you scroll your mouse wheel up for a while:

The rate at which this circle's radius changes will depend on its current radius (the change gets slower as the circle gets smaller) and your zoom (so the change of the circle's size depends on its size in viewport). However, you can still decrease the change for a finer control, by holding SHIFT key.
Likewise, holding SHIFT will decrease step size in input fields:

no SHIFT
SHIFT


If you reload the clip on the Movie Clip Editor, the cache will be cleared.

Also keep in mind that the amount of memory used for the cache can be managed on the System Preferences (CtrlAltU) ->System ->Sequencer/Clip Editor ->Memory Cache Limit


Weird scaling constraint on 3d model in edit mode

Make sure that proportional editing is turned off or disabled


You can only bake a fluid sim if it is the only domain object in the scene.

Multiple fluid sims can exist in the same scene, to bake a fluid sim you have to change the fluid type of the other domains while you bake. After the bake is finished you can change all of the fluid types back to domain and play then at the same time.

Be careful that you set different cache paths for each domain otherwise they will overwrite each other.


Cycles removes assigned material from mesh faces altered by a displacement map, instead leaving them plain white

OK, so this was not a Cycles problem.

Simply there is another tyre named "tyre2" in the scene which is hidden for the viewport but rendered :

To avoid it to be rendered, click also on the little camera icon on the right.


In the tool panel, T if it is not open find Symmetry/ Lock and disable mirror there. It is directly under Dynotopo.


Look at the top. It says "Back to Previous" -> That's how you get back.

What happened is that you accidentally hit Shift + Space Bar. This makes the current View go full screen. (The one your mouse is over)
Alternatively you can just hit Shift + Space Bar again.

EDIT:

On the other hand, if you have trouble finding the geometry in your 3D view, you can either use Shift + C as pointed out by @HenrikD or, press "." or "," on your Num Pad to center the view on a selected object.


How to place cubes around in a square shape

You may use Dupliverts to achieve it.

In Edit Mode add a plane and subdivide it, then delete the faces. In Object Mode add a cube and scale it as you like.

In Object Mode parent the cube to the plane (Ctrl+P-->Object).

Select the plane and go to the Object header-->Duplication panel and push the Verts button.

Finally with the plane selected press Shift+Ctrl+A to make the duplicates real meshes.


Why is the other side faded in mirror mode?

It is by design. The other side will only be available for direct manipulation after you have applied the modifier. Mostly, when a user attach a mirror modifier, it's purpose is so that the user could just focus on working on one side of the model until we need to break the model's symmetry.

The greying out give you a visual as to which side of the model you are currently suppose to work on as you rotate around the model. You can imagine it would be frustrating to be clicking on something that is inactive by design.


Can't Insert Keyframes while in Pose mode or pullup any menu with shortcut keys in 2.92?

Never mind I found it. When you go into key binds, don't search anything, just scroll down until you see 3d view. If restore is beside it then like the arrow to drop down menu. Scroll down until you see pose, and if restore is beside it, then press it. IDK how it got removed but whatever I guess.


It's a bone roll problem.
The bone rolls differ in your rig. Bones have 3 axes and a roll value. These values determine in which direction for example a limb bends when the bones are rotated around one of the axes in a positive or negative direction.
Select the armature, go in Edit mode, and check the bone roll values. Activate the display of the bone axes to see what happens.
You can select a several bones and use Recalculate Roll (Shift+N) + Active Bone to assign the roll value to all bones. Blender takes the value of the active bone, the last one you selected.

Important! Note that a roll of 180 is not the same as -180. For centered bones make sure the X and Y positions of the head and tail are 0, not -0. I had a blender version (2.91?) that used -0 and the (calculated) roll then was -180 but for 0 it was 180. The result is a mess when several bones have different signed values (+/-).
Here is an example in Pose mode of roll 0 (top) and roll -180 (bottom). For both, the local rotation is in the positive direction of the x-axis of the bones. In the first example, it bends forward, while in the second it bends backward. With a roll value of 90, it would bend to the right.


Can a material be reflective, but not reflect a light source?

It seems that this is ultimately the problem of inhibiting the creation of shadow rays from camera rays incident on the floor. Therefore, we can detect them by looking for rays with a 'Ray Depth' equal to 1. Since we only care about rays coming from the floor, we can use a separate object positioned above it to act as a filter.
Ideally, this would be it: use a mix shader to permit everything but shadow rays with depth equal to 1 from passing through. Unfortunately, it seems that the glossy shader labels some of its shadow rays as glossy, so until this is fixed you have to work around it by selectively making parts of the floor purely diffusive.
Using the naive solution:

Workaround:

Example using a somewhat smooth, metallic 'Principled BSDF' in place of 'Glossy BSDF'.


There are duplicated vertices: in edit mode, select all and use M to merge then "by distance".


How to bend a sci-fi corridor BUT maintain the straight panels?

I was finally able to work out how to do it... Basically I only bent the major forms and made sure to use as few vertical edges as possible. For the little insets, things that NEED vertical edges, I used a simple object - copied a few times, joined to and then bent with the main panels. After that, using the "Normal" transform orientation and making notes of scale values, etc. I was able to then work along the faces at their respective angles.
It's a repetitive process but I can think of no other way of doing it without causing deformations.
In a way I suppose it's better to work like this as it means I can save out exact measurements and scaling values, etc. for the other modular pieces so that things remain uniform.
Of course I'll continue to look for an easier way of doing this - maybe align perfectly to centre of a face somehow? I had originally had a plane going around as well, to snap the other parts to but it didn't seem to work properly.
For now this will do!
[


What is a keying set and how does it fit into the animation workflow?

A keying set is a collection of properties which should be keyed together. E.g. if you want to animate an object's position you need to set a start-keyframe of the initial location and an end-keyframe of the final position.  The position is described as x,y,z coordinate Location is a keying-set that inserts x,y and z at once.

In this image you see (Dope Sheet in the upper part) a location keyed for frame 1 and rotation for frame 2 both were inserted by pressing I and selecting Location respectively Rotation.

If the object should also rotate you can user LocRot to insert location and rotation at once. The other features described by Leon cover arbitrary properties (almost everything can be animated in blender). Later you might want to animate color, transparency of a material then you would need to learn more about it. For the time being this should provide you a basic idea.

Related: What do the preferences keyframing options actually mean?


You're using Object coordinates, which, (assuming your object is not scaled in Object Mode,) are measured in Blender units, from the object's origin, along the object's own axes.
If your disc has a radius of 1, then you can simplify your tree as follows:

Since the answer you refer to, there's a Vector Math > Length node, so you don't have to do your own Pythagoras any more, and you could use alpha in your color-ramp colors to get rid of the shader-mix? It depends on the exact shading you want.
If the radius of your circle is not 1, then you could introduce a Vector Math > Multiply before the Length, to bring the radius lengths into the 0-1 range for the color-ramp to handle.. multiplying X and Y by whatever is needed, and Z by 0 to get rid of it.
However, you want the texture to be more general, and occupy the same proportions of a disc, no matter what size it is, you could use Generated coordinates, which are always measured 0-1 from the minimum to the maximum of an object's bounding-box in all directions, no matter what size the object is.
In that case, you would have to shift 0 back to the middle of the circle, and multiply by 2 to get the radius mapped back to 0-1 again:...


Assymetrical model with same number of vertices in each side - how to transfwer weights?

Object Mode Version

Here is a test script to run in object mode. It looks for all vertex groups on active object that end with ".L", finds a matching group ending with ".R" (or None).

Then using the list comprehension methods from Python - Finding Vertices in a Vertex Group check if there are the same number in each.

If so, for each left group vert,  sort the verts in the right group by the distance from the x mirrored location left group vert. Pop off the closest and set to mirrored pos of left.

Requires no operators and no edit mode.

import bpy
import re

context = bpy.context
ob = context.object
# get the mirrored name
def get_mirror(g):
    return ob.vertex_groups.get(re.sub(r'(.*)L', r'\1R', g.name))

mirror_groups = [(vg, get_mirror(vg)) for vg in ob.vertex_groups
        if vg.name.endswith(".L")]

for lg, rg in mirror_groups:
    if rg is None:
        print(lg.name, "has no mirror group")
        continue

    print(lg.name, rg.name)

    lverts = [v for v in ob.data.vertices
            if lg.index in [vg.group for vg in v.groups]]
    rverts = [v for v in ob.data.vertices
            if rg.index in [vg.group for vg in v.groups]]

    if len(lverts) != len(rverts):
        print("mismatching vert counts", len(lverts), len(rverts))
        continue

    for lv in lverts:
        vec = lv.co.copy()
        vec.x *= -1
        # sort rverts by distance from lvert
        rverts.sort(key=lambda v: (vec - v.co).length)
        # pop and set the rvert
        rv = rverts.pop(0)
        rv.co = vec
        rg.add([rv.index], lg.weight(lv.index), 'REPLACE')


If an error happened before blender finished all the frames that were supposed to be rendered, I am afraid the .avi file may be corrupt. It cannot be opened or fixed. The way to render an animation the safe way is to always render as an image sequence. Meaning render each frame as a .jpg or .png file format. You would then use the VSE (Video Sequence Editor) in blender to combine all the images and save it as a .mov or .avi movie file format.

This way if some error occurs you can still restart the rendered at the point where the error occurred, instead of starting all over again because your movie file was corrupted by the incomplete rendering process.

That is how the animation industry does rendering work at a professional level too. This workflow allow for post production work, like adding visual effects and color correction after the all the frames are rendered.


How do I limit the movement of an object to two directions?

If i understand correctly, what you want to do in the picture with the U-shaped path can be achieved with a "Clamp to" constraint. (If you are familiar with drivers, then first see the EDIT below!!!) For this you clamp your Object that has to follow a curve-Object. The follower Object should then only be translatable along that set Path. Of course you could then have some other constraint move that path around if you want ;)

The result should look something like this:

And here an example for using additional constraints on the curve, where the curve copies the z-location of the blue cube:

To do make the red cube go along the full path when the blue cube is moved you can use drivers. By the clamp to constraint the red object moves along the entire path only by manual transform alon the x-axis. So you could add a driver (rightclick-> add driver) to the the x-Location of the red cube and make the "input variable" the z-location of the blue cube. Then the result looks like this:

EDIT:  If you want to move that curve around in all directions, then the "follow path" constraint is much more stable. Just make a driver on the Offset, make the input variable whatever you want and you're done!

Happy Blending!


Smooth a curve in mesh while maintaining its current angle?

You can add a subsurf modifier on your object. You will need first to triangulate your mesh (manually of with modifier as you want) since ngon will give strange results around the holes.

Before

With subsurf

Ngon problem with subsurf

Triangulate


It sounds as if you've got Snap set to Increment... uncheck this button

During transformations:

Invert the Snap button's state by holding Ctrl

Gear down transformations, either in the numerical field, or in the 3D view, by holding Shift.


Fire simulation not working in eevee 2.81

The issue I was running into was that I needed to use a heat attribute node. Once I added that with the flame attribute, it worked. (I also didn't separate the nodes anymore)

Thank you everyone who helped.


Normal Map only visible on single Shape Key?

As Scott commented you can drive the Normal Map strength with the value of the shapekey. Right click with your mouse the Value of your shape key and select Copy as New Driver.

Next, right click the Strength value of you Normal Map node and select Paste Driver.

Now the strength of the normal map changes as you change the value of the shape key.


Transparent mesh with material/texture remains black

When using the blender internal render engine you need to use glsl shading to see transparency in textured mode. This option can be found in the properties panel on the right of the 3dview by pressing N.

When using the cycles render engine, the nodes based materials effect the 3dview when in rendered mode, while some nodes have a limited effect in textured mode.


Cycles - Baking Diffuse result is always black

I found the problem. After setting Subsurface to 0 in the Principled BSDF Shader, it works. I can't explain it though.


How to store animation properties/values, and restore them on callback

I only added the relevant parts of the code.
The solution is to keep an additional setting that remembers the previous setting slide_1_start_previous. We now can calculate the difference by subtracting both values. and shift the strip using this value.

def frame_slide(self, context):
    difference = self.slide_1_start - self.slide_1_start_previous

    for obj in bpy.context.selected_objects:
        strip = obj.animation_data.nla_tracks[0].strips[0]
        scale = strip.scale
        strip.frame_start += difference
        strip.frame_end += difference
        strip.scale = scale

    self.slide_1_start_previous = self.slide_1_start
    return None

# Register
def register():
    bpy.types.WindowManager.slide_1_start = bpy.props.IntProperty(name="Slide_1_SF", update=frame_slide,min=1,options={'SKIP_SAVE'})
    bpy.types.WindowManager.slide_1_start_previous = bpy.props.IntProperty(default=1)

    bpy.utils.register_module(__name__)

As you didn't implement it as an operator it is hard to determine when you want to reset these values. I would suggest placing this in an operator.


Yes and no. Yes, because this is called "texture filtering" or "texture interpolation." No, because Blender is already doing this.

Your question is basically the opposite of this one, and that answer will be very helpful to you.

Suffice to say, you can change the interpolation mode on the texture node in Cycles, or in the Image Sampling section of Blender Internal. Cubic typically gives the result you want. It's a sharpened version that doesn't look pixelated. "Closest" is pixelated, it doesn't do any blurring at all. "Linear" is a little more blurry than cubic, but that's as blurry as it gets without doing some other image processing, which you can't do within Blender. There's currently no way to blur an image texture before using it in a material.

Lastly, it wouldn't help. If you're blurring the image, you're losing information. If you want to NOT lose that information, you have to have a higher-resolution... which isn't a smaller file.

The unfortunate reality of computing is that computers are terrible at guessing. If the dataset is incomplete, the computer cannot fill in that data intelligently (unless you're Adobe and have made unholy pacts in order to perform the dark magics known as "content aware fill"). If the incomplete dataset is insufficient, you must add more data which comes at a cost. In the case of Adobe, that cost is unholy liaisons. For the rest of us, that cost is file size.

Hope that helps!


If the file is being run as a registered text block then

The text block's name must have a .py extension.

if __name__ == "__main__"

won't be true, it takes the module name, eg for test.py

print(__name__)

will print test, whereas when run from the text editor will print

__main__

which is handy for testing addon scripts.

For a registered text block, perhaps just having

register()

without the if would suffice.


Is there any way to replicate "Aura Glow" reflective dispersion/iridescence glass effect in Cycles?

Turns out that this method actually do work, but for my use, a bit of tweaking has to be done to make it look like the actual phone:


The problem is because you are trying to use Cycles shaders with the Blender Internal render engine.

Each render engine has its own way of handling materials, and these ways are usually incompatible with one another. Because of this, designing a material in one render engine, and then trying to render it with a different render engine won't work.

You need to make materials in the same render engine that you are going to use.

Switch into Blender Render and create a new material there, and your problem should go away.


Edges don't "stick" to Object in Edit Mode

This is because you are using a surface object, and this is the way surface objects behave. If you want the edges to "stick to the torus" as you say, you will need to convert to mesh (press alt-c and select the second option). You could also simply initially add a mesh torus and use that.


How do I model this chrysanthemum crest?

It looks like while I was composing my answer someone else beat me to the punch. Nonetheless, I will share what I have. I think you get the gist of it already, but there are some slight differences. I hope you'll find it helpful.

Create the edge outline.

Do a spin extrusion.

Make some Loop Cuts.

Scale down with proportional editing enabled. (Sharp falloff)

Simplify the geometry by merging vertices...

...and dissolving edges.

Add a UV Sphere with the appropriate number of divisions.

Delete the bottom verts.

Do Proportional Editing on the UV (hemi)Sphere too. (Spherical falloff)

Delete the lowest edge loop of the hemisphere.

Merge the pedal's vertices to the center hemisphere.

Duplicate and rotate by 22.5° (360° / 16 pedals)

Merge more vertices.

It may be necessary to Remove Doubles from time to time.

Create a tiling section and use the Array Modifier to complete the circle.

An Empty can be used to specify the rotation angle (22.5°).

Enable the modifier settings "Merge" and "First Last" in order to connect the verts of the mesh as one.

Create the geometry for the smaller pedals.

And give them some height.

Here is the final result:


Saving Blender File to a Shared Folder Results in "Cannot change old file" Error

I had the same problem with saving files while using a computer with a local hard drive (Windows10).
"Cannot change old file (file saved with @)" error occured when I packed external data into my blend files and then tried to save it.
Unpacking external data solved my problem.


You can simply scale the rig with mesh using S then apply scaling using Ctrl+A


First, unwrap your cylinder -- Edit Mode; Select all (A); Unwrap (U) -- with a cylindrical projection. Use a texture that joins the top and the bottom seamlessly.

Then select the bottom row in the UV window (B and make a rectangle) and shear it by grabbing to a side (G).

Voilà.


How to make particles collide on face instead of median point?

Enable "Size deflect" in the "Physics" tab of the particle system

Result with randomly rotated Suzannes:


Here's a quick python script to add the collision modifier for all selected objects. Just select all the objects to be made into collision objects and run the script, script is not at all optimized as it is using bpy.ops, so anything above 300 objects might take 1 or 2 secs to apply.
import bpy
for i in bpy.context.selected_objects:
     bpy.context.view_layer.objects.active = i
     bpy.ops.object.modifier_add(type='COLLISION')


How can I force input to be interpreted as millimetres instead of metres?

You can do that from the Scene panel, Under Units, Scale 1.0000000 means that it's in meters, change it to 0.01, this will make your units in cm, or 0.001 will make them in mm.
Be careful though if you're planning to export your objects to a different software, like UE4 for instance, you need to change this later to meet the requirements of that software.

Edit:Make sure that you also change the scale in 3D View window, under Display (in the properties shelve to your right hand by default, if you can't see that, press N while hovering over 3D View window).
Check this answer too: Change the scale of the viewport


None of my dimensions never come out the same size? (Units-Inches)

You are scaling the cube, not changing its dimensions.

When you scale an object, its dimensions are multiplied by the number. So your dimensions are not 79 inches; they are 79 times their original size.

To set absolute dimensions, change the numbers under Dimensions.


How to animate an object rotating on its own axis?

if you animate the earth on the Z axis, then parent it to an empty, and tilt a bit this empty, is it not what you want?


How are scripts from commandline executed

The script is currently executed after rendering. The order of CLI command matters for Blender. If you put the --python flag before -f it should work as expected.


How to set rotation of an object on a specific axis?

Do you mean 10° around Y and 10° around Z?

mathutils.Euler((0, math.radians(10), math.radians(10)), "XYZ")

or do you mean 10° around X?

mathutils.Euler((math.radians(10), 0, 0), "XYZ")


Is it possible to add noise or other type of texture between color ramp stops?

It's time to dig this up and make it right.

Final

Object and UV Map

Create your horn using chosen technique and UV Unwrap it with Follow Active Quads as in my answer here: How to Straighten Curved UVs into Straight Belt

Using this method is somewhat crucial as we need to have UV Map straighten to X axis.

Material

Extending a bit setup from your link we will make 3 maps. Base color, Roughness and Normal than use them with Principled Shader.

For Base color we mix main gradient with light and dark spots.

For Roughness and Normal we will use stretched and mixed Noise Textures.

Most important things here are Mapping nodes with stretching along X and Y axis.


How can I shatter a model and have it reassemble in a different shape?

One tactic that might be useful is to have the two models both be shattered, but the second one in reverse.  In the time between slowly replace the pieces of the first model with the pieces of the second (which will be hard to notice in all the confusion).  So the first model shatters; over time its pieces are replaced by pieces of a second model; which then unshatters.


Are you perhaps talking about the Snap to Grid tools?

You simply click to the magnet icon to enable that, pick your poison in terms of what you want to snap by (side-note: doing so by volume is fantastic when setting up rigs). Works in object/edit modes, and with all sorts of translation/scaling/rotating.

Edit: If you want to modify the increment size, try this answer.

Hope that helps!


You could do it several ways I guess. Here is one (but sorry I won't go too much in details). There are 2 aspects, the rigging and the face animations:

Create your mesh, give it enough geometry so that you will be able to bend it, if you're using a Subdivision Surface modifier of course it would need additional edge loops.

You could directly parent your object to an armature, it really depends on the deformation you'll need. If it doesn't work smoothly you may prefer to use a Mesh Deform modifier: Create a sort of cage that will encompass your character. Give it a bit of subdivisions. Make it invisible in Render mode. Give your character a Mesh Deform modifier and Bind it to the cage.

Parent this cage to an armature, maybe choose Bendy Bones so that the bones bend smoothly (not sure it's useful for a simple mesh though).

For the face animation you could use the UV Warp modifier as explained for example here by BornCG. This is the cleanest way to do it. A simpler way would be first to create an image with all your different facial expressions then create one UV map by expression:

Then to switch from an expression to another, use a Mix Shader that will switch from a UV map to another:


How to add reference numbers to exported UV map

The closest I can come up with:
Go to the "UV Editing" work space
Select your object and enter edit mode
Create the UV map.  Here I'll use the default cube and its default unwrapping for simplicity.
Use the UV menu to export the UV Map to a file:

Make sure to check "all UVs" in the file dialog:

Create a new image using the "+ New Button"

Make sure you create a blank image:

Switch to the image editor:

Switch to paint mode:

Use the paint brush to add your annotations:

Save the image to a file:

Now you have two images files, one with the outline of the UV Map, the other with annotations.  Load them into your favorite image editor as layers, with the UV map above the annotations.  Set opacity to taste and you end up with something like this in the image editor:

You can even use this technique to temporarily put the annotations on your model by giving it a material that uses the image you created as an image texture:

Using the shader:

This will even allow you to place the correct orientation for the faces, if they happen to be otherwise indistinguishable.


Using Brick or a Procedural texture to shade a chess board

I would use a checker texture (Or use this answer to modify the bias in the brick texture to behave like a checker) and darken the color with the black outline of the brick texture afterwards :

Note : The scale of the checker texture must be 2 * that of the brick texture, otherwise the edges won't align.


Did you click "Save User Preferences"?  If so, it should be under File --> Import --> FBX (.fbx)


How to pass command line arguments to a Blender Python script?

Yes, Blender's Python can read command line arguments.

In summary:

Python can read all arguments passed to Blender via sys.argv(just the same as you would in Python)
Blender will ignore all arguments after: --(double dash with no arguments, as documented in the --help message)
Scripts can check for -- in sys.argv and ignore all arguments beforehand.

Example:

Script: mytest.py

import sys
argv = sys.argv
argv = argv[argv.index("--") + 1:]  # get all args after "--"

print(argv)  # --> ['example', 'args', '123']

Execute like this:

blender --background test.blend --python mytest.py -- example args 123

Having spaces around -- is important, this is a signal that Blender should stop parsing the arguments and allows you to pass your own arguments to Python.

Further information:

For a more comprehensive script example, background_job.py is a Python template which comes with Blender,
this uses Python's argparse module, for more flexible handling of arguments.

If you want to have comprehensive arguments for your script with a --help message, Look into argparse, general Python docs on the module can be used.

Note: if -- is not always needed, you can check for it like this.

import sys
argv = sys.argv
try:
    index = argv.index("--") + 1
except ValueError:
    index = len(argv)

argv = argv[index:]

Note that using argparse is optional, you can simply do checks such as:

if "--myarg" in argv:
    do_stuff()

... but I've found as soon as you want to pass values to arguments, this becomes a hassle and its generally better of to use argparse to begin with, unless...

You're making a quick test and only need primitive argument handling.
You have a good reason to spend time doing your own argument parsing, and argparse can't handle your use-case.


How to unwrap a specific part of an object with correct size proportions?

Step 1: Have a model with a well-thought-out unwrap.

Step 2: Make changes to one are of the model, breaking the texture coordinates in that area.

Step 3: Select the changed area and re-unwrap it to ensure that all parts have texture coordinates, even if the topology has changed. (I used regular old Unwrap with the Conformal algorithm.) Don't worry too much that it's huge.

Step 4: enable Area distortion display in the UV editor N panel to make it really, really easy to scale the island to the right size. Areas at the right size are displayed with blue.

Step 5: move the re-unwrapped island off to the side. Select the entire model and find any areas that should be directly sewn to the re-unwrapped island. Select these areas and pin those islands. (If you don't have seams because you used Auto Unwrap, use Seams from Islands to get seams.) Select one area (old unwrap + new unwrap) that needs new texture coords and unwrap it with Unwrap. The pinned area will stay in place, while the re-unwrapped area will integrate with the part of the island that already existed.

If you need the UVs to fit into a specific part of a texture, use pinning, live unwrap, snapping, and scaling to 0 along an axis to get them into the right place.

If the areas that changed aren't attached to any existing UV islands, all you need to do is use Area distortion display mode to rescale them until they're blue, then find a spot on the UV map for them.


Only renames active collection and selected objects:
import bpy
def testFunction():
    selection = bpy.context.selected_objects
    for x in selection:
        x.name = 'test_' + x.name
        x.data.name = 'test_' + x.data.name
    collection = bpy.context.view_layer.active_layer_collection.collection
    if collection.name == 'Master Collection':
        return
    collection.name = 'test_' + collection.name

if __name__ == '__main__':
    testFunction()


Why doesn't the object fall into the other object?

the reason for this, is because your rigidbody is set to Convex Hull  which means it takes the outside of the mesh, and gives it collision box, and it just fills in all the holes.
If you want an object to fall inside a hole, all you need to do is change your rigidbody from Convex Hull to Mesh  as illustrated.


To place an object to the center and also change the pivot point to the object's center, follow these steps:

Select your object and tab into edit mode.
Hit A to select the whole mesh
Hit Shift+S and select "Cursor to Selected"
Tab into Object Mode and hit Ctrl+Alt+Shift+C
Hit Shift+S and select "Cursor to Center"
Hit Shift+S again and select "Selection to Cursor"

If this answer solves your problem, please vote and also mark it as "accepted"


Make strip active or deactivate it in python

try this:

import bpy
se = bpy.context.scene.sequence_editor
se.active_strip = se.sequences['0001.png']

There appears to be some lag in the UI that I'm not sure how to work around.


VSE: Imported audio not in-sync with video after 10 minutes

Bad sync between recording devices happens for many reasons, check out the wiki article

  Digital or analog audio video streams or video files usually contain some sort of explicit AV-sync timing, either in the form of interleaved video and audio data or by explicit relative time-stamping of data. The processing of data must respect the relative data timing by e.g. stretching between or interpolation of received data. If the processing does not respect the AV-sync error, it will increase whenever data gets lost because of transmission errors or because of missing or mis-timed processing.

As the audio has drifted away from your pictures without a common reference I would suggest looking for easily identifiable sync points in both recordings. Split the audio at that point and drag it back to match the video. Depending on how fast the drift occurs will indicate how many splits you require. It could be one every few minutes if you're unlucky.

You can try to apply a minimal amount of pitch control on the audio strip. This will speed up the playback of the media by a certain amount, but its hard to be accurate as the wave form won't reflect the change, unless you render it out and re-import it. Use Blender's Audio Mixdown function to achieve this.


How do I achieve a Shader Similar to Super Hot's Furniture and Enemies?

I think you may achieve similar effect using Layer Weight (Facing) node for a mixing factor of Diffuse and Glossy shaders. A little bit of compositing (adding Glare (Fog Glow) node) may be also needed.

Set up the nodes as pictured below (experiment with Layer Weight's Blend and Glossy shader's Roughness values). To achieve a stripped pattern add a Wave Texture (Bands) node and adjust it's scale.

My lighting setup: Two Area Lamps with pure white color- key light (Strenght-10000, Size-0.1) and fill light (Strenght-2000, Size-0.1).

To make it look better go to compositing nodes and add a Glare Node (Fog Glow) and increase its Threshold and Size.

Animated result:


functioning of the geometry node- what does it do with the vector math

The source used for the vector math node can be found here.

For each Operation -

Add, the output Vector is the two input vectors added together. The Value output is the average of the output vector components (x+y+z)/3.
Subtract, the output Vector is input vector one(upper) minus input vector two(lower). The Value output is the average of the output vector components (x+y+z)/3.
Average, the output vector is the normalised result of the sum of both inputs. That is the vector divided by the length of the vector. The length is calculated as the square root of the dot product.
Normalize, The result vector is the normalised vector of input vector one. The result value is the length of the vector.
Dot Product, the output value is the dot product of the input vectors, that is vector one times vector two and all components added together v1.x*v2.x + v1.y*v2.y + v1.z*v2.z. The Vector output is 0,0,0.
Cross Product, the output vector is the cross product of both inputs. The Value output is the length of the result, calculated as the square root of the dot product of the output vector. The cross product is calculated as

result[0] = v1.y * v2.z - v1.z * v2.y
result[1] = v1.z * v2.x - v1.x * v2.z
result[2] = v1.x * v2.y - v1.y * v2.x


Object does not show when pasted into scene

When the mesh is imported from another blend, - either linked or appended, it is placed on the same 3D Layer where it was in the original file.

To see whether there is something on any layer, look at the layers tab:

Layer 1 is selected, while both - 1-st and 2-nd have dot in the middle of the small rectangle.

This dot is orange - currently active object is located on that layer.
This dot is grey - there is/are some objects on that layer.

To show the mesh located on another layer, either Shift click on that rectangle, or press Shift + number of adjacent layer (in this case 2-nd). The mesh will be shown.


The Problem here is your Control bone for those IK is parented with the IK bone. So simply clear parent it will slove the problem.
-Select FrontFoot.L bone
-Press Alt + P
-Choose Clear Parent

The IK work correctly now.


I just tried something similar and it worked OK, I'm guessing your spheres are too close / touching on the initial frame. This will upset things.
Here's my result-
https://www.dropbox.com/s/cdtnwukjwakg6kc/RigidSpheres.mp4?dl=0

And here's the scene-
https://www.dropbox.com/s/aw6pmq5tmis0kee/RigidSpheres.blend?dl=0

If you move my spheres so they're touching/intersecting they repel each other as they start to fall.

Cheers
Mark


Look through 2 different cameras in 2 different viewport?

Turns out you do it by toggling this Local Camera function ON.


Nodes are deactivated/inactive/greyed-out and cannot alter value

This issue could have been caused by linking in an object from another scene. When you link in an object, "ghost" materials are created - completely identical to the materials from the original file, but uneditable.
If this is the case, then simply append objects or materials themselves and you should be able to edit the nodes again.


How to animate text being revealed on the screen

From my experience text objects do not work very well with booleans (due to some letters in some fonts being non-manifold).

This is a method that can be adapted to work on anything:

You need to create a gradient mask for your material that will "stay static" despite the object movement (you do that by using object mapping and adding/subtracting the object's position from it):

link to full image

Great thing about a mask is that it can be faded on the interface.
The Add node is just driven by the text position.x.
The mask is used to mix Transparent and any other shader.
If you need to place such Text somewhere you need to parent it to something first and move it through parent.

This is the result:

And the blend file:


How to pass additional property value with operator_menu_enum on execute?

Not Currently.

(2.79. sept 12-2017) operator_menu_enum(....) doesn't return the operator reference, so assigning something to layout.operator_menu_enum(....).some_property='something' will fail.

would be super handy if it did.


The Unified Brush settings have been moved from the menu to "Properties - Tool Settings".

You find them on the right side of the Radius and Strength settings, represented by a globe icon.

To access them more quickly, you can always add them to your Quick Favorites Menu (RMB - "Add to Quick Favorites Menu").


Texture paint paints random parts of model

If your UV Mapping is alright and this is still happening, make sure that the Occlude brush option is checked/enabled.


Your UV map has been scaled and/or moved from it's original location.

You'll have to fix this manually, selecting all, scaling up a bit (1.3) for the most part. Then you have to fix each island 1 by 1, scaling and moving them to fit the image texture.

To easily select an island, put your cursor on it and press L


Setting the right context in a python script?

As well as making the text object the context object you need to reselect it. (You did call deselect after all). An object can be context.active_object while not context.active_object.select  Some operators that work on all objects selected may only go thru the context.selected_objects list.

bpy.context.scene.objects.active = myobject
myobject.select = True
status = bpy.context.object.type
print(" bpy.context.object.type is: ", status)
status = bpy.ops.object.convert(target='MESH')          # fatal error

print("status after converting to a mesh is: ", status)


Blender is only using one tile and only on CPU

Switch on GPU compute in the task manager. That will show you something else ;-) GPU compute is different than realtime rendering to task manager. It shows 97% to me while GPU 3D is barely working.

Go to GPU click on one of the sub diagrams like copy and select compute_0 or 1 or whatever yours is called.

be aware that you need something like 1080 before it is faster than a modern day cpu with 4-8 cores.


Faces won't appear regardless of it being in wireframe or solid

In the Properties > Object menu > Display > Maximum Draw Type, switch from Wire to Solid


Exporting the animation of an object to a text file with custom code

I am trying to do something similar, and the trick for me was to use this to advance the playhead...

bpy.context.scene.frame_set(i)

The below gave me the current frame over and over. Even though it did advance the animation in the viewport...

bpy.data.scenes["Scene"].frame_current = i


How to fix python operators disappearing in new Blender files?

Turns out the issue comes from the userprefs file. It can be found next to your add-ons. On Windows, it's in C:\Users\YOUR_USERNAME\AppData\Roaming\Blender Foundation\Blender\VERSION_NUMBER\config.

Just delete userpref.blend and the issue should be fixed. This will not affect your keymaps and your startup scene, which are stored in another file. But it will reset the User Preferences to default settings.


Here is a link to a youtube video that does what you are wanting in some aspects, and it worked for me, https://www.youtube.com/watch?v=uRAfhJQFjRo&list=PL2DcM9Gsef16GjHLpFtYS1A0iBlsCoq6G ,  i Would reccomend starting at 2:12, thats when he uses the curve


Adding Custom Menu "Run Script" Button Causes Duplicate

Execute Reload Scripts F8 first before re-running the script.

I think a custom menu function is supposed to run within an addon, where register() and unregister() are run in pairs. Each script execution yields different instance of each functions, even if their name doesn't change across each execution. So unless there is a way to check existing draw functions within a class by name (which I haven't found yet), Reload Scripts or restarting Blender is the way to go.


The terminal has autocompletion with the actual properties of objects when you press tab, which works very well to explore the available syntax in the API.

There's no real way to access bpy from IDEs such as VSCode. But you can get pretty close with fake-bpy-module, which emulates many of the properties and will give you an advantage as a developer with a good integration of many other python packages.


Making a realistic infinite mirror tunnel

To make more bounces:

Go to render panel and in Light paths section increase Bounces on Min, Max and Glossy

To get rid of Darkness:

Go to materials and change both mirrors color to pure white:


Since curves can't be rigged, the only way I see it is using Hooks.

Enter Edit Mode and hook each separate curve vertex you wish to move independently to a new object using the option Hook to new Object.

Then go into the second curve and repeat the process. For vertex you want to move together first select a existing empty you wish to hook it to, then enter Edit Mode, select said vertex and use the other option Hook to selected object.

If two vertex from different curves are hooked to the same empty they will move together. If you still want some independence occasionally you can always hook to separate empties, the parent two empties to a third "controller" empty that moves both simultaneously.


Sorry, we can't go on discussing this in comments...

As said if you need to append/link "all" of a .blend file, it's better to append/link an entire scene: here is an example for linking.

As you see, I linked a scene from another file, then from the linked scene in my new file, I made links for all objects in my "local" scene.

To be able to transform one of them (in object mode), add modifiers, etc, I had to make a proxy.

Another example shows how linking a single mesh (not even an object) also links its material:

Appending/linking just a mesh, you can't see it, until is assigned to an object, but it's there (technically is called "orphan data"), and its material also (also linked).


Imported animation from mixamo to unity causes left hand to act unusual

once I found one solution, when exporting an animation at the beginning should be T pose, 0 frame T pose, 1 frame our animation, 2 or 3 frame our animation, in Unity we start cropping the animation with 2 or 3 frames


Get or display normal vector / coordinates of selected vertex?

Unfortunately i dont know a way to display the normal vector in the viewport.
Here are two options to get the normal  vector. I'd say it depends on what you want to do with the normal vector after getting it...

Option 1 Python:

import bpy

mesh = bpy.context.object.data

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

selected_verts = [v for v in mesh.vertices if v.select]

for v in selected_verts:
    print(f"Vertex Normal: {v.normal}")

Option 2 Add-On Animation Nodes:

I filtered all the normals with a vertex group I did manually.

additional: here are some answers for modifiing the ui to display normal-information:
Display values of a normal of a selected face


Now you've got all sorts of mirrors in the top panel

upd: I was a little bit too hurry and didn't check if mirror options for mesh edit mode are the same for armature edit mode, but x-axis mirror is still there for armature. And it works as a mirror i.e. I move left wrist and right wrist is moved symmetrically. I've added another pic. You should have the same panel in armature edit mode unless you have manually edited your default UI.