クリッピングマスク

(2019/12/12 更新)

クリッピング���スクはまばたきの動作などによく用いられます。
ここではクリッピングマスクの手順について解説します。

 

クリッピングマスクの手順

マスクにするアートメッシュのIDを指定することで、クリッピングマスクを使用することができるようになります。
ここでは、白目のアートメッシュで黒目部分のアートメッシュに対してクリッピングマスクを適用するまでの手順を紹介します。

まずはマスクにするアートメッシュ(白目の部分)を選択し、コピーします。

クリッピングするアートメッシュ(黒目の部分)を選択し、[インスペクタ]パレットの[クリッピング]の欄にペーストします。

[クリッピング]にマスクにするアートメッシュのID(ArtMesh36)がペーストされ、黒目の部分がクリッピングされます。

下記の手順でも同様にクリッピングマスクを適用することができます。

  1. マスクにするアートメッシュを選択し、[インスペクタ]パレットで[ID]のテキストをコピーします。
  2. クリッピングするアートメッシュを選択し、[インスペクタ]パレットの[クリッピング]にペーストします。

TIPS
コンマで区切ることで複数のアートメッシュを指定できます(例:ArtMesh1, ArtMesh2...)

POINT
SDK以外の動画作品などで使用される場合、クリッピングマスクは多用しても問題ありません。 

 

SDK使用時のクリッピング注意点

ゲーム開発などを目的とし、SDKへの組み込みを想定している場合は、必ず下記の注意点をご確認ください。

・クリッピング上限

Cubism 3 SDK以降のクリッピング描画方式では、クリッピングに指定しているIDの順列の種類が一定数を超えると表示が乱れるなど不具合が出る可能性があります。
実際の特性はプログラムの実装に依存するため、実機で表示を確認してください。

詳しい原理に関してはSDKマニュアルのマスクの前処理方式を確認してください。

・負荷・パフォーマンスの低下

環境によってはクリッピングによる負荷が大きくなることがあります。
利用は必要最低限に留めることをお勧めします。

・表現の違い

環境、表示サイズなどによって、表現・見た目に違いが出ることがあります。
厳密な表現が求められる場合は事前に実機でご確認ください。

 
TIPS
各プラットホームSDKで標準のマスクの特性は以下のようになります

プラットホーム名 マスクの上限数 用意されるマスクの範囲 用意されるマスクのサイズ
Cubism SDK for Native 36/モデル ※1 クリッピングされるすべてのアートメッシュの入る矩形 数に応じて可変
Cubism SDK for Web 36/モデル クリッピングされるすべてのアートメッシュの入る矩形 数に応じて可変
Cubism SDK for Unity 64/シーン マスクするすべてのアートメッシュの入る矩形 ※2 固定

※1 Cubism SDK for NativeではCubismRenderer::_useHighPrecisionMaskをtrueに変更することで描画ごとにマスクを生成するようになます。
   これにより、マスク数の上限がなくなり、マスクのクオリティは常に最大で描画されるようになります。
※2 Cubism SDK for Unityでは他のfor Native, for Webとマスクの用意する範囲が異なります。
   詳しくはUnitySDKとNativeSDKの比較のマスク特性の項目を確認してください。

 

 

マスクの数の確認

エディタ上でのマスクの数の確認

4.0.03以降のCubism Editorでは統計情報でモデルに含まれるクリッピングの数、マスクの順列の種類を確認できます。

 

 

SDKで認識されるマスクの数え方

SDKで認識されるマスクの数はIDの順列によって識別されます。
例を示すと以下のような数え方になります。

マスクIDの表示 認識される枚数
ArtMesh1
ArtMesh1
ArtMesh2
2枚
ArtMesh1 , ArtMesh2
ArtMesh1
ArtMesh1 , ArtMesh2
ArtMesh2
3枚
ArtMesh1 , ArtMesh2, ArtMesh3
ArtMesh1 , ArtMesh2, ArtMesh3
ArtMesh1 , ArtMesh2, ArtMesh3
ArtMesh1 , ArtMesh2, ArtMesh3
1枚

 

組み合わせが同じで順番が異なる場合、for Native, for Webでは同一のマスクとして認識されますが
for Unityでは異なるマスクとして認識されます

マスクIDの表示 for Native, for Webでの認識数 for Unityでの認識数
ArtMesh1,ArtMesh2
ArtMesh2,ArtMesh1
ArtMesh1,ArtMesh2
ArtMesh2,ArtMesh1
1枚 2枚

 

 

Cubism Viewer (for OW)での確認

Cubism Viewer (for OW)でも統計情報でマスクIDの順列の数を確認することができます。

 

 

マスクに関する警告について

Cubism Editor 3.2.05からはクリッピングマスクに使用されるマスクが不正な状態にあると警告がでるようになりました。

 

警告発生時の注意点

「マスクに関する警告」が発生した状態で組み込み用ファイルを出力し、それをSDKを使ったアプリケーションで読み込んでしまうと
以下のような問題が発生する可能性があります。

発生する問題:

  • 強制終了する
  • 組み込み用ファイルを読み込めない
  • SDKとEditor上の表示が異なる

以上の問題を回避するため、「編集上一時的に許容されるが、出力時には好ましくない」状態に対して警告が出ます。
Animator上では問題ないように見えますが、今後のアップデートの影響で表示内容が変化する可能性があるため、修正をお勧めしています。

 

警告発生時の状況について

「マスクに関する警告」が発生する状況は、大きく分けて2つの種類があります。

キーロスト:

マスクになるアートメッシュが、パラメータのキーフォーム外に存在しているため見えない状態。
アプリケーションの実装状況によっては表示が大きく異なる可能性があります。

非表示・下絵に設定されたアートメッシュ:

非表示や下絵に設定されたアートメッシュは、組み込み用ファイルを��力する際に標準の設定で出力されません。
このため、そのままSDKで読み込みを行うとマスクのアートメッシュは不正な値を指示した状態になり、強制終了などの問題が
発生する可能性があります。

 

ケース別のモデル修正方法

1.透明なアートメッシュを、マスクとして参照したい場合

マスクに設定したアートメッシュの不透明度を0%にして対応してください。
アートメッシュにすでにキーフォームが打たれていて不透明度の操作が難しい場合は、マルチキー編集を使用したり、デフォーマを
アートメッシュの親に設定し不透明度だけを一括で操作する方法もあります。

TIPS
クリッピングマスクの動作は実装状況に依存します。
詳しい注意事項は開発担当者と相談の上、モデルを作成することをお勧めします。

UnitySDKとNativeSDKの比較について(プログラマ向け)

2.非表示パーツの中に存在するアートメッシュを、マスクとして参照したい場合

Cubism Editor 3.2.05以降では、すべてのマスクが非表示状態になった際に、クリッピングマスク自体が解除されるようになりました。
非表示パーツ内のアートメッシュをマスクに設定している場合、クリッピングマスクが解除された見た目になってしまいます。

編集がしにくい場合は、マスクに設定されたアートメッシュを一時的に表示パーツへ移動させて対応してください。

TIPS
非表示状態になるマスクが存在すると、前述した警告や、moc3書き出し時にエラーが表示されます。
組み込み用途として使用する場合、非表示のままmoc3を書き出してしまうと、意図しない表示になる場合があるため、
パーツを表示状態にするのを忘れないよう注意してください。

3.腕の切り替えなどで、補間せず消えるアートメッシュをマスクとして参照したい場合

キーフォームの範囲外にキーが移動した際に、アートメッシュの表示が消える効果をそのままに使用したいケースです。

Cubism Editor 3.2.05以降では、すべてのマスクが非表示状態になったり、マスクに設定しているオブジェクトがキーフォームの範囲外で
非表示状態になる場合、クリッピングマスク自体が解除されてしまいます。

回避策として、空のアートメッシュを作成しておき、常に表示状態のマスクとして使用します。
空のアートメッシュは「当たり判定用アートメッシュ」を利用しましょう。
当たり判定用アートメッシュの設定方法

作成した空のアートメッシュを「表示を消したいマスク」と一緒にマスクとして設定しておくことで、常に表示状態のマスクが存在することになります。
これにより、クリッピングマスク自体は解除されず、キーフォームの範囲外の表示を消す効果を使用できるようになります。

※この場合、空のアートメッシュにはキーを打つ必要はありません。位置やサイズも影響はない為、自由に設定してください。
※非表示状態になるマスクが存在すると、前述した警告や、moc3書き出し時にエラーが表示されます。
組み込み用途として使用する場合、実装状況によって意図しない表示になる場合があるため、開発担当者と相談の上モデルを作成することをお勧めします。

 

警告を非表示にする

警告の表示は「ファイル/設定/マスクの設定を常に表示する」のチェックを外すことで非表示にすることができます。

 

警告を無視して作成する際は、実機での表示具合を確認しながら行ってください。

 

Copyright © 2019 Live2D Inc.