in common/utils/mesh.py [0:0]
def load_skinning_weight(self, skinning_weight_path):
# load skinning_weight of mesh
self.skinning_weight = np.zeros((len(self.v),len(self.skeleton)), dtype=np.float32)
self.segmentation = np.zeros((len(self.v)), dtype=np.float32)
with open(skinning_weight_path) as fp:
for line in fp:
if line[0] == '#': continue
splitted = line.split(' ')[:-1]
vertex_idx = int(splitted[0])
for i in range(0,len(splitted)-1,2):
joint_name = splitted[1+i]
joint_idx = [idx for idx,_ in enumerate(self.skeleton) if _['name'] == joint_name][0]
weight = float(splitted[1+(i+1)])
self.skinning_weight[vertex_idx][joint_idx] = weight
self.segmentation[vertex_idx] = np.argmax(self.skinning_weight[vertex_idx])