Re: live2dについて ( No.3 ) |
- 名前:管理人 日時:2019/05/29 00:50
すみません、SDK を確認したところ、VisualStudio 2013 と VisualStudio 2015 用のファイルしかありませんでした
( 加えて同梱するにはかなりファイルサイズが大きかったです…( 2013用と 2014用だけで 300MB ) )
仮に許可を頂けても一部の開発環境でのみ使用できるという微妙なものになってしまいそうなので、
DXライブラリ内部での対応ではなく、過去スレッドで行ったような、あくまで外部のライブラリとしての
live2D をDXライブラリと併用する、という方法の解説のページを作成するに留まるかもしれません…
|
Re: live2dについて ( No.4 ) |
- 名前:つまようじ 日時:2019/06/01 22:39
自分でlive2dの描画をやった時にSDKを一つ落として来ただけでできたので、VSの種類ごとに別々のものがあるとは思いませんでした
それも、一般的によく使われているであろう2017がないんですね....
容量と開発環境の問題は、軽量化packageのようにlive2dパッケージとして公開して、
dxライブラリが何かしら大きくアップデートされた時のみ更新する形式にすれば問題ないのではないでしょうか?
ただ、予想される利用者の数や管理人様の手間を考えるとどのみち厳しいですよね
DXライブラリ内部での対応ではなく、過去スレッドで行ったような、あくまで外部のライブラリとしての
live2D をDXライブラリと併用する、という方法の解説のページを作成するに留まるかもしれません…
分かりました
お忙しいところありがとうございます
|
Re: live2dについて ( No.5 ) |
- 名前:管理人 日時:2019/06/10 00:55
すみません、過去の live2D の使用例は旧バージョンである Cubism 2 SDK のものだったのですね
Cubism 3 SDK をDXライブラリと併用するのに少々時間が掛かりました( ただ、描画を
DXライブラリ側で行えるので Cubism 2 SDK のような謎の描画系の不具合は発生しにくくなっています )
現在 Cubism 3 SDK の libファイルをDXライブラリのパッケージに含めても問題ないかを問い合わせています
その結果次第で Cubism 3 SDK for Native を別途インストールして使う方法の解説ページを
『DXライブラリミニテクニック』ページに追加する形か、DXライブラリの関数で直接 Live2D の
ファイルを扱えるようにするかが決まりますので、今しばらくお待ちください m(_ _)m
> 容量と開発環境の問題は、軽量化packageのようにlive2dパッケージとして公開して、
> dxライブラリが何かしら大きくアップデートされた時のみ更新する形式にすれば問題ないのではないでしょうか?
live2d機能が使用できる専用パッケージのみ偶にしか更新しない、というのは変なので、
やはり他のパッケージと同じタイミングでのアップデートが必要になると思います
|
Re: live2dについて ( No.6 ) |
- 名前:つまようじ 日時:2019/06/11 09:18
>Cubism 3 SDK をDXライブラリと併用するのに少々時間が掛かりました( ただ、描画を
>DXライブラリ側で行えるので Cubism 2 SDK のような謎の描画系の不具合は発生しにくくなっています )
すみません、以前のものとの差別がついておりませんでした
過去スレッドのものと現在配布されてるもので大きく違うのですね
>現在 Cubism 3 SDK の libファイルをDXライブラリのパッケージに含めても問題ないかを問い合わせています
確認及び問い合わせありがとうございます
>live2d機能が使用できる専用パッケージのみ偶にしか更新しない、というのは変なので、
>やはり他のパッケージと同じタイミングでのアップデートが必要になると思います
わかりました
|
Re: live2dについて ( No.7 ) |
- 名前:管理人 日時:2019/06/16 22:34
Live2D から返答がありました
Live2DのlibファイルをDXライブラリ同梱することはNGということでした
ただ、Live2D の SDK には dll も入っていたので、対応としては
『Live2D関係の関数を使う場合は Live2D SDK をインストールして、中にある
Live2D の dll をプログラムの実行フォルダに置く必要がある』
のような形になると思います
ただ、dllの機能を使う処理を組むのにも結構時間がかかりそうなので、
何週間か、もしかしたら1ヶ月以上かかるかもしれません
申し訳ありませんが気長にお待ちいただければと思います m(_ _;m
|
Re: live2dについて ( No.8 ) |
- 名前:つまようじ 日時:2019/06/18 09:26
このような形で実装を考えていただきありがとうございます
>何週間か、もしかしたら1ヶ月以上かかるかもしれません
自分はlive2dと格闘しただけで2、3週間かかってしまったので、むしろそんなに早く実装できるかもしれないことに驚いています
|
Re: live2dについて ( No.9 ) |
- 名前:管理人 日時:2019/08/14 02:09
すみません、大変お待たせしました、Live2D 関係の関数を追加したバージョンができましたので、
よろしければこちらをダウンロードしてください( 今のところWindows版のみです )
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.2 用
https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用
https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用
以下の関数を追加しました
<必ず使用する関数>
// Live2DCubismCore.dll のファイルパスを設定する
int Live2D_SetCubism3CoreDLLPath( char *CoreDLLFilePath ) ;
// Live2D のモデルファイルを読み込む( 0以上:Live2Dモデルハンドル マイナス値:エラー発生 )
int Live2D_LoadModel( char *FilePath ) ;
// Live2D のモデルを削除する
int Live2D_DeleteModel( int Live2DModelHandle ) ;
// Live2D のモデルの状態を更新する
int Live2D_Model_Update( int Live2DModelHandle, float DeltaTimeSeconds ) ;
// Live2D の描画処理を開始
int Live2D_RenderBegin( void ) ;
// Live2D のモデルを描画する
int Live2D_Model_Draw( int Live2DModelHandle ) ;
// Live2D の描画処理を終了
int Live2D_RenderEnd( void ) ;
<モデルの位置・拡大率などを設定する関数>
// Live2D のモデルの位置を設定する
int Live2D_Model_SetTranslate( int Live2DModelHandle, float x, float y ) ;
// Live2D のモデルの拡大率を設定する
int Live2D_Model_SetExtendRate( int Live2DModelHandle, float ExRateX, float ExRateY ) ;
// Live2D のモデルの回転を設定する
int Live2D_Model_SetRotate( int Live2DModelHandle, float RotAngle ) ;
<モーションに関する関数>
// Live2D のモデルの指定のモーションを再生する
int Live2D_Model_StartMotion( int Live2DModelHandle, char *group, int no ) ;
// Live2D のモデルのモーション再生が終了しているかを取得する( 戻り値 TRUE:再生が終了している FALSE:再生中 )
int Live2D_Model_IsMotionFinished( int Live2DModelHandle ) ;
// Live2D のモデルの指定の表情モーションをセットする
int Live2D_Model_SetExpression( int Live2DModelHandle, char *expressionID ) ;
<当たり判定の関数>
// 指定の座標が Live2D のモデルの指定の当たり判定の矩形範囲内か判定する( TRUE:矩形範囲内 FALSE:矩形範囲外 )
int Live2D_Model_HitTest( int Live2DModelHandle, char *hitAreaName, float x, float y ) ;
使い方ですが、まず Live2D_SetCubism3CoreDLLPath で Live2D Cubism3 の DLL のファイルのパスを指定する必要があります
Live2D Cubism3 の DLL は Cubism SDK for Native のパッケージの中の Core\dll\windows\x86\Live2DCubismCore.dll と
Core\dll\windows\x86_64\Live2DCubismCore.dll で、それぞれ 32bitアプリ用と 64bitアプリ用となっています
<Cubism SDK for Native がダウンロードできる Live2D GitHub のサイト>
https://live2d.github.io/
次にLive2Dのモデルデータを Live2D_LoadModel で読み込み、Live2Dモデルハンドルを戻り値で取得します
モデルの動作は Live2D_Model_Update を呼ぶことで行い、描画は Live2D_Model_Draw で行います( 尚、描画の前には
Live2D_RenderBegin を、後には Live2D_RenderEnd を呼ぶ必要があります )
不要になったモデルデータは Live2D_DeleteModel で削除します
最低限の手順は以上です、その他、特定のモーションの再生には Live2D_Model_StartMotion を、
表情モーションの設定は Live2D_Model_SetExpression を使用して、位置や拡大率の変更は Live2D_Model_SetTranslate などを使用します
とりあえず Cubism 3 SDK for Native beta12-1 の中身を D:\ に解凍したという前提で、中にあるサンプルデータ Haru を
読み込み画面に表示するサンプルを作成してみましたので、よろしければご覧ください m(_ _)m
#include "DxLib.h"
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
int ModelHandle ;
// ウィンドウモードで起動
ChangeWindowMode( TRUE ) ;
// 画面解像度を設定
SetGraphMode( 1900, 900, 32 ) ;
// Live2D Cubism Core DLL の読み込み( 64bit アプリの場合と 32bit アプリの場合で読み込む dll を変更 )
#ifdef _WIN64
Live2D_SetCubism3CoreDLLPath( "D:/Cubism3SDKforNative-beta12-1/Core/dll/windows/x86_64/Live2DCubismCore.dll" ) ;
#else
Live2D_SetCubism3CoreDLLPath( "D:/Cubism3SDKforNative-beta12-1/Core/dll/windows/x86/Live2DCubismCore.dll" ) ;
#endif
// DXライブラリ初期化処理
if( DxLib_Init() == -1 )
{
return -1 ;
}
// Live2Dモデルの読み込み( model3.json ファイルを指定する )
ModelHandle = Live2D_LoadModel( "D:/Cubism3SDKforNative-beta12-1/Samples/Res/Haru/Haru.model3.json" ) ;
// 描画先を裏画面に変更
SetDrawScreen( DX_SCREEN_BACK ) ;
// メインループ
while( ProcessMessage() == 0 )
{
// 画面の初期化
ClearDrawScreen() ;
// スペースキーを押したらアイドリングモーションをランダムで再生
if( GetInputChar( TRUE ) == ' ' )
{
Live2D_Model_StartMotion( ModelHandle, "Idle", GetRand( 1 ) ) ;
}
// モデルの状態を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 ;
}
|
Re: live2dについて ( No.10 ) |
- 名前:つまようじ 日時:2019/08/14 23:14
迅速な実装ありがとうございます
帰宅したら確認させていただきます
|
Re: live2dについて ( No.11 ) |
- 名前:つまようじ 日時:2019/08/14 23:36
早速サンプルコードを試してみたのですが、
ModelHandle = Live2D_LoadModel( "D:/Cubism3SDKforNative-beta12-1/Samples/Res/Haru/Haru.model3.json" ) ;
の行で例外がスローされてしまいました(x84)
しかしx64に変更してデバッグしてみたところ、正常に描画されました
win10、VS2019の最新バージョンを使用しています
(Live2DCubismCore.dll) で例外がスローされました
読み取り中にアクセス違反が発生しました
|
Re: live2dについて ( No.12 ) |
- 名前:管理人 日時:2019/08/16 02:16
|
Re: live2dについて ( No.13 ) |
- 名前:つまようじ 日時:2019/08/17 17:02
修正ありがとうございます
正常に表示されました
もう少し時間のある時にいろいろ試してみようと思います
それと、Cubism3SDKを使用しているということは、model.jsonを読み込むのは不可能という認識であっていますでしょうか?
|
Re: live2dについて ( No.14 ) |
- 名前:管理人 日時:2019/08/18 01:47
お試しいただきありがとうございます
> それと、Cubism3SDKを使用しているということは、model.jsonを読み込むのは不可能という認識であっていますでしょうか?
はい、旧バージョンのファイルには対応していません
|
Re: live2dについて ( No.15 ) |
- 名前:管理人 日時:2019/08/18 06:42
お使いになるか不明ですが Android と iOS も Live2D Cubism3 の対応が完了しました
https://dxlib.xsrv.jp/temp/DxLibEnableLive2D_Android.zip // Android版 ( Live2D 対応 )
https://dxlib.xsrv.jp/temp/DxLibEnableLive2D_iOS.zip // iOS版 ( Live2D 対応 )
Android と iOS は dll 的なもの( 実行時に読み込むのでファイルが存在しなくてもビルド自体は成功する )が
無かったため、Android と iOS に関してのみ『Live2D 対応版のDXライブラリのパッケージ』を用意することにしました
( お使いになるか不明なので簡単にご説明 )
前述の通り Android と iOS では Windows版のように実行時に dll を読み込む方式ではなく、一般的な
ライブラリファイルをビルド時にリンクして使用する方法となりますので、上記の『Live2D 対応版のDXライブラリ』を
使用する場合は『追加のインクルードディレクトリ』に
Cubism3SDKforNative-beta12-1\Core\include
と、Cubism 3 SDK for Native 内の Core\include フォルダを追加して、
『追加のライブラリディレクトリ』に
Cubism3SDKforNative-beta12-1\Core\lib\android\armeabi-v7a や
Cubism3SDKforNative-beta12-1\Core\lib\ios\Debug-iphonesimulator などのビルドターゲットに応じたライブラリフォルダを追加して、
『ライブラリの依存ファイル』に libLive2DCubismCore.a を追加します
( 記述としては Android( VisualStudio )では Live2DCubismCore で、iOS( Xcode )では -lLive2DCubismCore となります )
( 尚、dll を使用しないので Live2D_SetCubism3CoreDLLPath を呼ぶ必要はありません )
|
Re: live2dについて ( No.16 ) |
- 名前:つまようじ 日時:2019/08/20 19:42
スマホ版対応お疲れ様です
折角説明していただいて申し訳ないのですが、
PC版すらロクに完成が見えないので手を出せそうにはないです
|
Re: live2dについて ( No.17 ) |
- 名前:管理人 日時:2019/08/24 19:32
いえ、一応のご案内なのでお気になさらず…
追加したLive2Dの関数で足りない機能などありましたらご連絡ください m(_ _)m
|
Re: live2dについて ( No.18 ) |
- 名前:つまようじ 日時:2019/08/29 19:28
ありがとうございます
パラメータIDを取得する関数が用意されていますが、パラメータIDのパラメータを変更するにはどうすればいいのでしょうか?
また、dllの読み込みに失敗した後でlive2Dを描画しようとすると例外で止まってしまいますが、ただの画像のようにエラーがあった場合は何もせずに続行するようにすることは可能でしょうか?
|
Re: live2dについて ( No.19 ) |
- 名前:管理人 日時:2019/08/30 02:04
> パラメータIDを取得する関数が用意されていますが、パラメータIDのパラメータを変更するにはどうすればいいのでしょうか?
そういえばパラメータを変更する機能がありませんね…
具体的にはどのようなパラメータを変更されたいのでしょうか?
> また、dllの読み込みに失敗した後でlive2Dを描画しようとすると例外で止まってしまいますが、ただの画像のようにエラーがあった場合は何もせずに続行するようにすることは可能でしょうか?
すみません、今のところ対処方法がありません
dllの読み込みに失敗している状態でlive2Dを描画しようとしても例外で止まらないように修正しますので、数日ほどお時間をください m(_ _;m
|
Re: live2dについて ( No.20 ) |
- 名前:つまようじ 日時:2019/09/01 00:24
>具体的にはどのようなパラメータを変更されたいのでしょうか?
モデルによってはアクセサリなどをパラメータで変更できるようにしてあるものもあるので、
そのあたりを指定したいことが多いと思います
idかn番目のパラメータをfloatで変更できるようなものだとありがたいです
>dllの読み込みに失敗している状態でlive2Dを描画しようとしても例外で止まらないように修正しますので、数日ほどお時間をください m(_ _;m
ありがとうございます
dll等はユーザー側で簡単に消すことができてしまうので、止まらないようになれば助かります
|
Re: live2dについて ( No.21 ) |
- 名前:管理人 日時:2019/09/01 02:24
|
Re: live2dについて ( No.22 ) |
- 名前:つまようじ (解決) 日時:2019/09/02 11:13
パラメータ変更機能の実装及び、エラーチェック機能の実装ありがとうございますm(__)m
基本的な描画はできたので、live2Dを利用できる前提でまた少しずつプログラムを作成することができます。
少し遅くなってしまいそうですが、また何かあれば連絡させていただきます
|