text:
Why does automatic weights create twisting?
I am really confused by this- when I apply automatic weights for this hand, the weighting is spread incorrectly, and way too far across the mesh for each bone. The effect is that when I attempt to bend one finger, the whole hand starts to twist and stretch! The odd thing is that when I made a new hand, and applied another armature, the auto weights worked normally and only affected their local digits. I want to understand what I'm doing to create a mesh that has this problem, since I don't want to have to constantly remake them until they work! I've included the problem mesh below.

In this case, I want the auto weighted bones to only affect the mesh areas they're directly within, so the fingers/ thumbs, opposed to this weird global spread. If anyone would have any advice for what I'm doing wrong, I'd be super appreciative.

Have you checked that the Normals are correct on that hand? - In Edit mode, select All then Shift-N to recalculate the normals. You can also check them by checking Face Orientation on the Overlays menu. - Should all be blue.

Unfortunately yes, they're all blue but the problem is still there.

You'll need to share your Blend file in that case so that we can see what's going on. You can share it via https://blend-exchange.com/ following the instructions there to copy the full link on that page. Then edit your question here and paste the link into it.


text:
Why does my rigged arm look like a twisted plastic bottle?
Blender novice here. I've been trying to figure out how to cleanly rig this really basic arm (see below), but regardless of automatic or empty groups, it ends up with this horrible twist. This has happened to me before, but I can't find any clear solutions online other than for twisting in Rigify (I'm just making this from the basic armature). My topology has lots of loop cuts, but even smoothing out the weight painting just makes another part of the chest area deform really badly.
I feel like this is a really simple problem with a very obvious solution, but I'm having trouble with it and would really appreciate some guidance. What does one do to smooth out a twist??? I still want the arm to be able to move within normal rotation, from the elbow pointing fully down to fully up (180), but no matter which orientation I set as "normal", the other directions end up twisting like this.

Have you checked the normals? It should be blue. For the red faces, you have to flip the normals in Edit mode.

Problem: I think the issue is coming from the IK setup of forearm. Try to tweak the rotation value of the Pole Angle under IK constraint.

Tip for better IK setup: make sure you have small bending between upper arm and forearm. and move back the pole bone on the direction of bending. this way the pole bone's movement will give you more predictable result.

source: Stack Exchange

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

sort: votes


text:
My grease pencil is either 100% or 0% influenced in weight painting
I have a really basic mesh, and I've sketched some grease pencil detail over the top (in this specific case, a mesh head with grease pencil facial features). I can rig and weight paint the mesh so that moving a bone deforms it organically, with the influence going from 100% to 0% naturally. My issue is that when I try and weight paint the grease pencil in the same way, using a gradient of influences, it acts as either 100% or 0% influence. In the example of the mesh head, I can raise the eyebrows, and the mesh deforms smoothly with some areas moving more than others, but the GP detail acts more like a parented object on top.
I've seen videos and tutorials of GP rigging (eg. https://www.youtube.com/watch?v=z3zRJ6904i0&t=91s), where the characters have bendy limbs with areas of 50% influence, but when I follow them I don't seem to get the same result. Am I missing something?

GP vertices can have smooth weight painting. Generally when a vertex moves rigidly it's because it is weighted to one vertex group only. Try adding some weight to a general "Head" vertex group also.

Thank you so much! This had been annoying me for a while, but this solved it immediately. Much appreciated!

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


text:
Marvelous designer to Zbrush to Substance painter to Blender workflow issue
I've been following the cyberpunk jacket tutorial I got by Travis Davids and everything has been going mostly smoothly until now when I imported my garment from Zbrush and Substance painter to Blender and something clearly is wrong but I'm not sure what it is.
Here is what it looks like in Substance painter

Iray (I think that's what Substance uses)

And here is what it looks like in Blender

As you can see some parts look right but most of it doesn't.
The fact that it looks fine in Substance but not blender makes me think there's something missing I have to do either in Blender or when I'm exporting to Blender.
In the tutorial, he brings it into Cinema 4d to get the final render but I'm using Blender.
I followed this tutorial on how to export Substance to Blender https://youtu.be/EiAQqOZqGHc.
Does anyone have any suggestions? I would greatly appreciate it!

I figured It out!
I noticed the UV is flipped when I compared Blender to Substance so I flipped it in Blender and manually aligned it and it's fixed now!


text:
Subdivided plane faces with same UVMap Texture
I have a plane subdivided with W >Subdivide into countless smaller faces.
I'd like to texturize all those faces with the same texture. For that i right-clicked a face U >Unwrap and added the texture to it. But now I would like to do this for all of those faces.

When I select all faces and click U>Unwrap the Texture is spread over the whole surface, as can be seen in the figure below.
In other posts I read I could use U>Reset. When I do that I get every "plane-part" in the UV-Map Editor but lying all about each other.
Is there a way to drag every part over the full Map, when they lie over each other like in the image below? Other tutorials write if I do it like this using Reset, the whole Map should be filled. Is there something I did wrong?

I am using textures without material, because the application I'm using it for works with that and blender 2.79 because I use a special addon which only works with this version

in the UV editor, in the toolbar at the top, try clicking>UV>pack islands.  That might do it.

If you delete all UV maps and add a new fresh one, each quad face will be given the full UV space.

Allens Solution seems to work. Thanks for your help.


text:
Blender 2.83 Cycles Not Rendering New Objects
I added some new objects and changed the HDR rotation in an existing blend file, but whenever I hit F12 or Ctrl+F12 I only seem to get a render output of the scene before my recent additions and changes.
As the attached image shows, the added items are outlined/selected and visible in all viewport versions including render view and the new HDR position shows correctly.
Some objects are newly created within this file, some are duplicates (not instances) of objects in this file, and others are copied/pasted from other blend files. They are all scattered within several existing collections and render layers that have previously rendered correctly.

All the visibility and render options are correctly set in the outliner.

Composite node is set up correctly.

I've saved/closed/reopened blender and the blend file.

I've gone through the checklist of all likely causes for objects not showing
Why does my object not show up?

Although I am not a newbie to blender, I have just switched from 2.79 to 2.83 so I'm not sure if there is something new I haven't learnt yet but it seems like this is rendering a cached version of the scene or something and not what is currently there.

If you could attach the scene...?

From a similar question on SE I found the solution. The VSE has a previous image that is over riding the render result....
Why is my image sequence render using an old version of my animation?
I solved my problem by unchecking "sequencer" in the "post processing" tab.
Alternatively I could remove the existing images in the VSE

I had a similar problem, where the green screen data was overriding the data from the camera, it worked after unchecking the compositing box in post processing

Could you illustrate how? Perhaps describe the steps

Had this issue, like above Sequencer was checked but in 2.83 they moved it to the, Output Properties tab with the printer looking icon, under the Post Processing panel.


text:
How to change the timing of the rigid body falling?
I'm using blender 2.79b which is fantastic, I'm a student and I'm learning the software by myself and I had a problem about the timing of the body falling using rigid body.
How can I change the starting point for the object to fall.

Welcome to Blender Stack Exchange, you could help us answer your question by adding a screenshot and perhaps adding a sketch of what you want to achieve.

You will find the Rigid body cache in the scene tab. That is where you can adjust which frame when the simulation starts. Use the bake button after you adjusted the values to recalculate the physics.

I usually animate the Animated property on the rigid body.
You can then animate multiple objects with individual starting points.
This will also allow you to animate the object a few frames first if you want it to be thrown in a direction.


text:
Blender: how can I render true color?
I need to render images maintaining its original colors.
Here you can see the png (with transparent background) image on the project

Here a frame of the output:

Here the packed .blend file: https://drive.google.com/file/d/1rdJcS2ETgy_hzEIbrSRvXuCSXu8I4zz1/view?usp=sharing
Other infos

I'm using blender 2.83
The rendering engine is set to eevee (film: transparent).
There is a sun (color white, strength and specular 1.000, angle 0°, no shadows)
There is a .png image (with transparency and material properties → settings → blend mode "alpha blend" and shadows mode "none") with followings nodes:

thanks!

are you talking about a difference between Material Preview and Render Preview? It's normal, you're not supposed to see the same result. If you're talking about a difference between Render Preview and real render, it may be caused by the Color Management settings

I can't see how your nodes are set up, so maybe you've already done this, but have you tried connecting your image output(s) directly to the Material Output (without a shader), OR tried connecting them through an Emission Shader with a strength of 1?

https://blender.stackexchange.com/questions/164677/images-as-emitters-constantly-come-out-dull-white-emission-not-actually-white

Please do not add "solved" as part of the title. Mark the answer that
helped you as accepted instead (https://i.sstatic.net/qBQh7.png).
Please take the [tour] to understand how the site works. Read also:
what does it mean when an answer is accepted?

Does this answer your question? Images as emitters constantly come out dull. White emission not actually white. What am I doing wrong?

When I open the file, I can see that you are in Material Preview mode. Material Preview mode gives you a preview but don't take your world and light setups into account, so the render won't look like what you currently see, you'd better switch to Rendered Preview to have a better idea of what you'll see as final result.
Also in the Render panel > Color Management > View Transform, you're in Filmic mode, it will make a rather pale render, switch to another mode, like Standard, if you want something closer to your original picture, unless you have good reasons to be in Filmic, of course.
At last, in Rendered Preview mode, you'll find that your image is still rather pale, it's because your sun has a Strength value of only 1. You can either increase it up to about 4, or plug your Image Texture into an Emission node, and mix it with a Transparent node (maybe it's possible to use the Emission of the Principled BSDF but anyway my setup works). With Emission, your image in the 3D scene will look exactly as it is:

It works! I can't vote because I've not 15 reputations.

no problem.....  ;)

To make sure the rendered version of a texture has the same color as the texture file, in the Shading tab, connect the texture output to the Material Output node without a shader.

i think this is exactly what i wanted.

I'm glad you found it useful


text:
How to install Scatter 4 pro on a MacBookPro (Blender 2.93)?
I recently purchased scatter 4 pro off the blender exchange and have had some issues installing it. I am running on a 2020 MacBook Pro with macosx and blender 2.93. In terms of summarizing the issue to the best of my ability:
I go to install the zipped file in blender and go to activate it through the search menu however the plugin doesn't appear at all once I search for it.
I also tried moving some files such as the __init__.py and Lodify.py and a few others into the add-on directory folder prior to installing the plugin inside of blender. This was able to make the scatter add on appear in the search menu, but when I went to activate the add on the prompt "Import Error Module Not Found" followed by different file names depending on the files I had moved over before the install through blender.
I've tried everything I can personally think of with no luck. If anyone has any solutions or insight into this issue it would be greatly appreciated.

That's a third-party addon so you'd better ask on the addon author's web site. However, the normal way to install an addon from a zip file is to click the 'Install' button on the Preferences > Addons tab and select the Zip file with the file selector. That should do the installation automatically without having to place files yourself.

... and the installation instructions are here.

Thank you for the response, and I tried reaching out to the creator but have yet to receive a response. And I followed the normal procedure to the T as with all plugins. It seems to register the install process as all the contents are moved into the add on folder. However whenever I go to search for the scatter plugin in blenders add-on section to activate it, it does not appear. This is where I am confused.

I was able to get in touch with the developer and the fix is quite simple. When installing a blender plugin on macOS you must turn off your browser automatic unzipping
MacOS is doing the unzip for you automatically and that leads to manual error
To do this go to Safari > Preferences > General and then untick the box for Open "safe" files after downloading


text:
Washed out textures in Unity
I have a problem. After I modelled objects in Blender I textured them and textures are as I need them to be - with saturated colors.

However, as soon as I export it to the .FBX format and put them on the Unity scene, the textures become pale.

I suspect this is related to some Blender options but I can't be sure as I'm novice. I searched answer in the internet and didn't find it, how is possible to fix it.

Hi Slam, welcome to Blender.SE. Unfortunately question here are only supported in English. Please try to edit your question and translate everything into english to your best abilities. Thank you.

If your textures in  don't look the same as they do in Blender, the problem is most possibly on 's side.

As far as I can see, its just different default lighting.

.fbx files do not transfer textures, so you need to manually apply them in unity. However, the unwrapping should transfer over, so all you need to do is apply the textures manually in Unity.


text:
Remove doubles distorts mesh aspect in object mode (still good in edit mode)
when i apply remove doubles there is a destroyed mesh aspect on object mode (pressing z) and the mesh is perfectly fine one i go in edit mode, is it a display issue or im i doing something wrong? its the same mesh on these pictures, left on object, right on edit mode
Edit: the mesh looks fine on object mode as well when if i save it to .obj and delete-reload it.  but the problem persists when i save the whole scene

This should be correct. By default Blender displays wireframes based on the angle of the faces connected by a given edge. In order to have blender show all edges you have to check "Draw all Edges".

Perfect. thanks a lot!


text:
Why isn't this MP3 playing in the Video Sequence Editor?
I am trying to add an audio file to one image. I have tried repeatedly but the audio file doesn't play. I have used tutorials that suggest it should just play right away when I run the file but nothing. The originals are an MP3 and a PNG file.
I have the codec set as Quicktime with H.246 and AAC audio codec.
Please advise!

Hi. In future (I have already corrected it) please upload images using the built-in uploader. See: https://meta.stackexchange.com/questions/75491/how-to-upload-an-image-to-a-post

Audio should be heard on playback. Select the audio strip and scroll down in the audio strip properties. Enable Draw Waveform to ensure that Blender actually reads audio. Can you see a waveform? Have you checked other audio output sockets?

I figured out how to draw the waveform. I am not sure what other audio sockets are and I still get no sound no matter what I try.


text:
Double beveled curve?

I was wondering: is it possible to assign two bevels instead of one to the geometry of a curve, and maybe "warp" through them using weights?
Basically I have a loop curve that has a circular bevel (above curve, left), but at certain points it should gradually become an oval shape (above curve, right, selected) (or whatever shape i decide to bevel it with).
Thanks for the wisdom, peace

could you please show a drawing or screenshot to make it more understandable?

it looks like it is not possible except if you convert your curve to mesh and make a bridge for example: https://blender.stackexchange.com/questions/55257/is-it-possible-to-have-multiple-bevel-objects-along-a-curve

ok thanks. I think it'd be a pretty useful feature for the future

maybe you could make your mesh shape straight with the shape morphing you want, then give it a cuve modifier to bend it. I mean if it's ok for you if it's a mesh and not a curve...


text:
Reset all points' mean tilt
is there a way to reset the mean tilt for all selected points of a curve?
I can't seem to find a way (I wish there was a scale (S T 0 option or similar).

You can reset curve tilt in Edit Mode by selecting the desired vertex and pressing AltT (or RMB > Clear Tilt).

thanks bro! also, how do I make keys appear here in the forum? like you just did with alt T

with name of the key


text:
Rigid Body Object Jumps back when keyframing "animation" off
I am trying to get a box to float into the air, fly in a direction and then midair activate physics so that it flies off and falls to the ground without me having to animate that. I tried keyframing the "animate" toggle so that it turns off, but when I do this, the box jumps back to its starting position, instead of continuing from where the animation left off. How do I enable physics mid-animation?

Can you make sure that your object is an active rigid body and can you add a screenshot of your rigid body settings? Also have you tried baking the animation or are you only playing it back.

Yes it is an active rigid body, no I'm just playing it back. What will baking the animation do? Would I do that before or after I keyframe the "animated" toggle? I've added a picture of my rigid body settings for the cube. Thank you!

You might have an invalid cache.  Try starting and cancelling a grab operation on the rigid body to reset the cache, then try again.  If not, save and load and check behavior; if still a problem, link the file.

You have to bake your rigid body into a bunch of keyframes. This will basically turn the physics simulation into a bunch of keyframes. You can do this by pressing  F3 and searching Bake to Keyframes.

To make it work properly it's not necessary to turn the bake into keyframes. If the simulation is setup correctly and baked it doesn't need to convert it into keyframes. I suspect the OP set it up incorrectly, but since he didn't react to it for more than two years now I guess we'll never know.

You need to change the simulation Start and End frames under
Scene Properties > Rigid Body World > Cache.
[

At frame 0 put your object at its beginning location in the scene, press i > LocRotScale, enable the Animated option in the Physics panel and press i to keyframe it. At frame 10, move your object wherever you want, press i > LocRotScale, disable the Animated option in the Physics panel, press i to keyframe it.

Thank you, I'm doing this, but disabling "animation" under the rigid body settings causes the object to return to its starting point. Any idea why that might be happening? When I make a new simple animation, it seems to work how you have described, but when I try to keyframe the "animation" toggle on top of my existing animation for the cube, it jumps back to its starting position instead of falling from the sky.

I don't think this answer describes what the OP wants.

@clankill3r, maybe I've misunderstood the initial question, maybe explain or give your own answer?


text:
How do I create a custom node group for the compositor?
I have made a script that adds a panel, it has buttons that when pressed, nodes are added to the Compositor. I would like to add another button that then adds them to a group.
I have looked around the net and into the Info on Blender and I notice the bpy.ops.node.group_make() which will take the nodes that are selected and then insert them into a group.
I am pretty sure I need this for what I want but the trouble is, I can not find a way to implement that into my script. I also tried this:
tidy_group = bpy.data.node_groups.new('NewGroup', 'CompositorNodeTree')
tidy_group.name = 'Group Name'

It creates a node group in the (ShiftA > Groups) section. However, I have no idea how to properly use it. If someone could help point me how this would work I would greatly appreciate it.

Hey thanks for sharing!.. I had to change a few things but I think that answer is exactly what I needed!.. I had to change the "Shader" part to compositor but yeah thanks so much!..

Converted this script to generate a shader group by @sambler for the Compositor. The script creates a new node group called NewGroup containing three math nodes plugged together properly:
import bpy

# create a group
test_group = bpy.data.node_groups.new('NewGroup', 'CompositorNodeTree')

# create group inputs
group_inputs = test_group.nodes.new('NodeGroupInput')
group_inputs.location = (-350,0)
test_group.inputs.new('NodeSocketFloat','in_to_greater')
test_group.inputs.new('NodeSocketFloat','in_to_less')

# create group outputs
group_outputs = test_group.nodes.new('NodeGroupOutput')
group_outputs.location = (300,0)
test_group.outputs.new('NodeSocketFloat','out_result')

# create three math nodes in a group
node_add = test_group.nodes.new('CompositorNodeMath')
node_add.operation = 'ADD'
node_add.location = (100,0)

node_greater = test_group.nodes.new('CompositorNodeMath')
node_greater.operation = 'GREATER_THAN'
node_greater.label = 'greater'
node_greater.location = (-100,100)

node_less = test_group.nodes.new('CompositorNodeMath')
node_less.operation = 'LESS_THAN'
node_less.label = 'less'
node_less.location = (-100,-100)

# link nodes together
test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
test_group.links.new(node_add.inputs[1], node_less.outputs[0])

# link inputs
test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

#link output
test_group.links.new(node_add.outputs[0], group_outputs.inputs['out_result'])

Wrap this up into a function and allow to pass some arguments e.g. a string for the name. Even better, make it a function and add it to an execute() method of an Operator, that way you can use the Search Menu (F3) to add your group. In addition to that, you can display the Operator as a button on any panel like in the Properties Panel N of the Compositor:

import bpy

# Create compositor group
def create_comp_group(context, operator, group_name):
    # Create a group
    test_group = bpy.data.node_groups.new(group_name, 'CompositorNodeTree')

    # Create group inputs
    group_inputs = test_group.nodes.new('NodeGroupInput')
    group_inputs.location = (-350,0)
    test_group.inputs.new('NodeSocketFloat','in_to_greater')
    test_group.inputs.new('NodeSocketFloat','in_to_less')

    # Create group outputs
    group_outputs = test_group.nodes.new('NodeGroupOutput')
    group_outputs.location = (300,0)
    test_group.outputs.new('NodeSocketFloat','out_result')

    # Create three math nodes in a group
    node_add = test_group.nodes.new('CompositorNodeMath')
    node_add.operation = 'ADD'
    node_add.location = (100,0)

    node_greater = test_group.nodes.new('CompositorNodeMath')
    node_greater.operation = 'GREATER_THAN'
    node_greater.label = 'greater'
    node_greater.location = (-100,100)

    node_less = test_group.nodes.new('CompositorNodeMath')
    node_less.operation = 'LESS_THAN'
    node_less.label = 'less'
    node_less.location = (-100,-100)

    # Link nodes together
    test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
    test_group.links.new(node_add.inputs[1], node_less.outputs[0])

    # Link inputs
    test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
    test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

    # link output
    test_group.links.new(node_add.outputs[0], group_outputs.inputs['out_result'])

    # return the group
    return test_group

# Operator
class NODE_OT_compGroup(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "node.simple_operator"
    bl_label = "Add Group (Operator)"

    @classmethod
    def poll(cls, context):
        space = context.space_data
        return space.type == 'NODE_EDITOR'

    def execute(self, context):

        # Create the group
        custom_node_name = "my_node"
        my_group = create_comp_group(self, context, custom_node_name)
        comp_node = context.scene.node_tree.nodes.new('CompositorNodeGroup')
        comp_node.node_tree = bpy.data.node_groups[my_group.name]
        comp_node.location = 100,0

        return {'FINISHED'}

# Panel
class NODE_PT_customPanel(bpy.types.Panel):
    bl_idname = "NODE_PT_customPanel"
    bl_space_type = 'NODE_EDITOR'
    bl_label = "Custom Panel"
    bl_region_type = "UI"
    bl_category = "Custom Category"

    @classmethod
    def poll(self,context):
        return context.object is not None

    def draw(self, context):
        layout = self.layout
        layout.operator(NODE_OT_compGroup.bl_idname)
        layout.separator()

# Register
def register():
    bpy.utils.register_class(NODE_OT_compGroup)
    bpy.utils.register_class(NODE_PT_customPanel)

def unregister():
    bpy.utils.unregister_class(NODE_OT_compGroup)
    bpy.utils.unregister_class(NODE_PT_customPanel)

if __name__ == "__main__":
    register()

Further reading:

Controlling compositor by python - Basic example on how to create nodes
How to create a custom UI? - Operator/panel/layout stuff
API link - List of all available node types

thanks so much! I went to the link you shared and I figured I had to change that part but it took me ages to realize that.. I am glad you took the time to convert the script!!.. I will be sure to thank you in one of my videos ;)

Cool, I added the button business. What videos? @Darkfall

Hey @brockmann Yeah i managed to do all that I just couldn't understand how to implement the whole making of a group but now I am all sorted so thanks!..I know I will have more questions in the future.. I make videos on youtube (darkfall), and when I upload my next video about the Addon I will mention I got some help from you and the Stack Exchange.. If you have a channel, blog or website you post to, I would be happy to point people that way..

Had some time yesterday and watched two of your "bpy videos". As commented already below one of them (which isn't public for whatever reason), you're doing several beginner mistakes like assigning the object in context using the wrong reference. Don't get me wrong, it's not that bad as kind of walkthrough. However, I don't think it's a good idea teaching beginners that way, programming is especially about detail and language specifics. Don't get me wrong but I think it's too early for you posting a video about bpy. Cheers @Darkfall

@brockmann- Which video?. As for "assigning the object in context using the wrong reference", could you be more specific? In order to improve I must understand what you think is wrong?. And several mistakes? Could you again be more specific. There are hardly any videos on this and yeah I may get some things slightly wrong but all the examples work, and I had to stumble through snippets, forums and trial and error, so I know they videos are not perfect and they may not be helpful to you, but others have found them to be so, regardless if they are beginners or have been using python for a while.

I also made it clear from the beginning that I am learning and that things may not be to the letter...

The examples may work but that does not mean you are doing it right -> explained it a bit already, but again my comment is not public, for the record: https://i.sstatic.net/8uMeP.png Take into account that I was a beginner too and trying to help beginners here. IMHO you'll have to learn concepts of programming (at least some python) in the first place before starting with bpy. I think the reason why there are no tutorials is simple: there is no hidden button somewhere and It's way faster just to read about (you'll need to type it anyway). @Darkfall

And yes I know that there are many many people waiting for new useless content. However, I think a good tutorial for beginners would show the use of the console while explaining programming details (variables vs. attributes, functions vs methods, classes etc.) and how to make use of the blender's API as second step to get the larger picture. Well, I suggest send me or anyone else your script at least, before creating the next walkthrough, that way it is correct and avoids confusion. Again, don't take it personal. Cheers.


text:
How can I add / link nodes in / from the Texture Editor / Compositor?
I would like to add some nodes to the Texture Editor, I would like to edit their default values and then link them together. I have found something on here that was helpful but they deviated to the Shader Editor and I could not seem to make the same thing work for me.
I have added some nodes but I don't know how to link them. This is my attempt:
import bpy

texture = bpy.data.textures.new('Texture Name', 'IMAGE')
texture.use_nodes = True

inv_node = texture.node_tree.nodes.new(type= 'TextureNodeInvert')
inv_node.location = 400,400
inv_node.select = False

disnoise_node = texture.node_tree.nodes.new(type= 'TextureNodeTexDistNoise')
disnoise_node.location = 800,400
disnoise_node.select = False
disnoise_node.inputs[2].default_value = 10

Ideally I want to add maybe only one node and be able to connect it to the output but I am not sure how to link added node to the output.
I would greatly appreciate someone pointing me towards some information.

Following example creates a new node group called NewGroup (based on How do I create a custom node group for the compositor?) for the Texture Node Tree, containing three Math nodes as well as one Distorted Noise node plugged together properly:
import bpy

# create a group
test_group = bpy.data.node_groups.new('NewGroup', 'TextureNodeTree')

# create group inputs
group_inputs = test_group.nodes.new('NodeGroupInput')
group_inputs.location = (-350,0)
test_group.inputs.new('NodeSocketFloat','in_to_greater')
test_group.inputs.new('NodeSocketFloat','in_to_less')

# create group outputs
group_outputs = test_group.nodes.new('NodeGroupOutput')
group_outputs.location = (500,0)
test_group.outputs.new('NodeSocketFloat','out_result')

# create three math nodes in a group
node_add = test_group.nodes.new('TextureNodeMath')
node_add.operation = 'ADD'
node_add.location = (100,0)

node_greater = test_group.nodes.new('TextureNodeMath')
node_greater.operation = 'GREATER_THAN'
node_greater.label = 'greater'
node_greater.location = (-100,100)

node_less = test_group.nodes.new('TextureNodeMath')
node_less.operation = 'LESS_THAN'
node_less.label = 'less'
node_less.location = (-100,-100)

node_vorn = test_group.nodes.new('TextureNodeTexDistNoise')
node_vorn.inputs[2].default_value = 10 # Set scale to 10
node_vorn.location = (300,0)

# link nodes together
test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
test_group.links.new(node_add.inputs[1], node_less.outputs[0])
test_group.links.new(node_vorn.inputs[3], node_add.outputs[0])

# link inputs
test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

#link output
test_group.links.new(node_vorn.outputs[0], group_outputs.inputs['out_result'])

API link - List of all available node types.

Creating the links outside of the group is basically the same. Following Operator, creates a new Output node and the group node from above as well as linking both together properly:

import bpy

# Create texture group
def create_tex_group(context, operator, group_name):

    # Create a group
    test_group = bpy.data.node_groups.new(group_name, 'TextureNodeTree')

    # Create group inputs
    group_inputs = test_group.nodes.new('NodeGroupInput')
    group_inputs.location = (-350,0)
    test_group.inputs.new('NodeSocketFloat','in_to_greater')
    test_group.inputs.new('NodeSocketFloat','in_to_less')

    # Create group outputs
    group_outputs = test_group.nodes.new('NodeGroupOutput')
    group_outputs.location = (300,0)
    test_group.outputs.new('NodeSocketFloat','out_result')

    # Create three math nodes in a group
    node_add = test_group.nodes.new('TextureNodeMath')
    node_add.operation = 'ADD'
    node_add.location = (100,0)

    node_greater = test_group.nodes.new('TextureNodeMath')
    node_greater.operation = 'GREATER_THAN'
    node_greater.label = 'greater'
    node_greater.location = (-100,100)

    node_less = test_group.nodes.new('TextureNodeMath')
    node_less.operation = 'LESS_THAN'
    node_less.label = 'less'
    node_less.location = (-100,-100)

    # Link nodes together
    test_group.links.new(node_add.inputs[0], node_greater.outputs[0])
    test_group.links.new(node_add.inputs[1], node_less.outputs[0])

    # Link inputs
    test_group.links.new(group_inputs.outputs['in_to_greater'], node_greater.inputs[0])
    test_group.links.new(group_inputs.outputs['in_to_less'], node_less.inputs[0])

    # link output
    test_group.links.new(node_add.outputs[0], group_outputs.inputs['out_result'])

    # return the group
    return test_group

# Operator
class NODE_OT_texGroup(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "node.simple_operator"
    bl_label = "Add Group (Operator)"

    @classmethod
    def poll(cls, context):
        space = context.space_data
        return space.tree_type == 'TextureNodeTree'

    def execute(self, context):
        tree_id = context.space_data.id
        nodes_list = tree_id.node_tree.nodes

        # Create Output Node
        out = nodes_list.new('TextureNodeOutput')
        out.location = (200,100)

        # Create Grup
        custom_node_name = "my_node"
        my_group = create_tex_group(self, context, custom_node_name)
        grp_node = nodes_list.new('TextureNodeGroup')
        grp_node.node_tree = bpy.data.node_groups[my_group.name]
        grp_node.location = (0,0)

        # Link Group to Output
        tree_id.node_tree.links.new(grp_node.outputs[0], out.inputs[0])

        return {'FINISHED'}

# Panel
class NODE_PT_customPanel(bpy.types.Panel):
    bl_idname = "NODE_PT_customPanel"
    bl_space_type = 'NODE_EDITOR'
    bl_label = "Custom Panel"
    bl_region_type = "UI"
    bl_category = "Custom Category"

    @classmethod
    def poll(self,context):
        return context.object is not None

    def draw(self, context):
        layout = self.layout
        layout.operator(NODE_OT_texGroup.bl_idname)
        layout.separator()

# Register
def register():
    bpy.utils.register_class(NODE_OT_texGroup)
    bpy.utils.register_class(NODE_PT_customPanel)

def unregister():
    bpy.utils.unregister_class(NODE_OT_texGroup)
    bpy.utils.unregister_class(NODE_PT_customPanel)

if __name__ == "__main__":
    register()

In order to use the generated node texture from above directly in the Compositor, you have to create a new Texture node and assign the texture to its slot:

# Operator
class NODE_OT_texGroup(bpy.types.Operator):
    """Operator to generate a texture and add it to the Compositor"""
    bl_idname = "node.simple_operator"
    bl_label = "Add Texture (Operator)"

    @classmethod
    def poll(cls, context):
        space = context.space_data
        #return space.tree_type == 'TextureNodeTree'
        #return space.type == 'NODE_EDITOR'
        return space.tree_type == 'CompositorNodeTree'

    def execute(self, context):

        # ---------------------------------------------------------
        # Generate the texture
        # ---------------------------------------------------------

        # Create the texture
        my_texture = bpy.data.textures.new('TextureName', 'IMAGE')

        # Enable use nodes
        my_texture.use_nodes = True

        # Get the tree
        tex_tree = my_texture.node_tree

        # Clear default nodes
        for node in tex_tree.nodes:
            tex_tree.nodes.remove(node)

        # Create Output Node
        out = tex_tree.nodes.new('TextureNodeOutput')
        out.location = (200,100)

        # Create Group
        custom_node_name = "my_node"
        my_group = create_tex_group(self, context, custom_node_name)
        grp_node = tex_tree.nodes.new('TextureNodeGroup')
        grp_node.node_tree = bpy.data.node_groups[my_group.name]
        grp_node.location = (0,0)

        # Link Group to Output
        tex_tree.links.new(grp_node.outputs[0], out.inputs[0])

        # ---------------------------------------------------------
        # Compositor
        # ---------------------------------------------------------

        # Enable use nodes in the compositor
        context.scene.use_nodes = True

        # Get the tree
        comp_tree = context.scene.node_tree

        # Clear default nodes
        for node in comp_tree.nodes:
            comp_tree.nodes.remove(node)

        # Create the texture node
        comp_node_texture = comp_tree.nodes.new('CompositorNodeTexture')

        # Assign the newly created texture
        comp_node_texture.texture = my_texture

        # create output node
        comp_node_out = comp_tree.nodes.new('CompositorNodeComposite')
        comp_node_out.location = 400,0

        # link nodes
        links = comp_tree.links
        link = links.new(comp_node_texture.outputs[0], comp_node_out.inputs[0])

        return {'FINISHED'}

Hey thanks again Brockmann!.. So, I have to change the window to the Texture Editor, then change to brush space, then Add a new material, then click use nodes before that button works.. Ideally, I would like to be inside the Compositor, click the button and the group has been added to a new texture which then can be used in the Compositor.. How can I add these Parameters?..

Remove the poll method of the operator and instead of using the tree_id (current texture), create a new texture via textures.new and find its id to get the tree  @Darkfall

I have deleted the poll method but I am not sure what I need to change next. Do you mean, Everything that is tree_id needs to be changed to textures.new ? I am sorry I do not understand, Most of this is still over my head. @brockmann

I then removed, tree_id = context.space_data.id and added texture = bpy.data.textures.new('TextureName', 'IMAGE')         texture.use_nodes = True
This now works but because I "use nodes", it has the original checker pattern and output node, along with the newly added group and new output.. how do I delete the original nodes before my new nodes are added? @brockmann

Edited the operator @Darkfall

Ah man you have done it again.. Made my junk of a script into something much more powerful.. I have so much to learn and am really grateful that we have a community of people who are willing to take the time to literally walk a noob through it.. @brockmann

Glad I could help @Darkfall


text:
How to install import_3dm add-on properly?
I'm totally new to blender - mostly work in Rhino, but am wanting to use it to render models that I build in rhino so am trying to install the "import 3dm" addon.
I had blender 2.80 installed. Tried installing the addon from the .zip file on my desktop (import_3dm-master) it shows a message in blue in the bottom right of the screen stating that it has installed that addon but it doesn't show in the addon menu under any of the categories.
I tried extracting the file and copying it directly into the addon folder. Still nothing. Tried installing the import_3dm-v0.0.2 version. This shows up in the menu but has an error (shown in screenshot below). I even installed blender 2.82a in the hopes that this would somehow solve the problem but no luck... Here is the error message I get:

Q: How to install this add-on properly?

Hi. Can you provide a link to the add-on? Would save some time searching for the right one...

Thanks, i edited it into the original post

You haven't installed the rhino3dm package. You really should not follow the instructions provided on the GitHub page though, because that's not how packages should be installed.

The 3dm importer depends on the rhino3dm package that has to be installed as well. In order to get the add-on working:

Install rhino3dm.
Install the 3dm importer add-on.

The first step can be accomplished by running the following script. Open Blender, switch to the Scripting workspace, copy and paste the script into the text editor and execute it. Make sure to check the output on the console for any error messages (Window > Toggle System Console). If everything works properly it should print the version of the installed package.
In case your Blender installation is located in C:\Program Files\ you will have to start Blender as administrator. Otherwise, it doesn't have the permission to install the package.
import bpy
import os
import ensurepip
import subprocess

try:
    import rhino3dm
except ImportError:
    # The import failed, therefore we check ensure that pip is available and attempt to install the package.

    # ensurepip.bootstrap() also calls pip, which adds the environment variable PIP_REQ_TRACKER. After
    # ensurepip.bootstrap() finishes execution, the directory doesn't exist anymore. However, when subprocess
    # is used to call pip, in order to install a package, the environment variables still contain
    # PIP_REQ_TRACKER with the now nonexistent path. This is a problem since pip checks if PIP_REQ_TRACKER is
    # set and if it is, attempts to use it as temp directory. This would result in an error because the
    # directory couldn't be found. Therefore, PIP_REQ_TRACKER needs to be removed from os.environ.
    ensurepip.bootstrap()
    os.environ.pop("PIP_REQ_TRACKER", None)

    # Try to install the package. This may fail with subprocess.CalledProcessError
    subprocess.run([bpy.app.binary_path_python, "-m", "pip", "install", "rhino3dm"], check=True)

    import rhino3dm

print(rhino3dm.__version__)

Next download and install the most recent release of add-on. With the required dependency installed it should activate without any issues.
Important: In case you intend to use the code above in an add-on, it's common courtesy to not connect to the internet or install packages without the explicit consent of the user.

Thank you - that was ultimately helpful but somewhat confusing.
I think either because i have version 2.82 installed or because i have Anaconda installed, it kept coming up with an error related to the pip - i eventually figured out to remove the lines of code relating to it ("import ensurepip" and " ensurepip.bootstrap()) and it seemed to work albeit only after figuring out that i then needed to run Blender as an administrator... Only read your edit after figuring that part out as well...
Anyways, thank you very much for the help!

@ToniHughes You're welcome. If this answer solved your problem, consider marking it as accepted by clicking on the checkmark next to it.

Tested on osx and it's working fine too (when running Blender as super user however).


text:
How to change a certain parameter of all principled shaders in my blend file?
I have like 100 objects, each with its own material, different mesh, own texture and UV maps. I want to immediately adjust only one parameter for all the materials, say: metallic but I want to keep separate textures, so I won't just link materials.
I found that "copy to selected" does not work for material properties (this would be a cool feature, by the way).
I also watched a tutorial about group nodes and yeah, it's cool to control many materials with a single node, but I would sooner move 100 sliders manually, rather than set up a node tree for each material.
If there's no tool for it, I would be happy with a simple python script that takes all materials in the model and changes them one parameter.

Comments are not for extended discussion; this conversation has been moved to chat.

You would have to iterate through all materials, get their node trees and find the principled bsdf to set its default values. Demo on how to change the Metallic value for all materials in the file:
import bpy

for mat in bpy.data.materials:
    if hasattr(mat.node_tree, "nodes"):
        for node in mat.node_tree.nodes:
            if node.type == 'BSDF_PRINCIPLED':
                for input in node.inputs:
                    if input.name == 'Metallic':
                        input.default_value = 0.7

If you'd like to change another property of the principled shader, here is a complete list:
Alpha, Anisotropic, Anisotropic Rotation, Base Color, Clearcoat Clearcoat, Normal, Clearcoat Roughness, Emission, Emission Strength, IOR, Metallic, Normal, Roughness, Sheen Sheen Tint Specular, Specular Tint, Subsurface, Subsurface Color, Subsurface Radius, Tangent, Transmission, Transmission, Roughness.
Note that some of them are actually vectors (yellow and purple socket) so you'd have to assign a tuple instead. Demo on how to set the Base Color:
import bpy

for mat in bpy.data.materials:
    if hasattr(mat.node_tree, "nodes"):
        for node in mat.node_tree.nodes:
            if node.type == 'BSDF_PRINCIPLED':
                for input in node.inputs:
                    if input.name == 'Base Color':
                        input.default_value = (1.0, 0.0, 0.0, 1.0)

Further reading: What is the meaning of the color of the node sockets in the node editor?


text:
Why my mesh object gets destroyed when I move it in edit mode?
I have a mesh object that behaves fine when I move it in object mode. But if I switch to Edit Mode, select all faces and move them just a bit, the mesh gets destroyed and some faces disappear.
What is wrong with this object? I have more human models like this one and most of them don't present such an issue.
Left is before, right is after:

Disable the Auto-Merge option. From the manual:

When the Auto Merge option is enabled, as soon as a vertex moves closer to another one than the Threshold setting, they are automatically merged.

Yup, it works. Thank you :)


text:
Incorrect values when using the color picker?
While painting, I use the color picker to pick one of the color on my object. However, the color picker does not pick the exact color that I have selected.

What am I doing wrong?

Viewport colors are affected by lighting and color profile.
To display unchanged colors in the viewport, you need to do two things:

use the Emission shader (it's not affected by lights)
change View Transform to Standard

(Or just open your image texture in Image Viewer and pick color from there.)

Thanks for helping :D Choosing the color from image texture is easier and solve the problem. Would you mind to answer my another question?
https://blender.stackexchange.com/questions/175097/blender-texture-painting/

Happy to help :). I commented on your other question about sharing files and adding images :).

What to do when picking from the image editor yields the expected color, however painting the picked color does not match the picked color?

Hello @ThomasHarris :). Could you please post this as a new question? You can link this one to provide context. Thanks.


text:
3d View -- How to display camera data in the camera frame?
Is there a way to use display options like "object info" or "view name" (in the viewport's preferences) to display other information like for example the lenth focal of the active camera and its position. And is there a way to move this information anywhere in the 3d window ? Like in this example:

So I found a script that allows me to display the focal point on the 3d window.
import bpy
import blf

dns = bpy.app.driver_namespace
dc = dns.get("dc")
dc.remove_handle()

class DrawingClass:
    def __init__(self, context, prop):
        self.prop = prop
        self.handle = bpy.types.SpaceView3D.draw_handler_add(
                   self.draw_text_callback,(context,),
                   'WINDOW', 'POST_PIXEL')

    def draw_text_callback(self, context):
        font_id = 0  # XXX, need to find out how best to get this.

        # draw some text
        blf.position(font_id, 15, 350, 0)
        blf.size(font_id, 20, 72)
        blf.draw(font_id, "%s %s" % (context.scene.name, self.prop))

    def remove_handle(self):
         bpy.types.SpaceView3D.draw_handler_remove(self.handle, 'WINDOW')

context = bpy.context
dns = bpy.app.driver_namespace
dns["dc"] = DrawingClass(context, bpy.context.object.data.lens)

The first 3 line allows me to erase the preceding display. How can I prevent the scipte from reading the first 3 lines the first time the script is run? For now the script reads the focal once and writes it. How to make sure that the script is read every time the focal is changed?

For rendering or just to display the properties in the camera frame?

Juste to diplay the properties in the camera frame

AFAIK that's not possible by default and I guess there is no existing add-on which is able to display any kind of information in the camera frame.
However, you can draw the text using python's bgl module and create your own add-on. Following example code is based on our famous Operator Modal Draw template that comes with blender, extended by the answers from Coordinates of corners of camera view border and Multi-line Text in blf (with multi colour option) to get the ball rolling:

hud.py
import bpy
import blf
import bgl

# -> BASED ON: https://blender.stackexchange.com/a/14746/31447
def view3d_find(context):
    # returns first 3d view, normally we get from context
    for area in context.window.screen.areas:
        if area.type == 'VIEW_3D':
            v3d = area.spaces[0]
            rv3d = v3d.region_3d
            for region in area.regions:
                if region.type == 'WINDOW':
                    return region, rv3d
    return None, None

def view3d_camera_border(context):
    obj = context.scene.camera
    cam = obj.data

    frame = cam.view_frame(scene=context.scene)
    # move from object-space into world-space
    frame = [obj.matrix_world @ v for v in frame]

    # move into pixelspace
    from bpy_extras.view3d_utils import location_3d_to_region_2d
    region, rv3d = view3d_find(context)
    frame_px = [location_3d_to_region_2d(region, rv3d, v) for v in frame]
    return frame_px

# -> BASED ON: https://blender.stackexchange.com/a/31799/31447
def draw_string(x, y, packed_strings):
    font_id = 0
    blf.size(font_id, 18, 72)
    x_offset = 0
    y_offset = 0
    line_height = (blf.dimensions(font_id, "M")[1] * 1.45)
    for command in packed_strings:
        if len(command) == 2:
            pstr, pcol = command
            blf.color(font_id, pcol[0], pcol[1], pcol[2], pcol[3]) # #bgl.glColor4f(pcol)
            text_width, text_height = blf.dimensions(font_id, pstr)
            blf.position(font_id, (x + x_offset), (y + y_offset), 0)
            blf.draw(font_id, pstr)
            x_offset += text_width
        else:
            x_offset = 0
            y_offset -= line_height

def draw_callback_px(self, context):

    WHITE = (1, 1, 1, .7)
    CR = "Carriage Return"

    x, y = view3d_camera_border(context)[3]
    cam_ob = context.scene.camera

    if cam_ob is not None:
        ps = [
            ("{} {}mm".format(cam_ob.name, cam_ob.data.lens), WHITE),
            CR,
            CR,
            ("T: {:.2f}, {:.2f}, {:.2f}".format(
                cam_ob.location.x,
                cam_ob.location.y,
                cam_ob.location.z), WHITE),
            CR,
            ("R: {:.2f}, {:.2f}, {:.2f}".format(
                cam_ob.rotation_euler.x,
                cam_ob.rotation_euler.y,
                cam_ob.rotation_euler.z), WHITE),
        ]

    draw_string(x+10, y-20, ps)
    # restore opengl defaults
    bgl.glLineWidth(1)
    bgl.glDisable(bgl.GL_BLEND)

# -> MODAL OPERATOR TEMPLATE
class ModalDrawOperator(bpy.types.Operator):
    """Draw a line with the mouse"""
    bl_idname = "view3d.modal_operator"
    bl_label = "Simple Modal View3D Operator"

    @classmethod
    def poll(cls, context):
        return context.area.type == 'VIEW_3D'

    def modal(self, context, event):
        context.area.tag_redraw()

        if event.type in {'RIGHTMOUSE', 'ESC'}:
            bpy.types.SpaceView3D.draw_handler_remove(self._handle, 'WINDOW')
            return {'CANCELLED'}

        return {'PASS_THROUGH'}

    def invoke(self, context, event):
        if context.space_data.region_3d.view_perspective == 'CAMERA':
            # the arguments we pass the the callback
            args = (self, context)
            # Add the region OpenGL drawing callback
            # draw in view space with 'POST_VIEW' and 'PRE_VIEW'
            self._handle = bpy.types.SpaceView3D.draw_handler_add(draw_callback_px, args, 'WINDOW', 'POST_PIXEL')

            context.window_manager.modal_handler_add(self)
            return {'RUNNING_MODAL'}
        else:
            self.report({'WARNING'}, "Switch into Camera View")
            return {'CANCELLED'}

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

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

if __name__ == "__main__":
    register()

Copy and paste the script into the text editor, run it, move over to the in 3d View, press F3 and type "Simple Operator..." to execute. If you'd like to convert it into an Add-on, just add a python dictionary named "bl_info" at the top of your addon: https://wiki.blender.org/wiki/Process/Addons/Guidelines/metainfo

In order to make it work for 2.7x versions you would have to replace 2 lines due to changes in Matrix Multiplication and on how to set the text color using blf.color in newer versions:
# draw_string()
- blf.color(font_id, pcol[0], pcol[1], pcol[2], pcol[3]) # Blender 2.8x
+ bgl.glColor4f(*pcol) # Blender 2.7x

# view3d_camera_border()
- frame = [obj.matrix_world @ v for v in frame] # Blender 2.8x
+ frame = [obj.matrix_world * v for v in frame] # Blender 2.7x

It's awesome ! Thank you so much
Any idea why its not working in 2.79 ?

Sure, due to the viewport changes as of Blender 2.8x (eevee) there have been some changes to bgl as well: https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API @LoickNizon Do you need it for 2.7x? If so, why the 2.8x screenshot in your question? How this site works: https://blender.stackexchange.com/tour

Thank you for your answer. currently I would like to use this script for my personal project where I use 2.8 and for my boarder team which uses 2.79

If there is any good reason...? I can make it work for 2.79 but I don't have it around anymore, have to download and install it and such... @LoickNizon

yes it will be great that it works in 2.79

Updated the answer on how to make it work for 2.79 @LoickNizon

thank you so much ! you make my day!


text:
Decrease the number of vertices on the mesh boundary
I have a mesh converted from filled curve.
Left image is filled curve, and the right is a mesh converted from left in edit mode

As you see the right image arm part, there are a lot of vertices.

Since there are a lot of vertices only those area, when i sew this pattern with cloth function, it has unbalance problem.
What I want to do is that,
Optimally, it would be the best if the shape stays the same but the number of vertices is decreased.
However, it would be also okay, even the shape changes though, I want to reduce vertices on the curve areas which are arm and neck part.
And as you can see, there are no vertical line but all horizontal lines. this is also the problem.
If, I can create horizontal lines on that area, it could be alternative solution instead of reducing the vertices.
How can I do?
Thank you very much:)

This issue is the choice of a filled imported SVG curve. A filled curve, as with a font is going to give you a mess. Either as commented to a prior question create a minimal grid with good topo and subsurf (as shown in image in a prior post)  Or remove the faces and grid fill.   Consider adding a link to SVG, or a blend to question.

@batFINGER Thank you very much for your kind answer :) Unfortunately, I did not fully get it, would you explain more in detail please?

please share your file so that we can find the best way to simplify it: https://blend-exchange.giantcowfilms.com/

Commented here https://blender.stackexchange.com/questions/184984/why-does-cloth-sewing-not-work-correctly-on-this-imported-svg/185007#comment309961_184984 Well explained in answer  here too   https://blender.stackexchange.com/a/185007/15543 decimate or unsubdivide after grid fill.

Since you keep asking for help with the exact same issue you asked before, I would like to know what in this answer did not work for you? The answer is the same, or if it isn't please let us know why.

@susu No, it was not the same question, before that, I need to create edges between many vertexes, since there are a lot of vertexes. But now, I solved that problem with "Bridge Edge Loops", "Shift+Alt+Mouse left" and delete only face. And this problem is that there are too many vertexes near arm hole area, so I needed to reduce the number of vertexes. However, as I reduce the resolution of render, I solved this problem. Thank you very much for your help :)


text:
What are these Errors / Warnings when running simple command line script
I followed the official documentation to run a simple script:
import bpy
bpy.data.objects["Cube"].data.vertices[0].co.x += 1.0

by command
blender --python my_script.py

but I get the error:
Read prefs: /home/ubuntu1/.config/blender/2.82/config/userpref.blend
ERROR (rna.define): /build/blender-RL3axj/blender-2.82.a+dfsg/source/blender/makesrna/intern/rna_define.c:1697 RNA_def_property_ui_range: "RenderPovSettingsScene.media_diffusion_scale", precision outside range.
ERROR (rna.define): /build/blender-RL3axj/blender-2.82.a+dfsg/source/blender/makesrna/intern/rna_define.c:1697 RNA_def_property_ui_range: "RenderPovSettingsScene.media_absorption_scale", precision outside range.
WARN (rna.define): /build/blender-RL3axj/blender-2.82.a+dfsg/source/blender/makesrna/intern/rna_define.c:1647 RNA_def_property_ui_text: 'Positive values lead to scattering in the direction of the light and negative values lead to scattering in the opposite direction of the light. Larger values of e (or smaller values in the negative case) increase the directional property of the scattering.' description from 'media_eccentricity' '' ends with a '.' !
WARN (rna.define): /build/blender-RL3axj/blender-2.82.a+dfsg/source/blender/makesrna/intern/rna_define.c:1239 RNA_def_struct_ui_text: 'Export only files necessary to texture preview and render image.' description from 'TEX_OT_preview_update' '' ends with a '.' !
WARN (rna.define): /build/blender-RL3axj/blender-2.82.a+dfsg/source/blender/makesrna/intern/rna_define.c:1239 RNA_def_struct_ui_text: 'Use this class to define pov world buttons.' description from 'OBJECT_OT_light_preset_add' '' ends with a '.' !
WARN (rna.define): /build/blender-RL3axj/blender-2.82.a+dfsg/source/blender/makesrna/intern/rna_define.c:1239 RNA_def_struct_ui_text: 'Use this class to define pov radiosity add presets button.' description from 'SCENE_OT_radiosity_preset_add' '' ends with a '.' !
WARN (rna.define): /build/blender-RL3axj/blender-2.82.a+dfsg/source/blender/makesrna/intern/rna_define.c:1239 RNA_def_struct_ui_text: 'Use this class to create blender text editor operator to insert pov snippets like other pov IDEs.' description from 'TEXT_OT_povray_insert' '' ends with a '.' !
Registering panel class: 'TEXT_PT_POV_custom_code' misses category, please update the script

I have blender 2.82 on Ubuntu 20.04.
What did I do wrong?

These are errors / warnings created by one of the addons you have enabled.  POVRay perhaps.

@batFINGER you're absolutely right. It was resolved by disabling POV-Ray. What is the solution then? Is POV-Ray incompatible with python module?

Speculating (as I don't use POVRay) make sure you have the addon version to match your blender.  Or disable by default if not required by scripts.

@batFINGER again, you're right. I have pov3.8 but I think blender supports 3.7. I will test it.


text:
Subdivision Surface Modifier partly closes holes
I am trying to recreate a wireless phone charger. And the hole for the USB-C input will partly close itself when adding the subdivision surface modifier.
The hole is created using the knife tool on a sphere. And then modeled by copying the vertices with  E

When deleting the faces beside the hole, the problem is gone. But that is not a solution.

I have spend hours trying to fix this but I can't find a solution for this.

If you add Subsurf there is no point in adding so many subdivisions to that indent. Make it lower poly (8 vertices could be enough), then close the gap and enable Subsurf.

Subdivision Surface will virtually move your edges and create intermediate ones in order to smooth the whole shape. The part you show is only made of one big face with a hole in its center. In its try to smooth it, some vertices will be created in the hole area, which will give bad result. Here is what it gives with a simplified version (without and with the modifier):

If you cut your face the thing won't happen any more:

In your case you could fix it with this kind of topology:

To me, it seems like the meshes aren't connected.
So the one mesh overlaps the other.
You can either merge the two by selecting everything and pressing M (while in Edit Mode) and then choosing merge by distance.
Another option would be pressing P while in Edit Mode and choosing Separate by Loose Parts. After that you can tab out of Edit Mode and select both objects and using a boolean Modifier set to Union to combine both Objects. If you use the Subdivision Modifier after the Boolean it should consider them as connected.
In general it's a difficult situation though because you have to connect to pieces of geometry that have an uneven number of vertices  at the connection point.
There is also this video which might help you out.

Thanks! The meshes where connected, merging has no real effect. But the video is exactly what I need. Using the Knife tool for making holes is not that great, the more you know. Thanks again!.


text:
Control-Click on a Mac?
How can I Control Click on a Mac? I mean holding the Control key and clicking to get the RMB  functionality. I know that I can use a right-click mouse, but I like using Ctrl-click.

simple answer is to go to system prefs on MacOS and go to mouse or on macbook trackpad and select point and click settings and then secondary click and adjust any necessary settings

Thanks but that doesn't answer my question. Right-click is set up fine in my macOS System Preferences. My question is: Blender does not respond to ctrl-click, only a physical right-click with the Magic Mouse. Every other Mac app reads ctrl-click as right-click.

In that case this sounds like a feature that hasnt been implemented into bledner yet, so i think you should take this to the request a feature section to blender.org

I can't find the place to suggest features, only report bugs

i found another question that has some good answers for requesting features https://blender.stackexchange.com/questions/1190/best-place-to-put-feature-requests


text:
How to make twisted strips

How can I make the twisted red and white strips on the cylinder? I have taken the cylinder and loop cut but how to twist the cylinder and get that spiral selection.

Why bother with twisted selection. Use a texture.

i don't need texture to be added. We i got the answer below hope it help u also

@atek - I agree with Mzidare. Using a texture (a 2d image of diagonal red and white stripes) wrapped around the cylinder allows you to keep the cylinder geometry simple, which should produce smoother and faster renders.

Create a circle and go into edit mode. I adjusted the number of vertices to 16.
In the Properties Panel, add a Screw Modifier to the object. Set the axis to Z and raise the Screw property until the proportions are correct.Apply the modifier if you wish.
In face selection mode, Alt+rightclick on the face loops and assign them a new material.

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


text:
When do I add hair to my model?
I have sculpted a humanoid Rat and have retopologized it. As many of the youtube tutorials say, I am supposed to proceed to UV unwrapping. I want to add hair to my character (fur to be specific) and it will be an animated character (I will rig and get it animated from Mixamo).
Now what should I do? Should I add hair particle system before uv unwrapping to the retopoed mesh or after it?

it would be more logical to give hair to the low-poly version, the one you'll use

You can do UV unwrapping and hair particles independently of each other.
UV unwrapping creates UV maps. You can find them in the Object Data Properties.
Hair particles create particle settings and adds a hair modifier to the object.
As long as you haven't started to paint textures or edit/comb the hair you can delete uv maps and particle settings and re-create them.


text:
Volumetric light causes lights to flicker in eevee
I'm having a problem where the lights on my car (and the area lamp) are flickering when i play the animation. I used a cube with the principled volume settings and the flickering is only caused when this cube is active. I tried messing around with both the Volumetrics settings in the Render properties as in the Principled Volume shader.
It looks like the cones of light are flickering whenever the volumetric cube is active.
Does anyone know how to fix this issue?
I've added a video of how it looks and my settings.
Thanks in advance,
Alex
Video of render example: Video of Render Example

Settings

Settings

Of course too late, but I solve this problem by reducing the spot radius back to 0.25m. I don't know why but good to know!

The link the OP provided seems to never have worked, as it is just leads to a generic download page. They haven't been around for a year. Since this question lacks an example image, should it be closed?

Seems like Eevee sometimes really has some troubles with volumetric lighting. As they say here: https://developer.blender.org/T71208

I think this was a side effect of a previous bug (in 2.80). basically, the volumes were all shifted 1 voxel further from the camera. This was fixed but now this light leaking is just a side effect of the volume texture being low res.
There is little we can do to fix it. The workaround is to give more precision to the volume (increase samples in volumetric settings) and the shadow maps.

this is a sort of precision error.
This probably won't be fixed anytime soon.
Unless a new groundbreaking volumetric lighting approach is discovered, which is... quite unlikely? You can attempt to alleviate this by making the volumetric lighting texture more fine. This will however use more VRAM so be careful

I hope it will help.
These few quite similar cases may be helpful too:

https://developer.blender.org/T61654
https://blenderartists.org/t/why-spot-light-coming-throught-the-mesh/1227943
EEVEE 2.8 : the light goes through the egdes of a simple cube?


text:
Edges are not visible in Blender with Wireframe
Edges are not visible in Blender with Wireframe. wireframe behaves strangely.
In the first two screenshots, I show that I can't see the object because of the references
https://ibb.co/Pm1WX82
https://ibb.co/F5TFvXD
In the same screenshots, I show that the edges are not visible
https://ibb.co/ygtWXGT
https://ibb.co/bH3b2mk

hello, maybe a problem of driver? What does it give if you switch to a previous one?

hello, the older version is not supported on my PC

maybe try Render panel > Performance > High-Quality Normals?

Hello and welcome. Please edit your post to include the screenshot directly in the post instead of using links, which can expire and make your post useless.

Hello, maybe Overlays > Geometry > Opacity.

Hello and welcome. While files, images, and external videos or links may be helpful additions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file, watching a video or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be indexed and searched for thus helping future visitors with similar issues.

authors: Александр Кашкавал


text:
Why Are There Holes In My Mesh When I Move Vertices Using Subsurface Modifier?
I'm modelling a character in Edit Mode but after applying the Subdivision Surface Modifier to it, I noticed that there were a few vertices on the arm that, when moved, would create a hole.Like they are not even join to the the mesh or something. I don't know why this is. I can't leave the mesh as is because it's creating a very sharp edge and is causing problems with the shading. Don't know what is causing this or how to fix it.I just need the vertices to behave like normal. Please help!

hello could you please share this part of your mesh? https://blend-exchange.com/

i don't think that these are holes and i think they are caused by subdivision modifier. If you turn it off, they are gone, right? you can e.g. click the left most button (with the triangle and the 3 squares) in subdiv modifier to "see all"


text:
Way to merge faces after remesh?
I'm trying to get my head around remeshing and currently struggling to see the advantages... as I just end up with an insane amount of faces if I want the object to resemble its original shape?
Take this letter M for example... I had to set the 'sharp' remesh value to 10 and ended up with so many faces that they are like 1px each on my screen.
Is there no way I can merge the faces together? Say like, those that are on the same side as each other.
I feel like that would make things a lot more efficient

maybe try a X > Limited Dissolve?

Why do you even try to remesh that model to begin with? A shape so simple, I woudln't even bother unless I really need to. And if so, I would just dissolve limited, make a couple cuts myself and i'd be done way better and cleaner than what any of Blender's remeshing methods can do.

@moonboots Thanks! I couldn't find Limited Dissolve but found the normal Dissolve feature... that combined with 'select / similar' worked nicely, although it did nearly crash Blender in the process lol

In Edit mode select all and press X >Limited Dissolve

@moonboots Thank you!

But as Lolock says it would be interesting to know what you're trying to do, why did you subdivide your mesh for example?

@moonboots To be honest I dont specifically need to remesh this object, more like I'm trying to learn just for future reference. As a lot of the YouTube tutorials that I follow involve remeshing objects, but it puts a lot of strain on my machine despite me having a high-end M1 MacBook Pro


text:
Video with transparency shows black when looking from behind a tranparent material
So I'm making this animation where the camera is first person and from inside a car, but the model I got had opaque window material, so I turned the material alpha to 0, but now, when looking from behind it, the stickman video shows black like that, anyone got a solution?
Thanks

if youre going to use an alpha of 0 then try disabling the window altogether (dont delete it)

That’s not how alpha works @desperrrr…

please provide blend file since you didn't show us any of your settings

this is the blender project file:
https://we.tl/t-zooiNODBKJ

Hi. Please don't post essential information like links, file downloads or additional details in the comments section where it can be easily missed. Instead edit them into your original post with the [Edit] button above. Comments are transitory by nature, are hard to index or search for, and may be erased at any moment.


text:
How to unwrap UV for curved mesh correctly? (Making curved conveyor belt)
I'm trying to create a curved conveyor belt. What I wanted to do was to unwrap and straighten the UV for the belt so that in the game shader I could just create a belt animation by offsetting texture position on Y axis. For some reason, the texture is not stretched correctly on the mesh. Any idea why it projects texture like that? Or I'm grossly misunderstanding how this supposed to work?

Because the triangles that are inside your quads deform the image, you need to add topology to your mesh, see the difference between left and right topologies:

Here if I draw the line that separates the 2 tris that make your quad:

Another solution, 2 objects, you rotate the image on the circular one while you just move it on the straight one (quickly made). Maybe you can make this solution compatible with your game engine?

Thanks! That worked for me. There is still some distortion left unless I add a lot more subdivisions.
Is there a way to reduce distortion without having high poly topology? Seems a bit inefficient if I were to use this for a game.

maybe in that case you need to find a completely different solution? like some objects animated in loop, but I don't know if it would be lighter...

actually you could separate the 2 parts (the straight and the circular) and create 2 animations, in the circular part use a circular image that you simply rotate? Seems like a good solution. See my edit

Finally had time to get back to it. Thanks for the second suggestion that worked really well. Here is the result https://i.postimg.cc/26XhyWtK/Belt.png
And as for the animation, it looks butter smooth now. I made a shader that just rotates the UV.

Nice, thanks for the feedback  ;)


text:
Kinect + Ni Mate Export to Fbx
I have a setup with the Kinect + Blender + Ni Mate software here.
My recording is all nice and ready. My pose is constrained to the bones of the "Kinect" one. My keyframes are all on empties it appears, but my armature is constrained to those.
I want to now export the animation to FBX. However, when I go to do so, it takes half an hour. When it is finished, the .fbx file is 700kb but if you try to import this into anything (like Unreal Engine 4), it takes another half an hour to load back in and expands RAM memory to a wopping 4+GB with animations everywhere, presumably per bone.
I want 1 animation file for my armature with only what is in the recorded clip. What am I doing wrong?
My settings for export are:

Only export Armature
only export Selected.
Only deformed bones is checked under "Armature" tab
Under animation I have checked "Baked anims", "Key all bones", "All actions", Sampling Rate 1.0, Simplify 1.0

I also tried to "bake action" using the answer here but that took just as long, broke the animation in blender for me.


text:
How to remove aliased lines with anti-aliasing?
I rendered my image with Eevee (256 samples, resolution - 1920 x 1080) and this is what I've got:

There are ugly, sharp edges on my rendered image (these ones I highlighted).
Also, in the upper part, I marked with the red circle section that got "pixelated" but this is another thing.
Is there anything I can do in order to smooth these edges ? Or do I have to increase the number of samples ?
I'm an absolute beginner with Blender and the topic of "optimization" sounds like magic to me.

The technical term would be How to remove aliased lines with anti-aliasing?

Have you accidentally rendered it while in Edit (not Object) mode?

Nope, I rendered it while in Object mode, that's for sure.

Could you upload your .blend file?


text:
How do i get a reference clip to start playing later in the timeline?
I am still learning how to use blender and am using reference clips for different actions throughout a single animation. The reference clip i want to use to animate my final action ends long before i get to the start frame for the animation. inserting the clip always seems to default the beginning of the clip to the first frame of the timeline.
Vers. 2.79, Cycles Render.

Please show some of your work as a Blender Screen capture in this and all future questions to clarify you question.  Please indicate which renderer, Cycles, Blender Internal ... you are using expliclity and via screen captures.

Do not expect the readers to guess even though they might make a reasonable guess.  Version of  Blender 2.7 ... 2.8?


text:
There is no sound in 2.80 but was ok in 2.79
I have started using 2.80
Opening a 2.79 project I have no sound in 2.80 (was ok in 2.79)
What do I do wrong?
Any suggestions?

I found the problem.
In my preference setting (go to Edit>Preference...) for Audio Device it was by default selected "SDL".
I have changed it now to OpenAl and have the audio working fine.


text:
split screen edit
What is best practise when editing on a project with many clips in order to achieve a split screen effect?
I tend to render to file the first cut of the movie after applying transform to shift it to the left. Open a new blender project ad apply a mask to it and render to file. Same for the second cut. Re-import both on the main project and apply a translation to the second cut.
Surely there is a better way of doing this. I just don't know how.
========================
so for example using compositing (see picture below)..
I apply the mask (black bars) but how do I shift the movie to the left for example?

I think I found the answer.
I have used the translate node


text:
Error when trying to export mesh/armature FBX file to Unity
I have been trying to move a blend file with three animations from Blender to Unity.
First I tried exporting the file from Blender to Unity and I got the below error.
Then I tried importing from Blender into Unity and the mesh and armature would import fine, but only the animation that was currently selected in Blender would play. So I selected the second animation in blender, imported from Unity and then did the same for the third and final animation. So now I have three versions of the same mesh in Unity, each with a different animation in my assets folder.
Can someone please tell me how to get all the Blender animations in? I already asked on the Unity forums and no one seemed to know
Link to Unity Post: http://answers.unity3d.com/questions/1266045/how-to-import-all-animations-from-a-blend-file-int.html#comment-1267899
Blend File:

The screenshot you show is when you are trying to import an FBX into Blender? It looks like the same type of error that occurs when you try to import an FBX into Blender if the FBX cannot be understood by Blender due to the fact the FBX was generated via Maya. What is the link to the forum on Unity3d? You shouldn't need to manually export an FBX for usage in Unity. Unity/Blender does this automatically for you when you import the .blend file into the project folder.

Thanks for replying. I added the link to the post. I haven't used Maya for anything here. Everything was made in Blender. The first comment tells me to export as FBX, which you said I shouldn't have to do and also gave me the error. The second comment told me to split one animation up in Unity, but I would prefer to just use them already separated.

Every blender file with animations I have seen have always used the approach of splitting the animations up in Unity, and not having multiple animations inside the blender file. But I tried the approach of importing multiple animations from the blend file and it seemed to work following this guide: http://blender.stackexchange.com/questions/183/how-can-i-manage-multiple-animations-in-one-blend-file. I did not need to manually create the .FBX file. Also other people have had the same error message as you: https://blenderartists.org/forum/showthread.php?390529-Blender-FBX-Exporter-Armature-Issue

Maybe I'm missing something in the answer, but it seems to me that it is explaining how to create separate animations, which I already know how to do. i.e. Create animation, hit F to create fake user so it is permanently saved, open the animation in NLA editor and I think there is a snowflake thing you gotta press. It doesn't really seem to explain the process of exporting other than one comment that mentions removing the '.x', but there are no .x file formats. I've also attached my blend file now.

I downloaded your file and see what you mean. When imported into Unity, the only animation clip is "Default Take". When I open up your file I see an actions called TurnRight and TurnRight.001. I re-named TurnRight.001 to something else. After doing this, the model imports fine into Unity with the separate animation clips. So maybe it's a problem that TurnRight and TurnRight.001 are too similar of a name? Try re-naming it. The last link I posted contains some hint that the names were causing other people problems.

Dude you are awesome. That was the problem. Thank you so much.

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


text:
Just Appended Model! Only One Animation Works Now
I've been getting an error when trying to export my blend file from Blender to Unity and someone recommended I try appending everything in my model to a new file. So I tried that. I was able to append ONE of my animations in. I have three.
Now when I go back to the original file, I can only play one animation which is walking. Even if I select my other animations it will only walk forward. The other two are Turn_Left and Turn_Right.
Can anyone tell me why I can't use my other animations now?
Blend File:

I couldn't open your file (It's 0 Kb).

Sorry, can you try one more time? It worked for me.


text:
Leg Control Bone Disappearing in Pose Mode
This is pretty strange for me. I have the bottom half of my mesh in edit mode shown below. Everything seems normal here. No bones are missing.

Then once I go into pose mode, the LegCtrl.R is missing. And obviously I can't manipulate the leg easily now. What's going on?

Blend File:

I tried your model, and the control bone... is there... and works... https://i.sstatic.net/5CbZr.png It must be something else...

It looks like you have hidden the bone by pressing H. In pose mode press ⎇ AltH to unhide all bones.
Another way is to find it in the outliner and unhide the one bone.

Yup that was it. Never would have though of that


text:
Difference in rendering result vs viewport in v.2.8.0
I have a problem with final rendering, which is different from what I can see in the viewport. Previous replies to similar topics don't help, nothing changes. It shows some addidional noise and looks totally awful, I have checked the color management settings and everything seems to be ok, but I'm completely new to blender so I may have sth checked or unchecked, no idea. I'm using v. 2.8.0. No idea whatsoever where the problem may be.. Thanks!

render problem

Hi and welcome! What is the viewport image? What is the rendering? Also which posts do you have read already? Could you please link them? I guess there is overlapping geometry but can't be sure (check your outliner). Consider sharing a minimal example preferably using: https://blend-exchange.giantcowfilms.com/

Hi, the first one is viewport image and the one at the bottom is rendered. Here's the file. , does it work? thx

There is overlapping geometry:

This button does not mean the mesh won't be rendered:

To disable things to be rendered, you need to use "disable in renders" buttons:

heeey! Thanks! Lovely! <3

Hi @kasia. Please consider to accept the answer. How this site works: https://blender.stackexchange.com/tour


text:
How can I animate matrix transforms like rotation or scaling?
Can transform matrix be animated with keyframes or do I have to do this manually? e.g. How could I animate this rotation? I know how to set keyframes on rotation, but i need/want to use transforms.
R = Matrix.Rotation(pi / 2, 4, 'X')

for ob in outer_collectionBig.all_objects:
    ob.data.transform(R)

Related: https://blender.stackexchange.com/questions/44760/rotate-objects-around-their-origin-along-a-global-axis-scripted-without-bpy-op/44783#44783 and https://blender.stackexchange.com/q/116505/31447

@Brockmann : i want to animate the transformation...the links are about matrices...aren't they?


text:
Why my objects getting "flipped" when the viewport is set to shaded or rendered?
I'm trying to follow this yt tutorial which should produce a flower using Sverchok.
The problem occurs when I'm judging my result in the rendered view. If I'm rotating the viewport the leaves seem to "flip". Looks like I disorder of the visualizing of the leaves... but honestly, I have no idea what causes this.
I think thousand of words can not describe what a few seconds video can, so please have a look: https://youtu.be/gqnynFoe68E

The object rotated in viewport:

The issue only happens when the shading is set to rendered or shaded, no issue in sold view though.
Result by using just the distance node:

A bit rotated:

What happens if you tweak the value of the Greater Than node just a tiny bit? Problem could be that the Distance is almost exactly 3.660 but due to floating point calculations it very slightly varies as you rotate. The Greater Than gives a hard edge cutoff between 0 and 1, losing the gradient you have set up in the color ramp node.

@RichSedman: happens the same. I add the greater than node to it to make it clearer. With the colorramp the difference wasn't that clear. I update my answer without "greater than" node

In that case, rotating just the view shouldn’t be affecting the Location coordinate at all - unless the mesh is being dynamically altered based on the viewport. I must admit to not really knowing much about Sverchok.

@RichSedman : nothing was animated to that point. That’s why I wondered…

Does it happen the same if you use another version of blender? maybe 3.0 is still too buggy. It does not seem a Sverchok bug

I didn‘t try. After updating all nodes and replugging the output nodes it worked again. But it was weird ♂


text:
Problem with selecting faces vertices edges and texturing
I am having trouble selecting faces vertices edges , sometimes i just cannot select at all, other times if i go through all objects in the hierarchy i stumble upon one face which gets selected. Select all sometimes works other times it doesn't, sometimes it's as if simply switching from Edit to Object mode affects the objects and i suddenly can select stuff. Not to mention that select all almost never works. I tried convert To mesh, Split by edge and then Separate by Loose Parts but there is nothing consistent sometimes i even have trouble deleting an object which is even more frustrating. Any ideas what is wrong with the geometry or maybe i am doing something wrong?
Oh and the texturing is a massive issue, i need to add a texture per face or at least 3 or 4 different materials but when i finally succed in adding a material or two like all sorts of faces start changing material and i cant find a way of removing a material from a face other than deleting the material from each individual face. ugh

Like right now i want to select all the walls and add to them a material but i can't even select the faces. Vast majority of vertices are missing.

PIcture of selected faces intended to have material and result with almost all faces getting the material -
Material gets attached to all faces which i don't want to have the Material on.

Are you using an add-on to make that shape, or did you build it from scratch? Just curious, because the mesh seems to be comprised of multiple objects, and the fact that their names begin with "path", suggests they may be generated from a curve or something like that.

i got it from Inkscape the geometry is from an svg file.

Yeah. I thought it might be something like that. You said you tried to convert to mesh. Did you use Mesh from curve?

yes Mesh from Curve. some details about it here https://blender.stackexchange.com/questions/182412/displace-modifier-with-black-and-white-texture-has-sloping-edges

Any chance you could post the .blend? It might be easier than me asking you a thousand questions.

file uploaded here file

It says "page can't be found". Try using blend-exchange - https://blend-exchange.giantcowfilms.com/ Upload the file, agree to the terms, paste the URL of this question into the box they give you. It will give you a link, Post the link in your question (this one).

thanks for your help

Ok. I think I fixed it. What I did was delete the light (so I could select all and only get mesh parts). In object mode, I selected all, and right click > join to make it all one piece (one mesh). I tried the CTRL+J method a couple of times first, so you might have to fiddle with it -  I don't know why it didn't work until I used the right click method. Anyway, once it was all joined into a mesh, I went to edit mode, then select all > mesh > clean up > merge by distance - because there are "seams" between the edge pieces. I counted 1160 vertices removed. After that, I had to UV unwrap again because there were overlaps, but I think it's good to go. If, in the future, you need it to be more pieces, you can always separate it later.
I'll upload a copy of the file I modified for reference.
Here it is -
Hope this helps.
EDIT - Here is your file "cleaned up" it still is not perfect - I did a quick and messy job on the UV unwrap just so I could get the textures to look decent - you may have to redo them. Also, many of the floors are still n-gons, this might not matter, but if you want to triangulate for a game engine later, you might want to make sure it's all quads first to be sure there a re no issues. I separated what "chunks" of floor looked appropriate, but obviousely, you will want to divide some of them on your own for texturing reasons - i'll leave that to you. I also have to remove your texture in order to pack the ones I used, you'll have to replace it.
Here is the (cleaned up) file.  Hope this finally works for you.

so i did an edge split and Loose for the faces selected in the pic added to main Question and then i added a material to those same faces and it added the material to All faces (including walls) except that left lower corner face. I think Blender is trying to humiliate me. It is succeeding.

Yeah, that floor. Just select it, and in the materials section pick the "globe". Underneath the assign button there is another "globe". click that and a list should pop up with your other material in it. Pick the material from that list.

Alternatively, since it looks like you're using the same material for the whole thing at this point, you might just want to go back to object mode and start again. Select the materials, and hit the little minus next to them. This will remove these materials and their slots, you can then add a new slot and then a new material (the same one again) and apply it to all (if there's only one material slot, it will apply ti the whole mesh anyway)

i selected a few of the floors, created a new Slot, added a new material and instead of getting the material on those few floors it went on the exact opposite. Basically now i have Material on all faces except the ones i want. pic added to main Question

Yeah, the problem is a topology issue at this point. You can see there are edges on the walls all over the place "terminate" at the floor (the edge loop stops there). I'm cleaning it up for you. I'll upload when I'm done.

I uploaded the file and added it to my answer.


text:
How to assign a type annotation to a class? Dynamic Property Group
Hi I’m running on windows 10 with blender 2.82
I keep getting these annotation type warnings which I understand are common but not breaking for addons that have compatibility, however, when trying to run blender in the background it becomes breaking.
Warning: class WM_OT_import_modal contains a property that should be an annotation!
c:\Users\Willard\Desktop\blender\2.82\scripts\addons\sketchfab_init_.py:1648
assign as a type annotation: WM_OT_import_modal.gltf_path
assign as a type annotation: WM_OT_import_modal.uid
You are using the latest version(1.3.1)
ERROR (wm.operator): c:\b\win64_cmake_vs2017\win64_cmake_vs2017\blender.git\source\blender\windowmanager\intern\wm_event_system.c:1486 wm_operator_invoke: invalid operator call ‘WM_OT_import_modal’

This is where the operator is called-
def import_model(gltf_path, uid):
    bpy.ops.wm.import_modal('INVOKE_DEFAULT', gltf_path=gltf_path, uid=uid)

Below is the class in the addon throwing the error.
class ImportModalOperator(bpy.types.Operator):
    bl_idname = "wm.import_modal"
    bl_label = "Import glTF model into Sketchfab"
    bl_options = {'INTERNAL'}

    gltf_path = StringProperty()
    uid = StringProperty()

    def exectue(self, context):
        print('IMPORT')
        return {'FINISHED'}

    def modal(self, context, event):
        bpy.context.scene.render.engine = Version.ENGINE
        gltf_importer = glTFImporter(self.gltf_path, Log.default())
        success, txt = gltf_importer.read()
        if not success:
            print('Failed to read GLTF')
        try:
            old_objects = [o.name for o in bpy.data.objects] # Get the current objects inorder to find the new node hierarchy
            BlenderGlTF.create(gltf_importer, root_name=Utils.make_model_name(gltf_importer.data))
            set_import_status('')
            Utils.clean_downloaded_model_dir(self.uid)
            Utils.clean_node_hierarchy([o for o in bpy.data.objects if o.name not in old_objects])
            return {'FINISHED'}
        except Exception:
            import traceback
            print(traceback.format_exc())
            set_import_status('')
            return {'FINISHED'}

        return {'RUNNING_MODAL'}

    def invoke(self, context, event):
        context.window_manager.modal_handler_add(self)
        set_import_status('Importing...')
        return {'RUNNING_MODAL'}

It would seem I just need to assign the properties “gltf_path” and “uid” as a type annotation to fix my error, but I can not conceive of how to do this.

Just replace the assignment operator = by :, that's it. https://wiki.blender.org/wiki/Reference/Release_Notes/2.80/Python_API/Addons BTW: I'd suggest take the [tour] to learn about how this site works.

Hi thanks for the response I will take the tour, my apologies for breaking site rules. I came across your suggestion before. It does stop my warning of setting type as an annotation but I still receive my error ERROR (wm.operator): c:\b\win64_cmake_vs2017\win64_cmake_vs2017\blender.git\source\blender\windowmanager\intern\wm_event_system.c:1486 wm_operator_invoke: invalid operator call ‘WM_OT_import_modal’  I guess my bigger problem is not from the warning

Yeah, the first one is a warning, the other one is an error. According to the error message there is something wrong in your declaration of the operator or how you call the WM_OT_import_modal operator... Recommend add the complete code of the operator to your question to test.

I updated my original post to include the entire operator and line that the operator is called from

Can you  invoke modal operators in bg mode?

I think you nailed the problem, I tried some other modal operators and received errors from my source code as well. I guess I should try to put these features into another operator structure?


text:
Smooth all weights of multiple selected objects using python
I am trying to figure out how I can select multiple objects, and smooth every weight(vertex group) on each object using python, instead of manually doing so for each object. Thanks.

That's probably what you need.
import bpy

first_active_obj = bpy.context.view_layer.objects.active
save_mode = first_active_obj.mode

for i in bpy.context.selected_objects:
#    Skip object if vertex group is empty and if object is not a mesh object
    if not i.vertex_groups and i.type != 'MESH':
        continue

#    Set active object and get this object
    active_obj = bpy.context.view_layer.objects.active = i

    bpy.ops.object.mode_set(mode='WEIGHT_PAINT')
    save_idx = active_obj.vertex_groups.active_index

    for idx, _ in enumerate(active_obj.vertex_groups):
        active_obj.vertex_groups.active_index = idx
#        Smooth
        bpy.ops.object.vertex_group_smooth(group_select_mode='ALL', factor=0.5, repeat=5, expand=0)

#   Restore active index
    active_obj.vertex_groups.active_index = save_idx

    bpy.ops.paint.weight_paint_toggle()

#   Restore active object, and restore mode
bpy.context.view_layer.objects.active = first_active_obj
bpy.ops.object.mode_set(mode=save_mode)