[Bf-extensions-cvs] [7bdf9eb] fbx_io_development: FBX export: add vgroups support for shapes.

Bastien Montagne noreply at git.blender.org
Mon Jun 16 15:57:27 CEST 2014


Commit: 7bdf9eb02cbd97bf215eb421284a84a8c4ee4d46
Author: Bastien Montagne
Date:   Mon Jun 16 15:55:32 2014 +0200
https://developer.blender.org/rBA7bdf9eb02cbd97bf215eb421284a84a8c4ee4d46

FBX export: add vgroups support for shapes.

Note since Unity does not support that (it does not use/read deformers system for vgroups),
I'm not sure it's done right, will have to wait for others to test on 'official'
FBX products...

===================================================================

M	io_scene_fbx/export_fbx_bin.py

===================================================================

diff --git a/io_scene_fbx/export_fbx_bin.py b/io_scene_fbx/export_fbx_bin.py
index 8c804ba..ceaa31e 100644
--- a/io_scene_fbx/export_fbx_bin.py
+++ b/io_scene_fbx/export_fbx_bin.py
@@ -716,7 +716,16 @@ def fbx_data_mesh_shapes_elements(root, me_obj, me, scene_data, fbx_me_tmpl, fbx
     channels = []
 
     for shape, (channel_key, geom_key, shape_verts_co, shape_verts_idx) in shapes.items():
-        shape_verts_weights = [100.0] * (len(shape_verts_co) // 3)  # for now, we can use vgroup later here!
+        # Use vgroups as weights, if defined.
+        if shape.vertex_group and shape.vertex_group in me_obj.bdata.vertex_groups:
+            shape_verts_weights = [0.0] * (len(shape_verts_co) // 3)
+            vg_idx = me_obj.bdata.vertex_groups[shape.vertex_group].index
+            for sk_idx, v_idx in enumerate(shape_verts_idx):
+                for vg in me.vertices[v_idx].groups:
+                    if vg.group == vg_idx:
+                        shape_verts_weights[sk_idx] = vg.weight * 100.0
+        else:
+            shape_verts_weights = [100.0] * (len(shape_verts_co) // 3)
         channels.append((channel_key, shape, shape_verts_weights))
 
         geom = elem_data_single_int64(root, b"Geometry", get_fbx_uuid_from_key(geom_key))



More information about the Bf-extensions-cvs mailing list