###############################################################################
# PMD
###############################################################################
-if sys.version_info[0]<3:
- def encode_string(src):
- t=type(src)
- if t==unicode:
- return src.encode('cp932')
- elif t==str:
- return src
- else:
- raise "INVALID str: %s" % t
-
-else:
- def encode_string(src):
- t=type(src)
- if t==str:
- return src
- elif t==bytes:
- return src.decode('cp932')
- else:
- raise "INVALID str: %s" % t
-
-
class Vertex(object):
__slots__=['pos', 'normal', 'uv', 'bone0', 'bone1', 'weight0', 'edge_flag']
def __init__(self, x=0, y=0, z=0, nx=0, ny=0, nz=0, u=0, v=0,
'diffuse', 'shinness', 'specular',
'ambient', 'vertex_count', '_texture', 'toon_index', 'flag',
]
- def getTexture(self): return self._texture
- def setTexture(self, texture): self._texture=encode_string(texture)
+ 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,
'children', '_english_name', 'ik_index',
'parent_index', 'tail_index', 'tail',
]
- def getName(self): return self._name
- def setName(self, name): self._name=encode_string(name)
+ 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 self._english_name
- def setEnglishName(self, english_name): self._english_name=encode_string(english_name)
+ 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):
class Skin(object):
__slots__=['_name', 'type', 'indices', 'pos_list', '_english_name',
'vertex_count']
- def getName(self): return self._name
- def setName(self, name): self._name=encode_string(name)
+ 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 self._english_name
- def setEnglishName(self, english_name): self._english_name=encode_string(english_name)
+ 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='skin'):
class BoneGroup(object):
__slots__=['_name', '_english_name']
- def getName(self): return self._name
- def setName(self, name): self._name=encode_string(name)
+ 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 self._english_name
- def setEnglishName(self, english_name): self._english_name=encode_string(english_name)
+ 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='group'): self._name=name; self._english_name='center'
'w', 'h', 'd', 'position', 'rotation', 'weight',
'linearDamping', 'angularDamping', 'restitution', 'friction', 'processType'
]
- def getName(self): return self._name
- def setName(self, name): self._name=encode_string(name)
+ def getName(self): return from_str(self._name)
+ def setName(self, name): self._name=to_str(name)
name=property(getName, setName)
def __init__(self, name):
'constraintRotMin', 'constraintRotMax',
'springPos', 'springRot',
]
- def getName(self): return self._name
- def setName(self, name): self._name=encode_string(name)
+ def getName(self): return from_str(self._name)
+ def setName(self, name): self._name=to_str(name)
name=property(getName, setName)
def __init__(self, name):
self._toon_textures.append('toon%02d.bmp' % (i+1))
def __getitem__(self, key):
- return self._toon_textures[key]
+ return from_str(self._toon_textures[key])
def __setitem__(self, key, value):
- self._toon_textures[key]=encode_string(value)
+ self._toon_textures[key]=to_str(value)
def __iter__(self):
- self
-
- def next(self):
for toon_texture in self._toon_textures:
- yield toon_texture
+ yield from_str(toon_texture)
class IO(object):
'no_parent_bones',
'rigidbodies', 'constraints',
]
- def getName(self): return self._name
- def setName(self, name): self._name=encode_string(name)
+ 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 self._english_name
- def setEnglishName(self, english_name): self._english_name=encode_string(english_name)
+ 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 getComment(self): return self._comment
- def setComment(self, comment): self._comment=encode_string(comment)
+ def getComment(self): return from_str(self._comment)
+ def setComment(self, comment): self._comment=to_str(comment)
comment=property(getComment, setComment)
- def getEnglishComment(self): return self._english_comment
- def setEnglishComment(self, english_comment): self._english_comment=encode_string(english_comment)
+ def getEnglishComment(self): return from_str(self._english_comment)
+ def setEnglishComment(self, english_comment): self._english_comment=to_str(english_comment)
english_comment=property(getEnglishComment, setEnglishComment)
def __init__(self):
if not io:
return False
# Header
- io.write(b"Pmd")
+ io.write(b"Pmd")
io.write(struct.pack("f", self.version))
io.write(struct.pack("20s", self.name))
io.write(struct.pack("256s", self.comment))
io.write(struct.pack("=20s", bone.english_name))
# english skin list
for skin in self.morph_list:
- print(skin.name)
+ #print(skin.name)
if skin.name==b'base':
continue
io.write(struct.pack("=20s", skin.english_name))
self._check_position()
# english skin list
for skin in self.morph_list:
- if skin.name=='base':
+ if skin.name==b'base':
continue
english_name=truncate_zero(
struct.unpack("20s", self.io.read(20))[0])