FineKernelToolKit: FK::fk_BVHMotion クラス

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
公開メンバ関数 | 全メンバ一覧
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_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_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フレームの実時間を秒数で取得します。

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