新しい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チップ搭載機種には対応しておりません。
詳細は 動作環境 をご参照ください。
関連するお問い合わせへの対応はこの文章をもって代えさせていただきます。
【unity 4.6.4】Android での live2dモデル破棄時のメモリーリークについて
お世話になっております。
live2dを使用して、スマホアプリを作成しているものです。
開発環境は、Unity3d になります。
最近その、unityのVer を 4.5.5 から 4.6.4 へアップしたところ
live2dモデルを破棄した際、テクスチャ関連でメモリの解放漏れを確認しました。
Unity Editor のプロファイラーでも確認しています。
自分の読み込み、破棄の仕方が、おかしいのかもしれませんが。
同じような環境、症状などの方がいらしたら、なにかご情報をいただけたらと思います。
詳しい状況などは、随時追加していきます。
------------------------------
■■ 追記 ■■
------------------------------
▼問題が発生している live2d_SDK
Live2D_SDK_Unity_2.0.07_1_jp
▼問題がなかったころは
unity 4.5.5
live2d_SDK 2.0.01_1
あたりを使用していました。
▼iPhoneでは、発生していません。
------------------------------
■■ 試したこと ■■
------------------------------
・Live2Dモデルの読み込みのなくして、ゲーム進行して、メモリーリークが発生するか?
⇛しない
・Live2Dモデルのテクスチャのみ読み込みをカットして発生するか?
⇛しない
・「Live2Dモデルの読み込み、破棄だけ」のサンプルを作成して、リークが発生するか
⇛した
・破棄関数の確認
Live2D::dispose(); を組み込んでみる
http://sites.cybernoids.jp/cubism2/sdk_tutorial/live2d_library/live2d
⇛効果が見受けられず(組み込みのミスかもしれません)
ALive2DModel::deleteTextures() を使用してみる。
http://doc.live2d.com/api/core/cpp2.0j/a00025.html#acf6a34aae2752526e8e88bf2442cb339
⇛効果受けられず(組み込みのミスかもしれません)
以上になります。
どうか、よろしくお願い致します。(少し、急ぎになります!!
live2dを使用して、スマホアプリを作成しているものです。
開発環境は、Unity3d になります。
最近その、unityのVer を 4.5.5 から 4.6.4 へアップしたところ
live2dモデルを破棄した際、テクスチャ関連でメモリの解放漏れを確認しました。
Unity Editor のプロファイラーでも確認しています。
自分の読み込み、破棄の仕方が、おかしいのかもしれませんが。
同じような環境、症状などの方がいらしたら、なにかご情報をいただけたらと思います。
詳しい状況などは、随時追加していきます。
------------------------------
■■ 追記 ■■
------------------------------
▼問題が発生している live2d_SDK
Live2D_SDK_Unity_2.0.07_1_jp
▼問題がなかったころは
unity 4.5.5
live2d_SDK 2.0.01_1
あたりを使用していました。
▼iPhoneでは、発生していません。
------------------------------
■■ 試したこと ■■
------------------------------
・Live2Dモデルの読み込みのなくして、ゲーム進行して、メモリーリークが発生するか?
⇛しない
・Live2Dモデルのテクスチャのみ読み込みをカットして発生するか?
⇛しない
・「Live2Dモデルの読み込み、破棄だけ」のサンプルを作成して、リークが発生するか
⇛した
・破棄関数の確認
Live2D::dispose(); を組み込んでみる
http://sites.cybernoids.jp/cubism2/sdk_tutorial/live2d_library/live2d
⇛効果が見受けられず(組み込みのミスかもしれません)
ALive2DModel::deleteTextures() を使用してみる。
http://doc.live2d.com/api/core/cpp2.0j/a00025.html#acf6a34aae2752526e8e88bf2442cb339
⇛効果受けられず(組み込みのミスかもしれません)
以上になります。
どうか、よろしくお願い致します。(少し、急ぎになります!!
コメント
問題なくご利用、ご設計かと存じますが、「最新SDK,API」で問題なく使えてるよ、という方の
一言をいただければと。
実装は、Sampleのプロジェクトを、改変しています。
特に、テクスチャの読み込み箇所を外部フォルダからの参照型に改造になります。
・生成読み込みは、
LAppModelProxy などが含まれるPrefabをInstantiateしています。
・破棄は、
上の GameObject を Destroy している形になります。
・ほかに
RenderTexture を使用しています。
live2Dモデルを管理するクラスは、インスタンス化しており、シーン毎に破棄しておりません。
■live2Dモデル
テクスチャは4,5枚、モーション、表情、ポーズファイルあり。
■結果起こる症状
※15,6回、読み込み、表示、破棄を繰り返す。
・あるAndroid端末(1年以内の新しい端末)強制終了。
・別のAndroid端末(2年ぐらいの少し古い端末)では、テクスチャが真っ黒になる。(NGUIのテクスチャもおかしくなる)
■次は、サンプルそのままに、生成読み込み、破棄を繰り返すプロジェクトを作って試そうかと思っています。
■なにか、記載すべき情報がありましたらご指摘お願い致します。
一応、Androidの機種など端末情報を教えてもらえますか?
ありがとうございます。
テストに使用したのは
SH-04F [ http://ja.wikipedia.org/wiki/SH-04F ]
OS:4.4.2
HTL21 [ http://ja.wikipedia.org/wiki/HTL21 ]
OS:4.1.1
となります。
SDK 2.007 にて
ALive2DModel::releaseModelTextureNo を追加組み込みすると
メモリーのリーク量が大分減りました。
サンプルには、なかったので行っていなかった処理のものになります。
ただ、まだ、リークは続いて状況になります。
1モデルで 約 4.5MB のリークのようです。
ほかのモーション(mtn)と表情(exp.json)は、問題無いようです。
LoadTexter の実行の有無で、リークのありなしがハッキリでます。
追記
使用テクスチャは4枚 PVRフォーマットになります。
前述した
ALive2DModel::releaseModelTextureNo
と
LAppModel::Draw で使用してる設定している Matrix をクリアする処理を追加する
削除する際に
GetLive2DModelUnity().setMatrix(Matrix4x4.zero);
を行う。
以上の対応で
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
リークが改善
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
したようです。
引き続き、確認と調査しています。
よろしくお願い致します。
一つ前のコメントは、確認ミスだったようです。
リークが完全に改善できておりませんでした。
対応として最終的に
Resources.UnloadUnusedAssets ();
を使いました。
PlatformManager::loadTexture を改良している中で
外部リソースのテクスチャを読み込んで
((Live2DModelUnity)model).setTexture(no, texture);
で引き渡したあと、そのTexture2D のデータが解放されずに残っている状態になりました。
Resources.UnloadUnusedAssets ();
で大分、リークは改善できたのですが、まだリーク(mesh?)があるようです。
おまけですが、
Live2Dのサンプルにて、「破棄のシーケンス」のサンプルを追加
改善してもらえると嬉しいです。
unity プロファイラにて、Meshesのメモリ経過を見ると、読み込み、破棄を繰り返すと
添付画像のように増えていきます。
1.png -> 2.png -> 3.png
Drowすると、現状の状態になります。
開放しきれていないものがあったようで、モデルを作りなおしたらメモリが増えてしまっていました。
先ほどこの問題を修正したSDKを公開いたしました。
そちらにライブラリを差替え、開放時にreleaseModel()を呼び出してください。
y_a_s_(dev staff)様
素早い対応ありがとうございました。
新しいSDKにて、改善を確認いたしました。
本当にありがとうございます。
Ver 2.1 も楽しみにしております。
■■■■■■■■■■■■■■■■■■■■■■■■■■
解決しました!!
■■■■■■■■■■■■■■■■■■■■■■■■■■