トップページ > 記事閲覧
表示するモデルが変形する
名前:SIN 日時: 2023/05/09 17:50

アニメーションの長さを配列に取得しようと下記のようにfor文を使って、アニメーションの再生時間を取得しようとしたのですが、for文の中で、 この行を実行すると、モデルの形が変わって描画されます。この行をコメントすると正常に描画されます。 そもそも、使い方が間違っているのでしょうか。 〜略〜 for (int i = 0; i < anim_pattern; i++) { AttachIndex = MV1AttachAnim(model, i, -1, false); //この行をコメントすると正常に描画されます。 AnimTime[i] = MV1GetAttachAnimTotalTime(model, AttachIndex); } 〜略〜 //モデルの回転 MV1SetRotationXYZ(model, VGet(0.0f, RADIAN(rad), 0.0f)); //アニメーション再生 MV1SetAttachAnimTime(model, 0, anim_time); //モデルの移動 MV1SetPosition(model, VGet(pos.x, pos.y, pos.z)); //モデルの描画 MV1DrawModel(model);
メンテ

Page: 1 |

Re: 表示するモデルが変形する ( No.1 )
名前:名無三 日時:2023/05/09 20:13

アタッチした時点でブレンドは1.0デフォなのでアタッチした時点のアニメーション全てが反映さていれるという形だと思いますので、そちらであればMV1SetAttachAnimBlendRateで0に指定すれば解決します
メンテ
Re: 表示するモデルが変形する ( No.2 )
名前:管理人 日時:2023/05/10 00:18

アニメーションの長さを取得したいだけでしたら、 MV1AttachAnim でアタッチしたアニメーションを MV1DetachAnim でデタッチする必要があります( デタッチをしないと追加でどんどんアタッチしてしまうことになるので… ) なので、AnimTime[i] = MV1GetAttachAnimTotalTime(model, AttachIndex); ←こちらの行の次に MV1DetachAnim(model, AttachIndex); という記述を追加してアタッチしたアニメーションをデタッチするようにすれば モデルの形が変わってしまう現象は無くなります よろしければお試しください m(_ _)m
メンテ
Re: 表示するモデルが変形する ( No.3 )
名前:SIN(解決) 日時:2023/05/10 10:30

ご教授ありがとうございます。 MV1DetachAnimについては、動きが確認ができました。ありがとうございます。 思った通りにまだ動かせておりませんが、組み方に問題があると思いますので、色々と試してみます。 ありがとうございました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存