新しいLive2D公式コミュニティ(日本向け)が公開されました!
ぜひご利用ください!
Live2D公式コミュニティ
■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2023年夏ごろを目処に方針を決定する予定です。
(2022/12/27追記 2022年内を目処に閉鎖 から変更しております)
内容については決定次第お知らせいたします。
海外向けコミュニティについては変更ございません。
ぜひご利用ください!
Live2D公式コミュニティ
■このコミュニティの今後について
このコミュニティ(forum.live2d.com)につきましては、しばらくの間新コミュニティと並行して運営しますが、2023年夏ごろを目処に方針を決定する予定です。
(2022/12/27追記 2022年内を目処に閉鎖 から変更しております)
内容については決定次第お知らせいたします。
海外向けコミュニティについては変更ございません。
Live2Dに関するユーザーのみなさま同士の交流・ご質問・不具合の報告・提案・要望などについて是非お寄せください。
※Live2D公式スタッフからの発言や回答については確約できないことを予めご了承ください。
Live2D ヘルプ
Cubism Editorダウンロード / 動作環境
Cubism SDKダウンロード / 対応表
Cubism 製品利用ライセンス(SDK含)
Cubism 製品のライセンスについてのお問い合わせはこちら
nizima 及び nizima 製品についてのお問い合わせはこちら
※Live2D公式スタッフからの発言や回答については確約できないことを予めご了承ください。
Live2D ヘルプ
Cubism Editorダウンロード / 動作環境
Cubism SDKダウンロード / 対応表
Cubism 製品利用ライセンス(SDK含)
Cubism 製品のライセンスについてのお問い合わせはこちら
nizima 及び nizima 製品についてのお問い合わせはこちら
【各最新OSの対応状況について】
Cubism Editorは 4.1.02 正式版以降でWindows 11 及び macOS Monterey に対応しております。ぜひ最新版をご利用ください。
※macOSをお使いの方でOSアップデートする際は必ずCubism Editorのライセンスを解除してください。
Cubism EditorをインストールしているmacOSをアップグレードしたい
Cubism SDKについては各SDKのREADMEまたはNOTICEをご確認ください。
【Mac各機種への対応状況について】
現在、Cubism EditorはApple M1チップ搭載機種には対応しておりません。
詳細は 動作環境 をご参照ください。
関連するお問い合わせへの対応はこの文章をもって代えさせていただきます。
Cubism Editorは 4.1.02 正式版以降でWindows 11 及び macOS Monterey に対応しております。ぜひ最新版をご利用ください。
※macOSをお使いの方でOSアップデートする際は必ずCubism Editorのライセンスを解除してください。
Cubism EditorをインストールしているmacOSをアップグレードしたい
Cubism SDKについては各SDKのREADMEまたはNOTICEをご確認ください。
【Mac各機種への対応状況について】
現在、Cubism EditorはApple M1チップ搭載機種には対応しておりません。
詳細は 動作環境 をご参照ください。
関連するお問い合わせへの対応はこの文章をもって代えさせていただきます。
Live2D 2.1 DirectX(2.1.04.1) テクスチャのロード枚数が足りないときのReadエラーの回避について
model.jsonからテクスチャをロードする形を取っています
jsonに不足があり、mocが必要とするテクスチャよりもロード枚数が少ない状態で実行すると
live2d::ALive2DModelのdrawを実行したときにメモリーのRead違反エラーでソフトが落ちてしまいます。
ソフトが落ちるのを回避したいのですが、メモリーエラーなのでcatchが効きません。
それならばmocの必要とするテクスチャ枚数とjsonでのロード数が一致しないときはモデルのロードをキャンセルしようと考えているのですが、
mocが必要とするテクスチャ枚数の情報を得るAPIが見つかりませんでした。
generateModelTextureNoでいけるかと思いましたが別の値が入っていました。
一般開発であればjsonを精査するのが一番ですがユーザー側でファイルを入れ替えるためそうも行かないため
mocの必要とするテクスチャ枚数を把握する方法か、
draw時のエラーをキレイに押さえ込む方法を
ご教示いただけると幸いです。
よろしくお願いいたします。
開発環境
------------------------
win10 pro
microsft visual stadio community 2015
c++
DirectX9.0(June 2010)
SDK DirectX 2.1 2.1.04_1
------------------------
ファイルの入れ替え機能はLive2DDrawer for Aviutlで拡張性アプリケーション契約済みです。
jsonに不足があり、mocが必要とするテクスチャよりもロード枚数が少ない状態で実行すると
live2d::ALive2DModelのdrawを実行したときにメモリーのRead違反エラーでソフトが落ちてしまいます。
ソフトが落ちるのを回避したいのですが、メモリーエラーなのでcatchが効きません。
それならばmocの必要とするテクスチャ枚数とjsonでのロード数が一致しないときはモデルのロードをキャンセルしようと考えているのですが、
mocが必要とするテクスチャ枚数の情報を得るAPIが見つかりませんでした。
generateModelTextureNoでいけるかと思いましたが別の値が入っていました。
一般開発であればjsonを精査するのが一番ですがユーザー側でファイルを入れ替えるためそうも行かないため
mocの必要とするテクスチャ枚数を把握する方法か、
draw時のエラーをキレイに押さえ込む方法を
ご教示いただけると幸いです。
よろしくお願いいたします。
開発環境
------------------------
win10 pro
microsft visual stadio community 2015
c++
DirectX9.0(June 2010)
SDK DirectX 2.1 2.1.04_1
------------------------
ファイルの入れ替え機能はLive2DDrawer for Aviutlで拡張性アプリケーション契約済みです。
コメント
テクスチャの枚数を直接取得するAPIは用意しておりませんが、以下のやり方で間接的に取得することは出来ます。
ModelContext* modelContext = live2DModel->getModelContext();
// テクスチャの数をカウントするためのマップ。
std::map<int, int> map;
// 全ての描画オブジェクトの数。
int drawDataCount = modelContext->getDrawDataCount();
for (int i = 0; i < drawDataCount; i++)
{
// i番目の描画オブジェクト。
DDTexture* ddt = (DDTexture*)(modelContext->getDrawData(i));
// 描画オブジェクトが使用しているテクスチャ番号をkeyに設定。valueはダミー。
map[ddt->getTextureNo()] = i;
}
// mocが使用するテクスチャの数。
int textureCount = map.size();
早速組み込んで問題のあるファイルの読み込みがきちんと回避できるようになりました!