FineKernelToolKit 4.2.13
|
FK Performer キャラクターランタイムクラス [詳解]
#include <CLI/FK_CLI/include/Performer_CLI.h>
公開メンバ関数 | |
fk_Performer () | |
コンストラクタ | |
~fk_Performer () | |
デストラクタ | |
!fk_Performer () | |
ファイナライザ | |
bool | CloneCharactor (fk_Performer^ perf) |
キャラクタークローンメソッド | |
データ入力メソッド | |
bool | LoadObjectData (String^ filename) |
MQO オブジェクト読み込みメソッド | |
bool | LoadJointData (String^ filename) |
FKC ジョイント読み込みメソッド | |
bool | LoadMotionData (String^ filename) |
FKM モーション読み込みメソッド | |
シーン登録制御メソッド | |
void | RemoveScene (fk_Scene^ scene) |
シーン登録解除メソッド | |
各種オブジェクト取得メソッド | |
fk_Model ^ | GetBaseModel (void) |
ベースモデル取得メソッド | |
fk_Model ^ | GetObjectModel (int id) |
オブジェクトモデル取得メソッド | |
fk_Model ^ | GetJointModel (int id) |
ジョイントモデル取得メソッド | |
モーション再生制御メソッド | |
int | GetNowFrame (int id) |
モーション再生位置取得メソッド | |
int | GetTotalFrame (int id) |
モーションのトータルフレーム数取得メソッド | |
bool | PlayMotion (int id) |
モーション再生メソッド | |
void | StillMotion (int motionID, int frameID) |
姿勢制御付きフレーム頭出しメソッド | |
void | SetNowFrame (int motionID, int frameID) |
姿勢制御無しフレーム頭出しメソッド | |
bool | IsMotionFinished (int id) |
モーション再生終了状態取得メソッド | |
プロパティ | |
int | ObjectNum [get] |
オブジェクト数プロパティ | |
int | LoopCount [get] |
ループ回数プロパティ | |
fk_Scene^ | Scene [set] |
シーン登録プロパティ | |
FK Performer キャラクターランタイムクラス
このクラスは、FK Performer で作成したキャラクターやオブジェクトの表示、 モーション再生などを行う機能を提供します。
FK Performer は、メタセコイアで作成した MQO 形式の形状モデルを読み込み、 キーフレームアニメーションを作成することができるツールです。 ツールやデータの仕様に関する詳細は、次の URL を参照してください。 http://gamescience.jp/~rita/FKP/
本クラスにおいて、各関節は階層構造的に接続されることになり、 内部的にはそれぞれに対応する fk_Model 型のインスタンスを保持します。 最も上位となるモデルは GetBaseModel() によって得られるインスタンスです。 その一つ下位に <base> というモデルがあり、 全ての関節モデルはこの <base> の子モデル、あるいはそれらの子孫のモデルとなります。 FK における親子関係の詳細は fk_Model のマニュアルを参照して下さい。
本クラスでの「モーション」とは、実際には各オブジェクトモデルの移動動作を指します。 各モーションは経過時間ごとの配置状況が記録されており、 この経過時間を「フレーム」と呼びます。 さらに、フレームを1つずつ進めていくことを「再生」と呼びます。 この「再生」を画面更新と一緒に行っていくことによって、 FK Performer で作成した動作アニメーションを FK 内で実行することが可能となります。
FK Performer では、一つのモーションデータに複数のモーションを格納することが可能です。 各モーションには「モーション番号」という ID が割り振られ、最初のものが 0 となります。 先述した再生フレームは、各モーションごとに個別に管理されます。
FK_CLI::fk_Performer::fk_Performer | ( | ) |
コンストラクタ
FK_CLI::fk_Performer::~fk_Performer | ( | ) |
デストラクタ
FK_CLI::fk_Performer::!fk_Performer | ( | ) |
ファイナライザ
bool FK_CLI::fk_Performer::CloneCharactor | ( | fk_Performer^ | perf | ) |
キャラクタークローンメソッド
異なるインスタンス間に、キャラクターのデータをクローンします。
[in] | perf | コピー元インスタンス |
bool FK_CLI::fk_Performer::LoadObjectData | ( | String^ | filename | ) |
MQO オブジェクト読み込みメソッド
メタセコイアの形状モデル(MQOデータ)を読み込みます。
[in] | filename | 形状モデルファイル名。 |
bool FK_CLI::fk_Performer::LoadJointData | ( | String^ | filename | ) |
FKC ジョイント読み込みメソッド
FK Performer による関節セットアップデータ(FKCデータ)を読み込みます。
[in] | filename | 間接セットアップデータファイル名。 |
bool FK_CLI::fk_Performer::LoadMotionData | ( | String^ | filename | ) |
FKM モーション読み込みメソッド
FK Performer によるモーションデータ(FKMデータ)を読み込みます。 複数のモーションを読み込みたい場合は、1つずつ順番に読み込みます。 読み込んだモーションには、最初に読み込んだものを 0 番とし、読み込む順番で 1 ずつ追加した ID が割り振られます。
[in] | filename | モーションデータファイル名。 |
void FK_CLI::fk_Performer::RemoveScene | ( | fk_Scene^ | scene | ) |
シーン登録解除メソッド
キャラクターのシーン登録を解除します。 シーンに登録されていなかった場合は変化はありません。 シーンへの登録は fk_Performer::Scene プロパティを利用して下さい。
[in] | scene | 登録解除するシーン |
fk_Model ^ FK_CLI::fk_Performer::GetBaseModel | ( | void | ) |
ベースモデル取得メソッド
そのキャラクターの全体的な位置・姿勢を制御するモデルのインスタンスを取得します。 この GetBaseModel() で制御できるのは、FK Performer 中での <base> ではなく、 <base> を子とした更に上位の親モデルです。あえて二重構造にしてあります。 <base> を直接制御したい場合は GetJointModel() メソッドで引数に 0 を代入して使ってください。
fk_Model ^ FK_CLI::fk_Performer::GetObjectModel | ( | int | id | ) |
オブジェクトモデル取得メソッド
引数で指定した関節番号の fk_Model のインスタンスを返します。 オブジェクトモデルとは、実際に表示する形状がセットされているインスタンスを指します。 関節番号の順番は、Performer で読み込んだ時にリストに表示される順です。 0 が <base> に対応し、以降順番通りに 1,2,3... と割り振られます。 関節ごとの位置や姿勢を知りたいときに使えます。
[in] | id | 関節番号 |
fk_Model ^ FK_CLI::fk_Performer::GetJointModel | ( | int | id | ) |
ジョイントモデル取得メソッド
引数で指定した関節番号の fk_Model のインスタンスを返します。 ジョイントモデルとは、オブジェクトモデルをレイアウトするために利用している 形状を持たないインスタンスを指します。通常の場合は利用しませんが、 親子関係を辿ったり、座標系を可視化したりといった用途に用いると便利です。 関節番号の順番は、Performer で読み込んだ時にリストに表示される順です。 0 が <base> に対応し、以降順番通りに 1,2,3... と割り振られます。 関節ごとの位置や姿勢を知りたいときに使えます。
[in] | id | 関節番号 |
int FK_CLI::fk_Performer::GetNowFrame | ( | int | id | ) |
モーション再生位置取得メソッド
引数で指定したモーション番号が、現在何フレーム目まで進んでいるかを返します。
[in] | id | モーション番号 |
int FK_CLI::fk_Performer::GetTotalFrame | ( | int | id | ) |
モーションのトータルフレーム数取得メソッド
引数で指定したモーション番号のトータルフレーム数を返します。
[in] | id | モーション番号 |
bool FK_CLI::fk_Performer::PlayMotion | ( | int | id | ) |
モーション再生メソッド
引数で指定したモーション番号に対応するモーションの再生を行います。 終端まで到達した場合は、次の呼び出し時には自動的に先頭に巻き戻って再生します。
[in] | id | モーション番号 |
void FK_CLI::fk_Performer::StillMotion | ( | int | motionID, |
int | frameID | ||
) |
姿勢制御付きフレーム頭出しメソッド
指定したモーションの、指定したフレームの姿勢を強制的に取らせます。 今再生しているモーションを強制的に巻き戻す場合などに便利です。 無効なモーション番号、及びフレーム数を指定した場合は何もしません。
[in] | motionID | モーション番号 |
[in] | frameID | フレーム番号 |
void FK_CLI::fk_Performer::SetNowFrame | ( | int | motionID, |
int | frameID | ||
) |
姿勢制御無しフレーム頭出しメソッド
指定したモーションの再生位置を、指定したフレームにセットしますが、 実際にはその姿勢は取らせません。裏でこっそり巻き戻しておく場合に使えます。 無効なモーション番号、及びフレーム数を指定した場合は何もしません。
[in] | motionID | モーション番号 |
[in] | frameID | フレーム番号 |
bool FK_CLI::fk_Performer::IsMotionFinished | ( | int | id | ) |
モーション再生終了状態取得メソッド
指定したモーション番号が、終端まで到達しているかどうかをチェックします。
[in] | id | モーション番号 |
|
get |
オブジェクト数プロパティ
そのキャラクターのオブジェクト数(関節数)を参照します。 <base> の分も含みます。
|
get |
ループ回数プロパティ
現在再生しているモーションが、何回ループしているかを返します。
|
set |
シーン登録プロパティ
キャラクターをシーンに設定します。 既にシーンに登録されていた場合は変化はありません。 解除する場合は RemoveScene() を利用して下さい。