text:
Modifier 'Array' and 'Curve'
I have a 'Bezier Circle' and I'm trying to make the object go follow the circle.
I add the array and curve modifier then select the circle (scale is set to 1.00 for both the object and the curve) but the object gets distorted. Why is that?

Additionally, I am also struggling to merge the first and last copies when I use Array and Curve modifiers; I tried to able 'Merge' in the Array modifier and I was thinkin that the first/last copies should merge when they get close enough but it does not work.

Any thoughts?
I have found the reason why the object got 'stretched' when I applied the Curve modifier. The problem was that when I added the Bezier curve I scaled it 'normally' and the Weight and Radius did not go back to 1.00 even though I applied the scale.

The solution is to add the Bezier curve and then scale by radius.
The problem of merging the last and first copies I solved by using the Weld modifier.

make sure that both the origins of the object and curves are at the same position, also select your curve and in Edit mode select all and right click and set the radius to 1?

Hi :). The Array ends aren't merging because it's applied before the Curve modifier. To merge the vertices, add a Weld modifier at the end.

Array and Curve vs Array with Object Offset.
To demonstrate the difference between two setups. Add a simple  joined 2 edge mesh.  -1, 0, 1 along $X$ axis (all y and z coords 0)
Array & Curve

Add default Bezier circle, and on edge mesh a default array modifier, fit the circle and a curve modifier also pointing to circle.
Notice that the mesh is deformed by the curve modifier such that each vertex sits on the circle
Despite "fit curve" a unit length edge is not a great fit to $2\pi r$ circle & have scaled to produce a regular octagon (close enough) on the unit circle.
As mentioned by @JachymMichael in comment above a weld modifier would be required to merge the last and first vert.
Object Offset.

In this example, take the same setup, and in edit mode selected all and shifted in $Y$ such that its object origin is at (0, 0, 0) but it sits atop the circle at radius 1.
An array modifier is added using only object offset. An  empty placed at the origin is the offsetting object.
With a count of 4 and rotating the empty by 90 degrees  (360 / count) gives us 4 undeformed copies around the circle. The merge of the array modifier will deal with start and end vertices.
How to make a circular array using offset object as center?
Mirror object around a circle?


text:
Fix holes in overlapping curves (Text)?
Blender seems to subtract overlapping curves instead of filling them the way letters are usually displayed. Is there a way to fill them without converting them to mesh or seperating them ? I need these seperate so I can animate them. Sometimes the curves are not closed and different shapes but it's where the same curve intersects itself, creating a hole.

Sadly curve filling options in Blender are limited in terms of options and there is little one can do other than separate into different objects.
One potential workaround is to assign different material slots to each spline. If splines have different Material IDs Blender won't try to fill them as a single area.
Just select one of the splines, add a new material slot from the Properties Window > Materials tabs, and assign it to only one of the overlapping splines. They may still have the same material applied, only need to be on different slots.

Beware that this a workaround and doesn't always work reliably, it may fail under certain situations.

This is genius, thank you so much! I added another image to the question, this workaraound unfortunately only works with two closed shapes in the curve object. When the curve intersects itself holes appear too. I'll check if this is neglectable, your answer already helped a lot!

I can only imagine how long you had to smash your head against a wall before you found this workaround :)). Nice one.

@jachym I think I found it by accident, much like I found by chance in some answer here that you could assign different materials to each spline

source: Stack Exchange

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

sort: votes


text:
Create a binary image of an object inside a Glass BDSF object
For my PhD, I want to simulate objects (insects) inside amber pieces, then I would like to render the binary image of the object (i.e a segmentation of the object in the rendering view).
I managed to do something using an emission meterial for the object and then segment my final rendering using colors, but I would like to know if it is possible to dirrectly compute the binary mask (by for example getting informations from the ray tracing : knowing if a ray went through my object).
This is 2 rendering of my scene (I'm really interested into the deformation due to the fact that my "spider" is inside a refractive medium)

Im 1 : Image without the amber
Im 2 : Image with the amber
Im 3 : Using an emission material to segment the color
Im 4 : The binary mask taht I got, and that I would like to get directly from Blender (if it's possible).

You could ask, why not just using the color segmentation, well, I will have to simulate a lot of images, with different colors of amber, differents lightning, so, the emission color will be different at each time. It's still possible to create an adaptive algorithm for the segmentation but it would be way easier to get the mask directly.
So, if you have any idea of how to solve this, it would be perfect !

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

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


text:
Pricipled Volume
attached is the same picture rendered with Eevee engine with the shader 'Principled Volume' applied on the left.
I have used a Light 'Spot' for the torch.
As we can see I get that glitch on the torch, sort of pixelated effect, highlighted in the red circle, do you know how to fix it?
Thanks.

Lower the volumetric Tile Size helped, thanks.
However why I can see the light through the body of the Torch? See the red dotted area.
I get some improvements playing with 'Volumetrics --> End, Tile Size, Samples' and with 'Volumetric Lighting --> Light Clamping'

You need to tweak some values to make the volumetrics look better: In the Render panel play with the Sampling values, and also in the Render panel, under Volumetrics, play with Tile Size (lower is better) and Samples

As per the problem of the light leaking through the body of the torch it seems to be a limitation in Eevee blender.stackexchange.com/a/214915/85951, thanks @Geri for pointing this out.

You need to lower your volumetric Tile Size. Keep in mind that lower values can drastically increase render times in more complex scenes. See which is the highest value you deem "good enough".


text:
Blender 2.79 rig not visible in blender 2.9?
I was using blender 2.79 for a long time, I noticed that when I open my 2.79 created blend files on 2.93, the rig is not visible, even though the eye is checked, there is only one layer and one scene. Also, this only occurs to files in which I had hid the rig before saving, so the rig is supposed to be hidden by default, but only 2.79 is able to unhide them. I could open the model with 2.79, unhide the rig, then save it and open it in 2.93 and then it works fine.
Edit: Also, the rig name is greyed out in the outliner like blender recognizes that something is wrong with visibility.

Oh, the solution is very simple, the newer version of blender seems to have an option to control viewport visibility at a global scale, which is disabled by default on my blend files (which had their rig hidden in 2.79).


text:
Green screen video has dark outline around object
PROBLEM
Hi! I chroma keyed a green screen video in DaVinci Resolve, then imported it with Image As Plane into a blender scene as an Emission node so it’s not affected by lights in the scene (I just change emission strength to match the scene).
In DaVinci, the key is fine, and there is no weird dark outline. But when imported into Blender, it looks like the following:

And here's the node tree:

Why is this happening, and how can I fix it? The only thing I can think of is that there’s something wrong with the codec I used to export the keyed video from DaVinci, or something’s up with Blender.
And for all this:

I’m using Blender 2.93, and cycles.
I set the video’s Material Properties → Viewport Dispaly → Settings → Blend and shadow modes both to Alpha Clip.
I turned the light paths max bounces all the way up to 5+ for everything. Even though there’s nothing that would get in the way to prevent light from passing through, etc
I set Light paths → Clamping both to 0.
I set the alpha in my video’s node in the Shading tab’s N-panel to both Straight, and Premultiplied.
I messed with every material setting that had a positive value, and it changes nothing.
In DaVinci, I used the GoPro CineForm RGB-16 bit codec with Alpha export on, and that’s the only codec with an alpha channel available for me on this computer, so I can’t test other options.

Thanks!

Could you add a screenshot of the node tree?

Just added it, and thanks for helping btw.

Just fixed it. The problem was my original key.
Originally, I never tested the key against a white background. It was always either transparent or black. Thus, I never saw the dark outline.
Then I fixed the key, imported it into blender, and it worked perfect.


text:
Why is only the half of my object rendered with cycles on blender?
Im kinda new on blender and I would like to make my first render. The problem is the following. Only the half of the object is « well » rendered and there is a lot of noise on the image. Could you please help me to find out how to solve this issue ?

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

since you are a beginner it would help us most if you just provide your blend file. Else we have to ask a lot of questions and it would be very time consuming to ask you and wait until you answer....

Where is there a lot of noise in the image? And which half is rendered well? The lower part of the object looks like "Shaded Flat" (it's an option in the Object mode, context menu) and this creates the hard edges. I have no idea what the top of the object is and if it should look like this.


text:
Override Librarys using Modeler, Rigger, Animator Workflow in seperate blend files
I am trying to use a specific workflow with three .blend files.
The first file  (modeler.blend) contains the modeling, materials, and textures. The model is in a collection.
The second file (rigger.blend) contains the rig with a link and an override of the collection of the model from the "modeler.blend" file. For simplicity, the model is parented (skinned) with  automatic weights. The linked and overridden model now has vertex groups as the result of the skinning. For simplicity, I add one Shape Key. The rig now moves the mesh as expected. The rig and linked (overridden) model are in a hierarchy of collections with the rig at the base and the model higher in the tree.
The third file (animator.blend) links (and overrides) the collection from rigger.blend that contains the rig and model. This is where things breakdown. The model/mesh will not move when the rig is posed.
This case seems in line with multiple creators working together to complete a project. I must be doing something wrong. I expect mesh to move when I pose the rig for animating in the animator file.
I guess the linked/overridden model/mesh cannot be linked into yet another file and overridden again?
If I link and override just the rig from "rigger" file and the model from the "modeler" file into the "animator" file, the model will not have the vertex groups and the Key Shape from the "rigger" file.
If anyone knows what I am doing wrong please let me know.
I am trying to (loosely) follow the workflow from this post https://download.blender.org/institute/nodes-design/pipeline.html
Thanks.


text:
My texture is refusing to apply to my model, even though I properly applied it in the shading menu
Through importing my texture I created with texture paint and attached its color to the base color of the Principled BSDF, it should make the texture show up as it has in the past, but it won't anymore.

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

Is your model UV mapped?  If so, would you post a screenshot of that, and of the image you're trying to use?  Also, it can be a good idea to post your blend file, or a truncated version of it that has the problem, and the image packed. The Blender StackExchange has its own service to share blend files: blend-exchange.com/help

I sent the image of the UV wrap

The screenshot shows the image name as "Phone", not Phone.jpg or Phone.png -- did you paint this in Blender?  If so, have you tried saving the image and opening that file in the Image Texture node?

I did paint it in Blender, and I am unsure whether or not I have opened it in the Image Texture node, how do I?

I figured it out, it was connected to two images, one of which was a blank image.

I figured it out, it was connected to two images, one of which was a blank image.


text:
Why does my transparent footage background have a black screen?
PROBLEM
Hi, I'm using Blender 2.93. I have some video footage I exported with DaVinci Resolve. It has has an alpha channel. When I load it back into DV, it shows it truly has an alpha channel because I can put anything under it, and it acts as you'd expect: like a PNG with transparency in areas I want, but in video form.
Then when I load it into Blender as an image sequence: Add -> Image -> Images As Planes, and make sure the Use alpha and Auto refresh are both on... The video imports with a black background where it should be transparent, but the rest of the video is fine.
WHAT I'VE TREID

Everything I said above.
The images as planes docs
This thread with a similar problem, though with PNG's. Not working either.
Exporting the alpha with premultiply and straight.
Ian Hubert's YouTube video. And oddly, none of my video's icons are transparent as his are... Mine show black where they should be transparent, even though the transparency works in DV.
This youtube video showing his footage having no black screen.
Going to Properties -> Render properties -> Film -> Transparent on.
In the Shading tab, the alpha output of the video is connected to the alpha of the Pirncipled BSDF.

I'm wondering if this is some video codec issue?? The video is a .mov file with a DNxHR 444 12-bit codec, which Blender might be incompatible with?
Any ideas?

What Ian use is an image sequence not a video ... I would say it is a codec issue I haven't seen  anyone to use video with alpha in blender. For any postpro image sequence in OpenEXR format is highly recommended.

The issue was a codec issue. In DV I exported with a GoPro CineForm codec RGB-16 bit, and it worked. I read the available codecs in the blender docs, and that one isn't even listed there, but I bet it's probably using one of the others listed, probably open source or something.
UPDATE 2022: if anyone comes across this problem too in Cycles, make sure you turn up the max bounces in Render Properties -> Light Paths -> Max bounces -> Transparent, or else you will still get a black background. Adjust Total bounces accordingly too, in the same area.


text:
Flashes of light escaping through solid objects in rendered animation
Basically, a weird light speck tears through mesh every 10 or so frames of rendered material. Random, unphased by my bias settings (I was first having these issues with my emissive material + volumetrics, switched out for a simpler setup - everything in the file). Bias, glossy clamp, bloom or no bloom - it still happens. I have no idea why.

Sorry but I really can't figure out what's happening - I've replicated a problem I was having in a project I'm working on, and I'm attaching a .blend file here.
I'm working in 3.0.0, but I just tried this in 2.93 - same deal. To reproduce you'd better render the animation, since it's a random thing and doesn't always happen.
Not tried this in Cycles, since it's of no use to me - I'd die before I render the needed stuff (I ran the numbers and it's 10 days of rendering). Here's hoping CyclesX comes out soon.
UPD:
I have found this question: Blender Eevee lighting Rendering - Flashes of light in animation
While it is probably the same issue as mine, people there focus on bloom, which, as I said, is not the culprit. There is a good suggestion there to re-render the faulty frames, but since I'm planning to do 5-6 min of animation, this could mean a ton of unnecessary work over something that shouldn't happen in the first place IMO.
I am considering rendering in some weird 66 FPS setting so that I may delete extra frames alongside faulty ones, but that's not ideal either, albeit less time-consuming.
Rendering the thing without volumetric lighting on didn't help. It still happens.
https://developer.blender.org/T77202 Apparently, this might be an NVIDIA driver bug. Welp. I will try to update it. Will keep you guys posted! This question is like my personal TODO page now.

I just rendered 10 seconds of that file and there is nothing wrong there for me, have you tried to append your scene to a new one? you could also use the volume scatter directly to the world instead of using a cube (if you want somw volumetric light).  could be the gpu driver but i'm not sure about that

@Emir Everything points to it being a driver issue, unfortunately. I just installed a new version of studio drivers. Didn't help at all. The link in the OP leads to a vast and recent discussion of this. I see no other explanation - it doesn't look like anything blender is doing at all. Volumetrics on/off don't affect it.  Thanks for your time, I really appreciate you trying to render this.

After a lot of testing, I have found a workaround - this happens even in a default project for me if I set Volumetrics>Tile Size to 2px. Setting it back to default 8px solves the problem. It's not intended behavior, but I'm glad I don't have to pick out faulty frames by hand in a 6min 60fps video! Cheers!


text:
Python Modules in the Blender Game Engine?
I was writing a Python script for the Blender Game Engine, and I noticed that any time I imported a module other than the bge, the rest of my script wouldn't run.  I was planning on using the random module to place my enemies in random positions throughout the game.  If you could explain how to get around this problem, that would be great!

The script will stop at an error, is there any error output in the console? Maybe the module name has a typo.

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


text:
Ideas for how to make a cube explode into smaller cubes in game engine
I have a python script that is supposed to run whenever one of the bad guys (cubes) in my game gets shot.  I'm using a cubelike style of art work, and I want the bad cubes to explode into smaller cubes when it gets shot.  I've tried using a python script to create multiple instances of a smaller cube in the same spot where the original cube was, so that the physics engine will shoot them apart as soon as the next physics step takes place.  Unfortunately, this method of doing things is not working.  It either shoots the cube off in a direction making a trail of cubes behind it, or it deletes itself and makes one small cube, (depending on whether I tell the bad cube to delete itself before or after it runs the script that creates the small cubes).  I don't really care how it's done, but if I could get some suggestions on how to achieve this effect, that would be great!

I did this in a way that is not computationally expensive for physics with the "Bake to keyframe" option.
I make my basic set up in Blender Render. The eight cubes that will compose the fractured cube are all set to rigid body "active" objects. A plane is added below them, and set to rigid body "passive".
Next, I add the object that will force the cubes apart, it can be anything, a monkey, a cube, ect... ect... Place it at the junction between the cubes and make it passive like the ground plane.
Now, play the animation through to make sure you like it. Scaling the "exploder" object has great effect on how the cubes break apart.
Select all the cubes and SpacebarSearch + "bake to keyframes". Click it, then click "Okay" on the popup window.
Now all you need to do is make each cube play the animation(s) always in game, parent them all to another no-collision object, move to another layer, and have the original cube add the parent when it dies.
If you create more than one such animation and use a Random sensor you can have great looking, variable, computationally inexpensive exploding cubes for your game.

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


text:
Blender Game Engine, Falling Through Ground
I'm making a first person view game, and I have a big low-poly hilly terrain.  Occasionally while testing, my character falls through the ground.  What is the best way to fix this?  I've heard that increasing the physics steps can help but I don't believe it has.

What fixed my problem was applying a subsurf modifier to my ground.  I tried the options given to me in the first answer, but none of them seemed to work.

Set the physics type on your ground to triangle mesh. That should fix it, But if it doesn't not, you can also turn up the margin or extrude the ground down in edit mode.

It is possible that your ground is not calculating the collisions correctly, and changing the collision bounds on the ground should fix it.
If your problem still happens, you can also try changing the collision bounds on your character. If you are still unsure what the problem is, you can activate "Physics Visualization" to show exactly what is or is not working.

Notice the difference between these pictures. The first is using triangle mesh collisions on the ground. The second one is using box collision type.

Although there is normally no problem with box Or triangle mesh, sometimes there is still an error and the collision bounds will not detect properly. In this case it is normally a good idea to try a different type, or increase the margin.

The issue here seems to be caused because the BGE renders quads differently from the way the blender Viewport display renders them, using different vertices to split the quads into tris. This means that although the physics collision mesh is generated before runtime using the Viewport renderer's mesh, the realtime BGE generated mesh has the quads split into tris differently, leading to collision which does not match the mesh.

This can be easily fixed using the Triangulate modifier (to stop the BGE from generating its own tris at runtime) or like Anson Savage discovered using the subdivision surface modifier (which also triangulates the mesh and stops the BGE from generating its own tris)

for very fast moving objects, I have found 'floating' a object on a ray, and then using it to draw a object on the mesh is handy.
I also distort the ray end point using the linear velocity,
and use this to align to the normals AHEAD of the car, as you hit them
this way you can go as fast as you want ,

He said this was an FPS not a racing game...

Well, it would work with sonic as well. :D

the problem could be that:
if a surface is very large, its geometric center could be out of camera.
you can note that if the origin of an object is out of camera it simply disappear.
a similar process could be present with physics, if our character lands on a surface, and this surface got a face with origin out of camera view, simply the physic calculate is not processed.
Adding more faces just help the camera processing to compute two or more sure face / object collision


text:
Materials and Textures not Showing Up in GLSL Shading Mode
I understand that in the Blender Game Engine, the GLSL shading mode is generally suggested, because it renders real-time shadows, and it renders per pixel instead of per vertex like in the Multitexture shading mode.  I noticed that when I switch to the GLSL shading mode, materials, and textures don't show up in the internal player, and it appears as if all materials have been set to shadeless.  If I use the Standalone Player button, it displays all the materials and textures properly.  I'm curious if there is a setting that I should have checked, or if it is normal for this to happen.  Also, once I package my game, will it appear as if it's running in the Standalone Player, or the internal player?  Thanks so much for your help.

Setting the Viewport Shading to 'Textured' should help with this.  'Material' also works.
It sounds like you may be using 'Solid' mode.

I find it interesting that the Embedded Player display will be different depending on the viewport shading.  I guess it makes it easier to debug in different situations.  Thanks so much for you help!


text:
What's the difference between turning up the resolution vs. using smoke high resolution in the Blender smoke simulator?
In a smoke simulation, what is the difference between using the Smoke High Resolution checkbox, as opposed to simply increasing the resolution?  I understand that for some mysterious reason, the limit of the resolution is 512, but if I'm doing a simulation that won't need that many divisions, is there really a difference?  I've noticed that if I bake a fire simulation without Smoke High Resolution enabled, it will usually only use one CPU at 100% at a time, whereas if I do enable it, all my CPUs are at 100% (and it takes a whole lot longer to bake).

@cegaton Okay, I think I understand that, but what does that link have to do with it?

@cegaton Oh, okay

@cegaton So, I get the purpose of baking, but I guess this question is about the purpose of high resolution smoke.

There's a bit info in the manual too.

@MrZak Oh, very cool! That looks like a great resource.

Turning up the base resolution increases the actual number of voxels used to calculate the sim. The high-res divisions  are a separate, secondary effect. They are applied after the sim itself calculates for that frame. High-res subdivides the voxel and adds additional noise based on the behavior of the low-resolution base plume. It's essentially a post-process displacement effect, just a more intelligent one than, say, globally mapped noise.
The advantage to this you can take a blocky, low-res sim that is fast to calculate, and smooth out or fluff it up as though it was higher-resolution. The strength value controls the shape, lower values smooth the plume, higher values fluff it up. This way, you only have to raise your base resolution enough to get the basic movement right, you don't have to keep cranking it to get the detail and smoothness you want. Since you apply that as a post-process when using the high-res function, which means faster bakes. And it's much easier to iterate the design of the base sim, because you don't need to sim at full resolution all the time.
It also helps out with an annoying behavior a lot of gas simulators have where increasing the base resolution can radically alter the behavior the plume. So you get a simulation at a lower, easily testable res, then you crank up base-res for the final bake....and 2 hours later, the result behaves nothing at all like your test bakes. High-res doesn't have this issue, because it doesn't affect the underlying motion, just smooths and adds detail.
If you want more information, you can read the paper that all these fluid-upres techniques are based on: https://www.cs.cornell.edu/~tedkim/wturb/wavelet_turbulence.pdf


text:
How to make custom bump maps
I'm working on a bathroom interior, and I figured that one of the main things I need is to have a good drywall bump map. I've looked around online to see if there are any good drywall type bumpmaps, but I haven't found anything good/free to use.  Is there anyway that I can create a convincing bump map that looks something like this image (in Cycles):

(Ignore the towel holder). It's okay if it's tile-able, but it needs to be big enough so that it doesn't look repeated.  If a similar effect can be achieved through procedural textures, I'm all for it.

I think GIMP has something like that

@NoviceInDisguise Okay, I have GIMP.

Get a good image texture, and go to Filters > Map > Bump Map. Make Seamless is in the same place as well if you want that

@NoviceInDisguise Okay.  By "Get a good image texture", do you mean take a picture of my wall?

Sure! An image of the type of wall you want to replicate

I'm going to assume here that you have a high resolution image of the wall you want to replicate. I'm going to be using this texture from cgtextures.com.
The best way that I know of for this, is to import it into gimp, crop it to a 1:1 aspect ratio:

You then use the make seamless filter to get this result:

Then import it into Blender and use the bump node to generate a normal map.

Please note that this is how I like to setup a material, but the only important parts are the image texture and the bump nodes.

Okay, my problem is finding a high resolution image.  Thanks for the help!  I'm thinking I might just go semi realistic and use a procedural texture...

I would recommend doing it procedurally if you can, not tiling then

Okay, just updated with images.

@NoviceInDisguise Okay.  Can you think of any good procedural setups?  Thanks!

A procedural texture is definitely a good idea if you can get it to work. If you haven't already, check out Bartek Scrupa's Blender Conference video on working with texture coordinates. https://www.youtube.com/watch?v=kAUmLcXhUj0


text:
How to use shape key value in scripted expression driver?
I have two objects, mesh A and mesh B, where mesh B has a shape key named shape-change with a value range of 0 to 1.
I added a driver to the rotation Z property of mesh A which should make it rotate when the value of the shape key of mesh B changes. How do I implement the driver script?

A much more simple solution would be:

Select "object b", over shape key Value, right mouse click and Copy as New Driver

Select "object a", Rotation Z value and Paste Driver

Now change driver settings to Scripted Expression and change expression to value*2*pi

result:

That's the way! Thanks!

awesome! that's good to know that there is paste driver. but for some reason it does not paste it correctly in my blender 3.1. i get path "active_shape_key_index" but i see in your path you get "keyblock... something"

@FransonWu can you confirm what value you get in Path after you do Paste Driver? I only get active_shape_key_index so it doesn't work for me.

I get this " key_blocks["Key 1"].value ", works.  Blender version 3.0.1.

@FransonWu thank you for checking. That's really odd. I also checked on 2.93, 3.0, 3.1 and it also doesn't work. Maybe because i'm on Windows 7.

Follow my setup: make sure object A is named mesh-obj-a and its mesh is named mesh-a and object B is named mesh-obj-b and its mesh is named mesh-b. Also make sure that object B has a shape key under Shape Keys named shape-change
Now, there's two ways to do this. The first method or easy way is to execute this python script in the Text Editor and you're done.
import bpy

obj_a = bpy.data.objects['mesh-obj-a']
obj_b = bpy.data.objects['mesh-obj-b']

drivers = obj_a.animation_data.drivers
for d in drivers:
    obj_a.driver_remove(d.data_path, -1)

fcurve = obj_a.driver_add("rotation_euler", 2)
d = fcurve.driver

v = d.variables.new()
v.name = "keys"

target = v.targets[0]
target.id_type = 'MESH'
target.id = obj_b.data
target.data_path = "shape_keys"

d.expression = "radians(keys.key_blocks['shape-change'].value*360)"

The second method is the manual way by doing the following:
Select object A and right click its Rotation Z property in the Object Properties and select Add Driver

Click the X icon to delete the default input variable and click Add Input Variable. Change the variable name from var to keys. Then change the ID-Block type from Object to Mesh and select the mesh mesh-b

In the Expression field input the following script which converts the shape key value 0-1 to 0-360 as radians (0.0174533 is the factor for degrees to radians conversion):
keys.key_blocks['shape-change'].value*360*0.0174533

or better:
radians(keys.key_blocks['shape-change'].value*360)

In the Path field, input the value shape_keys

Now when you change the value of the shape key of object B from 0 to 1, it will drive or rotate object A on the z-axis from 0 to 360 degrees.

Cool! Many thanks!

you're welcome! glad it worked out :)


text:
Red and green lines
I opened a file that I was working on and there are tones of red lines and green ones I opened up a few different files and that didn't have it does anyone know a fix?

Can you share your file to see if it is something related to that file? Maybe it is your GPU fault, there are more possibilities

Your problem is this:

You probably didn't saw that city because it has big dimensions and you wrote in 999999999999 or something like that, maybe 100000000000..., this can cause this issue, change it to something like 10000 and your issue is gone:

By the way, those lines are your Axis X and Y, if you enable Z, you can also see Z with them, it is just graphic glitch because of that way too high number

Thanks i will see tomorrow if it fixes it.


text:
Creating a Shortcut to Toggle Wireframe and Solid Display for a Singular Mesh with a Single Key Press
I want to hotkey the display as wireframe for an individual mesh with a keystroke, and then on the next press, it will go back to solid. I've tried to create a shortcut, but all I get is the "Display As" selection menu at the bottom. I know so little and have tried everything I could think of, from looking at the code editor and switching the menus, to copying and pasting the information from there, but to no avail.

more or less id love a toggle between those two specific modes

It looks like you have to script a custom operator for this. It's just one line that changes the Viewport Display > Display As setting: bpy.context.object.display_type = 'WIRE'
To execute this with a shortcut you need to create a custom operator (class ToggleDisplayAsOperator(...):) and assign a shortcut to it. Since you don't want to run the script for the operator every time you start Blender, you have to create a little add-on. (It's the bl_info = { ... } part.). The add-on can also register the shortcut for you. (It's done at the end of the script.)
Once the operator is registered (ID object.toggle_display_as_operator, display name "Toggle Display As Operator") you can find it using the search (main menu Edit > Operator Search ... and Menu Search ... F3). In the User Preferences you can change the assigned shortcut (Shift+V) anytime.
Here is the complete little add-on. It's based on the related question
How do I give operators of my addon the "Assign Shortcut" button?
import bpy

bl_info = {
    "name": "Your Addon Name",
    "author": "Author Name",
    "version": (0, 1),
    "blender" : (2, 80, 0),
    "location": "",
    "warning": "",
    "wiki_url": "",
    "tracker_url": "",
    "category": ""
}

class ToggleDisplayAsOperator(bpy.types.Operator):
    """Tooltip"""
    bl_idname = "object.toggle_display_as_operator"
    bl_label = "Toggle Display As Operator"

    def execute(self, context):
        # toggle the 'Displays As' setting between textured and wire
        if bpy.context.object.display_type == 'TEXTURED':
            bpy.context.object.display_type = 'WIRE'
        elif bpy.context.object.display_type == 'WIRE':
            bpy.context.object.display_type = 'TEXTURED'
        return {'FINISHED'}

addon_keymaps = []

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

    # Add the hotkey
    wm = bpy.context.window_manager
    kc = wm.keyconfigs.addon
    if kc:
        km = wm.keyconfigs.addon.keymaps.new(name='3D View', space_type='VIEW_3D')
        # shortcut SHIFT+V
        kmi = km.keymap_items.new(ToggleDisplayAsOperator.bl_idname, type='V', value='PRESS', shift=True)
        addon_keymaps.append((km, kmi))

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

    # Remove the hotkey
    for km, kmi in addon_keymaps:
        km.keymap_items.remove(kmi)
    addon_keymaps.clear()

if __name__ == "__main__":
    register()

(copy the script into a text file, change the file extension to *.py, and you can install it.)

I read through your instruction at least 10 times and they make complete sense i was able to install successfully but when i execute the command nothing updates in my script editor i even changed the keymapping to ctrl + \ so theres no conflicts note when i f3 and look for Toggle Display As Operator nothing appears in the list. not sure what i am missing

Sorry, here was a mistake. The script tried to toggle between the display modes 'solid' and 'wire' but the default mode is 'textured'. So it does nothing. I've changed it so that it now toggles between 'textured' and 'wire'. Although, you should be able to see the operator in the search not matter of this change.

It definitely Works!! in all blenders


text:
Active object is not a selected mesh. temp_override is invalid?
blender-3.4.1
import bpy

objs = [obj.name for obj in bpy.data.objects if obj.visible_get()]

print(objs)

active_object = bpy.data.objects["Cube"]
selected_objects = [
    active_object,
    bpy.data.objects["Cube.001"]
    ]
with bpy.context.temp_override(active_object=active_object, selected_objects=selected_objects):
    bpy.ops.object.join()

output:
['Cube', 'Cube.001']
Warning: Active object is not a selected mesh

What did i do wrong?

it should be selected_editable_objects, not selected_objects see https://blender.stackexchange.com/questions/248274/a-comprehensive-list-of-operator-overrides

Simply assigning the selected objects to variable selected_objects doesn't mean you can join them. They have to be actually selected for bpy.ops.object.join() to work. Here's the script that will work:
import bpy

objs = [obj.name for obj in bpy.data.objects if obj.visible_get()]

print(objs)

active_object = bpy.data.objects["Cube"]
selected_objects = [
    active_object,
    bpy.data.objects["Cube.001"]
]

with bpy.context.temp_override(active_object=active_object, selected_objects=selected_objects):
    bpy.ops.object.select_all(action='DESELECT')
    for obj in selected_objects:
        obj.select_set(True)
    bpy.context.view_layer.objects.active = active_object
    bpy.ops.object.join()

But why is a temp_override function needed? It also works without :  with bpy.context.temp_override(active_object=active_object, selected_objects=selected_objects):

ah forgot to test it without. well even better if it works without. please edit and remove hehe

@XY found out from Gorgious its faster to use with but it should be selected_editable_objects https://blender.stackexchange.com/a/275070/142292


text:
How do I rotate around local axis using python?
How do I rotate an object around the local axis using python?
Maybe something like this answer.

I found this question
and from it I got this:
import bpy
import numpy
from mathutils import Euler

def set_loc_rotation(obj, value):
    rot = Euler(value, 'ZYX')
    obj.rotation_euler = (obj.rotation_euler.to_matrix() @ rot.to_matrix()).to_euler(obj.rotation_mode)

obj=bpy.data.objects['Cube'];

set_loc_rotation(obj, numpy.radians([30,0,0])) #rotates by 30 deg on local x axis
set_loc_rotation(obj, numpy.radians([0,0,30])) #rotates by 30 deg on local z axis

How about doing this in a keyframing?

why do you use rotation mode 'ZYX'?

is that what you are looking for?
bpy.data.objects['Cube'].rotation_euler[0] = 1.5 # x


text:
Why do my texture bakes turn pink?
I'm trying to link baked texture files to my character. I have been using the SimpleBake add-on. My character turns pink as if Blender cannot find my texture files. As far as I can see, my texture files look just fine and well. I browse to them from the image texture node as I should. I even tried baking just one UDIM file hoping that should help. Nope. I've also tried File -> External Data -> Find missing files. Doesn't help. What am I doing wrong?
See images attached. Hopefully they can explain my problem.

Have you tried File > External Data > Report missing files? Maybe there is an HDRI missing?

The tutorial I am following does not use HDRI. World colour is set to white.

Ah ok. And what reports Blender when you use File > External Data > ...*? It should tell you if files are missing and where to find them.

Yes, since I have been trying this over and over again I have a number of files from old versions reported missing. I have now retrieved them from my trashcan. I no longer get reports about missing files. Still, my character is pink.

Have you checked if the images are present in the image editor (texture paint workspace)? The thumbnails are cached and the image can still be missing. But you should see images if you select them from the drop-down menu. In the side panel (key N) you can see the file path. Maybe it's because of the UDIMs? Is the Tiled option checked in the image settings? The files need a number in their filename, something like "skin normal.1001.png".

I'm not sure if I follow you, but as far as I can see things are correct there. It is basically the same drop down menu as in the layout workspace. However it says "Can't load image". in the texture paint workspace.

Just for trouble shooting, I tried a random texture from Polyhaven (a fabric texture). It works fine. Thus, the problem is obviously about my UDIMS and or my bakes. I still don't understand why since there is nothing wrong wit the .png from my bakes (as far as I can see).

The problem is definitely related to the UDIM-tiles. When I changes the Image texture nodes from UDIM to Single, it works. Not really a solution though, since there is no point in using UDIMs with texture nodes set to single.

Yes, looks like it's the UDIMs that cause the trouble. I tried to clarify my previous comment in this comment but it's too long and there is already a suggestion to use the chat instead of the comment section. Too bad that the chat requires 50 reputations and you're 19 reps too short. It doesn't help. So I finally posted the explanation as an answer and hope it helps.

It looks like there is something wrong with UDIMs as already mentioned in the comments. It's either a wrong filename, a wrong folder, wrong tile numbers, or wrong settings. I still wonder why you no longer get messages about missing files when you select the menu entry File > External Data > Report Missing Files of the main menu. To track down the error, here are two examples, one working and one with incorrect file names.
Here is a working UDIM example and a checklist.

in the Image Editor (1), select the image (2) and check if the images are loaded and shown (3)
in the side panel (N) (4) on the Image tab you will find the filename of the image. Source should be UDIM Tiles and in the filename, there should be a <UDIM> part. The UIDM tile numbers are shown below. The default values start at 1001.
in the file browser (5) check if the files are in the correct folder and have the correct names. Here the <UDIM> part in the filename must be replaced by the tile numbers, e.g. "primitives diffuse.1001.png", "primitives diffuse.1002.png", and so on.
in the Shader Editor, check if the Image Texture node (6) has set the source option to UDIM Tiles for the given UDIM image texture.

Here is an example of broken filenames.
The tile numbers in filenames are incorrect (1). In consequence,

(2) you still see the cached icon of the image. But there is an error message "Can't Load Image" under the filename and the images are not loaded and not shown.
(3) The models are pink and
(4) there should be a warning in the Info view after you run the File > External Data > Report Missing Files command. The command ... > Find Missing Files should also report the missing files if they cannot be found in the selected folder.


text:
Is there a way to disable multiple objects selected in the outliner?
So I've been looking for a way to make blender behave just like any other software ever - one LMB with no modifiers should select 1 item and deselect everything else, right? Well, instead, at least in my case, it does this:

As if I'm holding CTRL.
I checked both my 2.93 and 3.0.0 versions. But, of course, I imported my preferences from 2.93 so it was inherited if it's a setting I unwittingly changed.

Yeah, that's strange. I can't reproduce it if I try

@ChristopherBennett I've just installed a fresh 2.93.4 version and it doesn't have this. My 3.0.0 does though. I think it's a bug or something. It even doesn't obey selection sync.

I encountered this once, but restarting Blender helped. Might be a bug or some obscure shortcut :)

@JachymMichal thanks, yeah. Installing the latest alpha version fixed this. Idk if this was a bug or a weird hotkey toggle. It's gone now and I couldn't be happier!


text:
Fixing a shader that behaves differently (3.2a =>3.2b)
Basically, I've constructed a shader that I'm very happy with using blender-3.2.0-alpha+master.295d5c6ef5b9-windows.amd64-release.
When I tried to import it into my project that's coming together (and I decided to use a more stable version as soon as it was available - blender-3.2.0-beta+v32.84e55e3dc251-windows.amd64-release), I've noticed a distinct difference in behavior, which I attribute to the Mix Shader node's Fac input somehow clamping/remapping its input.
Granted, its behavior in 3.2a and earlier was a lucky buggy accident, but it looks so awesome in my opinion. And now I need to either recreate it in 3.2b or port everything (including downgrading the addons I use) back to 3.2a (and face who knows how many other complications).
Trouble is, I have no idea what's happening to the shader under the hood.
Here are both of them back to back. Same file, on the left - the magic of 3.2a; on the right - the bleak imitation of 3.2b!

And here's the full shader tree, made by following this Glass 2.0 guide by CG Vertex

Tried stacking "add shader" on top of each other, but I haven't figured it out yet, and I'm not very sure how can I utilize MixRGB.
I have a hunch that multiplication node is somehow pushing the RGB values past 1, which makes the surface emissive. But I can't figure out how to replicate the look and not lose other components of it - transmissiveness and caustics (not to mention that I'd like to learn from this interesting experience).
Currently trying to find something relevant in the changelogs, but nothing about "factor clamping mix shader" so far..
Also, blender-3.1.0-stable+v31.c77597cd0e15-windows.amd64-release is just as wonderful!

UPD: blender-3.2.0-candidate+v32.34f94a02f370-windows.amd64-release does not partake in the awesome colorfulness either (it's a current release candidate at the time of writing this).
UPD2: The future looks bleak as even blender-3.3.0-alpha+master.8589f60546b3-windows.amd64-release does not respect the multiplication node.
UPD3: The 3.1st/3.2a behavior is considered buggy, and it was "fixed" - a hardcoded factor clamp on the mix node, most likely.
You can see my post on devs' forum about this issue and the response I got for more info.
I'm still looking for workaround though.
UPD4: blender-3.2.0-candidate+v32.34f94a02f370-windows.amd64-release

For some reason Glass BDSF still works with Shader to RGB (even though the docs say that anything with refraction wouldn't work, even something as simple as a Transparent BSDF doesn't!)
So I converted its result to an RGB, boosted and played around with it. Still needs some tweaking, will probably add random white flares and stuff.
The resulting node tree:


text:
Meshes are squished in Unity
Not sure if this is a unity or a blender issue.
This is how my mesh looks in blender:

This is how it looks in unity:

I exported as an .fbx with default settings, but wihout animations, armature and I applied transforms. My first thoughts was some rigibody that was on this mesh (I downloaded this) but it doesn't seem like it. Some other chess pieces that were on this same file import normally. Thank you.

I don't know anything about Unity but maybe you need to apply the scale in Blender? (Ctrl A)

I would say the same, but OP already mentioned applied transforms and also object icon in unity is fine ... Hmm

Maybe it's a unity issue after all. I had problem in the past with importing meshes and it was always blender fault (actually me using blender wrongly fault haha), so that's I decided to come here first. Thank you for the comments, though!

Putting the origin on the bottom of the object and aligning it to world origin before exporting solved the issue.


text:
Geometry Nodes Random Bezier Instance on Points
I'm just trying to instantiate some varying Bezier segments on the points of a mesh. I've figured out how to get different values for the loft paths I am instantiating.
I'm having problems rotating the loft profile in the direction I want (away from the center).
I generate the loft paths using these nodes. Basically, I instantiate 2 point-Bezier on a Poisson disk and then offset them to randomize them.

Here is a picture showing the loft paths:

This is my simple curve to mesh:

I'm using this loft profile:

And I want the loft profile to point in the same direction as my loft paths, but all I seem to be able to do is make them point in the same direction:

LAST UPDATE:
Here is the complete node tree in a screenshot. It allows for a really wide variation of plant like single stalked clumps.

Have you considered using Mesh to Curve before realizing instances, or even before instancing on points? Your first image is too small to be readable, but that way curve rotations should still be preserved.

This is the only way to randomize the bezier segments I'm using as a loft path per point I've found. I'm about to say screw it and install the 3.5 alpha just so I can get the simulation nodes (loops).
If you know how to get random paths for individual splines for me to instance on points I'm all ears.
Trust me I've tried all night.

It would be easier for people who wanna help, if you shared your file on blend-exchange.com

I uploaded it and updated my question.

Yeah I downloaded 3.5 alpha simulation nodes branch and this is SO MUCH SIMPLER. I wouldn't mind someone taking a stab at doing this on 3.4 but I think I'm going to be able to do this within the hour.

Time for sleep, but I managed to hack out a proof of concept working blend in 3.5a.
https://blend-exchange.com/b/ZyKe82bD/

To align the individual curves in the right direction, you would have to work with the Curve Tilt of the curves in this case.
You can solve this as follows:

Capture the position of the instantiated curves with Capture Attribute in the attribute domain Instance. In your case this is relative to a certain other object.
Then simply calculate the angle between these vectors and any other vector. In this case I use $(1,0,0)$. Since these two vectors are in 2D space, this can be done using $arctan2$.
The generated angle can then be used directly in the node Set Curve Tilt, which will rotate the curve profile to the center accordingly and use it with Curve to Mesh.

(Blender 3.4+)

I tried to use capture attribute but I couldn't figure out how it worked. I knew there was a solution using that method. Good s**t man and thanks for the edits.


text:
Mixamo Control rig problems
I'm trying to convert a simple rig into a control rig with the Mixamo Control Rig addon but there is a lot I don't understand. Can someone help me with the following:

Why knee "mollet d-tweak" is tweaking the wrong side when I move "pied d-ik"

Why torse is still having scale tranformation when I move "neck" even whith a limit location constraint

How to link the shoulder "DEF-epaule" to rest of body when I move "neck"

How to limit the location of the shoulder "DEF-epaule" when I rotate the hips bone

Download .blend

Hi a33, i know you are pretty new here, but it would be very nice, if you could check the "checkmark" left of an answer if the answer to your question helped you. Thx. You can see your questions by clicking on your name, then questions: all "full" green questions were checked from you as "right" answers, everything else: unfortunately not.  [1]: https://i.sstatic.net/wVnfw.png thank you

and pls just focus on one question here, because the title is pretty short and can only address one topic. You can open as many questions as you want, but to make sure that all other users can benefit as well from your questions you should open a new question for every single problem you have, thank you

sorry i forgot about them i just checked the one missing

thanks for the edit i will be more careful on my other post


text:
Script for adding mesh as depth target to empties doesn't work
I'm following this tutorial for face tracking and used a few lines of code to add the face mesh as a depth target for all the trackers which are empties. Actually, I just wrote the lines from the tutorial but somehow it does not work in my file.
import bpy

for tracker in bpy.data.objects:
    if tracker.type == 'EMPTY':
        bpy.context.view_layer.objects.active = tracker
        bpy.context.object.constraints["Follow Track"].depth_object = bpy.data.objects["FBHead"]

Your clue is in the error message:
KeyError: 'bpy_prop_collection[key]: key "Follow Track" not found'

Your code is accessing bpy.context.object.constraints["Follow Track"] but it says your file cannot find any Follow Track Constraint with the name "Follow Track". So one possibility is that it probably is named differently so you need to check the tracker's Object Constraint Properties and adjust the name either in your script or in the field in red box marked as shown:

The other possible scenario is that there are other empties in your scene that are not trackers. So you need to further filter these out. They most likely do not have the FOLLOW_TRACK constraint type so you should use this code:
import bpy

for tracker in bpy.data.objects:
    if tracker.type != 'EMPTY':
        continue
    for c in tracker.constraints:
        if c.type != 'FOLLOW_TRACK':
            continue
        bpy.context.view_layer.objects.active = tracker
        bpy.context.object.constraints["Follow Track"].depth_object = bpy.data.objects["FBHead"]

Then make sure you have the object with name FBHead because you are using that in your script bpy.data.objects["FBHead"]

For me solution 2 solved the problem. I had another empty in the scene. Deleting the empty solved it and your code worked as well, thank you so much!

no prob! glad it resolved your issue :)


text:
faces shine each way
I don't know why this is happening. I'm following online courses for 3ds Max, but all the faces look wonky. So I exported the piece to Blender, but when I clicked Shade Flat, all the faces shine each way and all is messed up.

Anyway, the piece doesn't have any doubles I guess, and here is the blender file
Please, have a look and tell me what's the problem.

You can untick Auto Smooth and this will get rid of the strange shading in flat shading mode.
However, if for some reason you want to shade it smooth afterwards (perhaps because you added beveled edges or some round parts to it) and maybe also need Auto Smooth, you'll run into problems again.
The real reason for this odd shading is that there are custom split normals on the object. To remove them, go a little below the Normals > Auto Smooth option:
Under Object Data Properties > Geometry Data, click on Clear Custom Split Normals Data and the shading is correct again. Those custom split normals are sometimes created by modifiers etc.
Before:

After:

@HarryMcKenzie For the purpose, read the section Custom Split Normals in the Blender manual's chapter about Editing > Normals. Usually I would have marked it as duplicate since this topic already came up here a few times. No matter the purpose, the reason these split normals are sometimes on meshes although you don't want them is either you created them by accident or you have an FBX model with split normals imported from somewhere, CAD software tends to create them for example.

@HarryMcKenzie For the text inside images: I think Duarte mostly doesn't like it when text in images holds information and you cannot find it if you were viewing this text-only (or use text-to-speech if you are visually impaired), but I guess my answer holds all relevant information in the text and the images are just for visualization.

Untick Auto Smooth checkbox located under Object Data Properties > Normals > Auto Smooth

This only treats the symptoms, not the cause.

@GordonBrinkmann ah thanks for your feedback and new answer post. we learn something everyday :D


text:
Why Won't My Path Show Direction (With "Show Normal" on)?
I'm at a loss here. I have enabled the Normals under Overlays. Can anyone think of a reason my path direction won't make an appearance?
PROJECT FILE

that's odd. can you share your file? https://blend-exchange.com

is your path very large so you can't see the normals?

@HarryMcKenzie I have added the project file. Please let me know your thoughts, thanks!

@Blunder no the path is the default size, not scaled at all

2D curves have no Normals. Change the curve to 3D under the curves Object Data Properties

Ha, I hoped it would be this simple!  Thanks a lot for that ;)


text:
How to find out the module name of an installed plugin
How can I find out the module name of an installed plugin in Blender?

You can find the module name of a plugin under menu Edit > Preferences > Add-ons. Locate the plugin in the list of installed add-ons and check the path that appears under File. In this example I check the module name for the ScreenCast addon. Notice that the name of the module appears after the \addons\ part of the File path
C:\Users\<user>\AppData\Roaming\Blender Foundation\Blender\3.4\scripts\addons\screencast_keys\__init__.py

So now I know that the module name for the ScreenCast addon is screencast_keys.

Alternatively, you can also check the folder of the plugin in the Blender installation directory, the module name is the same as the folder name .../Blender/3.4/scripts/addons/<module_name>/

Hello, thank you very much for your answer. But the module name seems to be "Turbo Render" for the plugin I´m searching. So it has a space in between. If i try to activate the plugin in the command line for background rendering, it says that this module name can´t be found.

I wanted to make a render with the command line where only one plugin should be activated and from the documentation i wrote this:  blender --factory-startup --addons Turbo Tools -b -y "C:\Users\timma\Videos\Test\Interior\1.blend" -s 1 -e 1 -a But the rror message i get is that it says that it can´t find the module name.

You can use module addon_utils to inspect an addon, but it´s not in the API. Can be found in the Blender installation path Blender > [Version] > scripts > modules > addon.utils.py
First you need to get the addon module. Module name with addon_module.__name__
import bpy
import addon_utils  # not in API ; see addon_utils.py in blender_defaults/scripts/modules

addon_name = "Turnaround Camera" # addon UI name

addon_module = [m for m in addon_utils.modules() if m.bl_info.get('name') == addon_name][0] # get module

###
print("\n*** %s ***" % addon_name)

# addon bl_info
print("--- bl_info")
print(addon_module.bl_info.get('name'))                                     # UI name
print(addon_module.bl_info.get('category', None))
print(addon_module.bl_info.get('version',(-1,-1,-1)))                       # -1 if not set
print(addon_module.bl_info.get('location', None))
print(addon_module.bl_info.get('author', None))                             # empty if none
print(addon_module.bl_info.get('description', None))                        # empty if none
print(addon_module.bl_info.get('doc_url'))                                  # empty if none
print(addon_module.bl_info.get('warning'))                                  # empty if none

# addon module info
print("--- module info")
print(addon_module.__name__)                                                # module name !!!
print(addon_module.__file__)                                                # install filepath
print(addon_module.__time__)                                                # install time
from datetime import datetime
print(datetime.fromtimestamp(addon_module.__time__))                        # converted date + time

# addon_utils.check(addon_module.__name__)  tuple (loaded,enabled)
print("--- addon check")
print("is_loaded:", addon_utils.check(addon_module.__name__)[0])            # loaded
print("is_enabled:", addon_utils.check(addon_module.__name__)[1])           # enabled

Hello thank you very much but i didn´t quite understand what you mean. Do i have to place the script somewhere?

I'm a bit wondering why the question is marked with python and scripting if you're not so familiar with it. You get the module name following Harry McKenzie answer or might read these parts of the manual: Texteditor and Python Scripting

Yes that were the only things i could choose to this topic, but your answer is also very good. I accept both.


text:
Moving multiple bones with blender python
I'm trying to write a Blender Python script that moves three bones in an armature based on columns in a CSV file. I’ve gotten it to consistently move one bone, but when I try to do more than that one, the script will only move one of the bones. It does seem to create keyframes for the rest.
The variables are as follows:
Cnt = a count variable
Fcnt = Frame count, this is the current frame, and has other uses earlier in the code
Bone_1, Bone_2, and Bone_3 : the bones in the armature
col1, col2, and col3: columns in the CSV file that correspond to the locations for Bone_1, Bone_2, and Bone_3.
Additional context:
At this point, the armature is already selected and blender enters pose mode.
Code begins:
for row in col1:
     bpy.context.scene.frame_current = Fcnt

     C1 = col1[CnT]
     C2 = col2[CnT]
     C3 = col3[CnT]

     # Bone_1:

     # Deselect All:
     bpy.ops.pose.select_all(action='DESELECT')

     # Select bone to move:
     Bone_1.select= True

     # Add Keyframe:
     bpy.ops.anim.keyframe_insert_by_name(type="Location")

     # Move Bone:
     bpy.context.active_pose_bone.location[1] = C1

     # Add Keyframe:
     bpy.ops.anim.keyframe_insert_by_name(type="Location")

     # Bone_2

     # Deselect All:
     bpy.ops.pose.select_all(action='DESELECT')

     # Select bone to move:
     Bone_2.select= True

     # Add Keyframe:
     bpy.ops.anim.keyframe_insert_by_name(type="Location")

     # Move Bone:
     bpy.context.active_pose_bone.location[1] = C2

     # Add Keyframe:
     bpy.ops.anim.keyframe_insert_by_name(type="Location")

     # Bone_3:

     # Deselect All:
     bpy.ops.pose.select_all(action='DESELECT')

     # Select bone to move:
     Bone_3.select= True

     # Add Keyframe:
     bpy.ops.anim.keyframe_insert_by_name(type="Location")

     # Move Bone:
     bpy.context.active_pose_bone.location[1] = C3

     # Add Keyframe:
     bpy.ops.anim.keyframe_insert_by_name(type="Location")

     bpy.ops.pose.select_all(action='DESELECT')

     CnT += 1
     Fcnt += 2

The bone you want to move is the active bone, not the selected bone.
# Move Bone:
bpy.context.active_pose_bone.location[1] = Cn

Therefore, you need to use
# Set active bone to move:
bpy.context.object.data.bones.active = Bone_n

instead of
# Select bone to move:
Bone_n.select= True

Then, it is better to delete the first Add Keyframe.
# Add Keyframe:
bpy.ops.anim.keyframe_insert_by_name(type="Location")

     # Bone_1:

     # Deselect All:
     bpy.ops.pose.select_all(action='DESELECT')

     # Set active bone to move:
     bpy.context.object.data.bones.active = Bone_1

     # Move Bone:
     bpy.context.active_pose_bone.location[1] = C1

     # Add Keyframe:
     bpy.ops.anim.keyframe_insert_by_name(type="Location")

Thank you! I got it working with a different solution but you definitely put me on the right track. I'd like to understand your solution though as I'm still new at this and I couldn't get it to work exactly how you suggested.
In my solution, I sidestepped selecting the bones and changed their locations like this:
Bone_1.location[1] = C1
Bone_2.location[1] = C2
Bone_3.location[1] = C3
Then selected all and added the keyframe.
In the bpy.context.object.data.bones.active = Bone_1, do I need to add the name of the Armature in brackets or something? I couldn't get this to work.

@Bobby J. Bee
As long as type(Bone_1) is <class 'bpy_types.Bone'>, you don't need to add anything to that snippet. Note that the keyframe_insert_by_name function inserts keyframes into the active bone as well as the selected bones.

Thank you for the clarification. You've been a huge help!


text:
How can I Use 2D Texture Paint in 3D View (Python)?
The 3D Fill tool fills the entire texture, while the 2D one respects different values within the image (only fills clicked sections). As a workaround I need to split the window and open Image Editor (2D) so I can properly fill with Fill tool. But I only want the 3D View open and have the same behavior in 3D View, without needing to open the Image Editor. Is this currently possible, perhaps with an override, or is this a bug?

can you please show screenshots and demonstrate how you do that manually? so I have an idea how to do it with python.

Is a video link okay here? https://youtu.be/CGLx7kIwCC8
I have the window split with 3D on the right, and 2D on the left, as you can see using the Paint Bucket on the right completely fills the entire mesh, while the 2D one on the left only fills the inside of the circle
Is there a good way to make use of the 2D version WITHOUT having the Image Editor window open?

Unfortunately the documentation doesn't tell us what exact command is executed when you do a fill. if i knew which command that was, i could come up with an operator to help you.

yeah no worries, looks like another "ill have to dig into the source" to see if there's anything, cheers!


text:
3D printed engraving/embossing mesh using a bitmap
The problem:
Searching for a way to create engravings/coins/etc in Blender.
I need it to actually displace the mesh, not just appear to, so it can be 3d printed.
I've tried:

Subdividing a plane and applying a displacement works but looks awful and is a very heavy mesh.
Uploaded the image to a "lithophane" maker and downloaded the result. Looks awful and makes a very heavy mesh.
Boolean modifier randomly generates unprintable or garbage meshes

Any suggestions?

The subdivision and Displacement thing sounds like the standard, however you may be subdividing too much. I don’t know what to tell you except to do that and then use limited dissolve to try to knock down on extra vertices.

I tried using optimize on the mesh after displacement. It removed a lot of the weight but it was still ugly. I assume unless the mesh has three ngons per pixel you won't get a decent conversion. I may try that next. Thanks


text:
Are VDM brushes usable in blender?
Is there a converter/importer/native support for VDM brushes?
There are many ZBrush brush libraries in VDM format.

there tuts videos out there that help maybe with vector mapping..
https://youtu.be/ekaQPkEdudw
I thing the vector sculping brush is not in development no task is in the dev.logs. the fast past developer Paplo is gone..
maybe right click select vote could help again...

There was a discussion of this on Right-Click Select about a year ago.  Although it has received over 200 votes, at the moment the answer remains no.

Thank you. Are alpha brushes an alternative? I'm trying to achieve a manifold mesh for 3d printing. So I don't really care about baking. I've had poor results with boolean or mesh displacement modifiers.

I don't do 3d printing so I'm afraid I can't help you much further on that.  I'd suggest adding a question  about what you're trying to do and what kind of brushes will work.  People with more printing background might be able to help.


text:
Knife project that's not along view axis?
The knife project tool cuts a mesh by projecting a curve along the view axis. Is it possible to do the same thing using the normals of the curve instead? Imagine engraving text onto a mesh modeling a ring worn on your finger.

I don't think the knife tool specifically has the ability to project from a curve. A suggestion would be to first use a curve modifier and fit your mesh to the shape you want. Then project your knife cut onto the object. I used a circle to curve my mesh.

Perfect, thank you


text:
Creating a 3d printable object using geometry nodes
Looking to create a 3d printable container with perforated sides for airflow. The ideal design would be evenly spaced diamonds (not squares with sides parallel to the bottom). In 3d printing anything perfectly horizontal usually fails. Melted plastic responds to gravity and doesn't stay where you put it. If you print at a 45 degree angle the material below supports the new material as it's printed.
I could use a plane, and repeat knife project a bunch of times, then thickness modifier but I hoped for an easier way.
Can this be done with geometry nodes? Best would be if it responds to resizing by generating more, or less, geometry.
Suggestions would be appreciated!

There's a far easier manual method to accomplish this than using knife-project. Tesselate the sides of the container to the appropriate size faces. An option called "poke" for faces tesselates the square faces into four triangular polygons. Using specialized selection options you can select the vertical and horizontal edges and remove them. You're left with diamond shaped faces instead of square. Video tutorial here.


text:
Best approach to rigging an alligator
I've a nice mesh but would like the flexibility of rigging (joke intended).
Should I start with Rigify or create the bones myself? I'm familiar with bones and the skin modifier from 3dsmax but have little experience with blender. I'm using version 2.9

Rigify is able to do the job. Rigify is a modular rig system to create bones and controls with automatic or manual FK/IK. Keep in mind the settings for Rigify differ weather you're on edit mode (for the Armature), the pose mode (for bone constraints) and animation (drivers). There is a complete guide showing you step by step how to learn Rigify. The only guide I seriously recommend: https://gumroad.com/a/189101171
On Lesson 17 there is a full rig exercise with a dragon head, that way you can also learn how to rig blinking eyes for reptiles.
If you need further -specific setup answers- please post them here.

Thank you for the help getting started.


text:
flood fill VDM brushes?
I'm doing sculpting for 3D printing so I need real geometry that's manifold.
Is there a technique to flood fill a tiled displacement/texture onto a portion of a mesh?
I've tried sculpting mode with a tiled vdm brush but that displaces an existing mesh.
I have to by trial and error add huge amounts of polygons until I get something that only poorly resembles what I want to print. It also contains far more geometry than is needed.
Any suggestions?
Thanks

Probably, with Geometry Nodes and/or some deform modifiers. You might also try the remesh modifier.


text:
cutting faces in geometry nodes
What is the best method to cut faces in geometry nodes?
I'm trying to create geometry and distribute it across a face for a 3d printable textured surface.
Is there an equivalent to knife project? Perhaps using the raycast node?
Boolean doesn't work correctly with a non manifold face as one of the operands:

Make it manifold by extruding and merging by distance with old but flipped face, mesh boolean, select by normal only the part that was flipped.

That's a really tricksy hack!


text:
Node Connections Not Visible
I'm having an issue with node connections not showing up at all in the shading editor and I'm using blender 2.93.5. My graphics driver did need updating so I did, but that doesn't seem to have changed anything. Do I just need a better graphics card, or might there be something else going on?

Hi, could you please share your file as well? This looks pretty weird, because if there would be no connection, your cube would be black, but if it is pink it means that there is texture missing even though you are using no texture in this material

i could reproduce his behaviour if you plugin volume(or surface) AND displacement, it will be pink. Although i don't now why.... ;)

This seems to be related to https://blender.stackexchange.com/q/229505/29586

Please add your blend file (How to add a blend file)

I've added the blend file. I thought it had to be doing something since it turned pink, I just didn't know what. If it helps I have an AMD Radeon R9 200 Series graphics card and am running windows 10.

This isn't any kind of resolution, but just info for others: on a Windows 10 GTX 1080, when I open your .blend in either 2.83.2 or 2.90 Alpha (don't have 2.93.5 handy at the moment), in both cases I see node connections---but the node connections involve the BSDF output being plugged into both Surface and Displacement, with the Displacement connection edge colored red to highlight that it is possibly of an unexpected type. Removing that edge yields normal shading. (But obviously this doesn't explain why you don't have edges at all in your shader editor.)

Downloaded 2.93.5 -- exactly the same behavior there.


text:
How to know how much RAM a FLIP Fluids fluid simulation will require?
I'd tried to run a really big fluid simulation with FLIP Fluids (built from source on Linux). I am not using the default fluid simulator. However, I wasn't happy with the quality of it, so I upped the resolution to some very big number. I promptly ran out of memory. Oops.
Anyways, once I set the settings, I'm wondering if there is a way for Blender to estimate (or if it isn't included, a way for me to calculate) how much RAM a fluid simulation will take. Repeatedly trying different values will take too long.

This plugin looks like it is in active development. Have you asked this question on its github page?

The short answer is that it would be too complicated to calculate an exact amount of RAM that a FLIP Fluids addon simulation will use. The memory needed to be allocated is dynamic and depends on many factors such as fluid movement and placement of liquid at any point in time. A very rough estimate would be to look at the voxel count displayed in the FLIP Fluid Simulation panel. For example, check the amount of memory being used when run at a low resolution, then increase resolution and multiply the RAM amount by a factor of (high_res_voxel_count / low_res_voxel_count).

Another tip would be to minimize RAM usage by fitting the domain tightly around the liquid effect that you are creating. Less empty space in the domain means less memory needed to be reserved. https://github.com/rlguy/Blender-FLIP-Fluids/wiki/Domain-Object-Settings#how-large-should-i-make-my-domain-object

@RLGUY That is very good to know, thanks so much for explaining! Would you mind posting that as an answer? It would make it easier for people to read what you said.

The short answer is that it would be too complicated to calculate an exact amount of RAM that a FLIP Fluids addon simulation will use. The memory needed to be allocated is dynamic and depends on many factors such as fluid movement and placement of liquid at any point in time.
A very rough estimate would be to look at the voxel count displayed in the FLIP Fluid Simulation panel. In general, the amount of memory required for a simulation is proportional to the amount of voxels in the domain.

For example, if the voxel count is 2 Million at a low resolution and this takes 1GB to simulate and if the voxel count is 16M at a high resolution, an estimate of memory could be to multiply 1GB * (16M / 2M) = 8 GB of memory.
Tip: minimize RAM usage by fitting the domain tightly around the liquid effect that you are creating. Less empty space in the domain means less memory needed to be reserved. Documentation: https://github.com/rlguy/Blender-FLIP-Fluids/wiki/Domain-Object-Settings#how-large-should-i-make-my-domain-object


text:
Why does the object spin around a random dot, instead of its own axis?

My donut just started moving based on this dot and I have no idea how to fix it.
How can fix this so the donut isn't moving around the dot?

It's not a random dot, it's the object origin. To bring it back to the object geometry, right click > Set Origin > Origin to Geometry


text:
How to combine vector algebra and blender modeling?
I do some simple vector algebra and want to illustrate the vectors and points in Blender. However, there is a disconnect that I would like some outside perspective on to disentangle. Here is the code that shows my issue.
I have a slightly tilted line given by the point P and a direction vector, and I have a point A. I want to calculate the vector projection of the point A onto the line. I want to connect the point A with the projected point with a straight line.
import bpy
import numpy as np

point_radius = .025

line_rot_x = 0 * np.pi / 180  # 5° rotation around x axis
line_rot_y = 0 * np.pi / 180  # 3° rotation around y axis
line_len = 1  # in meter
line_radius = .01
P_y = 1
P_x = 1

A = np.array([0, 0, 0])
bpy.ops.mesh.primitive_uv_sphere_add(radius=point_radius, location=A)

P = np.array([P_x, P_y, 0])
bpy.ops.mesh.primitive_cylinder_add(location=P,
                                    scale=(line_radius, line_radius, line_len))

# align the line (more or less, given the rotation) with the z-axis
bpy.context.object.delta_rotation_euler = (line_rot_x, line_rot_y, np.pi/2)

# set up some helpful math things to make calculation of the planes and vectors easy
rotation_matrix = np.dot(
    np.array([[1, 0, 0], [0, np.cos(line_rot_x), np.sin(line_rot_x)], [0, -np.sin(line_rot_x), np.cos(line_rot_x)]]),
    np.array([[np.cos(line_rot_y), 0, -np.sin(line_rot_y)], [0, 1, 0],[np.sin(line_rot_y), 0, np.cos(line_rot_y)]]))
line_direction_vector = np.dot(rotation_matrix, np.array([0, 0, 1])) # rotate the direction vector of the z-axis

print(str("direction vector of the line " + str(line_direction_vector)))

A_proj = P + line_direction_vector * np.dot((P-A), line_direction_vector) / np.dot(line_direction_vector, line_direction_vector)
print(str("point A, projected on line: " + str(A_proj)))

# mark the projected point, and the normal plane in the point
bpy.ops.mesh.primitive_uv_sphere_add(radius=point_radius, location=A_proj)
bpy.ops.mesh.primitive_plane_add(size=1, location=A_proj)
bpy.context.object.delta_rotation_euler = (line_rot_x, line_rot_y, np.pi/2)

# connect the A and A_proj
bpy.ops.curve.primitive_bezier_curve_add()
obj = bpy.context.object
obj.data.dimensions = '3D'
obj.data.fill_mode = 'FULL'
obj.data.bevel_depth = 0.01
obj.data.bevel_resolution = 4
obj.data.splines[0].bezier_points[0].co = A_proj
obj.data.splines[0].bezier_points[0].handle_left_type = 'VECTOR'
obj.data.splines[0].bezier_points[1].co = A
obj.data.splines[0].bezier_points[1].handle_left_type = 'VECTOR'

This should work with all kind of As, Ps and direction vectors for the line.
As you can see, Blender's perception of where the point_coordinate is differing between drawing the sphere and when drawing the connecting line. My math to calculate the vector projection is also off - the globe should be in the plane, and so should the connecting line.
When I subsequently increase just one value of the code, e.g. one of the rotation angles, rerunning the script without cleaning the canvas, the expected result and blenders reality diverge more with each step, and I don't quite understand why.
This is an example of what I expect to happen (thanks to Sam-Hirsch for the vid).
Where did I go off the tracks?

Your link doesn’t work

@Chris fixed it. thanks for letting me know

This code seems to work. Still thinking through this, there still might be flaws.
One issue was the curser, which seems to confuse the bezier curves if not set to the origin. An other was the left/right-handedness of the rotation (the minus sign on the sin() functions). I am still not sure about the vector projection, but it produces reasonable results for the cases that I checked.
import bpy
import numpy as np

# bpy.ops.wm.read_factory_settings(use_empty=True)

point_radius = .025
line_rot_x = 5 * np.pi / 180  # 5Â° rotation around x axis
line_rot_y = 30 * np.pi / 180  # 3Â° rotation around y axis
line_len = 1  # in meter
line_radius = .01
P_y = 1
P_x = 1

A = np.array([1, 0.5, 0.5])

bpy.ops.mesh.primitive_uv_sphere_add(radius=point_radius, location=A)

P = np.array([P_x, P_y, 0])

# align the line (more or less, given the rotation) with the z-axis
#bpy.context.object.rotation_euler = (line_rot_x, line_rot_y, np.pi/2)

# set up some helpful math things to make calculation of the planes and vectors easy
rotation_matrix = np.matmul(
    np.array([[1, 0, 0], [0, np.cos(line_rot_x), -np.sin(line_rot_x)], [0, np.sin(line_rot_x), np.cos(line_rot_x)]]),
    np.array([[np.cos(line_rot_y), 0, np.sin(line_rot_y)], [0, 1, 0],[-np.sin(line_rot_y), 0, np.cos(line_rot_y)]]))
line_direction_vector = np.matmul(rotation_matrix, np.array([0, 0, 1])) #

print(str("direction vector of the line " + str(line_direction_vector)))

A_proj = P - line_direction_vector * np.matmul((P-A), line_direction_vector)/np.linalg.norm(line_direction_vector)

print(str("point A, projected on line: " + str(A_proj)))

# mark the projected point, and the normal plane in the point
bpy.ops.mesh.primitive_uv_sphere_add(radius=point_radius, location=A_proj)

bpy.ops.mesh.primitive_cylinder_add(location=A_proj,
                                    scale=(line_radius, line_radius, line_len))
bpy.context.object.rotation_euler = (line_rot_x,line_rot_y,0)
bpy.ops.mesh.primitive_plane_add(size=1, location=A_proj)
bpy.context.object.rotation_euler = (line_rot_x,line_rot_y,0)

# connect the A and A_proj
bpy.ops.curve.primitive_bezier_curve_add()
obj = bpy.context.object
obj.data.dimensions = '3D'
obj.data.fill_mode = 'FULL'
obj.data.bevel_depth = 0.01
obj.data.bevel_resolution = 4
obj.data.splines[0].bezier_points[0].co = A_proj
obj.data.splines[0].bezier_points[0].handle_left_type = 'VECTOR'
obj.data.splines[0].bezier_points[1].co = A
obj.data.splines[0].bezier_points[1].handle_left_type = 'VECTOR'


text:
Texture Paint a straight Line using Python
Refactoring this post to simplify the request:
I need to draw a straight line/continuous Stroke in Python with Texture Paint. Unfortunately it is currently only placing a single dot at either end of the stroke.
Desired Outcome:

Current Code does this:

Tried:

Using "location" & "mouse_event" instead of mouse
Making "name" unique
Using different Stroke settings in Texture Paint (like Line)
UV unwrapping
Every combination of "is_start" for each stroke

I've seen multiple posts about this with no solutions, is bpy.ops.paint.image_paint just broken?
Code:
import bpy

x1 = 500
x2 = 800
# the line should be horizontal, ie 500-800px

strokes = [{"name": "",
    "is_start": True,
    "location": (0,0,0),
    "mouse":(x1, 500),
    "mouse_event":(0,0),
    "pen_flip":False,
    "pressure":1.0,
    "size":10,
    "time":0,
    "x_tilt":0.0,
    "y_tilt":0.0},

    {"name": "",
    "is_start": False,
    "location": (0,0,0),
    "mouse":(x2, 500),
    "mouse_event":(0,0),
    "pen_flip":False,
    "pressure":1.0,
    "size":10,
    "time":0,
    "x_tilt":0.0,
    "y_tilt":0.0}]

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

areas  = [area for area in bpy.context.window.screen.areas if area.type == 'VIEW_3D']

with bpy.context.temp_override(
    window=bpy.context.window,
    area=areas[0],
    region=[region for region in areas[0].regions if region.type == 'WINDOW'][0],
    screen=bpy.context.window.screen
):
    bpy.ops.paint.brush_select(vertex_tool="DRAW", toggle=False)
    bpy.ops.paint.image_paint(stroke=strokes)

I'm on Blender 3.6 and nothing happens. Are you sure your code works? the bpy.ops statement will even error out as poll context fail. so i updated it to be executed in the right context. it runs without errors now but nothing happens. Not even a dot gets painted.

thanks for adding the context override, i was in the middle of adding it but you were faster ;)
the rest should work, it works on my end (it's an operator in a bigger addon), i just don't understand why it doesn't paint a continuous line, i've tried in 3.3 and 3.6
edit: try adding a plane, and zooming in so the plane covers the full 3d view, then try running the operator, since it's using fixed x/y values if you're zoomed out it might be "missing" the mesh

oooh ok. cool now i see the 2 dots drawn. now something i can work on.

sweet, i appreciate you taking the time!

I think it's not the way it works where we expected it to fill the gap. You have to manually define the points where a stroke will be applied:
import bpy

points = []

for i in range(0,800):
    points.append((i*6,500))

strokes = []
for i, point in enumerate(points):
    stroke = {
        "name": "",
        "is_start": True,
        "location": (0, 0, 0),
        "mouse": point,
        "mouse_event": (0, 0),
        "pen_flip": False,
        "pressure": 1.0,
        "size": 10,
        "time": 0,
        "x_tilt": 0.0,
        "y_tilt": 0.0
    }
    strokes.append(stroke)

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

areas  = [area for area in bpy.context.window.screen.areas if area.type == 'VIEW_3D']

with bpy.context.temp_override(
    window=bpy.context.window,
    area=areas[0],
    region=[region for region in areas[0].regions if region.type == 'WINDOW'][0],
    screen=bpy.context.window.screen
):
    bpy.ops.paint.brush_select(image_tool="DRAW", toggle=False)
    bpy.ops.paint.image_paint(stroke=strokes)

damn unfortunately to get a rectangle I'd have to call this line operator with a 1px size a few hundred times using a nested loop and it's just extremely slow, I was hoping Blender had a way to draw the strokes continuously
i appreciate your help anyway!

but im not 100% sure if there is another way, there is unfortunately not enough documentation on this.

ill dig into the source a bit and see if there's anything but I don't have high hopes considering the previous posts asking similar questions


text:
Export FBX or OBJ one click script As well import FBX or OBJ one click
Looking for simple script as mentioned in title "Blender Export Script FBX or OBJ one click script As well import FBX or OBJ one click"
as via Google I did not receive any positive answers.
Maybe someone already wrote such code?
If not it will be great if someone can help me to reach this goal.
As with all my previous software which I was using I had such script from zbrush to maya etc..
However in Blender I did not find any.
from pathlib import Path
import bpy

folder = Path(r"C:\Asset_temp")
fbx_files = [f for f in folder.glob("**/*.fbx") if f.is_file()]
for fbx_file in fbx_files:
    bpy.ops.object.select_all(action='DESELECT')
    bpy.ops.import_scene.fbx(filepath=str(fbx_file))
    for obj in bpy.context.selected_objects:
        obj.name = fbx_file.stem

What's wrong with using Blender's File > Import and Export menu?

I even don't know how to explain, simple is it not efficient . If you not working in 3D field, then there is no problem. you can work on singular item. However i don't have such luxury.

Well both the Fbx and (legacy) Obj importers and exporters in Blender are addons written in Python and of course are open source, so you could always have a rummage round in the source files in Blender.


text:
Keyframes for material animations don't appear!

I read some answers to the questions, but none of them worked.
https://developer.blender.org/T67359
https://www.reddit.com/r/blenderhelp/comments/j0ayfx/where_are_texture_keyframes_located_at_blender_29/
I need to have the size keyframes appear in timeline or graph editor to adjust the animation.

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

I need to have the size keyframes appear in the timeline or graphics editor to adjust the animation.

how would keyframing a texture brush work? Not sure to understand here... I think it makes no sense to keyframe a texture for the brush, but if you use it for a Displace modifier for example it will work... Please give more details...


text:
Black background being affected by light source
I've encountered a weird problem lately, I have an object in the middle of the 3D space, and changed the background color of the viewport to black (#000) and use Cycles, the issue is that when rendered the background is not entirely black. I have a light source behind the camera to cast shadows on my object, but the light source also affects the background. This makes no sense to me as this is not how light behaves in real life, In real life light is only visible when it collides with something. But in the case of my project light from my light source is visible and affects my background color even though there is nothing for it to collide with. The only way I've found to fix this is to have no light source and use an emission shader on my object. With this technique the background of the object is pitch black but the emission shader also causes my object to have no shadows and to look differen than if it was illuminated by a light source. What I'm essentially asking of you guys is, do you know of any ways to have a pitch black background while still illuminating an object with a light source (the effect i'm going for is quite similar to how earth looks from space, earth is visible due to thte light from the sun but the vaccuum around earth is pitch black)?

I've been trying for about 30 minutes to duplicate your result, but can't. Can you share your blend file?

If there were empty space around your object you're right, this behaviour makes no sense - but the space is not empty, see answer below.

You have a plane in your scene which has deactivated visibility in the 3D Viewport, but is visible in Render (the camera symbol on the right).

Tested it out with the plane deleted and you're right, thanks a lot!

@Chronos138 You might consider accepting this answer: What should I do when someone answers my question?


text:
Merging Vertices not working after separating faces using "P"?
I am trying to merge two vertices. Earlier on in my modeling I hit "P" to create a new part/object ( I origallny did this to keep that part flat ). Now I need to rejoin some vertices as there's a small gap but "Merge" - "Merge to center" does not work. As always any suggestions would be very helpful. Thanks, Jack.

If you have separated your 2 meshes in 2 separate objects, you can't join their vertices anymore, is it your problem here?

Yes this is my issue.

so the answer is: don't separate your 2 meshes into 2 objects  ^^

Yeah ok. So how do I Un-seperate them?

You need to join the 2 objects with Ctrl J, then you'll be able to create edges between the vertices

Try selecting all the vertices that border the gap

and press 'F' to fill the gap.

As your description was pretty complicated, it might be helpful to paste an image in your question! :)

You can't Fill between seperate objects!

Picture added. As you can see it's only a thin gap I'm wanting to close. Hence the need for merging.

I posted this without knowing that it was two different objects, yes you would select the two objects and use Ctrl J to join them, then use the fill

I have tried Ctrl J and then merge the vertices but still with no success.


text:
Render through camera results in dark, noisy image
I recently started playing around with rendering in blender a bit. I quickly figured some things out I never used in modelling.
However, after the first time rendering an image through a camera, I noticed something odd. When I render the view through Rendered Viewport Shading, it looks good (Image 1). If I render it through the camera however, the image I get is very dark and insanely noisy (Image 2).
I am sure it has something do to with the camera settings, but I don't know what or how.
I would appreciate if someon could give me a hint as to what might be missing there.
This is the blender file I am using:
Thanks, Titan

Each shading mode has options for lighting and if you have the options set differently than the render you might have problems.  If it's not that, can you share a blend file that shows the problem so we can look at your settings? (How to add a blend file)

Look up the options of the Viewport Shading. You're using a Studio Light in your viewport previews while there's no HDRI in the actual scene, resulting in the dark render of your second image.

Added the blender file to the initila question. Any help appreciated! :)

unfortunately you did not file -> external data -> pack resources before uploading...


text:
Why does bloom not work over a transparent background?
I'm using the Eevee engine and the fireworks are emissive particles, bloom is turned on.
I tried both eevee and cycles, I want to use eevee though.
I tried PNG with RGBA color, 8bit and 16bit color, no compression.
I also tried TIFF with RGBA color, 8bit and 16bit color, no compression.
I want to render the images with a transparent background while keeping the color of the fireworks. In the viewport it looks normal, but when I render it and save the image it loses the color in the fireworks over the transparent background.
Here is a blend file of the fireworks and just simple cubes since sharing the models in the blend file is against ToS, but it does the same thing here. https://drive.google.com/file/d/1O-6VudxGP-Y_7jO09FVzM4IRjJEtTHQZ/view?usp=sharing

wow that is really odd... the render looks fine but when saved as image it gets corrupted. does not make any sense.

Going on over a decade at this point, but I’ll keep repeating it. The design of Blender’s encodings is broken. You need associated alpha, and some dimwit disabled all associated alpha way back, in all encodings except EXR. Some dimwits will try to convince that they made a wise choice. They did not. TIFF should work, but because of dimwit design it doesn’t. PNG is horribly broken and can never work. Use EXR is the only option, and it will work.

EXR doesn't work with the bloom, it has the same issue as the other image formats. Download the blend file and show me how to make it work, if its simpler I'd much rather use that.

False. It works perfectly fine. There are countless threads here supporting that. Additive “emission” RGB is positive, with zero alpha.

Okay, I see what you mean now, EXR stores bloom the same way a PNG with a black background stores it. So I only have to render two layers instead of three for each collection since the EXR also includes the alpha channel. I included an image of the two node setups, they give the same result, one is using PNG and one is using EXR. https://imgur.com/a/RAP22Tk

You shouldn't really be compositing with PNGs because they literally cannot represent the "emission" in the file encoding. It's a broken format.
The EXR will "Just Work" if you load it into Blender separately, and use a basic Alpha Over with some constant RGB set.
You will see the proper composite, without any janky PNG nonsense. Sadly, because the Blender developers still haven't fixed TIFFs and what not, the only option is EXR. PNG is simply broken, but so is Blender's handling of picture encodings.

You also don't need all those adds and such in your composite with the EXR. It's literally about encoded alpha. https://imgur.com/a/lj9SFEV

I swear I tried that at the beginning before asking this question and it didn't work, but it works lol. Thank you.

Maybe one day Blender developers will fix the damn file encodings for TIFF to support associated alpha, switch TIFF to default, and then the endless barrage of questions here will cease. Until then… help other folks. You can generally find this exact same issue repeated in different ways, once or twice per week. PNG really needs to be punted out to orbit.


text:
Vertex slide a specific distance instead of a percentage?
I have a vertex on a 45 degree edge. I want to slide that vertex exactly $0.1m$ on the $x$-axis, but maintain a $y$ and $z$ position along the edge. I can slide the vertex along the edge using GG for vertex slide, but I do not know the percentage of the length of the edge that corresponds to  $0.1m$. How can I do this?

Set Transformation Orientation to View. In Edit Mode, select your Edge and press Shift+NumPad7 to align to your viewport. Now you can manipulate the vertex location by using the View's Y perspective. Select the vertex and press GY-0.1mEnter

You can also use Shift+NumPad3 to view from the side and use the View's X perspective then press GX-0.1mEnter but it's not so visually appealing for this example.

Beware that contrary to vertex slide, this method stretches the UV's.

Try pressing the x axis to slide on that axis, then press 0.1 on your keyboard. Your units I think should also be in the same unit (in this case meters) that you want to vertex slide in. You could also do -0.1 or when you vertex slide, a pop up should appear on your bottom left corner of your screen. You can type 0.1 in the slot to make the vertex the way you want.

see my answer on how to do it properly :D


text:
How can I get a temporary fix for a broken 'g' key on keyboard?
I have a hardware issue where it appears that the G key is broken. I won't be able to get into town to buy another keyboard for at least 2 days, but I can't figure out how to remap it properly. Nothing I change has the same effect as it did.

Hello, you can either remap it in the Preferences, or select the Move tool in the tool panel?

You can use the N key in object mode to get a translation bar and manually slide the translation sliders.  You can also rebind the 3D move command which is on G under
edit --> Preferences --> Keymap

There is a search bar.  Set the search mode from name to key-binding and search "G".  In this case I think you want to rebind "Move" under 3D
Bind it to another letter, but first you need to remove the key you want to set the move command to from the other key binding it occupies.
Remember what you changed, maybe write it down as a text file on your desktop so you can reset it.