fork download
  1. import bpy
  2. import bmesh
  3.  
  4. obj = bpy.context.object
  5.  
  6. # マテリアル名と同名のfacemapを生成してマテリアルスロット番号->FaceMap番号を紐付ける
  7. mat_to_fm = {}
  8. for slot in obj.material_slots:
  9. mat = slot.material
  10. fm = obj.face_maps.get(mat.name)
  11. if fm is None:
  12. fm = obj.face_maps.new(name=mat.name)
  13. mat_to_fm[slot.slot_index] = fm.index
  14.  
  15. # 面に割り当てられているマテリアルスロット番号(material_index)をfacemapに反映
  16. bm = bmesh.new()
  17. bm.from_mesh(obj.data)
  18. fm = bm.faces.layers.face_map.verify()
  19. for face in bm.faces:
  20. face[fm] = mat_to_fm[face.material_index]
  21. bm.to_mesh(obj.data)
  22.  
Runtime error #stdin #stdout #stderr 0.06s 63884KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
Traceback (most recent call last):
  File "prog.py", line 1, in <module>
    import bpy
ImportError: No module named bpy