text:
Is It Possible to Create Shape Keys for Objects Created Through Geometry Nodes When the Geometry Has Not Been Realized?
I'm tasked with creating an animation for some expanding foam insulation, and I'm trying to figure out how this might be done with my current approach. At the moment, I have two geometry node setups: one for a ring of fresh, non-expanded foam, and another for a ring of expanded foam (I can share these nodes if and when it becomes necessary, but I think it's unimportant right now). Both are intended to be resizable on-the-fly.
Neither setup has had the modifier applied to turn them into realized objects (i.e. objects with real data for vertices and such; alternatively, in the Spreadsheet window, there is no mesh data), nor have they had the Realize Instance node applied--they currently just exist as instanced geometry--for the reason that the scene in which they're being used already has tens of millions of polys (cannot fix this for now), and so I don't want to take more of a performance hit than necessary when using these--if I can get it to render successfully, it works for my purposes.
That said, what I'm looking to do is blend between the two objects so that I can create an at least somewhat realistic animation of the foam expanding. Having done a bit of reading, it looks like that should be possible using shape keys, but because there are no real objects or vertex groups to reference, I'm not sure how to accomplish this effect. One thread that I've found (link below), if I've read it correctly, suggests that it would be possible to mimic the effect of shape keys through geometry nodes, but I'm unclear as to whether or not there would still need to be realized objects for the effect to work.
Is it possible to use shape keys--or something similar--in this instance? If not, is there currently (v3.4.1) any way of achieving the effect of blending between the two objects?
I'm not confident that my terminology is correct or used to best effect here (please be kind), and I realize that I might be going about this in the "wrong" way, so if there is any confusion or need for clarification, I am more than happy to try to rephrase or provide another explanation. I will also be editing the post to reflect any necessary changes to the language/phrasing as they arise.
EDIT 1: I've attempted to implement one of the solutions as mentioned below, but without much success. Here is the current node setup for the object that I'm attempting to morph:

All it does is this:

To maybe be more clear, is there a way to get the torus on the right to morph into the object on the left?
EDIT 2: After more closely matching the edit in the solution below, the transition is closer, but not quite there yet:

Is there anything that I might be missing? I can think of only a couple of details that might otherwise be affected:

The interior radius of the torus seems to be disappearing in the transition.
The target shape does have additional geometry instanced onto it, like an instance with instances, so maybe that prevents it from morphing correctly. I did try muting the nodes that were responsible for this, though, and it didn't seem to affect much.

EDIT 3: Here is the .blend file in question:

TL;DR: I need to create a realistic animation of some expanding foam. How might I be able to blend between the non-expanded foam and the expanded foam when neither technically has real geometry (add: is there a "best/sufficient/different/only" way to do accomplish this that is not mentioned herein)?
Link(s) Mentioned: How to create Shape Keys in Geometry Nodes, including support for curve handles?

Hello and welcome to Blender.SE! Please be so kind and share your blend file with https://blend-exchange.com/ (follow the instructions there and copy the generated code into your question). Since the answer below didn't help you, there is obviously a quirk with your mesh here.

I'm currently waiting on the file to process. Thank you for your help, and I'm sorry if I've been causing any problems here.

I should also note that I've made a few changes to the file since the start of the post. Both objects have real geometry now, but that hasn't made much of a difference, if any. The thing that I'm trying to accomplish is maybe a little too specific or local only to my current needs, but I'm trying to keep the question as generic as possible so that hopefully it can remain useful for someone else.

The foam has 35000 vertices, the torus has 1024 vertices. Therefore their topology doesn't match. ${35896 - 1024\over35896} = 97% of vertices won't be used in the interpolation, because only indices 0..1023 will be sampled. This could theoretically be intended, but in reality you want the entire geometry to map to the other entire geometry, so you want to have the same number of vertices (and that's just the start, the vertices can't just have random indices, they need to be positioned by the same logic, e.g. relation to polar coordinates).

Shape Keys is a feature to interpolate between two geometries. You can also interpolate in geonodes - simply calculate two positions, and use Mix node to interpolate between them.

To morph between two geometries, just sample the same index of the other geometry:

Does this account for the fact that, in my case, there are two separate objects? If I'm understanding correctly, the example that you included is contained in a single object that alters its own geometry using noise, rather than taking on the existing geometry of another object.

@NickJ_001 just like with shape keys, you need somehow compatible topology (e.g. the same number of vertices). Then you can e.g. sample the position of another geometry by index.

I'm not sure that I understand. The part about the compatible topology makes sense, I think (you can't just blend two shapes with different numbers of vertices, for example, because how would the objects interpolate properly?), but how do you sample external geometry? You're saying it's by index, which I would think means the Index or Sample Index node--does this work by effectively "importing" the geometry of the other mesh?
On a separate note, I'm struggling to tag your username (or it's not visible on my end).

@NickJ_001 it means for any point with index i you can read your own position and the position of the point with same index i in some other mesh. Then you have two positions and can apply the solution from this answer.

Apologies for having to ask, but in place of your Noise Texture node, I'm trying to use an Object Info node to instead get the geometry of my other object, but it doesn't look like the nodes match up. Is there a node that allows for this using your solution?

@NickJ_001 see edit.

Thank you for following up! I've edited my setup to match your last edit more closely, and after playing with some settings, it seems to work best with the Sample Index node set to "Vector" or "Color" as the data type (I'm guessing they're both technically vectors) and "Instance" as the domain. That said, it's closer to the desired transition, but it's still not quite there yet. Is there any other information that I can provide that would help?

@NickJ_001 From what I can guess, the topologies of your objects are not equivalent. It's like copying UV map from Susanne to a sphere, it won't make much sense.

I'm not entirely sure as to what way they'd be nonequivalent, though. They're ostensibly both torus shapes at their base. The only real difference that I'm able to think of is that the target shape has additional instances, but none of the instances on that shape have been converted to real geometry--on that note, trying to convert them to real geometry seems to break things entirely. Would it be helpful if I attached my .blend file?


text:
How do you bake texture maps for a material with mixed shaders?
For example, say that I have some mystery material that has two or more Principled BSDF shaders mixed together with Mix Shader nodes. Would I bake maps for this material by baking sets of maps for each Principled BSDF shader individually (such that there are two or more color maps, two or more roughness maps, etc.), and then use more Mix Shader nodes down the road to blend the eventual Image Texture nodes to make a PBR material? Is it easier than I'm imagining?
EDIT 1: Just to try to make sure that communication is more standard and common, I have this example node set-up that uses more than one Principled BSDF shader. An answer below says that mixing the inputs would solve the issue, but I'm not entirely sure that I know what that means without seeing it.
So in the example image, how would you go about baking the individual maps properly?

If it's 2 Principled BSDF shaders, you can simply mix the inputs instead of the 2 shaders and have only one shader instead of 2.
For example if you have something like this:

Instead of mixing the 2 Principled BSDF shaders, you should mix only the inputs that differ and use one shader. In this case: the Base Color, Metallic, Specular, Roughness and Normal inputs differ. So you can mix the values for these properties with the same masks:

As you can see the result is the same.
So now you can bake those inputs to textures:

As you can see I connected what went into Base Color straight to Material Output and selected Emit pass in the bake settings so it gets saved to the selected new Image Texture node(named after the image's name "Base_Color.exr"). Here is my new Base Color texture after baking:

You could repeat that for other inputs one by one, or use one of many add-ons(like this one for example) to do many textures automatically.
By the way, name the files you make properly. Don't be lazy to type what the texture is, or you might end up making a situation like this where it's confusing for other people if they have to use your assets or even for yourself if you want to re-use stuff after half a year once you already forgot everything.

Right, but then how do you go about baking the maps? Do you just sample from the Mix Shader node? Are there any special steps for making sure that each map bakes properly? I might not entirely understand how the Mix Shader node works when it comes to this application, and I'm certain that I'm going to end up doing it wrong. I'm not finding any tutorials for baking with more than one BSDF online anywhere.

I think you mostly want to have one Principled BSDF before you bake. Usually the whole idea is to have one shader and different properties for it in different parts. You are supposed to mix the textures, not the shaders. All the tutorials about baking one Principled BSF will work for you then.

Would you be able to demonstrate what you mean? I'm not certain that I understand the way that you're explaining it.

I'll try to updaye the answer in a few hours when I get a spare minite.

Much appreciated!

I hope the answer is clear now. Let me know if I didn't manage to communicate something clearly enough.

source: Stack Exchange

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

sort: votes


text:
How can I achieve something similar to this stippled ceiling texture without using image textures?
I'm trying to create various ceiling textures at the moment, and this one in particular is giving me some trouble. For reference, a common stippled ceiling should look like this:

To try to achieve this, I've been using various noise textures, and the following example is about as close as I've been able to get so far:

Here is the current node tree for that result:

Currently, the Voronoi texture has done the best job of getting me a close-to-desirable peak-and-valley effect in conjunction with a ColorRamp and Bump node, and the other textures seem to be possibly refining the effect, but maybe not dramatically enough. Has anyone done something similar to this before, and if so, how might I replicate this effect?
Thanks to the response below, I think that I've been able to achieve something closer to the desired effect:

There are a few things that I feel are missing, namely the random tiny bumps, the brush-y, wiped texture (as opposed to the noise texture, which, while it looks good, doesn't quite match), and the sort of "branching" effect between peaks. I hope that I might receive some additional advice/suggestions for achieving these effects, but for now I'll accept the only current answer because, while not perfect, it has helped tremendously.

Try something like this. The main "wave cell" shape comes from subtracting the Smooth f1 of a Voronoi texture from the "basic f1" of another identical Voronoi texture. To make the cells rough, I warped the input vectors with a Noise texture first. The ColorRamp makes the "bottom" flat, and the "cell wave crests" stick up, while the final mix with a Noise Texture makes the perfectly smooth part (thanks to the colorramp) slightly bumpy again. Ambient occlusion takes care of the colors (note, I set the distance way down in mine):

It's definitely closer. A few questions: 1) For lack of better terminology, is there a way to make the peaks look more "vein-y," or to make them branch more, without altering the size width/length of the peaks (height alterations are fine)?, 2) How might you go about adding some more randomness or variation to the pattern? What I have on my end is great, but some of the littler details are lost (random bumps, varied stroke directions, etc.; I'll post what I have in an edit). 3. Is there a way that you know of to affect the shape of the spaces between peaks?

Play with the scale and detail of the noise texture going into the Vector Math. Also, try lowering the mix with white before the Vector Math (Add) node to increase the distortion amount of the cells. Change the slider positions on the ColorRamp to increase/decrease the height ands complexity of the crests.

I'm sure that I can find out through trial and error, but I thought I'd ask: is there any benefit to placing additional sliders onto the ColorRamp?

I'm not sure adding more steps to the colorramp will help much, but you should always try yourself. If you want more detail/variation in the pattern, consider making a second, smaller version (larger scale on the Voronoi nodes) and mix the 2 patterns together using yet another noise texture (scale<1) as the mix factor.

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


text:
How can I quickly locate and delete object duplicates?
I was handed an older file today to work on, and it features duplicate objects in multiple places which are interfering with the appearance of the renders. I've been able to locate some of those duplicates by manually searching through the 1,000+ objects in the scene, but I'm realizing that this is both slow and inefficient, and so I'm hoping that there's a quicker way to do this. To further complicate the issue that I'm having at this moment, some of the objects with duplicates are set up as reference objects, and so when I think I've found a duplicate, it turns out to be a reference and not the duplicate.
The file is much too large to share, and so if this needs further explanation/clarification, please let me know.
EDIT 1: I'm realizing now that I should mention this: I'm not having success with finding duplicates by just clicking on an object that I think might have duplicates, hiding/deleting them, and so forth until the duplicates are gone. If it were that simple, I would not be asking.
EDIT 2: It occurred to me that seeing the outliner structure might be helpful, so an image is included below now that hopefully does a better job of illustrating at least a part of the issue--basically, if I try to hide or delete one of those copies, it eliminates all of them from the scene.

By referenced object I assume you mean they share the same mesh data? If so use Select - Select Linked - Object Data to find all the objects that share the active objects mesh data

This suggestion appears to be helping with some of the items. For others, though, I might be able to find each copy in the outliner, but when I hide or delete one of the copies, it deletes all of them--how can I hide or delete just one copy at a time without getting rid of all of them?

I'm not sure if this is an instance where I would need to re-link the objects in question or potentially use something like Resync or Resync Enforce. I've also tried ID Data -- Make Single User, but it gives me a warning along the lines of "not yet implemented" (I'm on v 3.4.1, if that matters). I believe that this file was created either in an earlier version of v3 or a later version of v2.

you commented: "but when I hide or delete one of the copies, it deletes all of them".  You are still describing the behavior of an object whose data is linked to several collections.  You need to select each object that you suspect is a copy, and so as @Psyonic suggests.  You could automate this with a python script (for each object, find and remove any links).

All these occurrences are the exact same object, that is linked in a single collection. This collection is linked in both Archipack.011 and Collection 6.006

Here is my scripted solution.  Some important deficiencies

you don't get to choose which Collection the object remains linked
It will remove all multi-collection links for all objects

the script, simplified from @Gorgious comments below:
import bpy

for o in bpy.data.objects:
    # skip non-mesh objects
    if o.type != 'MESH':
        continue
    firstCollectionFound = False
    for c in o.users_collection[:]:
        if firstCollectionFound:
                print( 'unlinking obj', o, 'from collection', c )
                c.objects.unlink(o)
        else:
            print( 'obj', o, 'in collection', c )
            firstCollectionFound = True

You can try it out:
console output:
obj <bpy_struct, Object("Cube") at 0x000001B627058F08> in collection <bpy_struct, Collection("Collection") at 0x000001B616324E88>
unlinking obj <bpy_struct, Object("Cube") at 0x000001B627058F08> from collection <bpy_struct, Collection("Collection 2") at 0x000001B629E03B88>
obj <bpy_struct, Object("Sphere") at 0x000001B629BFF908> in collection <bpy_struct, Collection("Collection") at 0x000001B616324E88>
unlinking obj <bpy_struct, Object("Sphere") at 0x000001B629BFF908> from collection <bpy_struct, Collection("Collection 2") at 0x000001B629E03B88>

Note you can get all collections the object is linked to with obj.users_collection (if that was your intent)

@Gorgious -- excellent! I've simplified the script in my solution based on this.

hehe just be aware it's not a good idea to modify a list while iterating over it. I would use for c in o.users_collection[:]: instead to operate on a copy of the list

@Gorgious - james good with Java.  James ignorant of python and therefore dangerous while learning.  James talks in third person when asking for forgiveness.

haha no problem happy blending and happy scripting ;)


text:
Can't use Shortcut key on linux mint 19 XFCE
I am not able to use the shortcut key in Blender, although in Preferences > Input there is normal.
For example, I can't use key G for move , S for scale, R, X, Y, Z or Shift + D for duplication, but I can use Ctrl + A and various keys preceded by either Ctrl or Alt..
I have tried many times and more than one time I have to re-install Linux.
How do I solve this issue?

I can't use some shortcut keys not how to use a shortcut key

The problem is resolved, even though I don't quite understand it. All I have to do is change the interface of the new language to English. All the shortcut keys will work again. Thank you very much for the advice.


text:
Bendy Bone: Ends of mesh doesn't curve
The bendy bone is connected by automatic weights but the end of the mesh doesn't curve with the rest of the mesh.

By default all bones will deform the mesh.
The simplest way is probably to unparent the mesh, uncheck "deform" in the bone properties for the handle bone and parent it again with automatic weights.
You could also remove the weight for this bone manually with weight-painting.


text:
How to link this node?
I have problem with linking this node to this one via Python script. My script can link "2" to "1" with One "Convert" click button but I can't understand to link this three nodes with one "Convert" button. It just link "2" to "1". What I need to do is:

Click "Convert".
Link 3 to 2, 2 to 1.

Here is the part of code for link 2 to 1:

def convert_mat(material):
    if not material.use_nodes or not material.cshader.use_nodes:
        return
    node_tree = material.node_tree
    nodes = material.node_tree.nodes
    cycles_output = None
    cshader_output = None
    ymin = 100000
    ymax = -100000
    to_convert = []
    for node in nodes.values():
        if node.bl_idname.startswith("cshader"):
            cshader_output = node
            break
        if node.name == "CshaderPreviewNode":
            continue

        ymin = min(node.location[1] - node.dimensions[1], ymin)
        ymax = max(node.location[1], ymax)
        if node.bl_idname == "ShaderNodeOutputMaterial":
            cycles_output = node
            continue

        if node.bl_idname in node_map.keys():
            to_convert.append(node)

    # This node tree has been migrated already
    if cshader_output:
        return

    # We need a cycles output to copy
    if not cycles_output or not cycles_output.inputs[0].is_linked:
        return

    # Some padding
    ymin -= 100
    tex_output = nodes.new("CshaderTexNode")
    cshader_output = nodes.new("CshaderOutputNode")
    cshader_output.select = False
    cshader_output.location = [cycles_output.location[0], ymin - (ymax - cycles_output.location[1])]

    cshader_material = nodes.new("CshaderNode")
    cshader_material.select = False
    cshader_material.location = -162, -720
    cshader_material.width = 200
    cshader_material.bl_width_default = 200
    cshader_material.bl_width_min = 200
    cshader_material.bl_width_max = 200
    node_tree.links.new(cshader_material.outputs[0], cshader_output.inputs[0])

I think this line will create and link 2 to 1. Am I right?

node_tree.links.new(cshader_material.outputs[0], cshader_output.inputs[0])

If so, what am I must to do for solve my problem?
P.S.: Can I also create not with three node but with four nodes and last 4 is link to 3? And how>?


text:
How do I procedurally spread a number of circles across the sides of a bigger one?
For a client project, I need to spread small filled circles across a bigger circle in a procedural way, do you have any idea on how to make this work? I am asking since I don't have any idea of how to get a (vector?) curve into the compositor somehow. If you have any ideas, please let me know.

Can the downvoter give some indication of what the issue is and how to resolve?

Why does this need to be constructed in the compositor? Can you create your mask in geometry, or a shader?

First of all, welcome to BSE, Linus. @AllenSimpson FWIW am an advocate that we own our votes eg who  voted  listed in question activity.    Personally don't find this question worthy of a vote either way. If (and only if) I had to choose one, it would  be a DV (Reason: Mouse over the DV button:  "This question doesn't show any research effort") the often seen python q equivalent is my_great_script_idea = YouWriteItForMe()  The question text could be  "de fluffed" pretty much to title. Who cares? In the end it has joined the HNQ circus and currently  has 5 UVs, and two great answers....

Thanks @batFINGER.  I just had to assume this was in a review queue when I saw it, and it wasn't receiving any feedback.

Yes, this can be done in blender procedurally. You can build a node that can do that. Don't worry. Follow this.
First of all, you need to create a node that can be used to radially spread procedural objects across a circle.
First, add a texture coordinate node. Then add a vector math node, set it to subtract and enter 0.5 for all the values. Then add a gradient texture then set it to radial.
You should see this:

Now, add a multiply node and set it to 6. Then, add a snap node and set it to 1. You should see this:

What we now have are 6 sectors each with their own indices (0,1,2,3,4,5). Indices are those numbers that represent a specific sector, just like a name of someone represents a specific person. Now, we will use trigonometry to calculate the vectors that are in the middle of the sectors. Then, we will add or subtract that from the original generated coordinates of the texture coordinate node to create final coordinates per sector that we can use to instance circles across a circle! Don't worry if this looks complicated. Even  I don't get this 100% clear. But I just memorised the way you can make this. Lol.
Now, we need to find the x and y of these vectors that I have marked in blue:

As you may know, a vector is defined by an x and a y value. So how do we find those values using trigonometry?
We can say that the length / magnitude of our vectors is going to be 1. If I create a triangle like this:

The hypotenuse is 1 (because our vector's length is one).
Now, to find the x and y, we can use trigonometry. But we need to get the theta/angle that is in the middle. So add a math node, set it to divide, set the first value to (pi*2) and the second to 6 (because we have 6 sectors).

Then, add 0.5 to the snap (as we need the middle of the sectors so indices will now be 0.5,1.5,2.5,3.5,4.5 and 6.5) and multiply the divide and this add output like this using a multiply node:

Now we have found the theta.
Now, to get the Y of the vector, we can use "sine" function. Formula will be : sin (theta) = perpendicular/hypotenuse
sine(theta) = y/1
We can omit the "1" because it is the denominator. So sine(theta) will give us our Y.

So add a math node, set it to sine and you should have this:

To get the X, we can use cosine. cos(theta) = Base/hyp
cos(theta) = x/1 (remove the 1):
cos(theta) = x
So add a cosine node and do this:

Now, we have the x and y of our vectors but we need to combine them. So add a combine XYZ node and plug the sine into Y and cos into X like this:

Make sure you plug it in the correct order otherwise it might not work. Now add a vector math node and set it to add and add the original coordinates from the start like this:

Now add a vector math node and set it to scale. Add it here and set it to 5:

Now, you should have this:

Now, after the add node, add a vector math node and set it to length. The length node is used to create a circle:

Add a color ramp for final control:

To control the number of circles change the value of the number of sectors using the value node I added but didnt mention (sorry for that):

When value is at 12, you should get 12 circles:

Tada! Here you have it.

I know this looks very complicated but please don't worry about that. I myself keep most of my focus on the building part rather than the understanding part.

Just for fun...
Thought maybe I can replace dreadful, forever hated trigonometry with a simple vector rotate, but in the end having to multiply the coords by -1 (because radial texture starts on the left), or to offset half of the snap range to not cut the circle in half (or force using two coordinates as the middle of the first snap range isn't aligned with an axis) and things like that end up with node clutter.
The idea is simple, though, after snapping the radial texture, (un-)rotate the coordinate system to be in a triangle going left, and operate on that triangle - basically simulating a local coordinate system of some objects with various rotations.

Since this answer got too many upvotes, here's Variant #2 for trigfans - however, whatever I try, I end up with the same number of nodes...

Wow! This looks amazing!


text:
Blender 2.8 Multiple object follow path animation
Hello i tried to make an animation where a multiple object array with equal spacing offset completing a loop.
Something like this https://www.youtube.com/watch?v=rlzcxUanU3o but in blender 2.8
most tutorial i found were kinda old and didn't help anymore
or is there a any add-on can be used for this kind of animation


text:
in final render it remains visible from the start! The castle isn't supposed to show in the beginning
I keyframed the (eye) on an object at the beginning of a frame but it still shows in the beginning of the frame where it is supposed only show in the middle(it does this when rendering. How to fix this?

is there a way i can animate something disappearing and reappearing?


text:
Blender 2.80 hair dynamics. As soon as I advance a few frames hair goes haywire
When I turn on hair dynamics for my fur particles, they go haywire as soon as I advance a few frames. Sorry if I'm missing something obvious, I'm not very experienced in blender. I wasn't able to find any answers online, so if anyone has any insight it would be much appreciated. I am using cycles if that matters.
Frame 2 of the model

Frame 4 of the model

As an addendum to what JTN said, you also appear to have stiffness set to 10. This could be causing some problems. Try lowering it to something like 2 and see if that helps.

Apply scale and transform
Set origin to geometry
Before tweaking any settings run hair simulation, then go back to frame 1 and assign vertex group and other values according to your character
Also try reducing segments in 'Emission'


text:
Use Animation Nodes with texture to drive rotation
I was wanting to create an array of circles based on the vertices of a subdivide plane that could then have the rotation of say X be driven by a 2d B@W bitmap animation. Is there a way to achieve this if the plane had a uv map with the bitmap animation as a texture.
I did see an example that used weight paint to drive position but that is not quite what I need. I'm very new to AN so apologies and thanks in advance for any help.

Welcome to Stackexchange! The first thing to do is to sample the values of the pixels of the image. This can be done using this small snippet of python code:
bpy.data.images[imageName].pixels[:][0::4]

We are basically making a copy of the pixel values and only getting every fourth pixel, the pixels list include the values of all four channels of the image since your image is BW, we only get one of the values, hence the [0::4].
Next, we get the width and height of the image, we get the width using:
bpy.data.images[imageName].size[0]

And the height using:
bpy.data.images[imageName].size[1]

We then use the Distribute Matrices node to create the grid with the same width and height of the image. We use the Axis Rotation Matrix node to create a rotation matrix from the pixel values and multiply both matrices list. Depending on which version you are using, you will either use the Replicate Mesh node to replicate a unity triangle along the matrices or use the new Transform Mesh node to replicate the unity triangle as I will be using here. We then output that mesh and set the container object as the parent of your circle object and activate Face Duplication for the container object.

The pixels of an image have a grid structure, thus assigning the values of pixels to objects distributed on a grid is easy. If the objects are not distributed on a grid, then one would have to guess what the value of each object is, this is called an Interpolation. There are multiple types of interpolations, the simplest of which is called the Nearest Neighbour Interpolation, and this is what we will be using here. Basically the bounding plane of the structure is aligned with the image, then for each object, we find the closest pixel to it and assign its value to it.
Let the structure be defined by the vertices of a mesh. We imagine the image as a plane whose lower left corner is at $(0,0)$ and upper right corner at $(\text{Image Width},\text{Image Height})$. The first thing to do is normalize the vertices locations, that is, transform the vertices locations into the range $[0,1]$ in both axis:

See the documentation for more info. Then we multiply the x location by the width of the image and the y location by the height of the image, that way, the bounding plane of the structure aligns with the image we imagined. By flooring the x and y locations we get an integer representing the index of the column and row of the closest pixel to each vertex:

Linear Indexing can be used to compute the index of a pixel in a flat list knowing its column and row index, the equation is $\text{index} = iw+j$ where $i$ and $j$ are the indices of the rows and columns respectively and $w$ is the width of the image, by implementing that:

Now, all we have to do is sample the pixel values at those indices as follows:

Finally, compute the matrices and use them just as we did before:

Blend file for study:

Thanks for the fast response! I'm having a little trouble replicating the setup. I can't find a couple of the nodes you have used, these are: Unity Triangle Mesh and the Transform Mesh. Also I have not found Axis Rotation Matrix but instead used a Rotation Matrix. Not sure if that is the same. I'm also getting a "Wrong Output Type" from the expression 'bpy.data.images["Map"].pixels[:][0::4]'

@Bopstar What version are you using? I am guessing it is 2.0. If so, can you download a 2.1 build? For the wrong output type, can you click on the gear button and search for Float List, does that fixe the problem?

Thanks for taking the time to response Omar. Did manage to get 2.1 installed and working. Yes the "Float List" did the trick. But still can't get your setup to work for some reason. I'm getting a "different length" message under the Matrix Math node. Not sure what I have done or have missed. Thanks for your patience Omar.

Ok, all good now not sure what changed. However, not sure how to get the circle to attach as per you example with the monkey.

@Bopstar Can you see the triangles already? Blender can instance an object over the faces of a mesh, in this case, our triangles. Check the documentation here to see how it works. All you have to do is activate it and parent the object to the source object.

Hey Thanks Omar, I'll check that out. Thanks again for your help. Once I get it working I may need to ask a couple more questions but I'll weight to see if I can work them out without bothering you.

thanks for your help here is the result. Link: https://imgur.com/a/7OIuvgQ

is it possible to use an image sequence to drive the animation and would that need to be loaded into the movie clip editor for AN to read it. Thanks again for your help

@Bopstar Blender doesn't allow the direct access of pixels of a certain frame of a video. There are workarounds, but they are very bad for Animation Nodes specifically, see this answer. If you don't mind, give me 15 minutes to research if there is an easy way around this. If not, I will introduce you to the standard way.

@Bopstar It seems that, if you add the video as an image sequence in a UV image editor (Don't close the UV editor) and enabling Auto Refresh in the image setting, and play the animation with Always automatic execution enabled, the node tree will work as you expect it. This is, of course, a non ideal solution, alternatively you can get the data using an external python library, scipy maybe.

thanks for so much for that, I'll give it a whirl and let you know how it goes.

I'm getting errors on the expression you can see in the image. Is there something I need to add or do differently? https://imgur.com/a/gAWqt78

@Bopstar Your image name is Map2_000.png. Your forgot the .png part in the expression.

your awesome! Thanks so very much for all your help.

Here is the result working https://imgur.com/a/d5hOZHa.

is there a way to do this same thing but use vertices of a mesh to define the the layout of the grid. I ask as I would like to create a circle as the base instead of a plane and I realize that images are not round. Is this possible? Thank you.

I have tried to render an animation and it fails to update even though the animation will play in the view port OK and cycle though the image sequence. It seams to only use the first frame when rendering. Is there away to force it to use the other frames in the sequence when rendering?

@Bopstar 1. Yes we can, in which case, an interpolation can be used, will edit my answer to explain this concept. 2. That's why I told you this workaround is bad, because it is context sensitive. It is probable that the rendering occur in the same UV editor we are using to update the image sequence. I see two ways to fix this, either open another UV editor, select the same sequence and enable Auto refresh, so you have two identical UV editors opened or cache the pixels before rendering, I shall explain this in my edit as well.

@Bopstar Edited my answer. I recommend you cache the pixel values before rendering by encapsulating it in a group subprogram and invoking it using the Once Per Input caching mechanism as described in the documentation. Let me know if you have further questions.

thanks so very much for all the information, my head is spinning. I'm having and issue with getting my map to correspond to the mesh, what might I be doing wrong here Omar. I thing it might be to do with "Index" in the "Get List Elements" after the "Object Bounding Box". Also I don't know if this is correct but your node tree showed  for the "index=iw+j" part your taking the data from the expression node for the "image [0]" and not after the Math Floor node. But when I changed it it worked.

thanks for guidance on using caching. I used a group containing just  the expression for the image pixels and Map Range node and Cached that with the Invoke Subprogram on the group https://imgur.com/a/hzoLKED

The size[0] is the width of the image, that is, the $w$ in our equation, that's why we used it. The $i$ and $j$ are the floored floats as you can see in the images. I added the blend file for you to study. Glad to see that caching worked for you, I will recommend that you replace the Value Remapping Node with a simple multiply node. To remap from $[0,1]$ to $[0,180]$ you simply multiply by $180$. Let me know if you have further inquiry.

thanks so very much for the information and Blend file, which I shall study. Already learnt heaps.

Perfect understand what the issue was thanks to your Blend file. Your awesome!

@Bopstar Happy to help. Please accept the answer if it answers your question.


text:
Instance on original points after subdivison
I need to instance on original points after subdivison surface.
Capture points(boolean) before subdivison and using them as "Instance on Points"->"Selection" doesn't seem to work.
How could I do it?

So I need this:

Instead of this:

Thanks!

i think this is quite difficult task because you don't know which were the "old" points and which were the new ones because there is no "connection" between them and they even don't have same positions or indices. So i think...it might be impossible. And the "original" points are NOT (!) on the same positions as after the subdiv node...

Thanks Chris. I think I found a solution, I posted it.

I found a solution using sample Index(boolean) and using them as "Instance on Points"->"Selection"

nice!!!!!!!!!!!!!!


text:
a python script that reads keystroke and mouse movements from a file and repeats them
I was trying to follow and recreate this tutorial / situation :
https://www.youtube.com/watch?v=hZbcN-omvkg
I see that he has using a script written in python that has recorded the keystroke and the mouse movements. Since I want to make the forest as close as possibile as it is originally,I've thought to write on a text file every keystroke and mouse movement that appears on the screen and then with some kind of script I would like that blender read the informations from the file and then it recreates the whole animation. Is this possibile ? Do you know of some script that does it ? Let me know. Thanks.

i think there is macro's addon (record actions then repeats them )

can you provide the link where I can get it ?

see this  and this  ,also in the video he is not using a script to do  that it's just a  normal work in timelapse

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


text:
Random pose generator addon ? How can it be done
Does anyone have an idea how I might be able to generate a lot of random poses of a human armature in blender,such as the head or the finger movements ? I would like to create and save several different head or finger movements on the pose library and with a python script I want to randomize and cyclic them. Do you know if someone wrote an addon like this already ? Or how can it be done ? Anyway you can read the full story here :
https://blenderartists.org/t/generating-random-poses/545285
and here :
https://blenderartists.org/t/im-looking-for-some-new-ideas-to-make-a-full-talking-character/1126012/6

#i can already tell you you won't like the results.

import math
import bpy
import random
def MoveRandBone(LIMIT1,LIMIT2,BONE_NAME):
    ob = bpy.data.objects['metarig']
    bpy.context.scene.objects.active = ob
    bpy.ops.object.mode_set(mode='POSE')
    BONE = ob.pose.bones[BONE_NAME]
    BONE.rotation_mode = 'XYZ'
    tmpcheck = random.randint(1,3)
    if tmpcheck == 1:
        axis = 'X'
    if tmpcheck == 2:
        axis = 'Y'
    if tmpcheck == 3:
        axis = 'Z'
    tmpangle = random.randint(LIMIT1,LIMIT2)
    angle = tmpangle
    BONE.rotation_euler.rotate_axis(axis, math.radians(angle))
    bpy.ops.object.mode_set(mode='OBJECT')
def cripple():#does everthing
    ob = bpy.context.object
    if ob.type == 'ARMATURE':
        armature = ob.data
        for bone in armature.bones:
            print(bone.name)
            MoveRandBone(300,360,str(bone.name))
def listedlimits():#and since you know what every bone is, you can make your own list and generate a random pose.
    MoveRandBone(350,360,'foot.R')
    MoveRandBone(350,360,'foot.L')
    MoveRandBone(350,360,'shin.R')
listedlimits();

#this is just a terrible way to animate, but can be a lot of fun if you just want to see random effects and apply limits to your bones, note that the
#limits here are not the total limit but the limits as to what can be applied. you are far better off going into riggify and creating your own by lining
#an metarig up. Or by using someone elses human rig.


text:
After having converted the grease pencil strokes to a mesh I can't add any texture in texture paint mode
I've watched this tutorial about grease pencil in blender 2.8 by Paul Cageggi and I've got the idea to apply over the car a texture of a real car found on internet using the projection painting tecnique.
In Object mode, with the stroke object selected I hit the W key and then I selected the option "convert to mesh",as suggested in this post.
As soon as I have converted the strokes to a mesh,I have switched from layout to texture paint and then I tried to add a texture,as suggested by this tutorial,but surprise,I can't do that. I have no "texture paint" option and I can't add any texture,as you can see below. Can you explain to me why ?

I can't reproduce the drawing example, but when an object is converted to mesh and needs to be painted, you need to go to edit mode and unwrap the mesh to get UV coordinates to paint with.

man,I don't see the "texture paint" option in the drop down menu. It should be there even if I haven't unwrapped the model,or not ? and anyway,after having converted the strokes to mesh,I can't even unwrap the model,because the u key does not work

I don't think you can directly paint onto the GPencil object that you are converting to mesh. I include a picture here of converting GP to bezier and then to mesh once closed.
Texture paint mode is only available for Mesh objects, so that is why the option doesn't appear.

Hello. thanks. can u explain to me quickly how to close the bezier curves ? I'm in edit mode now and I have selected two points and I'm trying to close them with the F key,but it does not work. As it does not work the extrude function.

select the curve and press alt-C to close

Hello. I tried in a lot of ways,but I'm not able to close the bezier curve. In my situation ALT+C = set 3d cursor (in object mode). Instead in edit mode = toggle cyclic.

Maybe try selecting the curve in edit mode and use the search to find the toggle cyclic, or see if it appears in the curve object menu. I’m away from my computer tonight.


text:
When I copy and paste the shader nodes and objects from a blender session to another one I lose some characteristcs
What I did has been to copy and paste the teeth and the gums from the original blender file to the blender file that I'm using and an odd thing is happened : the yellow color of the teeth and its brillance is lost,as well as the reddish color of the gums. Do you know the reason ? thanks.

No. it can't be because in the destination file I have a different lighting setup. How can I fix that ?

Go to the render context of the properties editor. Set render engine to cycles. Scroll down to Color Management panel and expand it. Were it says view transform change from filmic to RAW. Change look to none. Change exposure to 1. Change gamma to 1.1.


text:
Rigid body - objects randomly snapping together
I've tried playing around with substeps and solver iterations, and the collision shape + margin.
Nothing helped yet.
The size of the objects are 0.08 x 0.01m

have you applied the scales of your objects?

Thanks for the suggestion, yes I have.  My guess is that it might have to do something with the precision, because the items are quite small.

maybe share your file, it will help someone to find? https://pasteall.org/blend/

Thanks for the suggestion, here is the .blend file:
https://pasteall.org/blend/856a4a2ae6de48a38e9e31707a592294

if you switch from Shape > Mesh to Convex Hull it seems to work better, select one, switch it, then select all the other ones, make the changed one the active one, then Object > Rigid Body > Copy From Active

Thanks, you're right but I would swear that I've tried it earlier and it generated weird motions too.  (Maybe I forgot to apply it to all the components... )
-I've tried to add more animated passive objects and the particles started to slide across the floor. :/
Anyway I'm a bit courious why it's not working with mesh.

Technically I couldn't say, maybe it's harder to calculate properly if it is set to Mesh?

oh also maybe try to flip the normals? Well actually Convex Hull seems like the way to fix it...

Select one of your tokens, switch from Shape > Mesh to Convex Hull, then select all the other ones and Object > Rigid Body > Copy From Active. Convex Hull seems to work more correctly.


text:
How can I convert a model's UVs so that they fit within the texture boundaries, but keep the tiling effect that they had?
I have a model that takes advantage of UV repeating i.e. UVs technically go outside image bounds, but it just means that the texture is repeated. The engine I am working with doesn't allow this. How can I convert these UVs so that they fit the image bounds but keep the tiling?
I can't use nodes to solve my problem since it doesn't actually restructure the UV mappings.

You could bake the texture and save a new image.

Or you could tile the texture in Photoshop or another image editing software so it's already tiled within the UV bounds.

Can you share the model and the texture? Upload it to https://blend-exchange.com/ and follow the steps.

This node setup can repeat the texture, but be aware, you have adapt the values for your needs. It depends on the texture size.

Why didn't you use mapping node to repeat the textures? Is there something wrong with using that?

There are always different ways to solve problems. Nope, nothing wrong with that.

I'm afraid I can't use nodes to solve my problem since it doesn't actually restructure the UV mappings. I need to get the actual UVs all within the image bounds because that is what the engine requires.

so you should have written this in your question - this is what a good question is about: it tells what it wants and what it doesn't want...i cannot smell what your engine requires...


text:
Save render for compositing
Is there a way to save render so you can manipulate it in compositor even after turning off and back on the program. Yes I know I can use image node but it doesn't have cryptomattes.

Hello :). The best way is to save all your passes/layers into a 32-bit EXR. That basically backs up your render result so you can get back to it anytime.

Related: Save all render passes to EXR image?

Just to save your render and all your channels like mist, light passes, cryptomattes etc. to OpenEXR which allows to store all the data you need in order to comp your renders in a next stage or at any given time.
From Wikipedia:

OpenEXR is a high-dynamic range, multi-channel raster file format ... It is notable for supporting multiple channels of potentially different pixel sizes, including 32-bit unsigned integer, 32-bit and 16-bit floating point values, as well as various compression techniques which include lossless and lossy compression algorithms. It also has arbitrary channels and encodes multiple points of view such as left- and right-camera images.

Further reading:

OpenEXR in the Blender Manual
Save all render passes to EXR image?
What image format encodes the fastest, or at least faster? PNG is too slow


text:
Why is my collection info geometry node not referencing all of it's objects?
I'm fairly new to blender and am doing blender guru's donut tutorial. I have gotten to the part where you make a collection of sprinkles and reference that instead of a single object. However, even though all of my sprinkle variations are in the same collection, only two of them are being used in the viewport. I have no idea if this is something I did. The picture shows all of the nodes I have placed and the viewport.

Here is the blender file separately if needed.

You setup looks fine at first glance. It might be something like some of your sprinkle objects having their origin points at an offset (https://i.imgur.com/ZS6iN2l.png) so they're inside the donut, for example: https://i.imgur.com/UxyeVtt.png Is that it? If not, maybe share your file with us so we can take a look. You can use blend-exchange.com

I thought about the origin points as well but that doesn't seem to be the issue. I attached the blender file if you want to take a look.

When we assign different colors to your sprinkles we can see that they are being picked as instances. The trouble here is that you probably produced some of them just by scaling another, but haven't applied their scale yet, so Geometry Nodes is presenting them in their real/original dimensions:

You can apply their scales via the Object > Apply menu (Ctrl + A) > Scale:

Interesting. Are you able to apply the scale of multiple objects at once?

@Bobinator Yes, you are.

I see. I believe I accidentally deselected two of them when I was applying the scale. Thank you for your help.


text:
Importing multilayer .exr files to compositor for mist pass
I've rendered an animation using .exr multilayer.(Overnight on batch file, files look  Ok.)
Please correct me if I'm wrong, but should I be able to re-import the files and still use the Mist Pass etc? once rendered and re-imported ?
I'm not sure what I've done / am doing wrong, but when I re-import using ADD-Image sequence or any of the other options, the "Mist Pass" doesn't show up as an available output in the node.
(I Was going to post last night, but thought I'd render some out normally, straight from Blender. I did, with the same result.)
I'm confused. Does anyone have a clue what I'm doing wrong? I'm sure I've done this before with no issue.
Many thanks
EDIT
I've been looking through many sites since, and In earlier versions of Blender you needed to put a "File Output" and then add the
relevant nodes. Mine doesn't seem to have the "Output Node" so maybe I need to re-render with this node set-up properly ?
I'm new to compositing layers Blender, and what I found was from Blender 2.83 or similar is this still the way to go ? Many thanks
Running Blender 3.4 currently.

To make sure this works do the following:

Enable the Mist pass under View Layer Properties > Data > Passes (of course).

In the Compositor, add a File Output node with Shift+A > Add > Output > File Output. Go to the Node properties in the sidepanel (press N to bring it up if it's not there), set it to File Type > OpenEXR Multilayer. Add a second input by clicking the Add Input button.

You can rename the layer to something helpful like "Mist" for example. Plug the Image output of the Render Layers node in the first socket of the File Output node and the Mist output into the second. Now you can press F12 to render. This automatically saves a file "0001.exr" (with "1" being the current frame number, like when rendering animations) in the folder specified under Path.

Now you can simply import the EXR file into the Compositor with Shift+A > Add > Input > Image and open it. The Image node then comes with two outputs, "Mist" and "Image" which were saved earlier. (Honestly, why it shows the "Mist" layer as first although it was saved as second layer I have no idea.) If you plug the "Mist" output into a Viewer Node you see that it contains the Mist pass.

Of course this works with other output passes as well.

Thankyou, I've already wasted 2 nights, (playing with settings, .exr & multilayer .exr etc) but the info you gave me, made it worth it in the end, glad I joined the Forum, many thanks for your time and effort on this to make it so clear for me and any others.

@JohnFearn You're welcome. If this answer helped you, you might consider accepting it.


text:
Getting references of frames as a png
I am currently following the tutorial of Peter France on YouTube for a head explosion. In his video he has all the frames saved in a folder as a png. I wonder how he did that. Can somebody help me?
In the picture below you can see his references

In shotcut, for example, you can load the clip into the timeline and export, not as an mp4 but as a png series.  You just designate a folder.

I think you could do the same in Blender, just open in the video editing preset, load the clip and export to a folder as png

Speaking to the close vote: i think the linked question is slightly different, this user wants to take reference footage, not the blender render, and export as a png sequence

@AllenSimpson correct

@AllenSimpson i will try the shotcut thing


text:
How to select highest point in grid? (geometry node)
so I have a system that instances blocks in a grid pattern based on a mesh

and this without the geo node being on
What im trying to achieve is to make the highest block in an x y coordinate a red block. so for each xy coordinate I want to select the box that is on top of all the other boxes.

here's another example

could you please add a sketch or image of the result you wanna achieve? Because if you make the highest block for each row and column red, you would have e.g. on a "typical" v roof of a house everything red, because all x height values are equal -> so all are "highest" -> red.

ive edited the post but basically im trying to get the cubes that are on top of the other cubes to change the material. well a better example would be like how in minecraft the dirt block that is the highest becomes a grass block.

To do it, I propose to generate the grid a bit differently, using the bounding box of the shape.
From that,

ray cast the grid points along Z with the original shape as target
if the ray is inside the target (the dot product of the ray with the hit normal is positive)
then if the distance to the hit point is less than the grid space, the point is on top
if this distance is greater than that, the point is not on top

wow thanks, ive been tinkering around with raycast node aswell but never got it to work like that.

After playing around with this, I found that you actually dont need a bounding box and removing the bounding box gives massive performance boost since you dont need too calculate all of the points in the bounding box.

ok Aqil, I was not able to obtain a good result starting with the initial volume. How did you did it?

you can replace the bounding box node with an extra extrude node (if the spacing in the distribute points on volume nodes are smaller tho, like 1.000 x 1.000 x 1.000  you dont even need to add an extra extrude node) and play around with the value in the "less than" compare node that is connected to the hit distance value from the raycast node.

basically you just play around with the values manually until it looks right

ok, but if I understand well, this is to adjust manually for each mesh? why not, so.

I mean once you adjust the values that looks right, you can make a  system where it will extrude more in the faces that is slanted by using the normals  (since those parts needs to be extruded more so there wont be missing cubes). That way there will be no holes or missing cubes no matter how you shape the mesh.


text:
Rotating a bone with Gizmo change all 3 Euler rotation angles
I have a bone like this:

I want to change its Y rotation only. If I simply input the value I want in the property panel, it works as expected. However, if I drag-n-drop the green circle of Gizmo, all X, Y and Z values change. Why does Gizmo work like this? And how can I change only one Euler rotation value with it?

Set the gizmo orientation to "Gimbal"

All 3 rotation values still change together.

It works for me. Maybe you're rotating it past your bone constraint?

Even when it's within my bone constraint, all 3 values still change together. However, it works as expected when I set the bone's rotation mode to XYZ instead of ZXY. I don't know why.

I found the answer in another question. See: https://blender.stackexchange.com/questions/228264/object-gizmo-setting-doesnt-take-effect-for-bones


text:
Physics of Balls in Sphere, with rotating arms
I have some sort of Bingo Wheel and want to make animation of Balls rotating in it. Balls are supposed to bounce in wheel, and those, I will call them "Arms" are constantly rotating so I want balls to interact with them, and with edges of spheres.
I added rigid body > passive > collision (mesh) to sphere, and duplicated it and did same to that new sphere because balls were going outside of sphere if there is only one. Also, added rigid body > passive > collision to those hands, to make them interact with balls.
But somehow I feel something is missing since they are always moving in same direction.

Hopefully you meant your arms. You rotated them only on one axis.
Just rotate them both on all axis with different values.
e.g. frame 0:

frame 25:

keyframe that values, press Shift-E and choose linear extrapolation.
result: (sorry, that i was lazy, i just rotated one arm on all axis)


text:
Is there a faster way to fill in a set of missing faces?
Is there a faster way to create faces to fill the row than I have to do it one by one?
Example of selecting 4 vertices and create a face with Vertex > New Edge/Face from Vertices (F) in Edit mode:

You mean you want to fill in each of the faces? Select the whole (set of) edges on either side, right click and select "bridge edge loops", or select the whole (open) loop and select face > grid fill

If you select just the far edge and hold your mouse in the direction you want to create a face, you can repeatedly press (or even just hold down) F:


text:
How to transfer weight paint from bone to symetrical bone
I have my dog rig generated by rigify. Did the additional weight painting and forgot to turn on symmetry. Now I have left side properly weight painted, and right one isn't. Tried to symmetrize painting by removing one side and then symmetry in edit mode, didn't work. Tried with vertex groups by copying proper one, then Mirror Vertex Group, but it always shows some vertices are mirrored, other failed. Topology is symmetrical and bones are symmetrical too. What is best solution? On first two pictures you see left side which is properly painted, and right one which is not. Also, on third there are middle bones (spine) however, it isn't symmetrical to sides.

You could duplicate the vertex group, mirror it, change its name?

Take the left one bone, in the Object Data properties click that small arrow right of "Vertex Groups" then copy Vertex Group, then you have _copy of that bone. Then, again click on arrow and press mirror vertex group and that is it. However, for me it doesnt mirror them exactly as I would want it.

Best way I found is that you just remove half of the mesh which is not painted. And then use Mirror modifier and apply it. You have same mesh and weights are mirrored.


text:
How to animate a spinning Coil Spring (mechanic watch)
In a mechanic watch you will find such a coil spring.
The spring is fixed in two points (green crosses) and has a spinning attractor at the inside of the spiral which is moving first clockwise and then after clockwise.
The effect is a "breathing" coilspring. Its compressing and decrompressing from insideout.
I already tried to solve the issue with the "AnimAll" plugin to animate the edit points, but I'm not able to handle the move...
If someone want to try, I can send the hairspring
Balance Wheel Hairspring Video

Should be doable with an armature and converting the spring to a mesh.

This might assist - I just did a Blender search for "Watch". -
https://blender.stackexchange.com/questions/148794/can-anyone-help-me-rig-a-watch-escapement

Here's another resource that might help - https://youtu.be/HasNkycRZ4c?&t=768


text:
Selecting Negative frames in timeline
I am having a weird issue. I can select every frame 0-4 except the negative frame (-1). I am not sure why I can't select it, anyone know why? The red arrow points to the keyframe I can't select? These are keyframed eyelid positions from BlenRig

Probably all the keyframes were selected and moved to the left, so some of them became located past 0 frame. You can't select anything before frame 0 if not changing setting for that (iirc in user prefs)

Go to File -> User Preferences... -> Editing
and check "Allow Negative Frames"

In Blender 2.92 go to Edit -> Preferences... -> Animation and check "Allow Negative Frames"

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


text:
Which armature with face bones and/or which addon can I use to make the mocap?
I tried to use the makewalk and the Motion Capture Addon by Benjy Cook with different armatures : mine armature,with remapped bones and without ; with the rigify + pitchipoi addon,before to get the final rig and after. It did never work. The Benjy Cook addon does not include the option for the remapping of the face bones,the makewalk addon used in combination with the rigify + pitchipoi gives always the same error :

Found no candidate hip bone / hip bone must have children hips.

So,I haven't found a good way to make the mocap if I want to retarget also the face bones. Also,the makehuman pre made armature with the mocap / Cmu mb version has no face bones,so it's not useful at all for me. I tried to remap the bones using my armature,but it didn't work at the same way. I need to find another addon. Do you know another one ? I don't want to use the markers approach and/or the shapekeys,but I want to use the bones and a pre made armature that includes the face bones. Thanks.


text:
Which bone influence should I modify to make the shirt sleeve bigger than the forearm
I'm trying to increase the size of the shirt sleeve because the forearm is bigger than it and it's not natural. Look at this example,looks like there is a bone on the forearm that has too little influence on the sleeve,but I don't know what's this. I'm using the standard rigify armature...can someone give me a suggestion ? thanks.

Hard to say, just with an image. If the mesh does not follow the bone, that's probably because another bone as some influence on it. Some indication to find it here: http://blender.stackexchange.com/questions/74582/blender-finger-mesh-doesnt-follow-bone/74585#74585

Could you provide your .blend file to be able to help you?

https://uploadfiles.io/67f47

https://developer.blender.org/T51073


text:
Lip sync animation with rigify+pitchipoy armature and papagayo
I would like to configure the lip sync and the eyes movements on my character rigged with the rigify/pitchipoy armature and papagayo. I don't like the shape keys. I prefer to use bones and pose library. So,I found this script :
lip sync script
and I tried to follow this short tutorial :
short tutorial
Now,the problem is that it is too short and some important parts are missing ? Infact it starts with the pose library full of phoenemes,but I don't know how to add them into the library. Or better,generally I know how to add a pose,but in this specific case,I don't know which kind of phoenemes are those and how to create them. I have exported the dat file from my audio file and this is the content :

but now,starting from these phoenemes,what should I do ? Should I create a pose for each phoenemes moving the mouth bones ? But in which ways ? Does the script make the pose automatically based on the phonemes that it finds in the dat file ?

Please take a look at post of lipsync script that you referenced - https://morevnaproject.org/2015/11/11/automatic-lipsync-animation-in-blender/. It says:

use a Pose Library to define a mouth poses for the face rig of your
  model. Each pose should be named as corresponding phoneme in your
  lipsync breakdown – “MBP”, “AA”, “O”, “EHSZ”, “etc”… (just inspect the
  .dat file produced by Papagayo to figure out which phonemes you need).

So, just open your .dat file and see which phonemes it uses. Then open your model file and create Poses for your Pose library. Each pose should be named in the same way as phoneme. I.e. for “O” phoneme you need to set bones of your character’s lips in the same way as he says “o”. Then save this pose into the Pose Library under the name “O”. I hope that helps.
P.S. The lipsync script works with any armature. The link referenced in your other answer points to different script.

If I use the MHX2 framework I don't need shape-keys and/or the pose library. Instead,If I use the rigify script I need to create one pose for each phoneme defined into the dat file. I did it and it worked. My doubt was that in the short video of Terry Hancock I don't understand which kind of armature he used. The video is too short. It starts with the poses already created. Instead,for a better understanding,it was better to explain that with rigify it needs to create the mouth poses,but it is not necessary if you use the makehuman armature...

I found the solution by myself. Read here :
https://tentacles.org.uk/quicktalk
where he says :
The script has now been update to allow using MHX2 imported models created by Makehuman. If the Makehuman characters have been exported from Makehuman and imported into Blender with Thomas MakeHuman’s Script and you pick “MHX2” as the format (rather than X-Rotation or X-Translation) then there’s no need to even make shape-keys or build bone-panels.
This is what I needed to know,because since I'm using rigify+pitchipoi armature,that from some point of view it's better than the makehuman armature,from the point of view of a correct configuration of the lip synching is less powerful than it,infact if I use it,I need to make shape keys and/or bone-panels. And Terry Hancock on this tutorial :
https://vimeo.com/144069038
forgot to say that he using a character made with makehuman and that he has installed the MHX2 framework and that have the advantages over the rigify armature as I have explained before. And most important,that making so short tutorials is not good nor for beginners because they confuses them, nor for the blender gurus, because they don't need them.


text:
Some part of my character is not very well lighted
I have a problem with the lights,because this is a topic that I have never studied well. I don't understand because the scene that I created is not lighted very well. I'm using the sky texture as background in cycles render. I have also placed a sun light on the scene and I have increased its strenght,but it seems that it is not working. Problem is that the facial features,the shoes and the hands of the boy are too dark. Instead,the girl is better lighted...can you give me some suggestion ? thanks.

You can find the blender file here :
blender file
NB : The character models come from blendswap. I have only modified them a little. Credits goes to the original authors.

Even though this is quite a simple mistake beginners only make, we are here to help you and you are here to learn!
As I have seen from your file, you have used a point light as your only light source. If you make this a sun lamp you will have directional light that will emit the whole scene from the same perspective. The point light emits light in all directions from one point. Your characters' faces are casting a shadow onto other parts of the face because the lamp is not shining from the front of the characters. Here's what you can do:
Rotate the lamp on the X-axis towards the characters. Not literally on a 90-degree angle, but on a slight angle. Maybe rotate it like 35 degrees. The light now hits the front of the characters.
You can also add a plane with the surface facing towards the characters from behind the camera. Get it about as long as the space between the characters. Also make it as high as them. You should add a new material using the emission shader. Play around with the strength values until you like it. You can also play with the position of the plane. You can also get it up a little higher than the characters and make it face it their way too to get a little more contrast of the curves of their shape.
I hope this is working out for you. Good luck!

If he's going to use a sky texture shouldn't he just increase the strength?

I'm trying different kind of combinations,but I'm not satisfied. can someone modify in some way the blender file that I've attached and send it to me ? So I can explore inside it and I can learn faster ? thanks.

I tried to apply what you have suggested,but the face,arms and hands of the boy are still very dark,check here : http://imgur.com/a/pXd2Q

I fixed the problem,but not in the way that you have suggested. The problem was not related to the way which I'd configured the lights,but to the kind of texture that I used. I don't know why,but I used a texture that wasn't lighted by any kind of lamp. I changed them and voila'. it worked. Do you know the reason ?


text:
Adjust last operarion menu does not work with newly made mesh and mesh is placed twice
I made a little script that makes a plane with thickness
when i add the mesh to my model it places 2 meshes instead of 1
For 1 of the 2 meshes the ALO menu works but for the second one not
Can someone help me and tell me what i did wrong?
This is the code i use
    bl_info = {
    "name": "Test object",
    "author": "DGRL",
    "version": (1, 0),
    "blender": (2, 80, 1),
    "location": "View3D > Add > Mesh > DGRL",
    "description": "Adds a new Mesh Object",
    "warning": "",
    "wiki_url": "",
    "category": "Add Mesh",
}

import bpy
import bmesh
import mathutils
from mathutils import Vector
from bpy.types import Operator
from bpy_extras.object_utils import AddObjectHelper, object_data_add

def add_object(self, context):

    verts = [(1, 1, 0), (-1, 1, 0), (-1, 0.9, 0), (-0.25, 0.9, 0),]

    mesh = bpy.data.meshes.new("mesh")
    obj = bpy.data.objects.new("MyObject", mesh)

    scene = bpy.context.scene
    bpy.context.collection.objects.link(obj)
    bpy.context.view_layer.objects.active = obj
    bpy.context.active_object.select_set(state=True)

    mesh = bpy.context.object.data
    bm = bmesh.new()

    for v in verts:
        bm.verts.new(v)

    bm.faces.new(bm.verts)
    bm.to_mesh(mesh)
    bm.free()

    **object_data_add(context, mesh, operator=self)**  *<-- THIS LINE MAKES A SECOND BMESH BUT WITHOUT THERE IS NO ADJUST LAST OPERATION MENU!*

class OBJECT_OT_add_object(Operator, AddObjectHelper):
    """Create a new Mesh Object"""
    bl_idname = "mesh.add_object"
    bl_label = "Add Mesh Object"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):

        add_object(self, context)

        return {'FINISHED'}

def add_object_button(self, context):
    self.layout.operator(
        OBJECT_OT_add_object.bl_idname,
        text="Add Object",
        icon='PLUGIN')

def add_object_manual_map():
    url_manual_prefix = "https://docs.blender.org/manual/en/latest/"
    url_manual_mapping = (
        ("bpy.ops.mesh.add_object", "scene_layout/object/types.html"),
    )
    return url_manual_prefix, url_manual_mapping

def register():
    bpy.utils.register_class(OBJECT_OT_add_object)
    bpy.utils.register_manual_map(add_object_manual_map)
    bpy.types.VIEW3D_MT_mesh_add.append(add_object_button)

def unregister():
    bpy.utils.unregister_class(OBJECT_OT_add_object)
    bpy.utils.unregister_manual_map(add_object_manual_map)
    bpy.types.VIEW3D_MT_mesh_add.remove(add_object_button)

if __name__ == "__main__":
    register()

The Adjust Last Operation panel will only be for the last operation. If you're adding multiple objects it will only be for the most recent one.

Yes i know
the issue here is that i dont want to add 2 meshes but only 1

Please test the script and see what happens

@DRGL with the approach you're using, there's no need for the object_data_add since you've already created and linked the object with its mesh data.

How can i get the ALO menu in my script to work with the mesh i created?
The ALO menu pops up but does not work at all

You need an operator that has properties which can be adjusted. Currently you're adding the object at a fixed location with fixed vertex positions.

I dont get it tbh
When i use object_data_add the location and rotation and align is just working fine on the second mesh that is placed ( let me be clear i want only 1 mesh to be placed)
Why is it not working on the mesh i created? Im not talking about scaling but the 3 basic properties (location , rotation and align)

Didn't we already solve that 2 weeks ago: https://blender.stackexchange.com/a/160952/31447 ?

Does this answer your question? How to link the adjust last operation menu to object? Blender 2.80 - 2.81

@brockmann
No that was something different
In that question the script was made using bpy.ops
Ive been told to use bmesh instead of bpy.ops and create new meshes
seems to be fun learning bmesh bit its a whole different thing
Thanks for you help back then. learned a lot from it

I recommended creating and manipulating meshes using  bmesh over the use of  bpy.ops.mesh... operators in edit mode in particular.  Unfortunately since I only created the meshes, it gave the impression nothing was happening. Made edit  Please take some time to digest the changes made in answer below and question above, eg mesh = bpy.context.object.data  vs mesh = bpy.data.meshes.new("mesh")

Question COde:

Makes a new mesh.
Makes a new object that links to new empty mesh
Links object to collection makes it active and selected
Links the empty mesh to object again (new object is now context)
Makes the bmesh and loads into mesh

Makes the mesh ok and adds a new object linked to that mesh to scene collections Ok... but it is not being transformed / aligned at all.

I dont get it tbh When i use object_data_add the location and rotation
  and align is just working fine on the second mesh that is placed ( let
  me be clear i want only 1 mesh to be placed) Why is it not working on
  the mesh i created? Im not talking about scaling but the 3 basic
  properties (location , rotation and align)

Because that is being done for you by the imported
AddObjectHelper and object_data_add
The function object_data_add is designed for use in conjunction with the AddObjectHelper class.   It creates a new object, linked to the context collection objects,  linked to our new  mesh, transformed via location, rotation and align properties of the operator.
That is why it is passed (context, mesh, operator=self) , eg if the new object is  ob  the code of object_data_add(...) could include
ob.data = mesh
ob.location = operator.location

to position the object.  The code is available to peruse 2.8x/scripts/modules/bpy_extras/object_utils.py
Changes

Conformed to operator naming standard
Removed un-needed imports
Removed un-needed documentation links
Changed around the methodology somewhat. The function
add_plane_mesh() takes no argument and returns a mesh, regardless
of operator or context.  This makes it very re-usable, for example if
addon is in a folder named "test_addon" could
   from test_addon import add_plane_object

to use elsewhere.  Moved object_data_add(...) into the operator's execute method conveniently with self and context as arguments.

Amended question code.
bl_info = {
    "name": "Test object",
    "author": "DGRL",
    "version": (1, 0),
    "blender": (2, 80, 1),
    "location": "View3D > Add > Mesh > DGRL",
    "description": "Adds a new Mesh Object",
    "warning": "",
    "wiki_url": "",
    "category": "Add Mesh",
}

import bpy
import bmesh
from bpy.types import Operator
from bpy_extras.object_utils import AddObjectHelper, object_data_add

def add_plane_mesh():

    verts = [(1, 1, 0), (-1, 1, 0), (-1, 0.9, 0), (-0.25, 0.9, 0),]

    mesh = bpy.data.meshes.new("mesh")
    bm = bmesh.new()

    bm.faces.new(bm.verts.new(v) for v in verts)
    bm.to_mesh(mesh)
    bm.free()
    return mesh

class MESH_OT_add_object(Operator, AddObjectHelper):
    """Create a new Mesh Object"""
    bl_idname = "mesh.add_object"
    bl_label = "Add Mesh Object"
    bl_options = {'REGISTER', 'UNDO'}

    def execute(self, context):
        object_data_add(
                context,
                add_plane_mesh(),
                operator=self)

        return {'FINISHED'}

def add_object_button(self, context):
    self.layout.operator(
        MESH_OT_add_object.bl_idname,
        text="Add Object",
        icon='PLUGIN')

def register():
    bpy.utils.register_class(MESH_OT_add_object)
    bpy.types.VIEW3D_MT_mesh_add.append(add_object_button)

def unregister():
    bpy.utils.unregister_class(MESH_OT_add_object)
    bpy.types.VIEW3D_MT_mesh_add.remove(add_object_button)

if __name__ == "__main__":
    register()

This was a quick answer to the user's question, however batFINGER's answer provides more details on how to improve the add-on. It also addresses other issues such as the architecture/structure, imports and the naming convention.

If you want to use object_data_add() from bpy_extras.object_utils then remove the object creation and linking to the scene from add_object.
def add_object(self, context):

    verts = [(1, 1, 0), (-1, 1, 0), (-1, 0.9, 0), (-0.25, 0.9, 0),]

    mesh = bpy.data.meshes.new("mesh")

    bm = bmesh.new()

    for v in verts:
        bm.verts.new(v)

    bm.faces.new(bm.verts)
    bm.to_mesh(mesh)
    bm.free()

    object_data_add(context, mesh, operator=self)

This is what i meant @Robert
Thanks again for your lessons and help
Appriciate it guys


text:
Sort Elements behavior
As I am still working on how to make faces from curves, adding more faces and more curves, I encountered some strange behavior of the Sort Elements nodes, I don't see what I did wrong. Is this a bug or, as usual, a misunderstanding of how it works? In this .blend, I rotate a plane, I use a Mesh to Points on the faces, I cancel the rotation with a Set Position then I Sort the elements on X and on Y, but the indexes always behave as if I rotated them... Could you help me solve this problem?

Thank you for your help.
The blend:

These are rounding errors. If you rotate the grid back and forth in this way, the positions are slightly changed and not (as you would expect) in exactly the same position. However, the Node Sort Elements is very precise here.

@quellenform Thank you, I will try to see if there is a walk around...

I suppose you could broaden the definition of equality for the final X and Y positions, in one way or another:   https://imgur.com/a/3zn1fq9.. but no, that's still fraught, it  presumably falls back on index order, or something not guaranteed.

@RobinBetts Thank you, this is certainly the simplest solution. Thanks again.

@RobinBetts You stepped the value at 0.006 does it mean that the Weight socket of the Sort Element is rounded at 0.005?

Just a stupid question: Why don't you capture the positions before you change them (and reset them again) with Capture Attribute and sort these values? Presumably the example shown is a simplified version of what you actually want to do, but if you tell us a little more about it, there may be other solutions....

@quellenform You are right this is stupid, you already answer this question. I am still working on that blender.stackexchange.com/questions/317094/planes-on-curves adding more plan and more curves. The  Sort Element is a powerful nodes in order to simplify a node tree. I will edit my post, and try to find other solutions...

Uh, no! ...I meant that my question is stupid, not yours! ;-)

Actually, I meant this: https://i.sstatic.net/bZLAi78U.png ...Since the position in your example should not actually change (but does in reality due to rounding errors), I simply use the original position as the sorting criterion here. However, since I don't know the real use case, my suggestion could also be complete nonsense.

Thanks to quellenform and Robin Betts for your solutions, another one is to add a Map Range on Stepped linear before each Sort Elements:

And the .blend:

Edit:
As said qellenform I should have post my original .blend, that is a version with a solution by Robin Betts:

.. to be treated with caution. Mine was  not a general solution, but one tuned to your file (hence the .006). As @quellenform suggests, IMO, it would be better to avoid fine floating point assessments of equality altogether. If you have an available ground truth (here, P before rotations, but could be something else in general) stash it and stick with it if you can.

@RobinBetts You are right to remind it, but in this case I can't use the quellenform solution...


text:
Flickering problem on a curve
Hello everyone,my project is to animate a growth of branches on a trunk, and other branches on the firsts, and so on...
To do so, in order to offset branches with the seem radius that the trunk have at the point where the branch is getting out I have made this blend:

It seems to working fine but it flicker because of the Resample Curve node at the end in the group ‘Branches’.

In order to correct it the idea was to use a non-transformed branches group then with a Compare node on Not Equal to eliminate the points of the spline according to a transformed branches group.
But I just can reduce the number of points according the first transformed branch, and of course I can’t understand why…

This is the second blend:
Thanks for your help...

Hello robin, you are perfectly right, I edit my post immediately...

Fred I R .. Thanks! :)

Hello everyone, of course asking a question make the answer come, so I resolve my little flickering problem by using  tow Trim Curve, so simple…

Sorry for the time you spent on this problem, thanks a lot.


text:
filtering (moire / banding(?)) problem when downsizing video
During video editing, I noticed this issue when downsampling 4K video to HD.
I tried different filtering methods, but the problem remains.
Is there any setting or workaround to get rid of it? thx

I think we should see the setup in the video editor. So the blend file would be helpful, even without the clips itself. Use https://blend-exchange.com/

sure, here it is with a single frame. you might need to unpack the files first and relink them, since blender does not support packing VSE strips. thank you for your time


text:
Transparent stripe blocking the view of edit mode selection
You can see it on the screenshot. It's always stays in the middle of viewport. Is it a visual bug?

can you share the blend? https://blend-exchange.giantcowfilms.com/

Yep, edited the post.

I have looked at your file and it seems as if everything is fine with the texture. In Cycle and Eevee. Try the texture on a new cube and use "Smart UV Project".

Added another screenshot. The strip is there even without any textures. Probably a glitch, should i try reinstalling blender?

It looks like clipped render view, but ussually you can see a red border of it and the rest of scene is in solid view ... hm ... I dont see the line on my PC. What display mode you use?

The strip is even over the grid, not only on the cube. Try to open a new blender file and see if you have the same issue.

Yeah, i didnt even notice... The issue is still there when i open new blender files.

In this case I would recommend a clean removal of Blender, download the latest version from Blender.org and update your graphic driver.

ok, thanks for answers.

However, first try to open a new Blender file and see if the issue is still present.

Before that try Ctrl+Alt+B in 3Dview Editor (in case it is saved in StartUp file setup). Or File > Defaults > Load Factory Settings

I was also thinking that it might be a render selection, however, it would have had a red outline.

The stripe actually disappeared when i loaded factory settings. Thanks


text:
Default color for objects is blue. How do i change that?
I installed config for blender and now my default color for objects is blue. How do i change that to standart blender color?

What is "config for Blender"? Command Config? Or something else? Do you have a reference?

(This is assuming that the blue is not from an assigned  Material Base Color).
If your image is showing your model in edit mode then you can change the default face color in Preferences:
Edit > Preferences > Themes > 3D View > Face > play with color and Alpha values.

Edited to add:
Ok if its not modified in Preferences .........  in the 3D Viewport open the Viewport Shading panel  > Color and if its set to Random change to Material

I checked, face color is dark gray and no materials assigned. Still blue. Added screenshot to the post.

Have a look in the Viewport Shading panel > Color. If it is set to Random change to Material (see my image above.)

Thanks you! Changing from random to material color indeed fixed it!


text:
Selecting object show nothing in info pane
I am using blender 2.81.
If I change into "Default" view and then manipulate objects then the Info pane shows the Python commands associated with those manipulations.  This is very helpful.
But when I select objects it does not show the equivalent operations.  Specifically I am trying to associate the bones with the mesh and parent them with automatic weights.
It is quite frustrating as I am trying to write a script to automate the export of a rig.

Please rephrase this as a question.  It is not clear what you're asking here.

Hi! Do you look for mouse select log output? It seems this is missing in blender.

@RUben yes this is what i am looking for.  normally my procedure is to select bones in pose mode, then switch to object mode and multiselect mesh and bones at same time.  there is no output to show what has happened so i have no idea how to write script

To set active object as parent armature deform with Automatic Weights for selected objects, you need to:

select objects include active:
object.select_set(True)

set active object:
view_layer.objects.active = object

call operator:
bpy.ops.object.parent_set(type='ARMATURE_AUTO')

Code example from scene:
import bpy

objects = [
    'Armature',
    'Cylinder',
    'Cylinder.001',
    'Cylinder.002'
    ]

context = bpy.context
view_layer = context.view_layer
scene = context.scene

# select objects include active
for ob in objects:
    scene.objects[ob].select_set(True)

# set active object
view_layer.objects.active = scene.objects[objects[0]]

# call operator
bpy.ops.object.parent_set(type='ARMATURE_AUTO')


text:
How can I make my particles emit from the emitter object moving by key animation, instead of the emitter's default position?
I'm on Blender 2.8, and am trying to make an animation of a ghost knight, with flames flowing from behind the visor and under the mail hem. To make it look nice, I used particles to animate the visor and hem flames, and using the flame physics kit for the arms wreathed in flame. Problem is, now that I've got the model animated, I noticed that the particles' emission spot doesn't move from the emitter's default location, even if the emitter itself does.
I know this question has been asked before, but of the two I found on the site, one had an answer which doesn't work in my instance, and the other wasn't answered. And before you ask, using hair particles isn't an option to my knowledge, as I can't animate that in a satisfactory manner.

Here's the character in it's default position, with emitters highlighted.

And here's the same character, with emitters still highlighted, mid animation. Note how the particle stream remains in the default position despite the emitters moving with the character's animation.
I've tried baking and re-baking the particles, to no avail.

Please show your work or some simplified version of you work as  a Blender screen capture.  Simple version which fails to meet your expectation is even better. I may or may not understand 50% of what you wrote.  I might understand more if you show your work as a Blender screen capture.  I wonder if that is true or other readers as well.

Nevermind, I worked it out. The easiest solution is to( remove any existing bakes,) slap a ChildOf constraint on the emitter linking it to your armature on the relevant bone, and then bake your particles.

Particle System has a bake option you wil see in the Panel.  You will probably need it.
If you have a previous bake.  Delete the bake.  Then bake again.
If you never baked.  Try baking for the first time.
Remember to bake after every significant change.  The particle system will not let you change parameters when a bake is active.  Yet you can change other objects such as physics obstacles. I have not checked every version of Blender 2.8X yet at one point there were obvious defects in the Particle System.


text:
Without using nodes, how can random materials be assigned to a set of objects?
I was intrigued by this photo from Wikimedia commons

and inspired to create this similar structure

in  Blender. Each brick in my model is a separate mesh, and in many cases, they are separate objects as well. I'm working on a means of using a model such as this one to create masonry textures like this one

that are not found in the usual texture repositories. To make the texture more realistic, I'd like to create a set of materials, in this case, brick hues, and have an automated method to randomly assign a different one of the elements in the set of materials to each successive mesh. Is there such a tool available, or do I have to do this manually for each of the 1000 or so meshes?

The random output of the object info node will give you a random value per-object. If you plug it into a colorramp you can easily customize it to a set of picked colors

Except that I specifically asked "without using nodes....", although I understand that in the absence of other factors, I may have to deal with nodes....

Ah, my bad. May I ask why you want to avoid using nodes? (you can set this up in the properties editor if it makes any difference)

No particularly good reason. My use of Blender is primarily in support of a game which employs user created content, but has it's own game and rendering engine, so I've not yet taken the time to build a skillset using nodes. So if there' a way to avoid nodes at the moment, my preference is to take it.

Perhaps object color or vertex colors might be of interest

You could also try a textured texture paint brush. It is kind of far-fetched.

I wrote an addon a while ago that distributes materials randomly between objects, islands or vertex groups. Could help you there: https://www.youtube.com/watch?v=PgIUrZ8S1_Q
https://github.com/Tlousky/blender_scripts/blob/master/random_material_assigners/random_material_assigner_per_face_new_features.py

@Tamir, if you want to add the information about the object assigner, and change your comment to an answer, I'll accept it. Between the two items, they are exactly what I was looking for.

A possible workaround could be to make a small random selection, extend to linked and assign one material to the slected faces, then repeat the process for each material. Obiuvsly it would be faster if you would be able to join all the brick in one mesh.


text:
How can I use an object to mark on another object?
So I'm making a lightsaber and I want to know how I can make it leave a trail of molten-metal type stuff on another object. Is there an easy way to do this?

This sounds like a classic application for Dynamic Paint. Its output could be used to mask between materials, create displacements, etc.


text:
Sliding an edge distorts texture image (blender 2.81)
When I use loop cut/slide (with "Correct UVs" checked (!)) and move edge - texture image distorts. Even when I move it with "Edge Slide" (Ctrl+E). Also I tried "G, G". Nothing of these works. What am I doing wrong?
P.S. Before updating to 2.81 version everything was OK.
Thanks.
Screenshot examples. Before and after.

Download .blend file:
https://www.upload.ee/files/10846777/texture-distort.blend.html

It could possibly be distorting the UVs when it tries to correct it.

Could you provide the .blend?

Yes. Here is link to download: https://www.upload.ee/files/10846777/texture-distort.blend.html

It is a bit different. Just removed objects from scene.

OK, thanks I'll try my best to fix this.

@Nate_Sycro27 Generally best to recommend https://blend-exchange.giantcowfilms.com/ for people to upload files to.

@RayMairlot k, thanks ;)


text:
How to change the pivot point of scaling to the center of selected vertices in Blender 2.8?

I want to scale based on the center of the selected vertices in the image above. However, I don't know how to change the pivot point to the center of those vertices. I also don't think moving the object to the center of the global axis is the right way.
I think there was a function for this in previous versions, but I wonder if it disappeared? How does it work in Blender 2.8?

You just have bad transform pivot set up, you have to change it to the median point


text:
How to randomize textures that have an transparency/alpha channel?
I can easily randomize textures but i dont know how to throw transparency in the mix.
In simpler worlds - How to randomize textures with transparency/alpha channel ?
Anyone can help ?

I figured out how to add transparency to randomization. It turned out i need to duplicate setup for randomization in that way i have exact node setup for both textures and alpha channel. Iv also added ON/OFF switch to randomization.


text:
Obtaining a grill mesh with not all faces aligned
I am new to Blender and currently practicing few meshes.
I am interested in designing cattle catcher for locomotives. Something as shown in the below picture.

Is there any easy technique in Blender 2.8 to get this mesh done?
Thanks. Any help would be deeply appreciated.


text:
Can I save a render region?
I'd like to be able to define a Render Region and recall it, if possible. Is there a way to do this? As it is now, a drawn Render Region is only temporary, and only one can be drawn at a time.
You can see the drawn render region below, and as I work on the project, I render the animated faders again and again. I'd love it if I could get the render region consistent from time to time instead of having to redraw it.

Hello :). As an alternative - You could duplicate your camera, lower the sensor size and use lens Shift to move the view.

Nice idea, but I wanted to preserve the dimensions of the render as it is, so I'm not sure if this would work the way I need it to. If I do what you're suggesting, I'd have to diddle with the output dimensions.

related or dupe: Possible to set render border exactly

I've seen this post, and while it's somewhat helpful, it's not quite what I'm looking for. I suppose what I'm looking for isn't possible, but the idea is to be able to save a render border as an object that can be named and recalled as necessary.
I've got a bunch of animated objects in my project I need to export separately. I would like to assign render regions to each of the exported elements, so I end up with consistent output through my many revisions.
As it is, the render border is something that's drawn and deleted - it's just such a temporary entity!

Hello again :). One another solution comes to mind - you could create your own render border using a plane with a "window" cutout and a holdout shader. The plane will render as a transparent area - which takes no time to render with adaptive sampling on.

That's a great idea, too! Will try it out!

That is definitely the best solution so far - works perfectly. Thanks!!

You can make a script like this:
import bpy

max_saves = 4  # if you have that many saved regions, trying to create a new one will throw an error
               # remove old saves to create a new one

save_name = "restore_render_regions_{}.py"

out = "import bpy\n\n"

for name, scene in bpy.data.scenes.items():
    out += f"scene = bpy.data.scenes.get('{name}')\n" \
    f"if scene:\n" \
    f"    scene.render.border_min_x = {scene.render.border_min_x}\n" \
    f"    scene.render.border_max_x = {scene.render.border_max_x}\n" \
    f"    scene.render.border_min_y = {scene.render.border_min_y}\n" \
    f"    scene.render.border_max_y = {scene.render.border_max_y}\n" \
    f"# --\n\n"

for i in range(max_saves):
    filename = save_name.format(i)
    if filename not in bpy.data.texts:
        break
else:
    raise MemoryError("Number of saved render region states exceeded the limit - increase the limit or " \
        "remove old saves")

file = bpy.data.texts.new(filename)
file.write(out)

Running it will create another script named restore_render_regions_{0}.py with saved region coordinates, so you can run the automatically generated script to restore the coordinates at any time (the Texts are saved with the file).

I sometimes use in menu bar View > Viewport Render Image.