text:
creating a fake origin point in the BGE?
in the figure below you'll see two separate points in time and three object. You can also see the direction object C is facing.

I am trying to replicate a false point of origin for object B at the center of object A, which will then orbit around A based on the direction of object C in the BGE using python. parenting object B and A are not allowed, in fact no parenting is allowed in this example, neither is rotating object B based on the rotation of object A.
how would I accomplish this in the bge using python?
It took me a while to figure out just how to articulate this, and to keep it clear what I want to do. I thanks for any help in advanced.
EDIT: here's what I have so far, this goes on an always sensor to python actuator on object B. It however doesn't set the angle of the object properly.
    #------------------------------------------
    print("------------------")
    import math
    import bge
    from bge import logic
    scene = bge.logic.getCurrentScene()
    cont = logic.getCurrentController()
    contrlr = bge.logic.getCurrentController()
    own = contrlr.owner
    obj = scene.objects['C']

    #horizontal
    x0= obj.worldPosition.x
    y0= obj.worldPosition.y
    y= 0
    x= 0
    (dx, dy) = (x0-x, y-y0)
    angle = math.degrees(math.atan2(float(dy), float(dx)))
    if angle < 0:
        angle += 180

    #vertical
    z0= obj.worldPosition.z
    x0= obj.worldPosition.x
    z= 0
    x= 0
    (dx, dy) = (x0-x, z-z0)
    angle2 = math.degrees(math.atan2(float(dy), float(dx)))

    angle=angle
    angle2=angle2+180

    if angle2 < 0:
        angle2 += 180

    print("A1A2",angle,angle2)
    #get C's angle from the centerpoint /\
    #############################################
    #now set the objects angle
    import sys
    import bge
    import random
    import math
    from bge import logic

    scene = bge.logic.getCurrentScene()
    cont = logic.getCurrentController()
    contrlr = bge.logic.getCurrentController()
    own = contrlr.owner
    obj = cont.owner

    angle2=angle2-90
    A=angle*-1
    T=angle2

    R=own['radius']

    obj.worldPosition.x = R*math.sin(T)*math.cos(A);
    obj.worldPosition.y = R*math.sin(T)*math.sin(A);
    obj.worldPosition.z = R*math.cos(T);
    print("tapos",T,A,obj.worldPosition)

hope this edit helps.

I dont know BGE but can you place in an empty and parent your object to the empty? That should solve your problem. Your anchor point should be the empty.

"parenting is not allowed in this example"

The only thing I can think to do really is to create a circle, and then match the object in the allowed points in the circle to the camera. And I don't really know how you'd do that regardless it doesn't seem like a very effective method, any suggestions?

B follows C while spinning around A. So both I guess?


text:
How to make an imported extruded round shape into a flexible wire?
how can I add flexibility to various existing bent round wiring shapes so that I could animate the connecting of the wires between LED fixtures?
I have an electrical assembly of LED light fixtures made in SolidWorks that I imported into Blender and would like to animate how the 1/8" diameter wiring connects between the LED strips.
The imported SolidWorks model has all the wiring shown in the final/assembled position, so some wires are straight, some are partially bent, some bent at 90 degree angles or s-curves to fit into place.
I think the most complex part is how would I be able to add Physical Properties and Constraints to something like the existing s-shaped wiring, so that I could have the s-shaped wires be able to be manipulated from being straight in the beginning of the animation to being bent into the s-shape. Thank you kindly for any help on this :)
For reference, the red and black wires were made in SolidWorks using Swept Boss/Base command which just extrudes my 1/8" diameter circle along the sketched path. I exported my SolidWorks assembly file .sldasm as .WRL in meters to import into Blender
*Side note:
I found that:

Exporting .sldasm as .WRL in meters when
imported into Blender will keep all of the individual parts separate objects (useful for being able to moving the separate parts/objects around in Blender)
Exporting .sldasm as .PLY in meters when imported into Blender merges
all parts into a single object
Exporting .sldprt as .WRL in meters when imported into Blender does not seem to work and just gives an error message.*

An illustration would really help here. It would also help to know the topology of the imported wires, since the best way about it may be to strip them out, and replace them with Blender curves.

HI Robin, I added some "reference info" and a Blender screenshot for some additional clarity. Ideally, the red/black wire would be able to bend from straight to the positions shown in the screenshots. Thanks for any help on this.

A possible route would be to

replace all existing wires with Bezier curves. If the paths down which the wires were swept are extant, and  exportable, that would help a lot.
Activate the shipped 'AnimAll' add on, which allows you to keyframe all aspects of  Bezier control-points.

My guess is that you will only need 3 control-points per curve.
Put the origins of the curves at their fixed ends.
A wire-model, also with its origin at its fixed end, deformed along the curve with the Curve modifier, will retain its length, no matter where the far end of the curve goes, so it's relatively easy to straighten .. for instance, if you want to straighten a Bezier along the Z axis, that would be SShiftZ0.. or along a Custom Orientation made from an edge or any 2 points, ..SShiftY0

Ah this is awesome, looks and sounds like a great work flow for me to start from. Thank you!!

source: Stack Exchange

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

sort: votes


text:
Importing file is resetting main bone position and changing scale on all bones
I have a blender model which has the MAIN bone as set to be pointing up in the +Z direction and I export this file as a .glb. When I import the model into a new blender file, the main bone is imported incorrectly in the flat position pointing in the +Y direction an it's is scaled large in size. All of the child bones are scaled down in size, but ARE oriented properly as they were in the original blender file. I have to then manually rotate the orientation of the MAIN bone and scale it down, then manually scale up the child bones. Is there some setting I need to change in order to have the imported .glb come in exaclty as it's original Blender file that it was exported from? Thanks for your help.

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


text:
How do I smooth out the curve in my render?
I'm using Blender 2.93. The curve of my object looks like a curve when viewed from the top (image on right), but the edge in my cycles or eevee preview of camera shot (image on left) looks like the curve as been reduced into line segments. How can I get the curve to render out as a curve? Is there some setting I need to turn on? Thanks.

You want to increase the Resolution Preview U property (under Shape), or the Render U property. Per the 2.93 docs, if you set Render U to 0, then the renderer will use whatever setting is used for the preview; alternatively, you can set it higher for even smoother appearance during rendering.
How is the geometry generated from your curve?

Hi, thanks for the info but where is this Resolution Preview U physically located in the Blender UI? The objects were sketched with lines and arcs in SolidWorks and the shape extruded to 1/8" thickness. I then exported it as a .PLY from SolidWorks to bring into Blender. Thanks for the help.


text:
Can't get second bend to work
I have sheet metal object that I've set up with a rig that has 2 bends. Each bend in the rig has 5 little bones for a nicely curved bend which will bend to a total of 90 degrees to form a right angle bend. The rig bends perfectly to make two 90 degree bends, but when the sheet metal object is parented to the rig, only the first bend goes to 90 degrees. The second bend has the same setup, but only bends that portion of the object to 45 degrees, even though the bones are visibly bending to 90 degrees. The vertices are all matched up with the little bones in both bend areas, so I'm not sure what's causing the second set of vertices to not align with bones. Thanks for any help on this.
Blender file
Bending video samples

Can you possibly share your Blender project file? Or possibly post a few screenshots explaining your problem? It's kind of hard to wrap your head around the issue with only text like this. Instructions for sharing.

Hi @Jakemoyo, I added a the .blend file and some vids and screenshots for reference. Thanks for any help on this.

The Vertices of the left bend 012 flap should all be assigned to a single vertex group (left bend 012) with a full weight of 1.00. Instead, if any one of the flap's vertices are selected we will see that the vertex has been assigned to multiple vertex groups all which have a vertex weight of 1.00.

To compare, when we select a vertex of the left bend 006 flap we see it will only be assigned to a single vertex group, left bend 006.

To fix this, first we make sure that all the flap's vertices are assigned vertex group left bend 012 with a vertex weight of 1.00.
In Edit mode select all the vertices that make up the left bend flap, open the Object data Properties tab, and then with the left bend 012 vertex group selected hit the Assign button.

Next we need to remove all the unnecessary vertex groups from all the vertices of the left bend 012 flap.
We do this by selecting a vertex group from the list of vertex groups and hit the Remove button. The example below shows removing left bend 006 vertex group from all the selected vertices :

Repeat above for the other unnecessary vertex groups.

Now when we select any of the vertices that make up the left bend 012 flap they should only have the one left bend 012 vertex group assigned to it with a vertex weight of 1.00.

The left bend 012 flap should now bend to its full 90°:


text:
BGE: Send single pulse at start of game?
I want to run a python script, once at the start of a game in the BGE. I tried various sensors, but they all sent more then one pulse/contentious stream. I only wan't to run my script once, right at the beginning, and then be done with it for good. How can I do this?

Not with a logic brick, but it works: http://blender.stackexchange.com/questions/2665/how-can-i-do-a-one-time-initialization

Would an Always sensor with the Tap button toggled work? Just asking.

Often times to control parts of the game that are kinda background or sidework, we add empties. Invisible empties can be used for playing sounds, loading levels, spawning bad-guys, or running pythn scripts.
Create an empty that will run your script if it doesn't need to be on a specific object (a jeep for example ;) add an always sensor to it, and then connect it to a python controller, set the controller to run your script, then enable the little marker next to the name of the controller, setting it to be a startup script. the symbol will change from this:

to this:

And your final setup will look like this:

That will run it multiple times

Go ahead and try.

Unless TLT is enabled, the always actuator activates once.

It appears to still be double executing it, but this actually works O.o

This solution is right ... if you start with a single scene and this logic is applied to an object, that does not get added again. The scene should not be started again in your game session.

Check the following image. I use a property named "run_once". The script runs as long as the property is 0 and prints "potato" and the LogicTicRate. Also I have an actuator that sets the "run_once" property to 1 when the script runs for the first time, so it would never run again. I don't know if that is practical but I just thought of it.
Also you might notice that it prints "potato" 2 times. This happens cause of the logic tic rate, meaning the times per second the logic brick sensors are being executed. You can change this time with the command I put in comment in line 4. I haven't played with it, but I'll have too soon enough. You might not have a problem with it, but if you do check this (set logic tic rate)

Somehow it is still not working :/

Does it perform what I said above or is there an error?

It changes the property, but continues to run the script

Activate "Tap" in the property sensor and let me know. How did you know it kept running? How many times did it print "potato" in the system console?

it seems to be fixed after I saved the file (odd) however, it is still making to copies, and the refresh rate needs to remain at 60 fps

Changes need to be saved. I know for sure if you are running an external module. About the frame rate as I said above I haven't found a way over it yet but since it happens so fast in the start of the game it should not be affecting you. Unless you really want to print messages(?). Also from what I gathered if you change the tic rate with the above command, it affects all the logic bricks so it could affect more than you want. If you find a way to bypass it, let me know.

If you want to make sure you execute code exactly once in a game session I suggest to use a Python module.
A Python module acts as singleton (which means there exist only one instance at the time). It also survives any scene changes. You can take advantage of the fact that module level code is executed exactly once, at module load time. Modules gets loaded with the fist access to them (via call or via import)
This should work unless you unload/reload the module - which is very unlikely.

Module Mode
runOnceDemo.py
def initialize():
    'call runOnceDemo.initialize from your Python controller'
    pass

print("This code runs exactly once")

Always -> Python controller Module: runOnceDemo.initialize

Script Mode
runOnceScript.py
import runOnceDemo

Always -> Python controller Script: runOnceScript
runOnceDemo.py
print("This code runs exactly once")

I hope it helps

The way how and when scripts are executed is a bit confusing at the beginning. Sensors send singnals when they change their states.
For example if you have an collision sensor which is attached to a script. than this script will be executed twice when the sensor detects a collision. once when it changes from false to True and again when it changes from True to False. But if you just use an always sensor (without tigger mode) than the script schould be executed only once, at the first frame because the sensor will never change again (always True).
Another methed is to write an init function inside of your script.
own = bge.logic.getCurrentController.owner
 if not "anyPropertyWhichDoesntExistInThisObject" in own:
     own["anyPropertyWhichDoesntExistInThisObject"] = True
     #here you now can write your initialisation code which wont be executed again

Yes, the question was asking how to only send one signal, rather then having to perform the check in python. It's more efficient using logic bricks

so does the method with the always sensor work for you ?

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


text:
Extrude distorts the texture
Using Blender 2.91. Before somehow with extrusion from a photo everything worked ok.
But now it only squeezes out the walls and the inside remains in place, what am I doing wrong?
could this be because I pulled out the bottom of the photo and made a cover under the house?

In the tool options, you need to enable "Correct Face Attributes" (used to be called "Preserve UVs"):

With this enabled, Blender will try to edit the UVs (and other things like vertex paint if you have some) to adapt them to the modifications.

turned it on but doesn't work! Or do I need to restart the blender after this?

It should work on any new modification. Or is your texture mapped with a different method than UV?

could this be because I pulled out the bottom of the photo and made a cover under the house? added photo above

No. But again, enabling this option will not fix what is already done, it will only make the new extrusions work better.

Understand that this texturing method is very limited, you make shapes that don't exist in the original texture and hope the software can somehow deform the UVs to make it look somewhat seamless, but it can't invent new faces or detail that isn't in the photo.


text:
why UVs are empty when exporting alembic?
I have a setup with geonodes, all materials are overlaid via geonodes attributes. When exporting alembic, I can't overlay textures because there is nothing in UVs at all, what do I need to do to convert attributes to real UVs in alembic?
Also, when I switch to Face corner the texture doesn't work correctly

Since you are asking the same question again without sharing more information about your setup (e.g. via https://blend-exchange.com), I can only recommend the answer here again: https://blender.stackexchange.com/questions/299012/. However, since this doesn't really seem to be a solution for you either, the error is probably somewhere in the details of your setup. Therefore again: Further information (blend file) is required.

Also check the export settings again: https://docs.blender.org/manual/en/latest/files/import_export/alembic.html#object-options

i upload project, do you need textures for this?


text:
Add an image on a cylinder with wrinkles
I design a cylinder with wrinkles following this video: https://youtu.be/bNGGwaHOzHY?si=RODbCMi0yViRNy8X. Now I want to add an image on it but I don’t know how to do it because nothing works. Someone can help me?

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

Sorry, just saying "nothing works" without any information what all this nothing is you already tried is a bit vague. So you are basically asking how to texture a cylinder?

Have to say, at least on a brief viewing, the mapping in the tutorial is a bit odd. It would be better to map using UV, rather than index.  The same UV will be used for your image. Did you make the cylinder inside GN, or start with one that already existed?

@RobinBetts I made the cylinder as in the video because I needed to create an inflatable robotic arm and the result of that video is what I need. now I need to insert a png image that contains a transparent background. should i add image via uv? could it work?


text:
shading artifacts after subdivision

got these strange "indentations" on a flat surface with a "subdivide surface" modifier

can you share your blend file https://blend-exchange.com

yes, I put a link to it in my post

you have non-planar faces caused by these 2 vertices. All vertices within this area have a Y of -1 but these 2 vertices have -0.99976. Set them both to -1 and the shading problem will go away. Also at the top of your object you need to fix the geometry.


text:
Scene optimization on a material level?
How can I properly optimize a scene at a material level? For example. I have 2 different versions of the same rock texture in different resolutions, 1k for the background and 8k for the foreground. Would I just create 2 different shaders of the same rock texture with 1k and 8k maps? Or is there a clever or alternate way of doing this?

Hello, I'm not sure to understand your question, if you give the same name to the image you can reload it in the Image Texture, just put your mouse cursor in the Shader Editor and press Alt R?

Hey thanks for your response, maybe if I explain my scenario it'll be easier to understand. I have several versions of a rock texture, in 1k, 2k, 4k, 8k resolutions. I want to be able to switch from different resolution per each model such as a rock in the background can have the 1k version of the shader and a rock in the foreground can have the 8k version. The obvious answer for me is to make variations of the shader in each of it's resolutions. My question is if there's an alternative way to do this without creating several different resolution versions of the shader. Does this make sense?

Oh ok, but i don't think it will make any difference in terms of render time if this is what you're thinking about

Yeah I'm trying to optimize any scene I create so render times don't go too crazy. I did a quick test just rendering a plane with a 1k vs 8k texture and it took half a second longer with all setting just the same on a single frame. I'm assuming that would snowball if I didn't optimize a scene accordingly.

Half a second is well within tolerance-- your computer is doing a lot of stuff differently from moment to moment (and optimizing under-the-hood for what you just did a second ago, and responding to changing thermal conditions, etc.)  Your biggest issues here are with memory usage.  Using a single material for all rocks will optimize for that.  Use the 8k mat, and Blender will downscale at a distance automatically, that's what texture filtering is for.

Take everything I say with a grain of salt as there is no clear documentation on how Blender handles this all, but if I am not wrong: Blender does MIP Mapping, it should generate and use lower resolutions depending on the distance.
See: Mip Mapping - polycount
We don't have control over fading distances and whatnot, nor proper mipmapping support off .tx files: Tiled and MipMapped .tx textures support — Right-Click Select
Aside from that, Blender doesn't have an easy way to let you specify resolution variants of a texture. It's probably doable using python, but since nodes are shared across identical material, it would also mean to make new materials for each distance zone. Which would work only on static renders and also might not be the best time saver, especially in Eevee which needs to compile each shader too.

I did a quick test just rendering a plane with a 1k vs 8k texture and it took half a second longer with all setting just the same on a single frame. I'm assuming that would snowball if I didn't optimize a scene accordingly.

Yes and no. You load textures in memory, which takes some time, but then it's reused as-is for the whole frame at any place using the same texture, and even across frames if you enable Persistent Data.
But definitely be smart about which resolution you load. No need to load 8k textures if you only see that material from afar, even if some are closer than others.
And even for close objects, distance isn't the only factor in chosing texture resolujtion: are they in focus? Are they the center of attention? Do they move? Is a higher resolution even doing much? Try to consider any aspect that might make a justification - or lack there of - for more resolution.
And there isn't just resolution to save memory and render time. Channel packing and bit depth for example. Hence I highly recommend reading the following:

ChannelPacking - polycount
Texel Density & Texture Map Resolutions - Reference Sheet — polycount
Texturing - polycount

Thanks so much for your detailed response! I will definitely take some time to go over each of the points you made and research them further!


text:
I can't select bones in edit mode
Ok so, whenever I got select the armature first, and then the arm mesh, put it into weight paint and I try to click on the bone, the armature turns gray and the armature goes into object mode or any mode I was previously in. I turned off lock objects mode, I don't have paint mask or Vertex Selection on. Does anyone know why this is happening?

Sorry, this is a bit confusing. You "had the mesh and the armature in weightpaint mode"... first of all, an armature cannot be in Weight Paint mode, only a mesh object. And you "had" them, but now you are in Edit Mode or what exactly? Which object is in Edit Mode, the mesh or the armature? You cannot edit both at the same time, you can only edit multiple objects if they are of the same type, like two mesh objects, two curve objects or two armature objects. But not a mesh and a curve or a mesh and an armature or not a curve and armature either.

I'm bad at explaining thing, i'm new to blender (I think i had the armature in edit mode)

I repeat what I wrote under your second question: in the screenshot your mesh object is not even parented to the armature. Without parenting this will not work. I strongly recommend you watch tutorials on rigging because, no offense, but it seems you do not reallly know how this works and what you are doing.

The reason you can't select any bones is because 2 objects are selected, but the one that is active is not your armature. To fix this, you need to select your armature after selecting the mesh so that it is active.
P.S. The active object has a yellow outline and the selected objects have an orange outline.

Are you sure you want to select the bone in Edit Mode? Or do you want to be able to select a bone and then paint the weight associated with this bone?
To do this the armature needs to be in Pose Mode, not Edit Mode and the mesh object in Weight Paint mode.
You can achieve this the following way:

Switch to Object Mode and then first select the armature and then Shift+left-click to select the mesh object next. Now the armature should have an orange outline and the mesh a yellow (well, brighter orange) outline.

Now switch to Weight Paint mode. This will switch the mesh object into Weight Paint mode while the armature will automatically switch to Pose Mode (not shown in the mode selection field).

With holding Alt while left-clicking on the bone you can select it and the mesh will show the weights assigned to this bone. This way you can Alt+click select bones and then change their weights with painting.

file:///C:/Users/olivi/OneDrive/Pictures/Screenshots/Screenshot%20(5).png I followed it and this is what I got, it's the same thing that's been happening and I don't know why. I turned off lock object mode and I turned off Paint mask and vertex selection. Why does the armature keep turning orange! ☹

@Oliviagamble That's a link to a local file on your computer. I cannot look into your computer. Please edit your question and upload the image there. Stupid question: have you correctly parented your mesh to the armature? Does the mesh object has an Armature modifier with the correct armature chosen in the Object field?

The stupid question was the whole reason why weight paint wasn't working properly, this whole time I haven't parented my thing properly. Thank your for the help!


text:
.dae file imported without armature
I tried to import a video-game model (.dae) but it was imported without the bones. The armature modifier is there but the bones are gone.
In Maya it got imported correctly but I am only using the free trial-version so it's not a solution to use Maya...

Ok guys, I figuredit out by myself.
The armature is missing because the Default bone view is set to octraheder.
But this one only Supports wires as bones.
So to get your lovely bones you just select 'Armature' in the outliner
and then you go to armature Settings in the properties.
Now you Change the Display Settings from Octraheder to wire.

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


text:
Rotate the model when the axes in the edit mode are different from the object mode
I have downloaded this model from sketchfab
https://sketchfab.com/3d-models/animated-rat-bone-rigged-l-poly-free-afeeccb10aa8457e9008558e841eda1e
I then imported the model in blender. I tried to rotate the model in object mode around the z axes with 90. It appears to be rotated in object mode. But when I switch to edit mode, it has a different orientation. I try to export the model in .egg file format but the orientation is wrong. Why are the axes in edit and object mode different and how can I achieve the desired orientation.
This is the object mode

This is the edit mode

hard to understand what's happening, in what way the axes are different? could you please show some screenshots?

I added photos to clarify. What I mean is that the orientation of model with respect to axes is diiferent in both modes

In the second image, I can see that you are in edit mode for the armature. That would indicate that the armature is rotating the model.

So how can I make the object and edit mode similar. I didn't create the model, so I don't know why they are different in the first place. Sorry if the question is silly, but I'm a blender noob.


text:
Animating Z-transparency in the game engine for multiple objects sharing the same material
I have a single material shared between multiple instances of a reference object that is spawned in from a secondary layer. I'm trying to animate the Z-transparency of the sared material but i don't want the animation to effect all the object sharing that material.
How can i animate each object's material separately?
Thanks

Have you tried animating the alpha within each of their object colors? In the objects properties panel, each one has an object color. I suggest animating the alpha channel of that.

You can play a material action on each of the objects. The actions play independent from each other even when you use the same mesh and/or material.
You can indeed animate the object color too.

Since the objects are actually copies of the same object spawned in from a second layer to edit the object color was the right choice.


text:
How to change View3DOverlay.show_stats?
Documentation: View3DOverlay.show_stats.
The UI shows the following:

However when I run bpy.data.screens['Layout'].overlay.show_stats, there is an error: AttributeError: 'Screen' object has no attribute 'overlay.

Trying to change bpy.data.screens['Layout'].overlay.grid_scale = 0.001 and hit the same issue.

Look at the type.
Sometimes the tooltips can be screwy as shown in question the overlay is not a property of screen.
On the bpy.types.View3DOverlay help page linked go to the bottom to references.
WIll see a link to SpaceView3D.overlay
which is the space assigned to the 3d view.
In the python console
>>> for i, a in enumerate(C.screen.areas):
...     i, a.type
...
(0, 'PROPERTIES')
(1, 'CONSOLE')
(2, 'OUTLINER')
(3, 'VIEW_3D')

>>>
>>> space = C.screen.areas[3].spaces.active
>>> space.overlay.show_stats
True

>>> type(space)
<class 'bpy.types.SpaceView3D'>

>>> type(space.overlay)
<class 'bpy.types.View3DOverlay'>

If a script is run within the context of the 3Dview area, a panel draw, menu shortcut etc, then
space = context.space_data

The blender screen is split into areas. When you change the area type in UI, the active space used is associated with that type.  When you see the type SpaceFoo you know its the space of the "Foo" area.  eg "SpaceProperties", "SpaceConsole"


text:
Minimizing number of vertices in models for usage in games
relatively new to blender and modeling in general. So for starters I have been trying to create a few building/store models to import to unity to use. In blender my models show about 2k tries and verts. When I import they are well over 30k!! Now, me being new I am sure there is something I am doing incorrectly. I have tried different methods of uv unwrapping as lately tried creating all my store exterior as a normals map but all I get is a flat image of the shapes. These models are for mobile platform and I have read for those that 30k is about max per camera view so these models are useless as of now. It is a small town scene. These buildings need an interior and exterior. So my question is.. is it possible to make a high poly version and bake textures, normals and light maps onto a low poly cube or similar to get my detailed exterior? If not, what is some methods I can approach to hit around 1k verts and tris when imported? My models are simply designed by extruded planes to create the walls - subdivided and extruded/ inset to make windows and doors. Windows remain solid but I do cut sections for walk in doors. I use remove doubles, limited desolve and decimate modifiers but still the same. I'm stumped. I see mobile games like order and chaos for example, have massive towns that appear to be tons of verticies. I'm a hobbiest who does this in spare time as I am a truck driver and don't have hours on end for extensive tutorial watching. Thanks for reading! I will try to upload some images later of a model to show my failed attempts. Any constructive advice and tips greatly appreciated :)
Update:
Note: some is triangulated but even when I remove them it still imports to unity with over 30k verts and 8k tris
Attached a simple version with texture and a version of wireframe.

Have you tried removing doubles in edit mode? That might reduce it some.

You might consider to learn no retopology (to lower your polycount). Afterwards, you bake your colour map, normal map, displacement map, etc from your high poly models to your low poly models. If you apply the kind of maps/textures to your low poly models, they will look high poly. See these 2 videos, so you understand better what i'm saying:https://www.youtube.com/watch?v=rzXNZkEoTAk and https://www.youtube.com/watch?v=W07H7xeUnGE and on baking:https://www.youtube.com/watch?v=sB09T--_ZvU

After you IV unwrap both the high and low poly versions of your building, you need to bake the normals, ambient occlusions, and displacements from high poly to low poly textures. I've only dabbled a bit with this. I'd recommend checking out a small part of one of Darrin Lille's YouTube tutorials for how to do this. Look for the character modeling teen goblin series. Just after he retopologizes the character he starts baking out normals from his high poly to low poly meshes... look there.

Here's the video I mentioned... https://youtu.be/wN7I24t8Oec be sure to add the baked textures to the materials for the low poly models.

Yes I have been removing doubles in edit mode. Have not added any sun surface modifiers. I will look at those videos and try learning retopology. Thanks so much for the fast replies. I'll work on this later and see how it turns out. Thanks again!

If Blender shows you 2k tris for object and after importing into engine you get 30k for that same object retopology won't help you much, it's something happening while exporting - either hidden mesh revealing or something else. Make sure that there aren't any hidden objects, that all 3d layers are visible etc. Or export only selected object and look up if it's the same as in Blender.

I checked the export and there are no hidden meshes or objects that I could find. I am going to take screenshots of the mesh and object now and see if you guys can spot anything I am missing as a rookie :P

Did you export only the low poly model? If you export both objects, you will still have the high poly count.

This  model here is just one model that I did before getting the idea of low poly/ high poly and it is only one modeled mesh. With this particular one you can see the vert and tri count but is wayyy higher in unity in the 30ks when I remove shadows, etc. So this image shown is ONE model and ONE mesh in scene. No normal mapping or anything just a straight forward model.

Well, this seems to be more question to game engine as it deals with real time rendering. E.g. for Unity - https://forum.unity3d.com/threads/unity-multiplying-my-poly-count.50576 and http://answers.unity3d.com/questions/8969/why-is-there-such-a-huge-disparity-in-polycount-be.html, it will count vertex located on a seam as 2 vertices as it technically splits the mesh to flatten it on the texture. And this is only one example. Although - 2k and 30k imo is still too big difference.

You can, of course, have as many disconnected meshes in an object as you like, but If you have a high poly model, it has to be a separate object than the low poly object, or you can't export one without the other. Also I think you need two distinct objects to bake texture maps from one to the other. (I also noticed a typo I made above "IV unwrap" should be "UV unwrap")


text:
How do you change the colors of 2 objects with nodes?
when I press an object and go to the nodes and get finished with the color and I want to go to an other object and change the color from the nodes but it won't work it only stays for the first object?

Can you upload some photos of node setups, etc. and possibly a .blend file as well? Otherwise your problem is too broad to be answered specifically. We need details so that we may provide the most effective solution as possible.

Maybe related - http://blender.stackexchange.com/questions/35315/how-can-i-make-two-duplicated-objects-materials-independently-editable

how do you get it to where each object will have its own pair of compositing nodes? because as you can see in the pics i choose different objects and the compositing node stays the same for that one object, meaning that can you have only one compositing node over all?

I believe that you may be just misunderstanding the use of Nodes. You are in the Compositor section, which is a post process based on the last render, (not so much your selected object(s)). If you were to take the same approach with the Materials Section of the Node Editor (its the target looking icon just left of the Use Nodes checkbox, that will begin to react according to your selection of objects in the 3D scene, just not in post production.

To see the changes you make in the materials section, you will need to change your display type in the 3D editor to something like Rendered / Material / Texture - NOT Solid or wireframe.

Since the OP said that this is what helped, then the answer to this question is to use material nodes, not the compositor nodes for the purpose of changing material properties with context sensitivity being per selection in the 3D viewport.
Albeit, the compositor nodes can definitely be used to change visual properties of everything (with a high degree of power and with a great myriad of approaches), in this case I believe that my prior statement is the answer for this question.
For whatever the reason may be (newness to the software, lack of experience in node editing, etc...), I imagine it to be true that this particular question would be very hard for a user at a beginning level of understanding to articulate.  This being said, I hope that this helps somebody else who may be searching for the same/similar solution in the future gain good information; even though it may be hard for them to describe.


text:
Problem with bridge edge loops (total blender n00b)

So this happens when I try to bridge the edge loops of these two objects. Can someone explain to me why it happens and how I can make the bridge go "straight"? I have the mirror modifier on. Please explain in a very simple way I am completely new to modeling!

Firstly apply the mirror modifier. Second go into edit mode, select all faces and press CTRL+N to recalculate the normals. After these steps the bridge edge loops should work just fine.

can you share your file so that other can see whats the problem is upload your file here http://blend-exchange.giantcowfilms.com/

Every once in while, even with applied scales,  good normals, etc..  bridge edge loops gets confused. In those cases deselect a vert on one loop, and then deselect the corresponding vert on the other and bridge them. Then fill the 2 blank faces manually using f.


text:
Fixing my model's elbow bending inward
So, I am using rigify for my humanoid model and I notice that when I move my arm by the hand, the elbow will generally bend in towards the torso, instead of out.
So it looks like this:

But I'd expect it to look like this:

Right now I have to manually adjust the arm to look correct, but I imagine that won't work out if I need to have the hand move via code, rather than a fixed animation. Below are some images of the metarig as it is lined up with the model:

I'm quite new to Blender and have made quite a few animations already. How can I fix the way the elbow bends with rigify, and will I need to completely re-do all the animations if I fix the bend?
edit of "Toggle Pole" turned on

Since your rig appears to have a complete set of bones and IK, does it also have "pole targets"?  Pole Targets are often used in conjunction with IK bones, for example using the Elbow PT so that the arm does not look contorted.  https://blender.stackexchange.com/questions/19754/how-to-set-calculate-pole-angle-of-ik-constraint-so-the-chain-does-not-move/19755  and https://docs.blender.org/manual/en/latest/animation/constraints/tracking/ik_solver.html

@james_t thanks a lot! turned on the toggle and that is looking a lot better. I never knew that existed. I'm importing a lot of this to unity, so I'm wondering what dictates how much of this is active in there. (also, If you want to write your answer as a full post I'll mark it as answering the question)

I'm learning also.  As you'll see for every answer I supply I have a question to ask!  https://blender.stackexchange.com/questions/235168/why-are-rigifys-ik-pole-targets-hidden-in-pose-mode

To add to @James_t answer, there's a good video from Blender about arm rigging including pole targets here.

That video is a nice explanation of IK and pole targets, thank you. It makes a lot more sense now.

Since your rig appears to have a complete set of bones and IK, does it also have "pole targets"? Pole Targets are often used in conjunction with IK bones, for example using the Elbow PT so that the arm does not look contorted.
refs:
set pole
IK Solver in ref manual


text:
My Model's Forearm Twists Too Much
So, my first model is rigged using rigify, so I am not an expert and have been coming here for answers to a few questions regarding some problems the model has and the best way to deal with them.
my latest issue is my models forearms:

They are find in the T-Pose and most other poses. But if I use them with the hand IK, rotating the hand so it is palm up, instead of down:

...not ideal. How do most models deal with this? Do I need to alter the bones, or does my model need to be more complex? Is there something rigify would have done about this that I configured incorrectly?
EDIT: Here is an image of the bone rotations:

EDIT2: More loop cuts result:

EDIT3: Twisting more of the arm:

EDIT4: Changed the model for 90 degree twists:

EDIT5:
So, I have merged the duplicate verts on my model and removed the larger faces on me knees. I have added more cuts to my arm, and it looks.. ok?

EDIT6: reference image for bevelling

This should not happen. Rigify's generated rig has so-called twist bones, that's 2 bones for the upper arm and 2 for the forearm. Check the deform bones (DEF-....) on layer 30. IIRC there is an option that controls the number of twist bones but right now I don't know where it is.

Have a look here and compare it to your rig: https://blender.stackexchange.com/q/216326/107598

Hi. You appear to be referring to the blue sphere's as they are the "tweak bones". Two in the upper arm, two in the lower. How are they supposed to act? If I forget the hand IK and rotate these bones manually, I just end up moving the deformation up the arm and into the torso.

No, I was referencing the deformation bones. They are green colored, on layer 30  (Pose mode). But since the arm of your rig has 4 blue spheres, that's correct & it is not the reason for your problem. The forearm has 2 bones and only the lower one should rotate with the hand: https://i.sstatic.net/do6el.gif
If you like you can upload your file to https://pasteall.org/blend/ After the upload, copy the new web address (URL) here so we can access the file.

I edited my post with the hand twist to show the current bone rotation. I imagine enough twisting would cause it to deform eventually, but I'd prefer to be able to have a full palm down and palm up at least.
https://pasteall.org/blend/6b30bb7f40e0401f873eaaa2bcaa4eeb
Here is a link to the .blend file (and thank you for taking the time!). I think the issue is just that my model isn't robust enough, but I tried adding more cuts to the forearms and it still deformed with all the extra vertices to work with.

First, your model has duplicated vertices. Remove them with a Merge By Distance (M) in Edit mode.
Furthermore, the knees have overlapping faces. You need to remove the larger ones:

To fix the twisting, you need more loops along the forearm and legs, otherwise there's no way the geometry can 'smooth' the twisting from wrist to elbow. With more loops you can have 100% effect of the twist bone in the wrist vertices and 0% in the elbow vertices and a gradual progression in between.
Don't forget to adjust the weights after you fixed the mesh. Parent the mesh to the rig again With Automatic Weights.
Example with extra loops for the forearm, upper arm, and 2 more for the elbow:

The hand is rotated by 180° compared to the shoulder:

Example animation with the extended arm (about 270° rotation). The upper arm rotates also a little, especially when the thumb points to the floor:

Same movement but with bent arm:

Remember, for a natural range of motion the wrist can only twist about 90 degrees in each direction from the 'resting' position, that's 180 degrees total range. So any rotation bigger than that has to be complemented with upper arm rotation. If you just twist the wrist 180 degrees in one direction without also rotating the upper arm the pose will look unnatural, because it would actually be unnatural.

Also good to know: the forearm is comprised of two separate bones, the Ulna and the Radius:

The wrist rotation is one of these bones rotating around the other at the wrist, but not at the elbow:

If they were to rotate more than 90 degrees to one side, they would have to bend to wrap around each other. Since bones are not that flexible, they would break.

Added an edit2 to the main image showing the result of this. I think you are right, but my hasty test looks like a twizzler and I have no idea how I'd need to edit the model to make it look natural

Well that's because you are twisting the wrist 180 degrees to one side, it doesn't look natural because that movement range is not natural in humans. If you make sure your upper arm and elbow are perfectly still and only twist the wrist, you will notice it only has a range of about 90 degrees to each direction. So from the T pose, it should only rotate in one direction until the palm is facing forward and in the other direction until the palm is facing backwards (actually a little less cause the range is smaller in this direction).

If you stand in a T pose and try to rotate your hand so your palm faces up, you'll see your whole arm up to your sholder will also rotate, cause you can't make your palm face up by only twsting your wrist.

Added Edit3 of my twisting more of the arm to accommodate for the movement with the twist moving into the upper arm and shoulder. I noticed I could perform this movement with my upper arm near the shoulder hardly moving at all. I attempted to just rotate the first 3 tweak bones in the arm to mimic this.  But I just ended with the twist in the upper arm. So I'm still at the point where I can perform a real action that causes a distortion in the model. I don't expect it to be perfect, but it hurts the most basic motions.

As an example, hold your hand up to the right of your head as if you're holding a hammer, about to swing down on a nail. If you then unfold your arm into a T-Pose, your hand is palm-up. So my current model can't hold a hammer without either the forearm twisting from the default kinematics or my upper arm and shoulder twisting from manual edits. I know this is an issue with my model, but I'm not sure how to fix it.

Also, added an edit4 for a "palm-forward" model. It'd accommodate holding a hammer, but I am assuming it would have other limitations, or every T-Pose would do this?

The T-pose is fine. The limbs of your model just need more edge loops as suggested by Alexandre. I've added an example animation. It's just the hand IK and upper arm IK that are keyframed. For a better deformation at the elbows and knees, you can give them extra loops as you did for the knees and change the topology a bit. Have a look here https://youtu.be/jByzklhVwH8 and here https://youtu.be/UvjRA0gqhWo

@user1539405 the T-pose is not the problem, the problem is that in your exemple you twisted the wrist more than 90 to one side. To TOTAL range of motion of wrist rotation should be 180, 90 degrees to each side from the resting position.

The resting position is one in which the wrist is aligned with the elbow.
For exemple, if you stand in a T-Pose and rotate your hand so the palm faces straight up you will notice your elbow is pointing down. You can then twist your wrist so your palm is (almost) facing straight down without rotating the elbow, but if you try to keep rotating in that direction your elbow will also rotate.

@AlexandreMarcati Thanks a lot for the update! I'll have a go at making the changes tomorrow. Is there any way to integrate the range of motion for rotation into the IK of the hand? It'd be nice to have the example animation you have be possible as the IK matches the rotation of a held object, for example.

@AlexandreMarcati So, I added an "EDIT5" in the original post with the changes. Compared to the edits you made to the model it still looks worse, so I'm wondering if that's down to additional modifiers for your own convenience? Aside from that it'd be great to know if there's a good way to set up the elbow target IK to work with hand rotation

You could use drivers to automate the bone rotations (https://youtu.be/_T9RURzspP4). But I have no idea if this is a good idea for a Rigify rig. I know you can customize Rigify but you should know what you're doing else things can break. For the question about "the IK matches the rotation of a held object" I suggest posting another separate question.

(Addendum in addtion to the Alexandre Marcati's answer)
Your "Edit5" looks good. Keep in mind that your model is really low poly. It has only 484 vertices and faces.
When the palm of the hand points up the faces of the edge loop must rotate by about 90° around the X-axis at the elbow and roughly another 80° to reach the armpit. That's about 170° over the full length of the arm. And there are only 3 faces in the forearm and another 3 in the upper arm to do the job:

Please note, in the animated GIFs in Alexandre Marcati's answer which I've added the model has Shade Smooth enabled. In your screenshots the model is Shaded Flat and the Cavity shading option is enabled which highlights the edges even more. The screenshot above is closer to yours because it has only a different matcap and is flat shaded.
If you don't want to have your model so "blocky" add a Corrective Smooth and a Subdivision Surface modifier (+ Shade Smooth)

One last note: The rig in your provided blend file is bugged! The Rigify layer buttons for the right arm are missing. I've recreated it with the script in the linked question: Rigify->Generate Rig doesn't create all rig layers in the properties ui
Here the blend file with the animation as shown in the GIFs: https://pasteall.org/blend/c9c3e90e67f14b1cb9b3d069cd292734 The left knee has a different topology to improve the bending.
To see the IK pole target of the elbow have a look here: why are rigify's IK pole targets Hidden in pose mode

Thanks for the additional notes, I really appreciate them. I am certainly not great with modelling and animating and am just getting properly into it, so I really appreciate how helpful people are being with these issues. I've downloaded the fixed model and had a look at the knee and I can see why that would work a lot better, though I'll have to fiddle around with how to do it (learning process!).

I'm not quite sure what you mean by bugged though. In the Rig Layers of the item panel on my original model I have Arm.R for the IK, FK and Tweak bones. Perhaps my upload was corrupted in some way? Or am I looking at the wrong area? Also, thank you for the smoothing tip. I like the idea of blocky, but it may not work. Although, if there an easy way to cut an edge into a new face? e.g. two faces meet at a corner, and you "cut" the corner, forming 3 faces, the two original, and the third which joins them instead of a corner (I'm explaining this badly..).

Added an Edit6 as an example image in the original post. The word I was looking for was Bevelling xD. And don't feel like you need to answer all this. I already consider everyone here to have given more than enough of their time. These are very much "if you feel you have time" questions

You're welcome. For topology have a look here and here. -- Strange, the Rig Layers in my Blender looked like those in the linked question. The buttons "Arm.R (FK)" and "Arm.R (Tweak)" are missing. I don't why this now and then happens. --
BSE is a question and answer site, it's not like a common forum. One "thread" has ideally one question and one or more answers. Feel free to post another question about the bevel (or have a look at the Bevel modifier & set the mode to percentage. ;-)


text:
Need a efficient workflow for creating shoulder topology for a humanoid to be animated
I am trying to create a character model to be used in animation.
The issue is I need a efficient method/workflow to create a shoulder with the topology in the below picture (Circled in Blue).
Update
But in a T Pose
Its just really tricky trying to make this shoulder in this way

Now here is a another angle of my humanoid model to you lot help out.

What do you mean by "efficient workflow"? --- You can replicate the model in A-pose, add an armature and change the rest pose to T-pose, can't you?

efficient workflow definition " a smooth and effective process that allows 3D Artists to complete tasks quickly and with minimal errors or delays"


text:
How do I create a realistic waterfall using Flip Fluids?
I'm trying to create a waterfall like this example from adobe stock. Specifically I'm struggling to get turbulent water and white water mist.
Out of the box, blender fluid simulations seem to stream together like water from a faucet. Turning on white water will make foam and spray when it collides with objects, but I can't get this kind of rough water falling.
I've tried using various shapes for the emitter, cranking up the resolution to absurd settings, using turbulence fields, even using external plug-ins like flip fluids.
Any artistic advice or direction would be appreciated.

You’re less likely to get help with an external paid add-on on this site, but even with hope that you might, you didn’t give very much info about what you were trying, or what documentation sources you were using, other than the Flip Fluids commercial. Look at the add-on documentation or a real tutorial, and try from that. Then if you’re stuck, ask for help here.

Good point. My question isn't about the plug-in specifically, and I've edited the question to reflect that. I don't have a technical question (I've worked with fluids before, read the documentation, watched the tutorials, etc.), so there's no documentation to point to. I'm just looking for advice on how to get that aesthetic.

That’s still about the addon, as you’re asking how to make it simulate fluids in a certain way. While the question is more clear than it was before, you’re far more likely to get what you need by looking up tutorials on how to make such waterfalls with the addon (or without).

I might suggest faking it with smoke to some degree, as those waterfalls almost look like vapor.

As @TheLabCat has suggested, this may look like 'a' waterfall, but for practical purposes will almost inevitably wind up being a combination of overlaid effects. So this post inadvertently conceals multiple questions, and is vulnerable to being voted 'too broad'. I really would suggest breaking it up. If you made some progress with, say, the water and its material, got stuck, and asked us for ideas about that, it would fit BSE's format a lot better... Then move on to other refinements?

You'll have a lot better luck using the particle simulator instead of a fluid solver in my opinion, since waterfall is mostly water droplets. Set the particle Physics type to fluid and crank up the particle count, lower the Interaction Radius accordingly so the fluid sticks together somewhat without blowing up.

Thank you! That's a great suggestion. I'll experiment with it.

I ended up examining the Waterfall_1a example file that comes with the flip fluid plugin and was able to get the result that I was looking for.
https://www.youtube.com/watch?v=rVGBAyog3Uo


text:
Instance objects on a curve with random scales and no gaps between instances using geometry node
I instance spheres with random scales along a curve line and I use an accumulate field to remove any gaps between these spheres. What I want is to change the curve line to a Bézier Curve, so when I change the shape of the curve in edit mode, the gaps between the instances (spheres) don't change.


text:
How do I animate an arm equipping a weapon without animating the whole skeleton?
I want to make a character be able to equip a weapon while standing and moving. How do I just animate the arm while the rest of the skeleton is in a running animation? How do I set this up correctly?
Also is there a name for this? I'd like to look up tutorials.

Search for Layered Animation, the NLA editor, baking animation.

Ah thanks for the name :)


text:
Text Blender error
The letter Q gets inverted when I write with blender. I think I'm doing the right thing. First create text.
Puts gemoetry on the text.
Conventions text to mesh.
Clicks on the object the text should be on and selects the modifier Boolean.
All text will be correct without the letter Q.
Tested rewrite, import export object.

It's hard to tell what's causing this, maybe the normals are facing the wrong way. Please share a .blend file or provide more details.

It Is probably just boolean error ... It Is too complicated for such operation ... It Is more Common to use a normal or bump texture for such effect ... Or microdisplacement for really detailed shoot.

I would also check if normals are facing the wrong way as @KISKAart suggested. It looks like you are using the default Blender font, I wrote the same text down, converted it into a mesh and it works correctly. Have to set the modifier's Solver to Fast or Exact? Is the issue in both settings? Not only check the normals of your text but also the object with the Boolean modifier on. If that does not help, please upload your file at https://blend-exchange.com and follow the instructions there to edit the file into your question.

Another issue could be that after converting the text to a mesh object, the top and bottom faces are not merged with the side faces, i.e. you have open meshes there. This can cause problems with the Boolean modifier as well. Select all the text in Edit Mode and do M > Merge > By Distance.

Oh, and just a tip... I do not know how the geometry of your object looks like where you want to engrave your text into, but if it is just a simple plain big face, the resulting geometry might be very messy and chaotic. To get a slightly better result and maybe even make the Boolean modifier work better, it is sometimes helpful to pre-cut the face with supporting edges, in this example I made 13 cuts, one for each line of text: plain face vs. pre-cut faces

Uploaded the file. Had to cut down on the resolution to be able to post it..

The Normals look okej

(Using Blender 3.6.8)
It seems that there are some issues with the cut mesh at the part shown in red in the following picture, at the bottom of the letter Q:

It requires to activate Solver Options / Hole Tolerant in the Boolean modifier.
Next pictures are a zoom "inside" the mesh of letter Q showing an extra face protruding the wrong side:

The issue is coming from the curve of letter Q and it can not be solved before it is converted to a mesh. The mesh of letter Q can be edited to merge the two nodes (2 at the bottom and 2 at the top of each Q letter) as follows to remove the wrong face:

The Hole Tolerant option is not required after this modification.

Yay, it work. Have try to fix it for 4 hours. Thanks :D


text:
What is the Alpha Convert node used for?
What is the Alpha Convert node used for? I've never seen any tutorials on it. Also, if there are several good uses for it, examples would be great!

It's used for manually converting between Straight and Premultiplied alpha.
This is sometimes needed when using external images in compositing, among other uses.
See the wiki:

Straight Alpha
This is the alpha type used by paint programs such as Photoshop or
Gimp, and used in common file formats like PNG, BMP or Targa. So,
image textures or output for the web are usually straight alpha. RGBA
color are stored as (R, G, B, A) channels, with the RGB channels
unaffected by the alpha channels.
Premultiplied Alpha
Rendering will output premultiplied alpha images, and the OpenEXR file
format uses this alpha type. So, intermediate files for rendering and
compositing are often stored as premultiplied alpha. Compared to
straight alpha, the colors could be considered to be stored as (R*A,
G*A, B*A, A), with the alpha multiplied into the RGB channel.
This is the natural output of render engines, with the RGB channels
representing the amount of light that comes toward the viewer, and
alpha representing how much of the light from the background is
blocked.
Conversion
Conversion between the two alpha types is not a simple operation and
can involve data loss, as both alpha types can represent data that the
other can not, though it is often subtle.
Straight alpha can be considered to be an RGB color image with a
separate alpha mask. In areas where this mask is fully transparent,
there can still be colors in the RGB channels. On conversion to
premultiplied alpha this mask is 'applied' and the colors in such
areas become black and are lost.
Premultiplied alpha on the other hand can represent renders that are
both emitting light and letting through light from the background. For
example a transparent fire render might be emitting light, but also
letting through all light from objects behind it. On converting to
straight alpha this effect is lost.

Ok, I think I understand, but when would you be most likely to use this?

Only ever use associated alpha. Unassociated alpha doesn’t work. To give an example, try rotoscoping a vibrant rainbow image. If you blur the image, the colours will bleed from beyond the alpha. Only with associated alpha does the proper thing happen; the values are blurred and no contamination takes place.


text:
How can I randomize a value for a node?
How can I randomize a numerical value for a node? Is there any one node, or combination of nodes that can achieve this effect?

Yup, Sambler mentioned that below. Did you ever get that answer to work?

Object Info Node's Random Output
I just discovered there is an Input node that can output a random value:
  Input -> Object Info
However, it only works for Material Shader nodes.
Here is the Blender wiki description of this node:

Object Info
  Information about the object instance. This can be useful
  to give some variation to a single material assigned to multiple
  instances, either manually controlled through the object index, based
  on the object location, or randomized for each instance. For example a
  Noise texture can give random colors or a Color ramp can give a range
  of colors to be randomly picked from.
Note that this node only works for material shading nodes; it does
  nothing for lamp and world shading nodes.
Location: Location of the object in world space.
Object: Index Object pass index, same as in the Object Index pass.transformed.
Material Index: Material pass index, same as in the Material Index pass.
Random: Random number unique to a single object instance.

That is only for shader nodes, right?

Yes, Greg, you're right.

Duplicate of this. My answer of using a driven value node is also available within composite nodes.

Sambler, thanks for the tip. That is exactly what I was looking for, but I have no experience coding. Do you have any suggestions on beginning tutorials for implementing your suggestion?

Sambler, can that technique be turned into a script to make a Random Value node? I know how to get a script for a node into Blender. That would be SO awesome!

Actually Sambler, I got it to work! Thanks! I just put #noise.random() in for the value...I hadn't realized you can do that.

Wait a second, I did NOT get it to work. When I add a Value node into a blank Compositor screen and set it's value to #noise.random(), after I click away, the value changes every time I move the node or move the mouse over the node. BUT, when I add the node to an existing node tree & enter #noise.random(), the value stays set to a fixed number and doesn't change, even though the field stays purple (indicating it's a calculated value I assume). Why doesn't it continue to be random when other nodes are present?


text:
Simulate sound waves (physics)?
Can Blender be used to simulate the transmission of sound waves through a medium (most likely air)? What kind of additional scripting, if any, would be needed to actually render the collisions as sound?
(Has anyone ever constructed a functional acoustic musical instrument using Blender?)

Do you mean something like this?

Or like this?

Or like this at time 0:35?

Yes, you can with particles. See this tutorial: https://www.youtube.com/watch?v=V-WS7v9obGc

No. Unfortunately this is not possible currently, and as far as I know there are no plans to add this in the near future.
However, in addition to baking to F-curves Blender does have speaker objects which provide some of the functionality (in a very limited form) I think you are looking for.

Update
This project, recently featured on blendernation, seems like it might be what you want.

EVERTims, http://evertims.github.io/#about and http://www.explauralisation.org are other Blender plug-ins for simulating room acoustics.

Can Blender be used to simulate the transmission of sound waves
  through a medium (most likely air)?

No, blender is designed to create images and animations (including soft and rigid body physics) which may include sounds, having that said blender copes with light not with audio.
The only support for audio (besides playback) I'm aware is to bake the amplitude (volume) of a distinct frequency range to an f-curve.
These f-curves could be used to animate an object in an animation like the vibrations of strings, or to visualize sounds like a spectrum analyzer does (scaling boxes).
Tutorial here
IMHO The best would be to play around with these possibities and evaluate the options provided and in case blender is still a candidate (for your project) too ask a more specific question.


text:
How to allow setting hotkey in add-on
Someone just asked here about adding a custom hotkey to an add-on that I made a some time ago. This add-on, for some reason, doesn't show any hotkey setup options when you right click on it like most operators show in Blender.
After doing some research, and looking through add-ons that I have made in the past, it appears that registering operators like...
bpy.utils.register_class(SomeClassName)

...doesn't allow the operator to have the hotkeys, but registering the entire module...
bpy.utils.register_module(__name__)

...does show the hotkey controls.
Is this intended behavior? Is there anything to do if you don't want to register the entire module like this?
Edit:
For the script that I linked to, simply registering the module instead of the operator class does not provide the user with the hotkey controls.
Here are some screenshots showing what I mean in case of any misunderstandings:

Could not find the evidences that using bpy.utils.register_module makes the Add Shortcut button appear. Does not work for 2.79 addons API Navigator or Cloud Generator with prefixes api_navigator. and cloud..

bpy.utils.register_module is defined in 2.79\scripts\modules\bpy\utils and does not seem to do anything with shortcuts.

An operator represents an action or task that can be performed in blender. A button is blender's GUI representation of an operator which allows the user to initiate the action, while a keyboard shortcut is a non-gui method of executing an operator. Keyboard shortcuts can be edited in the user preferences and each belongs to a group that (should) represent the context that it is available. For example, the loop cut operator can be found in the 3DView/Mesh group so is available when editing mesh objects.
When right clicking on a button, the "Change Shortcut" and "Remove Shortcut" menu items are available if the button's operator has a shortcut assigned to it. See interface_handler.c
The "Add Shortcut" menu item, represents blender having some idea of what group the shortcut should be added to. Blender "guesses" the group based on the operator's bl_idname property and the menu option is only available if a valid group can be guessed from the operator's name. See wm_keymap.c where you will find the available group names that can be used. The group names used there are the uppercase version of the first part of the bl_idname of the operator with the _OT part being optional. For example giving your operator bl_idname='screen.my_operator' will enable the add shortcut menu item which will add a shortcut that will be found under "Screen" group in the shortcut settings.

Hmm...Is it best practice to make the bl_idname addon_name.operator or category.operator or category.addon_name.operator? I have been using the first method to prevent duplicate operator names...

Actually, it seems that a bl_idname can't have more than 1 "." character...any advice on this?

@pycoder - cat.opname is the general design, so cat.myop becomes bpy.ops.cat.myop as addon numbers are rising, I think using addon_name.op_nameis a good idea, particularly for larger addons. If we define shortcuts for operators in each addon then the change shortcut will be available, regardless of operator name. I think consider the add shortcut of limited use - maybe even a builtin operator only feature - unless you can get a dev to change it, maybe add a category choice to the popup when setting the shortcut.

As unused keys are hard to find, the use of two-key shortcuts will probably start rising, maybe using one two-key combo to get a pie menu for every operator in an addon? If you are unfamiliar with two-key setup, try holding D like a modifier key and press Q. Select stroke editing and try again. Then settings....


text:
Importing to Unity, broken arm
I have a model in Blender, when I export it as an FBX (default options, with animations) he comes in fine, except for his upper arm on one side. Which looks broken.
All the animations work fine too, just.. around the arm. I'm wondering what may have caused this?
In blender the animations and movement work as expected, it's only when exported as an fbx that this appears. The images below show the model in blender compared to unity)

EDIT:
A little more detail on the issue. It does definitely seem to be the upper-arm bone. At a resting T-pose, it looks fine, but when rotated, it distorts. I just have no idea what the difference could be between the left and right arm. I figured it might be the weights, but even having the arms 100% controlled by the upper arm in terms if weights it distorts the same.

The image below has the upper arm rotated to -60 for both arms. The bone on the deformed arms seems to have somehow not rotated as much. Again, this only happens to the exported fbx model. The model in blender moves fine.

I solved my issue by deleting the right side of my mesh and bones and re-mirroring them. I did not find the root cause.


text:
bpy.ops.export_scene.fbx not working immediately after importing?
I have built the following script to import an OBJ file and then convert and export it as an FBX file:
import sys
import bpy

argv = sys.argv
argv = argv[argv.index("--") + 1:]

importPath = argv[0]
exportPath = argv[1]

bpy.ops.import_scene.obj(filepath=importPath,
                         axis_forward='-Z',
                         axis_up='Y',
                         filter_glob="*.obj;*.mtl",
                         use_edges=True,
                         use_smooth_groups=True,
                         use_split_objects=True,
                         use_split_groups=True,
                         use_groups_as_vgroups=False,
                         use_image_search=True,
                         split_mode='ON',
                         global_clamp_size=0.0)

bpy.ops.export_scene.fbx(filepath=exportPath,
                         check_existing=True,
                         axis_forward='-Z',
                         axis_up='Y',
                         filter_glob="*.fbx",
                         version='BIN7400',
                         ui_tab='MAIN',
                         use_selection=False,
                         global_scale=1.0,
                         apply_unit_scale=True,
                         bake_space_transform=False,
                         object_types={'ARMATURE', 'CAMERA', 'EMPTY', 'LAMP', 'MESH', 'OTHER'},
                         use_mesh_modifiers=True,
                         use_mesh_modifiers_render=True,
                         mesh_smooth_type='OFF',
                         use_mesh_edges=False,
                         use_tspace=False,
                         use_custom_props=False,
                         add_leaf_bones=True,
                         primary_bone_axis='Y',
                         secondary_bone_axis='X',
                         use_armature_deform_only=False,
                         armature_nodetype='NULL',
                         bake_anim=True,
                         bake_anim_use_all_bones=True,
                         bake_anim_use_nla_strips=True,
                         bake_anim_use_all_actions=True,
                         bake_anim_force_startend_keying=True,
                         bake_anim_step=1.0,
                         bake_anim_simplify_factor=1.0,
                         use_anim=True,
                         use_anim_action_all=True,
                         use_default_take=True,
                         use_anim_optimize=True,
                         anim_optimize_precision=6.0,
                         path_mode='AUTO',
                         embed_textures=False,
                         batch_mode='OFF',
                         use_batch_own_dir=True,
                         use_metadata=True)

How I execute the script:
blender --background --python C:\Path\To\Script\script.py -- "C:\Path\To\Import\import.obj" "C:\Path\To\Export\export.fbx"

The import works fine, but I get the error TypeError: Converting py args to operator properties: : keyword "use_mesh_modifiers_render" unrecognized when I attempt to export. The full stack trace:
Traceback (most recent call last):
  File "<string>", line 2, in <module>
  File "C:\Path\To\Script\script.py", line 13, in <module>
    bpy.ops.export_scene.fbx(filepath=exportPath, check_existing=True, axis_forward='-Z', axis_up='Y', filter_glob="*.fbx", version='BIN7400', ui_tab='MAIN', use_selection=False, global_scale=1.0, apply_unit_scale=True, bake_space_transform=False, object_types={'ARMATURE', 'CAMERA', 'EMPTY', 'LAMP', 'MESH', 'OTHER'}, use_mesh_modifiers=True, use_mesh_modifiers_render=True, mesh_smooth_type='OFF', use_mesh_edges=False, use_tspace=False, use_custom_props=False, add_leaf_bones=True, primary_bone_axis='Y', secondary_bone_axis='X', use_armature_deform_only=False, armature_nodetype='NULL', bake_anim=True, bake_anim_use_all_bones=True, bake_anim_use_nla_strips=True, bake_anim_use_all_actions=True, bake_anim_force_startend_keying=True, bake_anim_step=1.0, bake_anim_simplify_factor=1.0, use_anim=True, use_anim_action_all=True, use_default_take=True, use_anim_optimize=True, anim_optimize_precision=6.0, path_mode='AUTO', embed_textures=False, batch_mode='OFF', use_batch_own_dir=True, use_metadata=True)
  File "C:\Program Files\Blender Foundation\Blender\2.78\scripts\modules\bpy\ops.py", line 189, in __call__
    ret = op_call(self.idname_py(), None, kw)
TypeError: Converting py args to operator properties: : keyword "use_mesh_modifiers_render" unrecognized

I copied the import method from Import Scene Operators and the export method from Export Scene Operators. The doc version and my Blender version are the same.
It appears that it could be an issue with the docs because I removed use_mesh_modifiers_render=True and it worked just fine.
What is the issue here?

Try using
bpy.ops.export_scene.fbx(filepath=exportPath, use_selection=False)

because most of the arguments are default.


text:
How to remove "missing script files" warnings in add-on prefs?
Background
I have an issue periodically with my add-ons staying around somehow. This mostly happens on add-ons that I work on (occasionally when I keep reloading them), but also on others such as the pie menus add-on.
Problems

"missing script files" warning in user prefs
add-on path cannot be found so I can't see where to remove anything from...(i.e., I receive this warning when I try to run bpy.ops.wm.addon_remove(module='ui_pie_menus_official') from the python console window)
the modules stay around on some add-ons after I remove them

Question
How can I remove these modules so they will stop giving me these warnings?

You've probably script-cadavers in your Blender python enviroment (like me, unfortunately :() What can be done is find out the Name of the Addon-Scriptfiles, search for them in your Blender Python folders and delete them.

By blender python folders you mean in the Blender/2.78/scripts/addons/ folder?

(In Windows 7) there is an an additional Folder
"C:\Users...\Application Data\Blender Foundation\Blender\2.77\scripts\addons"
The Script Location is probably there.

I had the same problem in Blender 2.83.
I suggest that you load the Blender Add-on factory settings by going to the "Edit" menu, Select the "gear" icon to get to "Preferences..." and after that, click on the lower left corner button besides "Save Preferences*" (it shows 3 horizontal lines through it).
Then, by re-enabling the Add-ons one by one, you'll easily spot the culprit for the missing scripts.
Usually, an updated version might have been already published if you do a search for the defective Add-on.
In the case of the Blenderkit being the one giving you problems, go to this answer provided by SHA:
https://blenderartists.org/t/blender-2-8-blender-kit-addon-install-error/1173445/12?u=pierregagne98
Hope that helps!


text:
Add a custom curve mapping property for an add-on?
Question
The title says it all. I want to be able to make this in Blender's UI, and sample it at specific points from an add-on:

Problem
There is very insufficient documentation on this, and I can't find any examples for how to create a CurveMapping property. I have worked with templates before, and I know the correct template to use, but it requires a curve mapping prop.
Extra Info
I found a few threads about this, and one gives me the impression that this cannot be done at all, but it is also very old.
https://blenderartists.org/forum/showthread.php?313871-Who-knows-how-to-Create-a-Custom-CurveMap
https://blenderartists.org/forum/showthread.php?207562-B256-How-do-I-add-a-CurveMapPoint-to-CurveMap-points
This similar question has been asked here before, but it didn't even get a comment:
Does anyone have an example of template_curve_mapping?
Is this even possible to access in python (as in only accessible in C)?

I've been looking around the internet and it seems that it can't be done in python: "There is no property that could store an bpy.types.CurveMapping instance, so you can't use it with python, unless you hijack an existing curve mapping and show it elsewhere." from this thread

and "there's no bpy.props.* property for py scripters to create such a mapping type, nor does it work if you re-create the structure with bpy.props. It's really limited to the C-code." from the thread you linked. But as you said, these threads are pretty old.

That's what I'm afraid of. With 7 up votes, this question should have been looked over by just about everyone who might know :(

First off this solution is inspired by the Interpolation From Curve Mapping node in Animation nodes which offers more info on using the curve data.
The idea is that blender offers mapping curves in various places, one that we can dynamically add items to is node trees. By creating a node that uses curve mapping data we can then access that data using layout.template_curve_mapping in our custom panels. While Animation Nodes creates a helper material, my approach is to create a custom node group as it will only be visible in the Add->Group menu in the node editor which keeps it more out of the users view than a material.
While we can add nodes during a panels draw() we can't alter the name, so a solution to have more useful names is to keep a dictionary to map useful names to the less helpful 'RGB Curves.12', this should be stored within a custom property in the scene so that the mapping can be kept between restarts. Another approach would be to create a group with one node for each mapping that you want to use.
import bpy
def myNodeTree():
    if 'TestCurveData' not in bpy.data.node_groups:
        ng = bpy.data.node_groups.new('TestCurveData', 'ShaderNodeTree')
        ng.fake_user = True
    return bpy.data.node_groups['TestCurveData'].nodes

curve_node_mapping = {}
def myCurveData(curve_name):
    if curve_name not in curve_node_mapping:
        cn = myNodeTree().new('ShaderNodeRGBCurve')
        curve_node_mapping[curve_name] = cn.name
    return myNodeTree()[curve_node_mapping[curve_name]]

class CurvyPanel(bpy.types.Panel):
    bl_space_type = "VIEW_3D"
    bl_label = "Test Curve Mapping"
    bl_region_type = 'UI'

    def draw(self, context):
        self.layout.template_curve_mapping(myCurveData('TestOne'), "mapping")

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

In the parameters to template_curve_mapping, the first is the curve based node that we use for our curve data, the second is the property that it uses to store the CurveMapping structure.

Sambler mentioned a way to make a new curve by just accessing an RGB curve node. The other component to the question is about sampling the curve:
bpy.data.node_groups['TestCurveData'].nodes['RGB Curves'].mapping.curves[0]

Will be a CurveMap which has the evaluate method:
https://docs.blender.org/api/current/bpy.types.CurveMap.html#bpy.types.CurveMap
So to sample a curve where y = f(x) use:
ng = bpy.data.node_groups['TestCurveData']
c = ng.nodes['RGB Curves'].mapping.curves[0]
y = c.evaluate(x)

If you want to sample the C-curve then use index [3] not [0]!!!
JakeD used the red curve, while the standard curve which appears is the C-Curve [3].

@richard Good point to mention

I've created a Sverchok node that does Sambler trick.
https://github.com/spamrakuen/sverchok/blob/matllinknode/nodes/generators_extended/matl_link_sampler.py
Screenshot
https://raw.githubusercontent.com/spamrakuen/sverchok/rgbcurvesnode/improved20190406.png
Pull request thread on sverchok github
https://github.com/nortikin/sverchok/pull/2397
In order to work, a material that use nodes should be created, then just drop a RGB Curves node.
This Sverchok node will sample values from that curve(s)


text:
Non-destructive modeling approach to cropping images
Background
I am doing some 3D design work with photographs and will need to do some cropping in Blender as I work. For example, as I try out designs I may need to make an image vertically cropped or horizontally cropped like this:

My current workflow is to use the loop cut tool with correct uvs enabled to crop quickly, but this also seems to be destructive modeling.

I have tried to use the vertex slide tool, and it appears to work in some directions, but not all. If clamp is disabled, it seems to struggle with which edge to slide along.
Works here:

But not here:

Question
Is there any way to "undo" a crop easily like how the loop cut tool corrects the uvs automatically?

Import your "image as plane", in your material nodes (cycles) select the image and add a "texture coordinates" node, plug the "generated" input to the vector of you image.

Now edit your object (tab in 3D view), Change the selection mode to vertices+faces with Shift+LMB.

Note: The next part can be done instead with the following script.
import bpy
import bmesh

# select, duplicate, and delete face
bpy.ops.object.mode_set(mode='EDIT')
bpy.ops.mesh.select_all(action='SELECT')
bpy.ops.mesh.duplicate_move()
bpy.ops.mesh.delete(type='ONLY_FACE')
bpy.ops.object.mode_set(mode='OBJECT')

# select the face
mesh = bpy.context.object.data
bm = bmesh.new()
bm.from_mesh(mesh)
bm.faces.ensure_lookup_table()
bm.faces[0].select = True
bm.to_mesh(mesh)
bm.free()
bpy.ops.object.mode_set(mode='EDIT')

# select the verts in the corners
bpy.ops.mesh.select_all(action='INVERT')
bpy.ops.mesh.hide(unselected=False)

Select all with A then duplicate with Shift+D, hit X and select "only faces".
Now click in the middle of your object to select the face, Ctrl+I to invert the selection (select the vertices of the deleted face) and hit H to hide the remaining vertices. They will act as invisible bounds for your texture mapping, but you don't want to select them (or modify them), that's why we hide them.

Now you can do anything inside your object (add/remove/move/rotate/scale faces/edges/vertices) as long as you keep them inside the original bounds.
If you need to see the borders in edit mode, go in properties panel, object tab and check "texture space".

Work in material view to see it in real time.

Basically, the image as plane creates a plane mesh with the image's XY ratio and UV unwrap it, so UV=Generated coordinates inside the original mesh bounds.

Very cool idea, but I prefer the other answer with the edge slide method because it is simpler for my case. Nonetheless, your solution will work for more cases than the other answer (more than rectangular meshes) so I will accept it anyway.

Feed Pycoder with an answer, he'll give you a script :)

The edge slide tool can do this very easily without the limitation of the vertex slide tool. Just disable "clamp" and enable "correct uvs" to use it. Beware, of extending past image bounds, however, because it will not clamp it at the image bounds manually.

Furthermore, it would be easier to "crop" using this than the loop cut tool that you are using.

I've always thought it was the same tool, just select vertex or edge and double hit on G.

@Bithur Didn't know about the double G trick. Good to know, thanks.


text:
Raised ridges with shirt mesh
I'm in the game making industry and I have been working on a skin for a character.The raised sewing always happens for some reason and originally, I had found an answer to this problem in the physics tabm but i forgot where it where it was so i spent over 3-6 weeks looking for it. (also this is with welding on).

also for reference this is the tutorial I'm following.
https://www.youtube.com/watch?v=-f5RgG_Yywg

these are my modifiers if there is anything else you need pls let me know.
also here is blend file.

pls provide blend file because we have no idea what your settings are and how you geometry looks like.

will do gimme a sec

didn't let me but i can give you screen shots

just open https://blend-exchange.com/ and follow instructions

how long is it suposed to take?

never mind got it

if you hide your solidify modifier and turn on "face orientation" you will see that you have a face orientation problem:

if you fix that, it works.
so select these vertices:

use mesh normals > flip

result:

with a weld modifier in between you can get even smoother results:

Cool.... but aren't the ridges still there in the result?

@RobinBetts: i think a weld modifier can handle that ;)

sort of what I was guessing at.... below Cloth,above Solidify. but I haven't checked

ty i got it to mostly do it thanks

i did try to but it said that i wasn't a high enough level i'll try again


text:
wierd split sewing edges
so what i think i need to do to get this accomplished is flattening these edges.
but the ways every one says to do it is s + "what ever axis and it worked for a few of the sides but for the other ones i need something else so any ideas?
here is the blend file.

The reason is the order of modifiers on the stack. Try this order: mirror, cloth, weld, solidify, subdivision. Then run the cloth simulation. For better performance you can turn off the last 3 modifier while the simulation runs.

@Blunder You should add that as an answer. I'm not familiar enough with clothing to know which order the modifiers should be added. I just concentrated on modelling errors! Having just tried it, the seams are indeed fixed but the cloth still needs centring relative to the model otherwise it looks like an attempt at an 'off-the-shoulder design! :^)

it worked thanks now i've got to apologise to my poor fps lol

You have three problems, two being with your underlying model rather than the shirt!
Select the model and in Edit mode, change to Local view with the /(forward-slash) key. Then turn off the Mirror and Subdiv modifiers by clicking the arrowed monitor icons and go into Face mode. You'll see that you have internal faces on your model which I've selected. Hit X > Faces to delete them.

Now turn the modifiers back on, select All and hit M > MergebyDistance.

You'll briefly see a message saying "Removed 8 vertice(s)" on the bottom status bar and the seam where the shoulder meets the rest of the body will have disappeared.
If you now come back out of Local view with the / key and run the animation the shirt should fit pretty well.
There's still a slight problem on one shoulder, but I think that's because the shirt isn't aligned on the centre line with the model. - It's slightly off-centre to the right in front view and it looks as if the front and rear faces aren't in line hence the seams down the side, but I'll have to leave that one for you to sort out. - I'm going to bed!

UPDATE:
I've now added the reordered modifiers suggested by Blunder in his comment above and that does indeed fix the problem and it's not necessary to centre the cloth object, but you should still sort out the internal faces and merge the vertices on the Cube object for best results.
You can hold the mouse down on the area of the modifier arrowed below and drag it up or down to reorder it in the list.

@GordonBrinkmann Both keys work here under Windows! (Bottom-right on the keyboard next to the right-shift key.) Never heard of the Shift + 7 one! - That's ampersand on a UK keyboard.

Oh damn, I was mixing up my German QWERTZ keyboard layout with the US/international QWERTY layout :D

You have to think internationally on this forum! :^)

I usually do, guess why I said Numpad / - you know, on my keyboard there is no / on the numpad, there is a ÷  instead ;)

Lots of folks use a laptop without a numpad which is why I just said the forward-slash key in my answer...

Yes, I got that now no need to explain yourself :D  The laptop reason was why I thought about making sure not to use the one I have here on my keyboard with Shift+7, because without the numpad, this will not work here and since I do not use a laptop, I do not know if for QWERTZ users with numpad emulation there is a key which they can use. (So maybe still interesting for people who use a QWERTZ keyboard, I know for a fact there are quite a few here.)

thank you guys so much ive spent months on this model.

Thanks. Please mark my answer above as correct. (Green arrow when marked).


text:
Displaying Custom Icons in Blender's File Browser
I'm looking for a way to either use the system file explorer for importing and exporting in Blender or display custom icons in Blender's file browser.
I've tried using Python scripts to call system commands like os.startfile() and subprocess.Popen(['explorer', filepath]), but unfortunately, I haven't been successful in getting them to work.
What is the best practice for opening the system file explorer or displaying custom icons in Blender's file browser?
Is there a specific method or API that I should be using for this purpose?
Written by ChatGPT

I have one script that uses os.startfile() successfully. Are you trying to call it from a script by itself or is the os.startfile call wrapped in a Blender operator? I would try putting it into an operator and see if that works. Blender might have some kind of built-in security function that prevents it from calling raw Python scripts that interact with the operating system, but I'm not positive this is the case.

https://chatgpt.com/share/85dd7ca9-3bb1-4cf6-bf26-b64b02af4205

"According to GPT, is this the only way to do it?"

"This is because it requires changes to the core functionality of Blender, and such changes can only be achieved by modifying the source code.
Other methods, such as plugins or scripts, may not be able to completely replace Blender's built-in file browser. This is because these methods simply add a layer of wrapping on top of Blender's functionality and cannot alter the internal behavior of Blender's file browser."

The following code opens the windows explorer on windows.
import subprocess

filepath = "D:\\your_path_here\\"
args = ['explorer', filepath]
subprocess.Popen(args)

Can't post line breaks in code as a comment, so this had to be an answer.

Yes, I can open the system file browser in Blender using code, but I want to go further. I want to completely replace Blender's built-in file browser with the system file browser for import/export within Blender, just like how it works in software such as Photoshop, PowerPoint, and Edge.

https://blenderartists.org/t/regular-windows-file-browser/679015

Alternatively, I'd like to see custom icons for my folders in Blender's built-in file browser. You can see my custom icons in the images I've shown. If I could see custom icons, it would make finding files much more convenient for me.

https://docs.blender.org/manual/en/latest/files/blend/previews.html

@Leander this is a trick... $$$$ That perhaps could be abused... $$$$ But you can use the mathjax block format $$$$ to achieve line breaks. Though I see those line breaks are quite big! $$$$ Of course you could write an entire comment in mathjax too, but then it wouldn't be visible for some people when mathjax doesn't load for them...

This operator in a script I wrote has this exact functionality.
import bpy
import os

class op(bpy.types.Operator):
    bl_idname = "custom_fbx_export.file_open_folder"
    bl_label = "Open Folder"
    bl_description = "Open the specified folder"

    @classmethod
    def poll(cls, context):
        if context.scene.custom_fbx_export_props.path == "":
            return False

        return True

    def execute(self, context):
        open_folder(self, context.scene.custom_fbx_export_props.path)
        return {"FINISHED"}

def open_folder(self, path):
    path = os.path.dirname(bpy.path.abspath(path))
    # Warnings
    if not os.path.exists(path):
        self.report({"ERROR_INVALID_INPUT"}, "Path doesn't exist.")
        return

    # Open Folder
    os.startfile(path)
    print("Open path on system " + path)

When you click the button this operator is assigned to, it will open the default Windows file browser.

Yes, I can open the system file browser in Blender using code, but I want to go further. I want to completely replace Blender's built-in file browser with the system file browser for import/export within Blender, just like how it works in software such as Photoshop, PowerPoint, and Edge.

https://blenderartists.org/t/regular-windows-file-browser/679015

Alternatively, I'd like to see custom icons for my folders in Blender's built-in file browser. You can see my custom icons in the images I've shown. If I could see custom icons, it would make finding files much more convenient for me.

https://docs.blender.org/manual/en/latest/files/blend/previews.html


text:
Fillet High Resolution Arc joined to line in Geometry Nodes
Trying to create fillet against arc with high resolution will cause it to crumble when making radius to large.
I think fillet node only adds extra vertexes, so for high resolution curve are not correctly removed to match fillet.
How would i go about calculating which vertex on arc to remove?

Used Node from below video to join curves
https://www.youtube.com/watch?v=DJx416QCV7w
File with curves on it
https://blend-exchange.com/b/eN1WVWOP

To clarify what you are trying to achieve. In your GN modifier, you are creating two curves, each made of an Arc and of a Line. In one case, there are only 4 vertices along the arc. In the second case, there are 256. Do you try to achieve the same shape as the first one, with the second case ? For that, you would like to delete control points from the arc ? Or would you like to limit the angle (actually 270°) ?

Delete control points and create correct fillet (to tangent?) between arc and line. One with 4 verts looses shape of arc, but has correct fillet.

Are you looking for a solution in this configuration only (one line and one arc), or a general solution and this case is just an illustration ?

https://blender.stackexchange.com/questions/310103/how-to-add-a-defined-radius-between-two-curves-in-geometry-nodes/310106#310106 - this post in comments talk of curved line but seems no solution

This just illustration. - though between a line and curved line

just this configuration, once i can work way to do it.  I should be fine to use more generally myself.