2012年6月3日日曜日

ボーン処理順の経過

ボーン処理順不具合の件

このような親子関係を持つボーンがあったとして
IKボーン→IK子ボーン→IK子ボーンを付与親に持つボーン

処理順がこうなっていた場合
IK子ボーン→IK子ボーンを付与親に持つボーン→IKボーン

PMX仕様ではIKボーンの変化量がIK子ボーンを付与親に持つボーンに伝わることがないので動きません。
PMDE上でも動きません。

しかし、MMD、MMMではなにかしらの回避がされているため動きます。
そのため仕様外のモデルが作られてしまいます。

1.なんとなく動くものを作れる
2.不備を認識できない

簡単に利用できることが重視されるので対応としては1.でよいのでしょう。


で、なにかしらの回避とはなんなのか

最初はボーン変形の処理順を再配置しているのではと思ったのですが
やってみると影響が未知数でボツ

なので、
モーションデータからローカル変形を生成する処理を2周させることにしました。

2周ループ

 ボーン数分ループ
 {
   1.モーション
   2。IK
 }


こうなるので解決するわけです
IK子ボーン→IK子ボーンを付与親に持つボーン→IKボーン→IK子ボーン→IK子ボーンを付与親に持つボーン→IKボーン

負荷が増えるので最善ではないですが...

IK子ボーンを親・付与親にしているボーンの処理順が
IKボーンの処理順より早い場合のみ2周するようにすることで多少ましに...



積んでるタスク

1.3Dプログラミング基礎
高速化
物理演算
MMDと比べて重力の影響が大きいのはバージョンの違いなのか実装不具合なのか
ver2.8を入れてみる
並列化の検討 もっといい方法はないか
MMDXのエッジを見る
物理干渉マトリクス

2.ツイッターbot
MMDBotAgentのタイムラインからトレンド抽出
MMDBotSeigaの個人とお題を分けようかな
ごちゃごちゃして見難いし
俺得モデルフェス用のスタンドアロンクローラーマイリスとクリップ

3.3Dプログラミング応用
・ゲームっぽく移動できるもの
・表情をプリクラっぽく出力できるもの
・モデルの首挿げ替えするもの

0 件のコメント:

コメントを投稿