X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=blender25-meshio%2Fpymeshio%2Fpmd.py;h=076fc11952131ad72d18d964d77eda5c08d55a60;hb=7c686cc000243203206007b2bcf5a45ca7dee025;hp=e42365ba6dc7f4bd2e7ed63e892f13b31268c959;hpb=7ca4dfdfa05f1c5ad77fc2cda45ae38390e7136d;p=meshio%2Fpymeshio.git diff --git a/blender25-meshio/pymeshio/pmd.py b/blender25-meshio/pymeshio/pmd.py index e42365b..076fc11 100644 --- a/blender25-meshio/pymeshio/pmd.py +++ b/blender25-meshio/pymeshio/pmd.py @@ -1,5 +1,6 @@ # coding: utf-8 import os +import sys import struct from .mmd import * @@ -35,8 +36,11 @@ class Vertex(object): class Material(object): __slots__=[ 'diffuse', 'shinness', 'specular', - 'ambient', 'vertex_count', 'texture', 'toon_index', 'flag', + 'ambient', 'vertex_count', '_texture', 'toon_index', 'flag', ] + def getTexture(self): return from_str(self._texture) + def setTexture(self, texture): self._texture=to_str(texture) + texture=property(getTexture, setTexture) def __init__(self, dr=0, dg=0, db=0, alpha=1, specular=0, sr=0, sg=0, sb=0, ar=0, ag=0, ab=0): @@ -55,15 +59,12 @@ class Material(object): self.diffuse[2], self.diffuse[3], ) - def getTexture(self): return self.texture.decode('cp932') - def setTexture(self, u): self.texture=u - # @return 各マテリアルについて、そのマテリアルが保持する面の回数だけ # マテリアル自身を返す def material_per_face(materials): for m in materials: - for x in xrange(int(m.vertex_count/3)): + for x in range(int(m.vertex_count/3)): yield m @@ -79,10 +80,17 @@ class Bone(object): # since v4.0 ROLLING=8 # ? TWEAK=9 - __slots__=['name', 'index', 'type', 'parent', 'ik', 'pos', - 'children', 'english_name', 'ik_index', + __slots__=['_name', 'index', 'type', 'parent', 'ik', 'pos', + 'children', '_english_name', 'ik_index', 'parent_index', 'tail_index', 'tail', ] + def getName(self): return from_str(self._name) + def setName(self, name): self._name=to_str(name) + name=property(getName, setName) + def getEnglishName(self): return from_str(self._english_name) + def setEnglishName(self, english_name): self._english_name=to_str(english_name) + english_name=property(getEnglishName, setEnglishName) + def __init__(self, name='bone', type=0): self.name=name self.index=0 @@ -96,10 +104,6 @@ class Bone(object): self.children=[] self.english_name='' - def getName(self): return self.name.decode('cp932') - def setName(self, u): self.name=u - def setEnglishName(self, u): self.english_name=u - def hasParent(self): return self.parent_index!=0xFFFF @@ -121,7 +125,7 @@ class Bone(object): print(uni.encode(ENCODING)) child_count=len(self.children) - for i in xrange(child_count): + for i in range(child_count): child=self.children[i] if i