★お知らせ(2023/12/27)
いつもLive2D公式コミュニティをご利用いただき誠にありがとうございます。
本コミュニティは2023年12月27日 11:00をもって閉鎖いたしました。
今後の運営はすべて新Live2D公式クリエイターズフォーラムに移行します。
閉鎖に伴い、以下機能は利用不可となります。
・アカウントの新規作成
・トピック投稿、返信
たくさんのご利用誠にありがとうございました。

新Live2D公式クリエイターズフォーラムは以下バナーよりご利用いただけます。
Live2D公式クリエイターズフォーラム

なお、本コミュニティに投稿されたトピックはすべて残りますが、今後削除する可能性がございますので予めご了承ください。
閉鎖に関するお問い合わせにつきましてはLive2D公式クリエイターズフォーラムへご連絡ください。

Live2Dモデル描画時にヒープ破壊エラー

Live2Dモデル描画時にヒープ破壊エラーが発生します
(Live2DModelD3DクラスのDrawメソッドを読んだ時)。

本エラーですが、CubismSDKの旧バージョン(2.0.06_1)では発生しませんが、
現在最新のもの(2.1.01_1)を使用すると発生します。

ライブラリパスは、ReadMe.txtの通り、下記を指定しています
(VisualStudio 2010 SP1を使用しているので「100」のフォルダ)
(SDKインストールディレクトリ)\lib\100

お手数ですが、ご調査頂けると幸いです。
以上、よろしくお願いします。

開発環境
------------------------------------------
Windows8.1 Pro 64bit
Visual Studio 2010 Professional SP1
C++
DirectX9.0c SDK (Summer 2004)
Live2D Cubism SDK for DirectX Version 2.1.01_1

Debugモード時設定
ランタイムライブラリ:マルチスレッドデバッグ(/MTd)
追加の依存ファイル:live2d_directX_mtd.lib
------------------------------------------

コメント

  • gama55 様

    返答が遅くなり申し訳ありません。
    上記現象について、こちらでも確認を致しましたが、再現しませんでした。
    こちらで確認した環境は下記になります。
    ------------------------------------------
    Windows10 Pro 64bit
    Visual Studio 2010 Ultimate SP1
    DirectX9.0c SDK (June 2010)
    Live2D Cubism SDK for DirectX Version 2.1.01_1

    SDKのサンプルプロジェクト「Simple」をビルド

    Debugモード時設定
    ランタイムライブラリ:マルチスレッドデバッグ(/MTd)
    追加の依存ファイル:live2d_directX_mtd.lib
    ------------------------------------------

    2.1系列のCubism SDK for DirectXは、DirectX9.0c SDK「June 2010」でビルドされております。
    gama55 様は「Summer 2004」で試されたとのことで、もしかしたらVer不一致による
    問題が起きているのかもしれません。

    可能でしたら「June 2010」を使用して、現象を確認頂けませんでしょうか。
  • satok(Staff) 様

    返信と確認頂きありがとうございます。

    >可能でしたら「June 2010」を使用して、現象を確認頂けませんでしょうか。
    諸事情あり、すぐにSDKを変更することは難しいです(1~2か月後であればおそらく可能です)。

    サンプルプロジェクトの方では確認していなかったので、私も確認してみました(Simpleを使用)。
    ↑先に確認しておくべきでした、すみません。

    プログラム起動時に
    「コンピューターに d3dx9d.dll がないため、プログラムを開始できません。
    この問題を解決するには、プログラムを再インストールしてみてください。」
    というメッセージが表示され、確認することができませんでした。
    CubismSDK旧バージョン(2.0.06_1)使用時には、メッセージも表示されず、正常に動くことを確認できました。

    このメッセージが私の開発環境で出なかったのは謎ですが、本件に関連がある気がします。
    メッセージの「d3dx9d.dll」は、「Summer 2004」には含まれていなかったので、
    これが原因ならば、satok(Staff) 様のご指摘の通り、「June 2010」に更新すれば解決しそうな気がしました
    (d3dx9d.dllが含まれているなら)。
  • gama55 様

    確認ありがとうございます。
    「d3dx9d.dll」はD3DX系のデバッグ用のランタイムになりますので、DirectX SDKをインストールされていれば
    見つかるはずと思われます。ただ、dllのバージョンが一致しないなどで見つからないケースがあるかもしれませんので
    やはり「June 2010」をインストールが可能になった時に一度確認頂ければと思います。
  • satok(Staff) 様

    お世話になっております。

    先日、動作環境が整ったので、ご指摘の通りDirectXを「June 2010」に更新したところ、
    エラーが発生しなくなりました。

    色々とご確認頂きありがとうございました。
コメントするにはサインインまたは登録して下さい。