トップページ > 記事閲覧
LIVE2DとMMDを同時に表示したい
名前:あっぷる 日時: 2020/08/05 16:32

WindowsにてDXライブラリ(C#)を使用させていただいております この度、LIVE2Dの映像とMMDの映像を同時に表示したい案件があり 以下のように組んでみたところ、 LIVE2Dの描写を行わせると、MMDの表示が消えてしまいます。 それぞれ単体だけであれば問題なく表示します DX.Live2D_Model_Draw(Live2DHandle); をコメントアウトするとMMDは表示します 同時に表示させるにはどうすればよいでしょうか? ライブラリは2020年8月の時点でどちらも最新に更新してあります 表示部分の抜粋コード //描写処理 DX.ClearDrawScreen(); //**** LIVE2Dの表示 **** // モデルの状態を60分の1秒分進める DX.Live2D_Model_Update(Live2DHandle, 1 / 60.0f); // Live2D描画の開始 DX.Live2D_RenderBegin(); // モデルの描画 DX.Live2D_Model_Draw(Live2DHandle); // Live2D描画の終了 DX.Live2D_RenderEnd();           // ***** MMDの表示 **** // 再生時間を進める PlayTime += 0.5f; // 再生時間がアニメーションの総再生時間に達したら再生時間を0に戻す if (PlayTime >= TotalTime) { PlayTime = 0.0f; } // 再生時間をセットする DX.MV1SetAttachAnimTime(ModelHandleMiku, AttachIndex, PlayTime); //MMDキャラの表示 DX.MV1DrawModel(ModelHandleMiku); DX.ScreenFlip();
メンテ

Page: 1 |

Re: LIVE2DとMMDを同時に表示したい ( No.1 )
名前:管理人 日時:2020/08/06 00:54

すみません、Live2D_Model_Draw によるLIVE2Dの描画を行うと MV1DrawModel による3Dモデルの描画が 行われなくなるのはDXライブラリのバグです こちらに3Dモデルも正常に描画されるように修正したバージョンをアップしましたので よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
メンテ
Re: LIVE2DとMMDを同時に表示したい ( No.2 )
名前:あっぷる 日時:2020/08/06 14:45

管理人様 早々のご対応ありがとうございます 無事にLive2DとMMDが同時に表示可能となりました ただ、Live2Dを表示させた時とさせない時で MMDの表示位置が変化してしまいます (MMDのモデルが左下に小さく表示される) これはLive2Dモデルの設定に引きずられるのでしょうか? また、MMDではない3Dモデルを表示する場合のDX.MV1DrawModel()も MMDと同じく、Live2D表示時に消えてしまうようです (もしかしたらMMDと同じく表示位置が変化して画面外に移動しただけかもしれません) お手数をお掛け致します 解決方法はございますでしょうか?
メンテ
Re: LIVE2DとMMDを同時に表示したい ( No.3 )
名前:あっぷる 日時:2020/08/06 14:46

Live2Dを表示するとMMDの位置が 変化してしまう件ですが DX.Live2D_RenderEnd(); の直後に 元々初期化時に実行していた DX.SetCameraNearFar(); DX.SetCameraPositionAndTarget_UpVecY(); を毎回再設定してあげると正しい位置でMMDも表示しました。 Live2Dを表示させると、設定してあったカメラ情報が上書きされるようです この方法ならMMDではない、3DモデルのDX.MV1DrawModel()も正しく表示しましたので やはりカメラ情報が変化したことで見えなくなっていただけだったようです
メンテ
Re: LIVE2DとMMDを同時に表示したい ( No.4 )
名前:管理人 日時:2020/08/08 00:14

お試しいただきありがとうございます > ただ、Live2Dを表示させた時とさせない時で > MMDの表示位置が変化してしまいます > (MMDのモデルが左下に小さく表示される) > これはLive2Dモデルの設定に引きずられるのでしょうか? > 元々初期化時に実行していた > DX.SetCameraNearFar(); > DX.SetCameraPositionAndTarget_UpVecY(); > を毎回再設定してあげると正しい位置でMMDも表示しました。 > Live2Dを表示させると、設定してあったカメラ情報が上書きされるようです すみません、ご指摘の通り Live2Dモデルの設定に引きずられていました Live2D_RenderEnd を呼ぶことでカメラの設定などを元の状態に戻すように修正しましたので よろしければこちらの修正版をお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
メンテ
Re: LIVE2DとMMDを同時に表示したい ( No.5 )
名前:あっぷる 日時:2020/08/08 00:25

管理人様 ご対応ありがとうございます さっそく使わせて頂きます 一点、確認させてください Live2Dの表示に使われるカメラ設定は 元々設定済みのカメラ設定とは違う独自の設定であり Live2Dの描写後に元のカメラ設定に戻すという 認識でよいでしょうか?
メンテ
Re: LIVE2DとMMDを同時に表示したい ( No.6 )
名前:管理人 日時:2020/08/09 20:29

> 一点、確認させてください > Live2Dの表示に使われるカメラ設定は > 元々設定済みのカメラ設定とは違う独自の設定であり > Live2Dの描写後に元のカメラ設定に戻すという > 認識でよいでしょうか? はい、そのご認識で間違いありません
メンテ
Re: LIVE2DとMMDを同時に表示したい ( No.7 )
名前:あっぷる 日時:2020/08/10 15:47

管理人様 ご回答ありがとうございます その認識で作り込んでみます あれからLive2Dの表示テストを行っているのですが 画面の右端、左端ぴったりに表示させる事に苦労しています | ○ |デフォルト位置 |○  |左端 |  ○|右端 位置指定の関数で調整はできるのですが、 表示させるモデルの縦横幅を考慮する方法がわからず、 単純に画面幅の半分をオフセットとしてプラスマイナスさせると 以下のように半分欠けて表示されます |)  | |  (| 絵は動きますし、モーション切り替えなどもあるので 一概にここが右端、左端と決めにくいとは思いますが もしよい方法が御座いましたら、教えていただけると助かります
メンテ
Re: LIVE2DとMMDを同時に表示したい ( No.8 )
名前:管理人 日時:2020/08/10 22:15

あっぷるさんの仰る通り絵は動きますし、サイズもLive2Dモデルによって様々なので 『こうすれば右端・左端にぴったり表示できる』という方法は無いと思います Live2Dモデルの作成を自ら行っている場合は 『Live2D_Model_SetTranslate( Live2DModel, 800.0f, 0.0f );を実行すれば画面の右端に表示されるようにLive2Dモデルを作る』 といったことができると思いますが、そうではない場合はLive2Dモデル一つ一つについて 『Live2DモデルAは Live2D_Model_SetTranslate( Live2DModel, 900.0f, 0.0f ); で右端ぴったりになる』 『Live2DモデルBは Live2D_Model_SetTranslate( Live2DModel, 1200.0f, 0.0f ); で右端ぴったりになる』 『Live2DモデルCは Live2D_Model_SetTranslate( Live2DModel, 600.0f, 0.0f ); で右端ぴったりになる』 と、Live2Dモデル毎に『どれだけオフセットすれば左端・右端ぴったりになるか』を調べて場合分けするしか無いと思います…
メンテ
Re: LIVE2DとMMDを同時に表示したい ( No.9 )
名前:あっぷる 日時:2020/08/12 09:13

管理人様、ご回答ありがとうございます やはりぴったり表示は難しいですね モデルは自作しております 当たり判定エリアとかでなんとかなりそうでしたらご報告致しますが まずはおおまかなサイズをデフォルトサイズとして設定して あとは、モデル毎に個別微調整できる方向で進めてみたいと思います ご対応ありがとうございました
メンテ

Page: 1 |

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

   クッキー保存