この記事でのバージョン
Unity 2019.4.26f1
spine-unity 3.8
はじめに
今回はSpineで作ったキャラクターの色をUnityで変える方法の紹介記事です!
なお、SpineをUnityで使えるようにする導入方法については以下の記事を参照の事。
ちなみに記事中では使っている画像やアニメーションは、
上記の記事でも紹介したサンプルを使用しています。
キャラクターの色を変える方法
さっそくですが、キャラクターの色を変えたいときは
SkeletonAnimationからアクセス出来るskeletonのメソッドSetColorを使います。
なお、Inspectorから直接色を変える事は出来ません。
//赤に変更(_skeletonAnimationはSkeletonAnimation) _skeletonAnimation.skeleton.SetColor(new Color(1f, 0f, 0f));
また各色や不透明度を直接設定する事も可能です。
_skeletonAnimation.skeleton.R = 1.0f; //赤 _skeletonAnimation.skeleton.G = 0f; //緑 _skeletonAnimation.skeleton.B = 0f; //青 _skeletonAnimation.skeleton.A = 1f; //不透明度
試しにパーリンノイズを使ってランダムに変えてみると以下のような感じに。
//パーリンノイズを使ってランダムに色を変更 _skeletonAnimation.skeleton.R = Mathf.PerlinNoise(Time.time, 0); _skeletonAnimation.skeleton.G = Mathf.PerlinNoise(Time.time, 64); _skeletonAnimation.skeleton.B = Mathf.PerlinNoise(Time.time, 128);
ちなみにuGUIで使うSkeletonGraphicの場合は
Inspectorから直接Colorの変更が出来ますし、コードでの変更も可能です。
_skeletonGraphic.color = new Color(1f, 0f, 0f);