# bones
def get_panel(m):
return 1
- base=src.morphs[0]
- assert(base.name==b"base")
- dst.morphs=[
- pmx.Morph(
- name=m.name.decode('cp932'),
- english_name=m.english_name.decode('cp932'),
- panel=get_panel(m),
- morph_type=1,
- offsets=[pmx.VerexMorphOffset(base.indices[i], pos)
- for i, pos in zip(m.indices, m.pos_list)]
- )
- for i, m in enumerate(src.morphs) if m.name!=b"base"]
+ if len(src.morphs)>0:
+ base=src.morphs[0]
+ assert(base.name==b"base")
+ dst.morphs=[
+ pmx.Morph(
+ name=m.name.decode('cp932'),
+ english_name=m.english_name.decode('cp932'),
+ panel=get_panel(m),
+ morph_type=1,
+ offsets=[pmx.VertexMorphOffset(base.indices[i], pos)
+ for i, pos in zip(m.indices, m.pos_list)]
+ )
+ for i, m in enumerate(src.morphs) if m.name!=b"base"]
# display_slots
dst.display_slots=[
pmx.DisplaySlot(u('Root'), u('Root'), 1),
no_collision_group=r.no_collision_group,
shape_type=r.shape_type,
shape_size=r.shape_size,
- shape_position=r.shape_position,
+ shape_position=(r.shape_position+src.bones[0].pos if r.bone_index==-1
+ else r.shape_position+src.bones[r.bone_index].pos),
shape_rotation=r.shape_rotation,
mass=r.mass,
linear_damping=r.linear_damping,