text:
Create mesh in scene with modifiers, export and save it, then load later with modifiers preserved
I aim to do the following using Blender 2.82a and python: (a) create a mesh in a scene with modifiers and save it, then (b) in another python script, load that same mesh with the same modifiers applied, so that I don't need to re-call the same modifier code [while beyond the scope of this question, I've had trouble with bad physics from this approach].
After an online search, I found documentation for export scene and import scene, along with related StackExchange questions on exporting and importing to .obj files. Here is my minimal working example. I'm using a cloth modifier, but this is not specific to cloth. The TL;DR of the code: (1) clear the scene, (2) create plane and sub-divide it, (3) apply modifiers, (4) save the .obj file. Then, if I run it again with step = 2 in the main method, load the .obj file.
import bpy
import sys

def setup_scene():
    for block in bpy.data.meshes:
        if block.users == 0:
            bpy.data.meshes.remove(block)
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.select_all(action='SELECT')
    bpy.ops.object.delete()

def make_cloth():
    """Make a plane and sub-divide, then add modifiers."""
    bpy.ops.mesh.primitive_plane_add(location=(0, 0, 0))
    bpy.ops.object.editmode_toggle()
    bpy.ops.mesh.subdivide(number_cuts=20)
    bpy.ops.object.editmode_toggle()

    # Problem: modifiers are not preserved when saving and loading.
    bpy.ops.object.modifier_add(type='CLOTH')
    bpy.ops.object.modifier_add(type='SUBSURF')
    bpy.ops.object.modifier_add(type='SOLIDIFY')
    return bpy.context.object

def save_cloth(cloth, path):
    """Save cloth state (it's the selected object) for loading later."""
    bpy.ops.export_scene.obj(filepath=path, use_selection=True, use_mesh_modifiers=True, keep_vertex_order=True)

def load_cloth(path):
    """Load the cloth state from a prior call."""
    bpy.ops.import_scene.obj(filepath=path)
    cloth = bpy.data.objects['Plane']
    print('selected objects: {}'.format(bpy.context.selected_objects))

    # We need to re-apply modifiers. But subsurf / solidify will mean bad physics,
    # arising from higher vertex counts even with these lines commented out.
    #bpy.ops.object.select_all(action='DESELECT')
    #bpy.context.view_layer.objects.active = cloth
    #cloth.select_set(True)
    #bpy.ops.object.modifier_add(type='CLOTH')
    #bpy.ops.object.modifier_add(type='SUBSURF')
    #bpy.ops.object.modifier_add(type='SOLIDIFY')
    return cloth

if __name__ == '__main__':
    # First run script with step = 1, then re-run the script again with step = 2:
    #   blender -P test-save-load-obj.py -- 1
    #   blender -P test-save-load-obj.py -- 2
    argv = sys.argv
    argv = argv[argv.index("--") + 1:]
    step = int(argv[0])
    setup_scene()
    path = 'cloth_to_save.obj'
    if step == 1:
        cloth = make_cloth()
        save_cloth(cloth, path)
    elif step == 2:
        cloth = load_cloth(path)

As mentioned in the comments in the main method, running the above with the step argument as "1" results in the modifiers correctly applied:

The code additionally saves two files: cloth_to_save.mtl and cloth_to_save.obj.
I then run blender -P test-save-load-obj.py -- 2. This will load the meshes. But it will not apply the modifiers:

The above way of saving and loading will correctly preserve the positions of the vertices. So that's good -- I just wonder about the modifiers.

Update 1 (05 June 2020): as batFINGER explains in the comments, use_mesh_modifiers=True is like clicking on apply in the Blender GUI, and it doesn't involve saving the modifier to the .obj file. Therefore, it's unlikely to be part of my hypothetical solution.
One reason for my confusion is that the documentation for the export method that I'm using:

says that setting use_mesh_modifiers=True will result in: "Apply Modifiers, Apply modifiers." I'm a little confused about the documentation. My thought after reading it is that the modifiers (such as the cloth, subsurf, and solidify ones I used in my minimum working example) will be applied or preserved in some way. However, since that's not the case with my code, is there something I'm missing? Feel free to also suggest other ways of saving and loading if those are better than my .obj method. For now, I was thinking of just doing the above but explicitly calling the modifiers again (i.e., just repeating the lines of code in make_cloth that make modifiers).
Related question: this one about exporting to non-Blender programs.

Update 2 (08 June 2020): I modified the script above to take command line arguments. In addition, I further investigated that the vertex count of the cloth will increase dramatically when we load it back in, even without re-applying the cloth or subsurf modifiers. After running blender -P test-save-load-obj.py -- 1 and going to edit mode, I see 484 vertices:

Yet, running blender -P test-save-load-obj.py -- 2 and going to edit mode, I see far more vertices by default even without re-applying modifiers (presumably because subsurf and solidify both increase vertex count implicitly?):

In practice, this results in different physics.

Apply modifiers does just what clicking apply up the modifier stack does.  AFAIK modifiers do not get eported as "matching" obj file modifiers to be imported back as blender modifiers. Akin to using to_mesh or bmesh from_object to create a mesh with modifiers applied.

Consider using command line arguments if using CLI https://blender.stackexchange.com/questions/6817/how-to-pass-command-line-arguments-to-a-blender-python-script

Thanks for the pointers @batFINGER  :) I use command line arguments for my normal usage. Just wanted to keep things simple here, but probably it would have been better to use command line arguments. Regarding modifiers, thanks for the clarifications about clicking the modifiers. I haven't used to_mesh or from_object before, I think. I can check those out.

Fixed script to take command line arguments.

On latest edit are your subsurf levels same for preview and render?  Will account for difference if obj exporter uses render subsurf level, and preview levels is less.

I am not sure if the subsurf levels are the same. Do you know how I am able to check this, and to check if the obj exporter uses the render subsurf level? I will research this now.


text:
Pin cloth vertices at a specific set of frames, and un-pin otherwise (in python)
I am using Blender 2.82a and am trying to pin cloth vertices only at a specific set of frames.
The broader context is to simulate actions on a cloth, where each action is parameterized by a cloth and a set of vertex indices. What I hope to do is something like this:

Frames 0-49: let cloth settle.
Frames 50-99, apply action by pinning vertices on frame 50, moving them with armatures, then releasing the vertices.
Frames 100-149: let cloth settle.
Frames 150-199: apply another action (using the same pinning+armature technique). This may require a pinned group to be created on the fly here, because the prior action might have changed the cloth state.
Rinse and repeat, to get a sequence of actions and "simulator updates."

Obviously these frame counts are not precise and would be tuned accordingly. [However, this may be complex, so my focus is simply on pinning vertices for a specific set of frames.]
Here is my minimal working example. Some is boilerplate to get a video that makes sense, the interesting stuff is in action:
import bpy
import numpy as np
from mathutils import Vector
DEG_TO_RAD = np.pi / 180.

def _to_rad(data):
    return (DEG_TO_RAD * data[0], DEG_TO_RAD * data[1], DEG_TO_RAD * data[2])

def clear_scene():
    for block in bpy.data.meshes:
        if block.users == 0:
            bpy.data.meshes.remove(block)
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.select_all(action='SELECT')
    bpy.ops.object.delete()

def add_camera_light():
    bpy.ops.object.camera_add(
        location=(0.0, -3.5, 2.2),
        rotation=_to_rad((60.8, 0.0, 0.0)),
    )
    bpy.context.scene.camera = bpy.context.object
    bpy.ops.object.light_add(
        type='SUN',
        radius=1,
        location=(33.2, -23.6, 17.4),
        rotation=_to_rad((208, 140, 181)),
    )
    bpy.data.worlds["World"].node_tree.nodes["Background"].inputs[0].default_value = (1, 1, 1, 1)

def make_plane():
    """Underlying plane. Use collision so that it can support cloth on top."""
    bpy.ops.mesh.primitive_plane_add(location=(0, 0, 0))
    bpy.ops.transform.resize(value=(6.0, 6.0, 6.0))
    bpy.ops.object.modifier_add(type='COLLISION')

def make_cloth():
    """Make a plane at height 0.2m (it then settles on the plane) and sub-divide."""
    bpy.ops.mesh.primitive_plane_add(location=(0, 0, 0.2))
    bpy.ops.object.editmode_toggle()
    bpy.ops.mesh.subdivide(number_cuts=20)
    bpy.ops.object.editmode_toggle()
    bpy.ops.object.modifier_add(type='CLOTH')

    # Colors
    mat = bpy.data.materials.new(name="CustomColor")
    mat.use_nodes = False
    mat.diffuse_color = (0,1,0,0)
    bpy.context.object.data.materials.append(mat)

    return bpy.context.object

def action(cloth, vertex_idxs):
    """Apply an action: pick up cloth at these vertex indices.

    We add an armature and make it the parent of a pinned vertex group. Parent set:
    https://docs.blender.org/api/current/bpy.ops.object.html#bpy.ops.object.parent_set
    """
    bpy.ops.object.armature_add(enter_editmode=False, location=(0, 0, 0))

    # Select the cloth _in_addition_ to the armature. The active one is the parent.
    arm = bpy.context.object
    cloth.select_set(True)
    bpy.context.view_layer.objects.active = arm
    bpy.ops.object.parent_set(type='ARMATURE_NAME')

    # Next, go back to the cloth, and pin the designated vertices.
    bpy.ops.object.select_all(action='DESELECT')
    bpy.context.view_layer.objects.active = cloth
    gripped_group = bpy.context.object.vertex_groups.new(name='Pinned')
    gripped_group.add(vertex_idxs, 1.0, 'ADD')
    cloth.modifiers["Cloth"].settings.vertex_group_mass = 'Pinned'

    # The arm modifier must be at the TOP of the modifier stack (over cloth)!
    for _ in range(2):
        bpy.ops.object.modifier_move_up(modifier="Armature")

    # Pinned set for the armature. Note: the arm's default name is 'Bone'.
    b_group = bpy.context.object.vertex_groups["Bone"]
    b_group.add(vertex_idxs, 1.0, 'ADD')

    # Now animate by assigning the arm to different positions at certain keyframes.
    bpy.context.view_layer.objects.active = arm
    bpy.ops.object.posemode_toggle()
    frames = [0, 50, 100]

    # Two keyframes at the same spot for no application of armature movement.
    for b in arm.pose.bones:
        b.keyframe_insert("location", frame=frames[0])
        b.keyframe_insert("location", frame=frames[1])
    c = arm.pose.bones["Bone"]
    c.location += Vector((0, 0.25, 0))
    for b in arm.pose.bones:
        b.keyframe_insert("location", frame=frames[2])

if __name__ == '__main__':
    clear_scene()
    add_camera_light()
    make_plane()
    cloth = make_cloth()
    bpy.context.scene.render.resolution_x = 720
    bpy.context.scene.render.resolution_y = 480

    # Normally we'd get vertex_idxs automatically by selecting an image pixel and
    # converting to indices. But for instructional purposes, hard-code one index.
    vertex_idxs = [0]
    action(cloth, vertex_idxs)

If this is saved in test-pinning-at-frame.py then you can run blender -P test-pinning-at-frame.py. Upon baking the simulation and then generating the video, I get:

Therefore, by using the keyframe_insert method for the arm, I am able to apply the actions at specified frames. In the video above, that's frames 50 through 100, out of 250 total.
However, there is a key problem. The video shows the cloth's vertices are pinned right from the start, which you can see when the cloth settles and before the armature's action applies. I'd like to get the pinning relationship to actually start on frame 50, which is when the keyframes tell Blender to move the armature upwards. But I am not sure how to do that. Putting this in the main method right before the call to action(cloth, vertex_idxs):
for f in range(50):
    bpy.context.scene.frame_set(f)

does not seem to have any effect. Another related issue is how to un-pin after originally pinning.
Using Google to search for "python blender pin vertices at specific frames", I get the following references: this, this, this, this and this, among others. I don't think any of these relate to the question. My impression is that this is a keyframe_insert thing where maybe we can enforce a keyframe for a pinning. Would that be the way to go?

Update 1 (08 June 2020): I managed to partially resolve my question but not entirely. To summarize this devtalk post, we can use this minimal working example (from pastebin) to generate the following:

Code summary: initialize the cloth at a height of 0.200m, and let the cloth settle for the first 50 frames. Then for the next 50 frames, define keyframes that move the lower left corner (with respect to the camera view) up by 0.300m. The main differences with the above code is that this new code adds a reset method to try and remove older pinned vertex groups and uses the frame_set method to advance frames.
This almost works, except that at frame 51, the lower left vertex immediately jumps from the height at rest (which is 0.034m) to 0.200m, the original height. Then, over the next 49 frames, it correctly goes up by 0.300m, so that it reaches 0.500m. But, this is undesirable: the height should go from 0.034m to 0.334m over frames 51 to 100. The code in the pastebin will print out the height of the lower left vertex.
It appears that Blender uses the initial vertex positions to begin the pinning relationship, which is undesirable because the cloth state has changed.

Update 2 (08 June 2020): another possible solution (inspired by this question) is to do multiple animations separately and then combine them later. So, we can run one Blender script for one action, then save the state, and run another Blender script for the next action, and so on. Unfortunately this won't preserve modifiers (see this question) and when I write code to explicitly add the modifiers back in (such as subsurf or solidify) I get bad physics with the vertex count increasing, as shown in the linked question.

Maybe, add weight mix modifier, and use python for... I don't know...  to enabling this modifier... but you can use keyframes for it..

Interesting @Crantisz so with this weight mix modifier, perhaps there is a way to make the "strength" of the pinned group go to 0, so that it does not have any effect in practice?

so with this weight mix modifier, perhaps there is a way to make the
"strength" of the pinned group go to 0, so that it does not have any
effect in practice?

Hope, here is what you are looking for:

How it was done. First, I use hook instead of armature, but it doesn't matter, it will work with armature also.
So I created 2 vertex groups. One is empty, one with hooked vertexes. Empty group it is just a vertex group without any vertex in it. It  is used to create "0 value".
Next, I added Vertex Weight Mix modifier, Group A is empty, Group B is Pinned group. Mix set is All, so empty group will have the result of mixing
To make modifier enabled and disabled, I animated Global Influence. I've found that 50% influence is good, 100% gain extreme acceleration.
Finally, note, that the order of modifiers is important: Vertex Weight Mix and Hock (Armature) modifiers must be before Cloth. Here the modifier stack:

This method is expandable, if you want to add different pin group, add one more Vertex Weight Mix modifier.
Maybe, you will find also interesting my answer about how to unpin vertexes using object proximity: Animate the peeling of top sealed packaging

Nice, thank you so much @Crantisz :) I will download and run the .blend file. Quick question: do the hooks need to be created at the beginning of the cloth animation (frame 0), or can they be created at later frames? The reason is that I am working with actions which can change the cloth. At later frames, the cloth will look different from the initial state due to the past actions we applied, such as folding cloth. Hence, new hooks need to be created on arbitrary frames. I wonder if Blender has that capability?

Actually here's another thought. What about if I assign one hook to one vertex? So, if I make a plane and then sub-divide by 20, I will get 484 vertices, hence 484 hooks. This might offer the most flexibility because I already can get the nearest cloth point to an image pixel. Then, I can map it to the hook.

Hi @Crantisz, thank you again for the answer. I just have one more favor. Is it possible for you to show how to create a second hook on the opposite cloth corner, and then show it dragging in the opposite direction for the second pull? I will award the full bounty for sure if that is possible. I am having some trouble figuring out the sequence of clicks for this from the .blend file because I normally use Python. Also, with second actions, I am wondering if I will run into the problem of cloth vertices not using their updated locations.

To be specific, here's my concern. I find that if you make a second hook at the beginning (frame 0) and you set the left cloth corner vertex to it, then when you make the hook move later (at frame 100 for example) it will assume that the cloth vertex is at the original spot, instead of further to the right from the first action. In other words the pinned vertices do not have updated positions. Or is this doable if you make the hook at a later frame?

From the .blend file, if you make the global influence 1, then indeed it is very aggressive, and this means the vertex will go right back to where it began. :(. This is why it is necessary to start from a global influence of 0 and then gradually increase it. Unfortunately this still means the original vertex position is affecting things, rather than the updated vertex position. I wonder if there is a workaround to just use updated vertex positions?

Yes, hook set vertex position to original. The solution, I think, is move hook manually to the new position of its vertex

Another possible solution would be to update the bone's starting pose position by the offset of the evaluated vertex's position from it's original position.
Here is an example based off of your "minimal working example" script (starting from line 116).
# Keyframe inserts need to use `b.[...]` attributes, like `b.location`.
depsgraph = bpy.context.evaluated_depsgraph_get()
cloth_upd = cloth.evaluated_get(depsgraph)
v_c  = [cloth.matrix_world @ v.co for v in list(cloth.data.vertices)]
v_cd = [cloth_upd.matrix_world @ v.co for v in list(cloth_upd.data.vertices)]
arm.pose.bones["Bone"].location = Vector((0, (v_cd[vertex_idxs[0]][2] - v_c[vertex_idxs[0]][2]), 0))

NOTE: Only the bone's Z axis is updated because only the vertex's Z axis changed.
This causes the pinned vertex to be snapped back to it's evaluated position when the pinning kicks in so you don't get the jump.
The drawbacks with this approach are:

For some reason it seems to mess with the physics and isn't 100% smooth, but it may be close enough depending on your usecase.

It only works properly for the rendered images -- not the viewport.

Thanks! I will check out your proposed solution when I have time.

I didn't try it but another possible solution could be to use dynamic weight painting. So you setup your cloth as a dynamic paint canvas and use another object as a dynamic paint brush. when the brush is intersecting the canvas, the weight changes to 1, if you move it out of the canvas, the weight changes to 0. then just setup the vertex group as pinning group and when the weight changes to zero it should get unpinned because there's essentially no vertices assigned to the group anymore. maybe you can get it to work

Hi @EANIIX thanks for the answer. It may be more useful to include a minimal working example script. I am still testing this out.

Yes, this also works, but I prefer my variant because dynamic paint needs to be baked. Dynamic paint is useful for more complex cases.

source: Stack Exchange

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

sort: votes


text:
Items on top of cloth, and dragging the cloth to move those items [blend files attached]
Using Blender 2.82a, I'm simulating items on top of cloth (which itself is on top of a larger plane) and then using the cloth to drag the items. I have a method that works reasonably well, but I'm wondering if anyone has advice on improving it or extending it to rigid objects. Here's the setup at a high level:

Create a flat plane at the bottom, with collision modifier enabled.
Create a new plane, sub-divide it, add the cloth and collision modifiers. Increase the number of quality steps.
Create three cubes so that they fall on top of the cloth. The cubes also have the cloth and collision modifiers. Increase the number of quality steps.
Following this tutorial, attach two armatures (and join them), and make them the parents of the cloth. Have the armatures move, so that two pinned points of the cloth move with the armatures.

Right now, the main hyperparameter that I have tuned which shows successful results is the Collision -> Softbody And Cloth -> Friction value:

This is for the cloth, not the cubes.
By default, the value is 5.0. Above, I changed it to 50.0. You can see the progression from the three GIFs with friction of 5.0, 15.0, and 50.0, respectively:

Here is the .blend for the above gif that uses friction = 50.0.

This setup seems to be working reasonably well. Now, I am wondering if it's possible to have rigid objects on the cloth. (The cubes have the cloth modifier.) If I make the following changes:

Make the middle block an active rigid body of type box, and remove the cloth and collision modifiers. Note: I also tried keeping cloth only, keeping collision only, and keeping both cloth and collision modifiers, none of which produced better physics.
Make the plane a passive rigid body modifier of type mesh, in addition to its collision modifier.

I get this:

Ah, but unfortunately now that the middle block is rigid, it no longer interacts with the cloth.  This is definitely hard to simulate with physics. Does Blender have a solution for this? Here is the .blend for the above gif.

A second question I have would be hyperparameter tuning. While I think tuning just this single friction hyperparameter work reasonably well, are there any others I should be aware of for testing purposes to produce realistic movements? The cubes, for example, are cloth and have their own friction hyperparameters, which might also need tuning, etc.
So, to summarize: (a) rigid objects on top of fabric, and (b) which hyperparameters to further tune? Thanks everyone.

I take it that you're not trying to fake this for video, rather have it all done with physics & soft cloth.  If it is purely for a video, this is quite possible and would require two distinct processes, one for the cloth to fall onto say a table, plus the blocks falling and coming to rest.  The 2nd where the cloth is pulled along the table's surface to bring the blocks with them. Both would be rendered to be joined up seamlessly in the VSE.

To clarify, yes, I am not trying to fake it. Ideally it would be done with physics and cloth from Blender. Your suggestion about the video would be for when I would fake it, I believe?

Yes I did it for video - took me 11 hours all up lol!  The 2nd attempt worked.  Video up on Dropbox.  Blend file(s) yours if your wish.  Links - https://www.dropbox.com/s/jxwmujrvk1bdtia/Cubes3.gif?dl=0

Whoa! That is nice. I was trying to do something like this because I'm implementing simulated robotics-style environments in Blender, where robots can grasp and pull cloth. Now that I think about it, the second part of your video (blocks and cloth pulling part) is basically all I need. The cloth can be assumed to start on the table. I'm curious if you have the blender file? Also feel free to write it up as an answer so I can upvote. :)

I'll get the Blend files up here.  Will have to be an answer.  No way I can add them to a comment.  I've written some notes up for myself so they'll need to be spuced up a bit. Watch this space...

Awesome! Looking forward to it. :)

Blend files are below - good luck with your project.  :)

Much like rigid body physics, the cloth modifier in vers,2.77a at least, won't allow the cloth to be animated or shapekeyed whilst the physics cache is active.
The cache's frame range can be set however (physics properties) so we turn that off at frame 140 when the cloth has settled down.
Whilst the cloth physics is still active, two 'cloth shapers' are underneath the table that physically 'lift' the cloth ends.  The cylinder moves to the right between frames 91 & 98, the other end's triangular cube, from frame 98 to 105.
Both lifters are given Collision Physics.  They don't interfere with other collision objects such as the table and are invisible when rendered.  (eye & camera icons in the Outliner)
In order to animate the cloth, we'd need to  "Apply" the cloth modifier at frame 140 when it's settled down and therefore 'freeze' it in it's current shape, allowing keyframed animation.
In this example we don't need to animate the cloth at all.  Instead we duplicate the table and get rid of the copy's inherited physics so it's just scenery.
The original table is made invisible in the Outliner and remains stationary to support the cloth.
At the frames where the cloth is supposed to be pulled to the right, we instead move the duplicate table to the left with the camera parented to it so the cloth appears to be pulled to the right.

As the falling cubes physics are baked we can add keyframes to simulate their inertia.  All three are parented to an empty so they can be moved as one.
Should there be other objects and scenery behind, simply render the tables, cloth etc. out with a transparent background and render that as one clip.  Render the background objects as another and mix them in the VSE.

Hi! I saw you comment on another question I had about trying to make cloth physics work with armatures. I will try and study your solution in detail to see if it's possible to maintain cloth modifiers in each single .blend file, and then combine them later programmatically.

Hi again CS.  This is a bit of a mouthful, so here goes - I went back to the project I made for your last question and found the 2nd Blend file wasn't as helpful as it could have been.  The cloth had already been converted to mesh and shapekeyed, so the straightening process had already been performed. I'll have to redo that and add yet a third Bendfile, pre-cloth straightening.  The cylinder and hinged plane used to do this will then be demonstrated with the cloth physics still active.

Cont... As for mixing cloth physics with other processes such as deforming it's mesh further, I usually stick to the cloth physics and shape a rigid body object to suit the deformation I'm after, then push it against the cloth.  This keeps the cloth reacting like cloth and once so deformed, I save the file to come back to - re-save it again as a different file.

Cont...  It's this 2nd file where the cloth physics are "Applied as Shapekeys" in order to convert the cloth to shapekeyed mesh and clear it of modifiers, constraints etc.
i.e. the physics are dispensed with altogether but it's still changing shape and hopefully, maintaining cloth characteristics.
Once the cloth is clear of modifiers etc, it can be animated before, after or during shape-shifting. If necessary this mesh can be further 'frozen' at a particular state and pose and carried forward to yet another Blend file where further magic can be applied.

Cont... The process whilst sounding cumbersome, keeps things modularized and entanglement free.

Thanks @EdgeI3D. Just one more question, if that's OK? :) From the .blend files, you were able to make the last frame of Cubes1.blend be the first frame of Cubes2.blend. I see you wrote instructions on that about "replaying". However, I downloaded Cubes2.blend, and played (by clicking "play") to the last frame. Then I saved the .blend file to Cubes2-lastframe.blend. I opened that file but I saw it was not "reset" to frame 1 but still at the old frame. Is there a specific set of steps I need to carefully do to correctly "reset" loaded .blend files to frame 1? Thank you so much.

To be precise, I am interested in knowing exactly how you managed to make frame1 of Cubes2.blend have the updated animation of the last frame of Cubes1.blend.  This would be extremely useful to "dump" older animations from earlier .blend files. Maybe I do not understand the "Replay, (don't manually advance) the timeline to the last frame and save the file again" instructions? That's the only question I have regarding your solution.

Thanks! That might be the approach I need to get cloth physics to seamlessly update between separate .blend files (e.g., see my question https://blender.stackexchange.com/questions/180199/pin-cloth-vertices-at-a-specific-set-of-frames-and-un-pin-otherwise-in-python and related one here https://blender.stackexchange.com/questions/57217/how-can-i-deform-a-cloth-during-simulation?noredirect=1&lq=1). Do you have the precise steps to "not advance the timeline manually"? I can then try converting it to python. Thank you so much.

I've been toying with a few ideas and have simplified things as a result.  I'll edit my answer to reflect this.
In the meantime your query as to how to import from meshes from one Blend file to another is only a matter of "Appending" the older file and copy/pasting the mesh over.  More details if you're stuck.

Not advancing the timeline cursor is to avoid a differently shaped mesh from what might be there when playing the frames right through, at least to the frame where you wish to 'Apply' the modifier.
Once applied, save the file to another filename.  The 2nd file will have the mesh as solid from frame 1 and in the shape it was when the modifier was Applied.

Have done a complete makeover of the answer above.  It's a  simpler process.  Also, I noted a skirt hitching problem, re: tearing. Have a look at the first video in the Dropbox link and you'll see a cone shape lifting the cloth.  It doesn't tear.  This often comes down to cloth settings.  Try the settings in the new Blend file, see if it will tear.  To avoid the heel I'd be trying to move the cloth over the heel just enough with some object that is similar to the skirt's flow.

Nice. Gotta try out the Table top trick https://blender.stackexchange.com/a/169718/15543

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


text:
Cant select bones in edit mode
I just added a human skeleton into the scene from rigify and I cant select the individual bones. Helllp!
https://screencast-o-matic.com/watch/cr6rbZVXRJs

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

According to the properties page, 'Group4.001' appears to be the active object whatever that is! If the armature was selected you wouldn't see the Vertex, Edge and Face icons on the top left of the toolbar. Can you upload the blend file so that we can have a look?

uploaded the file, hope I did that right. I'm trying to rig a skeleton, Group4 is the mesh. I've hidden it cause I thought it was strange the vertices were still showing despite having clicked the rig in the top right :\

I literally just closed blender and opened it back up with the file... and now I can select the individual bones. My brains gonna explode. Was this a bug or is there a proper way to select between the two I missed?

That works fine for me.

Select between which two? You have the metarig which I can select normally and a mesh of a skeleton which is disabled in the outliner.

the mesh and rig. I think this may have been a temporary bug or is there something else I need to do to make the rig the active object other than just left clicking it in the menu? Oh yeah, now that the rig is selected the mesh cant be selected. How do I switch between them properly?

ohhhh, you preselect it in object mode. Oof. Thanks xD

Yes. You always have to select an object in Object mode before you can work on it in Edit mode. You can't just switch objects in the outliner while in Edit mode and expect to be able to work on them immediately.


text:
Particle info node is not working for molecular add on in cycle ;(

I want to make a sand block.
So, I followed youtube video : https://www.youtube.com/watch?v=bdmVfwXIBhQ&t=324s
I made a good sand using molecular add on, but I had a problem in particle info node.
This is the picture that I wanted to have:

But This is what I had:

It is all black.
this is the texture I used

I need your help. ;(

The Particle Info node works only in Cycles.
In the first screenshot, the viewport shading (Z) is set to Rendered (and the render engine is Cycles)=> the node works.
But in the 2nd screenshot, the viewport shading is set to Material Preview (which is similar to Eevee) => the node does not work.
Viewport shading Rendered (Cycles)
As you can see here the node works in Rendered mode (Cycles) but there is another problem. There is no real randomness. There is only the green area visible.
This is because the scalar Random value (R) is used for the Vector which is a vector (X, Y, Z). Blender will convert like this (1) => (1, 1, 1), (2) => (2, 2, 2) and so on. These vectors are not random, because it's always R=X=Y=Z. You probably want something like (2, 5, 1), (8, 4, 7), etc.
With help of the Object Info node and a 4D White Noise node you can get better random values and make it work in Eevee and Cycles. The random value is used for the W input and this will generate a true random vector (X, Y, Z) where all components are random.
Viewport shading Rendered (Eevee)

if you want to use "particle info" in eevee i can recommend using animation-nodes. There is such an info node which gives you the information in EEVEE too.


text:
My images are rendered as file, not PNG. How to open the files in video editing?
I rendered over 1000 images and it took over 3 hours.
But due to an Insufficient storage space, the images are saved as file, not PNG.
I can open and see the images, but I cannot open in blender in video editing.
Is there any way to open that files in blender in video editing?
Or can I change the files to PNG?
Folder:

open with:

I don't understand what you mean by "file, not PNG", as typically by PNG people mean a file (with .png extension). Is it saved as a file in a different format than PNG? Or is it PNG format but without the .png extension?

and with what program can you open and see the image?

I uploaded a folder that I rendered image in.

What operating system do you use (what version of Windows)? It seems you have some path problems: https://i.imgur.com/018KXuo.png I found this question on Superuser: https://superuser.com/questions/1167662/why-is-windows-10-displaying-as-%C2%A5-on-the-command-line

I deleted that part because that is not english. I use widow 10

I think the easiest way would be to add in the file extension.
for example, take the file "0351", you add a ".png" to the end so it looks like "0351.png", and check if it opens in blender.
If it works, you can batch change the file extensions using cmd in windows.
For that,
Step 1
Search for cmd in the start, and open it

Step 2
Go to your folder where these files are located and copy the directory

Step 3
cd (paste file location)

Please mind the space after "cd" in the above command
It would look something like this, but replace the "D:\DATA\Test" with your copied location

Press Enter
Step 4
If you have the files stored in a different drive (if the files are not in the same drive as you have installed windows on), you need to perform an extra step and type in the letter allocated to the drive. You can find it in "This PC" (search in start)

In this example, it's "D"
so, if yours is stored in another drive, in this example "D", type in the below command and replace "d" with the letter allocated to your drive.
d:

it should look something like this

hit enter
if you have everything in the same drive as where windows was installed, skip this step and move on to Step 5
Step 5
type in or copy-paste
ren *. *.png

How it works
ren = short for rename
*. = the original extension, since we don't have any, leave it blank
*.png = the extension we want to change it to)
and your problem should be fixed
If you are using PowerShell in windows, please use the commands provided by Markus as a comment below this post

I'm getting an error for this: ren : Cannot rename because item at '*.' does not exist., what works for me: Dir | rename-item -newname  { $_.Name +".png" } on Windows 10.

sorry about that Markus
I've updated the answer
turns out command prompt commands and powershell commands are a bit different
sorry about that

Yes, I never learned Powershell (the command above I googled)... One more thing is cd will not be enough if you're not on the same drive, you need to type d: as well in your example (though the OP has the files on desktop on C drive)

I see you rendered all your files to desktop. To make sure you don't break some other files than the animation, as well that you keep those files in case something in the script goes wrong, create a new folder on the desktop called animation, and copy those files to that folder. Now in Blender, Scripting workspace, paste the code below and run it:
import os

folder = "C:/Users/HOME/Desktop/animation"
for filename in os.listdir(folder):
    src =f"{folder}/{filename}"
    dst = f"{src}.png"
    os.rename(src, dst)

This should add the extensions to the files. For future renders, check this thread: PNG animation render, saving images without a file type


text:
How to connect / stitch multiple edges?
In some parts of this mesh, especially on the corners and edges, there are edges that aren't connected. I only discovered it when I tried to sculpt, and this "hole" appeared.

When I went to Edit mode, it turned out that the edges on this corner part of the mesh are "duplicated".
You can clearly see it here:
Now, I know that I can fix this manually, and it's not a huge problem here, where I have to deal with just several of these edges. But I want to know if there's any automatic method to connect them, in case I find a spot with thousands of them, or if I already start sculpting and want to fix this after. Mind you, "Merge vertices" or "Merge edges" doesn't work automatically here, because I still need to select and merge each pair of vertices/edges individually. Is there an option, either in Edit mode or Sculpt mode, to kind of "stitch" these kinds of holes? Or better yet, first locate and then stitch them automatically?

you can try Select > Select All by Trait > Non Manifold and fill the hole, or select all, then Mesh > Clean Up > Fill Holes (and increase the Sides value in the Operator box. If it doesn't work you can boolean these parts with another object

Thank you very much @moonboots, the first two methods worked perfectly! I mean almost, after these steps there's still an ugly 0-area face in edit mode, but as soon as I start sculpting with dyntopo, it disappears. So that solves my problem.

You can try Select > Select All by Trait > Non Manifold and fill the hole, or select all, then Mesh > Clean Up > Fill Holes (and increase the Sides value in the Operator box). If it doesn't work you can boolean these parts with another object.


text:
How do I make the ball on the curves run smoothly?
A link to project file below
https://pasteall.org/blend/c79ccc9e7c1f4cb693b5df2509a6b8c7

I want to create an animation with a ball on 2 curved rails, I used rigid body and the ball is sliding but not smoothly, it looks like it's hitting little bumps on the way and it doesn't fully touch the rails object. but the rail is smooth and so does the sphere. what do I do?

what settings have you chosen for the ball? maybe try Shape > Sphere?

I already deleted the sphere and started over and I came to a result where the ball in inside of the rails and it's getting stuck whenever it hits the rings shown in the pictures

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

@NirOfer - Moonboots is refering to the Rigid Body Collisions "Shape" setting on the sphere. It defaults to Convex Hull which will follow your mesh and is only an approximation of a sphere (hence the bumpiness). Setting the Rigid Body Collisions Shape to Sphere will handle your sphere as an actual smooth sphere and you should get a better result.

@RichSedman The first picture shows the situation after I set it the collision shape to sphere

Step 1
I removed the rigid body you added and added it again to all your 3 objects because I wanted to change the settings. Copy the settings with the help of the GIF given below

Step 2
Change the end time in the cache settings to change the rigid body animation length because by default the rigid body animation always ends at frame 250 even if you change the animation length in the timeline. For example, if you set the value of the end frame under the cache settings to 'x' that means the rigid body animation will go up to frame number 'x'

Result
A small clip of the result.

Step 3(optional)
If you find your animation too slow or fast you can always change the speed in the scene properties like this.

Hope this helps and works for you :)

Thank you but the sphere is still floating at some point. Any way I can fix it?

actually, the sphere is not floating, it`s just flying across the curves because of that steep sudden declination

So there is nothing I can do about it to change it?

You just have to play with the rigid body settings until you get it right


text:
Rigify Custom Bones Won't Display, Displays Octahedral Ones Instead?
So I was working on my character mesh and all the sudden the controls (custom bones) for the Rigify Rig disappeared. I have used it to make animations before and the animations still work.
The Rig's octahedral bones are showing up instead of the controls (custom bones). I think the problem might have something to do with the Rig being disconnected from the Rig's WGTS objects. Here is what it looks like now:

How can I get the controls to show up again and/or connect them to the Rig's bones?
Thanks :)

Comments are not for extended discussion; this conversation has been moved to chat.


text:
Is it possible to add a keyframe to an IK control's Target Root?
I have an animation file with multiple actions, and I'm using the Mr. Mannequin rig for Unreal.
For all of my previous actions, the Target Root (found in the Rigging Modules settings) of my IK hand control is set to the rig's root.  For my most recent action, however, I want to change the Target Root to be set to the rig's pelvis (imagine the rig's hand on its hip, for instance).  When I do this, it changes the Target Root across all actions, not just the current action.  It doesn't look like a keyable setting, unfortunately.
Is there anything I can do to make this setting apply only to this specific action?  Is it possible to add a keyframe to this setting?
(Note: I have reasons for not using FK for the hand when its Target Root is set to the rig's root.)
Thanks!
Chris

Rigging module settings?  Are you using an addon?  You might want to specify that in the question.

Sorry, I'm fairly new to Blender and assumed this was a common menu.  I'm using the Mr. Mannequin rig, which I just noted above.  I wonder whether these settings come with this rig, or maybe it's a Rigify thing, not sure.

Yeah, I just confirmed with the rig's creator that it's specific to the rig and non-keyable.  They suggested a "Child of" constraint to the pelvis, which worked like a charm. :)

I confirmed with the rig's creator that the setting in question is specific to the rig and non-keyable. They suggested a "Child of" constraint on the hand IK control to the pelvis, which worked like a charm.  For anyone using the Mr. Mannequin rig for game animation in Unreal, check out their Discord server. :)


text:
Copied Weight Painted Arm Disappears After Joining Back to Main Armature
so here's my issue.
Essentially, to avoid weight painting the same limb twice, I've made an attempt to just copy the arm I've already weight painted, mirrored it, & then renamed all the bones. However, when I attempt to attach the new arm's armature to the main armature with ctrl+J, the new arm's mesh disappears.
I'm not sure what exactly is causing this because every previous person who's asked a similar question doesn't appear to have this issue? Is it an order thing? Do I need to join the arm mesh to the main mesh first?
[ File is a bit too big for the normal site, so here's a g.drive link: https://drive.google.com/file/d/1N14OdMEOujBU85978oUM6cAhWAmJN-lG/view?usp=sharing ]
Additionally, since I will be attaching the file after posting, my model's eyes are parented to the head but do not move with the head bone. If someone knows where I missed a connection there, please also mention that in your reply.

The cause of the disappear of the left arm.
When joined, the left arm overlaps the right arm.
This is because the Arm Armature's scale(x=-1) was canceled by join.
The reason why the eyes do not move with the head bone.

This is because the eyes are parented to the head mesh object, not bone.
wrong name of the left arm
l.u.arm.001

Remake
Actually, it seems to me far more easy and more profitable to recreate the mesh and bones than to fix bugs. The following way uses mirror modifier and symmetry method to create the necessary parts.

Delete Arm Armature and Arms.002

In object mode, set objects origin to world origin:
(1) Shift+S with Cursor to World Origin,
(2) Select Main Armature and Arms.001 mesh objects,
(3) Menu: Object > Set Origin > Orign to 3D Cursor.

Make left arm mesh by Mirror modifier:
(1) Add Mirror modifier to Arms.001 and Apply the modifier.

Make left arm bones by Symmetrize method.
(1) In edit mode, select all arm bones of the Arm Armature,
(2) Menu: Armature menu > Symmetrize.


text:
Physic-based fur/hair on an already animated model from an external software (Source Filmmaker)?
So, I was looking up tutorials on physic-based hair or fur in Blender. However, while I found a ton of different tutorials on the subject, I couldn't find one where you could just overlay the fur or hair onto an already animated model. I'm already relatively familiar with animating in another software known as Source Filmmaker (SFM), and I find it far easier to use than Blender. However, it is also severely outdated, so it would simply crash if I were to use a high-poly model. I was thinking I could take the animation I made in SFM and apply it to a high-poly model in Blender, and then add the fur/hair to it. But I really want the hair or fur to be physics-based, not static. Is there any way to do this? Or would it just be easier to learn animation in Blender?

I'm not sure exactly how I can help except point you to a tutorial: https://www.youtube.com/watch?v=yxbW5mCdHLg
Animation import as fbx will work.

Thanks! I will look into it :)


text:
Bevel direction
Does anyone have any clue how to control the bevel directions for Blender2.8? Whenever I try to bevel an edge that is connected to another vertical edge, the bevel tend to not go towards x,y,or z axis as shown on the image attached. As shown on the image, the red arrows are going towards the direction that I anticipated, but the green arrow shows how the vertex isn't moving towards the direction I hope for... This wasn't an issue for Blender 2.79. I tried applying transform by pressing ctrl + a and clicked all the options available, but didn't work...

How could it ? It's a matter of normals and this is broken. You'd better work manualy on your model a little more

@Yvain The model is actually not that complex. I'm just using the combination of hardops and boxcutter. Even if the model is simple as a box, as long as there is a diagonal edge involved, this issue occurs.

You should have zero loose vertex, by that I mean that every edges must make a loop (as long as it's possible). Try to connect the vertex that is alone to the ridge is a direct way with ctrl+k.


text:
Why can I add a horizontal loop cut, but I can't add a vertical loop cut
In the images I'm trying to add a loop cut vertically through the rectangles, however, it only allows me to add a horizontal loop cut.  The mesh is only a plane and I am using the mirror modifier.  I'm not sure if the mirror modifier is somehow messing it up or if it's something else.  Also, the mesh is part of a larger mesh that I have hidden, not sure if that helps or not either.  I've already tried removing any duplicate vertices and such but to no avail. Can someone tell me what I'm doing wrong?

@cegaton it's not an ngon, it has exactly 4 vertices. I only want the loop cut to be within the rectangle, not the whole mesh.

@MrZak My question was how to make a loop cut vertical not to continue the horizontal loop cut.

Hard to say from screenshot in edge selection mode then. It could be due to hidden geometry. Note that hiding geometry doesn't make visible one available for loopcut if hidden one somehow prevents from it.

maybe share your mesh or at least the part of it with the problem (make sure that if you delete a part the problem still persist): https://blend-exchange.giantcowfilms.com/


text:
Why won't my Volume Texture display correctly in camera view?
I created the flame on the back by texturing a Volume Empty...

...However when I go to camera view it looks like so:

What's going on? No matter how I angle it & use "lock camera to view", it doesn't show up correctly in camera view.
The flame is apparently there (see image below), but it doesn't extend outward in camera view, as it correctly does in regular view.

It might have something to do with my Camera's clip start. I reduced it from .0001 to .1 & the flame shows up in the still image... However when I play the animation, I still can't get the flame to show up for the whole thing.  Any insights appreciated.

Also seems to work okay in Cycles, but not Eevee.  Maybe that's the answer?


text:
Animal Crossing-like Mouth Rig?
So I'm starting a new project soon. I'm not sure how to find resources on this, so I'm going to try to describe what I'm going for as clearly as possible.
Essentially, I want to rig an animal model to have its nose wiggle when it talks rather than have a visible moving mouth. Similarly to how Tom Nook's snout wiggles when he talks or even Crazy Redd from the same series. What would a rig have to look like to achieve this effect?
*Edit: It's kinda subtle here, but I made a little gif to show what I'm talking about.

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

Wiggle Bone addon could be used for wiggling nose, but it wiggles based on head motion ... In your case nose is moving only at moment of speach ... So just add bone to nose with noise modifier on f-curve and animate just strength like one-off.

@vklidu sounds like a good idea. i'll give it a shot and post results in a few days


text:
Blender saving baked internal normal image always in .EXR
i am using the addon simple bake for baking pbr maps for objects.
If i use External Data > Unpack all into files to export an FBX with image textures, blender is saving all images as .PNG except the normal map which is .EXR.
To save file-space i want to unpack as .PNG and cannot figure out to tell blender to always use .PNG instead of .EXR for normals.
The packed image texture has the following properties:

This has worked before and suddenly i only get exr. A workaround is to save only the normal individually by Image > Save As (here is openEXR selected by default) and change it to PNG, but this is very impractical.
I also tried to set the default format under Output Properties > Output to PNG with no luck.
I hope someone can help me how to set blender up to always save the normal image in a specific format (.png for my case)

I had the same problem. I noticed that when I created a new image to bake to, I'd left off the .png. I just created a new image and included the .png at the end and I was good to go.

Hi, thanks for the post. This site is not a regular forum, answers should be substantial and thoroughly explain the solution and required workflow. One liners and short tips rarely make for a good answer. If you can [edit] your post and provide some more details about the procedure and why it works feel free to restore it, otherwise it may be deleted or converted into a comment. Perhaps add a few images illustrating the workflow and final results. See How do I write a good answer?


text:
My smoke is blocky even at highish resolutions
I’m working on this project where I’m getting this blockiness in the fiery smoky flying rocks.
I already increased the resolution of the bake to 500 in the domain menu and it took the whole day to bake even in my mildly beefy machine (3900x, RTX3090, 64GB RAM). Is there anything else I can do to make the blockiness go away and make it look more realistic?
I’m fairly new to simulations so I don’t want to be messing with stuff I don’t completely understand and waiting around for whole days to get bakes done...
Clarifications:

I'm working on Cycles (needed for the pointiness value in the geometry nodes for the planet exploding material)
I don't think it is a volume thing as the simulation already looks pretty jagged out of the bake.

it's worth checking the related questions, but i had the same problem using eevee and lowering the Tile Size under Volumetrics in the Render Properties helped a lot (without having to bake again)

Thanks for the suggestion! Added a clarification to the original post as to why I don't think the issue lies there.
Cheers!

There is a setting to interpolate volumes in the material settings in volume tab.
Change the interpolation from linear to Cubic.

The resolution of simulation is one thing, but how the cubic voxels are interpolated is another. In the simplest case, the voxels are like minecraft cubes and even at very high resolution, they will look bad. However if you use cubic interpolation, they get smoothed.

Thank you, I think this should be marked as the correct answer!

I had the same issue and it was a combination of setting an 'initial velocity' on the emitter from its normal of about $0.02$ and then using the Vorticity control on the Volume from about $0.4$ to $0.7$ and then a resolution of about $300$ upwards should do the trick!


text:
Rigid body not falling down, floating away
I wanted to make a bunch of these stars to fall into a bowl, sort of like cereal. I made the bowl and the plane passive objects and have tried different meshes (convex hull, mesh, cube…) and made the star an active one, calculated mass and when I pressed play it just fell through the bowl and the plane. I changed everything I could think of and then it started floating away, jumping from one place to another in just one frame.
here's the blender file if it helps
https://pasteall.org/blend/ccd9644ea2be40c595dc929b6b3248c0
this is the first frame:

this is the second frame, with the star already miles up:

Please provide blende file. Images should be pasted directly in the question, not in external sites.

Firstly ‘Apply Scale’ on each of your meshes. Then check the direction of your Normals on each of your meshes as this could be potentially affecting collision. Check that there are no other overlapping objects that are not visible (this could be a duplicate of your star that star that starts in the exact same location).

I’ve applied the scale and the normals are apparently ok, all are blue. Also no overlapping objects

My guess is that you've run into the problem where the body you meant to be falling starts inside the convex hull (or bounding box, depending) of the object you want it to fall into.  For both, check their Rigid Body -> Collision -> Shape setting and try Mesh rather than others.  If that's the problem the floating away will stop.

Changes all of them to mesh and now it’s going down but at the exact same rate, just falling through the bowl and the plane and jumping miles afar

Hello and welcome. Instead of having users go through links and external sites please use the builtin tools to embed images in your post. See How to upload an image to a post? or GIFs

Thank you, I edited it

hello, we still can't see any picture, also maybe share your file? use https://pasteall.org/blend/

@moonboots oh i submitted the pictures the way the previous comment said, i'mm clicking on them and they open fine for me, don't know what could be happening :/

please share your file, use the link I've given, once uploaded copy paste here the link (URL) it will give you

@moonboots added the file, thanks for all the help with the code and the images

In the Scene panel > Rigid Body World > Settings > bring back the Speed to 1
Select the bowl, duplicate, remove the original (don’t know why), then in the Physics > Rigid Body > Collisions > Shape, choose Mesh, and a Sensitivity > Margin of 0
For the cereal, choose Shape > Convex Hull

just did all that and nothing has changed :/ cereal keeps jumping way down. i was thinking my pc couldnt run a smooth animation but first time i tried the cereal fell and bounced as soon as it hit the bowl, so i know it can do that
edit: duplicated everything, deleted the originals and did what you said, seems to be working now. thank you SO much!!!!!!!!

yes there is something weird, I don't know why duplicating fixes the problem, maybe someone will tell

maybe it resets them somehow? would love to know why

delete rigid body and collision for plane

change shape to mesh and margin to 0 for bowl

change speed in rigid body world to 1

cereal: shape to sphere, collision margin 0, run animation, shape to box, run animation, then shape to sphere again, run animation

result:

but 5, you arrived too late  ^^

looks like…..


text:
How to remove ghosting from refraction in Eevee?

I keep seeing this ghost of objects that are above my refraction plane. It seems to have to do with SSR not knowing what is under the cube, so it renders out a cube shaped gap that gets distorted as I adjust the IOR. Any suggestions on how to to workaround this?
edit: adding the Blend file
https://we.tl/t-nP9vwbIqnM

This need more details, your settings, what is that plane or even better your file with those specific objects

@MikoCG Apologies, here is the blend file https://we.tl/t-nP9vwbIqnM


text:
Megascan object, viewport shadow is odd black
Updated:
Here is my packed Blender file:
https://drive.google.com/drive/folders/18oEstq5oBS_6ILUNNtZeRxpP4Fthnnhx?usp=sharing
Thanks to Lemon!

Hi everyone,
I've been trying to import Megascan objects into Blender, and got odd shadows (please see attached).
Was wondering if anyone knows the reason, please?
Here are some detailed information -
The render engine I'm trying is Eevee. Changing the Viewport Sampling number doesn't make any difference.
I tried both the Material Preview and the Rendered Preview, they look exactly the same.
I cracked up 'Render Properties > Shadows> Cube Size & Cascale Size' both to be 2048 px. Still the same result.

Cycles looks fine. My only problem is with Eevee.

I'm attaching screen shots of my Viewport, the Material Nodes, the World Nodes, and the Megascan object I downloaded through Bridge. I don't know what else I should check to fix this. Hope someone can help!
Thank you very very much in advance!!

enter image description here

tuning a bit the strength of the normal map node? if not, please share a blend file with textures included (packed into the file: file/external data/pack all into blend).

Thanks a lot for your input!!! I have tried to change the normal node - still the same result. I'll be trying to upload the files.

Just uploaded my files to Google Drive. Many thanks!!

Liz, your file needs an authorization to be loaded... can you change that? Or upload it here https://blend-exchange.com/

Oh sorry! I just changed the authorization. Hope the link works now. I'm also trying to upload the file to blend-exchange.com (thank you for the info!!) It seems it'll take some time.

ok, in the plane shader (name is Thai_Trampled_Beach_vb2jbgdlw), the normal map node has its output linked to 'alpha'. Set it to 'normal' instead.

Something came up yesterday. I checked your reply early today morning. And I didn't have a chance to reply until now. Anyways - sorry for the delay. I can't say thank enough to you!!! Really, really, really appreciate your time and your help. Yes, everything is fine now. Cheers!!


text:
Different result between applying matrix to mesh and applying matrix to object
import bpy
import bmesh
from mathutils import Matrix

def create_box(matrix=None):
    mesh = bpy.data.meshes.new('Box')
    bm = bmesh.new()
    bmesh.ops.create_cube(bm, size=1, matrix=matrix or Matrix())
    bm.to_mesh(mesh)
    bm.free()

    obj = bpy.data.objects.new('Box', mesh)
    bpy.context.collection.objects.link(obj)

    return obj

mat = Matrix()
mat[0] = 0.2836, -0.0000, -13.6324, -12.8478
mat[1] = -0.1045,  0.0020, -37.4530,  40.9696
mat[2] = 0.0000,  0.1394,   0.0000, -53.2379
mat[3] = 0.0000,  0.0000,   0.0000,   1.0000

# Matrix applied directly to mesh
create_box(mat)
# Set transformation matrix
obj = create_box()
obj.matrix_world = mat

The code above creates a cube using the bmesh.ops.create_cube operator. The first time I pass in the matrix to the operator, therefore, applying the matrix directly to the mesh itself. The next time I just set the object's transformation matrix. The results, however, are different for some reason when they should be the same. You can paste this code in the   Blender script editor to see for yourself.
I have tried decomposing the matrix and setting each transform individually to no avail. I have also noticed that, if instead of passing in the matrix to the operator I run obj.data.transform(mat) it has the same result as passing in the matrix to the operator.
Notice how the meshes do not line up:

I retrieved this matrix from a file I imported as a part of an i/o addon I am working on. I can confirm that when applying the matrix directly to the mesh (the first create_box call) I get the correct result.

Turns out it's because the matrix is not orthogonal. This is a result of some of my calculations on import.


text:
Bevel edges by Geometry nodes by using attribute on a vertex after solidify modifier

It's bit complicated to explain so please take a look at the screenshot first.
I'm trying to bevel a specific edge, that was extruded by solidifier modifier from a vertex which has attribute "bevel_flag" which is set to 1, the other verts have 0.
I'm basically trying to control which edge will be beveled by using bevel modifier with weight option instead of angle, because sometimes I need fine control and I want to keep the workflow none destructive.
I kind of managed to do it as you can see on the screenshot, by using the bevel_flag vertex attribute and move the vertex position and use it as condition to select edges and mark the edges for bevel. But using the position as proxy for condition seems a bit off, I'm new to geometrynodes system so could someone advice me the better way to do? Maybe something like directry using vert attribute on a vertex on a edge, but I'm not looping through verts but edges so I couldn't have done that.

Figured it out by myself. I needed to use sample index node to access attribute of vertex from edge domain loop.

Because you operate on the same geometry, you can use "Evaluate on index" for less noodles. If the attribute is either 0 or 1, you can just read it directly and check if it equals exactly $1.0$, because an edge will interpolate vertex domain by averaging two connected vertex values. If the values may be different and you want to check if both are non-zero, you can first convert those values to binary ("evaluate on domain: point" boolean datatype).

Thank you for the helpfull comments, it worked like a magic. Acutally even without evaluate on Domain, for my case directory connecting Named Attribute to Store Named Attribute works as well because I think Blender automatically convert veterx attribute to Edge attribute by averaging values on verts even without the Evaluate node. So it's super simple now.

Well, I was wrong and the direct connection method, it worked only on simple square, for actual practical mesh structure, I do need Evaluate on Domain as you said.


text:
Python convert curve to object
I'm trying to visualize assembly of flat pack furniture, out of 2D SVG curves. I can successfully import and extrude the separate SVG paths in Python, conveniently using the path's id to reference the bpy.data.curves[id]:
bpy.ops.import_curve.svg("/path/to/barkruk.svg")
bpy.data.curves["left"].dimensions = "2D"
bpy.data.curves["left"].extrude = 0.003
bpy.data.curves["centert"].dimensions = "2D"
bpy.data.curves["centert"].extrude = 0.003
bpy.data.curves["right"].dimensions = "2D"
bpy.data.curves["right"].extrude = 0.003

(You can find the example SVG at stretchsketch)
I was hoping I could transform (rotate, move) the curves via the rotate_euler properties but these are only present at bpy.data.objects which are not as nice and intuitive reference-able as curves:
>>> bpy.data.objects[3].rotation_euler=(radians(90),0,radians(90))
>>> bpy.data.objects[3].name
'Curve.002'

What is the best approach to rotate a curve in blender 2.77 with Python?

I am not much into programming at all, but rotating curves in object mode would be the correct way to do it. Not only is it impossible to rotate 2D curves in three dimensions in edit mode (because well they are 2D) it is also not desirable, since they will lose they 2D properties like being closed and capped and cleanly extrudable. Also maintaining them as actual curve objects as long as possible and not converting them to mesh is also preferable because converting to mesh is a destructive one way process.

Actually this should work, alternatively you can try: bpy.data.objects['BezierCurveName'].rotation_euler.

Test script to import the blender.svg file.
As pointed out here  the newly added curves are not selected after the import.  For convenience added an empty parent.
import bpy
context = bpy.context
scene = context.scene
bpy.ops.object.select_all(action='SELECT')
bpy.ops.import_curve.svg(filepath = bpy.app.binary_path.replace(".exe", "") + ".svg")
newcurves = [c for c in context.scene.objects if not c.select]
# deselect all
bpy.ops.object.select_all(action='DESELECT')
# create an empty make it the active  object
empty = bpy.data.objects.new("Holder", None) # use filename maybe
scene.objects.link(empty)
scene.objects.active = empty
empty.select = True
# loop thru the curve objects
for c in newcurves:
    print("Curve: %s", c.name)
    # make it selected
    c.select = True
    # make the parent the empty if not already set
    if not c.parent:
        c.parent = empty
    # change some curve details
    curve = c.data
    curve.dimensions = '2D'
    curve.extrude = 0.003
    # sane object names
    c.name = curve.name
    # location
    #c.location.x += 0.332

empty.scale *= 200

Test on svg

If you are going to move and rotate append a call to geometry to origin operator.
bpy.ops.object.origin_set(type='GEOMETRY_ORIGIN', center='BOUNDS')

Thanks a lot! Now I can proceed with animation. You're very welcome to answer possible future questions on that as well :-)

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


text:
How to update PBR textures in python [Blender 2.8]?
I have trillions of PBR textures in a folder. Each group of PBR textures (colormap, normal, etc...) are in their own folder.
I want to write a python script in Blender that will set up a PBR texture on a standard sphere, render it, and then set up the next PBR etc...
So I am basically trying to create a catalogue of renders for the textures. This way I can easily understand how does a texture look like on a model.
Currently I can dress the PBR setup to the model. I use bpy.ops.node.nw_add_textures_for_principled() for the setup. It is a command from the Node Wrangler.
But after that, the context changes so the code throws an error when it tries to delete the existing setup (and to add a new setup thereafter). I shared the .blend file.
How can I approach to this problem? How can I reset the context in a way that the code will be able loop through all the PBR textures? Thanks.
My code snippet. Below you can see the functions I am having problems with, and the specific line where it throws the error.
import bpy
import os

# return folders of different texture sites (aka parent dir)
def returnFolders(folder='/home/USERNAME/all_textures/'):
    return  [folder+'/'+i if i[-3:] != '.py' else '' for i in os.listdir(folder)]

# return folder names for each PBR setup (given the parent dir)
def returnTextureFolders(folder=returnFolders()[0]):
    return [folder+'/'+i if i != 'zips' else '' for i in os.listdir(folder)]

# return each texture (given the folders of textures)
def returnTextures(folder=returnTextureFolders()[0]):
    return [texture for texture in os.listdir(folder) if texture[-3:].upper() == 'png'.upper() or texture[-3:].upper() == 'jpg'.upper()]

# I am having problem here
def applyPBR(textures=returnTextures(), mydirectory=returnTextureFolders()[0]):
    bpy.context.area.type = 'NODE_EDITOR'
    bpy.ops.node.nw_add_textures_for_principled(filepath="//../../all_textures/exampletextures.com/" + mydirectory+ "/PBR_TESTER.blend", directory=mydirectory+'/', files=[{"name":texture} for texture in textures], relative_path=True)

# and problem here
def deletePBR():
    bpy.context.area.type = 'NODE_EDITOR'
    bpy.ops.node.delete()
    bpy.ops.node.select(wait_to_deselect_others=True, mouse_x=428, mouse_y=279, extend=False, deselect_all=True)

for c, textureFolder in enumerate(returnTextureFolders()):
    if c < 10: # take first 10 texture_folders from the folder of textures
        applyPBR(returnTextures(textureFolder), textureFolder)

    bpy.ops.wm.redraw_timer(type='DRAW_WIN_SWAP', iterations=1) # update the UI
    time.sleep(1) # observe for a second
    deletePBR() ## THROWS AN ERROR HERE (context error)

My workaround solution proposal:

Set up the PBR setup manually.
Using a script, change the source of the image texture nodes in a loop.

Any better ideas? The function I am using automagically understands which texture is color map, specular map... etc. I don't like the idea of making effort to reinvent that magic. There should be an easier way maybe.

Hi, thanks for the comment. Snippet added.

My workaround solution proposal: (1) set up the PBR setup manually. (2) change the source of the image texture nodes in the script.
Any better ideas? The function I am using automagically understand which texture is colormap, specular map... etc... I don't like the idea of making effort to reinvent that magic. There should be an easier way... maybe.


text:
Lamps appearing on particles
I'm using blender 2.8 and i have a scene with a donut with sprinkles for which i used the particles function. But when i try to add any object, every single sprinkle gets equipped with the same object, when i try to delete them, sprinkles disappear too. I'm guessing, it might have something to do with the weight paint i used for the sprinkles. You can check the file here:
https://drive.google.com/drive/folders/16M--sEhafyabL10aAXjqivKVprbfprCW

is the lamp being parented to the particle object?

No, it happens when i add a completely new lamp, without any connections or parenting

Welcome, Łukasz Siudmak. You can send the file for analysis using this link. https://blend-exchange.giantcowfilms.com/

Also, it's better you say what Blender version you're using.

I'm using blender 2.8

I managed to upload it to Google Drive, so here's a link:
https://drive.google.com/drive/folders/16M--sEhafyabL10aAXjqivKVprbfprCW?usp=sharing

Take a look at this image from your particle system:
Your are telling Blender to Render everything that is inside Collection 2 as particles, so every new object that you put inside the Collection 2, will be part of the particles. Just move the lamps to a different collection and you will be good to go.

Good Luck


text:
My textures in my render look different than in the preview render 2.8 (Solved

I don't know why my render looks different than in the preview. Got any help?
edit: I fixed it, some guy gave me some pointers and figured it out
https://drive.google.com/drive/folders/1csDJXr-VCrQtxWk7Uk73j0PG8rpHDld4?usp=sharing

Hey, it looks like you forgot to pack your textures with the .blend file. Without them, it's all just pink. I think your issue might have to do with transparency, but I can't check. Would you mind packing the textures and uploading again?

I packed the textures now.

I sent an access request.

Oh I just forgot to set it to not restricted


text:
Video Sequence not fully loading in video editor
When I drag the video file down from the files window, it brings in the video sequence and the audio with it, however, while all the audio loads in, the whole video wont, only about 80% ish of it would show in sequencer and there is more to load in because I watch the unedited footage and its right there. But it wont load into sequencer, I have tried hard cutting and deleting parts of the video sequence in case the amount was an issue, one small addition is the video is longer than the max amount of frames available for blender in the first place but this has never been an issue before as I have edited similar length videos as well.

The issue would be that the video is using a codec that blender can't decode. Can you get what codec is used by the video? What OS and blender version?

Codec is H.264 - NVENC (VBR), Windows 10, and Blender 2.77 I think, but why would codec restrict or stop the rest of the video sequence loading in, its pretty much only like another 20 mins missing, the rest loads in fine.

I thought none of the video was loading so expected a codec blender couldn't read.

It could be that Blender can't understand well video and audio frame rate so video and audio strip have different lengths, that happened in the past to me. But I can't understand how you could end with some missing part of a track... how long is your video, and what its fps?

The video is 03:11:00 (3 hours and 11 mins) long and is recorded at 30 fps, another minor detail which I didn't mention for some reason is that it is a game recording on screen, previous videos that I have edited have been just as long and have been recordings of gamming sessions and I have had no issues, the videos previously loading in completely but outside of the frame range, fro which I hard cut and deleted segments to make more room. But that isn't the case this time since the whole video isn't loading in.

A possible workaround might be to use FFmpeg to convert it to frames or chop it into smaller pieces.

I'm afraid FFmpeg is way outside of my area of expertise so I would really prefer another option, I have also just attempted to now load in another video file, recorded from another gaming session and I'm am still seeing the same problem. :(

After investigating, I have also now noticed that the first video is actually 26fps and the second one which I have started to edit is 20fps, despite the fact that I set it to record at 30fps, this was most likely due to performance issues overall as the gaming sesh was low fps from the start. But does the initial fps of the video have an effect when dragging the video file down to the sequence section, like translation issues etc... Its really starting to annoy me now. Please HELP.

I faced the same issue just now. You should use ffmpeg to re-encode the video, specifying a bitrate and forcing frames to be duplicated. This worked for me:
ffmpeg -i input.mp4 -c:v libx264 -preset ultrafast -crf 0 -c:a copy -r 30 -vsync cfr output.mp4

This will generate a huge file because it's not compressing the video at all; if space is an issue, you can play with the -cfr parameter, bringing it to 20 or so (higher numbers mean more compression).

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


text:
How to deform a 2d shape to make a 3d object?
I have a 2d flat mesh that i would like to manipulate without any distortion to create a 3D shape. Typically for the pie below, joining the 2 edges together would make a 3D cone. Do you have any idea of which modifier to use ?

I don't understand what result do you expect. Could you provide screenshot with something similar to your expectation?

Sorry it was not very clear :) I added an illustration on how we do this manipulation with a real piece of paper, hope it helps understanding

There is no modifier that magically turns 2D shapes into 3D objects. How should Blender know, what you are expecting the object to look like? Why don't you do it the other way round? Maybe you could add a little more information about what exactly you want achieve?

What i have been thinking is that if you constraint one of the edges not to move and the other being able to move towards it, then all the other vertices of the mesh would follow in such a way that the mesh faces would not be distorded. This will force the cone to take shape

You can use  proportional editing to make vertices follow your selection as you move it, but it still wouldn't make the shape 3D. It's not really clear what you want to achieve... Why do you want to make a cone from the flat shape when you can just simply add a cone to the scene and give it the size you want?

The proportional editing would distord my mesh, wouldn't it ? I am sorry i am fairly new to blender... Actually i am not interested in creating cones but the physic simulation behind this operation and if it could be done in blender. Would the armature modifier or the laplacian deform modifier be useful here ?

@Duane OK, I can see the point now :) But to do that animation, you'd still need both the dimensions of the flat piece of paper and the dimensions of the final cone. It seems easier to start from a cone and make it flat than to start from a flat piece.

Managed to approximate this with Shape Keys, starting out with a cone, it's easier than starting out with a flat shape and bending it into your will.

Add a cone mesh with whatever final dimensions you want it to have
Move it in edit mode so it's center is on the center of the base (not mid height)
Erase the left part and the bottom face and then add a Mirror modifier

Add two new shape keys one is the base as it currently is, and another (Key 1) will be it's flat shape.
Now some math, in edit mode check the length of one of the cone large side edges with the 3D view > Properties Region > Mesh Display > Length that will determine the radius of the final flat shape
Add a new mesh circle object, it's radius should be the length of the previously measured edge, and it the number radius vertices should be 1 1/4 the number of vertices of the cone. So if by default a cone has 32 vertex so the circle should have 1.25 x 32 = 40 vertices.
Erase one quarter of the circle's edges so that they are centered around the edge you ripped in Step 3

Now with shape Key 1 selected enter edit mode on the cone, move the central vertex down until it is flat
Scale all the vertex in the cone base so that they reach the circle radius (use snap for better precision)

Press .(Period Key) to transform centered in 3D Cursor
Hide all the cone vertex but the outer rim of the base, including the vertex at X=0
With Proportional Edit set to Connected and the Fallof type set to Linear, select only the lower vertex and rotate them all 1/8 of a turn, so they snap to the open end of the circle. Adjust the Proportional Edit radius with the mouse wheel.

13.Profit! (Adjust progression with the shapekey Value Slider)

You may then give it a more natural or organic looking transition with some modifiers or with manually bending the shape a little with more shapekeys

Using a script to make the two shape keys.  Change the r and h of result cone.

Example of radius 1, height 2, 1 and 0.5 cones.
import bpy
import bmesh
from mathutils import Vector
from math import radians, sin, cos, sqrt

from bpy import context # for testing

r = 1 # radius of cone
h = 1 # height of cone
sectors = 16
l = sqrt(r**2 + h**2) # hypotenuse
# sector will have angle

theta = radians(360) * r / l
dtheta = theta / sectors

# build the base

bm = bmesh.new()

verts = []
for i in range(sectors + 1):
    a = i * dtheta
    verts.append(bm.verts.new((l * cos(a), l * sin(a), 0)))

topvert = bm.verts.new((0, 0, 0))
for i in range(sectors):
    bm.faces.new([verts[i + 1], topvert, verts[i]])

cone_mesh = bpy.data.meshes.new("Cone")
cone = bpy.data.objects.new("Cone", cone_mesh)
bm.to_mesh(cone_mesh)

# add base as basis shape key
basis_shape_key = cone.shape_key_add("Basis")

# add second shape key

cone_shape_key = cone.shape_key_add("Cone")
offset = (radians(360) - theta) / 2
dtheta = radians(360) / sectors
for v in verts:
    a = v.index * dtheta - offset
    cone_shape_key.data[v.index].co = ((r * cos(a), r * sin(a), 0))
cone_shape_key.data[topvert.index].co = (0, 0, h)

# link to scene

scene = context.scene
scene.objects.link(cone)
scene.objects.active = cone
cone.select = True


text:
Simple infinite terrain concept BGE, HUGE drop in frame rate on spawned land
The idea is to make an endless, possibly randomised,terrain for the player to explore (Modified from a concept found on Blendswap). Right now, I have it set up so that as the player walks toward the edge of a piece of land, then a new piece will spawn in front of them. This works fine. The only problem is there is a huge drop in framerate whenever the player walks onto a spawned landmass, and this is a big problem. Any ideas why this could be? I've included some screencaps with the fps breakdown. Let me know if there is more info I can give that might be helpful. Thanks!
Frame rate screenshots on original and spawned landmasses

I actually solved my own problem. I had never used the near sensor to spawn an object before so I didn't realise it will constantly spawn a new object every time you move within the sensor's range. So, I simply added an "end object" actuator to the empty below the "add object(landmass)" actuator. This ensures a landmass will only ever spawn once and not spawn again if the player returns to the area.
If anyone is wondering what method I used for the spawn setup: I have each square landmass in a second layer with 3 empties on every side except for one (the one "player"[property] just came from) with a distance 1.5x the landmass width from the center of said landmass. I then simply have each empty rotate the correct 90 degree interval to spawn the new landmass in the correct orientation.

I recommend to use a plane (with physics type sensor) to detect when reaching he border. This is much more efficient than near sensors.


text:
Strange small dark areas on the surface
I exported a plot of 3d surface from Maple to .x3d file, then used Meshlab to create from it a .stl file. And finally I tried to use "Solidify" tool of Blender to make the surface 0.02 thick. Here's what I got:

Is this normal view? I mean do a lot of small dark areas look normal, provided that the original surface is smooth? If not, then how can I correct it.
It seems, that recalculating normals solved the problem! Here's what it looked like after it.

Those aren't normal; probably flipped normals seen through because of z-fighting. Include a screenshot of the mesh before solidifying. Related - http://blender.stackexchange.com/questions/5441/cause-of-black-artifacts-in-render

This is most likely caused by incorrect normals. In order to correct this, go into edit mode, select all the faces, and click on Shading->Normals->Recalculate.

Thank you, it seems, this solved the problem. I included image of the result in my first message.

If this solved your problem, please accept / upvote the answer.  I'm glad I could help.

I accepted it, but upvoting doesn't work, because I have reputation less than 15...

@AndreiPetrov - also be sure to hit "W" and then "A" in edit mode and select "Remove Doubles".

authors: Дарья Романова


text:
Black areas on textured model, that are not on the texture image?
I have a model of a character, I have been texturing the clothing objects and all was fine. However, when I came to creating  texture image for the skin of the model there were weird black shadows on the arms in the texture view.
I baked the model to create the image and there isn't a black area on the texture image [See Below]
[[1. Image of the problem]
The bake was done using no light source only the light of the world colour and I have already checked things like normals on the model and they are fine.
[][2.Normals]
Here are the normals, I think they are fine.
Can anyone have a solution for this? the texture seems fine so I'm confused with this.
thanks in advance.

are mesh normals all pointing outside?

Yes, I'd already checked that, cause that's what I'd thought the problem was too.

Could be accidental Vertex paint?

Thanks to Alphisto, the problem was in vertex paint, to fix it you need to add to the black area of the model in vertex paint.


text:
when I enable hair dynamics hair explodes
whenever I try to enable hair dynamics the hair explodes, I tried to mess with hair dynamics options, but it doesn't really make any difference, I also baked the hair but it didn't matter, I want to make hair moves with wind but dynamics won't help me, it doesn't have anything with wind It's all about hair dynamics, could anyone help ?
here's the project link: https://drive.google.com/file/d/1xII_q6vWS8JP3StsEEPClW2azAUoB4yg/view?usp=sharing
here's it at first

and here after I play the animation

I'm no expert for hair and I really couldn't find a setting to change so that it behaves normal. The only thing I could do was delete the edit and then I combed the hair again to give it a new edit. After that it worked fine. So there seems to be something wrong with the particle edit.

yep I did as you said, I deleted the hair and did it again


text:
Why is not texture material show on one wall but is on another?
I have wall with wood assigned , on another wall Im doing same but it looks like .

please edit your message so that the pictures are displayed inside. Either use the editor's image insertion tool, or use the markdown code ![description](link).

No proper UV unwrap on object 2


text:
Blender 3.0 - A.N.T. Landscape add-on: Erosion is not generating vertex groups
Expectedly, when I create a landscape with A.N.T. add-on then click the Landscape Eroder button, there should be vertex groups generated automatically and listed on the right side.
But when I click the Landscape Eroder there is an error occured and no vertex group generated. What did I do wrong?
what it should be looked like (2.93 version):

my version(3.0 version):

With just a quick look-see I would agree that this appears to be dysfunctional in v3.x.  I suggest you use the Help menu to Report A Bug, and for now you'll have to continue to use the older blender version with this Add-On.

Thank you very much!

This is currently broken, with a fix incoming. For a quick workaround, you can apply the fix provided here.


text:
How to turn on snap, how to enter global xyz-values for origin points and 3d-cursor and more
I'm new to Blender but used to work in Softimage and Maya for many years. I have a few questions:

Is there a way to turn on snapping, so that when I move my selection it will keep snapping to whatever comes close to what I have selected (fx the grid or vertices on an object)?
Can I enter numerical values for global position for origin points and 3d-cursor?
Can the 3d-cursor snap to the grid, vertices etc.?
Can I adjust things like an objects resolution (fx the number of segments and rings on a sphere) at a later point, or are they lost, once the object is created? Ps. I am familiar with the box that pops up, when an object is created, but it disappears again, and there doesn't seem to be a way to get it back later on.
Feature request: It would be nice to be able to enter the number of subdivisions on a plane and a cube upon creation, like you can for fx a sphere. Ps. I am familiar with the 'Loop Cut'-feature.

Please only ask one question at a time in future. That makes it much easier for subsequent users of this forum to search for answers. I'll just answer your first point below.

Incidentally there are no Blender developers here so this is not the place to ask for feature requests. The correct place is the Right-Click Select web site.

Snapping
Snapping feature is accessible from the top middle menu in the 3D viewport, as shown in the screenshot below.

the magnet button toggles snapping on an off.
the drop down button next to it lets you configure snapping behaviour.

Setting position of 3D cursor
This can be done under the View tab in 3D viewport.

Snapping the 3D cursor
Shift + S keyboard opens a pie menu with options to snap the 3D cursor.
To snap to an object: Select an object, or a vertex, edge or face in edit mode, then choose Cursor to selected in the pie menu.
To snap to the grid: Shift + Right-click next to the grid point on which you would like to snap the cursor to. This places the 3D cursor next to it. Then in the pie menu, select Cursor to grid option.

Thanks a lot for a quick and very useful answer. That was a big help :-)


text:
Proper settings of the brush in weight pane mode
I am trying to paint some parts with zero weight with "draw" mode in blue colour.
The problem is that the brush does not catch some parts of the mesh, and they move.
In the example - I try to rotate the right hand, and some parts of the hat (on the head) also are moving - I cant paint them in blue.
What settings shall I do for the brush, so that to be able to paint these parts in blue (zero weight)? I have already tried a couple of settings of the brush - sphere, projected and others - but without results.

If you want to remove bone influence, it's far easier to select the verts and remove from the vertex group:

If I click that Remove button, it will remove all influence from "body" for all vertices that I have selected.
In terms of the explicit question, you want settings like this to have super-duper subtract effectiveness:

Advanced/Front faces disabled lets it paint through the mesh.  Constant falloff curve prevents it from affecting less at the edge of the brush.  Disabling falloff/front-face falloff prevents it from painting less when painting at an angle to the mesh.  Project falloff shape makes it paint a cone/cylinder from the camera to the brush and past, instead of a sphere on the nearest surface to the brush.

I understand what's the Falloff shape means at last. I wonder why when you paint with a Strength of 0, the vertices are not removed from the group and they will still be displayed as blue, instead of considering a Strength of 0 as a Remove action

Nathan, many thanks for the detailed answer. Now with these settings of the brush, it is much better than before. Still is difficult sometimes to paint some parts of the mesh ( or remove weights), the brush does not catch them the first time, and there is a result if I rotate the object, to paint it from another angle.


text:
How to Export a Single .fbx animation (w/ workflow to Unreal UE4/5)
How do I export a single animation in Blender in .fbx format?
I have a model with a bunch of mesh+rig+animations+blendspaces, but just want the single animation to be exported not the whole setup.
So I was facing huge export (45 + mins) and import times (to UE5)(45 + mins) of a .fbx file in Blender 2.7->3.0,
[Context: Hardware - AMD 5950x + GeForce 3090, Model - 100,000 vertices + 10 Materials, Blender 3.0 -> UE4/5 workflow]
As I was exporting the whole mesh+rig+animations+blendspaces...
This guide (+ alittle help from a friend)helped me figure this out:
https://answers.unrealengine.com/questions/603212/how-to-import-single-animation-made-in-blender.html
it has all the info there, albeit alittle messy IMO, so i thought i would try to say it succinctly.
I hope this helps me remember and maybe someone out there.

i think this tutorial is what you are looking for
its made in Blender 4.1 https://www.youtube.com/watch?v=ijZgJam92qc hope it solves your problem

Lets start fresh.
Object Mode(But you can be in Pose or whatever). Select nothing.
Open up both the non linear editor, and the dopesheet-actioneditor:
Select the animation in the action_editor,

(on the DopeSheet make sure that all other NLA Rows are NOT selected by the checkbox.)

Press the "Push Down Action" Button.
(If you are making multiple animations in one session, make sure that the you always make a new animation, or that your NLA Row is always at the the top of the currently selected rig's rows, as it appears to take the top of the stack.)

You should see see only just the animation that you want, and the rig selected in the NLA window.
Don't need anything selected in the "Viewport", or in the "Outline tree Hierarchy".
File->Export->.fbx
Pick these settings:

(Scale & transform * bone alignment to your specifics, this is not a guide for that)
(Make sure that "All Actions", and "NLA Strip" are unchecked!!
Export.
For Unreal UE4/5 workflow.
Make sure that you select your skeleton is selected in the import options, and I used default animation settings, no other import settings are applicable to this workflow guide.
Import.


text:
Importing Agisoft Models Into Blender
I'm learning Blender and thought I would try importing some of the models I've created in Agisoft into Blender, however I'm running into an issue, nothing shows up.
I'm exporting the models from Agisoft as an OBJ with a matching texture file, I've tried both real world coords and local. It is loading as I can see it in the scene collection but I'm not sure what I'm doing wrong to make it visible or what I need to do further, any ideas?. Is there a better method to data from Agisoft? Below is a screenshot, thanks in advance!

It's likely to be a scale issue.  Type "A" to select everything. If you have a number bad, hit the period key on the number pad. If not type SHIFT-C on the keyboard.  Does your object show up?

Thanks for the response! When I type in Shift-C the view zooms into what for the lack of a better term is an orange lollipop, I'm too new to blender to know what it is, but it's not the model. It seems I can't add photos here, I'll try to add another screenshot to the original post.

If the object is too small and the camera/viewport is too close to the object, viewport/camera clipping might be occuring. Check out the View tab or Camera properties and trying reducing the min clipping distance.

Thanks for the help Bruno, I tried adjusting the clipping distances, no luck. The model is over 8 Ha., and 500,000Mb in size, could file size be an issue? I thought originally it might be projection but WGS84, local coords and UTM all behave the same. I'm doing something wrong but not sure what!

The problem appears to be associated with the texture file, if I select the OBJ by itself and then select Frame Selected I zoom right to it, doing the same thing with the texture file sends me elsewhere. I'll have to see how I'm exporting the texture file to see what is wrong with it.


text:
Texture Look messy
Apparently my Texture look a bit weird where some of the faces have diffrent output than the other one here's an example

as you can see that on the right its correct but on the left it was like only straight line. its not only happening on that part, other faces also has the same issues like that. can anyone tell what is the main problem Thank you.
UV Texture that i use :

UV map :

Hard to tell, how does your UVs look like?

there, i upload the photo of the texture

could you please pack the texture and share your file?

https://drive.google.com/file/d/18mUs-YEemSiiXs4Q-vKEGuEnygihw8-5/view?usp=sharing

Sorry I can only see a flat plane and a sphere, you must have made a mistake

Please share the object that is badly textured

hi, i send the file to your gmail already your gmail  clement.perrotte@gmail.com is that right ?

you can just reply it back to my Email that way it much better

As you can see if you select a face with the stretched texture, its UV is just a collapsed face:

So you need to unwrap this face again, or select all and choose the Cube Projection unwrap mode, which works fine with this kind of rectangular object.