horsetail bbs
[記事リスト] [新着記事] [ワード検索] [過去ログ] [管理用]

タイトル Re^6: 追伸
投稿日: 2008/01/27(Sun) 15:22:50
投稿者mqdl

ご無沙汰しておりますmqdlです。

随分と時間が経ってしまいましたが、ボーンプラグインを更新しました。

当初の予定であったカメラアニメーションは、色々と試行錯誤してみたのですが、
そもそもオブジェクトライトやオブジェクトカメラの概念の無いMetasequoiaでは
実装に無理が出てきてしまい、対応が長期化しそうであった為、
一旦保留と言う形にさせて頂きました。

以下の点は今回の更新で対応出来たと考えております。

>・ボーンの親子付けについて
CXSBone::GetChildCount(void)
CXSBone::GetChild(int index)
を追加致しました。

>・ボーンの初期状態に関して
ボーンの初期ローカル回転量はすべて0になっています。
直感的に操作出来るようにと、ボーンのメッシュやハンドルが
回転した状態に見えるようにしているので、この点
誤解を招いてしまったかも知れません。

>・アニメーションについて
外部からベイクが出来るようにSetAnimationSetを追加しました。
ただ、indexの配列が内部と外部アクセスで異なるので
ご注意ください。
例えば、ボーンプラグイン側で
motA,motB,motCがあったとして、motBにはフレームを追加して
いなかったとします。この際、外部出力されるのは
motAとmotCのみです。
その為、CXSAnimationSet::GetIndex(void)で内部のindexを
調べる必要があります。
#つまり外部プラグイン側で二番目のAnimationSetは"motC"ですが
#ボーンプラグイン側の二番目は"motB"になります。

つまり、全要素にアクセスするためには

for(int i = 0; i < xs->GetAnimationSetCount(); i++)
{
ExportXS::SetAnimationSet(doc,i);
}

ではなく、

for(int i = 0; i < xs->GetAnimationSetCount(); i++)
{
XSAnimationSet xset = xs->GetAnimationSet(i);
int index = xset->GetIndex();
ExportXS::SetAnimationSet(doc,index);
}

とする必要があります。

ボーンプラグインの内部ではアニメーションを
回転Quaterninと移動Vectorで保持しています。
CXSBone::GetMatrix(void)では初期の回転情報のみが
取得出来ますが、CXSBone::GetCurrentMatrix(void)では
現在の回転と移動を同時に取得出来るようになっておりますので
ご留意下さい。


以上、宜しくお願い致します。


- 関連一覧ツリー (▼ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
おなまえ
Eメール
タイトル
メッセージ   手動改行 強制改行 図表モード
メッセージには上記と同じURLを書き込まないで下さい
URL
暗証キー (英数字で8文字以内)
  プレビュー

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No 暗証キー