kenjizenki

いつもお世話になっています。
Spineでデータを作成し、Unityで動かしています。

質問なのですが、Spineの一部にだけモザイクをかける方法を教えていただきたいです。

サンプルAの画像をサンプルBの画像のように、特定のボーンにのみモザイクをかけたいと思っています。

参考になるサイトやフォーラムがありましたら、教えてもらえるととても助かります。
添付ファイルを見るにはパーミッションが必要です
アバター
kenjizenki
  • 記事: 13

Harald

新しいスパインユニティドキュメントページで説明されているように、カスタムスロットマテリアルを使用できます。
You could use custom slot materials, as described on the new spine-unity docs page:

spine-unity Runtime Documentation: Changing Materials Per Instance
skeletonAnimation.CustomSlotMaterial[slot] = newMaterial; // to enable the replacement.
skeletonAnimation.CustomSlotMaterial.Remove(slot); // to disable that replacement.
この方法で、ピクセル化された検閲方法でレンダリングする特別なシェーダーでマテリアルを割り当てることができます。 または、このマテリアルの同じアトラステクスチャのピクセル化バージョンを作成します。
This way you could assign a material with a special shader that renders in a pixelated censored way. Or simply create a pixellated version of the same atlas texture for this material.

Unity AssetStoreでもこのパッケージを見つけました。
https://assetstore.unity.com/packages/vfx/shaders/censor-effect-111983
たぶんそれも役立ちます。
I also found this package on the Unity AssetStore:
https://assetstore.unity.com/packages/vfx/shaders/censor-effect-111983
Maybe it helps as well.
アバター
Harald

Harri
  • 記事: 857

kenjizenki

ありがとうございます!
返信遅くなりすみません。

頂きました情報をもとに作成進めさせていただこうと思います!
ご確認ありがとうございます、とても助かります!

---

回答ありがとうございました。
早速もらった情報で作ってみたのですが問題が2つ発生しました。

1.
gunにモザイクをかけたのですが、モザイクが四角くかかってしまいました。
モザイクをgunの形に合わせてかけることは出来ますか?
スライド1.JPG


2.
モザイクをかけたgunが顔の後ろに隠れたときに、顔にもモザイクが入ってしまいました。
「gunにだけモザイクを使う」ということは出来ますか?
スライド2.JPG


アドバイスを貰っていつもとても参考になります。
今回も助けてもらえると、とても助かります。
添付ファイルを見るにはパーミッションが必要です
アバター
kenjizenki
  • 記事: 13

Harald

どういたしまして!

質問1について:
これはもう少し注意が必要ですが、カスタムシェーダーでも実行できます。このシェーダーは、フル解像度でアルファテストを実行する必要があります(透明でない場合は、ピクセル化されたダウンサンプリングされた画像をレンダリングします)。
画像に示されているソリューションをどのように実現しましたか? Unity Asset Storeのシェーダーですか、それとも何か違うものですか?ソリューションは、使用されるアプローチに大きく依存します。

シェーダーを使用する場合は、ここでフォーラムにシェーダーファイルを投稿できます(または、フリーでないアセットの場合はメールで送信します)。それから私はそれを見ることができます。

質問2について:
繰り返しますが、画像に示されているソリューションをどのように実現するかに大きく依存します。
まだこれを行っていない場合:上記のように、 SkeletonRenderSeparatorを使用して、スケルトンを2つ以上のパーツに分割し、それをガンパーツにのみ適用できます。おそらく、使用されている検閲ソリューションでは、一部のレイヤーにのみ適用するレイヤーマスクが提供されているため、銃を「検閲済み」レイヤーに割り当てることができます。
SkeletonAnimationにZインスペクションを追加することもできます(インスペクターの「詳細」セクション)。

--- Original English text below ---

You're welcome!

Regarding question 1:
This is a bit more tricky, but can be done with a custom shader as well. This shader would need to perform the alpha-test at full-resolution (and if it is not transparent, render the pixelated downsampled image).
How did you achieve the solution shown in your images? Is it a shader from the Unity Asset Store, or something different? The solution depends heavily on the used approach.

If it uses a shader, you can post the shader file here on the forum (or send it via email in case it is a non-free asset). Then I can have a look at it.

Regarding question 2:
Again, it depends heavily on how you achieve the solution shown in your images.
In case you haven't done this already: you could use a SkeletonRenderSeparator, as described above, to separate the skeleton into two or more parts, and then only apply it to the gun part. Perhaps the used censoring solution provides layer masks to apply it only to some layers, then you could assign the gun to a 'censored' layer.
You could also add some Z-spacing at the SkeletonAnimation (in the Advanced section in the inspector).
アバター
Harald

Harri
  • 記事: 857


Return to 日本のSpine ユーザー