FineKernelToolKit 4.2.13
|
BVH 形式のモーションデータを読み込み、保持するクラス [詳解]
#include <FK/BVHMotion.h>
公開メンバ関数 | |
fk_BVHMotion (void) | |
コンストラクタ | |
virtual | ~fk_BVHMotion (void) |
デストラクタ | |
void | init (void) |
初期化関数 | |
bool | readBVHFile (const std::string fileName) |
BVH ファイル入力関数 | |
int | getNodeNum (void) |
ノード数取得関数 | |
std::string | getNodeName (int index) |
ノード名取得関数 | |
fk_Model * | getNodeModel (int index) |
ノードモデル取得関数 | |
fk_Model * | getNodeModel (std::string nodeName) |
ノードモデル取得関数 | |
int | nextFrame (void) |
モーション再生関数 | |
void | setFrameCount (int frame) |
モーション状態セット関数 | |
void | setAnimationTime (double t) |
アニメーション時間設定関数 | |
int | getNowFrameCount (void) |
モーション現在位置取得関数 | |
int | getFrameLength (void) |
モーション長取得関数 | |
double | getOneFrameTime (void) |
1フレームの実時間取得関数 | |
BVH 形式のモーションデータを読み込み、保持するクラス
このクラスは BVH 形式のモーションデータを読み込み、制御を行います。 主な用途は fk_IFSTexture クラスのインスタンスに対して Direct3D の X 形式を 読み込んだ際に、任意のモーションへと差し替える場合に使用します。 それ以外にも、このクラスのメンバ自体が fk_Model のツリー構造を保持しているため、 モーションの再生時刻を指定することでボーンの状態を再現することも可能です。 これを利用すれば、X 形式以外の形状要素を用いている場合でもモーションデータを 活用することができます。
FK::fk_BVHMotion::fk_BVHMotion | ( | void | ) |
コンストラクタ
|
virtual |
デストラクタ
void FK::fk_BVHMotion::init | ( | void | ) |
初期化関数
モーションデータを初期化します。
bool FK::fk_BVHMotion::readBVHFile | ( | const std::string | fileName | ) |
BVH ファイル入力関数
BVH 形式のファイルからモーションデータを読み込みます。
[in] | fileName | ファイル名 |
int FK::fk_BVHMotion::getNodeNum | ( | void | ) |
ノード数取得関数
現在のモーションデータが持っているノード(ボーン)数を返します。
std::string FK::fk_BVHMotion::getNodeName | ( | int | index | ) |
ノード名取得関数
引数で指定したノードの名称を返します。
[in] | index | ノードのインデックス。0 からノード数-1 までの値をとります。 |
fk_Model * FK::fk_BVHMotion::getNodeModel | ( | int | index | ) |
fk_Model * FK::fk_BVHMotion::getNodeModel | ( | std::string | nodeName | ) |
int FK::fk_BVHMotion::nextFrame | ( | void | ) |
モーション再生関数
モーションを 1 フレーム分進め、各ノードの状態を更新します。 モーションの終端まで進んだら、先頭(0 フレーム目)に戻ります。
void FK::fk_BVHMotion::setFrameCount | ( | int | frame | ) |
モーション状態セット関数
各ノードの状態を、指定したフレームカウントのものに更新します。 モーションの現在位置も指定したフレームになります。
[in] | frame | モーションのフレームカウント。 0 未満やモーションの長さ以上の値を指定した場合は、それぞれ上下限に丸められます。 |
void FK::fk_BVHMotion::setAnimationTime | ( | double | t | ) |
アニメーション時間設定関数
各ノードの状態を、秒で指定した時間に対応する状態に設定します。 モーションの現在位置は、指定した時間に直近のフレームになります。
[in] | t | 時間 0.0 未満やモーションの長さ以上の値を指定した場合は、それぞれ上下限に丸められます。 |
int FK::fk_BVHMotion::getNowFrameCount | ( | void | ) |
モーション現在位置取得関数
モーション再生の現在位置を取得します。
int FK::fk_BVHMotion::getFrameLength | ( | void | ) |
モーション長取得関数
モーションの長さをフレーム数で取得します。
double FK::fk_BVHMotion::getOneFrameTime | ( | void | ) |
1フレームの実時間取得関数
そのモーションデータにおける、1フレームの実時間を秒数で取得します。