トップページ > 過去ログ > 記事閲覧
3Dモデルのモーションが…
名前: 日時: 2012/06/24 11:12

質問させてください。 3Dモデルを作ってxファイルにし、モーションをアタッチして再生させました。 0番には待機モーションが、1番には歩行モーションが入っているのですが、なぜか待機でも歩行でも、まるでボーンが入ってないかのように手だけ体に埋まってしまいます。 しかし、その埋まった状態から待機や歩行モーションが実行されてるようで、埋まってる以外はいたって正常なのです。 モデルに問題があるのかと思いDxLibModelViewerで読み込んだのですが、これではちゃんと埋まらず再生されるので本体の問題だと思うのですが… とりあえずモーションの部分だけ書きます。 //*anime.cpp*-------------- #include省略 //--------------------------------------------- //初期宣言  | //--------------------------------------------- int animeindex[300],animenum; float animetotal[300],animeplay; //--------------------------------------------- //ロード  | //--------------------------------------------- void anime_load(){ for(int i=1;i<=300;i++){ //エラー吐くまでモーションと総再生時間を読み込む animeindex[i] = MV1AttachAnim(p1.model,i-1); animetotal[i] = MV1GetAttachAnimTotalTime(p1.model,animeindex[i]); //総再生時間取得 if(animeindex[i]==-1)break; } animeplay = 0.0f; //再生時間初期化 } //--------------------------------------------- //描画・配置・操作  | //--------------------------------------------- void anime_draw(){ animeplay += 1.0f; //再生時間を進める if(animeplay >= animetotal[animenum])animeplay = 0.0f; //現在再生時間が総再生時間を越えたら再生時間を0に戻す MV1SetAttachAnimTime(p1.model,animeindex[animenum],animeplay); } こんな感じなのですが、モーションがおかしくなる部分が見当たらないので…

Page: 1 |

Re: 3Dモデルのモーションが… ( No.1 )
名前: 日時:2012/06/24 11:14

すみません追記です、使用ツールはMetasequoiaとRokDeBone2の最新版を使って作りました。
Re: 3Dモデルのモーションが… ( No.2 )
名前:いっち 日時:2012/06/24 18:24

原因は分かりませんが、ループ条件がおかしいと思うので修正されたほうが良いと思います。 > for(int i=1;i<=300;i++) ↓↓たとえば↓↓ > for(int i=0;i<300;i++) モデルをご提供頂ければ私の環境でも試してみます。
Re: 3Dモデルのモーションが… ( No.3 )
名前:管理人 日時:2012/06/25 23:42

いっちさんも仰られていますが、正常に動作しない xファイルをいただければ原因が分かると思います ( テキスト形式の xファイルは記述規則が曖昧なので、モーション情報部分を正常に解析できていない可能性があります ) よろしければこちら BQE00322( あっとまーく )nifty.com ( ( あっとまーく )を@に置き換えてください ) にxファイルを送って頂けないでしょうか?
Re: 3Dモデルのモーションが… ( No.4 )
名前: 日時:2012/06/26 22:46

送りました、お願いします。
Re: 3Dモデルのモーションが… ( No.5 )
名前:管理人 日時:2012/06/27 01:20

メールをお送りいただきありがとうございます モデルデータを拝見致しました 早速手元の DxModelViewer で読み込んでみたところ、正常に読み込め、再生できているようでした ( 一つ目が立っている待機モーションで、二つ目が歩くモーションですよね? ) もしかしたら最新のバージョンでは正常に動作するのかもしれませんので、よろしければ こちらの最新バージョンをお使いになってみて頂けないでしょうか? m(_ _)m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) // ビューアー http://homepage2.nifty.com/natupaji/DxLib/DxLibModelViewerTest.zip
Re: 3Dモデルのモーションが… ( No.6 )
名前:いっち 日時:2012/06/27 01:29

管理人さん> 柳さんの環境でも DxModelViewer では正常に表示されているそうです。 > モデルに問題があるのかと思いDxLibModelViewerで読み込んだのですが、これではちゃんと埋まらず再生されるので本体の問題だと思うのですが…
Re: 3Dモデルのモーションが… ( No.7 )
名前:管理人 日時:2012/06/27 02:14

すみません、モーションファイルが正常に読み込めてないと思い込んでしまっていました 最初に全てのアニメーションを MV1AttachAnim でアタッチしてしまっているのが不具合の原因だと思います アタッチした時点で MV1SetAttachAnimBlendRate でブレンド率を 0.0f にしたりしない以上、 アタッチされたアニメーションは有効になります つまり、現在のプログラムでは全てのアニメーションが合成された状態となっているわけです 再生するアニメーションのみ、再生したいときに MV1AttachAnim でアタッチして、再生が 終わったら MV1DetachAnim でデタッチするようにしてください > いっちさん ご指摘ありがとうございます
Re: 3Dモデルのモーションが… ( No.8 )
名前: 日時:2012/06/27 07:34

なるほど、アタッチは必要な時だけいれるのですね! わざわざありがとうございました、よく理解していなかったのでとても助かりました。

Page: 1 |