[リストへもどる]
一括表示
タイトルボーンの質問
記事No69
投稿日: 2012/02/20(Mon) 22:36
投稿者GE
Frame ReplacedName2 {
FrameTransformMatrix {
1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;;
}
Frame NewJoint5_Joint {
FrameTransformMatrix {
1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000;;
}
Frame NewJoint6_Joint {
FrameTransformMatrix {
1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000,0.000000,1.000000,0.000000,56.880348,-1567.286865,0.000000,1.000000;;
}

ジョイントを2つ作ってみたのですが上のようになります。
Frame ReplacedName2 がルートなので0,0,0の位置なのは正しいですが、
NewJoint5_Jointの所にFrame NewJoint6_JointのFrameTransformMatrixが来ていないとおかしいのではないでしょうか?
そしてFrame NewJoint6_Jointにあるはずのデータがまるまるありません。
現在、ボーンを表示するプログラムを作成しているのですが各階層の最後尾のジョイントが表示されません。
各階層の最初のジョイントの位置がおかしいような気がします。
これで正しいのでしょうか?

タイトルRe: ボーンの質問
記事No70
投稿日: 2012/02/21(Tue) 01:42
投稿者おちゃっこ
> これで正しいのでしょうか?
正しいです。
( RokDeBone2の仕様に合わせたものとして正しいです。 )

一個目のボーンの親のフレーム(今回はReplacedName2)は
RokDeBone2での表示ではJoint Partという非ボーンパーツです。

OpenRDBを見れば分かると思いますが
RokDeBone2ではそれぞれのボーンの姿勢情報は親のボーンを中心に回転するような姿勢情報です。
こうすることで簡単に枝分かれボーンへの対応が出来ます。

他の市販のツールで作ったデータだと
自分自身のボーンを中心に回転するような姿勢情報を格納するものもあると思います。
その場合はGEさんの思っているようなデータ構造になると思われます。

つまりモーションツールの実装の仕方によって
Xファイルも変わってくるのです。

RokDeBone2から出力されたXファイルのみについて考えた場合は
末端のボーンの位置情報は出力されません。
親のボーンのベクトルを計算するなどして適当に決定し表示するしかありません。

タイトルRe^2: ボーンの質問
記事No71
投稿日: 2012/02/21(Tue) 18:28
投稿者GE
な、なるほど…
Xファイルは確かに方言がありますが…

ちなみにRokDeBone的にはXファイルを市販ツールの出力と同じにはしないのですか?

タイトルRe^3: ボーンの質問
記事No72
投稿日: 2012/02/21(Tue) 19:14
投稿者おちゃっこ
中途半端につじつまを合わせることは出来ますが
RokDeBone2上でのモーション再生と完全に互換性を保って
市販ツールと同じXを吐き出すのは無理だと思うので
やりません。

タイトルRe^4: ボーンの質問
記事No73
投稿日: 2012/02/21(Tue) 19:46
投稿者GE
わかりました。