![見出し画像](https://assets.st-note.com/production/uploads/images/149163906/rectangle_large_type_2_0a34f34ccaca4e2e2e8784d94db957f1.jpeg?width=1200)
【仕事/Live2D/メモ】1つのパーツを2つ以上のand条件でマスクする
Live2Dモデリングの備忘録。
あるパーツを他のパーツ上だけで表示したい時はマスクを使用するが、1つのパーツを2つ以上のパーツが同時に重なる箇所でのみ表示したい場合は少々手順が複雑になる。
まずは瞳を白目の上でだけ表示したい場合など、1:1のパターン。
![](https://assets.st-note.com/img/1722423837082-XE1oZISEOB.png)
これを白目の範囲だけで表示したい
この場合は瞳関連のパーツに、白目でマスクをかけると解決する。
![](https://assets.st-note.com/img/1722423972599-KQy0YF8Qai.png)
![](https://assets.st-note.com/img/1722423986916-UWGUA2PyPR.png)
1:1のマスクならばこれでいいのだが、ここに条件となるパーツが
加わると途端にややこしくなる。
この場合は「瞳の上でだけ表示されるパーツ」として影を用意する。
![](https://assets.st-note.com/img/1722424156375-qtsMQ8bJwJ.png)
![](https://assets.st-note.com/img/1722424196392-TFdLAfdob6.png)
単純に瞳でマスクしても、影が白目からはみ出してしまう。
条件はあくまで「瞳のパーツがある範囲上のみに影を表示する」であり、白目は無視されてしまった。
では、白目と瞳の両方でマスクするとどうなるか。
![](https://assets.st-note.com/img/1722424380053-6ZS4FQJgw2.png)
![](https://assets.st-note.com/img/1722424447694-TQxx7DdDet.png)
ID【ArtMesh14】が瞳
これはCubismEditorの内部処理では、マスクの同時指定はorで繋がってしまうことが原因。
つまり、以下の状態。
「瞳のパーツがある範囲上のみに影を表示する」
または(or)
「白目のパーツがある範囲上のみに影を表示する」
こちらの意図としては、両方の条件を満たす箇所にのみ表示して欲しい。
「瞳のパーツがある範囲上のみに影を表示する」
かつ(and)
「白目のパーツがある範囲上のみに影を表示する」
残念ながら現在のCubismEditorでは、マスクのand条件は指定できないため、設定の変更のみでは解決できない。
ただし以下のようなパーツを2つほど追加することで、正しくマスクすることができる。
![](https://assets.st-note.com/img/1722424968936-hsW3MsFVmb.png)
サイズは、瞳より大きい程度
![](https://assets.st-note.com/img/1722424988601-HGsuj6sJH7.png)
サイズは、白目より大きい程度
各パーツに、このマスク用パーツをマスク反転で指定する。
また、マスク用パーツは不透明度を0%に設定。
すると条件と結果は以下のようになる。
「瞳マスクのパーツがある範囲上以外に影を表示する」
または(or)
「白目マスクのパーツがある範囲上以外に影を表示する」
![](https://assets.st-note.com/img/1722425409564-NKkfAwPt7p.png)
![](https://assets.st-note.com/img/1722425396315-RSN3ddCV63.png)
ID【ArtMesh18】が瞳マスク
マスク反転にチェック
無事、理想の結果となった。
ただし瞳の移動や瞬きの動きをつける際、マスク用パーツも対応させる必要がある。
![](https://assets.st-note.com/img/1722425763077-8vOhDLCK7O.png)
![](https://assets.st-note.com/img/1722425811826-40c6eZKPxg.png)
重みを白目100%に設定
![](https://assets.st-note.com/img/1722425908848-9RVZW6HReV.png)
(まぶたの線は一時的に非表示)
欲を言えばCubismEditor側にマスク指定の自由度を上げて欲しいところだが、他の機能がばんばん強化されているのでこれくらいは手元で対応したい。
使いこなせば自由度の高くなるテクニックなので、目以外でも活用できる箇所は多いと思う。
![](https://assets.st-note.com/img/1722426673575-SlCJlYh7IX.png)
これで各パーツを自由に動かすことができる
他にand条件マスクで有用なテクニックがあれば、コメントいただけると嬉しい。