- Uređeno
[Unity]特定のアタッチメントのカラーを動的に変更する方法について
私は現在、このような薄いグレーの髪をベースにした派生のモブキャラを作成しています。
そしてアタッチメントカラーを変更することによって、様々な髪色のキャラクターを表現できると考えました。
髪の色ごとにSpine上でスキンを分けるのは管理が大変なので、Unity上でアタッチメントカラーを動的に変更したいのですが、どのようにコードを記述すればよいでしょうか?
スケルトン全体の色変化はMaterialPropertyBlocksでできたのですが、髪や目のパーツなど、特定のアタッチメントだけ色変化をする方法を探しています。
こんにちは!
アタッチメントのカラー変更をご希望とのことですが、アタッチメントは直接色変更ができないため、特定のパーツの色だけを変えたい場合は、スロットでカラーを変更することになります。
スロットカラーの変更は以下のようなコードで実現できます。
var slot = skeletonAnimation.Skeleton.FindSlot("変更したいスロット名"); //カラー変更をしたいスロットを探す
slot.SetColor(new Color(1, 0, 0, 1)); //新しいスロットカラーを設定(r.g.b.a)
何かご不明な点がございましたらお気軽にご質問ください。どうぞよろしくお願いいたします。
こんにちは! いつもお世話になっています。
アタッチメントではなくスロットカラーでの変更、了解しました!
詳しいコードを載せてくださってありがとうございます。こちらを参考に実装したいと思います