text:
How to make this script to quickly set specific weights?
I have an idea how to get a faster workflow when assigning weights in edit mode, and would like to know how hard this would be to make in python as an addon:
Before: I'm manually setting weights using this method:

Select one or more vertices
Select a vertex group
Choose a weight, by entering 0.2 and pressing enter
Click Assign

If I'm not happy with it, repeat 3-4 until I'm happy. This can be quite cumbersome and a lot of clicking and typing.
After: With my addon, it would be one less step, like this:

Select one or more vertices
Select a vertex group
Click 20 - And 0.2 is assigned in one click

If I'm not happy with it, I just click another value. It would save a lot of time for me.
And as an extra bonus, if this is possible, there is also a Liveweight slider, that updates the vertex group as I drag the slider, and I see the result right away. Pretty much like the Vertex weights in the Properties panel, but this affects all selected vertices.
Would this be possible, and where would I start? I have never coded anything in python, but I've been coding for a long time, mostly PHP and Javascript, so I think I can figure out the basics, if I get some pointers.
Also, is it possible to put this inside the Vertex Group section, or does it need to be in a separate panel?
Here's a rough screenshot of my idea as a separate panel, sorry for a weird number of buttons

Here's the code I've made so far. I got it working when I had another similar script loaded, but when I use only this, I only get the Panel, not the buttons. Is there a class I missed or something?
Now I'd be happy for some tips on finding the active vertex group and assigning the vertex values to the selected vertices.
I tried to implement the code, but I'm not sure if I should tab in the for loop, and make it iterate through all vertices.
bl_info = {
    "name": "Quickly set weights of Vertex Groups",
    "author": "nicmar",
    "version": (1, 0),
    "blender": (2, 78, 0),
    "location": "Properties Editor > Object data > Vertex Groups",
    "description": "Quickly set Vertex Groups with assigned weight and live edit",
    "warning": "",
    "wiki_url": "",
    "category": "Mesh"}

import bpy
import time

from bpy.types import Panel

class QuickWeightPanel(bpy.types.Panel):
    bl_label = "Quick Vertex Weights"
    bl_space_type = "PROPERTIES";
    bl_region_type = "WINDOW";
    bl_context = "data"
    #bl_category = "Test"

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

        row = layout.row(align=True)
        row.alignment = 'EXPAND'
        row.operator("my.button", text="0").number=0
        row.operator("my.button", text="10").number=0.1
        row.operator("my.button", text="25").number=0.25
        row.operator("my.button", text="40").number=0.4
        row.operator("my.button", text="50").number=0.5
        row.operator("my.button", text="60").number=0.6
        row.operator("my.button", text="75").number=0.75
        row.operator("my.button", text="90").number=0.9
        row.operator("my.button", text="100").number=1

class MyOp(bpy.types.Operator): #The operator class derived from Operator
    bl_idname="my.button" #Same as in row.operator
    bl_label="my.button blabla" #Needed

    number=bpy.props.FloatProperty() #The property used in row.operator

    def execute(self, context): #Is trigered by buttons

        # Toggle into edit mode
        obj=bpy.context.active_object

        # Toggle into object mode (Wrong? I need to be in edit mode to set weights?)
        #prevMode = obj.mode
        #bpy.ops.object.mode_set(mode='OBJECT', toggle=False)

        # Get active vertex group index
        active_vertex_group_index = obj.vertex_groups.active_index

        # Should I use this?
        #g=obj.vertex_groups['group name']

        # Loop through and get all selected vertices i v (?)
        [v for v in obj.data.vertices if v.select]
        # Get first?
        v = obj.data.vertices[0]
        # Get the data for the group accessed by the group index
        vg=v.groups[active_vertex_group_index]
        # Set weight of active vertices in active weight group
        # vg.weight = 0.5
        # Print weight of current vertex
        print(vg.weight)

        # Return to previous mode before operator
        bpy.ops.object.mode_set(mode=prevMode, toggle=False)

        return {'FINISHED'}

def register():
    bpy.utils.register_module(__name__)
    #bpy.types.Data.ignit_panel = bpy.props.PointerProperty(type=IgnitProperties)

def unregister():
    bpy.utils.unregister_module(__name__)
    #del bpy.types.Data.ignit_panel

if __name__ == "__main__":
    register()

I don't get the point of having this extra panel? so what if my value wasn't one of the 0,10,25...100 buttons? and how do you expect to set the Liveweight as it looks to me exactly like the weight in the vertexgroups panel?

When I for example set up a finger I want to use 50/50 for the mid joint, 75/25 for the next edge loop and so on. And commonly for rigging I dont't think I would need more fine values than these, but if I meed another I can just enter it. Also the live weight updates the values as I pull, opposed to Weight where I need to press Assign each time which is slower.

Niclas, reading your question, the answer may be either a complete tutorial on how to code these functions or a "I do it for you" answer (and of course, this is matter of free time to do it). So yes, what you describe can be done. First of all, have a look at the documentation https://docs.blender.org/api/2.78b/info_tutorial_addon.html and please ask more specific questions if you meet some issues

Sorry, I added the code I have made so far. The specific questions at this point is 1) Why isn't the buttons showing up 2) How do I find the active vertex group and assigning the vertex values to the selected vertices.

You need to declare properties on your operator. See for instance https://docs.blender.org/api/blender_python_api_current/bpy.types.Operator.html. Here the operator will correspond to "my.button" (bl_idname="my.button") and "number" is the declared property in the operator class

If that can save you some time. See the commented part below:
bl_info = {
    "name": "Quickly set weights of Vertex Groups",
    "author": "nicmar",
    "version": (1, 0),
    "blender": (2, 78, 0),
    "location": "Properties Editor > Object data > Vertex Groups",
    "description": "Quickly set Vertex Groups with assigned weight and live edit",
    "warning": "",
    "wiki_url": "",
    "category": "Mesh"}

import bpy
import time
from bpy.types import Panel

class QuickWeightPanel(bpy.types.Panel):
    bl_label = "Quick Vertex Weights"
    bl_space_type = "PROPERTIES";
    bl_region_type = "WINDOW";
    bl_context = "data"
    #bl_category = "Tomte"

    def draw(self,context):

        layout = self.layout

        row = layout.row(align=True)
        row.alignment = 'EXPAND'

        row.operator("my.button", text="0").number=0
        row.operator("my.button", text="10").number=0.1
        row.operator("my.button", text="25").number=0.25
        row.operator("my.button", text="40").number=0.4
        row.operator("my.button", text="50").number=0.5
        row.operator("my.button", text="60").number=0.6
        row.operator("my.button", text="75").number=0.75
        row.operator("my.button", text="90").number=0.9
        row.operator("my.button", text="100").number=1

class MyOp(bpy.types.Operator): #The operator class derived from Operator
    bl_idname="my.button" #Same as in row.operator
    bl_label="my.button blabla" #Needed

    number=bpy.props.FloatProperty() #The property used in row.operator

    def execute(self, context): #Is trigered by buttons
        print("Test", self.number) #With the associated value
        return {'FINISHED'}

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

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

if __name__ == "__main__":
    register()

To go further on the addon:

Active object and its type

obj=bpy.context.active_object
obj.type needs to be 'MESH'

Object groups

obj.vertex_groups contains the groups.
Use obj.vertex_groups.new(...) to create one or remove(...) to remove
g=obj.vertex_groups['group name']
g.index used in vertices (see below)
obj.vertex_groups.active_index is the currently selected group in the property panel

Object data

obj.data all object inner data
obj.data.vertices its vertices
[v for v in obj.data.vertices if v.select] selected vertices
v = obj.data.vertices[0]
v.groups contains the weights for each group v is involved in
vg=v.groups[groupIndex] the data for the group accessed by the group index
vg.weight is the weight
You'll probably need something like
prevMode = obj.mode

bpy.ops.object.mode_set(mode='OBJECT', toggle=False)

#... your code here

bpy.ops.object.mode_set(mode=prevMode, toggle=False)

To retrieve safely the selected vertices and come back to the mode selected before script execution.

Thanks, that helped to get the script running. I will fiddle some more with actually implementing the actions to edit the mesh and weights. This question was maybe a bit to broad :) But I'm not sure if I should accept this as an answer or not as it only partly answers my issue. Don't want anyone making it all for me though since I want to learn too...

@Niclas, never mind about upvoting or accepting. I will simply add some elements that could be useful

I tried it, and I at least got the index of the selected vertex group. I have a few problems, I updated my code above. I don't understand if there's a for loop going on, and how [v for v in obj.data.vertices if v.select] works. I tried to add comments to what I think it's doing. If you're able to check I'll be very happy. Thanks again!

Brilliant, it worked. The code was very clear. I had to add one line, weightToAssign = self.number. It can probably be improved in many ways, but you have taught me the basics of python in a very effective way. Thanks again - Answer accepted :)

This didn't work for me. Just keeps telling me the operator object has no attribute 'number'. Problem with the newer versions of Blender?

In the newer versions of blender you need to use a colon symbol instead of equal symbol operator.
So the operator from the example above becomes:
class MyOp(bpy.types.Operator):
bl_idname="my.button"
bl_label="my.button blabla"

number : bpy.props.FloatProperty() # Equal symbol is changed to colon

def execute(self, context):
    print("Test", self.number)
    return {'FINISHED'}

(This is an answer to the comment made by Gary, but I don't have enough reputation to comment)


text:
Can someone help me with this vertex?
I'm making a robot and that is the arm:

When i try to add a vertex with Ctrl+R and scale down, that happens:

What can I do so these vertex join all edges?

Can you please clarify your question. Firs off you have 4 vertices selected in every screen shot. So do you want to work with only one or all 4? What do you want to join the edges to? What did you want the scaling to do?

You have duplicate faces and when you cut you are only cutting one set of quads. Erase the surplus faces.

It appears to be a duplicate vertices/faces issue. Basically, there are two (or more) vertices where there should be one, creating unwanted geometry.
This is the problem:

The simplest solution is to select all of the vertices and to use the Remove Doubles option to automatically remove the overlapping geometry as show below:

source: Stack Exchange

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

sort: votes


text:
Array Modifier with Offset Object Issue
I'm going through Roland Hess' Blender Foundations book and I am having issues with the array modifier (using offset object).
I am trying to make feet for a table, my issue is that rotating the offset object (an empty named "empty" in the file) does nothing.
All I can see is the single object with the array copied right in the same position.
The blend is here, help is greatly appreciated!!

Seems to be working fine here, how are you rotatinf this? You just have to select the empty alone and rotate it in Z axis. Just make sure the Manipulate Center Points only option isn't checked in the 3D View Header

You need to disable "Manipulate Center Points" to be able to rotate the object the way that you are thinking:

Funniest thing is, I went through that same book years ago and had the same problem while making that table :-)

Hah!  Thanks for the help on this one.  I've noticed that Hess likes to handwave details at the most inconvenient times.

Yeah, he doesn't have time to go over every setting, so he assumes they are set to defaults. Please accept my answer since it answered your question.

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


text:
Why is My Lighting Creating a Triangle on the Ground?
More trouble going through the Roland Hess Blender Foundations book.  When I create the indoor scene in Blender, I get an odd light triangle on the ground.  I don't know why this is happening.  Help is appreciated!!
The blend: https://www.dropbox.com/s/zg96duw8av52st3/Flower%20019.blend
The last render: https://www.dropbox.com/s/9u9mldvxhxh79fc/Blend%2019.png?dl=0

It's your sun lamp near and far Clipping values.
Adjust the Clip Start and Clip End values for the Spot.008 lamp that is acting as sun.

Thanks!  For those with the same issue, expand the clipping to correct the issue.

authors: Илья Артурович


text:
How to save Child Of relative transform to absolute
Hello I have few animations in my character, in one it will be helpful to have child of constraint, but in future, I will need to remove it, so how I can get absolute position and rotation for some frames and apply it to work without this constraint?

You can use my add-on Disable Constraint Without Moving to, well, disable the constraint while keeping the object at its location/orientation.

In the list of keying sets you will find several "Visual" options, these options keyframe values of the visual location/rotation/scale, which is after constraints have been applied.

The only explanation for visual keying I can find is in the keyframing preferences, where you can make this the default behaviour.

When an object is using constraints, the object property value does not actually change. Visual Keying will add keyframes to the object property, with a value based on the visual transformation from the constraint.

Sorry for late comment, but how to properly use this? If I have for example a hand with child of constraint connected to cube, and want to save the absolute position and rotation, to make animation work properly even without constraint, do I have to use visual locRot? Because it doesn't work in that way, or I am doing something wrong, my hand goes in weird position and have weird rotation after applying visual locRot keyframe.


text:
blender bones not work in unity
I created a pants model, and bones for it in a blender. Bones work in blender, but when I import it to Unity, they are not working, actually, they are not doing anything...
I used automatic weights when I was rigging.
Blender:

Unity

Model: https://ufile.io/gd6vz

A little late, but maybe you need to highlight the FBX in Unity and change the rig to Generic or Humanoid. It might have exported from Blender as "None".

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


text:
blender bones are not working in unity
I created a pants model, and bones for it in a blender. Bones work in blender, but when I import it to Unity, they are not doing anything.
I used automatic weights when I was rigging.
Blender:

Unity:

Model: https://ufile.io/gd6vz

You should do all your animations in Blender and export them to unity. Unity isn't made for character animation.

Am I writing that I need moving bones for animations? I need a way to dynamically in-game move bones. Cloth bones will follow character bones.

Plesse add more information then, I'm not a fortune teller. Also: it was a comment, not an answer. Which format do you use for your assets? Maybe it is better to ask in a unity forum, there must be tons of tutorials on how to get armatures from Blender to Unity.

I posted a model, and I use the .fbx format as you can deduce from my question tag.

Usually, my models with armature work in unity too, but this don't, and I completely don't know why.

I have the exact same problem with both fbx and blender files in unity.

Like this https://www.youtube.com/watch?v=1FCqnx75HBs worked for me, so if following this tut doesnt work for you, you would has to be more specific. Also original Q is hard to say something.

This is a very common problem that happens when you export from blender and import to unity. The solution is simple. Open the .blend file and clear the scale by pressing Alt+S. This does most of the stuff but you could face some minor issues. So I recommend also clearing the location and rotation by pressing Alt+G (clear location) and Alt+R (clear rotation), after doing this, export as .fbx and import it in unity. I hope it helps.
Aster17
P.S If you want a step-by-step video tutorial, Below is the link:
https://www.youtube.com/watch?v=ysl0qYq5p9w
P.S.S This link is for versions 2.8 and above but should mostly work for versions 2.7 and above too. I am also providing the link to a QnA similar to your question if you prefer stuff in written format:
Exporting a rigged object to Unity (as FBX) produces massively distorted mesh, affecting normals

Worked like a charm; Thanks :)

You are welcome. I just like helping people who have trouble in blender.

Thanks, I was stuck on this for days :)

no prob. I have used unity so I know how difficult it is to use.


text:
X-Axis pose flip does not work properly in part of armature
I have a problem because one arm in my human armature doesn't want to flip correctly:

as you can see left arm position is invalid, what can cause that issue?
model: https://www.dropbox.com/s/7cez1pub1z78468/hero_test.blend?dl=0

Ok, it seem a problem with roll of your UpperArm_L bone, it isn't mirror of its counterpart.

Go to edit mode of your armature.
Select the UpperArm_L Bone.
Click the Bone tab.
set the Roll from -162.7d to 39.86d.
This would offset all child bones, do the above changes to roll for Forearm_L(35.73d), then WristIK_L(49.01d), then Wrist_L(50.17d) copy the negative of Right side roll. (Do it in said order)
All set to go.

But, my hand now is weird rotated, and if I correct that to don't have to do it in every animation, flip will not work. What I can do to set correct rotation and have valid x-flip?

can you show a screenshot, it seem to work fine in my case?

The roll value in my bone was set to -49.01d, am I watching something else? WristIK_R>Bone>Roll

Ok, I see UpperArm_R roll to be -39.86d, but UpperArm_L is -162.7d, change that to "39.86d" also change the "Forearm_L, then WristIK_L, then Wrist_L" roll in that order ... it works now (sorry didn't see multiple IK on hand), Ill change the answer to reflect the change. Can i know the idea behind why you did rig the character this way? I have seen either no IK on hand or only one IK on forearm, not on both forearm and upper arm.

Sorry but I don't understand you in part of your comment where are you talking about my weird IK setup. I am new to IK and this setup I was making from a course, what can I improve here?

usually I prefer no IK on hand, easy to work, but I have seen some with IK set on forearm only, not at all on upper arm. Can you point me to the tutorial you are following, could help me learn new stuff

my armature I was making according to this tutorial: https://www.youtube.com/watch?v=4yiC6pEQMAw


text:
Hard triangles on cycles render 2.79
I have smooth shading, and it works in any mode except in render:

(left render mode, right material mode)
Im using cycles and blender 2.79.
I tried switching all faces/edges/vertices to smooth manually and not working.

Do you have normal map in your shader node?

@FFeller yes I have, thats how it look: https://cdn.discordapp.com/attachments/600020090087276544/643500831533957150/unknown.png

That can cause artifacts like this. Render a picture without it, and if it fix the problem try to adjust the normal's settings.

Yeah without normal artifacts dissapeared, but what settings should I adjust?

Sorry, I don't really know. Try to decrease the strenght, but there are no too many options, you can try the bruteforce. Or may be modify your question, now you know what causes the problem.

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


text:
When I use 'Shift+B' to Zoom in to box, doesn't work
I have V 2.79. I've tried to use keyboard 'Shift+B'and it only has the dotted lines and doesn't form a Box. I've tried the View/Zoom Border command and it forms the Box, but zooms in on the Cursor. I've changed my User Preferences to Zoom to Mouse, and it still zooms to Cursor. Is there a bug in 2.79 that I don't know about? How can I fix this?

I have no idea why this is happening but i can give you some ways that it MAY fix it. Blender uses a central orbiting camera movement, this means that if you have zoomed in too much, the camera will be at the origin of the orbital system. You can zoom out and in with your scroll wheel and you can also use 'SHIFT+CTRL+(- or +)'. Hope this helped, if it did not please reply as i will try my best to help you!

Well, I've got some good news. Now, if I go to View/Border Zoom, I can form a dotted square, then Enter to magnify the area. However, by simply pressing SHIFT+B, it will not work. Thanks for your solution, which also sorta works.


text:
under what circumstances will a single vertex split into multiple when UV unwrapping?
I'm unwrapping a model, and a single vertex on the model is being represented as three (two joining onto one, are you can see in the screenshot) in the unwrapped view.
This is just one of four identical sections, and this is the only one that this happens to. So what could possibly cause this?

I think because the seam is going through that vertex. So it should be like that (unless you put the seam somewhere else).

Did you try removing doubles? There could be multiple vertices at the same position.

Is Keep UV and Edit mode selection in sync mode enabled in UV editor?

@BlenderDadaist I did, it helped with some other issues I was having, but not this one :)

It can be caused by a seam on the edge marked with green:

You can mark and remove seams in edit mode by selecting edges and going to Mesh > Edges > Mark Seam or Clear Seam:

You can also call the functions from Edges menu - ctrl+e in the 3d viewport.

You nailed it, thank you :) It's so obvious now that you mention it too :D


text:
How can I speed up Blender Cycles render time?
My problem is that my scene is going to take so long to render that I am questioning if I should even go forward. (PC parts and performance aside) Is there a way to adjust this file to still have it not appear grainy, but not take forever because of sample sizes and Denoising? I've tried so many setting variations that i feel like i'm going in circles at this point. I'll attach a blend file to this so hopefully you guys have more of an idea of what setting i can tweak. I just don't understand why such a low-poly scene would take so long to render a frame.. Thanks in advance for any insights you can offer!
Project File: http://pasteall.org/blend/index.php?id=50442

This question almost certainly belongs to blender.se anyway you can disable features. It is well known that just cranking blindly up quality settins will lead to this. In anycase the general answer is usually, no. Send your render to a farm.

Is there a reason why you are rendering so many render layers?

What does you mean when saying "long"? For example, average render time in Next Gen movie is 3.6 hours. Do you have more? I tested your scene and have 4.7 sec for render frame, it's very fast.

@Crantisz long is subjective. For many people anything less than realtime is slow simply because they have never taxed their machine. I remember having to have explained how a full on indirect illumination solution is slightly different from a game engines result, and this was 1997-1999. And even if its realtime theres quite many hours of optimisation involved. So by no means self evident, but then again I had a client request whiter pixels for their monitor ;)

Thanks for the comments i guess? haha

Possible duplicate of How to avoid noisy renders in Cycles?

File is down. -

https://blender.stackexchange.com/q/1367/30849


text:
Blender3D - Getting artifact geometry when subdividing?
So I'm trying my hand at Blender 3D again, but this issue keeps popping up when I try to use the Subdivision Surface modifier on certain shapes and objects. The following screenshots should illustrate pretty well what I'm referring to:

Any help would be greatly appreciated! <3

Generally speaking, ngons and subsurf don't play nice. You probably want to either replace the ngon with quads or avoid using subsurf.

Related: https://blender.stackexchange.com/q/89/599

could your share your object? https://blend-exchange.giantcowfilms.com/

Given the shape of the object I would also recommend using a mirror modifier, a solidify modifier and a subdiv modifier. That way you can control most of the geometry with just a 2d mesh. (Which should consist of quads).

There is an easy and dirty solution to use this model albeit with Ngon - select the big face in the middle and inset it with I. Then there will appear an edge loop around the border of the mesh and Ngon will remain in the middle on the flat area. This isn't a solution rather than a workaround in most cases (depending on the purpose of the mesh though)

Sub-D's and ngons really don't play well together - although there are tricks you can do to avoid the worst artifacts, if you're intending to use this asset for animation, or for game engine work, you really want all clean quads for topology: If necessary, finish up your modeling process with ngons and other junk modeling, then retopologise it.

If you look at the algorithm for generating new vertices and moving the old ones in Catmull-Clark subdivision, you can see that the first step is the creation of a 'Face-Point' at the average position of all the vertices of an existing polygonal face. That point then has a significant influence on the placing of newly-created edge vertices, and usually a less significant influence on the movement of existing vertices.
If you have a very large face, whose Face Point is miles away from the vertices being interpolated, and that face has concave inclusions, so the Face Point lies outside the face, there is nothing to stop the newly-created 'internal' vertices at the Face Points, being placed outside the polygons bounded by the (adjusted) existing vertices.
In the top pair of objects below, the quad dart has been subdivided once. The newly created Face Point vertex, not dividing an existing edge (white) has been placed outside the sickle shape bounded by the other points.
In the second pair, the dart has been cut up by hand, so its components are convex.The newly created vertices after one subdivision are all inside the areas bounded by the existing vertices.

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

Thanks very much for the explanation, that definitely helped me wrap my head around the problem! You guys are all awesome, thanks so much! =D


text:
Materials + Cycles = high-def image?
I am using Blender 2.8 and Cycles. When I zoom in on the 3D meshes in my scene, I can get very clear closeups.
When I render (using Denoising, 1200 samples, 1920x1080), zooming in on the resulting image shows smaller meshes in the scene as blurry. I worked hard to achieve a realistic look with many smaller meshes, so I want to be able to see them close-up in the rendered image.
If I do not care much about rendering times (that is, less than 2 days; preferably less than 1 day), is there a way to render a highly-detailed image of my scene? If so, how?
Thank you,
edsager

Perhaps it's because of the focus point of your camera?

Probably the resolution. 1920*1080 is enough to cover a screen but it's not enough to zoom into. Try doubling or quadrupling the resolution. Also, throttle back the denoising a bit if you're willing to do a lot of samples, as that will lose small details.

If there is something small and detail in your render, i will personally use a render cropping to render higher resolution on those part and combine them

@Hikariztw: When say you combine "them" are you talking about combining the cropped render to a different, lesser resolution render? Do you use software like Photoshop to do the combining? Are you able to combine the cropped and other render with precision?

@Joseph Brandenburg: I am using as the resolution 7680x4320, I eliminated Denoising, and have used 8000 samples. It appears that this rendering will likely meet my needs and the estimated rendering time is 38 hours. It has been rendering for more than 16 hours currently. I am amazed at the stability of Blender 2.8.

The answer by @Joseph Brandenburg was the most helpful, but I am not certain how to mark his response as the answer. Any direction would be helpful.

Don't worry about it, mine was a comment. It's hard to be sure whether to comment or answer properly since a lot of the questions on this forum require clarification.


text:
Do I need to bake in order to restart rendering to PNG files?
While rendering (using Cycles) 750 frames of fluid simulation as PNG files, my computer crashed. Blender was up to frame 102 when things crashed.
I reopened Blender to restart the rendering with frame 103, but it starts rendering as though it was on frame 1.
The error reported by Windows was:
Event ID: 41 The system has rebooted without cleanly shutting down first. This error could be caused if the system stopped responding, crashed, or lost power unexpectedly.

What do I need to do to get the renderer to recognize where it was in the rendering process?
If I need to bake the simulation to start rendering from frame 103, can that baked simulation be included in the packaged Blender file so I can use it on another computer?
Blender Setup:
Cycles Render Devices set to CUDA with both graphics card and CPU selected
Image Sequence->Overwrite deselected
Denoiser: OptiX
Device: GPU Compute
Max Samples: 2048
Computer specs:
Eluktronics Prometheus XVII
Intel i7 10875H
NVIDIA RTX 3070 Laptop GPU
32 GB DDR4 RAM
Laptop set to "Beast Mode" so that NVIDIA card is exclusively used.

Yes ... you have to bake fluid sim cache. BTW you have nicely structured and asked your Question, but you could use the same amount of time to do a simple test with default Cube and "Quick Liquid" to answer your self :) Note: Simulation Cache is baked into separate folder (you can set the path under properties) ... so if rendered on another pc you have to move it together. Or you can Export sim as Alembic file and import Mesh back into blend file

As a best practice, ALWAYS bake your physics sims into an external cache before rendering. :) Whether it's complex fluids/smoke or simple particles stuff - if you ever need to pause/restart your rendering (or even if not), rendering without baking first may have unpredictable results.

@vklidu, I am unsure how a "Quick Liquid" simulation would have helped. It is moot because although I was able to finally bake stuff (software crashed 3 times previously), laptop crashed while rendering.
It appears that I have no working graphics card to completely render my project and cannot access laptop files. Laptop was due to be backed up about 10 hours after it crashed. Anyway, vklidu, you were the first to respond with the answer and I would like to select your answer as THE answer if you would not mind changing your response to an answer.
Thank you both for your assistance.


text:
Object is rendering normal in the Preview (Cycles) but black in the Render.
Notice how the stove handles are black in the render and normal in the preview in the lower right

could you share your file? https://blend-exchange.giantcowfilms.com/

I don't have the same problem when I render, so I don't know what happens to you  :/


text:
Filling holes with grid fill
This required an even number of vertices to fill a hole. I'd like to do this with python script, but if the non manifold edge outline has a uneven number of vertices, it will not fill.
I may have five holes in a mesh that need filling in one go.
Any ideas how to make each hole have an even number with python?

Subdivide an edge, that will add a vertex (so that it is even). Apply grid fill. Dissolve the added vertex (should make a tri, but that's needed).

Yes that works..but I need the python script to detect that the number of vertices in an edge loop is uneven and make it even, so I can apply the grid fill.

I suppose the holes are selected or so? If yes with bmesh you should run along their edges (these edges are corresponding to only one face) so you can isolate each region (hole). From that count each loop and see which is even or not.


text:
Add object constraints and link to an object
I am hoping to get some help. This is the code I am using, but the constraint has no effect.
bpy.ops.object.select_all(action='DESELECT') #deselect all object

bpy.data.objects['A'].select_set(True)
obj = bpy.context.window.scene.objects['A']
bpy.context.view_layer.objects.active = obj
o = bpy.context.object

add_constraint = o.constraints.new('LIMIT_ROTATION')

target = bpy.data.objects['A']

bpy.context.object.constraints["Limit Rotation"].use_limit_z = True

bpy.context.object.constraints["Limit Rotation"].influence = 1
bpy.context.object.constraints["Limit Rotation"].min_z = 0.0872665
bpy.context.object.constraints["Limit Rotation"].max_z = 0.0872665

bpy.context.object.constraints["Limit Rotation"].owner_space = 'LOCAL'

Well-intentioned tip: Getting no help is most likely due to a bad question. From personal experience, I think the more effort you put into your question (research, your actual state, what you've tried, describing your actual goal, etc.), the quicker you'll get help and the better are the answers. Your questions mostly looking like "drive-by-questions", it's just a pile of code and little effort.

Some tidy up.
In addition to @Leanders answer re limiting the constraint when using transform (which I've added in code below),  Note doesn't stop you setting  the z rotation property in UI to whatever..
If we wish to use context, would select those to add constraint to before script and then run from the context.  This is the fundamental concept of the context-operator paradigm. eg to run on object "A" select only "A" and run script below.
Test script. Adds constraint for all selected objects.  Note uses the reference to the newly created constraint con. It will have the default name only when there are no others with that name. Otherwise you add a new one and set the old one.
I use context = bpy.context in test scripts, so they can be simply copied and pasted into operator or panel code later, where context is passed as an argument.
Added code to remove other constraints of same type first.
import bpy

context = bpy.context

ob = context.object

for o in context.selected_objects:
    #o.constraints.clear() # removes all

    # remove other constraints by type
    lrcs = [c for c in o.constraints if c.type == 'LIMIT_ROTATION']
    while lrcs:
        o.constraints.remove(lrcs.pop())

    con = o.constraints.new( type='LIMIT_ROTATION')
    con.use_limit_z = True

    con.influence = 1
    con.min_z = 0.0872665
    con.max_z = 0.0872665

    con.owner_space = 'LOCAL'
    con.use_transform_limit = True

If you know the name of the target object is "A".  Unless you are going to later use operators on this object, there is no reason to set it as active and selected (context) to add modifiers to it this way.
scene = context.scene
o = scene.objects.get("A") #  if there is no object named A it will be None
if o:
    con = o.constraints.new(...) # as above.

For other constraints that need a target set, for example to add a constraint to each selected targeting context object
obs = context.selected_objects #safe to manipulate this prop
obs.remove(context.object)
for o in obs:
    con = o.constraint.new(...)
    con.object = context.object

The influence slider only works after I "Clear Parent" of the object, not using Python. The object wasn't parented.

Are you talking about a child of constraint?

The script adds the constraint perfectly, however the influence slider (object constraint panel) will have no effect, unless I select the object the click ALT P and "clear parent". This is confusing me a little because the object wasn't parented in the first place to any object.

If you are testing your constraint by trying to transform the object, you have to enable the For Transform checkbox.
bpy.context.object.constraints["Limit Rotation"].use_transform_limit = True


text:
Text editor to run parts of a script
Occasionally my script doesn't work, so I cut parts of it out and paste it in a notepad document. Then I retrieve it back..this is tedious work.
Is there a way in blender text editor to run parts of a script?

Multiple text windows? You can setup a new "Screen" to hold them. Or create a add-on that contains your scripts with shortcut keys/menu to activate them.


text:
If else function
I have two objects "ObjectA" and "ObjectB". Object A when selected extrudes up in the z direction. Object B when selected extrudes down in the z direction.
Currently I have two different buttons each having their own script. One for A the other for B.
I would like to have one button. So this is where I need a script and it gets tricky. If Object A is selected, it will run the script, else it does nothing. If object B is selected it runs the script, else it does nothing.
I hope I am descriptive enough..

import bpy

ObjectA=bpy.data.objects['Cube']
ObjectB=bpy.data.objects['Cone']

class ObjectAOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.objecta_operator"
    bl_label = "Simple ObjectA Operator"

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

    def execute(self, context):
        context.active_object.location[2] += 1
        return {'FINISHED'}

class ObjectBOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.objectb_operator"
    bl_label = "Simple ObjectB Operator"

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

    def execute(self, context):
        context.active_object.location[2] -= 1
        return {'FINISHED'}

class HelloWorldPanel(bpy.types.Panel):
    """Creates a Panel in the Object properties window"""
    bl_label = "Hello World Panel"
    bl_idname = "OBJECT_PT_hello"
    bl_space_type = 'PROPERTIES'
    bl_region_type = 'WINDOW'
    bl_context = "object"

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

        obj = context.object

        row = layout.row()
        row.label(text="Hello world!", icon='WORLD_DATA')

        row = layout.row()
        row.label(text="Active object is: " + obj.name)
        row = layout.row()
        row.prop(obj, "name")

        row = layout.row()
        if obj == ObjectA:
            row.operator("object.objecta_operator")
        if obj == ObjectB:
            row.operator("object.objectb_operator")

def register():
    bpy.utils.register_class(ObjectAOperator)
    bpy.utils.register_class(ObjectBOperator)
    bpy.utils.register_class(HelloWorldPanel)

def unregister():
    bpy.utils.unregister_class(HelloWorldPanel)
    bpy.utils.unregister_class(ObjectAOperator)
    bpy.utils.unregister_class(ObjectBOperator)

if __name__ == "__main__":
    register()

Try this simple example whether it satisfies your requirements.

You can simplify this massively by moving the if statement into the operator.

@timodriaan how exactly? could please provide an example?

Delete one of both operators and copy the if/else from draw() into the other operator's execute method. Then replace the call to the operators inside the if/else with the actual code (context.active_object.location[2] += 1 e.g.)

@timodriaan Yes, I agree that in this simple example it makes sense to have less code. But initially I separated into two operator because in the main question it was mentioned "two different buttons each having their own script". And I thought having two operators simplifies understanding of the logic.


text:
Can mesh analysis colours be applied to face material colour
The mesh analysis overhang tool gives me a coloured heatmap in edit mode. Is there any way to use these colours and apply them to the face material colours, so they are visible in object mode? perhaps using a python script.
I am using the 3d print toolbox at the moment to colour my faces, yet the mesh analysis tools gives a clearer indication.
Here is a comparison. 3d print toolbox coloured in object mode and mesh analysis in edit mode.

It has come to our attention that you rarely accept answers to your questions. This site works best if you upvote helpful answers, and if you feel it completely solved your problem please consider marking it accpeted

It is currently not easy to get the data out of the mesh analysis tool via Python. The data is not available in Python. But there are possibilities.
Solution: implement overhang in python
Implement the mesh overhang functionality yourself. The C-code is located in source/blender/blenkernel/intern#statvis_calc_overhang and is quite easy to implement.

Calculate the face normals.
Determine angle between the face normal and the chosen axis (normalized dot product).
Use a color ramp between the angle to get a nice coloring.

Solution: change the API
Ask the developers or patch blender yourself to change the API so that the data can be read. The data is currently stored in the edit_bmesh so it might become part of the bmesh api. Personally I would suggest a more cleaner approach outside bmesh
Solution: Use as_pointer and interp the internal structures of Blender
Use as_pointer to get a reference to the internal DNA structure of the mesh and use ctypes to read the data from the internal structures. But note that changes in ctypes might make your code invalid.

I am looking at this project again and it may be easier for me to select all the faces which are not selected by the mesh analysis. My python is not as advanced, please help?


text:
Change from global to local
I am working in global, however when I enter edit mode I would like to change to LOCAL. The python code is missing something.

bpy.context.scene.type = 'LOCAL'

The transform orientation you describe is a property of the SpaceView3D. If you are using operators in your script look at passing the constraint_orientation parameter available in many operators. It would be better to share your script and explain the final result you want to achieve, you may be better off using a matrix with bmesh operators.

On the 3D header, there is a button where you can change it from Global to Local.

Hope that answers your question :)

in python script please.

OK, I wasn't sure if that was what you wanted.  Unfortunately, I don't know python :) :(  Sorry


text:
I see a lot of noise and fireflies with Glass BSDF Shader
I made a cube in Blender. The cube has BSDF Glass shader. When I render it there is a lot of noise and fireflies.
I tried everything: Change clamp, change light bounce, denoising, glossy filter, more samples... just everything. I don't know what to do now. When I removed the cube there wasn't noise. The light is point light and in the center of the cube. Blender 2.81 Beta, Cycles.
https://i.sstatic.net/hwrxu.jpg

Have you tried turning on the denoiser?

@person132 How to turning it on?

Did you uncheck caustics?

Glass is something that causes a lot of noise in a cycles. While the proper solution is lots of samples, there are some options to get quicker acceptable results.
The first option added to 2.79 is Denoising
2.81 adds a new denoise composite node that uses Intels Open Image Denoise. CGCookie has a look and comparison.
There are also third party addons such as D-Noise.


text:
Animation while moving
I am an absolute beginner started a couple days ago. I downloaded one of Mixamos walking animation, and put it on,"stay in place" before I downloaded it. its working fine. but how do I move that animation from one location to another while doing the animation? also,lets say I want my character to walk then gradually start to run using a walk and run animation from Mixamo, how would I do that?


text:
When editing an object in 2.93, how do you stop the other objects from becoming translucent
Very often I need to edit the mesh of an object which lies on top of another object. The definition of the underlying object turns translucent or shaded. Is there any way to stop this. Previous versions of blender did not do this. The lower image is what it should be.

 Are you asking about this "Fade Inactive Geometry" setting in the Overlays menu?


text:
Adjusting the the number of Vertices in a non-manifold edge
I have two separate objects. Object 1 (Grey) has 154 vertices in the Non-Manifold Edge and Object 2 (Orange) has 112. I would ideally like to have an equal number, so when I join these two objects and perform a Bridge Edge Loop, the result will be an even mesh of quads.
Perhaps someone could help with a python script to reduce the 154 to 112?
Merging by distance is not possible, as the edges in both objects are different in length.

Is it to do it for one model or several times? Because if one time of few, I don't think the operation is worth a script.

Merging by distance, hitting M > Merge by Distance? This merges vertices that are closer to each other than the set distance. It's irrelevant if those edges are different in length - because all vertices within this distance are merged into one.
It won't bridge gaps between edges further away than the vertices defining the edges.
But you can use it to reduce the vertices on the edge which has too many. With that edge selected, choose Merge by Distance and adjust the Merge Distance until it says "Removed 42 vertice(s)". If you don't get that number, try less and merge some manually.

It is for many different objects lemon, so a script would be required. Merging by Distance seems the way to go Gordon, yet the user would have to do many calculations.


text:
Select object pattern and then selecting the object
I import and object C27389_Part into the scene. I search the part by using bpy.ops.object.select_pattern(pattern="*_Part"). That's all good, however it is selected (in red outline) and not active (orange), so I cannot do anything with it at this stage. Please help. I have searched and yet cannot solve this simple riddle. bpy.context.scene.objects.active will not do it.

Suggest try: bpy.context.selected_objects[:] after the import, and get rid of the operator. To make it active, read my answer to one of your previous questions: https://blender.stackexchange.com/questions/132825/python-selecting-object-by-name-in-2-8/132829#132829 ... "# Make the cube the active object"

The object is imported in OBJ format and is part of an assembly of objects and hence it is not selected at all at import. The pattern code detects the object, as it would do with others with a similar name. In this event however there is only one of these objects, so i need not worry about similar objects. Sorry, I can't figure it out.

All objects are selected after the import, always. No need for that operator (pattern detection) as well as no need to say sorry... Since you're searching for one specific object, suggest iterate through all the imported objects and check for their name -> https://docs.python.org/3/library/stdtypes.html#str.endswith

This works after selecting the pattern.
OB = bpy.context.selected_objects[0]
OB.select_set(state=True)
bpy.context.view_layer.objects.active = OB


text:
Adding a new material to a grease pencil
I have added a grease pencil and need to add a new material slot in python. I have used this script for active objects, however I am missing something with the grease pencil.
activeObject = bpy.context.active_object
mat = bpy.data.materials.new(name="MaterialName")
activeObject.data.materials.append(mat)

bpy.context.object.active_material.diffuse_color = (0.121583, 0.144091, 0.8, 0.729885)

The script below enables you to add a new material slot for your active grease pencil.
import bpy

ob = bpy.context.active_object  # Must be a GPencil object
mat = bpy.data.materials.new(name="Mymaterial")
bpy.data.materials.create_gpencil_data(mat)
ob.data.materials.append(mat)

Hi Michael! Can you please add any explanation to your answer to make it more useful? Thanks


text:
Active Gizmo show all even when axis locked
Just a general question, which has puzzled me. The 2.81 active gizmo whether in Move, Rotate or Scale always shows everything. Previously it would only show the axis which were unlocked. When locking, as in the photo, only the Z arrow would appear in previous versions.
Am I missing something, can this be changed?

You have changed the orientation for the gizmo. Locking the global X,Y-axes will cause the X,Y-axes to be hidden in the gizmo only if the gizmo is set to global or default orientation.
The setting for this is found in the top left of your screen. Do not confuse the Gizmo Orientation with Transform Orientation. The transform orientation (middle of screen) is used as the when you use a hotkey such as G to edit an object.


text:
Python code, copy dimension from one object to another
I require some help please. I select one object (A), then shift to select another (B). Then I require some python code to copy the X dimension from (A) to (B).
The X dimensions for both objects are the same after the script is run.

Swap A and B
For the most part, blender works the other way. The last selected object is the active object,aka  the context.object or context.active_object used by operators. An attribute of the context object can be assinged to all the other selected objects, in the list context.selected_objects
Hence select B [C, D, E, F...] then A, A has context. The x dimension of A is set as the X dimension of B and other non active selected objects.  (and lazily A too not that it matters in this case as it is same)
import bpy
context = bpy.context
x = context.object.dimensions.x
for o in context.selected_objects:
    o.dimensions.x = x

Note: if an objects data has a zero dimension, for instance default plane in Z. there is no way of scaling to make its z dimension non zero.

How would you change this to get all x,y,z  dimensions to be the same length?

ob.dimensions = (x,) * 3


text:
Selecting objects by name starting with
I have many objects in the scene as they have been duplicated. pad, pad.001, pad.002 etc etc.
I require a python code to select all of them by name.. name starting with 'pad'
Thanks in advance.

The following snippet iterates through the objects in the scene and checks if their name matches a prefix. If it does it's added to the list.
objs = [obj for obj in bpy.context.scene.objects if obj.name.startswith("pad")]

If you want to select them, as in selecting them in the scene, then you can do the following for 2.7x:
for obj in bpy.context.scene.objects:
    if obj.name.startswith("pad"):
        obj.select=True

For 2.8:
for obj in bpy.context.scene.objects:
    if obj.name.startswith("pad"):
        obj.select_set(True)

You could also use:
bpy.ops.object.select_pattern(pattern="pad*")

Traceback (most recent call last):
File "<blender_console>", line 3, in
AttributeError: 'Object' object has no attribute 'select'

Is this for 2.8, I've tried the script. it will not select the objects.

@MichaelTeiniker updated the answer for 2.8.

works, how would I make the active objects selected? I have tried this, no luck. activeObject = bpy.context.active_object

@MichaelTeiniker I'm not sure what you mean. Active objects are already selected.

before using the script another object was selected, so I use bpy.ops.object.select_all(action='DESELECT') to deselect all objects first, then use the script. This will select all "pad" objects and highlight them, yet the previous object name is still displayed top left. I'm trying to join all "pad". Message appears "Active object is not selected mesh"

@MichaelTeiniker I see, that's because you have selected objects but not an active one. You can make of the objects active by using bpy.context.view_layer.objects.active = obj were obj needs to be one of the objects from bpy.context.scene.objects.


text:
High resolution Output for Blender 2.8
I need some advice for the output settings in Blender 2.8...
When I render an image with 2000px x 2000px the output has the resolution of 72x72.

Now when I render the same image with 3000px x 3000px the output resolution is... still 72x72. When zoomed in the image shows ugly pixels...

So: Is there a chance / way to have the resolution output at 300x300 (ppcm)? The only solution I came up with is to increase the image size massively... and therefore the rendertimes insanely.
Let's see if you guys can come up with an answer. Thnx

What image format are you using.

I have no idea what you 72*72 resolution means but when it comes to digital images only pixel resolution matters. If you have a 2k by 2k image it's already a pretty high resolution image. The aliasing your see on image 2 is most likely do to seeing a re-scaled image displayed into a viewer (i.e pixels aren't lining with your screen, therefore you encounter aliasing).

It's dots per inch (DPI). @ArthurBlaquart is absolutely right here.

I think you mean dpi – dots per inch – markets default high resolution print setting.
If you're not printing, only pixel resolution matters, and it's basically the same scenario with a different resolution:

a 3000x3000px image at 72 dpi is 105x105cm.
a 3000x3000px image at 300 dpi is 25x25cm.

A high dpi image not necessarily will be crystal clear when you zoom in. Only the size in pixels count when you're looking at the screen.


text:
The menu with options for Sapling Tree Gen creation is no longer available
I using Blender 2.78 and this add-on:
Add Curve: Sapling Tree Gen
Problem: add-on menu is disappeared.
I created tree and clicked Undo button to cancel action , but the menu dissapered. Turned into new menu Operator.
Before

After (dissapered menu is marked red. This is my problem.)

Any problem solution? I'm very sad.

This is normal behaviour for operators in blender.

Either edit those options until satisfied with the result or add another tree and edit its options. You can export preset while menu is accessible to save options for later use

Problem solution is Python console , Settings or blender files. But how to edit Settings or Python or Files?

So how to edit this?

What do you want to edit? How is Python console and blender files are related to this? As is stated in the linked answer you can't edit the object (any object in Blender except for rare cases) after it was created and another operation was done (e.g. you moved the tree created with Sapling addon). This is thoroughly explained in the linked answer. If you have any other question (not this one) please ask it as a new question.


text:
Blender Sunset Scene
How to create  sunset scene in blender 2.78? I need sunset scene such:

animated
without using any image captured sunset
look like this:

All videos and tutorials creates sunset using sunset images. But how to create sunset without any image and animated?

Tutorial in                                                         blender.stackexchange.com/a/41307/1853 makes sun in blender but sun is not animated.


text:
What is the best topology for this odd shape?

The existing mesh works, but its a mess, not a mesh ;-)

Unless you need further modelling or UV Unwrapping bezier curves sound like the obvious choice, so you don't even have to worry about topology at all

Could you upload image of this shape? Or even blend file to: http://blend-exchange.giantcowfilms.com/?

got  some suggestions, can you give topview, or reference image?

Version 1: Low poly.
This is topology which is focused on small amount of polygons. Edge Flows aren't so good and using Proximity Loops will be pretty hard, but nevertheless both methods are working best with Bevel Modifier (Angle) + Subdivision Surface.
Topology:

Result:

Version 2: Edge Flow.
This method is focused on proper Edge Flows. You can use here Proximity Loops to sharpen edges but as stated in Version 1 it's better to use modifiers.
Here we need to use two ngons to stop inner loops before 'big circle'.
Topology:

Result:

How to make it.
I will not create whole step-by-step answer here as methods used was just Blender 101 modeling. I've started with outer Circle then created another one in the middle, scale it to have egg shape and from there it was just manual Extruding, Moving, Joining etc. I've also used two add-ons here: LoopTools > Space and F2 to speed up my work. They both are built in in Blender, you will just need to turn them on.
Notes.
My model is pretty uneven as I was modeling it 'by hand' with distorted reference image. If you have good .svg shape, you can import it and use it edges to snap vertices to them.
Blend file.
Here is my blend file. You can check different layers for both versions, also you will be able to see detailed values for modifier I've used.

Very nice answer.  Out of curiosity, is there a modelling reason for finishing the inner loop with ngons?  Is it just for segment symmetry?

@bertmoog this ngon is forced by two loops on those 'wings' part of the mesh. In Version 1 one triangle is stopping edge loop from going on to the outer circle. In this situation it was only thing I could make out of it and letting loop to go further would 'break' smoothness of this outer circle.

I don't know that this is the best topology, but I'd probably go for something like this:


text:
Why must I offset a scene in VSE if the start frame is not 0?
I am using VSE to layer a scene (alpha over) over a video created using a different app, rendering the result as a jpg sequence.
This was all working well, until I made some changes and, rather than rendering from the start, decided it would be more efficient to re-render only the modified frames.
When I changed the start frame in the render tab, rendering started from the wrong frame of the scene, although the background video was still being rendered correctly. This was the case regardless of whether the sync mode was set to AV, none or frame-dropping. I also noticed that the cursor jumped around during rendering.
After some experimenting, I realised that the VSE was offsetting the scene by the same amount as the starting frame; e.g. if I start rendering at frame 100, it would begin rendering frame 200 from the scene over frame 100 of the background video.
I thought I must have inadvertently changed some obscure setting, so started a fresh blend and found the same behaviour, even if there is no background video; as soon as you add a scene to the VSE, and begin rendering from a frame other than 0, Blender will start rendering the scene at twice the start frame set in the render tab.
Now that I know this, it's only a minor inconvenience, solved by offsetting the scene in VSE by the same amount as the start frame. However, I'm curious - is there a reason for this odd behaviour, or merely a bug?


text:
How can I get text to "snake" along a path
I want to get my text to both move and deform ("snake") along a path. I can get either of these to work but not both.
Here is an example of using the Follow Path constraint on the text:

And if I disable Follow Path, I can get the text to deform using the Curve modifier:

But when I try to combine them, the location of the text is displaced from its origin, so the deformation does not match the curvature of the path:

It seems there should be a way to get these two to work together properly, but I've not been able to find it.
Any advice would be most appreciated.

Use the curve modifier only.

Thanks @DuarteFarrajotaRamos - that seems to work. So instead of using the constraint to animate, I just insert keyframes along one axis?

yes you only animate the progress on the Path. The Problem why it's offset if you use both is because it's additive, the Transform is applied twice

Use curve modifier and only animate linear movement for text object along the axis you have on the curve modifier.


text:
How to get wind to affect hair particles with group or object render
I am using a group to get more variation in grass stalks as per this tutorial. Unfortunately that tutorial was for a still image so did not cover wind or other force fields.
From various other tutorials I set up a wind force field. If I set the render of the grass to "Path" as can be seen, the effect is very strong.

However, as soon as I change the render to "Group" the wind effect disappears.

While beginning to write this, I noticed a question Why does not wind force field affect grass field made with hair particles?
In that case the user had used an "Object" render and had the same problem. I checked and sure enough, if I change "Group" to "Object", the wind also has no effect.
So my question is: Is there some way to have a hair particle system affected by wind if using object or group render, or is it limited only to path render?
For reference, here are my particle settings:

Check this out: https://blender.stackexchange.com/questions/51259/how-can-i-use-hair-dynamics-with-instanced-geometry-and-have-it-deform-like-hair. You will have to add several systems if you want more than one object type though, but I don't think that will be a bid deal.

Thanks @Brenticus. The example does use "Path" render, but it did give me one important hint - I had "Location" deselected in the force field.
As can be seen in my tentative answer below, that half solved my problem.

The reason for using the paths was to define the shape of the object. The particle instance modifier is what adds the objects, and then makes them follow the path of the hair. As far as I know this is the only (or at least best by far) way to make the particles themselves react to force fields and deform.

Thanks for the clarification @Brenticus. I don't quite understand what you mean by "object". If I select either "Object" or "Group" in the Render section, a field appears where you can select an object or group that will take the place of the standard hair particles. If you select "Path" in that section, that field disappears.
My problem was that as soon as I selected either "Object" or "Path", the wind had no effect on the grass particle system.
I got the wind affecting the grass by changing Initial Rotation to "Velocity/Hair", but to be honest, I don't fully understand WHY this works.

The reason for using paths instead of objects or groups is because we can then use these paths as guides for the objects to deform along. To do this, you will need to add a particle instance modifier to the grass object itself, which will then make each grass object follow the path of the hair particles. Check out the link I added above for a better walkthrough. The downside to this is that you can't seem to rotate the particles, so you wwould have to have a bunch of different rotated grass objects and a lot of particle systems.

The other option is to add a vertex group to each grass object that is a gradient from 1 at the bottom to 0 at the top, then convert your particle system to a mesh in the modifier tab and use softbodies. The vertex group can be used to control the stiffness of the grass so it doens't fall over.

Finally I understand what @Brenticus was getting at when he kept using the word "deform"! If you use either the "Object" or "Group" methods to render the particles, you can in fact affect the rotation and/or location of the objects. Here is a video showing that much:

But what is missing is (in this case) the grass stems deforming along the hair particles. Here is the comparison:

So the answer to my original question is outlined below in my previous answer. I only need to add that you must rotate the object(s), generally 90 degrees along the y-axis because "hair particles use the global +X axis as 'up'". That is the case for either method.
That method works if it's not important to deform the object(s) along the hair particles, and you get the benefits of "Group" options, which are quite powerful. However, in making the comparison videos I noticed that the render time was considerably longer using that method, which is another thing to keep in mind.
If it's important for the objects to deform along the hair particles, then I strongly suspect Brenticus is right and that using a particle instance modifier as per this post is just not the best but the only way of doing it. I spent several hours looking for a way to get group objects to deform and could not.
Previous answer (for Group and Object render method)
The first part is the "initial orientation" which I had set to "Global Z" so that the grass grows straight up. Changing this to "Velocity Hair" was one necessary change.

The second part is in the force field wind settings. Under "Effect point", I had deselected "Location" because I only want to affect the rotation of the grass stems. I guess that thinking was faulty. Selecting "Location" got the grass moving.

So I now have the wind affecting the grass.

If you follow the above answer and it still doesn't work, check your Viewport Display > amount. The amount MUST be turned up to 100 for it to show in the viewport.


text:
Selecting vertex on z axis using python
I've been searching high and low for a python script to select the highest or lowest vertex or vertices on the z axis in an object. I want to add these to a vertex group so I can use them in my code.
Any help is appreciated.. thanks.

import bpy

# get the object and its vertices
obj = bpy.context.object # edit: now gets the currently active object

# edit: to select vertices we have to be in OBJ mode first:
bpy.ops.object.mode_set(mode="OBJECT")

verts = obj.data.vertices
# get the z-coordinates from each vertex and the maximum
z_coords = [v.co[2] for v in verts]
max_z_coord = max(z_coords)

# get list of all vertices that have the max. z-coordinate
max_verts = [vertex for vertex in obj.data.vertices if vertex.co[2] == max_z_coord]

Edit:
To select vertices, one way is to change to OBJECT mode,
select the vertices, and change back to EDIT mode. (Another one would be to use bmesh.)
Notice that I've also changed two lines in the original answer above: We have to work on the active object (obj = bpy.context.object) and we have to be in OBJECT mode (bpy.ops.object.mode_set(mode="OBJECT")).
The selection and switching to EDIT mode is done by appending these lines to the script:
# select the vertices:
for v in verts: v.select = False
for v in max_verts: v.select = True
# set EDIT mode's select mode to "vertex select"
bpy.context.tool_settings.mesh_select_mode = (True , False , False)
# change to EDIT mode
bpy.ops.object.mode_set(mode="EDIT")

I've tried, but nothing seems to happen. The cone, when I enter edit mode, does not select the top vertex. I'm using 2.8

I've edited my answer to select the vertices in edit mode as well. Let me know if it still doesn't work or if you don't understand something.

Edit BMesh version
An edit mode script to select the maximum z value vertices.
Uses local space, edit to space = 'GLOBAL' for global space.
Uses a tolerance of TOL = 0.0000001 to check between values. Edit to suit. Set to zero for no tolerance
Sorted the vertices in z order.  This is less efficient than finding the max.  If though you also want the min the median, the top 10 etc, will come down to simple list slicing.
import bpy
import bmesh
from mathutils import Matrix

space = 'LOCAL'  # or 'GLOBAL'
find = 'MAX' # or 'MIN'
TOL = 1e-7
ob = bpy.context.object
M = ob.matrix_world if space == 'GLOBAL' else Matrix()
me = ob.data

bm = bmesh.from_edit_mesh(me)
verts = sorted(bm.verts, key=lambda v: (M @ v.co).z)

bm.select_flush(False)
#bm.select_flush_mode()
z = (M @ verts[-1 if find == 'MAX' else 0].co).z
for v in verts:
    v.select = abs((M @ v.co).z - z) < TOL
bm.select_flush(True)

bmesh.update_edit_mesh(me)

For example to add the top 3 verts to a vertex group vg named "Group"  Would need to do this in object mode
bm = bmesh.new()
bm.from_mesh(me)
verts = sorted(bm.verts, key=lambda v: (M @ v.co).z)
vg = ob.vertex_groups.new(name="Top 3")
vg.add([v.index for v in verts[:3], 1.0, 'REPLACE')
vg = ob.vertex_groups.new(name="Lowest 3")
vg.add([v.index for v in verts[-3:], 1.0, 'REPLACE')

Would this work for 2.79 as well?

Yes. Need to replace @ (at) with * (asterisk)  Assumed 2.8

In order to get the Y vertices, would you replace the "z" with "y"?

Yes that would work.


text:
OBJ files and vertex colours
I would like to import a dental scan obj file. When the file is opened in windows 3d print viewer the tissue and tooth colours are visible.
When you import into blender, the colours do not show up. This may be a simple setting? Here is a photo of windows Print 3d Viewer.

Are you talking about actual per-vertex colours or textures?

These scans have vertex colours assigned in the obj files.

Have you checked that they are imported under mesh data and just not showing? Also for blender internal rendering of them, see https://blender.stackexchange.com/questions/114726/render-vertex-colours-in-blender-internal

Nothing seems to do this, a bit lost here.

Looks like the importer ignores the vertex color. Might be a similar bug to the one in the ply importer that has been fixed some time ago. https://developer.blender.org/T63227

Checked the source of the .obj importer and it doesn't seem to process vertex color at all. So technically not a bug, but a missing feature (unless this is mandatory by some standard).

Just checked, the specification of the .obj format doesn't allow vertex color, so what some software does is an extension of the format which is not conforming with the standard. I'd suggest exporting with a different format such as .ply which allows to use vertex colors and can be properly read by Blender.

Importing PLY works perfectly.

The .obj format specification doesn't contain any description of vertex color attributes. Some software like MeshLab or Agisoft Metashape extend the .obj format and include the vertex colors after the coordinates.
v 3.112696 -9.640543 15.350909 0.592157 0.517647 0.537255

Since it is not covered by the specification, Blender provides no ability to import vertex colors. There are other formats that do allow to store vertex color which can be imported into Blender, for example .ply.


text:
Selecting vetex furthest from blender floor
I am seeking help with a script. Essentially I have any object in the scene and I need to select the vertex furthest away from the blender floor in the z direction. So, if you had to move the sphere under the floor, the script would then select the lowest point, away from the floor.

Maybe check: https://blender.stackexchange.com/a/139291/35559

Edit Mode
import bpy, bmesh
from bpy import context as C

ob = C.object
me = ob.data
bpy.ops.mesh.select_all(action='DESELECT')
bm = bmesh.from_edit_mesh(me)
key_global = lambda v: abs((ob.matrix_world @ v.co).z)
key_local = lambda v: abs(v.co.z)
v = max(bm.verts, key=key_global)
v.select = True
bmesh.update_edit_mesh(me)

Object Mode
import bpy
from bpy import context as C

ob = C.object
me = ob.data
me.edges.foreach_set('select', (False,)*len(me.edges))
me.polygons.foreach_set('select', (False,)*len(me.polygons))

key_global = lambda v: abs((ob.matrix_world @ v.co).z)
key_local = lambda v: abs(v.co.z)
v = max(me.vertices, key=key_global)
me.vertices.foreach_set('select', [i==v for i in me.vertices])

Numpy
I don't know how to multiply the numpy coords by matrix efficiently, so I just transform the object to world space and back:
import bpy, numpy as np
from bpy import context as C

ob = C.object
me = ob.data
me.transform(ob.matrix_world)
me.edges.foreach_set('select', np.zeros(len(me.edges), dtype=bool))
me.polygons.foreach_set('select', np.zeros(len(me.polygons), dtype=bool))

coords = np.zeros(len(me.vertices)*3, dtype=np.float32)
me.vertices.foreach_get('co', coords)
abs_z = np.absolute(coords[2::3])
sel = np.zeros(len(me.vertices), dtype=bool)
sel[np.argmax(abs_z)] = True
me.vertices.foreach_set('select', sel)
me.transform(ob.matrix_world.inverted())

Select the lowest vertex from a object.
You need check the object type first
import bpy, bmesh

# access active object
obj = bpy.context.object
# or access by name
# obj = bpy.data.objects["Cube"]

me = obj.data
bpy.ops.object.mode_set(mode='EDIT')
bm = bmesh.from_edit_mesh(me)
bm.verts.ensure_lookup_table()

# get verts in global space
# A faster way is to use numpy, see: https://blender.stackexchange.com/questions/6155/how-to-convert-coordinates-from-vertex-to-world-space
m = obj.matrix_world
verts = (m @ v.co for v in bm.verts)
print(verts)

z = 1.7976931348623157e+308
ind = 0
for i, v in enumerate(verts):
    if v[2] < z:
        ind = i
        z = v[2]

# deselect all verts
bm.select_mode |= {'VERT'}
bm.select_flush_mode()
for v in bm.verts:
    v.select_set(False)
# deselect all verts END

v = bm.verts[ind]
v.select_set(True)
print("local location:  ", v.co)
print("global location: ", m @ v.co)

bmesh.update_edit_mesh(me)

This needs a fix, you need to set the initial z to -1, and instead of if v[2] < z, do if abs(v[2]) > z. BTW, whenever you're sorting like that, you can assign float('inf') or float('-inf'), however, more pythonic is v = max((v for v in bm.verts), key=lambda x:abs((m @ x.co).z)), no need to ensure lookup table when you're iterating over the verts and don't care about indices, cheers!


text:
Setting the alpha value of an object
I have a few objects on the scene, each having a different colour, with an alpha value of 0.5. I would like to select one of the objects without changing the colour and only changing the alpha to 1. Is this possible?

Sure. Code? Version of blender? Research? Shader setup? Principled shader? 2.?

I only want to change the 0.5 to 1 ..bpy.context.object.active_material.diffuse_color = (0.30748, 0.8, 0.274145, 0.5)

You seem to have figured it out. Change the 0.5 to 1 and run the script

just set the last value to 1:
bpy.context.object.active_material.diffuse_color = (0.30748, 0.8, 0.274145, 1)


text:
Selecting a specific Collection by name and then deleting it
I have been referred to a link which has already answered this, however the script in the linked page removes all of my collections.
My collection is called "Animation". I am not currently working in this collection. So I am wanting to select this collection and delete it.
The script i was referred to deletes everything. Thanks for the help...
import bpy
context = bpy.context
scene = context.scene

for c in scene.collection.children:
    scene.collection.children.unlink(c)

Please don't re-ask the same question multiple times, edit your original post and explain why the linked dupe doesn't solve your problem to re-open it. I think your other one was closed instantly because of its poor quality, a one-liner without showing any effort. Please take your time and read the help files, in this case: https://blender.stackexchange.com/help/closed-questions so we don't have to explain to you how this site works again and again. Thanks

Use Context

So I am wanting to select this collection and delete it.

Further to Blender 2.80: Delete Collection or clear the intial scene in scripting mode
As is the case with most of blender making  active in the UI gives it context.
The context collection can be the scene collection so don't want to delete that.
import bpy
from bpy import context

remove_collection_objects = True

coll = context.collection
scene = context.scene

if coll:
    if remove_collection_objects:
        obs = [o for o in coll.objects if o.users == 1]
        while obs:
            bpy.data.objects.remove(obs.pop())

    if coll is not scene.collection:
        bpy.data.collections.remove(coll)

Remove named collection and its unique objects
Script below will remove the default scene collection "Collection 1" and all objects within it.
Change name to collection to remove and set the remove_collection_objects toggle.
import bpy
#from bpy import context

name = "Collection 1"
remove_collection_objects = True

#coll = context.collection #
coll = bpy.data.collections.get(name)

if coll:
    if remove_collection_objects:
        obs = [o for o in coll.objects if o.users == 1]
        while obs:
            bpy.data.objects.remove(obs.pop())

    bpy.data.collections.remove(coll)

You can access the collection directly with :
bpy.data.collections['Animation']

So you just have to :
import bpy

col_name = 'Animation'

try:
    bpy.data.collections.remove(bpy.data.collections[col_name])
except KeyError:  # Prevent failure if the collection doesn't exist
    print(f"The collection {col_name} doesn't exist")

Source

Agreed. I added a solution with a try/except for the sake of variety

AKA known as very pythonic  cant UV again..  See https://docs.blender.org/api/current/info_best_practice.html#use-try-except-sparingly    Have found attachment to using foo = collection["Bar"] one of the commonest  reasons for confusing scripts given the nature of blenders naming system. Without a good remove regime, the object you think is "Cube" or modifier "Array" or ..,  may not be if another already has same name. , IMO good habit to not use addressing by name  (Apologies for being a stickler,)

@batFINGER Again, agreed, and as a matter of fact I prefer your proposal, I merely wanted to offer variety without too much complexity. However I think this kind of code optimisation is a bit out of context in this question since it is supposed to be a one-time operation. Cheers


text:
Changing the default vertex colour
I would like to change the default vertex colour to red for a specific procedure using python. Changing the size seems simple enough by using this script.
C.preferences.themes['Default'].view_3d.vertex_size = 5
Is there a way to change the colour?

import bpy

c = bpy.context.preferences.themes['Default'].view_3d.vertex
c.r = 1  # red
c.g = 1  # green
c.b = 1  # blue

#['__doc__', '__module__', '__slots__', 'act_spline', 'bl_rna', 'bone_locked_weight', 'bone_pose', 'bone_pose_active', 'bone_solid', 'bundle_solid', 'camera', 'camera_path', 'clipping_border_3d', 'edge_bevel', 'edge_crease', 'edge_facesel', 'edge_seam', 'edge_select', 'edge_sharp', 'editmesh_active', 'empty', 'extra_edge_angle', 'extra_edge_len', 'extra_face_angle', 'extra_face_area', 'face', 'face_back', 'face_dot', 'face_front', 'face_select', 'facedot_size', 'frame_current', 'freestyle_edge_mark', 'freestyle_face_mark', 'gp_vertex', 'gp_vertex_select', 'gp_vertex_size', 'grid', 'handle_align', 'handle_auto', 'handle_free', 'handle_sel_align', 'handle_sel_auto', 'handle_sel_free', 'handle_sel_vect', 'handle_vect', 'lastsel_point', 'light', 'normal', 'nurb_sel_uline', 'nurb_sel_vline', 'nurb_uline', 'nurb_vline', 'object_active', 'object_origin_size', 'object_selected', 'outline_width', 'paint_curve_handle', 'paint_curve_pivot', 'rna_type', 'skin_root', 'space', 'speaker', 'split_normal', 'text_grease_pencil', 'text_keyframe', 'transform', 'vertex', 'vertex_active', 'vertex_bevel', 'vertex_normal', 'vertex_select', 'vertex_size', 'vertex_unreferenced', 'view_overlay', 'wire', 'wire_edit']


text:
SL Studio Lights. How to custom make your own?
I have been searching, without any luck, how to make studio lights, sl files. Anyone knowing where to find tutorials.

There is an editor, Just click the "gear" icon in the studio lights viewport menu or open preferences > lights > studio lights. In the editor, you can edit a light setup and save it as a new version. Import options are also available there. The file is saved in the preferences directory ("%appdata%\Blender Foundation\Blender<version>\datafiles\studiolights\studio" for Windows).

If you open blender's .sl files in notepad you'll see things like light[0].col.z 0.507074 so you can copy and edit them yourself.


text:
Change background color in cycles when rendering only diffuse
I'm doing flat color diffuse-only renders as described here:
Rendering Diffuse Color pass in Cycles
This (understandably) always renders the background as black.
What nodes do I need to hook up if I want the world background color to show behind the diffuse-only rendered objects?

Probably use the environment of Render Layers and combine it with the output with a alpha over node

Q: Use multiple HDRIs or this answer


text:
How do you have multiple animations on one object in the Blender 2.8 beta?
There is a way that you can have multiple animations on a single object, which is helpful for when importing the model into Unity. How do you put multiple animations on one object in Blender 2.8?


text:
How do you make a curve which is in a spiral shape and scale it while keeping one point still
I've already made the spiral, but I want to know how to scale it while keeping one end still, like what would happen if you compressed a spring.

I did it by changing the origin point of the object with Control-Alt-C.


text:
middle mouse key alternative
everything has been great with blender. just one problem at the moment i need sort of alternatives button for middle mouse (the mouse wheel) button for rotating, panning etc. everything that have anything to do with the mouse wheel click.
after quite a while using it, now it's a bit broken and sometimes not responding on my click. much appreciated if someone can list everything that use middle mouse wheel button, that i need to change to completely replace the middle wheel click with something else. and alternative key suggestion would be nice too. (bit troubled with this one)

You can emulate 3 Button Mouse.
Blender 2.7
File > User Preferences... (Cmd + ,)
Blender >= 2.8
Edit > Preferences...
In the Input tab, check "Emulate 3 Button Mouse".
Now, you can emulate the middle button by pressing Alt + LMB (Left Mouse Button).

This interferes with some select loop keyboard shortcuts however. Is this the only solution for changing the use of the middle mouse button?

Off the top of my head, there's no alternative solution.
If you are familiar with python, you can toggle this preference using this line of code: bpy.types.PreferencesInput.use_mouse_emulate_3_button = not bpy.types.PreferencesInput.use_mouse_emulate_3_button.

There is a solution now - there is 'OS Key' as an option in those same preferences. On MacOS it is the Command key.


text:
Windows update freeze blender
After updates windows 10, it broke many feature, apps and fps drop. And blender now have weird behaviour. After long idle while blender is still open, my laptop will freeze. While the mouse is still moveable and there's loading indicator on it, no button or mouse click is do-able, force me to shut it down. Usually there will be only icon glitch when it left idle. I haven't found the solution. Any clues to solve this?

you should try to undo those updates, or try to understand what's happened. blender, as any other program, can't work well on any unstable OS.

I'm voting to close this question as off-topic because issues seem related to some OS updates gone wrong, somehow, not blender itself.

Change red spot value to 0 that may help you.

The problem is still persist.

nevermind, now it no longer crash. thank you for the help :)


text:
Chance to recover overwritten texture
i've overwritten one texture file, however the little thumbnail, preview of the previous texture is still there on the uv/image editing. i wonder is there a chance that it can be recovered?


text:
Can't import .OBJ in Blender 2.8
I'm having issue with importing an obj into Blender 2.8. I get a red bit of text in the corner about line 145 for the OBJ add-on not working? (Error in picture at bottom right)

Have you been able to open the OBJ file in other software?

Please post the full error message. If you're on Windows you can show the console through Windows > Toggle System Console.

@rjg This is the full error Progress:  66.67%
Traceback (most recent call last):
File "C:\Program Files\Blender Foundation\Blender\2.80\scripts\addons\io_scene_obj_init_.py", line 145, in execute
return import_obj.load(context, **keywords)
File "C:\Program Files\Blender Foundation\Blender\2.80\scripts\addons\io_scene_obj\import_obj.py", line 1230, in load
for data in split_mesh(verts_loc, faces, unique_materials, filepath, SPLIT_OB_OR_GROUP):
File "C:\Program Files\Blender Foundation\Blender\2.80\scripts\addons\io_scene_obj\import_obj.py", line 519, in split_mesh

@OliverWhite There is no error message in your comment? BTW you can edit your question and put the error message there.

@rjg Sorry about that, pressed enter without knowing that that will submit the comment, also this is the rest of the error: verts_split.append(verts_loc[vert_idx])  # add the vert to the local verts
IndexError: list index out of range

That looks like the .obj your trying to import may not be following the specification. There seems to be a reference to a vertex index in the face definition that doesn't exist. Can you share the .obj file?

@rjg not sure how to do that


text:
Why does my blender render look smudged?

I'm trying to export this scene of a car crash but it looks super smudged like an oil painting. I have like 300 samples here but also tried with 1000 earlier and it didn't look very different. I'm using the denoise from the composite window as some people online said that the regular denoise can cause smudging but it is still happening even after switching. I'm really stumped here if anyone knows how to help.

This is what it looks like when animated but with fewer samples. It's like the lighting is flickering all around and the scene is all smudged up. https://youtu.be/oDM4x7mRrDE

Are you sure that the denoising is disabled? Because it looks like it's the denoising effect, also maybe you have a denoise in the Compositor?


text:
Use Equirectangular 360 Photos As Textures for Room Models?

I am in the process of recreating an apartment in Blender and I have some 360 photos of it which I would like to use as textures for the walls, ceiling, and floor of the 3D model.
The apartment's model is made to scale based on measurements I took, but I'm not sure how I can map its UVs to work with my equirectangular photos or if there's a better method for doing this.
If it helps, linked below is a 360 photo and its room model which I would like to apply a texture to in a way that looks similar to this example from the WalkAboutWorlds app.
Test Room With 360 Texture Files
Thank you for any suggestions you have!

I'd say something along the lines of UV Project -> Sphere?

Yes, I agree with @TheLabCat here. Equirectangular projections are 2-dimensional maps of a spherical surface. So to make it look as if your camera was inside the room, you would have to use it on a sphere or the world background. You can try to project pieces of it on the walls of a cube, but this will not be trivial to get to look decently.

Here I show how you can use an equirectangular texture (an HDRI in this case) on either the background or a sphere: How can I use two hdri for sphere and for environment of scene (world). The problem with your reference from WalkAboutWorlds is, this was certainly not made with equirectangular images.

Thank you for your replies! I actually found this tutorial for turning a HDRi into a 3D environment to suit my needs. Also, I looked more into the model from the WalkAboutWorlds App, and surprisingly, it does use equirectangular photos as the textures, but it seems to require a lot more vertices to actually make it work. .


text:
Is there a faster way to generate keyframes?
I'm using Blender for animation of STL files, by importing tabulated data for position and orientation. To do the animation, I loop through the data and insert keyframes for each location and rotation, using "object.keyframe_insert()"...
For small amounts of data, that works fine, but if I have ~20,000 points of data, Blender uses to long time, and is not responding.
Is there a better way to do this ?


text:
How should I override tooltip of a UILayout.prop that exposes Blender's built-in property?
For example, I'm exposing Blender's property that shows face orientation through context.area.spaces[0].overlay.show_face_orientation (which also doesn't correspond with Python Tooltip).

But I want the Show the Face Orientation Overlay. tooltip to say something else. I only found one relevant question, but that's about dynamic custom property re-registration.
Only solution I could come up with is to make a new custom boolean property with its own description, and toggle built-in overlay using callback functions. I was hoping there would be a much simpler solution. Any ideas?


text:
White shapes showing up in render when using glossy material
I am trying to create a glossy image texture for a 3d scan that I made.
When I render an image these white shapes show up. It does not happen when I only use a diffuse shader. I tried playing around whith the light but it does not help much. Currently I have one area light with a size of 0.988 and strength of 463.0. I also checked my normals and removed doubles. Does somebody know what Im doing whrong?

Might it be that the white parts are just the faces that are reflecting the light source directly at the camera? Try changing the mesh to smooth shading instead of flat shading. It's probably not that simple, but worth a shot.

Thanks for the help! I figured out that I had to turn up the roughness of the glossy shader.


text:
White lines problem texture bake; render engine
I have a 3d scan that I'm baking onto a lower poly model inside the blender render engine. The baked image result shows some white lines that correspond with the uv islands of the UV map of the 3d scan. Anyone know how to get rid of these?

Found it out. Turns out it solves it when you uncheck the box use alpha in the texture panel.


text:
boolean modifier failure
I am trying to use the boolean modifier to cut holes inside the long object that is displayed in the picture. The holes need to have the shape of the 4 diamond pieces that or also displayed in the picture.
When I'm using the boolean modifier with the option difference selected, it only works properly with 2 of the 4 shapes (as seen in the picture).
To my knowledge both the parts are healthy. I already recalculated the normals and removed doubles on both the objects.
I also tried to triangulate bigger faces and subdivided the mesh of the diamond shapes but both resulted in worse outcomes.
I also included the blend file.
Does anyone have a solution?

The bmesh fails in some cases, try the Carve solver instead.

[Click on the image to enlarge.]
The documentation is very sparse about the inner workings of this option.

Solver
  Determines what set of algorithms are used to calculate the boolean operation. Carve uses the external Carve Library while BMesh uses Blender’s built-in library and should give better results.

In my experience of the Boolean modifier, BMesh does well with strictly manifold meshes and Carve can cut with a non-manifold mesh such as in https://blender.stackexchange.com/a/106016/29586 . I suspect that the object used in the example is not strictly manifold enough for the BMesh algorithm - since it’s 4 distinct volumes rather than one single volume.


text:
Linux - Blender UI elements too small
I am using Blender 2.79b on the LXDE desktop on Debian Linux Stretch. My hardware is an old Core 2 Duo Mac Mini, and I'm using a high-resolution monitor (a TV) by VGA. The UI elements are a tad too small, and Virtual Pixel Mode is not available in the user preferences for some reason. Is there another way to make the UI elements bigger, or a way to enable the missing Virtual Pixel Mode? I should note that the Blender I am using came from Debian's repos as opposed to downloading it straight from Blender's site, if that makes a difference.

Maybe try an official, daily build (I don't know what version Debian's repos provide..)

I found a solution on my own. Turns out that there's a "display scaling" option now that wasn't there in earlier versions of Blender.


text:
Is Freestyle this slow?
Rendertime is 1 min 35 seconds with this chair (60 k vertices) occluding the figure.
Without the chair it's .3 seconds of render time

So I found out freestyle performance is correlated to the amount of vertices, in this case the chair. Simplifying the chair made for better performance


text:
Blender Crashing when changing from blender render to cycles
I am having an issue with Blender whenever I change from blender render to cycles blender crashes or just shuts down.
if I go to the game engine no issue.
I am running a PC
Windows 10
i5 CPU
GeForce GTX 1080 Ti
I am at a loss

Try the newest daily build

What is your Blender version?

This fixed the error for me (taken from another thread): Turns out my WIndows Update was to blame, installing a .dll file that was breaking both Maya and Blender. This was called igdrclneo64.dll/igdrcl64.dll. It’s located in C:\Windows\System32 (On my computer it was located in C: \ Windows \ System32 \ DriverStore \ FileRepository \ igdlh64.inf_amd64_250db833a1cd577e.) I moved it to the desktop and now everything works


text:
Blender 2.8 Lag issue on grease pencil with multiple layers. Possible temporary solution
There is a good amount of lag when drawing extensively.
Adding lines isn't slowed down thankfully but erasing is
a notable problem as well as sculpting.
Until 2.8 is optimized for performance,
there is a possible solution I don't think
would take too much time to implement.
When animating, I have a huge workflow problem when
I start building up too many lines and layers.
Some scenes are finished and don't need to be edited further.
Therefore, they don't need to be actively rendered real-time in the viewport and take up more resources while I work more on the project.
For those key frames, that object could be converted to some sort of "smart proxy"-esque low quality version to have representation WHILE not tax the program. Maybe there could be a select an object and some keyframes and click
"covert to proxy" then all the frames are rendered and then become low quality temporay pngs then can represent that spot.
Rendering lines in the 2D animation tab in the viewport seems to be hugely slowing down work flow. I think this would save resources and be less taxing on the software

I know what your saying, I run into a tonne of lag when animating grease pencil in full scenes. My favourite way so far to get around this is to finish of the main parts of the scene that effect your character and view (e.g Camera animation and interactive objects, then save the scene then strip the scene right down and save it again using a file name that is relevant to the file (GP animation etc.) then do your grease pencil work. Once finished save and go back to you main file create an empty and then "Proxy" the GP collection into your scene and append it to your empty. Move the empty to the desired position and render. Hope this helps


text:
How can I edit textures from linked particle systems?
I have set up a scene and want to use it as a library. The scene includes several hair particle systems to distribute and animate vegetation. These particle systems are, in turn, controlled by image textures for the hair density.
Here is the Particle System from the original library .blend showing
A) The Texture tab in the Properties Toolbox
B) The texture editing icon next to the selected texture.

After linking the various objects into my new .blend file, I realised that I need to edit the hair density textures. But there was no way to do that in the linked systems as everything was ghosted.

So I localised the particle systems, and then the textures.

Now I can select different textures, and even add new default ones, but I cannot edit them because both buttons A and B are still missing.
Is there something else I need to localise to get the Texture buttons back, or is this just a bug?