トップページ > 記事閲覧
3Dアニメ同一で複数体動かすとポーズが壊れる
名前:vic 日時: 2015/11/02 02:56

2体アニメーション付で動作させています。 アニメ無し ニュートラル 走り で動作させています。 全く同じファイルを2回にロードして行うと2体は別々の動作でも問題ありません。 しかし、同一モデルを使用すると、モデルハンドルに関連付けされているデータが2体互いに加工されてしまい、1体が走っていると2体目も走る動作になる、 モデルのポーズが壊れてしまい、1部腕が体の中に入っておかしいポーズになる、などの問題があります。 アタッチの解除をあえて毎回行うと、モーションがなしでTポーズのまま平行移動になってしまいます。 毎回ハンドルデータの紐付け解除とデータのセットを行う方法すると考えましたが、 そうだとしても具体的なコードがわかりません。 教えていただけないでしょうか?
メンテ

Page: 1 |

Re: 3Dアニメ同一で複数体動かすとポーズが壊れる ( No.1 )
名前:管理人 日時:2015/11/02 02:57

「同一のモデルを使用する」とは MV1DuplicateModel を使用してひとつのモデルハンドルから 同一のデータを使用する別のモデルハンドルを作成して使用する、ということでしょうか? そうではありませんでしたら、申し訳ありませんが「同一のモデルを使用する」について 詳しく教えていただけないでしょうか?
メンテ
Re: 3Dアニメ同一で複数体動かすとポーズが壊れる ( No.2 )
名前:vic 日時:2015/11/02 12:27

こちらの書籍のモデルおよびモーションファイルを使用させていただいています。 ttp://dxlib.o.oo7.jp/SwordBout/ DXライブラリの3Dモーション管理は良くわかっておらず、2回同じものをロードして行うといった意味です。 下記クラスでインスタンスを生成して class MV1AnimeSet { public: int model,neutral,run; int rootflm; // デフォルト状態を保持 TODO MV1AnimeSet() {} MV1AnimeSet(char* modelfile,char* neutralfile,char* runfile) { LOADMV1( model,modelfile); // デフォルト状態を保持 LOADMV1( neutral,neutralfile ); LOADMV1( run,runfile ); rootflm = MV1SearchFrame(model, "root"); // 基礎"root"になるフレームを取得 MV1SetFrameUserLocalMatrix(model, rootflm, MGetIdent()); // モデルアニメーションの素材の座標移動を0にする(勝手に動かなくする) } }; 下記コンストラクタでインスタンス生成 MV1AnimeSet syujinkou("Player/PC.MV1","Player/Anim_Neutral.mv1","Player/Anim_Run.mv1"); MV1AnimeSet syujinkou2("Player/PC.MV1","Player/Anim_Neutral.mv1","Player/Anim_Run.mv1"); // 全く同じ 上記のように2つ同じものを生成して、生成した数だけ表示はうまくいきます。 しかし、同一の syujinkou を使用したら、モデルに紐付けされた内部データを互いにいじってしまいうまくいきません。 これらをうまくする方法がわからずに悩んでいます。 しかし、MV1DuplicateModel( を使用する発想は思いつつ来ませんでした。 早速試してみます。ありがとうございます。
メンテ
解決 ( No.3 )
名前:vic(解決) 日時:2015/11/02 22:00

ありがとうございます。 おかげさまで一発で解決できました。
メンテ

Page: 1 |

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

   クッキー保存