MV1AttachAnim

アニメーションをアタッチする

val = MV1AttachAnim(MHandle, AnimIndex)

int MHandle      : アニメーションをアタッチするモデルのハンドル
int AnimIndex     : アタッチするアニメーション番号
int AnimSrcMHandle : アタッチするアニメーションを持っているモデルのハンドル
( -1 を渡すと MHandle と同じモデルハンドルが使用されます )
int NameCheck    : AnimSrcMHandle が -1 以外の場合にアタッチするアニメーションの
フレームの名前とアタッチされる側のモデルのフレームの名前が
一致していない場合アタッチしないかどうか
( TRUE:アタッチしない FALSE:アタッチする )
この引数は AnimSrcMHandle が -1 の場合は無視されます

(プラグイン / モジュール : DxLibW)

解説

MHandle のモデルハンドルが示すモデルにアニメーションをアタッチします。


アニメーションとは主にモデル内のフレームに対する動きのデータで、
キャラクターモデルが歩いたり走ったりといった表現をする際に使用します。
( アニメーションのデータ自体は予めアニメーションデータを作成できるソフトを使用して作成しておく必要があります )

DXライブラリではアニメーションを再生する際に、
最初に再生したいアニメーションを指定する作業「アニメーションのアタッチ」をする必要があります。

アタッチ自体は簡単で、この関数でアタッチしたいアニメーションの番号を渡すだけです。

そして、アニメーションのアタッチが無事完了すると戻り値としてアタッチ番号が返ってきます。

これは「ハンドル」と呼べるほどのものではありませんが、
モデルハンドルなどと同様にアタッチしたアニメーションに関する操作はすべてこのアタッチ番号を使用して行いますので、
アタッチ番号もモデルハンドルなどと同じように何かの変数にとっておく必要があります。

// 例 : モデルに含まれる 0番目のアニメーションをアタッチしてアニメーションの総時間を取得する
int AttachIndex ;
float AnimTime ;

AttachIndex = MV1AttachAnim( MHandle, 0, -1, FALSE ) ;
AnimTime = MV1GetAttachAnimTotalTime( MHandle, AttachIndex ) ;



アニメーションはアタッチした時点でアタッチしたアニメーションのカウント0の状態がモデルに反映されます。

そして、アニメーションの再生カウントを変更する際は MV1SetAttachAnimTime を使用します。

DXライブラリには自動的にカウンタを進める仕組みはありませんので、
「MV1PlayAnim」 や 「MV1StopAnim」 のような名称の関数は存在しません。

なので、MV1SetAttachAnimTime にセットする再生時間を徐々に進めることでアニメーションを再生します。

引数 AnimSrcMHandle は同じフレーム構造を持った MHandle とは別のモデルのモデルに含まれているアニメーションを MHandle のモデルで再生する際に使用します。
( 同じアニメーションを使用する見た目の違うキャラクターモデルが複数ある場合などは、
アニメーションだけのファイルと見た目の違うフレーム構造が同じメッシュだけのファイルを別々に用意することで各キャラクターモデルのファイルにはアニメーションデータを含める必要がなくなるので、
アニメーションデータの容量分だけデータサイズを削減することができます )

引数 NameCheck は AnimSrcMHandle を使用して別のモデルファイルに含まれるアニメーションをアタッチする場合に、
アニメーションデータ側のフレームの名前とモーションをアタッチするモデルデータ側のフレームの名前を比較して違った場合はアタッチしないという処理をするかどうかを指定する引数で、
TRUE を渡すと比較して、FALSE を渡すと比較しません。

名前を比較しない場合はフレームの階層構造と各階層のフレームの数がモデル側とアニメーション側で完全に一致していないと正常にアニメーションを再生することができません。

名前を比較する場合はフレームの階層構造と名前が一致していればモデル側にあってアニメーション側に無いフレームがあっても正常にアニメーションを再生することができます。
( ただし、同じ階層に同名のフレームが複数ある場合は正常にアニメーションを再生することはできません )

名前比較を行うかどうかはアタッチするモーションデータにあわせて判断してください。

戻り値:
  -1以外:アニメーションアタッチ番号

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib 3Dモデル
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs