トップページ > 記事閲覧
Live2Dについて
名前: 日時: 2020/02/19 19:39

#include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { int ModelHandle; // ウィンドウモードで起動 ChangeWindowMode(TRUE); // 画面解像度を設定 SetGraphMode(1920, 1080, 32); // Live2D Cubism Core DLL の読み込み( 64bit アプリの場合と 32bit アプリの場合で読み込む dll を変更 ) #ifdef _WIN64 Live2D_SetCubism4CoreDLLPath("dat/Live2D/CubismSdkForNative-4-beta.1/Core/dll/windows/x86_64/Live2DCubismCore.dll"); #else Live2D_SetCubism4CoreDLLPath("dat/Live2D/CubismSdkForNative-4-beta.1/Core/dll/windows/x86/Live2DCubismCore.dll"); #endif // DXライブラリ初期化処理 if (DxLib_Init() == -1) { return -1; } // Live2Dモデルの読み込み ModelHandle = Live2D_LoadModel("dat/Live2D/Hiyori/Hiyori.model3.json"); // 描画先を裏画面に変更 SetDrawScreen(DX_SCREEN_BACK); // メインループ while (ProcessMessage() == 0) { // 画面の初期化 ClearDrawScreen(); // モーション再生が終了していたらアイドリングモーションをランダムで再生 if (Live2D_Model_IsMotionFinished(ModelHandle) == TRUE) { Live2D_Model_StartMotion(ModelHandle, "Idle", GetRand(8)); } // モデルの状態を60分の1秒分進める Live2D_Model_Update(ModelHandle, 1 / 60.0f); // Live2D描画の開始 Live2D_RenderBegin(); // モデルの描画 Live2D_Model_Draw(ModelHandle); // Live2D描画の終了 Live2D_RenderEnd(); // 裏画面の内容を表画面に反映 ScreenFlip(); } // Live2D モデルの削除 Live2D_DeleteModel(ModelHandle); // DXライブラリ使用の終了処理 DxLib_End(); // ソフトの終了 return 0; } サンプルプログラムそのままでモデルとdllパースは自分が設定したものです。 ModelHandle = Live2D_LoadModel("dat/Live2D/Hiyori/Hiyori.model3.json"); ここで書いているフォルダーの中にモデルが入っていますがModelHandleに常に-1が返還されます。 Visual studio 2017 使っています。
メンテ

Page: 1 |

Re: Live2Dについて ( No.1 )
名前:紺帽子 日時:2020/02/19 20:27

Live2D_SetCubism4CoreDLLPathの戻り値はどうなっていますか? 関数は成功しているのでしょうか?
メンテ
Re: Live2Dについて ( No.2 )
名前: 日時:2020/02/20 15:12

はい、dllの読み込みは問題なく成功しています。
メンテ
Re: Live2Dについて ( No.3 )
名前:管理人 日時:2020/02/21 01:34

うーんプログラムに間違いは無さそうです… プログラム実行時に作成される Log.txt にエラーに関係する出力はされていないでしょうか?
メンテ
Re: Live2Dについて ( No.4 )
名前: 日時:2020/02/21 12:00

1784:DXライブラリの初期化処理終了 1791:画像ファイル C:\Users\sipsi\Desktop\Program\Tower\Test がありません プログラム '[16192] Test.exe' はコード 0 (0x0) で終了しました。 試しにわざと間違った画像のパスを指定してみるとちゃんとエラーログが出ますが、 Live2D関連ログは出ません。 ちなみに、Dllパス指定は間違っても0を返しています。
メンテ
Re: Live2Dについて ( No.5 )
名前:管理人 日時:2020/02/25 01:51

ご返信が遅くなり申し訳ありません Live2DのDLLの読み込みに失敗した場合と、 Live2Dモデルのファイル読み込みでエラーが発生した場合にエラーログを出力するようにしてみました Log.txt に出力されるエラーログで原因が分かるかもしれませんので、よろしければこちらの ログ出力処理を追加したバージョンをお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) > ちなみに、Dllパス指定は間違っても0を返しています。 Live2D_SetCubism4CoreDLLPath はパスを登録するだけで、実際に DLL を読み込むのは DxLib_Init の中となっていますので、Live2D_SetCubism4CoreDLLPath の戻り値は パスが間違っていても 0 となります
メンテ
Re: Live2Dについて ( No.6 )
名前:P 日時:2020/02/29 03:06

横から失礼します Visual Studio 2019 DxLib ver3.21dにおいて 同じソースコードで実行すると Live2DのDLLから例外がでるという現象がありました LoadModelを実行すると例外がでる模様です 今回のテスト版にて同様のソースコードを実行したところ Live2Dのログは出力されず例外が発生しました 確認をお願いいたします
メンテ
Re: Live2Dについて ( No.7 )
名前:管理人 日時:2020/03/01 03:07

すみません、エラーログ出力の処理にバグがありました orz 今度こそ正常にログが出力されるようにしましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) 因みに手元では最新版の Cubism 4 SDK for Native R1 を使用して動作を確認したのですが、 Pさんがお試しになられた SDK のバージョンは幾つでしょうか?
メンテ
Re: Live2Dについて ( No.8 )
名前:P 日時:2020/03/01 22:47

私のバージョンは管理人さんと同じCubism 4 SDK for Native R1でした 修正版にて実行したところ、まだメモリアクセス違反がでてしまうようです ただ…以前は動いてはいました(Beta版での話ではありますが) DxLibの初期化、Live2DのDLLの読み込みには成功していますが モデルを読み込む部分でどうしてもアクセス違反により停止してしまう状態です
メンテ
Re: Live2Dについて ( No.9 )
名前:管理人 日時:2020/03/03 00:56

お試しいただきありがとうございます すみません、手元でも32bitアプリではメモリアクセス違反が発生してしまうことを確認しました 原因は Live2D の 32bit dll の呼び出し規約が前バージョンとは異なっていからでした 最新バージョン( 4 SDK for Native R1 )の 32bit dll でも正常に実行できるように修正しましたので、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: Live2Dについて ( No.10 )
名前:P 日時:2020/03/04 10:30

ご対応ありがとうございます こちらの環境でもLive2Dが正常に動作し サンプルプログラムを動作することができました ただ、mocファイルや一部のjsonファイル(userdata3やpose3)がない場合において メモリアクセス違反による例外が発生します もしお時間あれば その例外処理する部分を追加していただければと思います… お忙しい中ですが、よろしくお願いします
メンテ
Re: Live2Dについて ( No.11 )
名前:管理人 日時:2020/03/06 03:13

お試しいただきありがとうございます 正常に動作するようになったようでなによりです > ただ、mocファイルや一部のjsonファイル(userdata3やpose3)がない場合において > メモリアクセス違反による例外が発生します すみません、必要なファイルが存在しなかった場合は読み込みエラーとして戻り値が -1 となるように 処理を修正しましたので、何度も申し訳ありませんが、よろしければお試しください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: Live2Dについて ( No.12 )
名前:P 日時:2020/03/06 11:18

ありがとうございます ファイルが欠けていた場合はそのままエラーになるのが確認できました お忙しい中ありがとうございました 一応スレを作った方が確認されるまでは解決済はつけないでおきます
メンテ

Page: 1 |

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

   クッキー保存