text:
how to make a mesh material change color depending on position of an empty
I'd like a mesh representing a muscle change color (say, from white to red) when the muscle is contracted. I hooked the mesh to the bone it controls (an element of exoskeleton actually, since I'm modeling an insect). The effected bone can move in all directions, but the muscle contracts only along the Y axis. I'd like to be able to feed the Y position of either the empty I used as the hook, or a nearby vertex group of the muscle mesh itself, to, say, a mix shader fac input.
Any ideas how to accomplish that? Thanks!

This will depend on your rig, I guess, but you could use a driver.
To keep it simple, you could:

Drive a 'Value' Input Node
Parent a relatively-moving Empty (E1) at one end of the muscle to a root Empty (E0) at the other end. You may already have components that are effectively parented this way in your rig.
In this case, E1 is constrained to move only in its parent's local Y
It has a (Local Space) Limit Location constraint along that axis to stop it going out of range.. your rig may be doing this another way.

The driver can then be created by (right-click) 'Copy as New Driver' in E1's Y location field in the 'N' panel, and 'Paste Driver' in the Value node. The Y location will be in E0's space.

As above, you can map E1's [Min Y > Max Y] to 0-1, so it fits a color-ramp.

One way you to do this is with a Texture Coordinate Node where you have set the Object  to your empty, similar to this trivial example:

I've hooked the output of the texture's Object coordinates to a Separate XYZ node.  For my example I used the X output, but the Y output will work for you.
The tricky bit is that the object coordinates are no longer clamped to -1 to 1 on each axis, so you have to do a bit of math to use them effectively, since you have to map those coordinates to the 0 to 1 range expected by most nodes.  Rather, the Object coordinates are the distances to the origin of the empty, measured along its own local coordinate system
To make up for my earlier bad explanation, here's a shader that controls the colors of a cube by using all three axis of an empty.  Note that the cube's color varies across the cube because it's the distance from the given point on the cube to the origin of the empty that matters.
The mapping nodes mean that the empty can move +/- 5 units along any axis to achieve the full effect, with negative distances being darker and positive lighter.

I think I see what you mean, but the Object texture coordinates are measured in the Object Space of the referenced object, or the shaded object ('self') if there's no reference.  A subtraction of the spaces will be constant throughout the shaded object  if they are aligned in Y and the objects are at the same scale. .. ?

Thank you, it's working with 2 texture coordinate nodes and a "less than" math node pretty well, although the change is a bit abrupt, I might try smoothing it out with more math. Or a color ramp node somewhere down the line :)

You guys don't disappoint, thank you so much!

@RobinBetts  IIRC, if the Object input field is used, Object output has a different meaning than if the texture coordinate is from the current object.  In this case, the Object output is in world coordinates.

@Marty YDNRC... https://imgur.com/a/wxKHgY0   :)

@RobinBetts  oops.  fixing answer now

+1 anyway, I prefer the idea of doing without a driver.. and @Igor says it works for him.

@RobinBetts I don't think that video shows what you think it shows but I've got to go do things.  I'll get back to you in a few hours

@Marty sure thing. The gif shows the XYZ of the Empty's object space, encoded as RGB, intersecting the surface of the shaded cube. We may just have crossed wires about the meanings of words. When I say 'Object Space' of object O, I mean the coordinate system whose basis (in the mathematical sense) is the object axes of O (which carry  O's transform). My 'World Space' is the coordinate system aligned  to the World,  scaled at 1, with its origin at World 0.

@RobinBetts It was mostly me being sloppy and wrong.  Your last comment is spot on.  The sneaky bit about using an object in the Object input of a Texture Coordinate node is not that it is in World Space, but that it's not clamped to -1,1 on any axis.  So my first method works because it is the delta between the origins of the empty and the other object, but as you point out in your answer, has issues with scaling.  I think your way works welll.


text:
How to send an email on MacOS when completing a render?
So this is the email setup:
    import ssl
    import smtplib

    port = 465  # For SSL
    smtp_server = "smtp.gmail.com"
    sender_email = "From@example.com"
    receiver_email = "To@example.com"
    password = "password"

    message = f"""\
    Subject: Email Sent from Blender on MacOS

    This Email was sent from Python in Blender on MacOS.
    """

    context = ssl.create_default_context()
    with smtplib.SMTP_SSL(smtp_server, port, context=context) as server:
        server.login(sender_email, password)
        server.sendmail(sender_email, receiver_email, message)

Pretty easy, nothing special. When running this in Python 3.10 on my machine I receive the email and all is good.
But then this error message appears when I run this code as a script in Blenders IDE:
location: <unknown location>:-1
Error: Python: Traceback (most recent call last):
  File "/Applications/Blender.app/Contents/Resources/3.1/python/lib/python3.10/smtplib.py", line 1050, in __init__
    SMTP.__init__(self, host, port, local_hostname, timeout,
  File "/Applications/Blender.app/Contents/Resources/3.1/python/lib/python3.10/smtplib.py", line 255, in __init__
    (code, msg) = self.connect(host, port)
  File "/Applications/Blender.app/Contents/Resources/3.1/python/lib/python3.10/smtplib.py", line 341, in connect
    self.sock = self._get_socket(host, port, self.timeout)
  File "/Applications/Blender.app/Contents/Resources/3.1/python/lib/python3.10/smtplib.py", line 1057, in _get_socket
    new_socket = self.context.wrap_socket(new_socket,
  File "/Applications/Blender.app/Contents/Resources/3.1/python/lib/python3.10/ssl.py", line 512, in wrap_socket
    return self.sslsocket_class._create(
  File "/Applications/Blender.app/Contents/Resources/3.1/python/lib/python3.10/ssl.py", line 1070, in _create
    self.do_handshake()
  File "/Applications/Blender.app/Contents/Resources/3.1/python/lib/python3.10/ssl.py", line 1341, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:997)

So why is this happening? Well as far as I can tell this is the solution:
On your Mac go to Macintosh HD > Applications > Python3.## then run the file Install Certificates.command. And this fixed the issue for me when running a normal Python interpreter using say Pycharm.
As far as I can tell Install Certificates.command is no where to be found inside the Blender internal Python version. My question is, how do I generate valid SSL certificates inside Blenders Python version without the Install Certificates.command file?
All I want to do is send emails from Blender. Thank you for reading and for your time!

can you try this? https://exerror.com/certificate-verify-failed-unable-to-get-local-issuer-certificate/

Could your problem be solved? I would be grateful for feedback.

As @HarryMcKenzie correctly mentioned in the comment, the library to verify the SSL certificate seems to be missing.
However, as far as I know, you would have to install additional Python libraries in this way so that you can use them directly in Blender:
# Navigate to the installation directory
cd /Applications/Blender.app/Contents/Resources/3.1/python/bin/
# Use blender's bundled python & install/upgrade the package
python -m ensurepip
python -m pip install --upgrade certifi

source: Stack Exchange

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

sort: votes


text:
Appropriate value of convergence plane distance in a 360° stereoscopic VR video
How to determine the appropriate value convergence plane distance？
I'm working on a panoramic stereoscopic video for Meta Quest 2. I use the stereo camera in off-axis mode. With the Spherical Stereo option checked, it works together with the panorama type.
After some rendering tests, I got some stereoscopic effects in the default convergence plane distance (1.95m), but I still wonder about this value.
After watching this video(VRLA Summer Expo 2016: How VR Works A Perceptual Point of View), I guess it may be related to the focal distance of the VR headset. In the case of Quest 2, the focal distance is 1.3m, which is somewhat close to the Blender default value of 1.95m.
However, it is said that the focal distance of some VRs is at infinity, so if I make a video for those VRs, how do I take the value.

I use a value based on camera position and the most interesting part of the scene. Could be a meter or two, could be an inch or two. The camera shows the convergence plane so you can adjust it to suit.

I think these settings are designed with a 3D TV scenario, where the convergence place is the distance of the TV, object closer than the convergence will appear pop-out of the TV screen, and object far away will appear into the screen. For VR with Blender I set the convergence plane to the main stage, where the main object is located, and then I divide that number by 30, and set it as the interocular distance. The interocular distance is what really matters, you do not set it to around 65mm unless everything in your scene is in real life scale.

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


text:
my normal map is giving me these issues
i did my textures in substance painter and imported into blender however blender is giving me these results but i didn't see this in substance painter, I don't know what is wrong

Textures made in Substance Painter use DirectX to generate normals (by default), as opposed to blender which uses OpenGL. To make the normal maps look correct, often you need to do a DirectX to OpenGL conversion on the Normal texture - done by inverting the Y axis direction (blue channel) - shown below:


text:
How to insert keyframes for the vertices using python
I want to make a specific animation and for this I was thinking in create a mesh and then vary the position of its vertices using a python script, but I don't know how add vertices keyframes on python. Someone can help me?

Hello ! For meshes this feature is called shape keys. Maybe you can get more information there https://blender.stackexchange.com/questions/96887/how-to-move-the-keyframes-for-specified-shape-keys-with-python?rq=1

You can keyframe the coordinates of a mesh's vertices similar to how you can keyframe a mesh's location. If 'v' is a vertex of a mesh, you can use v.keyframe_insert("co", frame = some_number) .
This is very similar to how if 'obj' is some object, you can keyframe its location using obj.keyframe_insert("location", frame = some_number)
Here is a great example of a mesh vertex transformation. It's a stereographic projection homeomorphism. First add a sphere to the scene and make sure it's named 'Sphere'. Then go into edit mode, click on the north pole, and delete the north pole. Next, run the following script.
import bpy

sphere = bpy.data.objects["Sphere"]

verts = sphere.data.vertices

# iterate through the vertices of a punctured sphere
for v in verts:
    # keyframe the initial position of each vertex
    v.keyframe_insert("co", frame = 1)

    # store the x, y, and z coordinates into variables x, y, and z
    x = v.co.x
    y = v.co.y
    z = v.co.z

    # change the position of the vertex coordinate based on a stereographic projection function
    v.co = (2*x/(1 - z), 2*y/(1 - z), -1)

    # keyframe the final position of each vertex
    v.keyframe_insert("co", frame = 180)


text:
How do I limit selection to visible using the "Poly Build" tool?
I'm trying to do retopology with the Poly Build tool, but it keeps on wanting to select faces, edges and vertices from the backside.
I don't have this problem with the select tool, only the Poly Build tool. Does anyone know a way to fix this?

There are some great add-ons for retopology.  Many rave about Retopoflow.

Are you in x-ray mode?  In the upper right of the 3D Viewport there's an icon that shows a rectangle behind a rectangle.  If that's selected you are.  Deselect it and see if it helps.

This is a known design flaw discussed here. This problem would be fixed with the Retopology Overlay that is being worked on. Unfortunately, it doesn't seem to be getting much attention despite people bumping the thread.
A current workaround would be selecting all front faces, Ctrl+I to invert the selection, then H to hide. Doing this every time you move the viewport camera.


text:
Disable backface particle editing (e.g. hair on other side of head)
I'm trying to use particle edit tools to edit hair on my character. Except it keeps editing the backface of the head. I've got x-ray turned off, tried viewport backface culling but nothing fixed this. Fyi, the scalp is a duplicated part of the head mesh.

This question is pretty much the same as this one except the only "answer" to that question involved a "bug" that was "solved":
Hair particle editing not working right


text:
Cycles doesn't render geometry-nodes correctly
I made a rocky wall using geometry nodes.
When I wanted to render it, I noticed that it renders out correctly using the Eevee render engine. But using cycles, the rocks did not look the same as they did in the viewport.
Is there any way to solve this problem?
Here's how the imaged rendered out using the Eevee render engine

And this is how it looks like using cycles

I'm not sure why. But to fix it, I had to turn off smooth shading.


text:
Tell First bone of IK Tentacle to keep rotating
I am currently trying to find a solution for the old "IK glitchy behavior" problem. I got this tentacle like rig set up, and I want to tell the root bone, the very first bone in the chain, to just keep rotating around in a circle without the strange behavior it has shown in the video:
https://www.youtube.com/watch?v=JO-26kScLJQ
Does anyone know what to do here? I personally think that a constraint or setting for the first bone to continue rotating could help, but I don't have any experience with that.

Take a look at Pierrick Picaut's Advanced Rigging: Tentacles YouTube tutorial.

can u show us a link/video/example how you want it to be?

if this [1]: https://i.sstatic.net/ndWKr.gif is a solution for you, i can write an answer

@Chris I already know the solution shown from your GIF, thank you for the suggestion, but that's not what I want. What I want is something like this: https://www.youtube.com/watch?v=TmcyrFZEt18 with the IK and the handle an all. The video is just a rough demonstration of the " rotating around " I meant.


text:
What is this grey arrow next to my armature? What does it do?

What exactly is this? I don't remember setting it manually, when I select it with the left mouse button I just select my armature, does it do anything special? How can I remove it without ruining my rig?

These icons next to any folded item in the outliner are a preview of the other data blocks and objects inside or children of that item. You also have the number of items.
If you unfold it, you can see better what it is:

The arrow icon is an animation data. You can delete it if you want, it will not break your rig.


text:
Geometry Nodes - Node Tree Ignores Its Own Output If Repeated?
Don't know a ton about geo nodes so this may end up being a dumb question but here goes:
I've got a situation here where a geo node node tree I've assembled, when used in a modifier stack, will only work if it is the only instance of the node tree used in the stack or it is the last instance of the node tree used in the stack.
In this geo node node tree, I do not convert the input geometry to an instance at all nor do I convert it back into geometry again for obvious reasons. Additionally, I do not create or destroy any geometry, just move some vertices around. To me, this stands to reason that the output geometry would be 100% acknowledged by later instances of the node tree in the modifier stack in which this example instance of the tree is used, but that is not the case. Instead, what happens is that the effects of any use of the node tree before the last instance of the node tree are forgotten about by that last instance and the last instance operates as if the earlier ones never existed.
I tried Googling all this for about 20 minutes with some careful quotation mark work, but all I'm finding is questions on the opposite issue of people actually DESIRING this behaviour when in fact I want anything but this behaviour right now! Additionally, below is a screenshot of the node tree itself. I doubt it is a good tree for many reasons beyond my understanding, but I don't see at the least why it wouldn't work assuming all input fields are populated:

Any help guys? TYVM for reading : )

Hi Spring, it would be nice if you provide a node tree which isn't blurry but easily readable. Second i would recommend providing a blend file so we don't have to manually rebuild it. thx.

@Chris is your eyesight OK? :D I don't think the image is blurry. Yes, could be of higher res and I always try to screenshot at a much higher res so the image can be easily zoomed, the text is nice and thick and antialiased if zoomed out etc. but "blurry" is not the word I'd use here.

Spring, the simplest thing to do here is to disconnect the field from Set Position: Offset and just set some value here. Does adding more geonodes modifiers in the stack with this node tree accumulate the offset now? I bet it does. Therefore the problem is not where you describe it, but it lies in the calculation of the offset. Mathematically speaking, for numbers $a$ and $b$, you can find such $b$ and operator $◦$ that $a ◦ b = b$, that is, if you set $b$ to the result of $a ◦ b$, it won't change, and therefore the value of the expression won't change when you update $b$ to its result...

@Chris OK, if you zoom in the image, it is blurry due to the scaling algorithm, I guess that's what you did, I should have figured it immediately but it's Sunday morning OK?? :)

@MarkusvonBroady: go back to bed... :D

Thanks for all the responses so far guys!
@MarkusvonBroady I did as you explained, and yeah you've correctly pinpointed the issue as how I'm reading the vert positions not being stackable, as doing a tree as simple as this works exactly as expected (no particular reason for the math node):
https://i.imgur.com/RG8YWmR.png
I thought the sampling I was doing might be related to it, so I cut that out but I'm getting the same issue even so:
https://i.imgur.com/38YVCoi.png
Any ideas?

How to upload a blend file on BSE - good practices and advice

I was trying to avoid uploading the .blend because it's part of a larger library you'd have to sift through, BUT if that's what you need then I'll take some time to isolate this part of the library and upload it for you, give me some time and it'll be right over.

Here you go!
(It was saved in 4.0 so you'll probably need at least that to read the file):
https://blend-exchange.com/b/7SxS1GsA/

@MarkusvonBroady Just realized I never mentioned you to let you know I had the file uploaded, sorry if it's a bother that I do so.

Your "Compare" node evaluates to $1$:

It does so because it's connected to two "Domain size" nodes, comparing its own number of vertices to the target object. Since they match at the beginning, and there's no node that would change the number of verts, it will always be $1$, and so it can be replaced with the "Value" node, and the dead ends (Domain sizes) removed.
The scalar value $1$ converts to a vector by triplicating as $<1, 1, 1>$, and passing that as a 2nd input to the Vector Math: Multiply effectively makes it a no-op, so it can be removed (⎇ Alt-dragged):

The "Factor" input of the geonodes modifier is set to to $1.0$. I changed it and then discovered the mentioned behavior of stacked modifiers acting as a single modifier (every next modifier changing nothing) disappeared. Therefore I'll assume it is set to 1. Like with the Vector Math: Multiply, here passing the $1$ as a scale of Vector Math: Scale also makes it a no-op. So this too can be removed. We're left with:

Set Position, for each point, evaluates the vector field connected to "Offset". It reads the position of the vertex with same index from the target geometry. Then it subtracts the position of currently evaluated vertex. This becomes the offset. Let me present this in 1D:

$a$ is the currently evaluated object, $b$ is the target object. $b-a$ is what you do, and you get the offset from $a$ to $b$. If you now apply this offset on $a$, it moves to $b$. Now $a = b$
On 2nd iteration, since $a = b$, the offset is 0. So No movement happens. And since no movement happens, the situation doesn't change on the 3rd iteration and so on.

Thanks for the thorough answer!
So all the stuff you removed is neccessary to my specific needs. For example, I only want to geometry node to do anything if the target object has the same number of vertices as the evaluated object. Also, the target object of the 2nd geometry node modifier is different to that of the 1st geometry node modifier. How is it possible that the offset is zero on the 2nd geometry node modifier when that modifier has a different target with different geometry?
I'd be more elaborate (and polite), but I'm running out of characters!

@SpringE.Thing maybe ask a different question: what you actually want to do. It's hard to answer your question as currently posed: "Node Tree Ignores Its Own Output If Repeated?" - The answer is "No. It doesn't".

Fair enough, the quesiton has evolved beyond what it used to be. I'll leave this as-is and start a new one sometime soon. TY all the same!


text:
Artifacts in all meshes, even when creating a new project and adding a basic cube
so Ihave that problem that all my meshes are broken so I have artifacts everywhere, especially around edges. You can see that all face orientations are messed up and recalcualting outsides doesn`t work. This even happened when I was creating a completly new object. Obviously the artifacts become stronger when scaling the object to larger sizes.
When im changing from Layout mode to UV Editing, the artifacts are not appearing. I am currently working on Blender 3.3.1? Can any one help me with my problem?

Greetings
Dominik

Hello, maybe a Clipping issue, open the N panel > View > tweak the Clip Start and End values

Your View clip-range is huge, at the moment.. bring the near-far range into something proportionate to your model's dimensikons (BTW, probably Ctrl-A apply the scale of your object, if you're in the modelling phase of your project)

Thank you guys for the fast response! It was actually the View clip-range. Adjusting the clip start to 5 m worked.


text:
RuntimeError: Error: Object ‘Base_01_Low.001’ can’t be selected because it is not in View Layer ‘ViewLayer’!
How can i add the object to a view layer?
I mean not just with code, but even manually how can i do that?
i trying to execute a script and first time it works fine, but second time it gives an error message:
Python: Traceback (most recent call last):
******, line 32, in
RuntimeError: Error: Object ‘Base_01_Low.001’ can’t be selected because it is not in View Layer ‘ViewLayer’!
here is a screenshot the explains the problem more detailed:
https://drive.google.com/file/d/1nqvG02BWha7jubSIPqpV_JD5Ke_TNN8-/view?usp=sharing
and here is the blend file that shows the problem (script included in the text editor):
https://drive.google.com/file/d/1eo54H4Jmb4MA8yGPZKIqonkiy2uwD4gT/view?usp=sharing
This error is not happening in every blend file i have, until now only in this one.
I also tried removing the ‘state control’ part of hiding showing items, but still getting the same result.
So mainly question is, how can i avoid to get items are not in View Layer?
If i can't avoid it, how can i force every item in the scene to be in the View Layer?
Even manually solution is fine by me :)

Hello, could you share a snippet of your script ?

After a little investigation I found the rascal object in the Blender File display mode, and since my script is "generating" those rascal objects via join (somehow join make some letovers from the joined pieces off the view layer dunno why), I simply add a suffix to the duplicated items before join, and at end of the script delete those items, so next time I run the script, there will be no "off the tray" items.
So solution is partially, but if you don't need those files, then you can simply delete them so they will not obstruct the script to select other items.
A real solution would welcomed, at least an answer how to put those rascals back to view layer without manual selecting and adding them to a new collection.

Again, it's impossible to help you without seeing your script :)

Hey, i provided the blender file, since script is very "outliner dependent" (no much point without seeing the outliner meanwhile the script)
And comment field is saying too much character
Can You open the blend file. It shows the text editor on the right side, and left to the text editor, there is the outliner.
Let me know plase if there is a way to show my script easier. Thank You!

Nope, sorry I'm not downloading and opening random blender files with unknown custom scripts when the information can be copy / pasted in a matter of seconds for all to see :)

oops, sorry, You right :)
If my script is not fitting in this comment section, then how (or where) can i copy paste it?
Thank for the help already :)

https://blender.meta.stackexchange.com/questions/2958/how-to-post-code-snippets


text:
how to create real Condensation on glass with cycles
how to create the condensation like image below, its really good and particle looks so neatly arranged and theres no overlapping particles. Thanks

you could try this addon: https://github.com/BorisTheBrave/blue-noise-particles

I already installed the blue noise, but after i install adds-on, the blender 2.79 cant read the adds-on blue noise, report error. do u have any solution for this??

Have you tried with a Particle System / Hair? What problem did you meet? You should not see overlapping particles if there are as separated

i have tried with particle hair, and it seem looks good, but unfortunately, always have overlapping on the particles...not at all but mostly, so i have tried to link metaball with particles systems hair, but it takes more times then usually.


text:
Blender IK armature rotation issue importing animation to Unity
I was making some animations and discovered strange artifacts when importing certain rotations to unity. When main body rotates while IK limbs move on their own, Unity seems to not compute correctly the positions of the baked animation, so the whole body seems to vibrate, moving the limbs in a completely wrong way. I attach the difference between the two animation tests I was doing for realizing when did this issue appeared.
I attach a link to the blender animation:
https://media.giphy.com/media/f6K0jitr4erEocGDZo/giphy.gif
and a link to the animation imported to Unity:
https://media.giphy.com/media/H62Vu0MDaAWqFej4JE/giphy.gif

I think you should apply your rotation and scale, by pressing ctrl A.

Yes! thats definitely something to do, but was not the cause of the whole armature vibrating. I also tried changing rotation from quaternion to Euler, and combining the whole mesh into one only piece. Nothing of that worked, so I just kept playing around with the export settings

After some very random ideas of changing angles to euler, playing around with unity import settings, and making some variations in the armature structure, I found a solution: unchecking export "only deform bones" made it for some reason. Then I realized that the body (main central bone) was not set as a deform bone, and that the mesh was just parented to it. I hope someone finds it also helpful ;)


text:
Moving the actual cube (object) instead of the dot (?)
I am not sure if I am using the right terminology, but I would like to understand how one can select to move the actual mesh object using the move tool?  (Instead of some sort of tiny dot pivot point?)

https://blender.stackexchange.com/questions/164936/can-only-move-object-origin-in-object-mode-cant-move-the-mesh

@L0Lock that would only answer the question for someone who knew that the 'tiny dot pivot point' was the 'object origin', since the answer doesn't show the relationship to the origin, since the OP knew what the origin was.

nomenclature is hard for newbies. origin is called pivot in 3dsmax etc...  I think you guys should have a visual FAQ for newbies who are not sure what things are called.

@MartyFouts yes, so that's the answer. What is your point here?

@ina sure it's hard, but when you are a newbie: you don't know what you don't know. You don't know the name of anything that isn't named to you, you don't know that the manual exists and is full of explanation. And you wouldn't know that the first website you find to ask your questions has a visual FAQ that might or might not cover the issue that you are still unable to search for because of your lack of knowledge. Adding more and more resources that repeat each other isn't the solution. Guiding people towards what they need, is.

@L0Lock There is no way to tell from that answer what the phrase 'object origin' means.  If you don't already know that the yellow dot is the 'object origin' then that answer does not answer your question.  You need an answer that does tell you that the yellow dot is the 'object origin'.  If you want to mark this question as a duplicate then it has to be a duplicate of a question that does have the definition in it.

https://blender.stackexchange.com/questions/234221/what-are-the-small-orange-dots-which-appear-next-to-a-selected-object https://blender.stackexchange.com/questions/129954/what-is-this-dot-not-fireflies-question

The dot is the Object Origin and the behavior suggests that you have enabled an option:

in particular, you seem to have enabled "Affect Only Origins".  To check this, go to the upper right corner of the 3D viewport and click on Options (highlighted in blue in the screenshot).  If Origins is checked, uncheck it.

thanks! I think you guys should have a visual FAQ for newbies who are not sure what things are called.

is there a way to easily center an origin on an object once you have moved it?

@Ina  Select the object, right click and select Set Origin -> Origin to Geometry.  The visual FAQ starts at the Window System Introduction page in the manual; but it only covers the bare minimum.


text:
How do I get the Transform Panel to show?
I've tried Object and Edit mode ... but somehow the Transform panel does not show up - how do I get the panel to show up so that I can numerically enter transform values?

press N in Object Mode

Or go into the Properties panel > Object > Transform

ahhh it's a popout >.< getting used to this interface after 3ds max and unity...

you need to change your cursor to the normal cursor, then you can transform


text:
Inverted Sphere and 2:1 Mercator Projection
Yes, I know there are several threads on UV sphere Mercator projection - but they are all 5 or 10 years old - and they aren't for a inverted sphere (or a non-square uv). Many changes have been added to Blender, so I wonder what is the latest technique for creating:
Inverted sphere 2:1 mercator projection

2:1 ratio texture
Mapped to an inverted sphere  (poor man's skybox)


text:
How to calculate the transformation from the pivot point to each stereo camera
I checked the API documentation and this related question, and it looks like there is no easy way to get the pose of both the left-stereo and right-stereo cameras. So, I think the only solution is to calculate the transformation by ourselves. I will propose a solution myself but feel free to add your own to the answers if you know a better/simpler way.

Assuming that Stereoscopy in ON (bpy.context.scene.render.use_multiview = True). No matter how you change the stereoscopy parameters (Mode, Interocular Distance, Pivot, ...), the world_coordinates of the camera are always the same, which can be obtained using C.scene.camera.matrix_world. So my first question was what is camera.matrix_world pose representing in a stereo setup?
A: I made some tests and I found that it always corresponds to the pose of the Pivot point. So if Pivot = Left it corresponds to the left camera, Pivot = Right to the right camera, and Pivot = Centre it corresponds to neither of the cameras, but the point in the middle!
For simplification, I will assume that we only care about the Pivot = Left scenario. Also, here I will assume that we are using the computer vision axis, with the Z outwards the camera. Since I am in the Pivot = Left scenario, I can convert the C.scene.camera.matrix_world into the extrinsic of the Left camera (using @rfabbri method). Note that if we were in the scenario of Pivot = Centre, we would need to calculate two transformations, from pivot to left-stereo and from pivot to right-stereo.
Pivot = Left
Stereo mode 1 - Parallel
In this mode, it is easy to calculate the transformation, since it corresponds to a single translation that depends on the stereo.interocular_distance.

Stereo mode 2 - Toe-in
In this mode, in addition to the interocular_distance we rotate the non-pivot cameras, in this case, the right camera only. What I imagined it would be something like in the image below. However, I made a test, with a small sphere 10 [m] away from the pivot (in this case the left camera), with a convergence_distance = 10 [m] and interocular_distance = 10 [m]. With these values the centre of the sphere does not align on the two stereo images, so the set-up below is wrong.

Experiment:

Stereo mode 3 - Off-Axis
The off-axis currently I don't understand how it works.
I think here it is not only a geometrical transformation, but they also change the intrinsic matrix of the non-pivot camera, since they mention shifts in the documentation.
Does anyone understand how the Toe-in or Off-Axis work in Blender? Specifically, I am interested in their geometric models.
I will edit the answer once I find out more information.


text:
Change instance every ten instance along curve - how to use Index?
I am looking for a way to place instances on a curve every 10cm. I also want to be able to use an instance "Cube" 9 times and then one Cylinder instance. Repeatedly along the curve.
Image a railing.
For now, in the image below, I use an Integer (top, left) to simulate an index value so that the instance used is switched each time the integer reaches 10, 20, 30,...
My question is: How to replace the Integer by a (set of) node that is an index of every points on the curve? How would you do that?
Any help will be greatly appreciated.

You should put instances in one stack and then use instance index to select the right one:

You ROCK!  Thank you!  :-)   It works with curves, too.


text:
How to make eye tracker for flat eyes that already applying lattice
Im new at blender and i stumble this problem on my simple character project where the character using lattice / flat eye, is there any way to make an eye tracker to animate the character because the one tutorial i found need me to not applying the lattice modifier while my character already applied it and i havent found a way to do this with lattice modifier already applied, or is there realy no other way ?
blend file : http://pasteall.org/blend/index.php?id=52053
Thankyou

It is well explained here.
I don't think it is recommended to apply the Lattice modifier, and I think you should begin with a round sphere, not a flat sphere, otherwise it won't deform properly. So:

First create your lattice around your eye sphere. Keep the lattice cubic. Give your eye a Lattice modifier with the Lattice as Object. Give your lattice a basis shape key and create a second shape key.

Keep the lattice selected, go in Edit mode, select the second shape key, scale the lattice on the Y axis.

Back in Object mode, select the second shape key and push the value to 1, the eye should deform. Then bring it back to 0 for the moment.

Create a bone at the center of the eye, use the 3D cursor as Pivot Point to rotate it 90° so that it point forwards. Create a second bone that will be the target. Give the first bone a Track To constraint with this second bone as Target. Parent the eye to its bone, move the target, the eye should follow.

thankyou for answering my question again, yes i end up making the eye again and not applying the modifier and it looks like it work but i have problem cause the pupil look at the back(inside of face) instead of front whenever i use copy rotation (using youtube method) and when i use the bone method you explained the pupil facing upward. its like the rotation messed up or something
this is my updated file if you dont mind to take a look : http://pasteall.org/blend/index.php?id=52057

you must give your bone a BONE constraint (select it in Pose mode and select the BONE CONSTRAINTS tab), not an OBJECT constraint to the armature, plus keep both the 2 bones within the same armature, it will be much more convenient

thankyou work perfectly

also when you'll make a face, join these bones to the same armature, it will make things easier as well

yea i already joined the focus and eye bone , but should i join the left and right eye to one armature ? and is it okay to separate eye bone and body rig?

it's better to have only one armature, so for example make the head bone the parent of your eyes and target, etc

okay noted, thankyou really appreciate it :)


text:
Rotating texture in node mapping make texture gone after rotate more than 90°
I am rather new on blender, in this case i was making an eyeball
i want to combine transparent and glossy shader and in the last step i need to rotate the texture to make the transparent side facing front/ the iris but whenever i try to rotate the texture using node mapping color ramp in y axis,
my texture gone when i rotate it after a certain degree its like having a wrong rotation pivot or something and make me unable to rotate the transparent side reaching the front
here is the screenshot :

blend file : http://pasteall.org/blend/index.php?id=52047
Thankyou and sorry if my explanation isnt clear enough

I think you should rather try with the Texture Coordinate "Object" output, it looks much more controllable than Generated. Here for the manual explanation. Also don't forget to apply the rotation and scale of your object if you want the object axis to be aligned on the global (ctrlA).

thankyou bro its work ,especially after i apply rotation and scale like you said


text:
How to make lattice follow eye position
so i was using latticed eye that works quite well with tracking etc but i have a problem when i change the head pose the eye will follow the head and the lattice wont like this :

i tried parenting the lattice but it messed my eye tracking instead, is there any solution for this?
Blend file : http://pasteall.org/blend/index.php?id=52093
Thankyou in advance

select the lattice, shift select the armature, switch it to Pose mode, select the head bone, then ctrl P > Bone and it seems to work correctly

its work really well , thankyou

Select the lattice, shift select the armature, switch it to Pose mode, select the head bone, then ctrlP > Bone and it seems to work correctly.


text:
How to successfully transfer one .blend to another computer and keep everything intact?
Okay, here's what's going on. I have one of my biggest animation projects yet that I will be sending to another computer to render. I have packed the image textures so as to make sure that they will not be lost. Now, the project contains audio files in the VSE (music and sound effects) and it also contains an image sequence. These are the ones I'm concerned about. It is my understanding that Blender does not pack audio files and image sequences, correct?
If that is correct, then that means moving the .blend to another computer will result in lost audio and a lost image sequence. Is there any way to keep everything in the .blend file, even if it means blowing up the file size?
This problem may be resulting from messy organization on my part. Consolidating everything into one folder at this point (in order to make the paths relative and therefore move the entire folder with no issues) would take a while and become tedious quickly.

Video files and image sequences are not packed as part of the blend file.
Why? because they would create an impractically large file.
No video editing program stores the media and the projects on a single file.
The way you transfer the project is you bring along all of the files that are linked to the project. If you want a single file to transport/upload, then zip the folder with all the elements and the project.
But it is more practical to put your files in an external drive and plug it in to to the new computer and re-link.

My mistake. Audio files can be packed. I'll put the image sequence with the blend and I think that will do it. If you don't mind, could you edit the second line of your answer? Thank you!


text:
How To Have Fine Control Over Rotating Objects
I recently downloaded this jet from BlendSwap which has dual propellers on the wings. The propellers do spin on their own when the animation is played.
But when I do animations, at some point I'd probably make a plane or a helicopter to slowly start up its propellers/rotors before they reach top speed and the vehicle lifts off.
Is there any way to make a spinning object slowly gain rotational speed, hold it, then slowly decrease (like in a landing)? I tried a Transformation constraint to a spinning emtpy and keyframing the influence, but the results didn't seem to go well. . .

I would suggest using a driver on the rotation

Thanks a lot to Mr. Sanfelici for posting the first answer, but I think I just figured out the method that will work for me. It is all based on this YouTube tutorial which involves the Animation Nodes add-on. The installation is simple. Download the correct version and install from User Preferences>Addons.
First step is to create an empty and animate it. Set a keyframe where you want the non-moving rotors (or propellers) to start rotating. Go to the frame where you want your rotors to stop spinning (such as is a landing) and move the empty on the Z-axis a large distance (500 units) up or down.
The second step is to setup the nodes like the screenshot below.
That math node was a little tough for me to locate. It's under the category of Number. Then play with the values on the B input there until you find something you like. Making it a negative value will cause it to spin the opposite direction.

This rig is over complicated: it has an IK bone that follows an empty, which rotates following a curve (circle); the animation is controlled by the evaluation time parameter of the curve, which has a cycle modifier in the graph editor, that you can see if you select the curve (and can be animated by hand using the 0-100 values, but it's difficult to achieve a smooth transition between different speeds due to its cyclic mode.

I think it would be better to delete the circle, the IK bone and the rotating empty, then select the bone called "prop rotate.L" in the "Armature prop L", set it as "Euler XYZ", and animate its Y rotation. So you can control the speed of the rotators by a simple use of ease in and ease out of a bezier curve in the graph editor.


text:
Blender can denoise its own animations. Can it denoise a live shot?
I have a drone with a small camera on it which can get noisy even with a rock-bottom ISO of 100. I have been experimenting with color correcting my drone videos in Blender and being able to denoise them as well  in the same program would be quite convenient. Is this possible?

@Gorgious Thank you, but my machine runs on Linux. I've got other options though so no worries!

I was wrong, you can denoise your images with the denoiser ! See https://blender.stackexchange.com/a/178169/86891

@Gorgious I'll have to look into that, thank you!

I haven't tried this, so I don't want to submit it as an answer, but just a suggestion.  What if you placed your footage as an image on a plane in a 3D scene (of course giving it an emission texture with brightness strength of 1.0) with the image taking up the whole view of the camera.  Then render it with one of the denoising options on?

@Blazer003 Interesting. If an opportunity arises to try it out, I'll have to give it a shot.

Here I am, answering my own question. I have not found any way at all to use Blender to remove camera noise. The AI Denoise node now included with Blender does not affect live-action footage.

You could try using another opensource program for that... maybe Natron, its similar to Nuke but has only 2D capabilities so far. But good for compositing basics:
https://natrongithub.github.io/
I think it has a Denoise/sharp node that you could try.
Good Luck. Stay Safe


text:
How to unwrap a saw blade?
I have a problem, I just started with Blender. Couldn't find an answer for it on the internet. I'm trying to UV unwrap a saw blade I modelled yesterday, so I could apply a texture to it.
First, I selected all the outer edges on side a, and side b, and then I marked them as seam, but after unwrapping sides of the blade got cut in half. Also, it had some strange connections, so I had to convert the saw blade to tris.
Unfortunately, I can't find a workaround to my problem. Could you please help me out?
This is close to what I need, but it has to be both sides + edges:

When you unwrap, you should be selecting only the edges that you want to be separate in the UV editor as seams (it looks like you selected a whole bunch of unrelated ones).
If I was unwrapping this saw blade, I would select all the perimeter edges around the sharp blade part of the saw on both the front and back and that's it.

Thank you so much for the answer. I'll try it out.


text:
Export model and textures from CityGML to UE4 through Blender
In Blender Render I'm facing a problem with imported CityGML building models. I used the Rotterdam dataset available online and used this very good script from batFINGER to import XML files in Blender. The models are already textured.

This just works very well, the thing is that the way it use textures is quite messed up, and I can't figure out how to export that properly with textures to a game engine such as UE4.
The model use a bunch of texture images (around 300) that are all listed here:

When I select only one building and check its UV's, it is all over the place and the UV's are overlapping each other. For some reasons this seems wrong to me, but in view mode the model looks fine. I feel like each building from the model is using textures from different pictures.

I used ctrl+J to join everything, but when I look at the UV's it's even worse:

If I zoom I can see every single UV crossing each other:

Baking the textures seems very promising, but after few try outs my model turns white and the final picture stay black:

*note that I've tried that without unwrapping because I think the model is already "unwrapped" and anytime I try to unwrap it again it crashes.
I've tried many options, without any success:

Unwrapping model causes crash
Packing islands causes crash
Baking the textures makes the final image black, or the model turns white
Auto unwrap from texture atlas causes crash
Exporting glTF doesn't export the textures embedded

Even if the UVs and textures looks messy the model is fine in the 3D view but there is no way I can export this properly with one single texture that I can use in my game engine.
The best would be to find a way to combine all theses different texture images into one single image witout losing the texture application, that I can easily import to UE4 (proper baking?).
Or find a way to export the model as it is in the view mode, with embedded textures, without modifying anything in the UV editor. I guess there must be a way...
Any help would be much appreciated!

You could use the "baking highpoly to lowpoly" method to bake individual buildings. Create a copy of that building, fix the UVs of that copy, then create a new texture, select the original, then shift-select the copy and check "Selected to active" in the Bake settings.

Thanks for your reply, but whenever I try this my model still turns white. Note that I can only see these textures in the texture mode of the viewport. Also there is no material nor texture in the tabs on the right pane. I think that's why it doesn't work, I feel like the script I used to import didn't created the materials I need, but applying the textures through the UV editor, that's weird... What can I do?

Ok I finally figured out this issue. The problem was that I didn't had any material in the material tabs, so there was nothing to bake. I had to go through other programs to convert properly the cityGML files before to bake them in blender. I had to use Autodesk Infraworks and FME cityGML importer to get there. It works at least for me with the models I got from Rotterdam.
Here is my workflow:

Download the model from the website in cityGML format, thematic classes: buildings, textures: RhinoCity texturing.
FME quick translator: run CityGML to IMX workspace and convert it to a .imx file.
Open Infraworks and import the .imx file, then export it to FBX (uncheck merge textures toggle and do not export the ground).

Then in Blender I can open the FBX that contains the materials and textures ready for baking. Clear parents and keep transformations with alt+P, group meshes with ctrl+J. Create a new UV map, a new texture image, unwrap (smart UV project) and finally bake the textures.
Use the baked image as a new material, and the texture is mapped on the UV map created. I exported the file in FBX and the import in UE4 is very smooth. It looks great!
It works very well this way, hope that it can help someone else!


text:
Do I have bad topology?
I created my first character in Blender but I feel like the topology isn't right. Can you please give me suggestions for improvement?
Thanks.

In my opinion it seems rather good, I would say 3 things:

For the face, the classic topology includes the bottom of the nose and the mouth within the same edge loops circle, it makes the modeling and the animation easier, but if your face works as it is, do you really need that?
You have 4 vertical rows of faces going from neck to pubis, that seem useless, you could simplify that with one of these two methods.
To animate and have a nice bend, you'll probably need to add some edge loops where the bend will happen, for example around the elbow.


text:
Making some cloth stitches stronger than the others
My animation goes as follows: For the first few frames, the cloth stitching does its thing. It's a basic raincoat with a hood, and the only thing holding it together is a single edge that completes a circle around the character's neck.

There's also a wind in the background. And after a few frames, the character starts to run.
Problem is, when the character is running, the raincoat gets torn off the shoulders (see animation). I can make the sewing force stronger, but it ruins the stitches that are holding the hood together.
(I also tried weight painting those vertices, but I'm not exactly sure what it did)
Is there a setting I can use to make that particular edge to have a stronger sewing force than the others?
Blend file: https://u.pcloud.link/publink/show?code=XZAYtHXZ1LeH1wqXMj72wlbklg4dSkIe4RUk (physics are baked)
Rendered and animated: https://u.pcloud.link/publink/show?code=XZ3YtHXZjhwUwcS4bL57LC4d5lHPipxOTEz7

In the real world, you would not close the raincoat with a single thread at the front of the neck. The edge/seam pulls the fabric together in the clothing simulation, but the single edge doesn't work well for collision detection.
The solution is to turn the edge into a face, so that real geometry exists. This face is treated as a small piece of cloth and also has the usual cloth properties like tension strength, stiffness, bending, etc. and can resist inertia better than an edge. You can adjust these settings if needed.
I tried that and it works. The next problem, however, is that when the character is in a full run, the hands, knees & feet will beat the fabric in an unnatural way and it comes to glitches. It might be better to move the cape back a bit so that nothing is in the way at the front when he runs. (That is, deform the circle into a semicircle before the simulation.)


text:
How can make the state of a boolean property relative to the 3d view area?
I need to keep unique boolean properties attached to screen area (view 3d) which may have at the same time different states depending on the context view area, like propertie lock camera to view or use local camera can have different state in different 3d view areas.

For now I managed to declare a variable but which reacts globally, it changes state in all views.
import bpy
from bpy.props import StringProperty, BoolProperty
from bpy.types import PropertyGroup, Panel, Scene
from bpy.utils import register_class, unregister_class

class MyPropertyGroup(PropertyGroup):
    My_Bool : BoolProperty()

class PANEL_PT_panel(Panel):
    bl_label = "Boolean relative to 3d view area"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "View"

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

        row = layout.row(align=True)

        col = row.column()

        col.prop(scene.mybool, 'My_Bool', text="My Bool")

classes = (MyPropertyGroup, PANEL_PT_panel)

def register():
    for i in classes:
        register_class(i)

    bpy.types.Scene.mybool = bpy.props.PointerProperty(type=MyPropertyGroup)

def unregister():
    for i in classes:
        unregister_class(i)

    del bpy.types.Scene.mybool

if __name__ == "__main__":
    register()

how can I "contextualize" his state ?
there is a specific way to register it ?

Make it a screen collection property
The best fit would be bpy.types.Screen Then the issue is a screen can have many areas, and we cannot tack a rna property onto a bpy.types.Area
I have fudged around this by keeping a collection indexed the same as the area collection, and make a collection item property the boolean. Eg context.screen.my_collection[i].my_bool where i = context.screen.areas[:].index(context.area) Would need some way to keep consistent when areas are merged, created.

Here I've populated on register, adding an item for a potential 20 areas per screen.
import bpy
from bpy.props import StringProperty, BoolProperty
from bpy.types import PropertyGroup, Panel, Scene
from bpy.utils import register_class, unregister_class

class MyPropertyGroup(PropertyGroup):
    mybool : BoolProperty()

class PANEL_PT_panel(Panel):
    bl_label = "Boolean relative to 3d view area"
    bl_space_type = "VIEW_3D"
    bl_region_type = "UI"
    bl_category = "View"

    def draw(self, context):
        screen = context.screen # notice no bpy needed
        layout = self.layout

        row = layout.row(align=True)

        col = row.column()
        i = screen.areas[:].index(context.area)
        ap = screen.my_area_props[i]
        col.prop(ap, 'mybool', text="My Bool")

classes = (MyPropertyGroup, PANEL_PT_panel)

def register():
    for i in classes:
        register_class(i)

    bpy.types.Screen.my_area_props = bpy.props.CollectionProperty(type=MyPropertyGroup)

def unregister():
    for i in classes:
        unregister_class(i)

    del bpy.types.Screen.my_area_props

if __name__ == "__main__":
    register()
    # over populate it
    for screen in bpy.data.screens:
        screen.my_area_props.clear()
        for i in range(20):
            screen.my_area_props.add()

batFINGER many thanks! exactly what I'm looking for. Perfect!


text:
Make Single User ALL camera actions
Make Single User ALL camera actions
I need to copy, in a bunch of pre existing cameras, animations data ,rotation,location and lens (Focal...), between several cameras and make this animations data as single user for some cameras
exemple:  I select two cameras ( A & B) taking care that the cameras (A) with animation data is active and i run this:
import bpy

bpy.ops.object.make_links_data(type='ANIMATION')

bpy.context.object.select_set(state = False)

bpy.ops.object.make_single_user(object=False, obdata=True, material=False, animation=True)

so i link animation data from active camera (A) to selected  (B) with the folowing command:
bpy.ops.object.make_links_data(type='ANIMATION')

i deselect camera (A):
 bpy.context.object.select_set(state = False)

and i make camera Action of camera (B) as single user:
 bpy.ops.object.make_single_user(object=False, obdata=True, material=False, animation=True)

But only Object Camera  Action (Rotation & Location...) are modified as single user. Action linked to Object data Camera (lens animation)  are always linked
i can perform this action in outliner

but how to do this with python ?


text:
Alternative way of merging vertices
Is there a faster shortcut than Alt+M for merge?
I have seen video examples where it was shown a line dragging from point A to B resulting merge.
It may be an add-on?
Thank you for any of you who will help me!

Ok so real answer is that in the video you link he's using an addon by Pitiwazou and he gives the links in the comments:
https://gumroad.com/l/pie_menu_editor
https://gumroad.com/l/wazou_rmb_pie_menu_v2
Old answer:
Maybe he was snapping a vertex to another one, with the Snap option (Vertices mode) and the Automatically Merge Vertices option enabled? You can even activate the snap tool with ctrl.

thankyou for your help! uhm no snapping was disabled, hes just remeshing in this video, here is what he does https://youtu.be/Hz1_SndKKwU?t=238

he seems to say that it's part of an addon by Pitiwazou, he even gives the links in the comments

oh thankyou so much, i don't speak in english alot so i might have miss it! thankyou for your time, you speed up my workflow alot :D


text:
Why does my video editing playback slow down after a short amount of time?
I'm fairly new to Blender and video editing as a whole. I understand that the playback in Blender's VSE needs to load a video once before playing at full framerate. After playing through a video once, when I return to the beginning, I'm able to play it smoothly at 60fps. However, after around 1000 frames, I get a brief freeze in the video followed by ~24fps playback for the remainder. The audio plays fine at full speed, not freezing with the video and finishing long before it. I've tried this with multiple different clips (flv files recorded with OBS) and the problem is consistent in each clip, though there doesn't seem to be anything wrong with the clips themselves if just played raw through a media player. Does anyone have a fix for this?

Seems likely you just run out of the buffer. Because the video frame is actually quite HUGE to computer system, the buffer of the video will be constraint at certain amount for sure to ensure available RAM.
The default setting amount can be find in Setting > System > Memory & Limit: Sequencer Cache Limit

You should tune this amount depend on your RAM size. Yeah, 1024 MB is quite small for general 3D modeling available computer which usually got 16 GB or higher RAM.

Sure enough, though I'd thought increasing the cache limit to 4GB would've been enough, doubling it to 8GB gave a longer time frame before the inevitable frame drop. That being said, I was planning to edit together a video at least a couple minutes long. Is it possible for me to edit at something like 20fps with the audio still synced, then render in 60fps?

Well, then I have no idea of it. Not used to VSE in Blender (a little bit buggy). You should add more detail in your question, there might be someone else can help you if you clarify it.

have you tried using the VSE proxy  system to reduce your overhead?


text:
How to export Bone Weights?
I am editing the default OBJ exporter of Blender (io_scene_obj) to create my own version which supports bone weights, for skeletal animation.
I now know how to access the bone weights per vertex in the Object, however I need to correlate those Object vertices to the Mesh vertices.
I am able to fetch the "vertex index" of the vertex with this piece of code:
import bpy

arm = bpy.data.objects['Armature']
obj = bpy.data.objects['Cube']

obj_verts = obj.data.vertices
obj_group_names = [g.name for g in obj.vertex_groups]

for bone in arm.pose.bones:
    if bone.name not in obj_group_names:
        continue

    gidx = obj.vertex_groups[bone.name].index

    bone_verts = [v for v in obj_verts if gidx in [g.group for g in v.groups]]

    for v in bone_verts:
        for g in v.groups:
            if g.group == gidx:
                w = g.weight
                print('Vertex',v.index,'has a weight of',w,'for bone',bone.name)

however I am not sure how to use this vertex index.
is it a direct index into me.vertices? (I sure hope it is)
Please note that I triangulate the mesh before I export it. I keep the vertex order though, so it should be the same.
Here's what I'm planning to do:
My file format has a new kind of line:
vc f f f

and it modifies the f lines:
f position/uv/norm/skel position/uv/norm/skel position/uv/norm/skel

the vc lines were originally designed to hold color information like this
#Solid red
vc 1.0 0.0 0.0
#Solid green
vc 0.0 1.0 0.0

However I realized that this exact same system could contain skeletal animation information.
Here are the steps:
1) Get the 3 most influential weights on a vertex
2) Make them add up to 1
3) Divide them by 2
4) Add the Bone ID to it
Here's an example:
#Bone 1 influences this vertex 100 percent, there are no others
vc 1.5 0.0 0.0
#50 percent influenced by bone 1, 25 percent by bone 2, and 25 percent by bone 3
vc 1.25 2.125 3.125

In order for this to work, I need to figure out how much each vertex (3D point, with X, Y, and Z) is weighted by each bone, pick the top 3 per vertex (and if there aren't 3, stick in a fake 0 bone with 0 weight for every missing spot) and write it to file in VC lines.
If I do this for every 3d point, then I can simply use the same indices as the positions for the f lines.
f A/B/C/A

How could I achieve this?
I assume that there is only one armature in the scene called 'Armature' and that the only mesh currently being exported (But not necessarily the only one in the scene) is influenced by it.
I have access to the list of Objects to be exported, so I can access both the triangulated mesh from bpy.data.meshes[] and the object from bpy.data.objects[]

The objects data property contains the data used to define the objects appearance. For a mesh object that includes vertices, edges and polygons.
While vertex groups are stored within an objects properties, each groups vertex indices are direct indices into the objects data.vertices[] list. These are all kept in sync internally by blender so you don't have to be concerned, unless the mesh gets edited while you are accessing the data.
If you start with bpy.context.selected_objects you can export objects of type MESH. Then look at an objects modifiers list to find a modifier with a type of ARMATURE and get the object property from that to get the relevant armature.


text:
"Cube1", "Cube2", "Cube3" instead of "Cube1.001", "Cube1.002" and "Cube1.003" when Duplicating
When I copy objects, they automatically get numbered with ".001" or the next free decimal available. I often just select the objects in the View layer and rename into "Cube1, Cube2, Cube3" and so on. My question is if there is a way of telling blender to automatically number them in the way I prefer it. When my first cube is called "Cube1" and I copy and paste it, that blender just detects the number and calls the copy "Cube2" and 3 and 4 and so on for every copy instead of the "Cube.001" variant.

You can use batch rename (Ctrl+F2) with a regex to rename multiple objects.. A script that renames objects immediately when they are created will not work properly. Imagine a script that renames 'Cube.001' to 'Cube1' by simply removing the leading '0' (performance). This works. But if there is already 'Cube' and 'Cube1' then Blender still will make the name of a new 3rd cube unique. So the script will rename 'Cube.001' to 'Cube1' and Blender will rename it again to 'Cube1.001'. Then you have 'Cube', 'Cube1', and 'Cube1.001'. Next time the script checks it will rename it to 'Cube11'.

For batch rename, you can enter Find: \.0+(\d+)$ - Replace: \1 and click the star icons to enable regular expressions. This removes the period and the leading 0s in the numeric suffix.


text:
Only paint the paint mask selected faces in vertex paint

I'm using the latest blender stable build: 3.5, in past versions it worked fine to just activate paint mask, and it only painted the selected face. Now, it suddenly stopped working with the latest version.
I don't want the white color in this case to " bleed down " but just the top face to be white. Did I forget a setting? Can you please help me to fix this?

it still works for me, are you sure that you're doing it correctly?

@moonboots I'm doing every step I also did before with older versions

@moonboots What are the steps you are doing it with? Normally, it worked like that:
Add Color attribute, connect color attribute node with the color attribute name to the principled bsdf node in the shading editor, go to edit mode, select the face, go to vertex paint mode, activate face mask, set material view, set colors and such, start drawing.
Now, it still has the bleeding effect.


text:
Auto Smooth looks strange ( custom split normals are not the problem )
I gave Suzanne a voxel Ramesh, activated shade smoothing, activated auto smooth and there are no custom split normals to clear up like it's mostly the solution... What exactly is causing the mesh to look this " grid " way? How can I make it look smooth when all the usual solutions fail?

Hello, maybe you've subdivided it and it tends to flatten the faces, could you please share the object?

@moonboots

It's hard to guess what you've done previously, but anyway your mesh is very dense and it looks like you've subdivided wrongly, like for example you've used the RMB > Subdivide operation instead of applying a Subdivision Surface modifier, doing that will add edge loops without rounding the faces, it will even tend to flatten the faces. Even with a Smoothness value of 1, the Subdivide operation won't act like the Subdivision Surface modifier. You can try to smooth with a CtrlV > Smooth Vertices operation (with Smoothing value at 1 and Repeat at 6), or use the Smooth modifier, it will tend to smooth the edges though:


text:
AgX Colorspace without giving up emission material color?
I like that when I set a cube to have a red emission with the filmic color space that the red cube also looks red and the whole light it emits is red as well.
The new AgX color space allows a higher color spectrum, which is nice for more detail and realism.
However, all my emission objects became very white and not their original emission color.
Is there a way to have the advantages of the AgX color spectrum with the filmic or none color emission? So I don't have to give up more color detail and also don't have to give up my emission colors.
In other terms:
With AgX:

Without AgX:

Is there a way to have the true red within AgX?

https://blender.stackexchange.com/questions/53359/how-do-you-make-an-image-emission-without-washing-out-the-image/ https://blender.stackexchange.com/questions/58272/making-an-emission-shader-emit-a-different-colour-of-light-than-the-colour-assig/

@DuarteFarrajotaRamos thank you. works perfectly


text:
Fix UV Pole Pinching on an environment sphere?
The Famous youtuber blender secrets made a video fixing equirectangular pole pinching on normal 3D objects like a moon as shown in the video:
https://www.youtube.com/shorts/s8ZagRMwP7Q
I tried to apply this to the environment itself, and it does not work, the environment texture is still pole pinched.

I just used this texture for showing the example.
https://stock.adobe.com/images/360-degree-space-background-with-nebula-and-stars-equirectangular-projection-environment-map-hdri-spherical-panorama/266760651
Does anyone know how to fix pole pinching on the environment sphere? Or turn the environment sphere into a cube?


text:
Change the nanosecond markers in the timeline from 00:32 to 00:30
When you press CRTL + T inside the timeline, it changes from displaying frames to displaying seconds and nanoseconds. I have seen that without closely zooming in, the nanosecond and normal second markers are placed at every 00:32 nanosecond, and not every 30 seconds, so, half a second.
I personally want to place a key frame every half a second, every 30 nanoseconds, which means that I always have to zoom in very closely in the timeline to find the right nanosecond.
I wanted to ask if it is possible to change the white nanosecond and second time markers from 00:32 to 00:30 and so on. This is more of a comfort thing and not a bug or a problem, but it would still be helpful, so I don't have to always zoom in..
To show it clearly, I want to change this:

to this:

Of course, set to their correct frame / nanosecond position.

Hello, it seems you misunderstood what the number after the + sign is. They're not nanoseconds (?) but the number of frames since the last second elapsed. This displayed number is dependent on the timeline zoom level which you can change with CTRL + middle mouse while hovering over the timeline, and the number of frames per second, which you can change in the Format panel of the scene output properties. But do note you can't set a keyframe to a particular second or half of a second, keyframes are set on frames, which are independant of the framerate, while time is not.

additionaly to what Gorgious wrote - you doesn't seem to know what a nanosecond is: https://en.wikipedia.org/wiki/Nanosecond#:~:text=A%20nanosecond%20(ns)%20is%20a,nanogram%2C%20nanometre%2C%20etc.) What you see in Blender cannot be nanoseconds - that's for sure.

@Chris and Gorgious Thank you for the clarification. So, is it possible to change the white displayed numbers, including the ones after the +, even when zooming outside? Essentially my original request, like seen in the second picture.

As Gorgious wrote - you set keyframes to frames, not to a time. So i think one way to do what you want would be to zoom exactly in that way, that your chosen framerate fits with your time, so that your displayed time always "hits" a keyframe. But i think you don't want that...

@Chris well yes, I want to set my key frames exactly at half a second, a full second, a full and half a second, 2 seconds, and so on and so forth, I just wanted to change the visual appearance of blender and that part of the timeline to fit better to this workflow, so I don't have to zoom exactly in in the first place.
( I know that I am still setting the keyframes to frames and not to a time, its just more comfortable for me )
I am sorry if this is more of a confusing question or unusual question. I am still thankful for your time investment.


text:
Stop blender creating a copy of a material when copy and pasting an object
Lets say I have a cube with a material called red which just has a red color and I copy and paste that cube. I have 2 cubes and 2 different materials, the one is called " red.001 " and the original one is just " red ".
I usually go to the blender file in the outliner and remove all the unnecessary copies of the material, since I only need one red for all cubes.
While this is not a big problem with very small projects. It can become annoying when I copy a cube 100 times and end up getting 99 copies of the original material, so I have to manually delete all those 99 material copies.
Is it possible with a button or a switch or setting to tell blender to stop doing this? To not copy a material when copying an object with the original material? To just assign the original material to the pasted copy?
It would speed things and up and reduce the total amount of clicks needed. Optimizing workflows in blender is very important.

Can't you just use Shift-D to duplicate the object rather than copy and paste? That way the original material is used on the duplicate.

@JohnEason I do that when this is my intention, sometimes I use the same material for different objects that have different UVs and everything that can't be linked this way. For those cases, this won't work.

@John Eason Oh yes you're right, it seems to be the problem here

Edit: My bad, my solution is for ShiftD, but you're using CtrlCCtrlV.
By default in the Preferences > Editing > Objects > Duplicate Data, Material should be disabled, disable it:

I just disabled it and it still happens :(

How do you duplicate objects? Does it still duplicate materials when starting from a new fresh scene?

@L0Lock He uses Ctrl C Ctrl V, not Shift D, not sure why though


text:
Automatically set the distance of keyframes
Let's say I have an animation where every key frame is set on every 15th frame, after playing it I realize that the distance of the key frames must be shortened, to say, place all the key frames 5 frames earlier, so they have the distance of 10 frames. One key frame every 10 frames.
Normally, I would do this manually which is a time-consuming and annoying process, or I would select all the key frames and scale them down in the timeline.
Even with very accurate numbers when scaling them down, it can still happen that one of the key frames is set one frame too early or too far away, that it ends up on frame 23 or 26 while it has to be on frame 25 which can also break the even placement of the key frames coming after that.
It would be very comfortable if there was a function / feature that does this with exact int numbers, that you just select all the key frames you need, say " shorten distance of keyframes ", type in your int value of 5 in this case, and then they all automatically align evenly with the set distance on the timeline. This would speed up the animation process and make things way more comfortable than before.
Does anyone know if this kind of feature exists in blender or if there is a plugin for it?

Just use simple math: in your example you have to scale the distance in a factor 10/15, wich equals to 0.66666.
So, set the cursor on the location of the first keyframe to scale, select all keyframes that have to be scaled and press S, X, 0.66666, Enter.


text:
Blender texture paint without perspective-paint
In texture painting, the way the object is viewed on is determining how the color is applied. In sculpting mode, this is not the case, as the blue circle around the cursor automatically adjusts it on the top of a face.

I wanted to know if it is possible to use this " on top of a face " way not in sculpting, but in texture painting.
When I normally paint something in texture paint from a certain perspective, it looks fine from that particular perspective:

When in reality, it looks like this:

I basically want to have a feature that makes it not important from what perspective I am painting the cube, so that it always gets applied in a non-stretched way. That the texture painting cursor / circle also automatically adjusts itself on the top of each face. Like seen in the first picture, like with sculpt mode.

I think this doesn't exist yet and it is a request

If you would like to suggest this as a feature you should suggest it on Right-Click Select.

Yes, in texture painting mode, the brush strokes do not maintain the perspective of the surface when painting from different angles. However, in sculpting mode, the brush cursor adjusts to the surface of the model and considers the perspective, resulting in more intuitive sculpting interactions.
However, there is a way to achieve consistent and non-stretched texture painting on a cube. By utilizing UV mapping, you can unwrap the cube's faces and directly apply the brush strokes on the UV map.

By painting directly on the UV map, the textures will be accurately applied to the cube's faces without stretching or distortion. However, please note that this process may have its own minor flaws.

Thank you for the suggestion, but this is not the best way of handling this. Is the "projection paint technique" an official known technique to the 3D world not available in blender, or was it just a description of you?

Yes, you are correct, the suggested approach is not the best way to achieve the desired result.

While the term 'projection paint technique' is known, I have no idea how popular it is in the 3D world, and it is not specifically available as a separate feature in Blender.

However, it's worth noting that the terms 'texture paint' and 'projection paint' are sometimes used interchangeably. Texture paint generally refers to the broader process of painting or applying textures directly onto a model's surface using brushes or other tools. On the other hand, projection paint is a specific technique within texture painting that involves projecting textures onto a model's surface based on its UV mapping.

I apologize for the confusion caused by using the term 'projection paint technique' in this context. It appears that what you're looking for is a tool or feature that adjusts the cursor to the surface of the model and takes into account the perspective while texture painting. Unfortunately, Blender's Texture Paint mode does not currently provide an automatic cursor adjustment feature based on the surface and perspective

It's okay, thank you for the deeper explanation.


text:
How can I mouse scroll zoom towards a selected object?
To clarify, I don't mean the " zoom towards mouse position " button in the preferences and I also don't mean " View > frame selected "
I mean to just scroll towards the currently selected 3D object. A bit like " zoom towards mouse position " in a way that the mouse is always at the center of the object.
How exactly can I do this? Is there a setting for that? To really just mouse scroll zoom towards the selected object?

Not sure that you can. I just hit the '.' (period) key on the numpad, but I'm not sure whay key combination you could use if you don't have a keyboard with a numpad.


text:
Does the blender video Editor has " Smart render "?
When you render a mp4 that has already been rendered, you are losing a bit of quality every single time. A lot of video Editors have an option called " smart render " where this does not happen.
https://helpx.adobe.com/premiere-pro/using/smart-rendering.html as an example

I wanted to ask if the blender video editor also has something like that, to prevent recompression to save quality.

I am not sure enough to provide an official answer, but it doesn't seem so. There doesn't seem to be anything about this in the documentation. It is common to render animations or anything that is still being worked on in lossless formats such as EXR. They of course take a lot of more disk space, but that way you avoid the problems you are talking about.

Additionally to what @MartynasŽiemys says, if you use OpenEXR with the DWAA or DWAB codec it is not a lossless format, but there is no noticeable loss in quality and the files are even smaller than PNG files.


text:
How exactly do you give blender more RAM?
I have a character that has multiple 4K textures, when I finished her I realized that blender slowed down allot in the workspace, the editor itself, using blender itself became very laggy and saving takes 5 - 10 seconds. I did not think blender would have a problem with 4K textures, since it is also used for very high fidelity movie and game production.
I have tried about anything, using better hardware ( a RTX 3060 12GB VRAM ), limiting the textures to 128, closing all other programs, but nothing wants to work. It recently crossed my mind that I never gave blender more RAM. I honestly don't know how this works.
Does blender just take the RAM it needs automatically without me having to manually assign more? Do I have to manually assign more, and if yes, how?
How exactly do I give blender more RAM ? Or is there another way to make blender stop lagging so much with higher resolution textures?

You could change the number of undo steps in the Preferences, depending on how much RAM you have, but that's about it.
You do not need to do anything about Blender and RAM. If you install more physical RAM to your computer, the OS will use it and dedicate it to Blender as needed. There is no need to "optimise" anything for Blender and it should just work on any new computer with up to date drivers. In fact, it would be better if you do not attempt to "optimise" anything unless you know exactly what you are doing, and even if you do, any possible "optimisations" are not going to change much and it is also possible to cause problems by changing OS RAM management or GPU driver settings while trying to optimise, so it is a good idea to just leave it alone - Blender will work just fine without any extra changes.


text:
Copy a parented object and paste it inside the parent without duplicating the parent
Let's say that I have a cube, gave it a light object, set the cube as the parent of said light.
Now I want to copy the light 6 times and place it on all 6 sides of said cube.
When I only selected the light in the scene view and, copied it and pasted it 5 times, I ended up getting 5 additional cubes with the one light.
My question is essentially how I can only copy the light and paste it without pasting the parent, like a "child only copy and paste". That they all are children of the cube, without additional cubes or something like that.
Yes, of course, I can just set the newly pasted lights without a parent and then select the first cube as their parent and delete the 5 other cubes. But this feels a bit unnecessarily slow, especially when I want to have hundreds of children.
Do you know of any kind of way to do the " child only copy and paste " idea?

The common way to get more copies of objects in Blender is not copying and pasting with Ctrl+C and Ctrl+V, but duplicating with Shift+D or Alt+D if you want to link the data between the duplicates, as Martynas mentions in his answer. So his answer is complete and correct and you should accept that, I just wanted to additionally explain an advantage the Duplicate tool in Blender has over copy+paste.
Duplicating also allows you immediate movement (even on a constrained axis) or rotating or scaling when you create the duplicate, whereas copy and paste simply gets a copy in the same spot. This way you can very simply replicate the duplification and movement multiple times with Edit > Repeat Last, shortcut  Shift+R:
For example, you select a cube and press Shift+D to duplicate it. While the duplicate is still hovering under your mouse cursor and you did nothing to confirm the action, you could now enter X, 5, then LMB or Return and the duplicate would have been moved 5 m on the X axis.
And now you can repeat this action with Shift+R and automatically get another cube 5 m away of the second cube in X direction. And repeat it over and over again to create a long row of cubes.
Instead of moving you could also rotate or scale the duplicate, you just have to press R or S to switch from translation to rotation or scaling.
With copy+paste this repeating action would not be possible, since Shift+R only repeats one last action. And while the transformations are done while duplicating this is seen as one action. Copying and object and then pasting it results in pasting as the last action. Repeating now would only repeat pasting an object. Moving and object after pasting it will make the movement the last action, so only moving the object will be repeated, but it will be the one you pasted, not a new one.

Also it's worth noting that copying and pasting copies all data related to the object so it creates possibly unwanted copies of materials, textures, particle systems data, parent objects and what not, while duplicating takes care of all connections to the stuff already existing in the scene which is in most cases the more desired result.

@MartynasŽiemys Yes right, but I guess the user partly already realized this, since this is what made him ask if there is a way to copy just the desired object without the connected stuff ;)

Thank you, that solved it!

There is not much to it. Hit Shift+D for duplicate or  Alt+D for duplicate linked so the copy shares data with the original.

Thank you, that solved it!


text:
Batch export 1000 .glb files
I’m trying to batch export 1000 .glb files with a script. the model I want to export uses an image sequence as a image texture that is cycling through 1000 different images. there is also a counter as text object in the scene that is going from #0001 to #1000 (from frame 1 to frame 1000).
When I run the script I can successfully batch export the models at each frame showing the correct number in the text counter but the texture with the image sequence remains the same in each exported file. it will always have the texture of the current frame that is selected in the timeline…
I’m using this script that I found on a forum and modified to my needs to display the model in a correct way while also minimizing the file size of the .glb files:
import bpy

# First frame to export
frame_start = 1

# Last frame to export
frame_end = 1000

# Filename
filename = "my-model"

for f in range(frame_start, frame_end + 1):
    bpy.context.scene.frame_set(f)
    bpy.ops.export_scene.gltf(
        filepath="%s.f%04d.glb" % (filename, f),
        export_animations=False,
        export_current_frame=True,
        use_visible=True,
        export_materials='EXPORT',
        export_extras=True,
        export_apply=True,

    )

```

Hello. Is this procedure related to NFTs ?

Hello! Yes I'm working on a 1k project where i need to export a "glass cube" with a card inside. Everything works out in the viewport or when exporting manually (export, move 1 frame forward, export, and so on)

Do you have multiple uv maps for each object? How do your material setups look like?

@Timmethy the cube uses only simple principaled bsdf materials that are exported without problems (glb compatible) the card inside the cube uses a image sequence as texture (uv unwrapped with cube projection) for base color, and also an image sequence with metallic maps for the metallic input. The roughness is set at about .4 and i left all the other parameters alone as they are not supported by the gltf binary format. Thank you for your reply.

@Timmethy so to answer your question i unwrapped the uvs once for base color texture and the metallic automatically uses the mapping of the base color, so i didnt have to unwrap the metal map texture.. i hope this makes sense, english is not my first language

Do you have auto-refresh checked in your image sequence nodes?

yes here is a pic of my node setup:
https://ibb.co/Chzf8wX


text:
Cloth doesn't collide on the character's surface
I want to use Blender's cloth simulation to add a jacket to my character, but when it collides, the jacket ends up moving inside the character's body.

I have checked that the normals of both the character and the jacket are facing outward.

I have also tried adjusting the distance setting in the object collision properties.

I’ve also made sure that the cloth modifier is below the armature modifier in the stack.

But, the issue still exists

"I’ve also made sure that the cloth modifier is below the armature modifier in the stack." <-- the jacket that you want to sew should only have a Cloth modifier, no Armature modifier. In addition, I would limit the Max Sewing Force. A value of 0 means no limit and this can pull the cloth mesh into the body because the force is too strong. Try 5, 12, 20 or 50 or even 80. The value depends on the number of vertices and the Cloth > Physical Properties > Vertex Mass, among other things. Try a small value and increase it if needed.


text:
Curve Modifier problem while making a Rolling banner for VFX Video
I was trying to create a VFX video have a rolling banner on a building  and now I have a problem regarding the Curve modifier.
I already subdivided the plane and set origin to geometry , applied all , when I am trying to make the plane roll on the object, it's not rolling at all or rolling on different direction at all.
Anyone knows the reason behind that and how to fix it?
I am following this tutorial
https://youtu.be/75HJKMdTpc0?si=doo4cMJ8cntzrNfj

Without having your file to inspect, it is really hard to tell just from a few screenshots. But honestly, you are watching a tutorial where it works, so I assume that like in many other cases here the problem is, you did not follow the tutorial thoroughly enough and missed something. I always recommend watching the tutorial again and paying close attention to hwat they are doing there. Another possibility is, since you are using a different version than the tutorial, some things might work different now. But you cannot expect us to do a complete tutorial to see where the versions differ.

please share your file: https://blend-exchange.com/


text:
How to resolve data_path when inserting keyframe in my situation?
def testAnimation():

  scn = bpy.context.scene
  arm = bpy.data.armatures["Rig"]
  rigobj = bpy.data.objects["Rig"]
  scn.objects.active = rigobj
  rigobj.select = True

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

  boneSelect = bpy.context.object.data.bones['RThigh']
  boneSelect.select = True

  bpy.ops.transform.rotate(value=(0), axis=(1.0,1.0,1.0))
  boneSelect.keyframe_insert(data_path = "location", frame = 0.0)

  bpy.ops.transform.rotate(value=(math.pi*0.5), axis=(6.0,80.0,40.0))
  boneSelect.keyframe_insert(data_path = "location", frame = 100.0)

  bpy.ops.transform.rotate(value=(math.pi*0.5), axis=(1.0,0.0,0.0))
  boneSelect.keyframe_insert(data_path = "location", frame = 200.0)

  bpy.ops.object.mode_set(mode='OBJECT')
  scn.update()

I have tried placing many variables in data_path, but it comes up with a TypeError. What should I place in my data_path for it to take the new transformation?
Thank you for your time.

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


text:
How do I get the filepath when I import a file?
I am trying to create an import script, I just need to get the filepath as a string to execute the rest of my functions. How can I do that?
Below is the visual example of what I want to get.

This general implementation for file based actions is to use in-built mix-in classes, bpy.types.Operator, bpy_extras.io_utils.ImportHelper.
ImportHelper & ExportHelper are wrappers for FileSelector.
import bpy
from bpy_extras.io_utils import ImportHelper, ExportHelper

class NifImportOperator(bpy.types.Operator, ImportHelper):
    """Operator for loading a nif file."""

    #: Name of function for calling the nif export operator.
    bl_idname = "import_scene.nif"

    #: How the nif import operator is labelled in the user interface.
    bl_label = "Import NIF"

    def execute(self, context):
        path = "Importing " + self.properties.filepath
        self.report({'INFO'}, path)
        return{'FINISHED'}

Once your class is registered(see below)), it can be invoked via console.
bpy.ops.<bl_idname>('INVOKE_DEFAULT')

bpy.ops.import_scene.nif('INVOKE_DEFAULT')

The addition of the ImportHelper/ExportHelper, a new attribute is defined in the self.properties of the operator (filepath).
In the above, because we did not set that attribute, you will get the FileSelector.
The filepath attribute will be set to the value of the url bar.
Alternative method of invocation via search bar or menu, will produce the same default invocation.
ImportHelper also allows you to pass in an explicit argument "filepath" into the operator.
bpy.ops.<bl_idname>(filepath="")

bpy.ops.import_scene.nif(filepath="C:\\mypath")

This will skip, the FileSelector.
In either scenario, the execute() method defined in your class is then called.
The filepath is now accessible via
    self.properties.filepath
With this now accessible, you can do whatever you want with it, my sample below just reports it to the info bar.

Full Sample
import bpy
from bpy_extras.io_utils import ImportHelper, ExportHelper

class NifImportOperator(bpy.types.Operator, ImportHelper):
    """Operator for loading a nif file."""

    #: Name of function for calling the nif export operator.
    bl_idname = "import_scene.nif"

    #: How the nif import operator is labelled in the user interface.
    bl_label = "Import NIF"

    def execute(self, context):
        path = "Importing " + self.properties.filepath
        self.report({'INFO'}, path)
        return{'FINISHED'}

def menu_func_import(self, context):
    self.layout.operator(
        NifImportOperator.bl_idname, text="NetImmerse/Gamebryo (.nif)")

def register():
    bpy.utils.register_module(__name__)
    bpy.types.INFO_MT_file_import.append(menu_func_import)

def unregister():
    bpy.utils.unregister_module(__name__)
    bpy.types.INFO_MT_file_import.remove(menu_func_import)

if __name__ == "__main__":
    register()

@stacker - Good catch, didn't notice the error as I had the real plugin enabled. The code was copied somewhat ad-verbitim. Our plugins separates out operators from where the guis are init'd __init__, this is normally passed through via self.operators, but it won't exist. Updated with the correct code, verified menu works.

This opens a file browser and prints the filepath to console.
Without the ImportHelper
import bpy

class OpenBrowser(bpy.types.Operator):
    bl_idname = "open.browser"
    bl_label = "Minimum code to open browser & get filepath"

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

    def invoke(self, context, event): # See comments at end  [1]
        context.window_manager.fileselect_add(self)
        #Open browser, take reference to 'self' read the path to selected
        #file, put path in predetermined data structure self.filepath
        return {'RUNNING_MODAL'}
        # Tells Blender to hang on for the slow user input

In the register function at the end of your file
def register():
    # Tell Blender this exists and should be registered
    bpy.utils.register_class(OpenBrowser)

It also needs to be unregistered
def unregister():
    bpy.utils.unregister_class(OpenBrowser)

In this Operator the invoke function is called as soon as you trigger bpy.ops.open.browser. Usually from a UI layout, like:
# inside your draw function of a menu, or panel.
row.operator('open.browser', text='', icon='FILE')

The execute function is where you can process the self.filepath further.

import helper is needed if not self.filepath gives an attribute error

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


text:
Modeling a Mambele
I am attempting to model a mambelle, a sickle sword, and I am using curves to try and model. I am running into issues where I get the only partial outline, or I get the outline but the model is solid.  What would be the best way to approach this?
I have attached the picture of the weapon. My experience level is noob, I understand the controls and I know some modeling techniques while making potholes for a video game I want to develop, any help would be greatly appreciated.

Can you add a picture of what you have been able to produce so far?

I'm not clear about what you want and what you are seeing. As Sazerac says, a screenshot would help. Some things to try would be alt-C to open/close the curve/loop and playing with the options in the Object Data (curve) panel which gives you things like 3D/2D and Fill Mode.

why are you using curves? It would be easier with vertices, just follow the blade profile, and make a different mesh for the handle

Thank you all for the input, I did start all over and used vertices, but I will try again using curves just to better understand how they work.

Start out by getting a reference image into blender. Using 2.8, I did Add > Image > Reference, and chose the image I wanted to use. Then I positioned a cube along the blade like below:

(I rotated the image so the handle matched up with the y axis just for convenience, but that isn't really necessary). Also make sure your viewport is looking directly down from above (you can use View > Align View >Align View to Active > Top) when adding the reference image.
In edit mode, I then extruded the top and bottom of the cube following the image, so that it matched up from the top (make sure you are in top view and have orthographic view on for this part, as it makes it easier).

By repeatedly extruding and scaling the ends of the cube, I got it to match up to the handle.
I then repeat the same process for the blade, except make the cube thinner on the Z axis first.

After it looks how you want it on the top, switch out of top view so you can make sure it looks how you want it on the z-axis, I needed to scale mine down a lot.
Then I just add in some materials, one of them being metallic for the blade, the other brown for wood, and I was done. I also added in a Subdivision Surface modifier so it looked a bit smoother.
Result:

I hope this helps, let me know if you run into issues.

thank you so much! It does help, and i hope you will see just how this model plays into what we're planning!


text:
why doesn't Rigify work?
I am attempting to rig a character for animation,
first, the parenting function doesn't work instead of making the mesh the parent, it makes the rig the parent. I have to go into the properties window  and manually select object.
Next,when that is resolved and want to test to see if the mesh and rig move, the bones ARE NOT attached, and in some instances i can't select individual bones.
I have tried different models, all with the same result.
I would love to use Blender to animate (also, the animall plugin doesn't work either) to animate a short series, but I can't even get the characters rigged.

For more clarification:
Did you select the mesh then the bones before parenting?
if so did you click on the "Automatic weights" option?
finally are you moving the bone in pose mode?

I selected the bones first, then the mesh, I used the auto weights, and yes, I am able to move the bone, but mesh does not follow