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

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

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

Cubism 4 SDK for Native R1 のサンプルと Live2D Cubism Viewer 4.0 の描画結果が異なる

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

Live2D のモデルを自作の DirectX 11 のプログラムで表示するために
Cubism 4 SDK for Native R1 のサンプル

CubismSdkForNative-4-r.1\Samples\D3D11\Demo\proj.d3d11.cmake

を参考に Live2D モデルを表示する処理を実装したのですが、こちらで公開されているモデル

<Live2D東北きりたん立ち絵>
https://seiga.nicovideo.jp/seiga/im10026885?track=seiga_illust_keywordhttps://seiga.nicovideo.jp/seiga/im10026885?track=seiga_illust_keyword

を表示すると、口の左右の端に黒い薄い線が表示されてしまいました。

自作のプログラムに組み込んだものに問題があるのかと思い、
Cubism 4 SDK for Native R1 のサンプルで表示してみたのですが、やはり同様に
口の端に黒い薄い線が表示されました。

<Cubism 4 SDK for Native R1 のサンプル で口元が大きく見えるように拡大したプログラムのスクリーンショット>


<Cubism 4 SDK for Native R1 のサンプルのスクリーンショットから口元だけ切り取った画像>


同じモデルを Live2D Cubism Viewer 4.0 で表示した場合は口元の端の黒い薄い線は
表示されず、正常な見た目になっています。

<Live2D Cubism Viewer 4.0 で口元が大きく見えるように拡大した状態のスクリーンショット>


<Live2D Cubism Viewer 4.0 のスクリーンショットから口元だけ切り取った画像>


DirectX 11 のサンプルでも Live2D Cubism Viewer 4.0 で表示した場合と同じように
口の端の黒い薄い線が表示されないようにするにはどのようにすれば良いでしょうか?

お忙しいところ申し訳ありませんが、ご返答の程、よろしくお願いいたします。

コメント

  • Prog 様

    お問い合わせいただき誠にありがとうございます。
    Live2Dスタッフの Takと申します。

    Cubism 4 SDK for Native 製品のご利用でご不便をおかけし大変申し訳ございません。

    > 口の左右の端に黒い薄い線
    提示していただいたモデルにて当該現象を弊社環境にて確認いたしました。
    こちらは異方性フィルタリングを使用することで黒い薄い線が解消されます。
    しかし、Cubism 4 SDK for Native R1 DirectX11版では異方性フィルタリング判定が正常におこなわれておらず、APIから使用ができない現象があることが確認できました。

    つきましては一時的な回避策とはなってしまいますが、 Prog 様の環境にて、以下のようなソースコードの修正をお願いいたします。

    Framework側にあります CubismRendererState_D3D11.cpp の CubismRenderState_D3D11::Create 関数内の処理で D3D11_SAMPLER_DESC を扱っている箇所がございます。ここで異方性フィルタリングを強制的に使用して描画することができます。

    ```
    // normal
    samplerDesc.Filter = D3D11_FILTER_ANISOTROPIC; // 異方性フィルタリングを使用する
    samplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_WRAP;
    samplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_WRAP;
    samplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_WRAP;
    samplerDesc.MaxAnisotropy = 16; // 2-16で値を指定
    ```

    こちらの修正で、異方性フィルタリングを使用したCubismモデルの描画ができますので、Prog 様にご報告いただいた黒い薄い線が出てしまう問題の解消ができます。
    また、異方性フィルタリング判定を含めた本修正に関しましては現在検討中となりますので、修正までしばらくお待ちいただくようお願いいたします。

    お手数をおかけいたしましたが、今後とも何卒宜しくお願い申し上げます。
  • Live2Dスタッフ Tak様

    ご返答ありがとうございます。

    早速ご教示頂いた変更を CubismRendererState_D3D11.cpp に施したところ、口の左右の端の黒い薄い線は表示されなくなりました。

    自作のプログラムに組み込んだ Live2D モデルを表示する処理にも同様の変更を施したところ、
    こちらも黒い薄い線が表示されなくなりました。

    迅速なご対応ありがとうございます。

    異方性フィルタリング判定の本修正については承知致しました。

    よろしくお願いいたします。
コメントするにはサインインまたは登録して下さい。