text:
How can I create an animation from a sequence of obj files?
I have a bunch of obj files of human heart, at different times.
I'd like to turn them into an animated version(so that we can see the contraction and relaxation in animation), but how can I do that?
Your answer will kindly save me from my advisor, thanks...

hmm you need to change it from one to another in matter of 1 frame? Like frame 1 is one object, frame 2 is other object? How many objects do you have? If it is like 10 objects you could just use material with alpha, frame 0 alpha of obj1 set to 0 and frame 1 set it to 1, frame to set it to 0 and repeat with other objects... (but this is possible only if you have few objects or it will take ages...) rendering each frame separately and compositing it together would take ages as well... hmm

@MikoCG It is just a single object, human heart, just captured at different timings. I cannot really understand what you are saying maybe because I lack some knowledge. I will speculate on your words, thx!

"I have a bunch of obj files" - How many obj files do you have? That's what I meant

@MikoCG Maybe 20 or something

and every obj object of heart has single textured material, multiple materials or no materials?

@MikoCG Single texture. I guess I can put just each obj file into different frame, but I am not sure whether it is possible in blender

neverming, that addon in answer will make it easy

Looks like these add-ons can make this job:
https://blenderartists.org/t/stop-motion-obj-obj-stl-ply-sequence-importer-v2-1-1/670105
https://blenderartists.org/t/addon-import-obj-sequence-as-shape-keys-on-one-object/575402
Also, you should know, that blender has built-in modifiers, that can import *.abc sequence and *.mdd *.pc2 files (mesh cache and mesh sequence cache modifiers), so if you have an ability to get  these formats instead of obj, you should prefer it.

I'll check this out soon. Thanks for help.

Love you, I did not know there are 3rd party add-ons. Thanks, I learned a lot :)

Since this question is less than a year old, I feel as though it might be relevant to share my recent experience with solving this problem. In my particular case, I wanted to have flexibility with how I build sequences of objects and materials, so I wrote a custom script to handle loading.
import bpy
from typing import List

def load_obj_files(obj_file_paths: List[str]) -> List[bpy.types.Object]:
    """Loads the obj files into memory as blender obj objects.

    Args:
        obj_file_paths (List[str]): The list of paths to obj files

    Returns:
        List[bpy.types.Object]: The loaded obj files as blender objects
    """
    objects = []
    for p in obj_file_paths:
        bpy.ops.object.select_all(action="DESELECT")
        bpy.ops.import_scene.obj(
            filepath=p,
            filter_glob="*.obj;*.mtl",
            use_edges=True,
            use_smooth_groups=True,
            use_split_objects=True,
            use_split_groups=True,
            use_groups_as_vgroups=False,
            use_image_search=True,
            split_mode="ON",
            axis_forward="Z",
            axis_up="Y",
        )

        # Selected object is the first one, append to our cache
        objects.append(bpy.context.selected_objects[0])
    return objects

def build_animation_from_obj_files(all_obj_objects: List[bpy.types.Object]):
    """Loads a sequence of loaded blender objects and adds them to a given animation

    Args:
        all_obj_objects (List[bpy.types.Object]): The obj objects loaded from memory
    """
    # Set the starting frame to 0
    obj_frame_start = 0
    obj_frame_end = len(all_obj_objects) - 1

    # Set the scene frames in the UI.
    bpy.context.scene.frame_start = obj_frame_start
    bpy.context.scene.frame_end = obj_frame_end

    # Now, the high level idea here is simple. For each frame, we need to set EVERY object
    # as "invisible" on render except "frame". So if we have 500 frames worth of objects
    # we would then iterate through all the frames, set every object's "hide_render" field
    # to "True" and then just this frame's "hide_render" is set to "False", showing ONLY
    # this frame on the render.
    for frame in range(obj_frame_end):
        # VERY IMPORTANT. We need to set the frame here to ensure that the proper frame
        # is active when we set the frame states
        bpy.context.scene.frame_set(frame)

        # Now, we have to iterate through ALL frames to add the keyframe for this scene
        # frame.
        for i, ob in enumerate(all_obj_objects):
            # If our iteration has reached our designated frame, mark it as visible
            if i == frame:
                ob.hide_viewport = ob.hide_render = False
                ob.keyframe_insert(data_path="hide_viewport")
                ob.keyframe_insert(data_path="hide_render")
            # Otherwise, set it to invisible
            else:
                ob.hide_viewport = ob.hide_render = True
                ob.keyframe_insert(data_path="hide_viewport")
                ob.keyframe_insert(data_path="hide_render")

This is reasonably barebones, so it may not be robust enough to solve every type of problem, but, it will load the requisite resources and then allow you to run the animation between all of the keyframes. This system just needs to be copy-pasted into the blender "Scripts" window and then you just need to click run and it should work to at least get you started.
Note however that you will need to add an invocation for it and to also load the file paths in the script yourself. This was only tested with Blender 3.2, so things may change between versions.
I am 100% sure that there is likely a better way to do this, but if you just need something that will probably work, this will do the trick.

I made a video tutorial how to make it without any plugin https://youtu.be/KRxDyloJRYU
-1 because of someone who don't like youtube, in the comment below. But don't afraid. It's working.

Please consider expanding this to be a complete answer with the details here. If for some reason the video goes away, then there is nothing for future visitors to see. link only answers may be removed if not further improved.


text:
I have a weight painting issue
i need help  whenever i adjust the weight of bone 39 it increases/decreases the weight of some other bone eg bone 35, and if i adjust the weight of bone 35 it does the same for bone 39. this issue is also there with other bones too please help. I even tried parenting to empty groups and tried manuel painting

Hello, on the top right of your 3D view > Options, is Auto Normalize enabled?

I agree with moonboots. Check that. Aside from that, for future reference, please don’t use emoji‘s and repeatedly “please help“ in your question: By coming to the site, you already asking for help, and by looking at the question, we are implying that we want to help you.

source: Stack Exchange

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

sort: votes


text:
Animate an array of objects in parallel paths
Hi everyone I am new at blender and i am trying to create a group of objects which are arrayed on parallel paths as shown in figure below

I have created this by using Array modifier--> curve modifier --> array modifier,
But I want to animate these objects on this path, i want an object to be created at starting point of the curve and should disappear at end point of curve, and this should be done in a loop.
I tried using particle system and curve guide, the system works fine as long as i do not change the curve, as soon as i try to modify the curve all particles start to flow in a bizzare manner.

Thanks in advance.

Using a Unit object and Drivers.
Have used similar to drive midi notes along a music staff.  The issue with using this method is making the object both follow and switch paths.
Test Setup.
A quick run down of the test setup illustrated.

Added the default bezier curve, arrayed it 5 count  in $Y$ using constant offset.

Added an icosphere (at global origin default) and given it a follow path constraint targeting the bezier. Set to fixed position, ie offset is 0 at one end, 1 at the other.

Added a driver on offset, to traverse single curve every 24 frames
  (frame // 24)  % 1

Note since this goes from 0 to 1 its inverse (1 - value) could be used as scale driver for any or all of the scale factors.

Added a driver on $y$ location to skip to the next arrayed curve. $0.3777$ is the constant array modifier $y$  offset, and 5 its count.
 0.3777 * ((frame // 24)  % 5)

Next enhancement.
Since the modifier values are blender properties, could use them in the modifier instead

Driver variables y and count.

Normally to follow the path, and point in the direction of it can set the Follow Curve property to true. This however blows up here if set. Instead have added an empty that simply follows the unmodified base curve. A basic Rotation -> Rotation Transform constraint is used to set the rotation of our unit. (Using swing and twist input  rotation)

Introducing our own props.
Using custom properties as driver variables.
Add a property to the scene to globally offset.
Add a property to the object to locally offset.
Using self in drivers lets introduce object properties into the question.

y * ((frame // 24 + self.get("prop", 3))   % count)

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


text:
How to make the local orientation to match the global orientation?
My local orientation looks like this:

My globals like this:
I know I could rotate them but I have to do it for multiple objects so I was wondering if there's a shortcut

If you want to keep your objects rotated as they are, you can select all visible objects by pressing A or just select the object you want manually, then press Ctrl+A and select rotation.

yes of course i'm stupid

@moonboots your now deleted solution was what I was looking for!

well, for the global orientation, Ctrl A is the fastest of course  ;)

This is easy: Ctrl + A ⇾ Apply Rotation
Noted, that has been already answered in comments, so mark them as wiki


text:
Re-topology Strategy Needed for Complex Organic Model
Problem: How to conceptualize a strategy for re-topologizing a complex organic shape (e.g. morel mushroom) in Blender 3.6
I sculpted this morel mushroom and now I need to create a re-topologized mesh. I am fairly new to re-topology, but I can do pretty well on both geometric and simple organic  shapes, but the fact that this model is comprised of many different sized organic shapes has me stumped.
I have tried several strategies, none of which has worked, as I keep modeling myself into corners. For example, I've tried making all the circles the same vertex count (even numbers) or giving all the large ones, say, 32 vertices and the small ones 12 or 16, and attaching them together. I have also tried making vertical rows of quads between the circles and attaching them that way. I know there is a mathematical solution to this problem, but I suck at math.
My goals are the following:
To have all or mostly quads of relatively same sizes and clear routes to creating seams.
The end product should be a well defined, but reasonably low-poly model that isn't a headache to unwrap and paint in an external editor like Krita.
To accomplish this using only built-in add-ons like Bsurfaces.
So my question is, for those of you who have experience re-topologizing complex organic shapes:

How would you approach this project?
At what point would you break rules and use odd numbers of verts & triangles instead of quads?

I have attached the file (see link below,) which contains the sculpted mesh, and a Bsurfaces mesh, with some work done that exemplifies the problems I am having. I would be grateful for any constructive advice, and possibly, this will also help someone else. Thanks.
https://drive.google.com/drive/folders/1ceFyhIPzScN0yVi0Xsb6n0lSCzrCsXw2?usp=sharing

This question, imo, is too broad. Not trying to be unhelpful, but this can be tackeled in many different ways according to the situation and the person who is modelling.

What do you plan to do with your object? Maybe retopologizing is not worth it. If you don't need to take any close-up shot, you could create a very low-poly version (without the holes) and bake the normals of the high-poly to fake the holes. Apart from that you could try the remesh tools of Blender but it will stay rather high-poly if you don't want any artefact.

Thanks, @ The Kalaakar, & @ moonboots both your comments are helpful.
@ The Kalaakar, I think I am just trying to get some insight into different ways to look at this problem. Maybe a better question is  "how to connect multiple organic shapes of different sizes & vertex counts with quads."
As @ moonboots has pointed out, I may need to re-consider what I am trying to accomplish. Ultimately, I want a nice morel mushroom to go into my mushroom assets collection, but maybe I don't need to bang my head against the wall.

Hello, @ChuctanundaSpiderbone The K. is right. This question is too broad as  it stands, and risks being closed. I think it can be rescued, though, by making it shorter, and less abstract. Just make it a post about this particular case, with a screen-grabbed illustration, so folks can have a look before downloading, and preferably a share on https://blend-exchange.com/ . I don't think you have to worry.. the general principles will emerge from the particular case.

It all depends on what your asset is for, if the mushroom will be part of alarge setup, you can make a very low-poly with a normal map to fake the holes, if you want to make some close-up shots of your object it will need to be high-poly and you'll need to either retopologize like you're doing right now, or use a remesh tool, but you won't be able to be very low poly if you want to keep some rather sharp edges for your holes

Thank you, Robin Betts and moonboots for your helpful commentary. I am new to Stack Exchange, and this will help me target my questions in future. Also, I didn't know about blend-exchange, so this has been very helpful. I will retire my question for now, as being too broad for one concise answer. I thank you all for your help and patience.


text:
Rigging Object causes Normal and Mesh Problems
I'm trying to get a handle on rigging objects, and currently am having some trouble with the automatic weights rigging tool (which from what I've seen online, always causes some problems). I used the pants in the pictures provided as an example of what I'm seeing with most of my objects, which is trying to parent the object with the rig using Armature Deform with Automatic Weights causes some normals to reverse and then lead the mesh to split from itself and cause some strange behavior.
I am aware that sometimes, due to proximity, that other bones incorrectly move the wrong meshes, so I went through and corrected the weight maps of each bone before taking these pictures.
My best guess is it's because the pants aren't filled in but rather have a realistic thinness (e.g. the negative space isn't from one side of the pants to the other). My body mesh, which is like that, seems to have no problems rigging, which is why I think it may be because of that.
If anyone knows how to correct this error, or some things to check, it would be greatly appreciated! Thank you.

Talking about reversing normals is misleading, as rigging doesn't affect normals at all: what's happening is simply that the outer vertices of your pants are weighted slightly differently than the inner vertices, so that moving the rig makes some inner faces pass through the outer surface and show their (reversed normals) back faces.
Some solutions:
Delete all inner faces except thoose visible (the rims), as they are hidden unuseful geometry (light rigs boost performance issues).
Or
Use a solidfy modifier instead of real geometry, so that every movement of the outer faces will be exactly reflected on the inner ones (also in this case you can check if ticking its "Only rim" option is enough for your purposes).

Or
If you really need the inner real geometry, manually adjust the weights, so that every inner vertex will have the same exact weighting of its nearby outer vertex.
This can be achieved with two useful blender tools: in edit mode you can select a group of vertices, last selected is active, in the "N" properties panel you can read the weight values and copy them from active to all selected vertices using the folder-arrow button.

In weight paint mode you can  turn off the "front faces only" option and choose "projected" instead of "sphere" falloff, so that every vertex under the 2D projection of the brush will be affected in the same amount (hide all geometry you don't want to affect, to avoid unintentional painting).


text:
How do I edit a single object from an array of objects without the other objects following the object that I am trying to edit?
I am trying to create a domino animation through blender and I used the array command to create multiple dominos. Now I am trying to edit the first domino to put a photo on it however the photo is also applied to the following dominos. How will I be able to edit each domino individually?

You can't, or you need to apply the Array modifier

Best thing you can do is set your 1st domino correctly with good uv, texture, materials and all, then apply array modifier and change those you want by giving them different textures


text:
Trackers don't line up with tracking
i'm making a vfx project in blender and with a solve error of only 0.28px the trackers don't line up with the tracking dots in the viewport.
here's an example-


text:
Imported svg converted to mesh shows original svg in render
I have imported two .svg files and converted them to meshes; have then animated these meshes.
On rendering the original .svg files also appear, but without animation as shown here:

The white circle is the original .svg for the yellow coin-shaped object amd the marbled mask for the red mask object. Both objects have been rotated by about 75 degrees here, but the two original .svg's are visible in their original poisitions.
How do I correct this?

Does this answer your question? Why does my object not show up?

No, @Crantisz, my problem is things showing up that shouldn't show up. I've tried different render engines, but they all show the unwanted image

@Dzseti Also there is no need to use svg while you can do all your drawings directly in blender better than any software :)

In the Outliner's view layer try to turn off the camera icon
If it doesn't existed (which is by default) enable it in filter menu :


text:
When writing an operator, what is the blender-idiomatic way of parameterising on an object?
I am trying to write a new operator using bpy. It will operate on the currently selected objects and add particle systems, then use a user-selected object as the render object in the particle systems (this user-selected object would be the parameter). This appears to be the wrong way to think about things in Blender, but I could not find the Blender way to think about it.
The tutorials and reference materials explain how to add properties to the operator. I added these and they work fine for value parameters like numbers and strings. When using bpy.props.PointerProperties Blender throws the error ValueError: bpy_struct "MESH_OT_place_foliage" doesn't support datablock properties, and the property doesn't show up in the operator panel.
When looking this up I found other people with the same issue, in particular I found this question where it is suggested that the asker shouldn't be doing things that way, but no suggestion on the way they should be doing it.
Additionally, I found some code examples of bpy.props.PointerProperties, but none targeted objects, which again suggests I am working against the grain. I also tried to think of official operators that I'd used that took secondary object inputs; the only family I thought of was bool tools, and they operate on the active object and the selected objects, rather than separating the operands into separate parameters.
What is the Blender way to think about this problem? I'd greatly appreciate examples as well.

In a round about way, my take on this is you cannot assign a pointer property to an operator. Easily worked around with a string to pass the name, get the object and set it to the pointer property of whatever.  In the question linked (well my answer to) it is a pointer property on the scene.,,  For the string property use the prop search layout as demode in link https://blender.stackexchange.com/a/159155/15543  If you want to paramaterize objects with pointers to other objects,  assign properties on the object type.

IMO The blender operator way here would prob be make "the object" the context object, and add particle systems on selected using "the object" as render object, just like setting a parent.

Thank you @batFINGER, that's a useful link. The second point about making the render object the context object makes me think that I could rename my operator to make the context objects and selected objects as intuitive as Set parent, currently it is Place foliage but it could be Place foliage cluster on surfaces or hopefully something even more obvious.


text:
What are the bpy context requirements for rigidbody.bake_to_keyframes?
I am creating an exporter that includes a rigidbody simulation, so I need to bake the rigidbody simulation to an animation before exporting the whole file.
If I open Blender manually, then open my script within Blender and run it then everything works fine. As part of my workflow I run Blender with the --background and --python command line args. I have tried removing the background argument, with the same result.
In the script, I have selected the rigidbody objects and set up the context as I would when I manually bake the animation in Blender, but I receive the error message RuntimeError: Operator bpy.ops.anim.keyframe_insert.poll() failed, context is incorrect. keyframe_insert is called by rigidbody.bake_to_keyframes.
Here's the relevant code:
def bake_rigidbody_animation(rigidbody_object):
  bpy.ops.object.select_all(action='DESELECT')
  rigidbody_object.select_set(True)
  bpy.context.view_layer.objects.active = rigidbody_object
  print(f'Active object: {bpy.context.view_layer.objects.active}')
  print(f'Selected objects: {[obj for obj in bpy.context.view_layer.objects.selected]}')
  print(f'Current mode: {bpy.context.active_object.mode}')
  print(f'Rigidbody: {bpy.context.active_object.rigid_body}')
  bpy.ops.rigidbody.bake_to_keyframes()

And the corresponding output (all as expected):
Active object: <bpy_struct, Object("Scrap0") at 0x00000262C764AB08>
Selected objects: [bpy.data.objects['Scrap0']]
Current mode: OBJECT
Rigidbody: <bpy_struct, RigidBodyObject at 0x00000262C76C8CA8>

And the errors immediately afterwards:
Error: Python: Traceback (most recent call last):
  File "E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\startup\bl_operators\rigidbody.py", line 180, in execute
    bpy.ops.anim.keyframe_insert(override, type='BUILTIN_KSI_LocRot')
  File "E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\modules\bpy\ops.py", line 130, in __call__
    ret = _op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
RuntimeError: Operator bpy.ops.anim.keyframe_insert.poll() failed, context is incorrect

location: E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\modules\bpy\ops.py:132

Python: Traceback (most recent call last):
  File "E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\startup\bl_operators\rigidbody.py", line 180, in execute
    bpy.ops.anim.keyframe_insert(override, type='BUILTIN_KSI_LocRot')
  File "E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\modules\bpy\ops.py", line 130, in __call__
    ret = _op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
RuntimeError: Operator bpy.ops.anim.keyframe_insert.poll() failed, context is incorrect

location: E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\modules\bpy\ops.py:132
Error: Python: Traceback (most recent call last):
  File "E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\startup\bl_operators\rigidbody.py", line 180, in execute
    bpy.ops.anim.keyframe_insert(override, type='BUILTIN_KSI_LocRot')
  File "E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\modules\bpy\ops.py", line 130, in __call__
    ret = _op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
RuntimeError: Operator bpy.ops.anim.keyframe_insert.poll() failed, context is incorrect

location: E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\modules\bpy\ops.py:132

Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "E:\Projects\ManGrenadeLateLfs\Scripts\Blender\ExportToUnitySource.py", line 106, in <module>
    main(args.output_file)
  File "E:\Projects\ManGrenadeLateLfs\Scripts\Blender\ExportToUnitySource.py", line 16, in main
    bake_physics_animations()
  File "E:\Projects\ManGrenadeLateLfs\Scripts\Blender\ExportToUnitySource.py", line 51, in bake_physics_animations
    bake_rigidbody_animation(rigidbody)
  File "E:\Projects\ManGrenadeLateLfs\Scripts\Blender\ExportToUnitySource.py", line 90, in bake_rigidbody_animation
    bpy.ops.rigidbody.bake_to_keyframes()
  File "E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\modules\bpy\ops.py", line 132, in __call__
    ret = _op_call(self.idname_py(), None, kw)
RuntimeError: Error: Python: Traceback (most recent call last):
  File "E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\startup\bl_operators\rigidbody.py", line 180, in execute
    bpy.ops.anim.keyframe_insert(override, type='BUILTIN_KSI_LocRot')
  File "E:\Program Files (x86)\Steam\steamapps\common\Blender\3.0\scripts\modules\bpy\ops.py", line 130, in __call__
    ret = _op_call(self.idname_py(), C_dict, kw, C_exec, C_undo)
RuntimeError: Operator bpy.ops.anim.keyframe_insert.poll() failed, context is incorrect

I can open Blender manually and use the operator search to start baking, and I can use the scripting panel to type bpy.ops.rigidbody.bake_to_keyframes(), which both work.
Other info
I found T63067, which talks about using external script files and context overrides. I am using an external script file. I am not using a context override. I tried the suggested fix anyway and it did not help.

Call the bake method inside the following context:
area = [a for a in bpy.context.screen.areas if a.type=="VIEW_3D"][0]
with bpy.context.temp_override(area=area):
    bpy.ops.rigidbody.bake_to_keyframes()

I got the idea from https://stackoverflow.com/a/67697363/4295037 then adjusted it to newer versions of Blender.


text:
View Layers Explained to the Simple Minded, Like Myself
Although I've been learning Blender for six months I've only just come across the idea of View Layers and rendering separate layers.
You know how it goes; you want to learn 3D so you attack the jugular of the things that drew you to it in the first place - modelling, adding materials, animating etc. In the course of learning those, you pick up some other bits and pieces almost as a coincidence, while you miss others completely.
Can someone PLEASE point me in the direction of some tutorials that will explain View Layers (why we'd use them, how we use them etc). I've looked at a few already but all I've seen so far assume I know things that I don't, so I need some lessons that will spell things out to me as if I have a learning difficulty (which I may well have).
Many thanks,
Mark

https://youtu.be/fnAGtXMkRMY  This tutorial is quite information-dense and takes a bit to get into view layers, but it is seriously one of the best Blender tutorials I've seen.

i saw this tutorial...and i think it isn't for beginner. But it is really good. And i did only understand half of it... :D

ok, i try:
View layer separate the objects of your scene.
E.g. if you have a torus and a cube in your scene.
You could add the torus to one view layer and the cube to another view layer.
The main reason for view layers (AFAIK) is compositing.
So you can e.g. give the view layer with the torus a glare node and you could give the view layer with the cube a pixelate filter.
In compositing you can combine these two layers to one picture (or animation).
The other reason for view layers are render times.
Maybe you have to render a scene for a customer. And customers often want changes. So the advantage of view layers are: you have already e.g. rendered the time expensive fog and he only wants to change the color of the car. By view layers + compositing you only have to render the car again and you can deliver your animation in time. If you would have to render the whole animation again it might take days....weeks....or longer ;)
So basically view layer "split" the render process in different parts which you can then combine in the compositor.

View Layers allow you to easily save and switch between some visibility settings, for example in ViewLayer1 you can hide Collection1 and 2, while in ViewLayer2 these collections will be visible but some others will be hidden. This way you can test different solutions for your render (like enable or disable a set of lights for example). You can also enable or disable some settings in the View Layer panel.
But I guess View Layers are mainly used to combine different layers in the Compositor. In the Compositor you can assign an effect to some view layers but not to other ones (and therefore to some collections but not to other ones), then combine these view layers to have a unique render image. For example this way you can affect a Glare effect to some objects but not to other ones.

Even tho the post is a bit older and there have been awesome replies, allow me to explain the structure a little more:
When you have objects in your Blender file they belong to a certain Scene. Having multiple scenes is like using multiple project files, with the exception, that Scenes are able to interact with each other. You might have seen the word "Scene Collection" in your Outliner, which notes, that the subordinate collections are part of the currently selected Scene data block.
View Layers, formerly Render Layers are a kind of subdivision for a Scene. While the "Render", "World" and "Scene" properties are the same for the entire Scene no matter the view layer, the properties for Collections and View Layers can vary per layer. Therefore additional layers are useful to split up the render process into what is rendered and which passes you can obtain. To combine them later you can use the compositor or export them to use in another software.
The render settings are still given by the Scene and also the Camera is the same for each layer. The mere purpose of extra layers is to split up your render into multiple components to process individually (and often combine again later). A basic example would be separating your Mist and Fog elements (not to get confused with the Mist pass) from your objects, to later add then back in. While it is possible to do alot of these color correction and compositing tweaks beforehand in the shaders, view layers allow tweaking an entire group of things and are especially useful for animation to allow post processing for all the frames and their passes with the given Compositing Node Tree rather than having to edit them together manually later.
However if you want to render multiple parts of a project in the same step, without leaving your single file and going through annoying import and export steps, using multiple Scenes can be extreme powerful. Each of your Scenes has their own Collections, Worlds, Render settings and even Output settings. Also the view layers are unique to each Scene. This can handy when switching between two environments during an animation.
Imagine your character looks through a portal into a totally different dimension, using Scenes makes this transition possible for compositing without additional editing afterwards. While it is possible to get a transition like this with shaders, it offers a sort of isolation from the other environments so you can work on each individually and aren't as prone to issues.
What I recently used two Scenes for is rendering parts of an image as Orthographic while the other used Perspective. Instead of going through the export process and managing two Blender files multiple times for each change. The setup allowed me to make changes and not worry about the end result, as I set it up once and it worked for the entire project.
So, Scenes divide your project into multiple individual Render setups, while view layers divide the scenes to allow editing different components of a render. Compositing in Blender, while not the most advanced compared to other software is super useful for almost all projects, due to this dynamic with having multiple layers to your image.
Hope that gave some more understanding. Thanks for reading


text:
Hair Particles Disappearing when Model Turns His Head
Minor problem here. I have a character I've made and he has some stubble on his face that I've used the particle system for. It all looks good through the viewport, HOWEVER, when I render the sucker some of his stubble disappears when he turns his head to the left. Once he turns his head back it reappears.
I've tried remedying this by converting the particles to a mesh but it doesn't look as good. I do have the subsurface modifier below the particles though. If I put it above the particles it doesn't render at all so maybe I've done something wrong there.
There must be an easy fix to this somewhere in the settings but I can't find it so far.
Can anyone set me straight?
Many thanks!
Mark


text:
Can you update an asset once you've used it in other files?
So I'm loving the asset browser in 3.0 but I have a question.
Say you've created a character, marked it as an asset and saved the Blend file in your designated asset folder. However, after employing it in a couple of other Blends, you go back to the original asset file and add, for example, a few new shape keys for facial expressions or replace a material with something better.
Can you update that asset in the new files you had used it in OR do you have to go back to square one and start over (eg deleting the character and adding the updated version)?
As I'm still quite new to Blender I may be missing something here but it seems to me that if you have to delete and start over then it's the same as appending a collection. If That's the case then, to me, that'd be a pity as I've done quite a bit of animation in the files I've used that asset in.
This same question had been asked a lot with older versions of Blender but I haven't seen it addressed with 3.0 yet.
Many thanks!

you can append the asset again, then use its mesh for example instead of the current mesh of the opened file, but maybe give more details

The difference you're describing is between Appending and Linking assets. An appended asset comes in with its own unique data that is not connected to the source file. A linked asset has its data connected with the source file so that any changes to the asset in the source file are propagated to the file where it is used. The asset browser has a setting allowing you to choose whether you'd like to Append or Link your assets upon import. See https://docs.blender.org/manual/en/latest/editors/asset_browser.html#using-assets

Ahh okay. Thanks, @mcurt09. SO - in those files I've already created using that character asset, I need to go back to square one and reintroduce it as linked, rather than appended? There's no way to change that as an afterthought?


text:
Parts of my mesh won't move with the rig
So I've imported a model from Makehuman into Blender, including clothes, and played around with the textures until I'm fairly happy with it. The entire model is made up of nine meshes, including the eyes; I don't need a tongue or teeth.
Because I'm still pretty new to this and have had difficulty in learning how to rig, I decided to join all the meshes into one and then add a decimate modifier to lower the face count. I managed to get it down to about a third it's size. All good so far!
I added a basic meta rig because I just need to have him walking away from the camera. However, once I'd parented the model to the rig, parts of the mesh - namely the arms of the overcoat - wouldn't move with the rest of the model.
Can someone tell me what I've done wrong? Or what I can do to correct this?
Because I'm still a noob I'm wondering whether it has something to do with the proximity of the overcoat arms to the bones beneath. Underneath that overcoat is a suit that still has arms and a back though you can't see them. Should I just delete the unseen parts of it?
Thanks in advance

It's not something I can diagnose without seeing your bend file ((How to add a blend file))  But I am curious? Why not export a basic rig from MakeHuman as a mhx2 file and then import it into Blender with the rigify option?

Thanks Marty! I'll upload the blend file shortly. As for why I didn't Import the Makehuman rig  -  no real reason other than a desire to follow a meta rig tutorial I'd watched a dozen times and STILL hadn't gotten right!

What you can do is separate your jacket as new object, parent it to the armature With Automatic Weight, then join back to the body.
If you want to transfer the vertex groups from the body to keep some weight painting you've made, separate the jacket, select the body, shift select the jacket, switch it to Weight Paint mode, go in the header menu > Weights > Transfer Weights, and in the Operator box make sure that you have Source Layers > By Name, Destination Layers > All Layers:

Note that if you need to give it some corrections, you need to  display the good layers (here I highlight the layer where you have the deform bones), then select the armature, shift select the jacket and paint bone by bone. At last you can join back the jacket with the body:

Thanks very much, @moonboots. I'll try all that and let you know how I go

That's working like a charm so far! I havent followed all your instructions yet but to the extent I have it's all following the rig and doing what it should! Thankyou very much!
How do I mark this down as answered?


text:
Why do some objects appear transparent?
Sometimes the objects I create, in this case, a plane that I filled from vertices, appear transparent. When I create them again from scratch, they don't. Does anyone know why this would be?
Furthermore, I can't use the edge tool with them either, but with a created plane, the edge loop tool works perfectly. Can anyone help?

if you have not enabled the Backface Culling in the Viewport Shading panel, it looks like a bug

When I enable backface culling, the item disappears entirely! Surely this can't be a bug for every blender user? To add, this problem is only apparent in x-ray mode

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

Shared:

Wrong Face Normal orientation ...

well actually you're in transparent mode and as Vklidu says the face can be almost invisible depending on its orientation

BTW those faces are not transparent more than others (in this X-Ray view), it is just an illusion - since blender is showing it as opposite side in shade, this shaded color is just similar to bg color so it looks like transparent.

Just to clarify the two comments above with images:
Uncheck x-ray mode using Alt-Z or by clicking the icon marked with the arrow top-right. Then check Face Orientation on the Overlays menu.

The red face on your object shows that the normals are inverted so in Edit mode, select All then hit Alt-N > Flip Normals as shown below.

You'll now see that your object looks normal:

That's worked! Super, thank you so much for the explanation!

No problem. Please mark my answer as accepted.


text:
What are these black edges appearing on my object? Would really appreciate help!

I've got this issue which appears when I've created this bolt. What's worse is that they appear even when I render the object - it looks like there's black paint on the metal model. Does anyone know a solution?

It could be several things, but it looks like our bolt is reflecting something dar from the environment.  Please add your blend file so we can better help you. (How to add a blend file)

If you've shaded smooth your object, you need to enable the Auto Smooth option and play with the value. If it's not the problem here, please share your file: https://pasteall.org/blend/

Thank you- switching the Auto Smooth option worked. I selected the bolt, went on object properties (green triangle) > Normals > tick-boxed 'Auto Smooth' . Super helpful, thank you :)


text:
How do you stop objects looking so jaggy in the viewport?

As ringed in orange, my model looks extremely jaggy and clippy in the object mode's viewpoint. This is with viewport shading selected. How can I make the model not look this way?
Please note I've already gone on went on object data properties (green triangle) > Normals > tick-boxed 'Auto Smooth' and dialled it way up, but not much difference really. Any pointers?

Does your look jaggy and messy in the viewport? In 'view' near the top right of your view - which can be toggled on and off by pressing the letter 'n', adjust the Clip Start, to say, 0.01 m.
No more jaggies!

It could be that it needs adjusted in either direction depending on the scale of the objects in the scene


text:
What aren't my X, Y, Z axis going in the right direction?

As you can see, I'm trying to move this sphere up or down (z) axis, but the z axis seems to be acting like the X and Y axis -  as in, going from side to side rather than up or down. Is there a way to reset the axes?

you must have changed the Transform Orientations, take a look in the Transform Orientations panel

You're right, many thanks!

you have changed the Transform Orientations, take a look into the Transform Orientations panel and choose the one you want.

Thank you :) That's fixed it!


text:
Camera frame size too large?
I can't figure out how to adjust the camera view frame. I've ringed it in orange so you know the frame I'm referring to. It's either too big, or far too small. How do I adjust the size of this?

Hi :). Simply zoom in/out using the mousewheel.

I'm afraid that doesn't work - I'm not referring to zooming in one the race car, I'm referring to changing the size of the camera view that's ringed in orange on my image. I'm not sure of the technical term, but I know that if you press 'home' it'll take up the whole viewport (which I also don't want).

Oh right sorry :). Uncheck that blue checkmark "Camera to view" then zoom in/out

Go to Properties Editor → Output tab → Format panel.  If you want a more landscape / portrait view, you can change the Resolution.  You can get basically any ratio.


text:
How do I stop Subdivision surface modifier from applying 'too much'?
When I was earlier using Blender tutorials, Subsurf modifier seemed quite 'gentle'. Now, as I'm trying to model a 2D car door, it seems like it's subdividing everything far too much. My end game is simply a slightly curvier version of the car door in the image. I've tried insetting the car window, adding loop cuts, but then turning it into Subsurf modifier makes it look like a cartoon handbag.

Please help!

Yes thanks! Key takeaway for me is: "Make sure to subdivide the mesh AT LEAST TWICE before using a subdivide modifier as there isn't enough polygons for it to look right"

You actually don't need that many polygons, in your case you just need to add some support edges


text:
Edge split modifier is not working at all
In this tutorial (https://youtu.be/71WnmX1UrEk?t=425), the creator smooths out his table tennis bat by either using the Edge Split modifier.
I'm using Blender 3.15 (or similar), and I can't get this modifier working at all - my edges are not smoothed. All the other modifiers, such as Subdivision surface, screw, etc, work just fine.
Doing this on Object data properties > Normals > Auto smooth, doesn't work either.
Any idea why this might be? I can't smooth out other shapes either, such as the monkey head, as shown.

It works fine for me, have you right-clicked > Shade Smooth? Could you please share the object that has Edge Split but is not smoothed?

Try Object menu -> Shade Smooth

Fixed it - as you said, what mattered was the order in which you do it - as in: Right click > Shade Smooth, then > Object data properties > Normals > Auto Smooth    . Thank you, @rooobertek

and thank you also to @moonboots  !

I was trying the Edge Split and personally I think you need to have certain angle between the faces in order to split them.
Try bending the surface and then use Edge Split, kept at 0 degrees, and apply Solidify.


text:
Light colour - Node Emision colour vs Light colour
Hi I'm using cycles and have noticed that when using nodes to control lights there are two different light colour inputs 1. The original light colour and 2. the emision light colour.

Can anyone tell me why this is? or probably more importantly how they interact (Multiply?) and what the best method is for controlling the light colour? If one is left white then the other seems to control the colour otherwise they seem to mix with the most saturated one being more dominant.
Thanks, any insight would be appreciated.


text:
how do 2 low poly animals merge into 1?
I am new to Blender and I have created some low poly animals (for example a frog and a bear)

and I would like to merge them together in order to get a single animal mixing the characteristics of the 2 starting animals.
In this way, I would like to be able to create animals with at one extreme one animal mainly the characteristics of one animal (frog) and a few characteristics of the other animal (bear) and at the other end an animal with a lot of characteristics of the bear and few characteristics of the frog.

Do you know how to do this?
Thank you very much !

https://www.youtube.com/watch?v=YBvA2Hduk_w, try to look at this quick tutorial from 1:30, it is for older version but it still works same way, You just use shape keys to transfor object from frog to bear and you can stop at 0.2 0.4 0.6 and 0.8 to get those 4 morphing animals (it may not look perfect if your animals are very different, also both animals need same number of vertices)

Keep in mind, simply interpolating each vertex between two positions (on the right), without considering structure, with no weights, guides etc. is far from ideal (on the left): https://imgur.com/52RlXn2

BTW, if you create the models from scratch, you can create a basic shape for both animals, create shape keys, then model those animals separately - you can even add new geometry with loopcuts and its will be added for both shape keys in good positions.

You should plan this from the beginning, you can either:

Duplicate the object to create a second one, model your second object but make sure that you keep the same amount of vertices, then at the end use the Join as Shape option in the Shape Keys panel in order to save the second shape into the first object (or vice versa), and use the Value under the shape keys list in order to transform a shape into the other.

Or create your object, create a second shape key, keep the second shape key selected and model your second shape, and same thing, use the Value under the shape keys list to transform.

Each mesh vertex has an index, to morph from a shape to another Blender must recognize each vertex index. So I'm not sure how you would do it if you have 2 completely different objects.


text:
I would like some assistance with the Screw/Shrinkwrap modifier
I would like some help with my Shrinkwrap modifier as it is really weird. It doesn't apply properly around the target. This is what it looks like, along with the modifiers:

I've alternated between different settings, but to no avail...
This is what I want it to look like:

Please lend me a hand. Thanks!

hello please share your file: https://pasteall.org/blend/

Hello. I've attempted to share the file after pressing upload, but it seems to download the file onto my device again. What do I do? I'm new to this whole stuff. Thanks.

once you've uploaded, copy the URL address it will give, and paste it here

https://pasteall.org/blend/c633733beff14e05b97dae343b70efc9

Your screw object is not in the file, please share the screw object as well  ;)

My apologies. https://pasteall.org/blend/bb4b269dac7b4a45adef6ba841f44bc1

You need to apply the scale of the object called Cylinder:

Thank you very much for that! I'm experiencing another problem with the same object when I apply the Solidify modifier. How can I show this to you?

create a new question?


text:
Completely Blank/White Render (2.8)
I am having difficulty rendering my scene in Blender 2.8.
When I render my scene I receive  a completely blank/white screen. This is occurring when I attempt to use both Cycles and Eevee.
Does anyone have any suggestions as to how I may resolve this?
Thanks

Check for hidden objects in the outliner, and check that your main camera hasn't accidentally been changed to some other object.

There are no hidden objects in the outliner and my main camera has not been changed to some other object. Do you have any other suggestions?

You'll have to include more pictures of your settings, or head to https://blend-exchange.com/ and upload your file so someone can take a look.  If you [edit] your post it will be automatically bumped into the review queue to be reopened.


text:
Why does the fill tool only color gray?
I was filling in the eye  of this ghost character and even though I put the fill setting on the brightest white it couldn't get any color than a gray that was way too dark, and when I tried changing the color to something like neon green it still made no difference and gave me the exact same color. I can't find a single thing even close to answering why its doing this and I'm following along with a tutorial and haven't done anything different than the tutorial. Does anyone know what's going on and how to make the actual color I select show up when I fill?

Check your GPencil Layer, if it has its attribute "use lights" checked. If so uncheck it.
In the rendering properties, change the view transform from "filmic" to "standard" and set the look to "none".


text:
Can someone give some tips to recreate this ribbon
What would be a good way to recreate the frills on the end and the lines inside of it ?

if you have a PNG image with transparency you don't have to model, use the transparency

Yes, I made a lot of things like this: Import images as planes, add some cuts and subdivision.

Please read this meta (What is the problem with posting an image (or link) and asking “How do I do this?”). What exactly have you tried that has not worked? Please [edit] your question and show what you have tried that isn't working for you.


text:
HDRi and sun lamp vs Nishita sky texture
I would like to know is there any benefit to use Sky texture node / Nishita with a bg backdrop compared to a HDRi and binding sun lamp. Also if you use Sky texture is there any benefit to add Sun lapmp with exact same position... Bit confusing, but I have feeling that you get cleaner results with sky texture and backdrop...

I guess Nishita (and others) is just a procedural HDRI. As for the sun it will create parallel light rays, it won't be the case for a simple white circle on a procedural or HDRI background.

An answer comparing performance of Sky Texture vs Hi-Res HDRI would be nice :)

The Nishita model is described in the paper Simulating the Colors of Sky.  The Blender Nishita Sky model is based on an updated version of the original model, but is very similar.
The difference between a sky model such as Nishita and the use of an HDRI is that the sky model attempts to deal with the way the atmosphere filters the light.  In a sky model, if you position the sun closer to the horizon, the light will be redder, than if you position it near its zenith.
Additionally, sky models attempt to account for the effect of clouds.
If you use an HDRi and a sun lamp, you would need volumetric lighting and cloud models to accomplish the same effect.  You would also have to model any clouds that you wanted to appear on the horizon.


text:
Light effect on window
I am modelling a building and I am having a hard time getting light to shine through windows.
This is the building - pay attention to the windows on the ground floor, specifically the ones on the right and on the sidewall:

There's a light fixture in the room, which is just a cylinder with emission + blackbody for colour temperature. Now the problem: only one window is bright, the other one is dark but you can see a bit of light cast on the ground outside the dark window.
The node setup as is simple as it gets:

The funny thing is that when I look in 'rendered view mode', both windows are bright however there's no shadow:

I've done some research on how to get light to shine through glass - there's tons of content (including on here) but 2 things:

None of them quite worked - they either fixed something but broke something else or just did not work at all
Most of them seem to use a combination of Glass BSDF + other nodes, which I think it's a legacy way of doing it. I read somewhere that glass in Blender 2.9x is fully supported by the Principled BSDF.

The closest I got to make it work properly was this:

The shadows on the ground look perfect but the window is not bright. Confusingly the dark windows on the side are reflecting the balconies - I don't get why. There's no other source of light except for the light fixtures inside the building.
The node setup was:

How can I get fix my windows so that light + shadows work properly?
BTW I am using Cycles.

I figured out what the issue was - the 'normals' were wrong.
I turned on 'face orientation' and noticed the outer faces of the window were red. I selected them, went into Edit Mode -> Mesh -> Normals -> Recalculate Inside.
Everything looks good now.


text:
How to create a curved side in a cylinder
I want to model this:

Ignoring the upper and lower parts and focusing only on the tapered sides of the cylinder, how can I get a cylinder to have that shape?
I've tried several things:

Add a few horizontal loop cuts and try to scale it in with proportional editing turned on and set to sphere.
Boolean operation - I created a second cylinder, rotated it and brought it in close to the main cylinder and applied a 'difference' boolean operation. It worked - the sides looked like I wanted them to, but the mesh became a mess and I couldn't find a way to fix it. I used the knife tool to connect a few vertices and ended up with a mix of polys and tries that looked terrible.
Tried a few other things that I am embarrassed to admit I did lol.

Thanks!

https://blender.stackexchange.com/questions/69411/what-would-be-a-simple-way-to-model-a-curved-funnel/69416 https://blender.stackexchange.com/questions/90963/how-to-create-a-rounded-cone

https://blender.stackexchange.com/questions/114490/twisted-cylinder-hyperboloid-of-one-sheet

You should be able to do it with Proportional Editing but you can also create an edge loop, scale it down:

Then CtrlB to bevel, you can tweak some parameters in the Operator box:

I cannot believe this. I was just missing enough loop cuts - I added a number of them with the bevel tool and proportional editing worked. I've been trying to do this since yesterday and it was an absurdly simple thing. I should give up on learning Blender lol Thanks @moonboots!

It's happened to everyone. :D You'll never forget about proportional edit now

@antidextrous You're doing fine, everyone here gets schooled by moonboots at some point :D

^^ come on, this one was easy, but yes sometimes you forget the easiest way. By the way, Antidextrous, you don't need Proportional Editing here, just bevel, but of course you can also use Proportional Editing if you want


text:
why does the face become weird or invisible when the color is changed?
I'm just learning Blender. I want to color some parts of the car that I have made. but when i change the assign to a new color the face of the object becomes weird and sometimes becomes invisible.

when I try it on a simple object like a cube this also happens.

can you help me?

Definitely not normal. Could be a GPU or OpenGL issue maybe. What does your setup look like (processor, GPU, operating system)? Regardless, make sure your graphics drivers are up to date (except maybe in the case of AMD GPU's whose drivers have caused blender trouble recently).

My setup is (processor: core i5, GPU: AMD Mobility HD 5770, OS: Windows 10). Thank you for information about AMD GPU's whose drivers have caused blender trouble. @Christopher Bennett

check face orientations maybe that is  causing  the issue. if not provide a blend file with those materials and a example model

Here the blend file link. may be you can help me @mma78

I can't see the transparent face here so yes it may be a driver problem, have you tried a previous one?

thanks for seeing it @moonboots . so now i know my GPU doesn't support or driver problem. The best way I can handle it is by duplicating the face of object into a single object and coloring it. The results are in the link above. but I don't know if this method will work in the future.

what do you mean by "so now i know my GPU doesn't support or driver problem"? If you think it's a graphic card problem, maybe try to enable the High Quality Normals options in the Render panel > Performance?

I think so, because you don't see it transparently. I have enabled the High Quality Normals. try blender version 2.8 until the latest update 2.9xx. the result remains the same, the face of the object with 2 colors, one of the faces of the object will be transparent or be weird. @moonboots

I don't see the transparent  but I don't have a GPU also . I run blender on my intel . sry could't find the issue


text:
Geometry Nodes - how to group Face Corners with common Vertex for group max Attribute filtering
First I calculate Curvature float value for every face corner of mesh.
Than I want to use "FindGroupmax" node group from lukas_t to find max curvature value for every Vertex based on its Face Corners.
Im not sure how to sort/group Face Corners with "common" Vertex (sharing same location).
Perhaps something with "corners of vertex" node? Or something with comparing positions?
Here is the example file

this is how curvature values look displayed on face corners (looks ok-ish)

this is after (wrong) filtering, it is scrambled all over the place becouse of wrong use of indicies.

this is node tree with highlighted grouping issue

If you are trying to get a group ID fir all the corners of a vertex, all you have to do is use the vertex index.
So you use an evaluate on domain node set to vertices. (Or the vertex of corner node, they are the same thing).

Thanks to your tip I've made some progress, although not quite there. If I store Index (point) before calc. the curvature and use that as group ID fo "FindGroupMax", together with interpolate (evaluate) Domain in front of that, the values get smoothed-out, which is something. However the "FindGroupMax" is not doing anything (I know it works when plugged in correctly). Any idea what could be wrong now?
https://ibb.co/K9gs6mz

You setup doesn't really make so much sense. In a grid there are usually 4 corners per vertex except on the corners. You only use two corners and they are probably not from the same vertex since you are kinda doing it wrong. You probably want to offset the index after you set the corner index not beforehand.  We also don't know what the nodegroup findgroupmax dose. So there could be a lor of issues. As well this could just not do what you were expecting.


text:
How to recognize local and linked Material with Python
in blend file I have local material called "aluminium".
Then I link material called "aluminium" from from different blend file.
How can I regonize these two?
When I print:
for mat in bpy.data.materials:
        print(mat.name)

It prints "aluminium" twice.
When hovering over these in outliner, it shows no python tooltip.
Thanks

Look at library property
For two ID objects of same type to have same name will be from different linked libraries
>>> for m in D.materials:
...     m.name, m.library
...
('Material', None)
('Material', bpy.data.libraries['aubio_tests.blend'])

Can use the library as an extra key
>>> D.materials["Material", None]
bpy.data.materials['Material']

Thats it, thanks alot!

You can also use .name_full to differentiate:
>>> print(*[m.name_full for m in D.materials], sep="\n")
Dots Stroke
Material

>>> with D.libraries.load("E:/pixarletter.blend", link=True) as (f, imported):
...     imported.materials = ["Material"]
...
>>> print(*[m.name_full for m in D.materials], sep="\n")
Dots Stroke
Material
Material [pixarletter.blend]

Thanks, thats also helpful to know!


text:
How to capture group index for points with the same position?
I have bunch of points and they are overlapping (most common is 4 at the same coordinate).
Is there a way to assign group index to all points sharing the same location?

You could sample the nearest index from a branch in which you have merged points by distance.  Here ID is set, but you could just capture, instead:

Then all vertices less than Distance apart will share the same ID
(You could capture Accumulate Field > 'Total' with 1 as the field value, using ID as 'Group Index', to separate coincident points from the others)

Nice trick! I was thinking using modulo to define a unique integer for each cell of a 3D grid, but using a 32 bit integer that gives a resolution of $11×11×10$ bits or $2048×2048×1024$ grid cells. For 2 m × 2m × 1 m space a grid cell of 1 mm, not terrible but much worse as the space increases…

@Markus .. and you've got the problem of same-cell-but-not-closest? This one, once again, relying on in-house BVH..

I have no problem, just saying I would solve this in a worse way. One could improve the cells algorithm to just list the cells used and then sort them, but gets very complex, most probably still slower than your solution, and one of optimizations might actually use merge by distance at some point...

@Markus ahh .. sorry..  for: 'you've got', read: 'you would have' (hypothetical).. and we still don't know if it works for OP.. :)

Cool simple trick!
In my specific case however it didnt work, since I have curves and merge by distance doesnt seem to work on curves. But got there by converting whole mesh to curves (reasons...), so I tried to simply store named attribute for points based on index before converting and that worked like a charm (that named attribute got copied to all disconnected curve points created from original mesh point).
Now Im not sure if I can mark your response as solved, cos its great for most people, but in my case I used something else?

Hi @JosefLudvíkBöhm !  It looks as if you asked the wrong question, and this is a wrong answer, but they match :)  IMO, the middle of a fix is there, and others can adapt it the way you have, so safe to call it good. ( But i'm biased, of course,)


text:
How can I get the global coordinates of joints or bones of a skeleton during animation?
I want to get the coordinates of joints of a skeleton. The following is the main code I used.
obj = bpy.context.object
obj_bone = bpy.context.object.data.bones
for f in range(scene.frame_start, scene.frame_end):
  scene.frame_set(f)
  verts = [obj.matrix_world @ obj_bone[i].head_local for i in range(31)]

But the coordinates of joints are the same between frames, seems the obj_bone only gets the coordinates in EDIT mode, how to get coordinates for all frames?

See this answer for code; but the summary is that if you look at the armature's .pose.bones instead of .data.bones you get the position of the bones in pose mode.

Thanks marty. I tried pose.bones[i].head, but this coordinates are relative to its parent, unlike data.bones, it has attribute "head_local", which is relative to the armature, thus I can use "obj.matrix_world @ obj_bone[i].head_local" to get the world coordinates of bones. How to go from pose.bones[i].head coordinates to world coordinates?

The problem is solved. According to marty's comment, I use pose.bones instead of data.bones and the world coordinates of bones are calculated as follows:
obj = bpy.context.object
pb = obj.pose.bones["Neck1"]
obj.matrix_world @ pb.matrix @ pb.location

more details see How to get posebone global location


text:
Weight paint won't subtract!
Simply put all my brushes are doing the same thing, adding weight, no matter which setting I apply to the brush whether it be subtract or any other tool for that matter it only adds, this is making it very difficult to Weight paint, everyone I've asked who kind of knows the program doesn't know what to do.

When you are weight painting you are changing values in vertex groups. I had a similar issue once but managed to track down the culprits by looking at the vertex groups in the menu instead. Turned out that I had turned on some kind of mode where the mesh moved with the animation (which made weight painting buggy for me)

if I had previously deleted the vertex groups to try a data transfer weight paint would that effect it at all?

I think you can create vertex groups without weights. Not sure if they overwrite the ones that work though. But yes since it is the vertex groups that hold the information you need them, I think they show up in the right hand side menu in the viewport under some of the tabs there when you select a vertex. Maybe inside the new data tab too? I am still to rookie to know for sure.


text:
Video sequencer playback doesn't work
I'm trying to edit a video in the sequencer but video playback just doesn't work, it only works if it's played backwards for some reason, when I press the play animation button it only skips a frame and then it stops
Here's a video of the problem (I'm using the 3.0 Alpha but the problem still is present in the 2.93.4 Stable): https://youtu.be/YFoRtFUMXl8

Ok, I found a solution, I just had to change my audio device in Preferences/System/Audio Device to either OpenAL or PulseAudio. I guess it worked backwards because it doesn't do audio backwards

I had the same issue and solved it by setting the Playback: Sync option to Play Every Frame.

I had to go to Playback: Sync and it was set to Sync with Audio by default.
I selected Play Every Frame and it finally started working.


text:
Fire Simulation Hitting Border
Trying to make a torch, but the fire simulation keeps going to the top of the border. How do I shorten the flame?

Try reducing the Fuel value of the flow source: https://docs.blender.org/manual/en/latest/physics/fluid/type/flow.html#settings

thank you that worked

You’re welcome. :-) Now comes the question as to whether I copy this comment into an answer… you know what, you copy it: You can answer your own question.


text:
Cell Fracture Exploding When I Add Rigid Body
It keeps exploding and idk why, pls help.
Here's the file https://we.tl/t-cjMKbH7rsG

OK it drives me crazy :) There are two things that give a reason to cause explosion - you can't use Collision Shape > Convex here, but Mesh instead and if you enable Face orientation overlay many of charts highlights red faces because of bad topology, that can confuse blender to say what is in and out for sim. But even I tried to ... Apply Scale, lower Sensitivity Margin, keep only two nice looking shards, delete Rigid Body World and create a new one ... it is still exploding. I'm quit ... sorry.

It might be the topology of the shards. I did a Merge By Distance for several shards and it always removed some vertices. So I added a Remesh modifier (mode Sharp), applied the Scale, transferred the modifier to all shards (menu Object > Link/Transfer Data > Copy Modifiers) and applied it (Object > Convert > Mesh). Then deleted the Rigid World and made all shards Rigid bodies again (Object > Rigid Body > Add Active). Then it no longer exploded but just crumbled apart. Unfortunately, you see cracks. But you can swap a solid object with the fragments for animation.

To stop the crumble you can use Rigid constraints (Object > Rigid Body > Connect IIRC) or start them deactivated (Physics Properties tab > Rigid Body > Dynamics > [X] Deactivation > [X] Start Deactivated. You need to keyframe a collision to blow it up. https://i.sstatic.net/tR9SZ.gif (start deactivated) -- oh, and changed the Collision Shape to Mesh like vklidu wrote!


text:
I have some issue while using UV editing

This is the first time I am using a blender, my model name is infant 3d modeling, while I am into edit mode my object looks like this and there are no changes in the edit. and the options for UV editing were not working.

it looks like you've selected an armature? An armature doesn't have any UV

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

Actually, I tried to transfer my blender file to unity 3D but there is no object in the unity once after I transferred. That's my Initial problem, In order to overcome it, I found that I have to unwrap my obj file in a blender.


text:
Baking to Ambient Occlusion in Blender 2.71 has this distorted effect

I just want the image baked to no distortion.

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

I want to create a baked texture, I do this by having Bake Mode selected to Ambient Occlusion, with the UV map selected and the object selected, the image bakes like this. As you can see in this image, the baked result is not clean. Where the darker areas should be, it bakes into black and white noise instead of a smooth darker tone, which is what I'm trying to achieve.


text:
Z and Y coordinates are swapped, regardless of the transform orientation?
Whenever I try to resize an object locked to Y axis, it resizes what used to be Z axis. I cycled through all of the transform orientations, but the Z and the Y axis are still swapped. I'm using Blender 2.71.

maybe apply the rotation? Ctrl A > Rotation

I tried Ctrl + A + R, and Ctrl + R, but that doesn't change the coordinations.

could you please share your file (upload and share the URL): https://pasteall.org/blend/

I'm not using a specific .blend file. Even at the start up with the cube and light, the coordinates are still switched.

IIRC, 2.71 still had a preference that allowed that; but it's been a long time.

So I can manually swap the coordinates in 2.71?

Is there any way I can revert Z and Y back to their original coordinates?


text:
How to make Mantaflow spawn less fluid without resizing source?
I'm trying to get a fluid simulation working so that I can have a character who's basically always dripping (he's kinda made of fluid? It's difficult to explain). I want to use Mantaflow for the realism and the fact the character needs to be animated.
The problem is, every single simulation I do, the fluid comes out of the inflow object like a hose! Or at least a faucet at high pressure. I've been messing with every single setting, starting from a Quick Fluid, so to recreate my scene just apply Quick Fluid to a cube. I do not know how to include Blender files here which is why I'm giving those instructions instead of just including the file.
I know how to work with viscosity and such to get the fluid behaving how I want once it is emitted, it's just having WAY too much spawned.
Basically the way the character works is that he's supposed to just have a constant slow drip of the same material his body is made of (it's just pure black with no shading).

Here's a sketch of something like what the goal is. But what I am getting is essentially this:

Here's an actual screenshot of the current simulation (it looks crooked because the cube is animated to move side to side, I was messing with the viscosity and such):

There's no collision so it shouldn't be flowing around anything at the moment, but I don't want it to be coming out like a faucet. I want it to essentially just drip from the center of the cube (with this setup). I already have an idea to get the character to work with collision and stuff but it's just too much actual fluid.
How do I reduce it? Everywhere I look just says to reduce the source velocity but if it's anything above 0 it looks like this, with 0 spawning nothing at all. It only seems to change how the source's animation effects it which isn't what I want to change. Scaling the entire inflow object is not an option since it's for a character (though doing that still has the same problem, it's just a smaller faucet...).

I see what you’re trying to do there. Not sure how to fix this, but I can say that to upload blend files here, use blend-exchange.com or pasteall.org/blend

and maybe give us a link to a video how it should look like...do you want something like this https://youtu.be/JtDxBSHBVrs? or more like this https://youtu.be/vL3aWbuoCqI?

@Chris Neither of those. Imagine something that's soaked in like, some sort of smooth mud or something and slowly dripping it off. It's closer to the first one but that's WAAAAYYY too fast flowing- I could easily do that with what I have now.

The System Maximum value in the liquid domain properties can be keyframed, and then no more hose effect or tap water type flow.
What it does is instead of filling the mesh with points and then emitting the liquid from each one at each frame, it picks X points and emits liquid from them for 1 frame. 5 points here

If the value is not animated, in the following frame there is no particle emission :

If you animate the system maximum value and add X per frame, it keeps the same X points from the previous frame and emits from them.

As long as the value added at each frame does not exceed the number of points available in the emitter, you should be able to control the "bleeding" without too much of a headache.
Example : blend file

Hi, thanks for the post. This site is not a regular forum, answers should be substantial and thoroughly explain the solution and required workflow. One liners and short tips rarely make for a good answer. If you can [edit] your post and provide some more details about the procedure and why it works. Perhaps add a few images illustrating the workflow describe the steps. See How do I write a good answer?

This is not the result I wanted (generally less fluid being generated, not streaks of equally-fast fluid) so it doesn't answer my question, but I do appreciate the attempt :)


text:
Shrinkwrapping around an object gets cut off
I modeled this screen that I want to shrinkwrap around a column, but when I use the mod, it doesn't go all the way around, is there a better way to make this go all the way around?

one possibility is to give the plane enough subdivisions and then use the simple deform - bend modifier.
So you will get something like this:


text:
Plane is not reflecting object
I'm new to blender. I'm trying to reflect an object on a surface.
Following this youtube tutorial I've added a plane with Glossy material and an object on top of it.

But the object is not reflecting on the plane in the render

Any help is appreciated.

If you did not move anything, you need one of two thing. 1 .- Turn on Screen space reflection inside the render settings because you are using EEVEE Render or 2.- Switch to Cycles render engine.

@Emir Thanks that worked

if you want a good reflection you'll need a Light Probe > Relfection Plane, see here: https://blender.stackexchange.com/questions/190642/how-do-i-get-proper-reflections-eevee

As @Emir pointed out in the comment I turned the Screen Space Reflections on render settings


text:
Can't move object except on a single keyframe
I have a downloadeded blend file. The objects within it can be moved only when the timeline is on the first frame. What can I do to make them movable on any frame.
Note: The Affect only options are all unchecked and snapping is disabled.

Actually it is possible to keyframe the translation locks. Maybe they are locked from the second frame on?

since you are new here it is a good idea to provide your blend file so we can check it out...

@Chris I have downloaded it from blendswap, so can't share it here due to copyright. But you can download it directly from: https://www.blendswap.com/blend/25425. The body parts of the fish are separate objects. Try moving on of them other than torso on any frame other than 1.

@GordonBrinkmann No I checked that. There is no transition lock on the frames where the objects can't be moved.

Found that the objects have actually cloth simulations applied, they can be moved if the cloth simulation is removed :)


text:
Sticking GP Strokes to Mesh Surface with Bendy Bones
I have a mesh parented to bendy bones. I have created some grease pencil strokes on the surface of the mesh. The problem is, when the mesh is deformed by bbones, the GP strokes get detached from the surface. I tried parenting the GP object to the same armature but that doesn't work.
How can I make the GP strokes stick to the surface even after the deformation.

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

There can be 3 methods I can think of for good results:
One is to turn the GP object into a texture and apply it to the mesh material.
Two is to turno the GP object into a mesh and parent it to the rig.
Three is to add a lattice modifier and set the rig to deform the lattice and the lattice to deform the GP object (needs careful weight painting).
An image of the project could help to choose the best approach.

Thank you! Could you please tell me how to turn GP strokes into texture? I did not find the option anywhere.

You have to set a camera, create a render, save it as image and use the image as texture of the surface of the mesh.


text:
I imported a GLB file from Tilt Brush, and now the brush strokes look like ribbons. How can I fix this?
I imported a GLB file from Tilt Brush, and now the brush strokes look like ribbons.
How can I fix this?
I'm linking a YouTube video of how the brush strokes should look when zoomed in.
https://youtu.be/gVAa8H5IRWg
I'm also including a screenshot of my Blender workspace.
I was able to get the colors to show by changing the blend mode to 'Mix' instead of 'Multiply'.

Never mind, I figured it out. I was able to upload the file directly to SketchFab on the TiltBrush/OpenBrush app and then download the GLTF file from SkecthFab. Apparently when you export to GLB on the app, it doesn't include the textures.

Hello, as I understand Blender had nothing to do with the mangled geometry, did it ?

@Gorgious - yep, it's an abstract painting/sculpture that I created in VR using Tilt Brush. I wanted to render it in a 3D program instead of taking screenshots from my Oculus.

Thanks for coming back and reporting that you found a solution. If you mark your solution as the preferred one, your question will stop showing up in searches as a question still in search of an answer.


text:
How to edit a UV Map Color?
i imported a fbx from a unity UV Mapped textured asset and am trying to reassign a color or two in blender, is this possible?

Sorry, but I don't really understand the goal of your question. What exactly do you want to do?

@Tsybe So i have a .fbx from unity which has 1 material that is uv mapped to 5 colors. I am trying to change one of the colors in blender using the UV mapping editor and then import the changed fbx to unity. For more detail, the object is a road, the road has grass as one of the colors/materials and I want to change the grass color.

To do that you will need a material that is assigned to the object (road) after this you need to create the texture for the road and connect it to the material. Example:

The texture: You have to create a simple image, even in Blender. Then you need to separate that image into 5 parts for the 5 colors. Then in the UV editor, you have to move the UV islands to the required color. Example:

Blend file if you need:

Texture for the blend file: https://i.sstatic.net/6BMWL.png


text:
OpenEXR Render Error when running in new process
I'm trying to render some images using the Blender Python module, in a new process (but never more than 1 process at a time).
I am able to create JPEG/PNG/OpenEXR renderings without spawning a new process.
However, I am only able to create JPEG/PNG renderings while spawning a new process. There is an error when generating in OpenEXR format.
Minimum code example below:
import bpy
from multiprocessing import Pool

def blender_test_render():
    bpy.context.scene.render.engine = "CYCLES"
    bpy.context.scene.cycles.samples = 1
    bpy.context.scene.render.resolution_x, bpy.context.scene.render.resolution_y = 300, 300
    bpy.context.scene.render.filepath = "output"

    for fmt in ("JPEG", "PNG", "OPEN_EXR"):
        print(f"generating {fmt}")
        bpy.context.scene.render.image_settings.file_format = fmt
        bpy.ops.render.render(write_still=True)
    return "abc123"

def run_as_process(func):
    p = Pool(processes=1)
    x = p.apply_async(func)
    ret = x.get()
    p.close()
    p.join()
    return ret

retval = blender_test_render()  # works
print(f"success: {retval}")

retval = run_as_process(blender_test_render)  # fails on OPEN_EXR format
print(f"success: {retval}")

Error:
IMB_exr_begin_write: ERROR: No such file or directory.
multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
  File "/usr/lib/python3.7/multiprocessing/pool.py", line 121, in worker
    result = (True, func(*args, **kwds))
  File "/mnt/c/test_dir/test_code.py", line 164, in __main__
    bpy.ops.render.render(write_still=True)
  File "/usr/local/lib/python3.7/site-packages/2.92/scripts/modules/bpy/ops.py", line 132, in __call__
    ret = _op_call(self.idname_py(), None, kw)
RuntimeError: Error: Error writing render result, No such file or directory (see console)
Error: Render error (No such file or directory) cannot save: '/mnt/c/test_dir/output.exr'

Of course, the directory exists:
$ cat /mnt/c/test_dir/
cat: /mnt/c/test_dir/: Is a directory

It's an OS specific problem, I suspect.  what does ls -al /mnt/c/test_dir show?

-rwxrwxrwx for test_code.py and all the output.{ext}, drwxrwxrwx for . and ... I'm using WSL Ubuntu locally but I have the same error on a remote Debian server.

I'm at a lost.  I was guessing that output.exr was owned by some other user or group and didn't have the right write bits set but that should work.


text:
I cant see meshes in Solid and Wireframe mode but i can see it in Render mode
I cant see anything in Solid and Wireframe mode but everything is fine with Material preview and Render mode. Tho in Solid and Wireframe mode i can see just a small area like some ray going from abobe. I can select objects with A and move them. But they are only visible in that small area.

Hi :) Try pressing the ALT key + B  This keyboard combination toggles the Clipping to Border function. It enables you to hide all parts of the scene that are outside of the designated border. As it looks like you have done this then to unhide what was masked out use the same keyboard short-cut again: ALT + B to dis activate that border.

See the answer to this earlier post  https://blender.stackexchange.com/questions/18965/is-there-a-way-to-display-only-a-certain-view-in-the-viewport

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


text:
Why are eevee and cycles so different
So a blender newbie here,
I was following up a tutorial and I noticed a thing in EEVEE and cycles viewport render,
Where EEVEE viewport looks terribly different than CYCLES

So is it normal or did I mess up some EEVEE settings,
Any help will be appreciated
Thank You

Typically differences are much subtler - until you use a cycles only, or eevee only feature. For example if one of your materials emits light, it will emit it only in Cycles. If you use shader to RGB node, it can change the material output drastically, but it will change it only for Eevee, where it works...

Seems like it's only the ground plane material that's causing trouble. If you share your file, we can very quickly identify the problem: https://blend-exchange.com/


text:
Issues with my Rig
All works great with my rig except the fingers, they rotate in sideways, I tried recalculate roll -Z and that did not help.
P.S. I use Auto Rig Pro plugin to generate my rig. Also to rotate my fingers into a fist I use individual origins and rotate them on Y axis.
Can anyone please help me with this problem?
Much appreciated!!!!
Pic info:

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

I don't know Autorig Pro. But have you tried to adjust the bone rolls manually? You can do this in the N-panel. It's also helpful to activate the display of the bone axis (it's in the Viewport Display options IIRC). You might need to roll some control bones as well.


text:
How to reverse armature deformation?
I am working on a Blender script that imports characters from a video game. Without going into too much detail, my starting point is a package produced by a game plugin that includes a weight-painted, deformed mesh, and a full rig that describes the deformation (one 4x4 matrix for each bone). This "baked-in" deformation describes the character's physical dimensions, and it is mostly done through scales (e.g, to make a character with thick forearms, they might apply scale (1.2,1.2,1.0) to the bone that deforms the forearms.) I can then write the matrices into bpy.context.object.data.edit_bones['name'].matrix and I get a nicely rigged character that I can do FK on.
This part works well enough. But now I want to do more 'interesting' things like edit the character's dimensions or morph between characters, so I need to be able to revert the mesh to its 'original' undeformed shape. Getting the undeformed mesh straight out of the game is a last resort option, for various reasons. That's where I hit a snag. My first expectation was that I could just go into pose mode, apply the inverse of each bone's scaling to bpy.data.objects['Armature'].pose.bones['name'].matrix_basis, and I would get the original mesh. But it apparently does not work like that. It's close enough for scales near 1, but, if deformations are large, I see large deviations.
I can't find the deformation formulas documented anywhere and I don't want to start digging through Blender's source code, but I tried an experiment. Take a cube, insert two bones, parent with automatic weights, "pose mode", scale one bone by a factor of 0.2 (which turns the cube into a prism), "object mode", "apply visual transformation to mesh" on the cube, back to pose mode on the armature, "apply pose as rest pose", parent them again (this time, with armature but without automatic weights), and, in fact, I can't turn the prism back into a cube any more. So, this deformation is irreversible? Or some information is lost along the way?
My last attempt was, instead of loading the initial deformation into the EditBone layer, to split up each matrix into the EditBone component that gives me the default character, and the PoseBone component with scales and offsets that take me from the default character to the custom character. Then the challenge is that I can't modify PoseBone objects without deforming the mesh. Even if I remove the armature modifier from the mesh, write into PoseBones, then reparent, the mesh deforms the moment I reparent.
I found this How do i Parent a mesh to an armature that is not in rest Pose? and this Apply as rest pose deforms the animation, neither of those options worked exactly right, but I managed to come up with some really hacky code that gets me about halfway:
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.context.view_layer.objects.active = arm
    bpy.ops.object.mode_set(mode='EDIT')
    for x in bpy.context.object.data.edit_bones:
        x.matrix=default_armature[x.name]

    # unparent the mesh from the armature
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.select_all(action='DESELECT')
    body.select_set(True)
    bpy.context.view_layer.objects.active = body
    bpy.ops.object.parent_clear(type='CLEAR')

    # recursively set matrix_basis to map from the default armature to the customized armature
    bpy.context.view_layer.objects.active = arm
    bpy.ops.object.mode_set(mode='POSE')
    setup_pose_one_bone('cf_J_Root', arm)

    # create a duplicate of the armature
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.select_all(action='DESELECT')
    arm.select_set(True)
    bpy.ops.object.duplicate()
    ob = bpy.context.object

    # on 'arm', set current pose as rest pose
    bpy.context.view_layer.objects.active = arm
    bpy.ops.object.mode_set(mode='POSE')
    bpy.ops.pose.armature_apply()

    # parent the mesh to 'arm'
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.select_all(action='DESELECT')
    body.select_set(True)
    arm.select_set(True)
    bpy.context.view_layer.objects.active = arm
    bpy.ops.object.parent_set(type='ARMATURE', keep_transform=False)

    # constrain each bone of 'arm' to exactly match the corresponding bone of 'ob'
    bpy.ops.object.mode_set(mode='POSE')
    for x in arm.pose.bones:
            con = x.constraints.new('COPY_TRANSFORMS')
            con.target=ob
            con.subtarget=x.name

Now I have two armatures, the mesh is parented to one, but controlled by the other. All the bones are in the right places, and, if I put the second armature into rest position, the mesh is resized to the dimensions of the reference mesh. But something is still wrong, because applying constraints deforms the mesh slightly out of shape. I don't see a clear way forward here either.
Any suggestions?

After thinking about it some more, I came to the conclusion that there is simply no straightforward way to reverse deformation. Since deformation of a vertex is calculated as a function of its initial location, once that is lost, and as long as we have more than one bone acting on the vertex, the inverse relationship is going to be highly nontrivial.
So, I had to get extra creative. Here's my approach, if anyone ever needs something along these lines:
https://github.com/veryfancypants/hs2_blender_export/blob/ee8e833c1c286b3f105d5f6ae39b5f693ffc3ef4/meshexporter.py#L764


text:
blender model looks different in unity after exporting it
why is the model looking very different in unity?

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

You definitelly need to play with lightning settings in your light source, and in window->rendering->lightning.
Then textures are definitelly not imported well, so i would grab some YT video about exporting to unity, and study that. I would look, if textures are in their correct slots firstly.
Sorry that i did not provide exact information. I have not seen this klinda texture problem before. This is what i know and what i would do.


text:
How do I apply shrinkwrap to my objects and remove it again?
bpy.ops.object.modifier_add(type='SHRINKWRAP')
bpy.data.objects["Icosphere"].modifiers["Shrinkwrap"].target = bpy.data.objects["Specimen"]

I have been using the above code to apply a shrinkwrap modifier to the icosphere in my scene, targeting the Specimen mesh. However, I don't know the code to apply the shrinkwrap, and set it in stone so I can collect data from the icosphere. Furthermore, I would like to remove the shrinkwrapping afterwards, so the Icosphere returns to its original shape.
Any help with either of these problems then please let me know, thank you.

Hello ! You should try to ask only 1 question per post to make sure you get focused answers. But FYI you can't unapply a modifier in the way you're thinking because Blender doesn't keep these operations in memory (apart from using the undo system but I wouldn't rely on that, especially when modifying mesh data)

If you can afford the memory, you could automatically do what many people do manually:  create a copy of the mesh and stash it away in a collection that isn't included in the scene or render.  Then to 'undo' the application of the modifier, you keep a list of what mesh you stashed away and replace the modified mesh with that one.  It's a bit tricky because of things like UV Maps, but it's possible


text:
Geometry nodes instance grid, with material parameters for specific instances
I'm trying to create a grid of objects, where a parameter for their material depends on their location (for example, increase emission strength of objects along the rim of the grid)
What is the best approach to achieve this? I could not find a way to propagate a property from geo nodes to materials, and also did not find a way to easily select specific instances in the grid...
Any help on how to achieve this will be greatly appreciated!
Thanks in advance

Blender 3.0
Using the Scale-to-zero trick by Robin Betts:

Like in Chris'es answer, you need to name the output somehow:

Then use the Attribute node, Fac output:

Keep in mind the attribute is clamped to [0;1] range, hence the Fraction node used. Passing Index and calculating the hue inside the shader wouldn't work in Blender 3.0.
Explanation

Amazingly, the setup works even without applying the rerouting marked red on the first screenshot. This is because vertices of the Mesh Line go vertically up, and the offset doesn't touch Z, so the spawning vertex is the closest to to all vertices of the instance (as long as you don't increase the instance size).
Similarly, the setup works even if you mute the Scale Instances node (as long as you don't increase the instance size).
For the setup to work in more elaborate cases, you need to reroute the connection as corrected on the first screenshot, otherwise look what happens if you e.g. offset them on Z axis as well:

To see why Scaling to 0 is important, increase the Scale in Instance on Points to 1.1, and mute the Scale Instances node, then you will see that some vertices produce wrong colors because they are no longer matched to the vertex that spawned the instance - they are so far from the spawn point, that they are now in the "enemy" territory:

As for the need for two Transfer Attribute nodes... You need to read geometry nodes from the right:

You have the Group Output, receiving some geometry, and an attribute. So it evaluates the geometry, and then the attribute. To evaluate the hue output, it goes left, to the RTA (Right Texture Attribute) node.
Now RTA's 2nd setting tells it to look for a vertex with the same index as the vertex currently evaluated by the Output node. So it evaluates the geometry passed to it, finds the vertex, and then evaluates the attribute, and so the processing goes left again, to the LTA...
...(Left Texture Attribute) node. Again, it evaluates the geometry passed to it, but since it has a different setting, it now doesn't look for a vertex with the same index (which would "work" only for first 42 vertices of the first icosphere, and first 38 vertices for the second icosphere, the 39th vertex would have an index 80, while the Mesh line produced only 80 vertices, indexed 0..79 - of course matching this way wouldn't make sense, you want to match each vertex of an icosphere to a vertex that spawned that icosphere), but instead it looks for the closest vertex. This is why scaling-to-zero works, because it puts all vertices of an instance at the exact same spot as the vertex that spawned that instance, forcing the match.

This actually worked for me! Can you explain why the second attribute transfer node is needed? I understand everything up to that point

@AlbertPerkins see edit.

Thanks for the detailed clarification! I think I get it now!

Blender 3.1
First, you need to convert your instances into real geometry, because you cannot store different data into the same object data (Instances share the same object data). It is not efficient in calculating and memory, so do it only if you need.
To convert data, you have to use Realize Instances node. It can transfer data from instance to realized geometry only in 3.1 (remove old one and add new one in 3.1 this is why). So you have to get this build at https://builder.blender.org
Here is the simple set up:

You can note that I use Capture Attribute with "Instance" setting to pass a value from instance to realized geometry. In my case it's just random color, you may build your own node setup.
When you send the data to output, you need to store it somewhere. In my case, I use vertex color to save the data. This is the output section of geometry nodes modifier is used for:

Then finally you can use this data in shader using the Attribute node:

If you find that UVMap is broken, use also Attribute node to get the UV, this is a known issue.

3.1 crashes when I try to add geometry nodes to a simple plane, so that's not going to cut it for me... Is there a more-stable-ish build that is known to work? I tried the one from yesterday...

I use one from 4 Jan. But yes, builds may be broken, try today's one

Today's build crashes on startup, without a chance to even do something :-(

I managed to get it working on Jan 5th. I ended up accepting the second answer because it actually solved the problem I had at hand, although your answer will definitely age better, given the workaround will no longer be needed in the future... Thanks a lot for your explanation!

you can use e.g. this simple node setup:

I could not reproduce this setup in blender 3.0. Are you using a different build here?

since you didn't tell that your are using 3.0 until now...i couldn't know. I am using 3.1 alpha

what node r u missing? so i can tell you which you could use on 3.0

All nodes in the photo exist, but the data does not transfer to the end result (I read the above answer by Markus which kind of explains why).

In any case I can't find a working build of 3.1, which probably means what I'm trying to do is currently impossible to achieve with available Blender versions

Ok, I managed to get it to work on an older 3.1 build. Thanks a lot for your reply! I accepted the other answer which is relevant to 3.0, which is the problem I have at hand at the moment, but your answer is definitely more future proof. Thanks!