FineKernelToolKit 4.2.13
読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
FK::fk_BVHMotion クラス

BVH 形式のモーションデータを読み込み、保持するクラス [詳解]

#include <FK/BVHMotion.h>

+ FK::fk_BVHMotion の継承関係図
+ FK::fk_BVHMotion 連携図

公開メンバ関数

 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_ModelgetNodeModel (int index)
 ノードモデル取得関数
 
fk_ModelgetNodeModel (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_IndexFaceSet, fk_IFSTexture, fk_Model

構築子と解体子

◆ fk_BVHMotion()

FK::fk_BVHMotion::fk_BVHMotion ( void  )

コンストラクタ

◆ ~fk_BVHMotion()

virtual FK::fk_BVHMotion::~fk_BVHMotion ( void  )
virtual

デストラクタ

関数詳解

◆ init()

void FK::fk_BVHMotion::init ( void  )

初期化関数

モーションデータを初期化します。

◆ readBVHFile()

bool FK::fk_BVHMotion::readBVHFile ( const std::string  fileName)

BVH ファイル入力関数

BVH 形式のファイルからモーションデータを読み込みます。

引数
[in]fileNameファイル名
戻り値
入力に成功すれば true、失敗すれば false を返します。

◆ getNodeNum()

int FK::fk_BVHMotion::getNodeNum ( void  )

ノード数取得関数

現在のモーションデータが持っているノード(ボーン)数を返します。

戻り値
ノード数。 モーションデータが未入力の場合は、0 を返します。

◆ getNodeName()

std::string FK::fk_BVHMotion::getNodeName ( int  index)

ノード名取得関数

引数で指定したノードの名称を返します。

引数
[in]indexノードのインデックス。0 からノード数-1 までの値をとります。
戻り値
ノード名。 インデックスが無効な値の場合は、空の文字列を返します。

◆ getNodeModel() [1/2]

fk_Model * FK::fk_BVHMotion::getNodeModel ( int  index)

ノードモデル取得関数

引数で指定したノードについて、その状態を保持している fk_Model のポインタを返します。

引数
[in]indexノードのインデックス。0 からノード数-1 までの値をとります。
戻り値
ノードを表す fk_Model のポインタ。 インデックスが無効な値の場合は、nullptr を返します。

◆ getNodeModel() [2/2]

fk_Model * FK::fk_BVHMotion::getNodeModel ( std::string  nodeName)

ノードモデル取得関数

引数で指定したノードについて、その状態を保持している fk_Model のポインタを返します。 ノードの名称を表す文字列で、対象ノードを指定します。

引数
[in]nodeNameノードの名称。
戻り値
ノードを表す fk_Model のポインタ。 存在しないノード名を指定した場合は、nullptr を返します。

◆ nextFrame()

int FK::fk_BVHMotion::nextFrame ( void  )

モーション再生関数

モーションを 1 フレーム分進め、各ノードの状態を更新します。 モーションの終端まで進んだら、先頭(0 フレーム目)に戻ります。

戻り値
モーションを 1 フレーム進めた後のフレームカウント。

◆ setFrameCount()

void FK::fk_BVHMotion::setFrameCount ( int  frame)

モーション状態セット関数

各ノードの状態を、指定したフレームカウントのものに更新します。 モーションの現在位置も指定したフレームになります。

引数
[in]frameモーションのフレームカウント。 0 未満やモーションの長さ以上の値を指定した場合は、それぞれ上下限に丸められます。

◆ setAnimationTime()

void FK::fk_BVHMotion::setAnimationTime ( double  t)

アニメーション時間設定関数

各ノードの状態を、秒で指定した時間に対応する状態に設定します。 モーションの現在位置は、指定した時間に直近のフレームになります。

引数
[in]t時間 0.0 未満やモーションの長さ以上の値を指定した場合は、それぞれ上下限に丸められます。

◆ getNowFrameCount()

int FK::fk_BVHMotion::getNowFrameCount ( void  )

モーション現在位置取得関数

モーション再生の現在位置を取得します。

戻り値
モーション再生の現在位置を指すフレームカウント。

◆ getFrameLength()

int FK::fk_BVHMotion::getFrameLength ( void  )

モーション長取得関数

モーションの長さをフレーム数で取得します。

戻り値
モーションの長さを指すフレーム数。

◆ getOneFrameTime()

double FK::fk_BVHMotion::getOneFrameTime ( void  )

1フレームの実時間取得関数

そのモーションデータにおける、1フレームの実時間を秒数で取得します。

戻り値
モーションの長さを指すフレーム数。