text:
DupliFrames creating too few objects
I've followed this tutorial:
http://wiki.blender.org/index.php/Doc:2.6/Manual/Modeling/Objects/Duplication/DupliFrames
I've made a Curve > Path. I've then set frames under Path animation to 600 frames and enabled Follow. I've enabled duplication for the cube to frames and unchecked speed. Then I've parented my cube to the path.
On my path there should now be 600 copies of my cube/object. But there are only about a 100. Why is this happening? How can I fix this?
My blend file:
http://www.pasteall.org/blend/26936

Ohh, found out.
Under the "Duplication"->"Frame" option in my object settings, I had "End" set to 100. Size it up and more objects were created.
EDIT:
Apparently: If you set "End" to let's say 800, then 800 objects will be created no matter how many frames you've set up under "Path animation". So if under "Path animation"(in your curve settings) you've set "frames" to 600, Blender will still create 800 objects. The 200 extra objects will be put in the same place as the 600-th - in other words, at the last position.


text:
Restore Graph Editor F-Curve Filter Location
Moving to 2.8 I realized that the search bar for F-curve filter is now located inside an extra menu as shown below:

This is very counter-productive as animating requires you to filter out many curves several times. This makes it extra painful to change the filter. Is there a way to restore it's position to be outside on the bottom bar like in 2.78?

The filter entry is also always available at the top of the channel list in any of the animation editors.
This is the same filter property that is shown in the popup menu.

OOF I didnt see it. That's a bit awkward of a location but miles better. Thanks.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

sort: votes


text:
Why does this happen when using subdivision modifier?
As you can see on the picture the mesh is pinched on the right side, I cannot understand why, can anybody help?

Recalculate normals

Most likely double vertices/faces. Go to Edit mode, hit "A" to select everything, then hit "W" and select "Remove Double Vertices" in the menu.

If you put the problematic mesh into a blend file, you an upload it at https://blend-exchange.giantcowfilms.com/ and get better answers.

This can have multiple reasons, mean crease has this effect but it's not purple on the edge so I exclude it. "doubles" is another possibility, the most likely one. Doubles is what we blenderers refer to when multiple vertices or points are on the same location.
This can be caused by loop cuts that you have placed on other places and not noticed how it went around there too or when you extruded, but then rigth clicked it and forgot about it.
Luckily there is an easy fix for that.
It seems like you are using blender 2.8. I am not sure how your settings are but if you press space bar you can search for "merge by distance" in older blender versions this was known as "remove doubles". It will, what the name suggests, merge vertecies by their distance to each other. But if you do so make sure you don't accedentally get unwanted triangles, which can happen when it was a loop cut that went around the without you noticing.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Export a Blender 2.8 scene to the Vive
How can I most easily export a Blender 2.8 scene to a Vive VR device? (I'm not talking about using Blender while wearing a headset; I mean just exporting a scene to be handed-off to a different PC with a headset.)

There exists a work in progress plugin thats claims to be able to view blend files in VR: https://www.youtube.com/watch?v=9qAC8FTrU5s
The HTC Vive Virtual Reality Headset is basically a Display. It has no software to show things by itself. So equally to your computer screen it can't open Files.
First option would bee to find some software that is able to display 3D objects on your VR-Headset. You can import .obj/.mtl files to tiltrbush with some fiddling - maybe something more general exists. And after that you need to figure out the details how to export to that specific software.
Option two would be to create software that can render to your VR-Headset. That is easiest done with a Game engine like godotengine (open source), Unity3d or Unreal (proprietary with free entry level licenses).
I Would personally recommend Unity3d as it is beginner friendly and has nice Blender integration.
Making things look god in a game engine is some one topic of study though.

Agreed that the Vive is not a standalone device. What I am asking for is software that runs on a PC that will let me view a Blender file on a Vive headset. Maybe that's Blender… but I was hoping for something simpler.

I youst stumbled upon this. Maybe it helps you :) https://www.youtube.com/watch?v=9qAC8FTrU5s

I suspect this may do what I want:
https://store.steampowered.com/app/891420/VR_Model_Viewer/

step1: download UnrealEngine4 from epic
step2: export fbx. (could have a bit of a learning curve depending on complexity and you'll likely have to scale on import)
step3: start a new vr project and load the motioncontrollermap.
step4: import to unreal (if you can't see it it could be really large or really small)
step5: drag on to scene
step6: hit play and you can teleport around the scene.
notes:
 if uvmapping is not correct go into the materials. add the texcoord node. set the index to the appropriate uv index.
if lighting is weird open the model in unreal. there are build settings under the details tab. here there is a generate lightmap checkbox you may not need this. under general settings there is lightmap coordinate index you may need to change this if you unchecked generate lightmap


text:
Place collection instances using an array-type UI?
Collection instances don't support modifiers, so laying out a bunch of them with an "Array" modifier doesn't seem to be possible.
But I love the ease and control Arrays give me. Is there any way to lay out collection instances that is like the Array UI (be able to specify a number of instances, their relative distance apart, etc.) rather than just Duplicating over-and-over again?

https://blender.stackexchange.com/questions/68923

There is also commercial addon Distribute Objects Full disclaimer I am the author


text:
Changing colors of atoms and bonds imported from PDB files
I am attempting to model some small molecules in blender. I have successfully imported the structure of these molecules, and while I can move, rotate, and change the size of the molecules without issue, I have found that attempting to color the components (atoms, bonds) of these molecules has not worked using the node editor. I created a cube in blender and proceeded to change its color without issue, so I think the node editor itself is fine. If anyone could help instruct me on how to change the colors of the imported pdb object, I would be very grateful.

please add screnshots or upload the file somewhere :)
Do your models have individual materials?

Make sure the render engine is not workbench and that "use nodes" is checked!


text:
How to smooth adjacent faces
I'm a first time blender user trying to make an engagement ring from scratch.
While making the ring I did a boolean cut, along the inside of the ring, which I think added some hard edges into my ring.
In this picture you can see how the faces, around the sides, are triangulated.

How can I smooth these adjacent faces out so they don't have such noticeable edges between each other?
Things I have tried:

Subdivision surface

The edges are too noticeable for what I would like, so I need to fix the mesh more beforehand

Laplacian smooth modifier

I tried setting the following vertex group

Then doing a laplacian smooth in the Y axis on it.
There seems to be a little bit of improvement but I haven't been able get the harsh edges to go away

Eye balling it

This seemed to be a bit fruitful but it will take me forever to edit all of the vertices

Have you tried using Right Click > Shade Smooth?

Although that does help a little bit, it doesn't help me with my underlying  mesh issues


text:
Area Light vs. Emissive Polygon
Both an area light and an emissive polygon can be used to create lights. What is the difference between the two?

Matt's answer covers the theory of it, but to provide a visual comparison:

Area lamp, 100 samples, 11.08 seconds. MIS (Multiple Importance Sample) on

Plane, 100 samples, 12.10 seconds. MIS on
So the plane is slightly slower, but it has slightly less noise as well.
But now lets try with three lamps instead of only one:

Area lamps, 100 samples, 11.31 seconds, MIS off for all lamps (turning MIS on gave the same result with an extra 2 seconds on the render time)

Planes, 100 samples, 12.83 seconds, MIS on for all planes

Planes, 150 samples, 11.19 seconds, MIS off for all planes

Planes, 100 samples, 12.46 seconds, MIS on for two smaller planes, off for large one
So it appears that when you have multiple lights and manage which emission planes have MIS turned on, the result can me similar to area lamps, although still a bit slower and slightly more noisy. It's the other way around when you have only one emission plane, but the difference is subtle. MIS for area lamps doesn't seem to make any difference to the diffuse, except increase the render time a bit.
This only compares noise level of shadows and diffuse shading, for Glossy shaders you usually want to keep MIS on for the lamps you wish to create specular highlights. (See page 5 of this paper):

(From the above mentioned paper)
Now for arguement's sake, lets take a look at a point lamp vs a spherical mesh:

Point Lamp, 100 samples, 12.30 seconds, MIS on

Sphere, 100 samples, 13.86 seconds, MIS on
The sphere is clearly the loser here, very noisy and slightly slower. Turning MIS off makes it much worse.
To conclude - it all depends on your situation. Mesh lights are more flexible and probably more accurate, but require some understanding of importance sampling and playing around.
All these tests were done with the Path Tracing integrator. Using the Branched Path Tracing integrator, Area and Point lamp renders were much cleaner, and mesh lamp renders were much noisier (for various samples but the same render time).
Download this .blend file if you'd like to play with it.

how are mesh lights more accurate?

@Vader you can texture mesh lamps, and real light sources have real geometry, and not under any circumstance produce 100% constant quantities of light from every square unit of measure. again my example is a light bulb... you cant really render a light-bulb realistically with a lamp, you need an emission material on the filament of the bulb... ie: accurate  = realistic

Lamps have no geometry. which means that they cannot be transformed, have no solidity, and cannot be rendered... this obviously would mean that a lamp is less resource intensive than a polygon, which can be useful when lighting something that doesn't require the resource hit.
Take for example, a distant building with a lit window doesn't need the bells and whistles of a geometric light, it just needs the light. An urban scene might be a good example of this. With many windows that may not need geometric lights to achieve the needed effect, it would be best to not simulate the shape and size of the actual light source.
In contrast, a scene with say, a light-bulb in it, would need a polygon light. For one because the light source would need to be rendered, and not just the light it produces, and two because lights don't come from a single point in space...
(I'm not sure but I don't think they can interact with physics simulations either, as they have no attributes such as mass, volume, etc...)
Long story short
use a lamp when you want to light your scene
use a polygon when you want a light IN your scene
EDIT #2: Matts answer appears to be more informed, i would go with his answer....

btw... by my experience, lamps dont really work well in cycles... there may be a workaround for it but i never use lamps for that reason

What about them doesn't work well? I use them all the time just fine

I never see any difference (in term of render quality) between an emission plane and an area lamp with same dimensions. Why do you say lamps doesn't work well??

Lamps CAN be transformed, just not in the same ways as a mesh. An area lamp can be given any rectangular dimensions you like, and a so-called point lamp can be given any spherical dimensions you like.

@Matt see i didnt know that =)

@Polosson Quality? not much of a difference... but they never seem to cast enough light for me.. matts answer/comment probably explains just that

@GregZaal They always seem to be unable to produce the appropriate amount of light without using obscene values... again, matts answer/comment most likly explains that problem

iirc, they use physical values (watts maybe?), so they usually need big values compared to BI. I assume mesh lights can use smaller values because the size of the surface emitting the light influences how much light is emitted, and also so that when white is emitted with an intensity of 0.8, the brightness of those pixels on the emitter are exactly 0.8.

@GregZaal sounds about right... (ps: the SI unit for light is the "candela", watts describe electrical flow)

"lamps produce light from an infinitely finite point in space, as contrast to being produced from quantifiable geometry" is incorrect - lamps have a Size property, the radius (or height/width in the case of area lamps) in which the light is sampled. Only if the size is 0 is it like an infinitely small point.

In Cycles, the differences are negligible.
Cycles determines the softness of a shadow by shooting a ray in a random direction and seeing if it hits a light source, and which part.

For an emissive polygon (mesh light), a hit "counts" if it intersects the mesh.
For an area lamp, a hit "counts" if it passes through the rectangular area around the lamp's center. This area is configurable, in Blender.
Incidentally, point lamps work the same way, except that the area around the lamp's center is spherical. This area is also configurable in Blender (it's the size setting, IIRC).

As the other answer points out, polygons require resources. IMO, those resources are usually negligible. Most lights are small and require few polygons, in which case it's hardly even worth thinking about.
If your light source requires lots of polygons in a complex shape, then a conventional lamp probably won't do the job anyway. Furthermore, if you want to see the light source without using a mesh light, the model is going to negate the benefit of not using a mesh light.
The only case I can think of where that might matter is if you have LOTS of lights. If each of those lights has 6 polygons, that might add up to a lot, which you might be able to avoid by using a conventional lamp.
That being said, in BI the differences are astronomical.
You can accomplish a similar effect (as in Cycles) with an emissive material on a mesh and using global illumination, but BI makes that extremely expensive to render. Area lamps (in BI) are orders of magnitude faster than global illumination, and probably just as accurate (if ray-traced).
Hope that helps!

I think this answer is incorrect, as Cycles doesn't just shoot rays in random directions, it uses shadow rays as optimization, to sample the lights directly - that's why you can separate direct lighting from the indirect one in the render passes.

Another one is that you can not use textures with lamps at all, because you can not unwrap them. It become main problem in my project.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Why does Subdivide Smooth look different when compared to the Subsurf modifier?
When I choose the Subdivide Smooth option in edit mode it looks different from the Subdivision Modifier. Not only is it smaller but also the shape of the one from edit mode seems distorted.

When using subdivision in edit mode, the original vertices stay at the exact same place. The rest of the mesh swells up around it.
When using the modifier, vertices and edges are more like control points of a nurbs curve. The image below illustrates it. Note that concave shapes (the thinner section of the model below) will swell outwards.

It's not possible to make a truly spherical shape when using subsurf, but the more verts you have in the original mesh, the less noticeable the irregularities will be and the more spherical it will look. You can also use a Shinkwrap modifier to "project" your mesh onto a real sphere, or a Cast modifier or the To Sphere (Alt+Shift+S) operator to warp it into shape. I often do this when wanting a mesh that can be subdivided but still have a nice equator.

or To Sphere (Alt Shift S)

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Export separate objects as separate .obj
I want to export a selection of objects as .obj. I want each object as its own .obj. Is there a way to export individual .obj for each object selected? There does not seem to be an python reference for exporting, nor is a command echoed when I export a single .obj


text:
How to make an object completely transparent?
I want an object to not be visible at all in a render. I am trying to contain some particles in a simulation and I need them to not get out of the enclosure so I want a transparent object there (when I render) to prevent them from escaping.

The following material setup should give you a completely Transparent material that cannot be affected by light etc.

You can add a material and set the specularity and alpha to 0 and disable shadows but the easiest way is to not render the object at all. Open the Outliner and untick the camera beside the object.

I don't use Cycles much but I believe you can use a Transparent BSDF to get a transparent material.


text:
How to render separate monochrome layers?
I have this logo:

.blend file: https://www.dropbox.com/s/1bib5ds8oufc9s9/logo.blend
The thing is I'm trying to make it lasercut. My lasercutter supports two colours - that is black and white (monochrome).
So, with the above logo I made it monochrome in Photoshop:

As you can see, no matter how I try, the logo will not actually work (the text is not readable)
But, this can be repaired by rendering each part of the logo black or white. For example, the background splodge could be in places white, and where there are the holes, black.
Then each of the circles could have an outline of black and the text could appear white, but to create the tilt effect, the sides of the text could be in black.
As you can see, I am trying to make the text visible by making certain parts black and some white. I could change the material colours in Blender, or something, but then it will do a gradient, which is the issue.
Thank you for reading my essay! ;) And I look forward to hearing from answers

The frame used for the logo: 627

You could use Shadeless materials and disable anti-aliasing.

Would you confirm which is the one you want?

Actually, monochrome effect can be easily done by ColorRamp node:

To your question:
As you mentioned, it seems that the only problem now is the tilt/side area on the text. I suggest to consider taking the advantage of Material Index here:

To do so:

First, convert the Text objects to mesh (Shortcut is AltC. You may want to remove doubles and correct normal directions after that);
Select all sided faces, then assign a new material to the selection (even can be the exact duplication as the original one, if necessary);
Set a different Pass Index value in setting of this material;
Toggle Material Index passes in Render Layer setting for outputting. You can then use it to separate the tilt/side area and have it controlled separately.

If you don't want to do it for compositing use, using plain materials with Shadelss toggled can also be an easier way:

UPDATE:
Inspired by gandalf3's cool answer, here is the option for outlined result, also with more control by ColorRamp.

You may also consider to generate outlines by FreeStyle, though relatively inefficient and less flexible in this case.

in OPs question you can see that the attached B&W is not the desired output because you cannot read all the word. I believe you replicated this result.

@Vader Oh, How can it be... Surprised that I missed points there. I'll try reediting it asap. Thx.

Answer is updated.

@LeonCheung Like this: https://i.sstatic.net/Mvp54.png gandalf3 did it for me, but now I am still unsure how to do it... Maybe his comment above is useful.

Whatever is in black is engraved.

Whatever is in white is not engraved.

You see, I'd like the text to stick out, so it is in white

What gandalf3 suggests is the similar thing, if you want to separate the monochrome layers, you should separate materials. And, for compositing, you should also separate by Material Index to get specific pass as mask. Here is the Shadeless way, sample file here if needed.

If you want to invert the mask color as shown in my image, then just set the new material index for the material in first slot, and leave the second one as 0. Like this. However, it's just the mask used for compositing, not actually the color used as final result.

OMG, thank you for all your time writing this answer and laboriously putting links in your comments! Thank you again! Very interesting...

This answer certainly does deserve my upvote!

My answer is pretty much the same as Leon Cheung's, but I used different color ramp nodes for both layers and added separate outlines using the Dilate/Erode node:

Example blendfile

Deserves my upvote, but Leon Cheung's was very detailed. Thank you for your time and thank you for helping the Blender community out there!

And also very useful to have text for every node to explain. How did you do that? Thanks ;)

@TimTimmy Add frame nodes (add node > Layout > Frame). I edited the Label of the node for the text. You can also parent nodes to frame nodes (Ctrl+P).

Great for the prompt reply. Thank you for keeping this Blender community alive!


text:
How to use camera positioning like in old versions?
This might be a naive question, however, in the old days of blender, there used to be key bindings for camera adjustments. Those allowed to enter camera view mode and then use the "fly camera" mode.
In the current version of blender (2.79) it is possible to enter camera view Numpad 0, then activate fly mode Shift+F, and then use the W, S, A and D keys to navigate.
Question is, in camera mode, can the W and S keys be remapped to mouse scroll?

@cegaton 2.79. I found the new keys in CTRL+F mode are W,S,A,D. I'll update question on how to bind the keys.


text:
Is it possible to make curves more visible in the 3D view?
I'm trying to edit a camera path and a camera follow path, but I'm finding it quite hard to see the curves. Is there a way to change their color or make them thicker? I've also seen screenshots that show frame numbers along the curves—how do I enable that?

You can temporarily apply bevel on those curves to make them thick; they will become renderable but for viewport testing it should work.

Just as Mr Zak suggested, you can give the curve in question a bevel object. You can adjust the thickness of the curve by scaling it.
Just switch off render for both of them and it shouldn't affect your scene.


text:
How to keyframe constraints on bones?
I get the error

line 60, in return_rotation
  TypeError: bpy.struct.keyframe_insert()
  property "constraints["FollowPath"].offset_factor" not found

I really dont get what should be the problem and was hoping you guys could help out.
This is the code:
import bpy
import re
import os
import math
import linecache

cube = bpy.data.objects['Cube'] # defining the cube (TestObject)

armature = bpy.data.objects['Armature'] # Defining the armature
bpy.context.scene.objects.active = armature # Selecting the armature
bpy.ops.object.mode_set(mode='POSE') # Setting the mode to POSE
footBone = armature.pose.bones['foot'] # Defining the footBone (the big one)
toesBone = armature.pose.bones['toes'] # Defining the toesBone (the small one)
footBone.rotation_mode = 'XYZ' # Set rotation mode to Euler XYZ, easier to understand
toesBone.rotation_mode = 'XYZ' # Set rotation mode to Euler XYZ, easier to understand

bpy.ops.object.mode_set(mode='OBJECT')
# insert a keyframe

def file_len(fname): # A function which returns the number of lines in a file.
    with open(fname) as f:
        for i, l in enumerate(f):
            pass
    return i + 1

numberOfLines = file_len('somestuff\Python Test/usedata.csv')#Getting number of lines - 10 to be safe, but safe limit will be removed later.
steps = 1/numberOfLines # How much, is needed to be increased in the followPath modifier, given that only one cycle is needed.
cube.constraints['Follow Path'].offset_factor = 0 #Setting offset to 0, Todo find the right offset. Find how much a cycle is.

def return_rotation(start_value, end_value):
    steps = 1 / (end_value-start_value) # this ensures a complete cycle when all the lines are read
    counter = 0 # This is the frameNumber
    i = start_value # The line number from which to start reading from
    while i < end_value: #end_value is the line to be read to
        line = linecache.getline('somestuff\Python Test/usedata.csv', i).split(',') # fetching a single line

        # setting rotation angles. It only accepts radians, hence the conversion.
        angleX = math.radians(float(line[0]))
        angleY = math.radians(float(line[1]))
        angleZ = math.radians(float(line[2]))
        print(angleX)

        # TODO: check if toesBone is under the floor

        #----------------FootBone-------------------------------------------------------------------------------------------------#
        # Rotate Bones
        footBone.rotation_euler.rotate_axis('X', angleX)
        footBone.rotation_euler.rotate_axis('Y', angleY)
        footBone.rotation_euler.rotate_axis('Z', angleZ)

        # keyframe everything
        footBone.keyframe_insert(data_path="rotation_euler" ,frame = counter) #Insert rotation keyframe
        footBone.constraints["Follow Path"].offset_factor += steps # increasing offset factor

The problem
        footBone.keyframe_insert(data_path= 'constraints["Follow Path"].offset_factor', frame = counter) # Keyframing the offset factor.

End of problem
        # Checking if the offset_factor is above 1 or below zero, and correts this
        if(footBone.constraints['Follow Path'].offset_factor >= 1 or footBone.constraints['Follow Path'].offset_factor < 0):
            footBone.constraints['Follow Path'].offset_factor = 0

        #----------------cube-----------------------------------------------------------------------------------------------------#
        cube.rotation_mode = 'XYZ'

        cube.rotation_euler[0] += angleX
        cube.rotation_euler[1] += angleY
        cube.rotation_euler[2] += angleZ
        print(float(line[0]))
        print(cube.rotation_euler[0])

        cube.keyframe_insert(data_path='rotation_euler',frame = counter)
        cube.constraints["Follow Path"].offset_factor += steps #Stepping through cycle
        cube.keyframe_insert(data_path= 'constraints["Follow Path"].offset_factor', frame=counter) # Keyframing the offset factor.

        #Checking if the follow path cycle is above one. Might be removed, if not using offset_factor from 0-1 but instead -99999 - 99999
        if(cube.constraints['Follow Path'].offset_factor >= 1 or cube.constraints['Follow Path'].offset_factor < 0):
            cube.constraints['Follow Path'].offset_factor = 0

        i += 1
        counter += 1
    linecache.clearcache()

return_rotation(1,280)

If I add an armature manually, add a Follow Path constraint in Pose mode, enable Fixed Position and keyframe the offset slider, the data_path of the created f-curve is:
'pose.bones["Bone"].constraints["Follow Path"].offset_factor'

So it's referenced by the "owning" object, and the data path fully qualifies the pose bone and its constraint.

I have a problem when I want to enable this script, someone can to help me? Thank you https://i.sstatic.net/YKqkU.png

I can't see any relation to the post. It looks like an addon called KeyFrameConstraints is throwing an error because it tries to access data during initialization, when it is not allowed to read from bpy.data and bpy.context. This has to be resolved by the plugin author.


text:
Python: Access mesh selection history data
I want to write an addon that can combine two selections with a logical AND.
For example, the user use via normal gui
bpy.ops.mesh.select_similar(type='LENGTH')

and
bpy.ops.mesh.select_similar(type='DIR').

Then he calls the addon, the addon gets the current selection, the selection made before, combine them and write the selection back.
My problem is I don't know how I can access these history data via python nor if it's possible. This would be my favorite way of workflow for the addon.
I can extend the addon with a call to store the actual selection, so the user make a similar select, call the addon to store the current selection, make another similar select and call the addon to combine the both selections and write it back.
For this way I need to store a customized boolean at the bmesh faces/edges/vertices data, but I can't figure it out how. If I try to store custom data I run in these error:

bm.faces[0]['and_select'] = False
  Traceback (most recent call last):
    File "", line 1, in
  AttributeError: BMElem[key]: invalid key, must be a BMLayerItem

An example how this must be done would help.

I don't see a purpose for your intended addon. If you use select similar in the UI, the current selection will be extended. There's really no need to "combine" selections by script.

I don´t want to extend the selection, i want the intersection of two different selections. Such as do a binary AND operation.

I see, check out my addon border deselect outer then. I recommend pink vertex's solution however for your particular problem.

Don't use the string key. Instead use a direct reference for the layer:
layer = bm.faces.layers.int.new('layer_name')
bm.faces[0][layer] = 0

There is no boolean layer available.
The selection history works only for single verts/edges/faces.
You can use the bmesh operators similar_faces, similar_edges, similar_verts which will return the selection.
Links to the source: bmo_similar.c, bmesh_operators.h


text:
Group input in panel with python
How can I add an UI widget for a group input?
Example: Physics > Smoke > Smoke Groups

How can I create such a field in a panel with a python script?

possible duplicate of Object selection box in addon and Create a filtered UI field


text:
Converting global object location to local location in Python
I'm trying to use ray_cast() in Blender Python and I found that you need the local location of every object instead of the global location.
I started searching on the web and people said you have to do it this way:
localPos = object.matrix_world_inverted() * target.location

But this gives me the same coordinates as the global location...

I'll try with the '.'

Converting global coordinates of object B to local coordinates of object A
The global coordinate of object A (obj_a)
global_coord = obj_a.matrix_world.translation

To convert from a global coordinate to the local space of object A
local_coord = obj_a.matrix_world.inverted() * global_coord

Using the global coordinate of object A in the local coordinate equation above yeilds Matrix.Identity().translation ,  since multiplying a matrix by its inverse results in the identity matrix, which has a translation component of (0, 9, 0) aka the origin of our local coordinate system.
Putting it altogether in a test script.  Object A is represented by the context object   All #other selected objects are  iterated as object B.
import bpy
# context for test code
from bpy import context

selected_obs = context.selected_objects
ob_a = context.object
#selected_obs.remove(ob_a) # will be at local origin
mwi = ob_a.matrix_world.inverted()
print("local coordinates of", ob_a.name)
for ob_b in selected_obs:
    local_pos = mwi * ob_b.matrix_world.translation
    print(ob_b.name, local_pos)

Result of running on Default Scene, with cube then camera as active object
local coordinates of Cube
Cube <Vector (0.0000, 0.0000, 0.0000)>
Lamp <Vector (4.0762, 1.0055, 5.9039)>
Camera <Vector (7.4811, -6.5076, 5.3437)>

local coordinates of Camera
Cube <Vector (-0.3382, -0.3767, -11.2523)>
Lamp <Vector (3.1254, 3.9298, -6.5683)>
Camera <Vector (0.0000, 0.0000, -0.0000)>

Global locs from console
>>> for o in C.scene.objects:
...     o.name, o.matrix_world.translation
...
('Cube', Vector((0.0, 0.0, 0.0)))
('Lamp', Vector((4.076245307922363, 1.0054539442062378, 5.903861999511719)))
('Camera', Vector((7.481131553649902, -6.5076398849487305, 5.34366512298584)))

>>>

I'd like to mention here that the matrix multiplication operator in Blender 2.8 is now @ instead of *

If you could add that comment to all answers pre 2.8 using * instead of @ that would be great.

If you have applied transformations to an object, it's matrix_world is Matrix(((1.0, 0.0, 0.0, 0.0),         (0.0, 1.0, 0.0, 0.0),         (0.0, 0.0, 1.0, 0.0),         (0.0, 0.0, 0.0, 1.0))) which is useless (2.8x)

Matrix.Identity(4).translation

Can I do something similar with global rotation and local rotation?


text:
bpy.ops.object.select_inverse() removed from Python API?
A script I wrote, which used to work (I think Blender 2.6), no longer seems to work. I think the select_inverse() operator has been removed?!
I made the mistake of removing the old version of Blender before installing 2.7, so I can't look back at old module.
Wow, go away for year and try to come back, everything is changed and old Blender forums are gone!

select_inverse() was available up to 2.61 (API docs), it's missing in docs from 2.62 on.
The following operator inverts the current object selection and should be equivalent:
bpy.ops.object.select_all(action='INVERT')

You can get every past release here:
http://download.blender.org/release/
Blender.org forums were meant for developers, and the user community was mostly active on http://blenderartists.org/ anyway. Consider BA.org the successor to the official forums.

Thanx CoDEmanX I remember you from old forum, you continue to be most helpful !

Next challenge is: bpy.data.meshes[].faces already answered in http://blender.stackexchange.com/questions/5932/export-api-mesh-object-has-no-attribute-faces   looking at Blender change logs I see "faces" mentioned in http://www.blender.org/api/blender_python_api_2_71_release/change_log.html but not select_inverse and did not see anything in /Extensions:2.6/Py/API_Changes wondering if there is a consolidated change log somewhere for all versions

The mesh system changed in 2.63 to allow for Ngons and was auto-added to the change log. The API changes page is something I created and isn't really maintained by anyone. Chances are that neither of the resources point out API changes, such as the removal of an operator. You need to figure that out yourself and maybe subscribe to the developers mailing list.


text:
Blender 3D models give incorrect dimensions
When I model something in blender to be 3d-printed, I always get wrong dimensions in stl file, even though I've set scene units to metric, scale to 1 and in blender viewport, it shows the correct dimmensions.

But when I convert and export the model to an stl file, dimensions get converted to millimeters, no matter the settings or model dimensions in blender.

For exporting blender model to stl files, I am using a blender addon named '3D Print Toolbox'. At first, i thought I need to change some setting in the addon, but couldn't find anything to play around with.

My real problem/question is - Is there something that I am missing or doing wrong?
Perhaps some setting or step that I am overlooking before exporting.
PS: As a workaround, each time, I have to scale up the exported stl file model.

I don't use tools like this, but do you apply the scale of the object after scaling or scale in edit mode? Judging by how blender works, this might be necessary.

I've tried both the methods of scaling, but the result's the same.


text:
Line Conversions and Bsurfaces with Blender 2.69

My problem is converting a path into a bezier, and a bezier back to a
Grease Pencil again (or path to Grease Pencil),
since I need the handle assistance in Edit mode for those to get my shapes just right, and free handing with Grease
Pencil isn't accurate enough for curves to start.
From there, my second problem is turning at least 2 Grease Pencil Lines
into the opposite edges of a corelative surface, using BSurfaces.
I can't get Bsurfaces to run.

What state do 2 opposite beziers need to be in?
Do you have to start from grease pencil only?
How do I get Bsurfaces to show me the Add Surface
button, to draw it's extrapolation for me?
I've found
the buttons, keys and mouse click too confusing here.

I'm not sure about converting back and forth between a grease pencil stroke and a curve, but you can create a surface from grease pencil strokes like this:

Enable Bsurfaces in User preferences > Addons

Create an empty mesh by adding a primitive and deleting all the geometry from edit mode > Delete:

Add a new grease pencil layer in the 3D view > Properties region (N) and select Surface:

Still in edit mode, (editing the empty object) draw grease pencil strokes on the target object with D+LMB:

In the Tool shelf (N in the 3D view), press Add surface in the Bsurfaces panel:


text:
How can I return to the 3D view after rendering?
In blender, after I press F12 to render, the view changes. Is there a button or key that I can press to go back to the 3d view?

Rendering does not change the model at all, rendering is merely refers to generating a 2D image of the model. You can return to the 3D view by pressing Escape.

Pressing ESC will do the trick.

Just hit F11 on your keyboard. When it is rendered, hit F11 to go back to your 3D animating workspace.

A completed render doesn't hog the memory on your computer anymore. To get back to the 3D View from the Image Editor window, either press Esc, F11, or just change the view.

I'm surprised nobody else answered it using the most simple way of changing viewport windows. :P

I've found that you can either press ESC (always takes you to 3d view or F11 (toggles render view). #blender2-77

A note for macOS users, F11 toggles view desktop, so just escape works here.

Pressing Esc should do this by default and in addition to WChargin's answer, another way about this is to go to the Render context in the Properties panel and under Render, change Display to New Window. This will have your renders appear in a separate window, one that you can close without exiting Blender or switching views.

"without ... switching views" yeah, but you have to switch windows. I find F11 quicker than Alt-Tab, and it doesn't interfere with my workflow as much: if I switch from Blender to the Render Result and then to Chrome, a single Alt-Tab will take me back to the Render Result, and then I need two to get back to Blender... this is stuff I don't want to have to think about! xD

@WChargin Who said anything about shortcuts ;). For a new user learning Blender, I would like to think having a separate window (that you can close without the risk of losing everything) can be useful if not less confusing than having your viewport switch to an image.

Shift + F5 can be used to quickly jump to the 3D view from any editor.

I assume you're asking about returning to the model view after seeing a render.
Usually, pressing Esc will do the trick.
If this doesn't work, try F11, or Window > Show/Hide Render View.
If this still doesn't work, you can do the following:

Save the file.
Open the default file (Ctrl+N for a new file).
Open the old file without the Load UI setting checked in the Open Blender File window. This will reload the file with the default user interface:


text:
Using groups in other files
I've modeled a clock and saved it as clock using blender 2.56. I've also modeled a room using blender 2.56 and saved it as room. I've made the clock a group and named this group clock. How do I open up my room file and then open up the clock group in the room
file or scene?

If you go to File > Append or press ShiftF1 , you can navigate to the blend file, open the Group folder and import the group.

Appending the group will create a unique copy of it in the new file. If you want to keep working on the group in the original file and have any changes there be updated in the new file, you should Link instead. Go to File > Link or use CtrlAltO. Note that if you link however, you won't be able to edit the linked group.
Related - How to add an object from another scene?.


text:
How to add resolution to a mesh created from a curve
I am creating an axe, I currently have this outline that I traced from a background image. I have converted it to a mesh from a Bezier curve using AltC, but now I want to give it some depth.
How can I add resolution to the large NGON face? I need resolution so that I can chamfer the edges towards the sharp points on each side.
Here is what my mesh looks like.

The easiest way to go about this would be to make use of an addon called SIRE outline. Also see this answer.
Once you have installed it. It should appear in the Toolshelf, T. What you should be after early is supporting geometry with good edgeflow.

Use the Inset feature of the addon and offset your outline to the desired amount.

After that, it's just a matter of filling in the even faces and for the rest, you have the supporting geometry near the curved edges so a ngon should suffice.

After that, it is as simple as extruding the model, giving it some depth and chamfering the edges. If you should also need to smooth the model, to keep it sharp simply add edgeloops to the edges or make use of the crease tool.

iKIsR great plugin can u share the link plz to download that addon SIRE Outline

@atek I don't know if this is still working but you can poke around the BA thread to see if there are any download links. See https://blenderartists.org/forum/showthread.php?179375-Addon-Edge-fillet.-%2528Two-new-addons-post-65-and-post-72-%2529/page4

is there any alternate to that addon

@atek not that I know of, this was 3 years ago.

I mean is there any other alternate or similar addon with that feature as i want to offset the edge out side and inside


text:
Why does removing the dot from bl_idname break my addon?
I've made an export script, sorry to say much of it is copy paste coding.
It was working fine, but now:

There should be an extra menuitem 'Waveller' -- it was there and it was working, but it has just disappeared!  ARGH!
I must have done a nono while refactoring the code.
I have tried removing and adding in:

What is going wrong?
Here is my code:
bl_info = {
    "name":         "Waveller",
    "author":       "π",
    "version":      (0, 0),
    "blender":      (2, 6, 2),
    "location":     "File > Import-Export > Waveller",
    "description":  "Export Verts and Faces in Waveller Format",
    "warning":      "",
    "wiki_url":     "http://www.waveller.com",
    "category":     "Import-Export"
}

if "bpy" in locals():
    import imp
    if "export_waveller" in locals():
        imp.reload( export_waveller )
else:
    import bpy

from bpy.props import StringProperty, BoolProperty

class WavellerExporter( bpy.types.Operator ):
    '''Save in Waveller format'''
    bl_idname = "export_waveller.vert"
    bl_label = "Export Waveller"

    filepath = StringProperty(
            subtype='FILE_PATH',
            )

    check_existing = BoolProperty(
            name = "Check Existing",
            description = "Check and warn on overwriting existing files",
            default = True,
            options = { 'HIDDEN' },
            )

    def execute( self, context ):
        from . import export_waveller
        export_waveller.export_all( self.filepath )

        return {'FINISHED'}

    def invoke( self, context, event ):
        if not self.filepath:
            self.filepath = bpy.data.filepath
        # bpy.path.ensure_ext(bpy.data.filepath, "")
        wm = context.window_manager
        wm.fileselect_add( self )
        return { 'RUNNING_MODAL' }

def menu_export( self, context ):
    self.layout.operator(
                         WavellerExporter.bl_idname,
                         text = "Waveller"
                         )

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

    bpy.types.INFO_MT_file_export.append( menu_export )

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

    bpy.types.INFO_MT_file_export.remove( menu_export )

if __name__ == "__main__":
    register()

I did do a bit of fiddling, I remember changing:
bl_idname = "export_waveller.vert"

to
bl_idname = "export_waveller"

(changing it back doesn't fix this)
Well if anyone can put me right I'm very grateful. Also, corrections to any hideousnesses you see lurking in the code are most welcome!

If you check the error output in the terminal, it will tell you whats going on. If you develop scripts its implied that you check error output while trouble-shooting.

It was that line!
Can anyone tell me why I'm not allowed to change bl_idname from "export_waveller.vert" to "export_waveller"?
My only guess is that this string is used as a token somewhere, and changing it creates some disparity.
I don't see why resetting factory settings doesn't cure this...
Anyone?


text:
Feasibility of Raspberry Pi 4 render farm
With the recent release of the raspberry pi 4, you can now get a model with 4 gigs of ram as opposed to the old 1 gig and quad core 1.5ghz processor as opposed to a quad core 1.2ghz processor.  I've never tried building a render farm before but at $55 per 4gig pi model, I'm curious what those of you with actual experience think about its feasibility as an affordable farm node (since you could buy 15 of these for the cost of one good gpu not to mention the cost of the rest of the pc to house the gpu).  I seem to recall reading that ram is the biggest concern when rendering large scenes (where insufficient ram causes blender to crash).  So as I write this I suppose there is more than one question:

(the original question) Is the Pi 4 a legitimate contender for a low cost farm node given the new specs?
More generally, I have no basis of reference for how complex a scene would need to be to exceed 4 gigs - Can someone provide some insight into this as a realistic or unrealistic challenge?

Thanks in advance for any input!

Hello and welcome. Blender isn't really made to run on ARM, and I don't think Cycles even compiles for that architecture, as far as I know; so you have a major road block there. As it stands this question seems both too broad and highly subjective

Thanks Duarte!  Not sure how I had overlooked the architecture argument, guess I was just more focused on the hardware size and speed.  That is unfortunate though it seemed like a nice alternative... oh well, that's how it goes sometimes.


text:
How to lock an object so is always showing the same face when rotates
I'm trying to animate a bicycle and I have a question related to the pedals. Using drivers on the gear and the wheels I have got the automatic rotation of the bicycle as it moves through the y-axis. The thing is, the pedals rotates just like the rest. How can I make an object (in this case, the pedal) rotates always showing the same face locked parallel to the ground.
Thanks in advance.

With a Limit Rotation Constraint.

I think this can be achieved with drivers as well.
Drivers
You could add a driver to the rotation direction around the axis of the pedal, and then have it driven via Scripted Expression by the rotation of the gear object.
The expression should be "-var" since the pedal turns in the opposite direction with the same angular velocity.
Also, because the pedal is most likely a child of the gear, make sure Space it set to World Space (otherwise it won't work)
Constrains
Another way is to is to do it using constraints and empties. You could add an Empty at the location of the pedal origin (or pivot or turning axis), and add an empty exactly below it on the ground.
Add a Damped track constraint to the pedal with Ground Empty as the Target, and set it to the X axis. Add a Copy Location Constraint to the Ground Target and with the Pedal Empty as a target, and check the boxes next to X and Y (but not Z).
You need the extra Pedal Empty because it won't work if you target the pedal itself directly (probably because the constraint on pedal is targeting the Ground Empty and it causes a direct loop).

Left is with drivers. Right with constraints.

Which method would be the more performant one? And do you maybe also happen to know, which one is more likely to be supported when it comes to exporting to other 3D projects like three.js?


text:
Why does a Wave Texture not follow a rig?
I'm rigging a simple character with a stripey texture and rigify rig.
Before rigging, if I move the geo, the texture moves with it, once I parent it to the rig the texture stays still while I move the armature, almost like it's projected.
What am I doing wrong? Is there a fix that doesn't mean UV unwrapping everything as the current setup looks fine for this character. Thanks!

Can you show a screen shot of the two states when in Pose mode? I am trying here, and my texture is still following my Suzanne even with the Object coordinate not specified to use the monkey. - seems I spoke too soon, deform follows but moving the whole armature doesn't.

If I change to Generated coordinate instead, the wave texture follows correctly. I wonder if you have found a bug.

you are using 'Object' as your 'texture coords' but you have no 'object' selected in the field box. You really should be unwrapping and using 'UV' coords instead.

I had a feeling I wouldn't be able to avoid UVing! Thanks, setting the Object didn't work either but in the end I baked the textures and applied them which worked with helpful info from these posts too. Thanks again. https://blender.stackexchange.com/questions/95328/cycles-baking-diffuse-result-is-always-black
https://blender.stackexchange.com/questions/92665/how-do-i-bake-add-material-colors-onto-my-uvmap


text:
Faster undo for animation
I'm using 2.8 with the Spring rig and noticing undoing an action is very slow (5 seconds or so to undo an unwanted translate or rotate of a controller). Is there any way to speed this up?
Are there settings to exclude certain actions from the undo stack perhaps? For example in Maya somebody wrote a script that can exclude the selecting of objects but not the moving of them.
Thanks!


text:
2D zoom in 3D view
I'm translating my Maya animation knowledge to Blender, is there an equivalent to Maya's 2D pan/zoom that allows you to 2D zoom in a 3D view?
This is really helpful if you're animating a character that's far away and you want to zoom in on them without actually moving the shot camera closer.
Thanks in advance

You can do this when you view from inside a camera object

you can be in orthographic view by pressing 5 on numpad it will zoom in but not move view forward if that's what you meant.


text:
How do you jump through animation keyframes in a loop?
How do you jump through animation keyframes in a loop? Currently when using the "jump to keyframe" hotkey the playhead stops on the last keyframe rather than going back to the start.
I can press "Spacebar" to loop an animation but I'd like to loop through keyframes with a hotkey.

I'd also like an answer for the same problem.
My workaround is to press Shift+Left/Right arrow to go to the start/end.
Also setting the automatic play range Ctrl+Alt+P helps. When I press the above hotkeys, it goes to first/last keyframe.


text:
How do I turn off confirmation dialogues?
If Blender 2.77a has a user-configurable 'turn delete confirmations' on/off setting, it's sure hidden. To be clear: in Object Mode, for instance, when you key X or press the Delete button on a selected object, a confirmation dialog pops up - confirmations slow my work flow.
Two years ago, an answer to this question (Remove Unnecessary Confirmation Popups ... ) said they were removed - so perhaps this feature is still unavailable?

What other popup dialogs slow down your workflow? If there is more than one, it is worth (probably) to define a 'custom operator' and wrapping this into an Add-on. First approach for Shift X based on this answer.

I don't know if you can user configure it, but you can speed up the editing by pressing XD.
XEnter or X1 also works, but it's probably slower. You also can change the default shortcut for delete to D and then press D twice.

+1 Good idea !  DUH, why didn't I think of that :))   It would be nice to be able to do X X, instead of X D ... but that works.  Hmmm ... How do we find out what shortcut key is associated with 'D' ?  ( I tried to dump the preferences, but that just generates a python script ... odd. ... and no time to look through them all in the preferences panel ! ) thanks

Go to user preferences > input and search for the key-binding 'D'


text:
Blender Cycles 2.69 on Ubuntu Server 13.10 64bit
I trying to render an image/animation using Amazon EC2, but Cycles rendering fails with this message:
Fra:1 Mem:17.09M (0.00M, Peak 17.09M) | Mem:0.00M, Peak:0.00M | Scene,
RenderLayer | Synchronizing object | Cube Illegal instruction (core
dumped)

For testing I used the Blender default scene, I only changed the rendering engine to Cycles. (To make sure it,s not some advanced feature that is broken).
Using the default Blender Renderer seems to work fine.
I installed the current version of Blender according to this instruction.
I start rendering using this command :  blender -noaudio -b test.blend -f 1
Using the default version of Blender (2.66) works for the default scene, but is not compatible with the scene I want to render (results in empty images). I would prefer to render using 2.69 instead of converting my scene for compatibility with 2.66.

I figured out a way to get it to work:
Instead of using the launchpad version I downloaded the GNU/Linux version from Blender site. Using this version Cycles works fine.


text:
Merging Multiple .OBJ files
I have a model that has different .obj files for the head and body. How can I merge them into one file? I have tried everything I know. Which isn't much. And I can't find any tutorials online on how to merge them.

You can import .obj files by going to File > Import > Wavefront (.obj). Several files can be imported into your scene.
Once the files are in Blender, you can make any changes to them if need be (such as joining them into a single mesh object by selecting them all and pressing CtrlJ) and then you can export back to a single .obj file by going to File > Export > Wavefront (.obj)

For games, many people need a way to make an obj file with multiple meshes, if I understand you correctly, that is what you mean. Since that is a capability of OBJ that is utilized by graphics frameworks, blender having that ability is extremely helpful. At least as of 2.73a you can select multiple objects and export to OBJ and it will work properly.

If you mean objects in other Blender files (not the .obj file format), use the Append or Link under Files->Append/Link
Click the .blend file you would like to merge with. select the "Object" folder and click the objects you would like to append/link to your project.
Several objects can be selected by SHIFT+RIGHT click on them.
Appending is merging the object into your current blend file and active scene/layer.
By linking, the object is not copied but linked to the original .blend file, so when the original blend file is updated, your current blend file will also update.


text:
yellow dotted wireframe appears when I mistakenly press Shift-t instead of Ctrl-t
When I attempt to triangulate a mesh I end up with that dotted yellow bounding box when I mistakenly press Shift+t instead of Ctrl+t.  I cannot get rid of it by using Undo.
From what I can tell, it has something to do with Texture Space but I cannot find anything in the Object Data panel that will remove it once it's there.
So does anyone know how to get rid of this and set things back to how they were before I hit that wrong shortcut?

If you find you are accidentally hitting Shift+T too often, you can disable the shortcut.
Go to File > User Preferences > Input tab. Unfortunately, searching "texture" for name will not find anything, so instead search for "Shift T", changing the Filter Type to "Key-Binding".

Scroll down the results returned to the 3D View set of shortcuts, and expand the Translate arrow. Uncheck the Edit Texture Space checkbox.

Cant search writing Shift T in the search box, using blender 2.76b

Shift+T does indeed turn on the 'Texture Space' display mode.
To disable it go to Object> Display> Texture Space and untick the checkbox:

Note that it also translates the texture space, so you might want to make sure it's reset to 0,0,0 in Properties > Object data > Texture space > Location.


text:
How do I export a model to .obj format?
I use Blender to create my 3D models for my Android app that uses OpenGL ES. The default output format for a Wavefront file (.obj) is not compatible with my Wavefront file parser. How do I get Blender to output a Wavefront file that has the following elements:

All Verticies and Faces (faces as triangles, not quads)
Texture coordinates (UV Mapped)
Preprocessed Normals

UVs are included in OBJ export, theres an option to triangulate and include normals in the export options.
Did you try these options?
This seems more like a bug report then a question since you are asking about existing features that apparently don't work in some situation.

@ideasman42 For someone who was trying to use Blender to make models for use in OpenGl or other platforms, the Wavefront file needs to have those exact properties otherwise it won't get parsed correctly. This question was intended to help people find those exact options in the export menu.

OBJ has been used with textures, materials, normals etc - for quite some time now. So if it fails you need to ask if a specific configuration is known to be supported. What 'exact properties' are you referring to?
Also 'OpenGL or other platforms' us too vague - which software fails to read blenders OBJ's?

@ideasman42 read the question (I want to export my model into a .obj file with the following:) - those are the exact properties I am referring to. The point of this beta is to build a question base so that we have a bunch of good questions when the public beta starts. Even a really simple question can be considered a 'good' question.

The problem is you are not actually trying to solve anything here (an imagined problem or a real one). The options are clearly listed in the export menu - so any user who spends a few seconds to check will see what to do, I dont think this makes for quality Q&A.
(However Im glad you want http://blender.stackexchange.com to do well and are want to help out!)

@ideasman42 When I first used Blender to export to .obj it took me a long time to find that there is the tiny menu in the bottom left hand corner that you have to look at to change the output settings. I think that this question would be very helpful to someone who is a novice at using Blender.

@John It is acceptable to answer your own question; I see you've created several that you seem to know the answer to and are just posting to serve as a reference to others. Go ahead and answer them yourself, if you know the answer.

@John since you have admitted to having typed this knowing the answer and it being such a simple question, it's not ideal. Voted to close.

Might want to move this to meta.se for discussion if more comments get added.

@John, I think apart of the problem with your question is how you are phrasing it. If you actually had a problem, you would ask a much different question because you would be talking about something that doesn't work, and asking ways to make it work as you expect. This kind of question would be much more straightforward to answer.

If you wanted to export a simple model such as:

as a .obj file that is compatible with OpenGL or another 3D graphics platform then all you do is go to export:

Look for the export options in the toolbar in the bottom left corner. This will allow you to choose the specifications for the output file:

The options I am using above are compatible with OpenGL ES, you may have to adjust your properties accordingly. This type of export will produce a .obj file (geometry file) and a .mtl file (materials and textures file).

Thanks! I wasn't aware that the default options would break my renderer.

Sorry, "bottom left" didn't help me. This is what I'm looking at RN. Where do i find the "export obj" settings ? https://i.imgur.com/xd3mgdI.png


text:
Add build Modifier to Dope Sheet?
I have a ton of things building in my file, but I need to be able to retime them. So say I have on part starting to build at 200frames and it builds for 100frames. I need to be able to change the start time from 200 to say 320 in a fast and easy way. Preferable from the dopesheet or graph editor. Because I have over 100 animating objects
Is there a way to add the build modifier timing to the dopesheet so build animations can be retimed?

Can you add more detail? You can add keyframes to the Build modifier properties. for example, you can keyframe the Length value to get shorter, and so make the build time speed up.

Ok so I have a ton of things building in my file, but I need to be able to retime them. So say I have on part starting to build at 200frames and it builds for 100frames. I need to be able to change the start time from 200 to say 320 in a fast and easy way. Preferable from the dopesheet or graph editor. Because I have over 100 animating objects.

that's not at all a duplicate since the build modifier is much more tricky than an ordinary animation. I understand the question that he misses the old Time or Speed IPO which didn't survive 2.5

@BlendSwap, it serves your question better to modify it directly if our comments prompt you for more information. To demo this i've copied your response into the main body of your question. You can now also delete comments that you've taken care of. This keeps the comments section clean and your question more accurate.

@Haunt_House the functionality still exists, unfortunately modifiers are not supported.

@Aldrik Interesting, thanks. Sorry, I took the 'retiming' too literally.

Afai understand it, he wants to be able to set all the start values to a new value. This is by far no duplicate and the linked answer is not answering this question! Would be better to remove the lock here..
My approach to this question would be to select all objects and execute this script:
#################
http://www.pasteall.org/44871/python
#################
Change the newFrameStart to the value you'd like..done.

While it's not the Dopesheet, but the Graph Editor, yes, there's a workaround to retime it. Animate the start frame of the build modifier.
So far the build modifier cannot easily be animated by percentage or face count (without using python). And the speed curve does not work with modifiers as of yet.
A workaround to achieve variable speed is as follows:
The build modifier is controlled by two values. Start and length. For this approach, length should be set to either 100.0 for easy calculation or to the facecount, if desired.
The trick is to animate the start value in respect to the current frame. Here are the rules: The modifier is stopping it's progress if you animate the start frame in parallel to the frame number. Start frame 50 in frame 50, start frame 90 in frame 90 (don't forget to set the IPO curve (sorry, I mean F-Curve) to linear or you won't be synchronous due to the ease in and ease out nature of the beziers).
The build modifier progresses forward if the start value rises slower than the frame number:
length 100,
start frame 50 at frame 50
start frame 100 at frame 150 (offset of 50)
will make the build modifier progress at half speed until the 50% mark and then progress at full speed, if nothing else is animated.
Whenever the start value is identical to the frame number, the modifier is at 0.0 per cent.
So the formula with which to calculate animation values is:
start value = frame number - (length / 100 * percentage)
You find the values in properties>>modifiers>>build modifier panel
Look at it a little bit like two cars, one moving at constant speed (frame number) and another catching up or falling behind (start value of the build modifier). The distance between the two cars defines the amount of built faces.

Haunt_House not sure I follow your (2000-100/2) description. Where do I add that info? Thanks

I extended the answer to make it more clear (:


text:
Blender 2.73 API Trying to select vertices within region via python
I'm trying to figure out a way to retrieve or select a group of vertices directly beneath a separate object.
I want to do this in a way that I don't have to iterate throughout the entire mesh to find the correct vertices. I was thinking of how blender is able to select things within the 'lasso select' or select things in other 'within region' shenanigans.
So my question is:
Does blender always iterate through every single point in a mesh just to find what's within a certain distance, or to detect collision, or detect verts within a region etc?
Or is there a more graceful way to do this? I'm using landscapes with somewhat large amounts of verts, and this entire process will be iterated over for several different objects. I couldn't find anything helpful on google, and I'm not too sure where to look.

There are couple optimizations in place, to not iterate over every single vertex and compare that to something else (e.g. Remove Doubles does not compare every vertex with all other vertices). Algorithms like KDTrees, Hash tables etc. vastly reduce the computational complexity. I doubt there's a smarter way to find your vertices however (such a specific search would require its own pre-processing, but is likely way more expansive than a brute-force approach - unless you will re-use the result of the pre-processing several times).

You should also check out my answer on how to select vertices inside the view frustum

Funny, I was actually thinking about moving an orthographic camera view over above the verts I'm trying to select and selecting everything within view. That would be a last ditch resort though, as this thing I'm making is supposed to be meant for popular developer use, and that would be rather sloppy. Either way, I might use that.


text:
Vertex selection without edge highlighting?
Selecting a cube's vertex displays an orange point (sure it is vertex) with its connected three edges (edges highlighted as orange to black gradient).
For example, selecting a vertex in 3ds Max only highlights the vertex point.
In Blender, when selecting a vertex, it does highlight the vertex point with its connected edges. I don't want to see gradient orange edges.
Is there an option to change how vertices are highlighted?

What is or is not shown is in the Properties Region N on the right hand side of the 3D viewport. Untick edges in Mesh Display → Overlays:

You can show/hide vertexes, edges, vertex normals, face normals, etc.


text:
Animate with position and orientation from txt file
I want to animate a body using an external file with x, y, z coordinates and quaternion data.
In the file every entry [x,y,x,q0,q1,q2,q3] represents a frame to be rendered.
I heard about Blender and its compatibility with python and, since I am a python user, I would like to know if it is possible to do what I mentioned above and how to do it.
Thanks in advance.

It's very possible, and doesn't even sound difficult to do.
Make sure Object.rotation_mode is 'QUATERNION' (once for the object):
ob = bpy.context.object # active object, assuming there is one
ob.rotation_mode = 'QUATERNION'

Reading the file:
import bpy
from mathutils import Vector, Quaternion

file = open("input.txt", "r")
for line in file:
    x, y, z, q0, q1, q2, q3 = line.strip(" \t\r\n[]").split(",")
    loc = float(x), float(y), float(z)
    quat = float(q0), float(q1), float(q2), float(q3)

    # Or cast to Vector / Quaternion type if you need any methods of them later
    #loc = Vector(loc)
    #quat = Quaternion(quat)

I assume line 1 in the file is meant to be the first frame in Blender and so on. Let's keep track of the line number:
for i, line in enumerate(file, 1):
    ...

Assign the location and the rotation in our for-loop:
    ob.location = loc
    ob.rotation_quaternion = quat

and insert keyframes for frame i:
    ob.keyframe_insert('location', frame=i)
    ob.keyframe_insert('rotation_quaternion', frame=i)

Finally, we close the file:
file.close()

For a better performaning way to animate with python, see:
http://www.blender.org/documentation/blender_python_api_2_69_10/info_quickstart.html#animation

Thank you so much for your help. It works! I just want to add something: loc and quat can't have string entries so they must be transform to float.

Geez! Totally forgot to cast to numbers, edited my post. float() accepts any kind of floating point notation: 0.1, .1, 1., 1e-3. For integer values, you would use int() (no rounding if used on floats, use math.round() instead if needed). Properties like Object.location accept several types without explicit casting, Vector, int, float...


text:
No redraw after assigning new vertex position with python
I'm trying to write a new operator which modifies my geometry in some way, but I'm struggling with vertex manipulation. I can get the selected vertices fine and also print the individual components. So, lets say I have a vertex v. I can get the position of this vertex via v.co. But when I set a new value for this vertex with my operator it does not redraw in the 3D View. I assign a new value like this:
v.co = Vector((1,2,3))

Like said above the 3D View does not update. I have to quit my operator and navigate in the 3D View to update. What do I have to do to make blender update the 3D View correctly?

If your running the script with the object in edit mode then you can use
# Note that bmesh is the module named bmesh, not an instance of a BMesh.
# me is an instance of Mesh, again, not an instance of a BMesh.
bmesh.update_edit_mesh(me)

If your running in object mode then you need something that will trigger an update, not sure if this is the best way but
bpy.context.scene.objects.active = bpy.context.scene.objects.active

triggers an update in the 3dview.

If you use a wrapped bmesh...
bm = bmesh.from_edit_mesh(me)

... use update_edit_mesh() to flush changes. Note that Blender will crash otherwise if geometry was added or removed.
If it's not a wrapped bmesh...
bm = bmesh.new()
bm.from_mesh(me)

... write the bmesh back to mesh:
bm.to_mesh(me)

To update a mesh, use:
me.update()


text:
Trouble file StringProperty subtype FILE_PATH
I have a StringProperty(subtype="FILE_PATH) and I am trying to make it so the user selects a folder and then a file is saved out to the location, but the filepath comes out looking really funky.
The folder selected is D:\Pictures, what the StringProperty shows is //..\..\. What is going on here?

// indicates a relative path in Blender.
Make sure you untick Relative Path in the Accept panel of the file browser to make it an absolute path.
Or you can convert a relative path to a absolute path using the built in method bpy.path.abspath(path)

is there a way to make it an absolute path automatically?

You can globally disable relative paths: User Preferences > File > Relative Paths, it's the first checkbox below the label Save & Load.


text:
2 Node Cycles Netrender on totally different machines: Almost the same rendering time?
I've experimented with Blender Net Rendering for the Cycles Renderer these days. For my test setup, I'm using two totally different nodes:

Node 1:
  Intel Core2Duo (2 Cores, 2 Threads, 2.1 GHz), 4 GB RAM
  openSuSE 13.1 x64
  Stats: Linux 3.11.10-7-desktop x86_64 x86_64

Node 1 combines the Master, one Slave and the Client. Master and Slave are started via command line (no GUI), the Client as GUI of course.

Node 2:
  Intel Core i5 (4 Cores, 4 Threads, 2.4 GHz), 8 GB RAM
  Windows 7 64 Bit
  Stats: Windows 7 AMD64 Intel64 Family 6 Model 37 Stepping 2, GenuineIntel

Node 2 serves as Slave only. The slave is started in the command line without GUI.
I created a short animation and sent it via Node 1 to the Rendering Cluster. First: It works: Both machines are now rendering with a chunk size of 5. And the results in between are exactly what they are supposed to be.
Now the strange thing comes in: I'm sure that those Nodes have different power and speed, but when I take a look at the details of the job, it appears, that both nodes seem to need nearly the same time to finish a frame:
no     status   render time  slave     log          result
1      Done     219.3s       Node2     view log     view result [show]
2      Done     219.3s       Node2     view log     view result [show]
3      Done     219.3s       Node2     view log     view result [show]
4      Done     219.3s       Node2     view log     view result [show]
5      Done     219.3s       Node2     view log     view result [show]
6      Done     221.7s       Node1     view log     view result [show]
7      Done     221.7s       Node1     view log     view result [show]
8      Done     221.7s       Node1     view log     view result [show]
9      Done     221.7s       Node1     view log     view result [show]
10     Done     221.7s       Node1     view log     view result [show]
11     Done     221.8s       Node2     view log     view result [show]
12     Done     221.8s       Node2     view log     view result [show]
13     Done     221.8s       Node2     view log     view result [show]
14     Done     221.8s       Node2     view log     view result [show]
15     Done     221.8s       Node2     view log     view result [show]
16     Done     224.7s       Node1     view log     view result [show]
17     Done     224.7s       Node1     view log     view result [show]
18     Done     224.7s       Node1     view log     view result [show]
19     Done     224.7s       Node1     view log     view result [show]
20     Done     224.7s       Node1     view log     view result [show]
21     Done     218.4s       Node2     view log     view result [show]
22     Done     218.4s       Node2     view log     view result [show]
23     Done     218.4s       Node2     view log     view result [show]
24     Done     218.4s       Node2     view log     view result [show]
25     Done     218.4s       Node2     view log     view result [show]
26     Done     223.3s       Node1     view log     view result [show]
27     Done     223.3s       Node1     view log     view result [show]
28     Done     223.3s       Node1     view log     view result [show]
29     Done     223.3s       Node1     view log     view result [show]
30     Done     223.3s       Node1     view log     view result [show]

I already tried to set the Threads configuration on the Node 2 slave fixed to 4, but the results stay about the same.
Can anyone enlighten me where my mistake is? I don't understand the close equality of the rendering times.


text:
Syntax highlighting in Python prompt
The Blender Python documentation has a very attractive colour scheme:

Is it possible to get this colour scheme in the Python prompt?

The text editor supports syntax highlighting, the py console is barely able to auto-indent.

Syntax highlighting in the Python command line is not supported currently.


text:
How to smooth multiple vertices at a point?
I know this is very simple, but I've tried using the smooth button in the mesh tools section, but it won't work:
Before:

This is with smooth vertex:

What should I do?
Thanks in advance
(I need to smoothen it so much that it is only a nice curve: http://snag.gy/O1kk7.jpg)

The tool is working, you just need more geometry and bump up the number of times to smooth the mesh.

So the tool works but I doubt it will give you the results you are looking for. It's best if you model this curved bit by just add some supporting edge rings through the top of you mesh and moving these outwards.

Later as your model gets more refined, you can add a Subsurf modifier and some supporting loops along the edges to get a nice sleek look.

NB: It's best to get the basic outline/shape of your model down before adding any deformation modifiers.

The simplest solution is to add the subdivision modifier. Then you probably have to tweak your geometry to get the shape you want. You will see the updates in realtime.
Starting geometry, very lowpoly:

Subdivision modifier added. Adjust subdivision to reach sufficient smoothness. Be sure to set render higher or equal to view.

Add loops (Ctrl+R) to make some edges more pronounced. You can also select an edge in edit mode and use Edge crease Ctrl+E.

Make final object smooth.

Ideal but I wouldn't recommend adding a subsurf modifier so early when modeling a hard surface object.

Funny, I always add subsurf one of the first things I do. Is it just your preference or do you have a technical argument against it?

A bit of both. While you can toggle this on/off, even when modeling organic objects, it's best to flush your shape out as much as possible before using subsurf even to see how it's coming along. Having everything smoothed makes it harder to add certain details to a model and if you repeatedly toggle on/off you can lose track of scale etc. -- All that being said, if you know what you are doing, fine, do whatever :) but not something I would recommend to a beginner.

A valid point, that last remark. :)


text:
Get Selected UV vertices coordinates
I'm trying to get the coordinates for the selected UV vertices with this script:
import bpy

mesh = bpy.context.object.data

uv = mesh.uv_layers.active.data

print(uv[0].uv)

But unfortunately the coordinates printed in the console are always the same regardless of what vertices I select.

Thanks in advance.

here is the code to get the coordinates for the selected vertices in the UV/Image editor :
import bpy
import bmesh

def main(context):
    obj = context.active_object
    me = obj.data
    bm = bmesh.from_edit_mesh(me)

    uv_layer = bm.loops.layers.uv.verify()
    bm.faces.layers.tex.verify()

    for f in bm.faces:
        for l in f.loops:
            luv = l[uv_layer]
            if luv.select:
                #print the coordinates
                print(luv.uv)

    bmesh.update_edit_mesh(me)

May I ask why aren't you just getting the coordinates from the UV/Image Editor?

@sekce I want write a script that calculate the angle between the selected vertices(edge) and the x or y axis then align the island depending on the calculated angle, and in order to calculate the angle I need to get the coordinates of the vertices.

The example in your Blender will help you, see.
Text Editor > Templates > Python > Operator Mesh Uv


text:
Find active camera from Python
I could just use:
obj_camera = bpy.data.objects["Camera"]

to get the camera, but it is possible to have a scene with multiple cameras.
So if that is the case, how can I choose the active one?

The property you are looking for is 'Scene.camera'.
If you have 'python tooltips' enabled in the user preferences you can hover over the camera field in the 'Scene' tab of the 'Properties' area, to reveal the python code for this property:

The code to access this property for the current scene and assign it to a variable is:
obj_camera = bpy.context.scene.camera

"active" is a weak definition, there is the scene camera (can also be None), but it could also mean the active object and that object being a camera. A special case is operator Set active object as camera, which makes an arbitrary object the scene camera.
cam_ob = bpy.context.scene.camera

if cam_ob is None:
    print("no scene camera")
elif cam_ob.type == 'CAMERA':
    print("regular scene cam")
else:
    print("%s object as camera" % cam_ob.type)

ob = bpy.context.object
if ob is not None and ob.type == 'CAMERA':
    print("Active camera object")

I use the following code:
cameras_obj = [cam for cam in bpy.data.objects if cam.type == 'CAMERA']
for cam in cameras_obj:
    if cam.hide_render:
        print("la camara {} esta desactivada".format(cam.name))
    else:
        print("la camara {} esta activada".format(cam.name))

Suggest iterate through all objects of the scene bpy.context.scene.objects instead.

I was under the impression hide_render was an object property that ... stopped an object from being rendered, (which doesn't really matter for a non rendered object like a camera, empty etc)

@batFINGER I tested the code and indeed it says all cameras are "activada". The code doesn't work.

@MarkusvonBroady You should try pressing the disable in processing icon that is to the right of the name, with that it will tell you camera disabled

@MrMelqui "disable" an active camera this way and press F12 - the image will still be rendered from that camera. At least in 2.93...


text:
How to use the current file name as the the output name in the File Output Node and without the frame number at the end?
Two questions:

How to use the name of the currently opened blendfile automatically in the File Path field of the File Output Node without entering it manually?
How to remove the frame number which is automatically appended at the end of output file (especially for static images)?

AFAIK the answer to both is No.
The frame number padding zeros can be configured by adding # to the filename:
From the wiki page on CLI rendering:

 -o or --render-output <path>
     Set the render path and file name.
     Use // at the start of the path to
         render relative to the blend file.
     The # characters are replaced by the frame number, and used to define zero padding.
         ani_##_test.png becomes ani_01_test.png
         test-######.png becomes test-000001.png
         When the filename does not contain #, The suffix #### is added to the filename
     The frame number will be added at the end of the filename.
         eg: blender -b foobar.blend -o //render_ -F PNG -x 1 -a
         //render_ becomes //render_####, writing frames as //render_0001.png//

This works in the GUI too:

So the above becomes render01.png, render02.png etc.
A single # = no padding. (i.e. render1.png)
However, I don't think there is a way to completely remove the frame number from the file name through blender, though it's really not hard to remove it later.

As for the blendfile name in the Base Path:
You could write a python script to set the Base Path of all File Output nodes to the blendfile name:
import bpy
import os

# Get file name:
filename = bpy.path.basename(bpy.context.blend_data.filepath)

# Remove .blend extension:
filename = os.path.splitext(filename)[0]

# set the base path for all file output nodes to filename:
for scene in bpy.data.scenes:
    for node in scene.node_tree.nodes:
        if node.type == 'OUTPUT_FILE':
            node.base_path = "//" + filename

We can also put the # placeholder within the File Output node's file path. e.g. specifying Image#.png will create Image1.png, Image2.png, etc.

For anyone that stumbles on this old post as I did. The wiki link noted above for CLI rendering has been changed to: https://docs.blender.org/manual/en/latest/render/workflows/command_line.html

@crazycourier Thanks, I've edited the new link in.

I have not tried to see if it works the same with other render formats, but when I render videos from blender, I prevent it putting frame numbers in the render by specifying the full filename, with extension.
For example, if I specify //output in the Output field in the GUI, it will generate a file that starts with output in the project directory but will have the start and end frames in the name.  If, however, I specify //output.avi in the Output field then that's exactly the name I'll get.
Unfortunately, I too have not found a way to have it just use the blend file name.

I think p2or/blender-loom: image sequence rendering, encoding and playback can do what you want.


text:
Project from view multiple times from different angles
I'm having a problem finding out a way to project from top view and the side view so I texture better. It just replaces the current projection with the top view

So is it possible to project from view twice on the same image?

It sounds like this is what you are looking for unless I misunderstand the question.
Once you've unwrapped everything once you can then use -> UVMapping -> Project From View on selected faces without changing what has already been mapped out.

Yup works perfect

You can Project from view any number of times. Your selection is what gets projected.
Go to side view select just the faces you want projected from the side view. In edit mode press U then project from view.
Then go to the top view, select just the top (and bottom) faces, but leave the sides unselected and project from view.


text:
Creating a custom property with named values
I have created and rigged a simple cartoon-style model. His facial expressions are really just an image sequence texture. This allows me to quickly change his facial expression by changing the "offset" value of the image sequence. Then I created a custom property and attached it to a driver. This system works well, but it would be nice to have friendly names like mouth_oo rather than trying to remember the numerical index.
Here is the code I have so far based on an article I read at blendersushi: http://pastebin.com/2aJWd2ZB. The trouble with this code seems to be that context.object.My_List never seems to be populated.
How can I create a custom property control for an object that updates the value of the driver, but gives me a user-friendly popup?

Modifying properties in draw() context is not allowed. Either use an operator to add items, or consider to use a dynamic EnumProperty instead.

Check this code, this shows you 2 different options:
One is with direct control over the index with a slider with changing labels,
The other one is with the EnumProp like you have it.

import bpy

from bpy.props import EnumProperty

def updateEnumParameter(self, context):
    context.object.my_list_index = int(self.face)
    print(self.face)

class cls_IntFloatString(bpy.types.PropertyGroup):
    face_items =(("0","None","none"),
                 ("1","Smile","smile"),
                 ("2","Content","content"),
                 ("3","Dizzy","dizzy"),
                 ("4","Cat","cat"),
                 ("5","Girl","girl"),
                 ("6","Yuck","yuck"),
                 ("7","Macho","macho"),
                 ("8","Pixel","pixel"),
                 ("9","Charming","charming"),
                 ("10","Cry","cry"),
                 ("11","Ouch","ouch"),
                 ("12","Ultraman","ultraman"))
    face = bpy.props.EnumProperty(items=face_items, update=updateEnumParameter)

bpy.utils.register_class(cls_IntFloatString)

faces = {
    '0': "None",
    '1': "Smile",
    '2': "Content",
    '3': "Dizzy",
    '4': "Cat",
    '5': "Girl",
    '6': "Yuck",
    '7': "Macho",
    '8': "Pixel",
    '9': "Charming",
    '10': "Cry",
    '11': "Ouch",
    '12': "Ultraman"}

# Add these properties to every object in the entire Blender system
bpy.types.Object.my_list_index = bpy.props.IntProperty(min=0, max=len(faces)-1, default=0)
bpy.types.Object.my_list = bpy.props.PointerProperty(type=cls_IntFloatString)

class IntFloatStringPanel(bpy.types.Panel):
    bl_label = "Int Float String"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = "PROPERTIES"
    bl_region_type = "WINDOW"
    bl_context = "object"

    def draw(self, context):
        layout = self.layout
        box = layout.box()
        row = box.row()
        row.label("Selected Face:")
        row.prop(context.object, 'my_list_index', text=faces[str(context.object.my_list_index)], slider=True)
        box.prop(context.object.my_list, 'face', text='Selected Face')

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

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

if __name__ == "__main__":
    register()

Thank you, this worked like a charm! I very much appreciate your detailed working example. I have attached this to my driver and it works exactly as I hoped. Now I just need to find out how to move the panel to the 3D View properties shelf and my character will be ready to post on blendswap. :)


text:
Is there an animation library addon for Blender?
I'd like to save a character rig's animation data for reuse on the same rig in different scene files (eg walk cycles). In Maya I've used scripts such as PAIE or Studio Library. Does anything like these exist for Blender? Links below to clarify.
https://www.studiolibrary.com/
https://animationapprentice.blogspot.com/2015/01/the-free-paie-plugin-for-maya-how-it.html
Also, in case this is flagged as duplicate, this post doesn't answer this question -
How can I create a library of animations?
Thanks

Hi. Can you explain why that link doesn't answer your question? Thanks.

Hi, unless I'm misunderstanding, that post and the links within it refer to reusing mostly mesh and material data. If you have a look at the links I posted it might be clearer what I'm after, it's a pretty standard ability to have in an animation production setup. I would imagine the Blender short films people had something like this but I couldn't find anything.

https://youtu.be/oXGKDG1BeW4 I hope this link can help you!


text:
Is there a way to "mirror" an empty?
Using Blender 2.8, and I'm using a number of empties to drive some animations within in a collection of objects in a parented structure.
I can mirror objects using modifiers, and I know modifiers are not available for empties, but is there a way to "mirror" axis empties in some similar automated way?
My workflow so far has been manual in a way to first dupe the empty (has the benefit of also copying the animation for it too), then manually changing the xyz loc/rot values -1 as needed to get them to be "mirrored". This was OK when there were a few empties, but as you can guess as the project has grown in scale and complexity this is becoming very time consuming, and the manual process in risky and prone to lots of errors.
Is there a trick/method to "mirror" empties for a more automated process to reduce time and risk/errors?

Constraints may suit. The copy Xform constraints have the option to invert.
Here we have 2 axis-Empties, both parented to the cube-Empty in the middle. The right Empty is constrained to the left Empty as follows:

And it's parented to the cube Empty Without Inverse.
The arrows are parented to their respective axis-Empties, for illustration:

If the Empties are all ShiftD duplicated together, Blender is smart enough to keep the relations between the duplicates, and the whole rig can be moved/rotated using the cube.

You can use Python scripting to automate things that you do in Blender. I do not know how you want to mirror the empties so I will just give you a simple example, that you can hopefully modify to what you need. If you open up the Text Editor in Blender, you will find Templates menu in it's header, that has many Python script examples. I have modified the one called Simple Operator here to make an operator that mirrors the last selected object(the active object) if it is an empty in X axis with scene's center as the pivot point:
import bpy

def main(context):
    if context.object.type == "EMPTY":
        bpy.ops.object.duplicate()
        context.object.scale[0]*=-1
        context.object.location[0]*=-1

class MirrorEmpty(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.mirror_empty"
    bl_label = "Mirror Empty"
    @classmethod
    def poll(cls, context):
        return context.active_object is not None
    def execute(self, context):
        main(context)
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

If you run it, you register an operator, that you can then find with Blender's Search menu(F3 or Space 2.7 and earlier versions) byy it's label(bl_label) - in this case "Mirror Empty":

You can modify the main function to do what you want. Blender's Python API docs are here, you can see what operators are executed in the Info Editor, also Python Console has a very useful Auto Complete function that helps when learning to script with Python in Blender.
Obviously, one of the easiest ways to make what you want with Blender's Python API will be to ask about it here on BSE, but you will need to be extremely specific and tell us absolutely everything in fine detail about your situation, what you are doing and what you need, share screenshots as well as sample files and so on, because it is impossible to guess how you need it done in your specific situation with your specific scenes and setups for your specific goals.


text:
How to bulk select all objects while also exclude things like Empties in a large collection
I have a collection of about 200 objects and about half of them are parented and nested to Empties that drive the overall collections' animation.
As you know, to unwrap the objects I need to select each object and unwrap them while in edit mode.
In a perfect world I'd do this process once, but, in reality, there is always some need to fix some issue with the mesh found during the unwrap process, or, just as the project progresses, and once mesh changes are made, I need to then to CTRl-Click select each objects one by one, unwrap again, fix, reselect -- etc... as you can see this is painful and very time consuming.
I thought of hiding the empties, but then I have to go in and unhide them for other processes. So that strategy does not scale when as in my case; as said, I have a high quantity of objects and empties in my collection. Collection> select Objects selects everything including the empties which then prevents edit mode to allow unwrapping.
Is there a way to quickly and efficiently pick out/select objects ONLY from within a collection that highlights them from everything else that's visible within a collection?
Thanks.

Select a mesh object, hit Shift+G and select Type.

Works!   One more question... Is there a similar quick way to select all objects in a collection that have the same material assignment?

Yes. Shift+L>>Material.


text:
Mirrored object is misaligned when compared to its source object
I have an object to be mirrored on X. Its origin is at the world origin as is the 3d cursor. The problem is that when I apply the mirror modifier to it, its mirrored pair is not exactly aligned when compared to the source. (see pic 1-- it's the RightOrtho view))
I think this is an obj transform/align issue because the object was rotated etc during its build, and its nested under an empty that has also been rotated etc during the animation. So if I look at N, I see loc and rot info (the loc is of the empty) -- prior to parenting the object to the empty, I had applied AtrlA>all to the object.
If I apply Ctrl A>All to the object, that zero's out its Loc, rot -- fine, however now the obj's origin is now not aligned to the world origin so I can't apply Mirror to get a copy along X. Then if then try to get the origin back to the center by using Object>set origin to 3d cursor (which I placed at the world origin) then I can mirror the object along x again, but I'm back to the original problem of having its mirrored pair not being mirrored exactly right.
Unless I'm wrong, I think my solution is to get its Loc, Rot to 0 AND have its origin set to the world center so it can be mirrored exactly. I can get either loc=0 or origin to 0, but not both at the same time. If this is how to correct this problem, what are blender 2.8 settings to get that done please? Or what should I be applying another solution instead?

In this image you can see how the mirrored pair is "higher" in Z than it should be.

This one is of the top view... see how the mirrored pair is "closer" along the x axis compared to the source.
You can also see silver clamps from another object.. as you see those are being mirrored perfectly at source and destination (their rot, loc are 0 AND its origin is at the world origin, so as expected its mirroring perfectly) That's why I'm thinking my solution is to apply the same to the messed up part, but like I said, i'm not doing something right to get all Alignments done correctly to get a correct mirror.
One more thing to note, not sure how important this is... this problematic object (and I have a few others with the same issue) are nested/Parented to Empties, some of then parented to empties and other empties upto 3 levels deep. using these Empties to animate these objects for a game. Thinking that the parenting was causing the mirror problem, I've also tried unparenting the objects from the Empties (keeping transform) and then trying to get the loc, rot and origins to all be 0 and line up, but not been successful.
I've also tried ShiftD S X-1 and that does produce a copy in x-1, but that duplicate also then has the same rot and loc problems in exactly the same way as using mirror produces as is described above.
Any suggestion to help solve this, greatly appreciated.

Why is it rotated on the Y axis ?

Consider using a Mirror Object. This allows you to use another object as the reference for the mirror point and axes. This way, you don't have to mess around with the origin point.
An Empty Axis works well as a Mirror Object.

Yes!! this is the solution. Thanks!!  I placed an Empty at the world origin and am going to use that as my universal mirror object for everything I need to mirror. And not going to bother with the origins again -- that was such a pain!   Solved.