(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!

    

Spineで作ったキャラクターの色をUnityで変える方法【Unity】【Spine】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2019.4.26f1
spine-unity 3.8


はじめに

今回はSpineで作ったキャラクターの色をUnityで変える方法の紹介記事です!


f:id:kan_kikuchi:20210810100752g:plain


なお、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);
f:id:kan_kikuchi:20210810100752g:plain


ちなみにuGUIで使うSkeletonGraphicの場合は

Inspectorから直接Colorの変更が出来ますし、コードでの変更も可能です。

f:id:kan_kikuchi:20210810095423j:plain
_skeletonGraphic.color = new Color(1f, 0f, 0f);