回答編集履歴
1
誤字を訂正
answer
CHANGED
@@ -4,9 +4,9 @@
|
|
4
4
|
※今回やりたい「重なった部分を切り取って別の場所に描画する」動作を何と呼ぶべきかよくわからなかったので、とりあえず以下では「かじる」と表現しています。かじる側(B)は「Biter」、かじられる側(A)は「Bitee」、かじられる領域を示すテクスチャは「_BiteRegion」といった具合です。
|
5
5
|
|
6
6
|
- 描画する、しないの制御にステンシル機能は使わない。
|
7
|
-
- Biter、Biteeスプライトのレンダリングに入る前に、追加の処理としてレンダーテクスチャ
|
7
|
+
- Biter、Biteeスプライトのレンダリングに入る前に、追加の処理としてレンダーテクスチャ_BiteRegionをアルファ0でクリアしておいて、アクティブなBiterをそこに描画する(レンダリングパイプラインの途中で、特定のオブジェクトをかき集めて追加レンダリングさせる部分は[Unity でスクリーンスペースのブーリアン演算をやってみた - 凹みTips](http://tips.hecomi.com/entry/2016/09/10/191006)で紹介されているテクニックにならいました)。
|
8
8
|
- Biterのレンダリングが行われる。BiterのマテリアルはSprites-Defaultのままとし、通常通り描画させる。
|
9
|
-
- Biteeのレンダリングが行われる。BiteeのマテリアルはSprites-DefaultをカスタマイズしたSprites-Biteeを使用した。2パス構成となっており、第1パスではかじられていない領域を本来の位置に描画、第2パスではかじられた領域をずらした位置に描画する。これら領域は、先ほど追加レンダリングした
|
9
|
+
- Biteeのレンダリングが行われる。BiteeのマテリアルはSprites-DefaultをカスタマイズしたSprites-Biteeを使用した。2パス構成となっており、第1パスではかじられていない領域を本来の位置に描画、第2パスではかじられた領域をずらした位置に描画する。これら領域は、先ほど追加レンダリングした_BiteRegionをサンプリングして、そのアルファを見ることで判定する。
|
10
10
|
|
11
11
|
### Biter(Bにアタッチ)
|
12
12
|
```C#
|