回答編集履歴

1

誤字を訂正

2018/05/11 22:55

投稿

Bongo
Bongo

スコア10816

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