Unity上でのクリッピングマスクのギザギザについて+「ブレンド方式」の設定がUnity2022上に反映されない

先日のご対応、ありがとうございました。
度々すみません。また問題が発生したので、質問/報告させてください。

Unity上でのクリッピングマスクの精度について

ブレンド方式「加算」のアートメッシュを使用してリムライトを表現したいのですが、
Unity上ではクリッピングマスクの精度が足りないせいか、「光」のアートメッシュ(Unity上でのDrawable)がクリッピング先のパーツから若干はみ出して、更にギザギザの境界線を発生させています。


(Unity2021.3.10+SDKforUnity 4.r.5)

CubismEditor上ではこの様に綺麗にクリッピングしています。
kami cubism

SDKでのマスクの挙動はCubismEditorと違うということは了承していますが、なんとかこのクリッピングによるギザギザを解消/軽減する方法はないでしょうか?

「ブレンド方式」の設定がUnity2022上に反映されない


上のと同じモデルですが、Unity2022(2022.1.17と2022.1.22で確認)上ではこんな見た目になります。

CubismEditor上で「加算」のアートメッシュを「通常」にすれば全く同じ見た目になりますので、
kami cubismNormal
「Unity2022にブレンド方式が反映されない」という不具合かと思います。
急を要しませんが、次のSDKのアップデートなどで修復をお願いいたします。

以上です。よろしくお願いいたします。

@Syu

弊社製品をご利用いただきまして誠にありがとうございます。
Cubism SDK 開発チームです。

Unity上でのクリッピングマスクの精度について

こちらはおそらくクリッピングの使用数が多い、または一つのマスクのサイズが大きいため発生していると思われます。

Cubismでは、モデルに設定されているマスクを一つのマスク用テクスチャにすべて書き込み、それをクリッピングされるメッシュの描画に使用します。(添付画像参照)

モデルに設定されているマスクの数が多い場合、マスク一つに割り当てられるマスク用テクスチャの領域が小さくなり、輪郭部分の品質が落ちることがあります。
また、マスク用テキスチャへの書き込みの際に、領域に合うようリサイズされます。
そのためマスクの数が多くなくても、マスクのもとのサイズによっては相対的に書き込まれる領域が小さくなることによって輪郭部分の品質が落ちることがあります。

回避方法といたしましては2つございます。

  1. モデルに使用するマスクの数を削減する。

  2. マスク用テクスチャの Size (In Pixels) の値を大きいものに変更する。
    2022-11-21_11h42_29

ただし、設定する値やプラットフォームによってはパフォーマンスが低下する可能性がありますのでご注意ください。

Cubism SDK for Unityでは、デフォルトでモデルが使用するマスク用テクスチャは以下に配置されております。
/Assets/Live2D/Cubism/Rendering/Resources/Live2D/Cubism/GlobalMaskTexture
2022-11-21_12h06_44

「ブレンド方式」の設定がUnity2022上に反映されない

こちらはCubismエディタとUnity 2022とで使用している色空間が異なることが原因です。

Unityで使用できる色空間はGammaとLinearの2つあります。
使用するテクスチャが同一でも、どちらの色空間を使用するかによって画面に描画される結果が異なります。
Cubismではエディタ、SDKともにGammaを想定しています。
しかしUnityは2022.1以降、デフォルトで設定される色空間がLinearになります。
そのため、エディタとUnityそれぞれの想定している色空間が一致せず、お問い合わせいただいている現象が発生します。

こちらの現象は、UnityのPlayer SettingsからColor SpaceをGammaに変更する(添付画像参照)、またはSDKで使用しているシェーダの改修のいずれかを行うことで回避することが可能です。

以上、よろしくお願いいたします。

「いいね!」 1

無事解決できました!
丁寧なご解説、誠にありがとうございます!