PMD Exportで(親の無いボーン情報書き込みに)失敗する
Blender 2.60a + pymeshio-2.3.2、あにまさ式ミクver1.3ほかで現象を確認しました。
1) PMD Exportで失敗する。System Consoleでは下記のエラーが表示される。
(write_bones() -> write_uint(b.parent_index, 2) 経由で) struct.error: ushort format requires 0 <= number <= USHRT_MAX
2) 1)対処後、PMD exportされたデータを読み込んでも表情が登録されていない。 PMDEditor1.00だと「表情枠リストの更新に失敗しました」という警告が出て 表情・表情枠が空になる。PMDEditor 1.30cやpymeshioでも表情が空になる。
pymeshio 1.9.0 + Blender 2.59で出力したPMDでは表情を正常に読み込めるので、 その後動作が変わったと考えられる。 0xFFFF変換をpmd/write.pyのみに限定しても2)の現象は変わらず。
P.S. PMX Exportも期待していマス。
ご報告ありがとうございます。
* unsigned byte/short/intを書き込むときに-1値を255/65535/4294967295に変換するようにしました(2.4.1)。
* morphが空になる問題修正しました(2.4.2)。pmd-2.x.xにするときにソースを整理したときに作業をミスっておりました。申し訳ないです。
Blender 2.60a + pymeshio-2.3.2、あにまさ式ミクver1.3ほかで現象を確認しました。
1) PMD Exportで失敗する。System Consoleでは下記のエラーが表示される。
親ボーンの無いボーンではcommon.pyのwrite_uint()に-1を指定しておりエラーとなっている。 -1のとき0xFFFFに変換し書き出すことで対処できた。2) 1)対処後、PMD exportされたデータを読み込んでも表情が登録されていない。 PMDEditor1.00だと「表情枠リストの更新に失敗しました」という警告が出て 表情・表情枠が空になる。PMDEditor 1.30cやpymeshioでも表情が空になる。
pymeshio 1.9.0 + Blender 2.59で出力したPMDでは表情を正常に読み込めるので、 その後動作が変わったと考えられる。 0xFFFF変換をpmd/write.pyのみに限定しても2)の現象は変わらず。
P.S. PMX Exportも期待していマス。