ページ 11

DXLibのモーションに関して

Posted: 2011年9月19日(月) 17:03
by 史上最悪のデスペナ
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でループさせるのも面倒です。
いい方法があったら教えてください

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

Posted: 2011年9月19日(月) 17:12
by みけCAT
前に設定したモーションの番号を変数(例えばprevMotion)に代入しておき、

コード:

MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[prevMotion], 0.0f)
MV1SetAttachAnimBlendRate(ModelHandle, AttachIndex[n], 1.0f)
prevMotion=n
としたらどうでしょうか?

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

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

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

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

Posted: 2011年9月20日(火) 10:32
by 史上最悪のデスペナ
とりあえず、みけCATさんの方法でやってみたところ上手くいきました。
デタッチも今度やってみます。

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