text:
Bones import incorrectly from FBX file
I tried importing UE4's marketplace skeleton template into blender. But the bones import with incorrect rotation and size as shown bellow.

The weights seem to be working, I can pose the character. But the IK constraints doesn't seem to work. I thought of manually rotating them all myself, but according to UE4's marketplace submission guidelines, that would break compatibility. How could I fix this?

the official importer is embroiled in license conflicts, so you might want to try this other *.fbx importer add-on http://blenderfbx.render.jp/ that uses the official fbx toolkit by Autodesk (but still is not 100% compatible with every fbx feature).

currently in the official FBX importer only bones are imported into blender, no constraints are imported.

Enable all these options while you import:

Import User Properties
Import Enums As Strings
Ignore Leaf Bones
Automatic Bone Orientation

There is no support for importing IK setups from FBX.
The reason the bones point in weird directions in your screenshot is that Blender only supports bones pointing in a uniform (+Y) orientation, while FBX allows each bone to point in a unique orientation.
There is no way for Blender to represent a bone-orientation per-bone, so there is no way to correctly import/export an FBX with unique bone orientations per bone.
If you turn on the bone-axis display in Blender, and think about which axis the bone should be in your model, you'll see that in your skeleton it's different for each bone. For example, in the UE4 mannequin, one leg's bones should point in +X while the other should point in -X.

If you use Blender FBX Import's "Automatic Bone Orientation", it may fixup each bone individually, and they may look fine in Blender. However, the skeleton is no longer the same as the one in the FBX file, so exported animations will not match up with that original skeleton in UE4.
I know of two ways to deal with this presently.

You can standardize your work on a Blender-compatible skeleton with all bones pointing in +Y direction. The easiest way to do this is to make your original skeleton rig inside Blender, and then export it to the other tools.

You can import your skeleton with "Automatic Bone Orientations", which will effectively make a new skeleton. Then you import that skeleton into UE4, and import all your blender animations into UE4 using this new "+Y bones" skeleton. If you need them on another skeleton, use UE4 retargetting to convert them while inside UE4.

You can read more here..
https://developer.blender.org/T53620#1225926


text:
Separate by loose parts creates weird pattern
I'm building a submarine for 3d printing and I have a removable top lid that I want to remove from the model to machine separately. I do a SHIFT+D on my selected area and when I move it off and do a separate loose parts to make the objects independent, I get this weird staircase pattern on the back of my boat.
What is this and how do i fix it?

Is this the result you're looking for?

If so, then, yes, the problem was duplicate vertices - 222 to be exact. Select the whole thing, go to Mesh> Clean up> Merge by distance. When I did this, I still noticed two stray edges bisecting planes near the back (second time I tried I found only one for some reason) - look for them, select them, right click and choose "dissolve edges".
After that, re-select the area you want to duplicate/separate, and it should work the way you intended.
Also, is there some special reason you're separating By Loose Parts, instead of by Selection? By selection is what I used without thinking, and I can guarantee it works (I tried both ways and they both work).

Just tried it. Didn't work. I found another clue. If I go into edge select mode, and try to select a block of edges, it highlights the faces if the face is enclosed by the selected edges, except for these offenders. It captures the edges but not the faces. I'll paste a pic above.

Sounds like there might be some duplicates of something somewhere. Any chance you could post the .blend file? You can do it here - https://blend-exchange.giantcowfilms.com/

Blend file attached!

Ok, I edited my answer. have a look.

Thank you! Thank you! Thank you!

source: Stack Exchange

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

sort: votes


text:
Gouging a constant-depth path in variable-height terrain
I have a large model (38M tris) of terrain (from LiDAR scans).

I will soon have a series of 1D paths, geolocated points representing detailed lat/lon gps coordinates along walking trails. These points will not have accurate elevation data.
For each trail, I want to conceptually:

Widen the infinitely-thin 1D path along the points to give them a set width (roughly "stroking" the path).
Lift the points of the path up to slightly above height of the terrain, and then
Lower the path straight down in Z to a certain offset depth, burning away the terrain

The end result would be as though a team of crack excavator operators dug down a specific depth all along each path, carving straight walls down. For example, if there's a winding path going up a mountain side, and the desired depth is 3 meters, then there should be a log flume with 3m walls etched into the terrain where the path is.
In case it matters, the end goal is to use the resulting mesh to carve a piece of wood to match the terrain, with slots along each path that I can use to highlight the path.
How would I possibly accomplish this with Blender? Is a boolean modifier a reasonable choice for the end step?

Edit
I was able to "stroke" the 1D curves to a fixed width using the Bevel option under Object Data Properties, selecting the Object mode, and choosing an object that was a two-point straight curve segment of the width I wanted. I then converted this curve into a mesh before performing the knife project from the accepted answer.
Using knife project works reasonably well, with two caveats:

Where curve segments overlap, or even self-intersect, faces end up not selected:

There appears to be some implicit tolerance in the knife projection that prevents it from creating clean edges that match the curve. Notice the polygons that are outside the curve, and the few cases where the curve exists but no polygons are selected:

How will be the "series of 1D paths" : do you have a huge spreadsheet file with lat/long to convert to Blender, or do you have curve objects in Blender with correct x,y coordinates ? Besides of that, I think I understand what you want to achieve but a sketch or simple visual example would quite useful.

@Lutzi I will originally have spreadsheet file to convert; I haven't picked an import format yet, but let's assume that I get each path converted into a Curve.

If if actually continuous paths that need to be carved, I'd do it like this:
You can take the paths and convert them to a mesh if they are curves, then add a skin modifier. Lower the radius so it's not very thick.
Apply the skin modifier and delete all the faces that are not pointing up. You can select one up facing face and then hit Shift+G->Normal to select all of them, Then Ctrl+i and delete the other faces. The pints where 2 paths meet might need some clean up.

This leaves you with a 2D set of paths that you can use in knife project. With the paths above the map, select the map and go into edit mode. Deselect everything and select the paths by pressing Ctrl+RMB on the other object. (Or LMB if that's what you use to select). Then, looking from above, go to the knife project tool:

This will project the 2D paths into the landscape with the cut selected. You can add them to a vertex group so they are easy to select later:

From here you can either move the selected faces down manually with proportional editing active, or you could give it a displacement modifier with the vertex group as the limiter.

Given that I'm starting with 38M triangles, I'm concerned by any steps where you say "manually". :) But otherwise, very helpful, thank you.

Thank you for this answer. Works pretty well. If you care, I've edited my question with a few screenshots showing caveats of this result.

If you have different points without the height converted into vertices, you can use a shrinkwrap modifier, in projection mode on the Z axis (with negative checked) to flatten them to the surface.

The 'offset' at the bottom of the modifier lets you burry them or place them above at the specified height.
If you want to dig holes at this location then yea, a boolean would work fine I think.
You can use a geometry nodes setup to turn the vertices into cylinders like this:

You need to create the cutter object separately. A cylinder with the origin at the bottom face would be fine, tho you can also give it a tamper and make the top face wider or give the bottom a round end if you need to.

The geometry node setup creates copies of that cylinder where the points are and makes them real, so you can use them in the boolean.
You will have to apply the shrink wrap modifier first or it will get confused when it tries to project over the holes
You'll also need to make the map solid before using a boolean on it. You can select the edges of the square and extrude them down, then scale them to 0 on the Z axis and fill the gap with 'F'

I think Phrogz needs a path with thickness, not just individual points. Else I misunderstood the question.

@Lutzi is correct; I'm sorry I don't have the data to show what I mean, but I need to take a 2D curve, give it width, loft the points to sit along the terrain above them, then carve down from those points a specific depth from the surface.

Ok, never mind the other answers. They work, so I won't delete or edit them, but I've found a much easier way:

Take your curve paths and convert them to a mesh. Then use Shrink wrap to project them onto the terrain like in the other answers and apply the transformation
Then you go to the terrain and add all the geometry to a vertex group.
Then add a Vertex Weight Proximity modifier with the paths as the Target object and affecting the vertex group you just created.
Then add a Displacement modifier with the the vertex group and set it to the Z axis.
The Midlevel on the Displacement modifier will control how deep the groove is. And the 'Highest' setting in the Vertex Weight Proximity modifier controls how far from the paths the mesh is affected. You can change the fallout type as well to make it sharp or smooth.
The controls are a bit wonky but I think it's a lot easier than the other method. It doesn't involve manual anything and can be adjusted as needed.
This method raises the terrain while not affecting the part next to the path. I don't really know how to make the area next to the paths go down instead, but if you don't want the geometry to move up, simply add another displacement modifier with the same settings and Midlevel but negative Strength and no vertex group. This will move the whole thing down the same amount.
The lower area might look like a series of cones instead of a smooth groove depending on how dense and big the path mesh is. If this is the case, add a subdivision mod to the path mesh to increase the amount of vertices.

I guess there might be a reason to choose Boolean over Displacement, if OP's intention is to inlay a strip with a  consistent rectilinear profile? The cut might conform to a strip more accurately than the non-planar faces.. but yes, both ways will have their own gotchas.,

@RobinBetts with this method the falloff mode can be adjusted to be a constant mode as well. If the terrain has 38M faces I don't think the unsharp edges will be that noticeable. Tbh with that geometry density I'd be surprised if the boolean actually works without exploding the pc

Yup, true, to all intents and purposes.

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


text:
Reducing the time it takes to calculate a scene before every frame when rendering an animation?
When rendering an animation in Blender, before every frame the scene is calculated and updated. ("updating Scene, updating Images, updating Lights, loading HDRI...") In my case this takes a considerable amount of time -currently around 10s per frame, which is more then the the actual shading for each frame usually takes. (cycles, on a GTX 3090 with a very low sample count for non-final animations) It really adds up.
When I play the scene in the viewport in solid mode it performs close to realtime (around 30fps). When i change the 3d view to rendered it still manages to "start" rendering 2-3 frames per second in the viewport.
Is there a way to have that as well when exporting the animation? -at least for the rendering of non-final animations?

You should enable Persistent Data in Properties Editor > Render tab > Performance panel.
Blender Manual — Persistent Data

THANK YOU. That's so much better now. :)

Glad I could help!


text:
How can I access an extension preferences with python?
I would like to make a mini backup python script of 4.2 extension.
The old method can access to the preference like below.
addon_prefs = bpy.context.preferences.addons['auto_rig_pro-master'].preferences
basePath = r"/mypath//"
addon_prefs.custom_armatures_path = basePath + "Armatures Presets"

but new extension method can't access by ARP_MT_arp_addon_preferences.custom_armatures_path.
How could do I do?

How can I change Blender's Scripts Path in preferences with Python?

Have you tried bpy.context.preferences.addons[__package__].preferences ?

what do you mean by "new extension method can't access by ARP_MT_arp_addon_preferences.custom_armatures_path ? It doesn't seem relevant to the code you show above, and that code works on my end. Though admittedly this a legacy addon, not an extension. Do you mean to ask the equivalent for extensions?

Thank you for reply! Are your Auto-rig version is older than 3.72.23? This code was fine till previous one.

no i use that very version

The method hasn't changed AFAIK, but I reckon the module names are a bit different. While legacy addons ca be assumed to simply be the .py's name or module folder's name, the extensions' module seem to be prefixed with bl_ext.blender_org.. (And perhaps extensions from platforms other than the BF's official extensions platform would have their kwn prefix too?.)
Regardless, if you want to be sure of the module name to use, you could always ask Blender directly, in its Python console:
>>> print(*bpy.context.preferences.addons.keys(), sep='\n')
io_curve_svg
io_mesh_uv_layout
io_scene_fbx
io_scene_gltf2
cycles
rigify
node_wrangler
bl_ext.blender_org.viewport_pie_menus
bl_ext.blender_org.amaranth
bl_ext.blender_org.screencast_keys
bl_ext.blender_org.matalogue
(and so on...)

Then you can copy and paste in a text editor to search what you want.
3D Viewport Pie Menus is an extension, we can see it in the list as bl_ext.blender_org.viewport_pie_menus. So its preferences are accessible from bpy.context.preferences.addons['bl_ext.blender_org.viewport_pie_menus'].preferences. Proof:

You are right! I can find those from print. "bl_ext.user_default.skin_selection" "bl_ext.user_default.auto_rig_pro_quick_rig" "bl_ext.user_default.auto_rig_pro"


text:
Is there any way to import Shader animations to unity.?
I am building a glowing platform for my 3D game. I used Cycles' Emission node mixed to the Diffuse node to create a glowing effect with keyframes on the Mix Shader's factor to animate the glow intensity through time.
The effect works perfectly in Blender, but not in Unity.
Here is the image of my material nodes:

Render out an animation of your effect, then stick it on a plane in unity.

I am sorry, as a beginner in blender its hard for me to understand your direct answer. Some details will be appreciated.

I am sorry it took a while but I understood your answer, I tried, first I inserted a key at fac 0 and after 6 frames at fac 1 inserted another key then again at frame 12 i inserted key at fac 0: then imported fbx file to unity, creates an animator , then created new state, loaded that particular glowing animation of 13 frames but it didn't worked.

You can't directly export blender materials to unity. The standard shader in Unity features an emission slot though, which will accept a glow map (or simply just a color).

Thanks buddy for your help, now I am looking for how to create glow map.


text:
using cycles render cause specical areas darker
this is cycle render, then it cause the leg color mismatching and darker.

and this is the eevee one, render well

Duplicate 3D mesh overlap gives this errors,cycles can't handle this sitution, so i need to remove the overlap face.

To remove overlapping faces is always a good idea to get better geometry, not only if you are using Cycles.


text:
Bones in finger rig deform incorrectly
I've rigged a low-poly character and everything works as intended... Except the fingers! No matter how much I change, re-align or unparent and re-parent. One joint will move multiple fingers, or one joint will control a completely different finger.

Please share your Blend file. You can share it via https://blend-exchange.com/ following the instructions there to copy the full link on that page. Then edit your question here and paste the full link into it.

The face normals are inverted on the hands of your model as you can see if you turn on FaceOrientation on the Overlays menu (arrowed). - Red is inverted. Blue is correct.

Go into Edit mode with your model selected, Hit A (all) then Shift-N to recalculate the Normals. Then reparent the armature and everything should work correctly.

Thank you so much, you don't know how long that had me confused. Can I ask how did you even think of that? And how could it have happened? I'm really new to modelling and rigging - really appreciate it

I'm not sure how it could have happened assuming the model was all made as one piece. However, checking face orientation is one of the first things that I do routinely (along with merging vertices by distance) if someone has a problem with rigging.


text:
Render face of a mesh using bpy?
Im trying to write a script for baking all the faces of a mesh with whatever renderer is used in the viewport.
At first, I was gonna move the viewport around and take "screenshots" of each and every face (and then assemble the images according to fit into the mesh UV map) - however I couldnt find a way of enabling near clipping plane in orthographic view(I need this to prevent other faces form blocking the view). So I then had a go using an orthographic camera instead (solving the issue, as cameras wont render what is behind them):
import bpy, contextlib, bpy_extras, mathutils
class ObjectMoveX(bpy.types.Operator):
    """My Object Moving Script"""      # Use this as a tooltip for menu items and buttons.
    bl_idname = "object.move_x"        # Unique identifier for buttons and menu items to reference.
    bl_label = "Move X by One"         # Display name in the interface.
    bl_options = {'REGISTER', 'UNDO'}  # Enable undo for the operator.

    def execute(self, context):        # execute() is called when running the operator.
        print("Meow")
        context=bpy.context

        # @note Basic camera setup
        bakeCamName="bakeCam8102361"
        bakeCamDataName="bakeCam8102361Data"
        with contextlib.suppress(KeyError):
            bpy.data.cameras.remove(bpy.data.cameras[bakeCamDataName])
        with contextlib.suppress(KeyError):
            bpy.data.objects.remove(bpy.data.objects[bakeCamName])
        camData = bpy.data.cameras.new(bakeCamDataName)
        camData.type='ORTHO'
        cam = bpy.data.objects.new(bakeCamName, camData)
        bpy.context.scene.collection.objects.link(cam)

        for obj in bpy.context.selected_objects:
            if obj.type=='MESH':
                data:bpy.types.Mesh=obj.data
                for face in data.polygons:
                    face:bpy.types.MeshPolygon

                    region3D:bpy.types.RegionView3D=bpy.context.area.spaces.active.region_3d
                    # region3D.view_perspective='ORTHO'
                    # region3D.is_orthographic_side_view=False
                    bpy.context.scene.camera=cam
                    region3D.view_perspective='CAMERA'
                    longestEdgeWorldSpace=max(*[mathutils.Vector(obj.matrix_world@data.vertices[vertexPair[0]].co-obj.matrix_world@data.vertices[vertexPair[1]].co).length for vertexPair in face.edge_keys])
                    # viewDistance=1.3*longestEdgeWorldSpace
                    viewDistance=longestEdgeWorldSpace

                    cam.location=mathutils.Matrix(obj.matrix_world@mathutils.Matrix.Translation(face.center+face.normal*viewDistance*-1)).translation
                    cam.rotation_mode='QUATERNION'
                    cam.rotation_quaternion=mathutils.Euler(obj.rotation_euler).to_quaternion()@(  mathutils.Vector(face.normal*-1).to_track_quat('Z','Y')  )
                    region3D.view_camera_zoom=29.2
                    region3D.view_camera_offset=(0,0)

                    # region3D.view_distance=viewDistance
                    camData.ortho_scale=viewDistance
                    region3D.update()

                    bpy.ops.render.opengl() # @note Obviously I need to store the render somewhere as "Render Result" will get overwritten over and over again, but I'm omitting that code to keep this snippet relatively short

        return {'FINISHED'}

bpy.utils.register_class(ObjectMoveX)

Which seems to work just fine, however I really I dont like the idea of manipulating the Blender scene (adding a camera and moving it around) just to perform some simple renders/screengrabs.
Is there any other way that I could "render each face" of a mesh individually (that doesn't involve a camera)?
Thanks

With Cycles you can use baking but EEVEE and the viewport renderer does not support baking.
You can't render without a camera. The viewport is also a camera you have to position.
To avoid other faces while rendering you can for each render change all materials so only that face is visible to the camera using Light Path > Is Camera Ray node.
To get a single face mask for each face you can set vertex colors for each loop via the Python API.
Mix Is Camera Ray with the face mask with a Math node set to Minimum and use it as a mask for Mix Shader for Transparent BSDF.

Thanks for the response.Maybe my question wasn't quite clear. By "Camera" I was refering to a

A Walter White?

Yeah lol, I hit enter and it sent the comment!

So what I was gonna send was:
Thanks for the response but I was mostly interested in ways that I can perform the actual render (as opposed to manipulate the scene or already rendered pixels).
My goal is to either:
A: get an array of pixels that describe a particular triangle of a particular mesh.
B: Get an array of pixels that describe the scene in orthographic view with the current viewport render properties, culling out anything that is behind a particular point in 3D space -  without involving a camera object.

Ive been able to figure out as much as that I can perform a "render" of whatever is displayed in the current viewport by https://pastebin.com/4jwwHiSm
Which works just fine, its just that the viewport has no near clipping plane whilst in orthographic mode, so if I were to use this to render out triangles, I would end up capturing too much of the stuff in front of the triangle (hence Im using a camera currently as it omits anything behind the camera, as shown in the sample code in my original question).

I suppose a shader based solution like you suggested could work, but again - I really dont want to manipulate the blend file (partially for performance reasons and partially because I dont want to upset people by breaking there Blender scenes when my addon fails)
// Willy Wonka (hehe, no thats not my real name :) )

The process should be real-time?

Not quite, but it would be damn cool if that was possible! I just want it to be fast enough to handle mid poly meshes without it taking half an hour to render.
For performance reasons, I'm however planning on using GLSL to assemble the per-face renders to the final image that fits the mesh UV map (I think I can figure this part out on my own).

You can write the data blocks to a .blend file, read the .blend from another subprocess Blender instance, render it and send back to the main instance. And why not just baking?

I don't use Cycles. Ive seen addons fire up background processes as well, its just that they're usually rather slow. I'm hoping for the entire program to run in a handful of seconds at most.

The subprocess approach is used in https://blendermarket.com/products/node-preview and its developer is the developer of https://github.com/LuxCoreRender/BlendLuxCore.


text:
Bump and Displacement Fails to Render in the FINAL Render
I've got a interesting problem where my render is set to displace and bump in the material settings, and when set to the cycles engine, renders just fine with all my textures including bump and displacement. I've tried googling the absolute hell out of this but people have problems in other similar, but not exact areas. Here are some photos of my shader (Which I doubt, as it works in the viewport, just not final render). And an image to show you guys the before and after render. The shader is just a sample cause it's huge, but its all the same, just with different textures blended in. Here is an example of 1 plus the mix shaders and their masks.

… You just described not having a problem: “renders just fine.” Where is the issue?

The viewport renders it fine as shown on the right. But when you press F12, and go through the final render, it does not.

Oh, I see. Hmm… modifiers?

No modifiers whatso ever, except for a subdivision subsurface modifier.... Which is actually a good point and might need to be applied brb.

Check that the subdivision surface modifier has the same number of view port subdivisions and render subdivisions. I suspect the viewport subdivisions are turned up but the render subdivisions are turned down.

Thank you so much, I can't begin to express my thanks. That was exactly the issue.

I had the same problem. I realized you have to change the material settings on all materials you want to display the displacement. Materials Tab> Settings> Surface> Displacement> "Display Bump and Displacement" or "Diplays Displacement only"

Remember folks, look over an unapplied modifiers and you might find your problem. In my case the subdivision modifier wasn't applied, and there for creating a lack of geometry for any bump to take place.

Was it that that modifier wasn't applied, or did it just have a fewer number of subdivisions set for the render than it did for the viewport?


text:
What exactly does the "Use 3D Viewport" rendering option do?
There is an option when you press the shortcut to render (F12 by default) to Use 3D Viewport.
The tool tip describes this option as:

When inside a 3D viewport, use layers and camera of the viewport.

What is meant by "of the viewport"? Conversely, I don't see how a Camera or View Layer could not be of the Viewport - unless it's hidden. But if you Hide an object in the Viewport, it still gets rendered. So, what does this option do? Comparing renders when it's enabled and disabled, I'm not noticing a difference. Thanks.

As far as I can tell this is for use together with Local Camera feature of a viewport, or the now possible multi-window workflows.
Using local camera you can have any viewport display an arbitrary camera other than the one defined as active camera in the Scene tab of the Properties Editor.

Rendering from such viewport would potentially lead to unexpected behavior, as the produced image would not match the view angle currently visible in a 3D view, since by default Blender would be rendering the scene active camera, rather than the one you would be seeing through.
With Use 3D Viewport option checked you render what is actually displayed in the current 3D View the command originated from, using context as deps-graph source, regardless of default scene settings.
I suspect this possibly overrides other settings as well, like say rendering from another Blender window from the same session that has a different active view layer from the scene default one, or different visibility or collection states.


text:
How to do a recursive Shrink/Fatten with Geometry Nodes?
I want to create an effect where a mesh is duplicated and then shrunken down by x amount, recursively y iterations.
Something like this (for visual reference):

I came pretty close by layering Solidify Modifiers, doubling the Thickness value with each modifier instance. (That's how I made the cube above) But the normals are not all facing the correct direction, and if I tick the "Flip" checkbox for Normals, it breaks the even spacing because the shape is dependent on some faces being flipped. This method also adds thickness (fattens), when I want to shrink only.
I'm starting to think Geometry Nodes would be good for this, but I don't know how to go about it. Thanks for any help.

Perhaps a Displace modifier is more adequate/lighter than the solidify here

Important:
The method described in my original answer below (for Blender 2.93) has changed as of Blender 3.0 due to the fact that the Attribute Vector node is now considered "legacy", and "will be removed in Blender 4.0". Scroll to the bottom section of this answer to see what has been changed for compatibility with Blender 3.0+

After finding an answer explaining how Shrink/Fatten can be done using Geometry Nodes, I was able to put together a node setup that does it recursively.
Here's what it looks like:

This results in four more progressively smaller copies of the mesh being generated - one for each instance of the "Shrink-Fatten" node group. With the Value node labeled "Offset Value" set to a negative value, faces will "shrink", and with a positive value, they will "fatten".
Inside each "Shrink-Fatten" node group, here's what's going on:

The i input has a value of 0 in the first "Shrink-Fatten" group instance. It then gets incremented to 1 so the offset value is multiplied by 1 - no change in this first iteration. That offset value then goes on to the B input of the first Attribute Vector node. (The two Attribute Vector nodes do the actual shrinking or fattening.) The incremented value (now 1) gets passed to the Group Output node as i + 1. Since the i + 1 and Offset outputs get chained from one "Shrink-Fatten" group to the next, the amount by which the geometry gets offset steps incrementally.
This is what happens to the mesh when the Offset Value is dragged:

(Blender 2.93 legacy)

Blender 3.0+ solution
I had to make some changes inside the "Shrink-Fatten" node groups to keep current with Blender 3.0. Instead of the legacy Attribute Vector node, Set Position and Normal nodes are now used. Below is a screenshot of how they are configured:

(Blender 3.0)
Note that the Shrink/Fatten operation has an Offset Even option, and although I have not gone into detail about it in this question, Offset Even can also be coded into Geometry Nodes.

I discovered a bug in the 3.0+ solution. You will need to determine the sign of the normal vector and multiply that by the offset or else it won't scale every face evenly. To do this, I divided the normal vector by the absolute value of the normal vector. I multiplied this by the value I wanted for "offset." The other thing I did here is that I applied the scaling to only select vertices, which is specific to what I am trying to do. Here is the complete node tree and a picture of the output:

Welcome to BSE, Paul! Thanks for sharing your findings. The objective of my node setup was to make recursive the Shrink/Fatten solution that Robin Betts contributed. And that, it does. As a test, I took the same half-torus, used GN on one, and did a manual recursive duplicate-then-shrink on the other. The resulting mesh was the same. But please understand that Shrink/Fatten does not scale every face evenly by default. (This is not a bug.) There is an option to use Even Thickness and it can be enabled by holding Alt while doing S/F.

But Even Thickness isn't perfect, and this is apparent on open-ended angled geometry where the faces start to creep out. It can't be helped. Still, I was hoping your solution with Divide by Absolute would be like using the Even Thickness option. But from my tests, it is doing something else. And in the case of the half-torus it produced undesirable results. I'm glad that worked for you with your particular geometry, but from what I observed it's not scaling every face evenly. Or maybe I've misunderstood what you mean. In any case, if someone has an Even Thickness solution I hope they'll share.

Update: I've asked a new question specifically about Even Thickness (a.k.a. Offset Even), for anyone who understands this and would like to contribute an answer.


text:
GN: What would this legacy "snow" setup look like in 3.0+?
I'm looking over a CG Cookie post from last year when 2.93 was released and there is a section dedicated to Geometry Nodes with a node tree I would like to recreate. But it uses nodes that are now legacy. What would the 3.0+ solution be to get the following effect:

Try this (Blender 3.2):
Just replace the Attribute nodes with regular Field nodes:

Thank you for this! I've been playing around with it and have realized there is a lot of room for experimentation between Geometry Proximity and Set Position. Examples: Setting the Math node to Tangent, dropping in an RGB Curves node, or plugging a Normal node into the Vector Math node's second socket so that it works on sloped surfaces too. Good stuff.

@Mentalist the Normal node is a great idea! I also found that adding a Power node before the Multiply and messing with the Map Range some more created a nice curved falloff instead of the ugly linear one.


text:
How to make shape-keyed particles behave independently?
Let's say we have a mesh object with a Shape Key deformation, and it's driven by a Driver based on its distance from an Empty. It works as expected. But then if we want to make a Particle System of that mesh object, the particles won't respond independently based on their individual distances from the Empty, because they share the same mesh data.

We can Make Instances Real (to make the particles into their own objects), and then Make Single User - Object & Data (so each will have their own mesh data). But the Driver data remains unchanged, still based on the distance between the Empty and that first original particle mesh object.

To make each (now single-user) mesh respond to the Empty, it was necessary to select the object's name (...005), and type a unique variable name - twice per Shape Key, per mesh!
What I want is for each particle to "think for itself" and be driven according to its own distance from the Empty. This way the Empty will have a sweeping effect as it passes near the particles. Here is an example, although I prepared it by updating each particle mesh's driver data by manually typing it in - the impracticality becomes obvious once dealing with any substantial number of "particles" (technically they're not particles anymore at this point):

Is there a way to make them all unique using Python scripting? Or maybe with Animation Nodes or Geometry nodes? I am open to various approaches. Thanks.

While I'm not interested in developing a full answer here, one option for the situation you've described might be do it in material nodes, by baking your shapekey to a .exr object-space vector displacement map, and then using true displacement.

@Nathan That's an interesting idea as a workaround. I do have doubts about how practical it would be to set up each time I want to use Shape Keys on particles. Nonetheless, I like that you're thinking outside the box. I'll keep it in mind and perhaps play with that if no other solutions arise. It's possible that some interesting displacements could come from playing with and mixing the colors. Thanks for the suggestion!

Yeah, I think it'd be more practical than scripting or animation nodes for a single shapekey and a single set of particles, but for multiple shapekeys or multiple instances, it would probably fall behind.  One of the reasons I wasn't interested in developing a full answer is because it's not really clear how much this example actually represents your end goal.

@Mentalist Hi. With the help of Animation Nodes, you can make each particle independent with its shapekeys: https://blender.stackexchange.com/a/168007/62606

@3DSinghVFX Thank you!!! That may be exactly what I need. I look forward to trying it out very soon.

With Geometry Nodes you can solve this as follows:

Unfortunately, in Geometry Nodes you don't have direct access to the shape keys of an object, so you would have to duplicate your object first.
You then apply the shape key to the duplicate so that you get the same object in two different states.
With Geometry Nodes you instantiate both objects independently along a circle.
Then, using the distance to the rotating Empty, you can mix the positions of these two geometries, which looks like this:

(Blender 3.1+)


text:
Using Blender to Convert Video with Kuwahara Filter
I'm fairly new to Blender. What caught my attention about it recently was the recent addition of the Kuwahara filter node that they added. So I wanted to experiment with using the compositor to import image sequences that I have from outside of Blender, filter them with the Kuwahara node, then export new image sequences. I was able to do the first two parts of this simply enough. But exporting an image sequence is tripping me up a bit.
My current workflow is to add a file output node, then hit render animation. It then seems to export the new images, but it does it at a relatively slow rate. So I wanted to know if I was doing something that was very inefficient (since I couldn't tell if it was also rendering the 3D animation from the blender viewport). Is there a more steamlined way of doing this?

A screenshot of your compositing nodes and file output settings would help, but unless you have a composite node in there and you actually have something to render in the scene, it shouldn't make much a difference. The file output node is unnecessary as the Scene always outputs a file anyway. The Kuwahara filter however, already takes a few seconds to be applied. Also the output image formats aren't equal in therms of writing speed, see: What image format encodes the fastest, or at least faster? PNG is too slow - Blender Stack Exchange

Okay, the output node was set to png. So that could be slowing it down. Here's a look at the node setup: https://www.dropbox.com/scl/fi/pdj5geleupsfgcx9iszml/Screenshot-2024-02-09-at-12.41.26-PM.png?rlkey=oppavvbc8wx85947poowbm6m3&dl=0
I noticed that the render percentage at the bottom goes to 100% twice before outputting an image. I assume the first is just rendering my viewport and the second is my compositor. So should I reduce the render settings on my viewport to super low to avoid longer render times for my compositor?

I'm not sure what the two progress bare represent, but definitely not a 3d scene render if you do things correctly. See answer.

Let's take this scene as example:

Node Tree
By default, when you enable using nodes, Blender will create a Render Layer and Composite node. It is important to delete the Render Layer node: otherwise, Blender will render it.
No Render Layer node = no 3D render.
All you need is an input node (movie clip in my case, it can be an image sequence too, it doesn't matter). Then the Kuwahara node, then the Composite node and Viewer.
Viewer is just for previewing and doesn't affect the render.
Composite sends the composition to the render. When the render is done, Blender will always write a file as per your scene's file output settings. This is why you shouldn't replace it with a File Output node: Blender will output two files instead of one.
At least, it will until the next Blender update or so:
#117129 - Render: Skip writing output if no Composite node exists - Blender Projects

Compositing Options
In the Sidebar, Options tab, you may want to do a few changes:

By default, the chunk size is set to 256. This setting splits your compositing area into smaller chunks, that are usually faster to render, but at the cost of more overhead time. You can do tests to see which chunk size is faster for you, usually the smaller, the better. 32 worked the best for me.
Enabling OpenCL might give faster performances depending on your hardware.
If you had a more complex node setup, you could also enable Buffer Groups, which would allow you to put a few nodes in a node group and have it basically act as a cache. But it's useless with just one node to process.
Output Settings
As mentioned here:
What image format encodes the fastest, or at least faster? PNG is too slow - Blender Stack Exchange
Different file formats, and compression settings, give very different writing speeds. PNG is of the slowest, especially with maximum compression.
The choice of format also depends on what you want to do after. If it's final delivery as a video, you could honestly just output a video directly (you can add the audio in the VSE).
If you need editing after, you could export as TGA, or even TGA Raw / EXR if you want to do some color management or stuff that need high bit depth - and if your input data is also already high bit depth.

Thanks for all info! I'll be sure to test this all out soon!


text:
How do I combine many materials into only one for a mesh?
I just modeled a character head that I want to export but I need there to be only one material. However I have 11 materials. I also texture painted on some of them. I’m not sure how to join them together into one without them breaking. I did not use any images for materials, only colors and painted on textures.
I'm exporting this model to Roblox Studio.

Is it possible for you to use images in the system you are exporting to? Is it possible to break your single head into many different models? What are you exporting to, and what are the limitations there? Many things are possible in Blender, but if they're not supported in the system you're going to, it does not matter.

I'm not sure what kind of export you want to do that you can only use one material... of course you could put all shaders in a single material and then mix them in a way that they all get just the parts of the shader they need. But I will not recommend anything unless I know what other restrictions there might be to export if for example only one material is allowed. What about thinks like textures? UV maps? Vertex groups?

Here are the limitations for Roblox Studio. Looks like a single PBR with textures is supported (well, four materials are possible, but only as part of a material variant that applies exactly one at a time). See also the mesh export settings and character limitations.

Thank you Phrogz. I will try to narrow it down to four materials and import it. I tried to use shaders to combine the materials but when I did, a texture drawing I made went to a place where it shouldn’t be. How do I stop that?

@LiniMac You should make it a single material, using maps with UVs to control what appearance is applied to different places. Perhaps Gordon will give you more details.

I was going to smart UV project but that got rid of the drawing textures before.

At a glance, it should be just a matter of baking the relevant data into image textures. This website already have quite a few topics about baking textures from multiple materials. So I recommend you to look up the different topics, see how it works without breaking your existing materials and try on your side. If you have specific issues that aren't answered already, please come back here and [edit] your question to add the updated detail and it will queue up your topic for reopening.


text:
Can't find AVI Raw output on Blender (not on video editing)
I downloaded Blender up to date on a new pc (4.2.1 LTS) and I can't find the AVI Raw option when rendering. I saw some responses on other posts about going on Encoding > AVI, but I'm not using video rendering.

Help!
Regards

AVI Raw was removed since Blender 4.2
The reason why is pretty well sumarrized on Everything New in Blender 4.2 - CG Cookie:

The AVI RAW and AVI JPEG movie file output types have been removed, since they were the same quality as H264 but with larger file sizes and reading those files in Blender took a lot of effort to maintain.

You can make a lossless video using FFmpeg's H264 codec set to lossless:

That being said, video output is rarely the best thing to do when rendering (and even less so a lossless video output, that's a massive waste of disk space and performance);
I highly encourage reading this answer that explains the pros and cons of using video vs image output, and some quick advices on which formats or codecs to use for different scenarios.


text:
Blender render is less glossy than the viewport image
Basically, my render doesn't match the viewport image. Specifically, the most outer metal plate face that's facing the camera is significantly darker than the viewport image.
Things I checked:

viewport shading options Scene Lights and Scene World are enabled
all objects are visible, nothing is hidden
changing the object shader doesn't fix the problem

Any help and suggestions are appreciated. Thank you.
Render Settings:

Rendered Image, most outer metal plate face that's facing the camera is significantly darker than the viewport image:

Object and World Shader, Viewport Shading, Visibility of all Objects:

Not sure it is "less glossy", you have black surfaces where there shouldn't be any.   What does your world shader looks like without the transparent option enabled in render properties > Film? Could you perhaps share your file so we can check directly by ourselves what's going on?


text:
bending beams with holes

I am trying to bend a cantilever beam with a hole in the middle, but every time I tried to do it did not bend correctly. Could you help me with this?

I really appreciate any help you can provide.

Hello, what method are you using? Maybe try with a Curve modifier?

Hello, I am using simple  deform

Have you tried with a Curve modifier, also, are the 2 objects supposed to bend together or one after the other?

I have tried but I could not get the smooth results again. The bottom cantilever works well, I just want that black one with holes bend as a whole. Btw, yes I want them to bend simultaneously. Thank you so much for your help.

could you please share your file so that we can give a try?

Did you apply your scales (ctrl+a)?

@moonboots, of course I can attach.

@DanielMöller, I belive I tried but it did not change anything

Create this kind of curve:

Give your objects a Curve modifier with this curve as Curve Object and with the correct axis (here -Y):

Move the curve in order to bend the objects:

File:

Thank you so so much. If it is not too much, could you share with me the updated file ?

Sure, see my edit


text:
How to animate Splatoon hair?
I am struggling with the hair physics when working with models from Splatoon. I have tried both Soft Body and Wiggle Bones, but neither have produced a desireable result. The hair does have an armature
For reference, this is what I'm trying to achieve

you could also try cloth?

the cloth I've tried just makes it flat, what were you thinking?

you use cloth on an invisible plane, and you use this plane as the Object of a Surface Deform modifier you give to your hair

I'll try that and see how it works out

I'm going to give an answer

Here is a demo of what you could try: Create your main object (1, head), the hair (2) that you subdivide as much as you want, and an invisible plane (3) that you subdivide a bit. Parent both the hair and the plane to the head. Give your head a Physics > Collision, give your plane a Physics > Cloth with a vertex group that you'll use as pin group (here the last edge on the left of the plane so that it sticks to the head). Give your hair object a Surface Deform modifier with the plane as Target, click on Bind:

Animate the head, the hair should move with the plane:

You can also use a cage and a Mesh Deform instead of a Surface Deform if needed:

I tried to do this, but all I got was the "hair" clipping through the "head"
https://videoapi-muybridge.vimeocdn.com/animated-thumbnails/image/5956a1de-8472-4b84-a429-6c1e65effc24.gif?ClientID=vimeo-core-prod&Date=1624396055&Signature=1d9c86147500810e909378ebf7ebff32e4c13b48

I’m using blender 2.9

will i need to seperate the armature of my actual hair before doing this setup?

it looks like it's a question of Cache, delete the cache and choose the Disk Cache (you must have baked once, not sure why you need to click on Disk Cache though, then you can unclick)

that fixed the original object not using collision

could I simply dupe the hair object, then make it slightly bigger and use the cage method with that being my "simulation object"?

If you delete the cache, then enable and disable Disk Cache it should work. Not sure what you mean by "with that being my "simulation object""?

I mean, instead of a plane

you can try Mesh Deform and see what's the best


text:
Need help making cloth-like object for dragon wings
I have the basic skeleton of a dragon's wing, but how can I best make the fabric-like material for the actual wing? I will be animating it. I would like to avoid using cloth simulation, as I will be taking this model from Blender to Unity/Unreal Engine.

hello, your question is a bit too broad, and you should show a reference image, but you probably need to use the Translucent node in your setup

@moonboots is this better

so I guess you need to have a topology that follows this kind of shape, also you need to put the Solidify modifier at the right place, maybe share what you've done so far so that people don't have to redo it from scratch? https://pasteall.org/blend/

I’m out atm, I’ll do that when I get home

this is what i have so far @moonboots https://pasteall.org/blend/c9c1de61b3e04337974cdbb86f20b33d

you'd better join everything within one object only, then bridge between the fingers to create the skin, subdivide in order to have topology, and test how it works with an armature. See how people did it, for example: https://blenderartists.org/t/dragon-animation-project/624655 ... the only problem I see is how to avoid overlapping faces for the skin

seems to work perfecty. haven't tried with armature yet, but this is great! thx so much ur always really helpful @moonboots

oh ok great, your question was a bit too broad, as I say you may meet problem when you'll parent your object to the armature and you'll bend the wings, as it could make the skin faces overlap, you'll tell  ;)

could a subsurf modifier fix that potential problem?

you'll need a Subsurf anyway, unless you want a lowpoly result. First try and you'll see if it happens, then you'll find a solution

i do want low poly, im making a game and this model is a stand-in until i have time to make proper models

oh ok so you won't be able to use a Subsurface in your game, you'll have to apply it

https://cdn.discordapp.com/attachments/856199460068917293/876872842984169543/unknown.png @moonboots what have I done wrong

sorry I can't see anything, your link doesn't seem to work

https://pasteall.org/blend/a4815e10ef4b4b409e2a07387fe08060

I don't think that your topology is correct, if your skin is connected to your finger it's probably better to give it thickness, also you have triangulated, i'm not sure why, maybe follow some tutos on how to model a dragon, it will help to see how to do

ok ill do that.


text:
Creating controlled fluids?
I want to have a fluid simulation with a controllable output direction, similar to a water gun. How can I accomphish this?
Reference image:
https://www.gannett-cdn.com/-mm-/b510152d57df004945f4582cd19828a87c81681e/c=6-0-2555-1440/local/-/media/2015/05/29/RenoGroup/RGJ/635684613849077376-Splatoon-Weapons.jpg
https://pa1.narvii.com/6630/7ed008baca03faa8f41bede9d638d4c62f1a0e98_hq.gif
Note how there is an "explosion'" of liquid at the base of the gun, and a "shot" coming from the center.

Here is a crude example to improve upon -- a "water gun" blend file.   I use several components:

I select the Cylinder for the Geometry (initial burst of water) and
use Object -> Quick Effects -> Fluid, and edit the initial velocity to be some large number in the correct direction.
I duplicate that Cylinder and change the Flow Behaviour to Inflow, also with a large initial velocity
I duplicate a cylinder, change it to be and Effector -> Collision type as the "gun barrel.  Not I need at least a 0.5 surface thickness for it to be effective (bug in blender IMHO), and therefore also scale it to be a bit larger to contain and direct the liquid flow.  I also Edit the Collision cylinder to remove one end face where the liquid will come out.

I then make the Collision the Parent object of the fluid Geometry and Inflow objects, so I can then animate the Barrel (move, rotate) as needed.  I also need to make the Liquid Domain large enough as needed for the distance the liquid will travel.  I played around a bit with Flip particle radius and Resolution Divisions to be adequate, as also with the Sampling Sub-steps on the three objects.

Enjoy.

I will try this out ltr when i have time ty


text:
Can I control a distance between two or more spheres over time while one is fixed?
I would like to represent the movement of some parts of a molecule and divide it by criteria, I lready have the data and think I should use a driver to represent closely the distance I measured, while linking each sphere to each other with some sort of elastic ribbon.
As I am still new with blender, I do not know all options I have, I already tried armatures but have failed terribly, as it has way too parameters for me.
My problematic represented in images :

*Edit I would like the distance to be visible (black bars) but if only the red dots linked by green lines are there, it's still very much what I could use.

can you show us how your data looks like?

It really is just a time-distance graph, I don't want this "simulation" to be exact, just to globally represent the tendencies I've analysed@Chris

If you only want to move in one direction (e.g. y direction) you can

create two UVSpheres and 1 cylinder

move the cylinder in edit mode in that way, that the origin point is in the left UVSphere

Select the right circle vertices of the cylinder and press CTRLH and select "Hook to new object".

add an object constraint to your new created empty from 3) like this:

and choose the right sphere as target.
Now you can move the right Sphere on the y direction and the cylinder/connection will follow along.

Wow, thank you very much for your detailed answer, I'll test this as soon as I can and come back to you

Ok the hook seem to be enough, I linked both ends to the respective sphere, and will try to network it out without making a mess. Thanks again

Please check the checkmark left to my answer if the answer helped you. Thank you.


text:
Blender merge textures into single file
Theres lots of stuff on internet about baking etc. but its so complicated and blender keep changing position of stuff in every update and im not downgrading in any way. Wheres method to merge the textures? I need merge 5 textures i dont need to specific im not talking about shaders
just theres a object uses 5 textures am i right? some of texture coordinates use these textures i just need make them merged into one file and keep the uvs
model is single everything is joined.
I need this beacuse game engine im using dont support mtl files or multiple textures i need merge all of them into single file and there is no way to change the engine.
Sidenote: I meant 5 textures being merged on one file and texture coordinates use them i just hate people keep saying what you asking for even though i tell the details.
 Example of texture type i need not cc by sa copyrighted

Hello, could you post an example of texture accepted by your game engine for comparison ?

So you want an Atlas Texture ? That's pretty common, what part do you have trouble with ? Do you know how to UV unwrap your models ?


text:
Need an advice to rig a spaceship with mechanicals part
I'm trying to rig a spaceship and I'm getting stuck on a specific problem. Here is a simplified blend to illustrate the problem.

I'm looking for a way to rig these different elements so that when you turn the handwheel, it bends the bending bow (I don't care if the pulley is animated or not).
Do you have any ideas ?
Here are some images of the spaceship I'm working on:

Initial setup
First let's make a simple bone setup: a root bone, parent of a wheel bone, parent of a crank bone.

Note how I oriented the bones with +Z upwards and +Y on whatever their main rotation axe they represent.
With this, you have the basics functionalities for your "whole objects" to move together, and your wheel to rotate. The Crank bone will be useful as a target to "hook" the rope's curve start point onto.
In pose mode, select the wheel bone, set its Rotation Mode to XYZ Euler, then write #frame/10 in its Y rotation input to make it driven by the current frame value divided by 10. Which will make it spin indefinitely during playback, a handy test for our case.
Hooking the crank
In Pose Mode, select the Crank bone. Then in object mode, ⇧ Shift select the curve object, ↹ Tab into edit mode, box-select the curve points at
Hit ⎈ CtrlH to open the Hooks menu, select Hook To Selected Object Bone:

Doing this will create a Hook modifier on the curve object, which as its name suggests, "hooks" the selected part of the curve object to the Crank bone.

Since your rope model "starts" where that curve point happens, the movement of the Crank bone affecting that point makes the whole rope mesh "slide" on the curve:

Rigging the rope tip
Let's add a new bone in our armature with its head at the tip of the rope, but with its tail at the middle point of the curve. That way we have a bone that "starts" at the tip and is perfectly aligned with that portion of the curve.
Let's do the same hooking procedure as the above, but with the BendingBow curve this time. Select the Tip bone, then the tip curve point of the bow, ⎈ CtrlH and hook to selected bone.
That way the bow deforms with the Tip bone, but now we need to make that bone move with the crank, and along the rope curve.
For that, back in pose mode in the armature, select the Crank Bone and ⇧ Shift select the Tip bone. Press ⎈ Ctrl⇧ ShiftC to open the Add Constraint with Target menu, and chose Child Of to dynamically parent the Tip bone to the Crank, leave only its Location channels affected. Finally, add a Limit Rotation bone constraint, enable all but Y axes, and set it to Local Space. This way it can only use its local Y axis to move alongside the Crank bone.

The result is this system:

It can be polished to look better. For example the rope's curve points don't reach perfectly the crank or the bow, and its mesh is set to a finite lenght iteration whereas it could be set to fit the curve and you could hook the tip of the rope curve to the tip bone too, to always have a perfectly matching rope mesh.


text:
Blender Error Installing Pytorch
I am trying to install PyTorch offline into Blender version 4.3. My steps are as follows:

I download all the wheel files onto my machine using:
pip3 download torch torchvision torchaudio

I type in my Blender Python console
bpy.utils.user_resource("SCRIPTS", path="modules")
to get the path to the module's directory in my installation of Blender on my machine.

In Blender, I run the following lines in my python script below to install all of my wheel files that I received from 1 and using the file directory obtained from 2. Not shown is me importing the sys, os and subprocess files and changing my directory to where I have stored my wheel files.:

After the script is completed, I'm able to import into python all the modules installed except for import torch, torchvision or torchaudio. Below is the error that I get:

>>> import torch
Traceback (most recent call last):
  File "<blender_console>", line 1, in <module>
  File "C:\Users\Lance\AppData\Blender Foundation\Blender\4.3\scripts\modules\torch\__init__.py", line 262, in <module>
    _load_dll_libraries()
  File "C:\Users\Lance\AppData\Roaming\Blender Foundation\Blender\4.3\scripts\modules\torch\__init__.py", line 258, in _load_dll_libraries
    raise err
OSError: [WinError 126] The specified module could not be found. Error loading "C:\Users\Lance\AppData\Roaming\Blender Foundation\Blender\4.3\scripts\modules\torch\lib\torch_python.dll" or one of its dependencies.

Does anyone know what I'm doing wrong?
Thank you so much for the help.

There is a functional installation method of pip packages on the following topic: python - Install pip and packages from within Blender OS independently - Blender Stack Exchange. If this doesn't solve your issue, please [edit] your question to update what you tried and how it didn't help, it will queue it up for reopening.


text:
The feet an hands dosen't move with all armuture
I create a dragon and I take care to have good topology, then add an armature to it, and did that by using the rigfiy addon, the problem appears when I move the torso widget
in pose mode, the feet and hands don't move with it :

By default, Rigify's feet and hands are in IK mode. And the IK controllers have their parent set to "root".
To change that, you can either change from IK to FK, or change the parent from "root" to "torso" or anything you want. Note that all these properties are animatable.
For this, you need to select the IK hands/feet controller. Then in the sidebar, item tab, Rig Main Properties panel, you have buttons to switch from IF to FK, as well as change the "IK Parent"


text:
Toggle evaluation of geometry node on another object during editing
tl;dr: is there a way to turn off/on all modifiers (or modifiers for a specific object) while I'm in edit mode on a different object?
Object A is a curve; object B is a dummy mesh using a Geometry Nodes modifier to perform complex calculations using A. Having the modifier enabled while editing A is too slow; it takes 5 seconds just to select a single control point, and attempting to move the control point updates the screen once every few seconds. So, I select B, go to its modifiers, and disable its modifier. With B's modifier disabled, editing is an easy process. However, I occasionally need to re-enable the modifier to check some results.
Right now this involves leaving edit mode, selecting B, changing its modifier, selecting A, and entering edit mode again. That's cumbersome. I wish that just hiding B in the viewport would stop its modifier from being evaluated, but that's not the case.

Add an area for the Python Console
Create a variable representing the modifier using
mod = bpy.data.objects.get("ObjectBName").modifiers[0]
(assumes the modifier is the first/only)
To toggle the evaluation of the modifier, run this line in the console:
mod.show_viewport = not mod.show_viewport

You can use up-arrow in the console to bring up the last command. So, after you type that last command in once, each additional time you want to toggle the visibility, move the cursor over the Console viewport, and press ↑ enter and the modifier will toggle evaluation/display.

If you enable the default addon Modifier Tools it has an operator to disable all modifiers on an object. Basically achieving this effect but on all mods, with additional tools as well.

@Jakemoyo Reading up on this it seems that it only can control the selected objects. If I'm editing a separate object, I can't select Object B, right? (Forgive my noob question, I assume this is true because the Properties panel does not switch to show me the modifiers for Object B when I select it in the Outliner panel.) If I'm wrong, this seems like another good answer you could supply.

Yeah, generally speaking any operator thats been converted to a tool will work around the context its in. Not all but quite frequently this is the case. Your script is operating on the data itself by getting the object through bpy.data.objects and getting its modifier etc. That works outside the context generally.


text:
Drop control points of curve onto mesh
I have a complex Bézier curve object (20k control points), with all points in the XY plane.
I have a complex terrain mesh (20M faces), which is (mostly) a grid in the XY plane, with varying heights on the vertices.
I want to edit the curve object, and move each control point down (-z only) until it is sitting on the mesh below. Like dropping wet spaghetti onto the ground. Draping the curve over the mesh. (Though, to be fair, I said "-z only", which means the lengths of these strands will change. That's desirable; I don't want a physically-accurate simulation that preserves strand length, or lets the noodles slide down the side of a mountain.)
Does Blender have a mechanism for doing this (other than a ~complex script and a lot of processing time)?

Attached is a small test bed from the overall model:

Sorry I cannot write a full answer right now, but try searching for the Raycast node in Geometry Nodes, that should do what you want.

@GordonBrinkmann Thanks, looking now.

I added a cube to the scene and gave it Geometry Nodes modifier, this way the GN object is independent from the source objects "terrain" and "Simple_trails".
The curve object "Simple_trails" had a Bevel on it to make it a tube. I got rid of that because otherwise it will be treated as a mesh object.
I imported the source objects both with Object Info nodes set to Relative (that's important). Then I plug the "terrain" into the Target Geometry of a Raycast node, the Geometry of the "Simple_trails" into a Set Position node which gets the Position from the Hit Position.
Afterwards I used a Curve to Mesh node to convert the curve back to a tube appearance and gave it a material.

Of course the curve can be resampled for a higher resolution if necessary and moved up or down by changing the Z value of the Offset.

Far more elegant! Thank you. I totally don't understand/did not expect the magic that somehow back-feeds the points from the geometry going into Set Position to the Source Position in the Raycast, but that's nice that it exists! The only caveat is that if one rotates the cube so that its local -z is not the same as global, the "down" ray direction is no longer valid. If one did that, I'd suggest it was perhaps intentional. :)

@Phrogz Everything you do in Geometry Nodes is relative to the GN object's local origin, rotation and scale. This is not limited to the Raycast node.

As @GordonBrinkmann pointed out, the key is to use a Raycast node against the terrain mesh to find where the points ought to be. His solution is great and simple if your curve and terrain are free of transforms. (Edit: Wait! His solution is great even if the terrain and curve are transformed, because of his use of Relative mode. This requires the use of Object Info node on the curves as well. This answer is preserved just to show how much extra work is needed if you don't use Relative. :)
This first answer transforms the terrain and curve geometry into global space, performs the raycasting, and then transforms the hit point back into the local space of the curve:

Edit: as noted in the accepted answer, this transformation magic can be automatically taken care of by using Relative mode on the geometries.
Alternatively, you can transform the geometry of the mesh into the local space of the curve. If you do this, and your curve object is rotated such that its local -z does not match the world -z, you'll also need to rotate your "down" vector to match:

Finally, for both answers: if your curve has enough control points that you just want to transform the original control points without resampling the curve, you can drop the Resample Curve node, and feed the original curve geometry along.

Your setup looks way too complicated... I'm not sure why all this is necessary. Take a look at my answer if this will work for you.

@GordonBrinkmann I'll accept yours, because it's delightfully simple for the no-transform case. As I've edited my answer to describe, these two solutions are only needed if the curve and/or terrain are transformed. Edit: Oh, now I understand the importance of Relative in your answer. Far better!


text:
Curve Group ID from Curve to Points: How to preserve separate splines in Geometry Node?
First time working with Geometry Nodes. I'm trying to manipulate control points on a curve. I have a curve with two splines. Once I modify the point positions (not shown here; assume there's lots of missing nodes operating on the points), how can I get the correct Curve Index to feed to Points to Curves: Curve Group ID, so that I get two curves back out?

Two separated Bezier splines in a single curve object...

...become a single curve after the Geometry Node is done
Test file for your ease

Edit: this gives me a point cloud with 12 of the same points, all at the same position. Gaaahh!

Option 1: Don't Convert to Points
As pointed out by Gordon Brinkmann, if you can modify the geometry without ever leaving the original curve, your sub-splines will stay intact. This is probably what you want. (It's what I wanted.) Here the Set Position node is used directly on the curve geometry to offset every control point by an amount based on the index:

Option 2: Capture Spline Index Before Making Points
Using Capture Attribute on the curve geometry before using Curve to Points preserves the index of the spline (not the points of the curve) which you can then feed to Points to Curves > Curve Group ID:

Note that (for reasons I'm too young to understand) the Index cannot be used with Transform Geometry node:

...but you can use it with Set Position, at least. Again, note how the captured Index here is the index of the spline (0 or 1), but then once used by Set Position it is the index of the point within the point cloud.

You are kidding me, aren't you? Your "Option 1" is just what I told you in my answer. And sorry I did not answer earlier, but where I live it was night and I had to sleep. As I understood all you wrote so far, you want to project the points onto the surface - which can be done with my answer (your option 1), I just did not show that because your question asked about how to avoid the curve becoming a single spline, so that's what I concentrated on. But now that I'm back from the dead I edited my answer to give you the full monty, separate splines, projected onto a surface with a Raycast node.

By the way, the Index cannot be used for the Transform Geometry node because other than the Set Position node it is not affecting the points of a geometry individually, only the geometry as a whole. So it cannot take multiple transformations for multiple points, only one transformation for all of them.

@GordonBrinkmann I am not kidding you. :) You are absolutely right that option 1 is what you led me to understand. I've edited the answer to give you credit. However, even though my question turned out to be an XY situation, my question title and prose explicitly mention "Curve Group ID", which your answer did not address. I feel this is important to address in the accepted answer, for others finding this answer via Google and looking for something slightly different. Hence my Option 2.

Sure, you explicitly mention the Curve Group ID but as you said yourself, it was an XY problem and so I intentionally ignored it - because in the original question you seemingly asked for the group ID only as a matter of getting back the original splines. Which is absolutely not necessary. Sorry I did not keep up with all your changes from just wanting to keep separate splines to having this group ID at all costs...

Sorry if I am missing some important point in your setup, but if you want to keep the splines separate, why do you convert the Curve to Points and then back with Points to Curve? Just plug the Group Input directly into the Curve to Mesh node and the splines stay separated:

If your curve does not have enough points for your liking, that's where the Resample Curve node comes into play. It resamples your curve with one of the three methods to choose from: Count, Length and Evaluated.
In the following examples I've instanced icospheres on the points to show the results.
When you use Count (which is the default option), each spline will have the given number of points from start to finish at even distances, here it's 20:

While this seems okay, the problem is the count will stay the same on each spline, no matter how long or short it is. So if there is a quite short third spline, the point distribution looks very different to the others:

This is where the option Length comes in handy. You set a distance (on spline, not in 3D space) which you want to have between the points.
Note that this will not be the exact distance between the points, as the Resample Curve node tries to distribute them evenly. The start and end point of a spline are fixed and will not be changed. So Blender calculates how many points can be placed inbetween over the length of the spline and space them evenly (so the final distance between the points is less or equal than the given distance). More about this in my answer to this question: Resample Curve Node , length precision

The last method Evaluated has no other settings in the node. It uses the Resolution which is given in the Object Data Properties which depend on the geometry of the curve and so the distances of evaluated points can vary between the original control points.
Your curve object has a Resolution of 54, that is of course very high (which good for a smooth curve in both the previous methods) and looks a bit "crowded" in this case:

But turning it down to 8 shows the effect quite good. The Resolution of the curve is the number of segments between the control points of the curve:

Now if you want to use a Raycast node to project the curve onto the surface, just do that. In the example below I used the Is Hit output for the Selection in the Set Position, otherwise the two points to the right which are not above the surface would give a bad result and be projected to the origin:

In this example you can also see that one problem is, between two points a segment is straight. Which means, if two points are for example on opposite sides of a peak, the curve goes through it. What can help in this case is resampling the curve with much shorter distance (I decided to use the Length option set to 0.005 m, as shown above because this method will give most even results on all spline lengths). If you do not instance icospheres on it, it will be okay:

Of course you never mentioned instancing icospheres, these were just my visualization of the points. But in case you wanted them there, instead of having hundreds of them overlapping, the trick now is double resampling: after the high resolution curve is projected onto the surface, you resample the curve with a lower resolution just for the icosphere instances. So the projected curve is resampled with a length of 0.005 m and for the instances I resample it with a length of 0.1 m:

Instead of double resampling you could also do something like taking the high resolution curve and only instancing on the n-th point by using the index etc. but depending on resolution there is always a risk that there are no instances on start and/or end points of the splines etc. so I think resampling is the better way.
With the high resolution curve this also works on a smooth surface. I have also given the curve a slight offset upwards so that it is less sunken into the surface.

I oversimplified. I sample/separate and then create because my end goal is to adjust the points. You’ve made some nice visualizations here, but you’re not recreating a curve object at the end. My hangup is understanding how to capture the “Curve Index” (should be “Spline Index” IMHO) so I can feed it into “Curve Group ID” to create separate splines in the output curve.

@Phrogz I'm not creating a curve object? You don't create a curve object with your Curve to Mesh node. The output of a Resample Curve node is a curve object (it literally says "Curve" on the output socket). The instanced icospheres are just to visualize where the curve points are - that's nothing you have to do for your curve, I could just have plugged the resampled curve into the Curve to Mesh node instead. And if you want to keep it a curve, then don't plug it into a Curve to Mesh node. Simple as that.

Sorry, let me try to be more clear. My goal is to take a curve with N splines, get points along them all (original control points or resampled, I don't care), modify those points (e.g. drop them varying distances along Z), and then create a new curve object where the points are separated by spline they came from. Curve with Splines -> Points -> Curve with Splines is my trouble. I don't know how to ~capture the Curve Index attribute to feed an appropriate value into Curve Group ID on Points to Curves.

@Phrogz I guess I have to be more clear: all further processing is not really relevant - if you do not need separate points explicitly, you can do all of this with the original splines if they have the points you need and they have the benefit of already being separated into the original splines. I have edited my answer again and added projecting the points down onto the surface with a Raycast node. The only reason I can see to separate the splines into points and then back to splines would be if you want to reassemble them differently - but then capturing the Group ID would make no sense.


text:
Bone Heat Weighting: armature deform with weighting
heres a link https: https://www.dropbox.com/s/7f9c6ikxme5xgjy/untitled.blend?dl=0
I followed this tutorial: https://www.youtube.com/watch?v=XkiWBSSuxLw&t=944s but when I got to set the parent for the rig it wouldn't work. I tried to remove some unnecessary verts but it affects the mesh... what do I do?

Does this answer your question? bone heat weighting: failed to find solution for one or more bones error message   https://blender.stackexchange.com/questions/209973/help-bone-heat-weighting-failed-to-find-solution-for-one-or-more-bones

You have overlapping vertices, go in Edit mode and press Alt > M > Merge by Distance.


text:
Fluid simulation destroys CPU temperature
I didn't realize blender was putting so much strain on my CPU when I bake fluid simulations.
I'm doing 200 Resolution divisions and 4 Mesh 'Up res factors'
The CPU temps reach up to 95c and keeps throttling and going back and fourth from 85-92c.
I also can't use anything else on my pc while the baking is running
I'm using stock cooling so it's pretty bad, But I just want to limit blender to use less cores and/or threads.
Is there any way to make blender utilize less CPU power?
Edit: Decreasing blender's priority doesn't help as it will still run at 100% if no other programs are running. My CPU (I7-10700) Isn't overclocked and its max temperature is 100c. running at 95c for hours is way too dangerous. I'm asking if there's a way to limit its usage or core usage.

Sadly not, as the program will still run at 100% if no other programs are running. If I was rendering I would've been able to limit threads but, this is a fluid simulation, and there's no option to do so.

If you work with a calculation-intensive software such as blender, it might be a good idea to optimize your system's cooling. Get a BIG heatspreder and a potent fan and you will be able to keep your temperature down even under sustained heavy load.
Also, it is a good idea to keep your case clean and remove dust buildup regularly.

"I'm asking if there's a way to limit its usage or core usage." Have you read any of the other suggestions in the linked post?

Yes I have, but that puts more stress on less cores which makes the temps go over 95c. So it doesn't help at all. I'm probably gonna go with haarigertroll's suggestions and try to get better cooling


text:
Geometry Nodes and Duplicating Premade/Procedural Geometry
I'm trying to make a procedural building from scratch despite being a bit of a rookie. I have a messy node set up where I have a value node that does math to calculate the correct amount of "wall" pieces that are transformed and scaled how I want them. My issue is that I am trying to essentially duplicate the geometry I have made in the node editor vertically. I want to be able to procedurally adjust the amount of layers on the building.
So far I have just used a regular transform node to duplicate the wall sections. I could duplicate it with this same method once, but not with a slider as I can't get the geometry to fit into something like a Point Instance node.
Is there a way to "duplicate" or create multiple versions of the geometry node? My thoughts are that I could make a straight line in a separate mesh then use geo to duplicate it. However, I wouldn't have all the sliders under one roof, and the math nodes would be difficult to translate over. Otherwise I'm at a loss. Point Instance only allows you to use an existing mesh.

As requested here is a bit of annotation behind my (likely very flawed) thought process.

yes, you can do. If i understood you you want this:
Just create two objects with geometry nodes. One creates your x-y "floor" and the other one "copies" this to the z axis.
node setup for x-y-floor:

result:

node setup for z-axis:

result:

video demo: https://youtu.be/OGp9FQv1TSM


text:
How do I render light illumination without rendering the light object itself?
I have a point light in a scene, I would like to have the illumination of the point light rendered without the light object itself, the "point of light", rendered. Is this possible? Thanks

Be default, lights are not rendered.  They will be visible as reflections on glass etc, though.

Thanks for the reply, added a photo to better illustrate my situation. Basically I want the ambient light around the point, but not the bright point of light in the center.

Gotcha, thanks for updating the question.  Do be aware lights in cycles can have negative values and subtract light from the scene.  Might be able to do some neat stuff by controlling the falloff.

It's not the light you're seeing.  You're seeing the volumetric-- the fog.  If you don't want it to reflect so much near the light, reduce the density of the volumetric near the light.  Consider adding (preferably) a file, or at least letting us know what rendering engine you're using.

Thanks for that insight, I would not have suspected it was the volumetric I was seeing. If I may ask you how would I go about reducing the density near the light? I'm using Eevee render engine. By file do you mean upload the blender project file?