Re: vmdファイルをMMDと別ディレクトリで管理する方法 ( No.1 ) |
- 名前:管理人 日時:2017/11/15 01:31
> 最初はMV1SetLoadModelAnimFilePathでやればいいのかと思ったのですが、複数読み込む方法がわからず…
複数のフォルダから vmdファイルを読み込みたいのでしょうか?
フォルダが一つだけでしたら MV1SetLoadModelAnimFilePath で vmdファイルがあるフォルダを指定すれば良いのですが…
> そこでDXライブラリのソースコードを拝見したところMV1LoadModelでvmdファイルを読み込めそうと思ったので、
> MV1LoadModelで読み込んだものをMV1AttachAnimの第3引数に渡してみたところ、-1は帰って来なかったのですが初期ポーズから動きませんでした。
> MV1GetAttachAnimTotalTimeで正しい値が取得できたため、アタッチ自体は成功しているようです。
すみません、DXライブラリのアニメーションシステムは MikuMikuDance のアニメーションシステムとは構造が異なるので、
pmx( 又は pmd ) と vmd の読み込みでは、MikuMikuDance のアニメーションデータを無理矢理DXライブラリ方式の
アニメーションデータに変換している関係で
『pmx( 又は pmd ) と vmd を別々に読み込んでおいて後から MV1AttachAnim で vmd のアニメーションを pmx( 又は pmd ) に適用する』
ということが現状ではできません m(_ _;m
|
Re: vmdファイルをMMDと別ディレクトリで管理する方法 ( No.2 ) |
- 名前:108EAA0A 日時:2017/11/15 01:43
> 複数のフォルダから vmdファイルを読み込みたいのでしょうか?
いえ、1つのフォルダにまとめておき、管理しやすくなればと思いました。
MV1SetLoadModelAnimFilePathでフォルダ指定をすることで読み込めるはずとのことなので最初に試した際に何か間違ったのかもしれません。
もう一度試してみようと思いますm(_ _)m
ちなみに、
最初に挙げさせて頂いたソフトでは、vmdファイルの名前は「vmdファイルのあるフォルダ名+000から始まる連番(ループはLを最後に追加)」という制約があったのですが、
関数自体にこういった決まりはあったりするのでしょうか?
|
Re: vmdファイルをMMDと別ディレクトリで管理する方法 ( No.3 ) |
- 名前:108EAA0A 日時:2017/11/15 11:12
以下のようなプログラムを組んでみたのですが、MV1GetAnimNumで0が返ってきてしまいました。
アタッチにも失敗しているようで、MV1AttachAnimで-1が返ってきてしまいます。
MV1SetLoadModelAnimFilePathの使い方が間違っているのでしょうか?
モーションファイル名はMotion000L.vmdとMotion001.vmdにしてあります。
#include "DxLib.h"
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
ChangeWindowMode(TRUE);
SetDrawScreen(DX_SCREEN_BACK);
if (DxLib_Init() == -1) return -1;
SetUseZBuffer3D(TRUE);
SetWriteZBuffer3D(TRUE);
SetCameraPositionAndTarget_UpVecY({ 0,0,-50 }, { 0,0,0 });
MV1SetLoadModelAnimFilePath("Resource/Motion");
int modelHandle = MV1LoadModel("Resource/Model/初音ミク.pmd");
int N = MV1GetAnimNum(modelHandle); // 0が返ってくる
int attachIndex = MV1AttachAnim(modelHandle, 0); // -1が返ってくる
float playTime = 0;
float totalTime = MV1GetAttachAnimTotalTime(modelHandle, attachIndex);
while (!ProcessMessage() && !CheckHitKey(KEY_INPUT_ESCAPE)) {
ClearDrawScreen();
playTime += 0.5f;
if (playTime >= totalTime) playTime = 0;
MV1SetAttachAnimTime(modelHandle, attachIndex, playTime);
MV1DrawModel(modelHandle);
ScreenFlip();
}
DxLib_End();
return 0;
}
|
Re: vmdファイルをMMDと別ディレクトリで管理する方法 ( No.4 ) |
- 名前:管理人 日時:2017/11/15 23:46
> MV1SetLoadModelAnimFilePathの使い方が間違っているのでしょうか?
> モーションファイル名はMotion000L.vmdとMotion001.vmdにしてあります。
はい、pmdファイル名が『初音ミク.pmd』でしたら、vmdファイルは
『初音ミク000L.vmd』『初音ミク001.vmd』である必要があります
よろしければお試しください m(_ _)m
|
Re: vmdファイルをMMDと別ディレクトリで管理する方法 ( No.5 ) |
- 名前:108EAA0A 日時:2017/11/16 00:00
vmdファイルを『初音ミク000L.vmd』『初音ミク001.vmd』に変更してみたのですが同じく失敗してしまいました…
他に何か修正すべき点はありますでしょうか?
|
Re: vmdファイルをMMDと別ディレクトリで管理する方法 ( No.6 ) |
- 名前:管理人 日時:2017/11/16 00:15
失礼しました
vmdファイルのファイル名は Motion000L.vmd と Motion001.vmd のままで大丈夫でした orz
MV1SetLoadModelAnimFilePath に渡す文字列を
MV1SetLoadModelAnimFilePath("Resource/Motion/Motion");
にしてみてください m(_ _;m
( 000L.vmd や 001.vmd などの数字の部分の直前までのファイル名を含める、が正しかったです… )
|
Re: vmdファイルをMMDと別ディレクトリで管理する方法 ( No.7 ) |
- 名前:108EAA0A(解決) 日時:2017/11/16 19:11
無事再生できました!
本当にありがとうございます m(_ _)m
|