Untitled

 avatar
unknown
python
6 months ago
773 B
10
Indexable
import bpy
import bmesh

for o in bpy.context.selected_objects:
    msh = bmesh.new()
    msh.from_mesh(o.data)
    vertsWS = []
    for v in msh.verts:
        vws = o.matrix_world @ v.co
        vertsWS.append(vws)
    msh.free()
    
    arm = bpy.data.armatures[0]
    arm = bpy.data.objects[arm.name]
    b = None
    try:
        b = arm.pose.bones["Leg.L"]
    except:
        pass
    if b != None:
        m = arm.matrix_world @ b.matrix
        o.matrix_world = m
        
    msh = bmesh.new()
    msh.from_mesh(o.data)
    msh.verts.ensure_lookup_table()
    for i in range(len(vertsWS)):
        p = vertsWS[i]
        vws = o.matrix_world.inverted() @ p
        msh.verts[i].co = vws
    msh.to_mesh(o.data)
    msh.free()
    
Editor is loading...
Leave a Comment