ousttrue / pymeshio

3d model reader/writer for python
http://pypi.python.org/pypi/pymeshio/
92 stars 26 forks source link

BUG (export_pmd) : ik_index #4

Closed griffon-9 closed 12 years ago

griffon-9 commented 12 years ago

PMDへエクスポートされたボーンをPMDエディタ Ver.0.1.0.0で見ていたところ、IK影響下ボーンにおいて影響IKボーンの設定値が空になっていましたので、(どの程度意味があるのかは理解していないのですが)代表的なモデルデータと同じような値が入るようなコードを作成させていただきました。

diffの後半3行の部分については、代表的なPMD形式のモデルデータを観察したところ、「左つま先」の影響IKボーンが「左足IK」になっているようでしたので、その作法(?)に合わせるためにやっている処理です。 PMD形式のモデルデータでは基本的に親ボーンの方が子ボーンよりもIndexが小さいはずですので、親ボーンから影響IKボーンの設定値をコピーする処理を繰り返すことにより、設定値が子孫ボーンへ伝搬され結果的に「左つま先」に「左足IK」が影響IKボーンとして設定されるはずです。

ousttrue commented 12 years ago

初音ミクVer2.pmdで空だったのでそうなっているようです。 確認してみたいのでそうなっているモデルを教えてくださいませ。 入出力をなるべく一致させる方針なので、動き的に影響が無くても修正はしようと思います。

griffon-9 commented 12 years ago

お手数をおかけしております。

本件について、私はPMDエディタ 0.1.0.0と0.1.3.8を所持していますが、0.1.0.0を用いて下記のモデルデータを確認するとそのようになっています。バイナリエディタでファイル上どうなっているかを確認したわけではなく、あくまでPMDエディタがPMDファイルの生データを表示していると仮定しての話となります。

(注)Lat式は「左足首」の影響IKボーンが「左つま先IK」である点があにまさ式とは異なっているようですが・・・。

ただし、「初音ミク おやぶん式 Ver.1.22」について確認したところ、全てのIK影響下ボーンで影響IKボーンの設定は空でした。(影響IKボーンを入れておく、というのはあくまで推奨される「お作法」でしかないということかもしれないです。)

ちなみに、私の環境ではPMDエディタ 0.1.3.8をPMD編集モードで用いた場合は「親ボーン」と「子ボーン」以外の項目はマスクされており状態が分かりません。 新しいPMDエディタは内部がPMX用になっていると聞いたことがあるので、私はPMDファイルの確認には0.1.0.0を利用しています。

ousttrue commented 12 years ago

なるほど・・・。情報提供ありがとうございます。調べてみます。

ousttrue commented 12 years ago

上側だけいただきました。 残りは

ousttrue commented 12 years ago

むしろパッチの処理が適切でした。マージします。