1 #!/usr/bin/env python
\r
7 PMDEditor's Lib/PMX仕様/PMX仕様.txt
\r
9 __author__="ousttrue"
\r
11 __versioon__="1.0.0"
\r
17 from pymeshio import common
\r
30 def __init__(self, target_index, loop, limit_radian):
\r
31 self.target_index=target_index
\r
33 self.limit_radian=limit_radian
\r
37 class IkLink(object):
\r
46 def __init__(self, bone_index, limit_angle):
\r
47 self.bone_index=bone_index
\r
48 self.limit_angle=limit_angle
\r
79 position: common.Vector3,
\r
85 self.english_name=english_name
\r
86 self.position=position
\r
87 self.parent_index=parent_index
\r
91 def getConnectionFlag(self) -> int:
\r
92 return self.flag & 0x0001
\r
94 def getIkFlag(self) -> int:
\r
95 return (self.flag & 0x0020) >> 5
\r
97 def getRotationFlag(self) -> int:
\r
98 return (self.flag & 0x0100) >> 8
\r
100 def getTranslationFlag(self) -> int:
\r
101 return (self.flag & 0x0200) >> 9
\r
103 def getFixedAxisFlag(self) -> int:
\r
104 return (self.flag & 0x0400) >> 10
\r
106 def getLocalCoordinateFlag(self) -> int:
\r
107 return (self.flag & 0x0800) >> 11
\r
109 def getExternalParentDeformFlag(self) -> int:
\r
110 return (self.flag & 0x2000) >> 13
\r
113 class Material(object):
\r
116 Attributes: see __init__
\r
130 'sphia_texture_index',
\r
132 'toon_sharing_flag',
\r
133 'toon_texture_index',
\r
140 diffuse_color: common.RGB,
\r
141 diffuse_alpha: float,
\r
142 specular_color: common.RGB,
\r
143 specular_factor: float,
\r
144 ambient_color: common.RGB,
\r
146 edge_color: common.RGBA,
\r
148 texture_index: int,
\r
149 sphia_texture_index: int,
\r
151 toon_sharing_flag: int
\r
154 self.english_name=english_name
\r
155 self.diffuse_color=diffuse_color
\r
156 self.diffuse_alpha=diffuse_alpha
\r
157 self.specular_color=specular_color
\r
158 self.specular_factor=specular_factor
\r
159 self.ambient_color=ambient_color
\r
161 self.edge_color=edge_color
\r
162 self.edge_size=edge_size
\r
163 self.texture_index=texture_index
\r
164 self.sphia_texture_index=sphia_texture_index
\r
165 self.sphia_mode=sphia_mode
\r
166 self.toon_sharing_flag=toon_sharing_flag
\r
168 self.toon_texture_index=None
\r
173 class Deform(object):
\r
177 class Bdef1(object):
\r
178 """bone deform. use a weight
\r
180 Attributes: see __init__
\r
182 __slots__=[ 'bone_index']
\r
183 def __init__(self, bone_index: int):
\r
184 self.bone_index=bone_index
\r
187 class Bdef2(object):
\r
188 """bone deform. use two weights
\r
190 Attributes: see __init__
\r
192 __slots__=[ 'index0', 'index1', 'weight0']
\r
193 def __init__(self,
\r
199 self.weight0=weight0
\r
202 class Vertex(object):
\r
205 Attributes: see __init__
\r
207 __slots__=[ 'position', 'normal', 'uv', 'deform', 'edge_factor' ]
\r
208 def __init__(self,
\r
209 position: common.Vector3,
\r
210 normal: common.Vector3,
\r
211 uv: common.Vector2,
\r
213 edge_factor: float):
\r
214 self.position=position
\r
218 self.edge_factor=edge_factor
\r
221 class Model(object):
\r
222 """pmx data representation
\r
225 version: pmx version(expected 2.0)
\r
236 'version', # pmx version
\r
237 'name', # model name
\r
238 'english_name', # model name in english
\r
239 'comment', # model comment
\r
240 'english_comment', # model comment in english
\r
247 def __init__(self):
\r
250 self.english_name=''
\r
252 self.english_comment=''
\r