DXLibのモーションに関して

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
史上最悪のデスペナ
記事: 521
登録日時: 14年前

DXLibのモーションに関して

#1

投稿記事 by 史上最悪のデスペナ » 14年前

Sculptris(.obj)→メタセコイア(.mqo)→RokDeBone2(.x)というふうに
Sculptrisで作ったモデルにRokDeBone2でモーションをつけてXファイルにしています
複数(N個とする)のモーションを実装したのですが、
n番目のモーションだけを動かすときに

MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[n], 1.0f)

だけでなく、いちいち、

MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[0], 0.0f)
MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[1], 0.0f)
MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[2], 0.0f)
               ・
               ・
               ・
MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[n], 1.0f)
               ・
               ・
               ・
MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[N], 0.0f)

とやらないとモーションがブレンドされてしまうようなのです。
モーションの切り替えのたびにwhileかforでループさせるのも面倒です。
いい方法があったら教えてください

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: DXLibのモーションに関して

#2

投稿記事 by みけCAT » 14年前

前に設定したモーションの番号を変数(例えばprevMotion)に代入しておき、

コード:

MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[prevMotion], 0.0f)
MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[n], 1.0f)
prevMotion=n
としたらどうでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

ISLe
記事: 2650
登録日時: 14年前
連絡を取る:

Re: DXLibのモーションに関して

#3

投稿記事 by ISLe » 14年前

使用しないアニメーションはデタッチしたほうが良いのでは?
そもそも同時に複数のアニメーションを使わないなら(アニメーションのブレンドをしないなら)、ひとつだけアタッチすれば良いのでは。

MV1DetachAnimの説明にお勧めの使い方が書いてありますよ。

史上最悪のデスペナ
記事: 521
登録日時: 14年前

Re: DXLibのモーションに関して

#4

投稿記事 by 史上最悪のデスペナ » 14年前

とりあえず、みけCATさんの方法でやってみたところ上手くいきました。
デタッチも今度やってみます。

いつも思いますが、質問ばかりではなくほかの人のに答えれるようになりたいですね^^;

閉鎖

“C言語何でも質問掲示板” へ戻る