HP残量によって色が変化するHPゲージ

HP残量によって色が変化するHPゲージ

Color.Lerpを使用する方法

二色を使用したゲージ

 以下の白いHPゲージと背景画像を使用し、作成します。

Create→UI→Imageから背景用とゲージ用のImageを作成し、上画像をSource Imageへ設定します。

Script

 以下のScriptを作成し、ゲージ用のImageへアッタッチします。Color.LerpによってHP残量に応じた色を求めています。この求めた色をImageのColorへ渡すことでゲージの色を変えています。

実行結果

 実行結果は以下の通りです。color_1にrgba(0,255,0,255)をcolor_2にrgba(255,0,0.255)を設定しています。HP残量によってゲージの色が変化することがわかります。ただ、補間によって求められている色はあまりきれいではありません。

四色を使用したゲージ

 先ほどの二色を使用した補間ではきれいに色が遷移しませんでした。そこで二色から四色に増やすことで色がきれいに遷移できないかと考え、Scriptを作成しました。

Script

 作成したScriptは以下の通りです。hpが100%(color_1)~75%(color_2) 、75%(color_2)~25%(color_3) 、25%(color_3) ~0%(color_4) と場合分けし、ゲージの色を求めています。

実行結果

 実行結果は以下の通りです。hpがcolor_1にrgba(0,255,0,255)、color_2に rgba(255,255,0,255)、color_3に rgba(255,182,0,255)、color_4に rgba(255,0,0,255)としています。 先ほどの方法より、きれいに色が変化するようになりました。

HSVを使用する方法

 色を表現する方法はrgb以外にもあります。HSVは 色相(Hue)、彩度(Saturation・Chroma)、明度(Value・Lightness・Brightness)によって色を表します。HSVにより、彩度と明度を変化させずに色相のみを変更することでゲージの色を変えます。

Script

 Scriptは以下の通りです。 HSVtoRGBによってHSVからrgbへ変換しています。

実行結果

 実行結果は以下の通りです。色相を変更することで色が滑らかに変化していることがわかります。

HSLを使用する方法

 HSLは色相(Hue)、彩度(Saturation)、輝度(Lightness/Luminance または Intensity)によって色を表します。 このHSVを使用し、彩度と輝度を変化させずに色相のみを変更することでゲージの色を変えます。

Script

 Scriptは以下の通りです。 HSLtoRGBによってHSLからrgbへ変換しています。

実行結果

 実行結果は以下の通りです。HSVと同様に色相を変更することで色が滑らかに変化していることがわかります。

参考サイト

wikipedia:HSV色空間

wikipedia:HLS色空間