X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=swig%2Fblender%2Fpmd_export.py;h=2e8703dd7875a56aada7ecbc6be74d4c429cfd46;hb=e3663cdfa9eba5b3809390cbc46516f50cb244bc;hp=c0e52cbe820490588817b1fa8359dcc5cbbb5cb9;hpb=52bfc6a430ecf210400efab83832eebb38820b58;p=meshio%2Fmeshio.git diff --git a/swig/blender/pmd_export.py b/swig/blender/pmd_export.py index c0e52cb..2e8703d 100644 --- a/swig/blender/pmd_export.py +++ b/swig/blender/pmd_export.py @@ -373,14 +373,13 @@ class OneSkinMesh(object): if bl.objectHasShapeKey(obj): # base for b in bl.objectShapeKeys(obj): - if b.name=='Basis': - print(b.name) + if b.name==BASE_SHAPE_NAME: baseMorph=self.__getOrCreateMorph('base', 0) relativeIndex=0 basis=b for index in bl.meshVertexGroup(obj, MMD_SHAPE_GROUP_NAME): - v=b.data[index] + v=bl.shapeKeyGet(b, index) pos=[v[0], v[1], v[2]] indices=self.vertexArray.getMappedIndices(index) for i in indices: @@ -390,29 +389,30 @@ class OneSkinMesh(object): break assert(basis) + print(basis.name, len(baseMorph.offsets)) if(len(baseMorph.offsets)>0): baseMorph.sort() # shape keys - vg=obj.getData(mesh=True).getVertsFromGroup( - MMD_SHAPE_GROUP_NAME) - for b in obj.getData(mesh=True).key.blocks: - if b.name=='Basis': + vg=bl.meshVertexGroup(obj, MMD_SHAPE_GROUP_NAME) + for b in bl.objectShapeKeys(obj): + if b.name==BASE_SHAPE_NAME: continue print(b.name) morph=self.__getOrCreateMorph(b.name, 4) for index, src, dst in zip( xrange(len(blenderMesh.verts)), - basis.data, - b.data): + bl.shapeKeys(basis), + bl.shapeKeys(b)): offset=[dst[0]-src[0], dst[1]-src[1], dst[2]-src[2]] + if offset[0]==0 and offset[1]==0 and offset[2]==0: + continue if index in vg: indices=self.vertexArray.getMappedIndices(index) for i in indices: morph.add(indexRelativeMap[i], offset) - assert(len(morph.offsets)==len(baseMorph.offsets)) # sort skinmap original=self.morphList[:] @@ -611,6 +611,7 @@ class PmdExporter(object): for node in object_node_map.values(): if node.o.parent: object_node_map[node.o.parent].children.append(node) + # ルートを得る root=object_node_map[scene.objects.active] @@ -718,13 +719,9 @@ class PmdExporter(object): assert(i