Color クラス link

Ren'Py にはある色空間から他の色空間への変換や、様々な色理論の操作の処理のために Color クラスがあります。 Color オブジェクトは immutable です。カラータプルが使用出来る場所ならどこでも使用出来ます。

カラータプルは 3 つの色空間のいずれか 1 つで処理します。

  • RGB - 赤、緑、青

  • HLS - 色相、輝度、彩度

  • HSV - 色相、彩度、明度

いくつかの処理を例示します。以下のカラーはすべて明るい緑です。

# Standard Ren'Py Colors.
Color("#0f0")
Color("#00ff00")
Color((0, 255, 0, 255))

# Convert from other color spaces.
Color(hls=(.333, 0.5, 1.0))
Color(hsv=(.333, 1.0, 1.0))

# Turns red into green via a method that returns a new color.
Color("#f00").rotate_hue(.333)
class Color(color=None, hls=None, hsv=None, rgb=None, alpha=1.0) link

Color クラスは様々な色空間での色の表現や操作に使用されます。アルファの形式で不透明度も表現します。

Color 作成時、 color または hls, hsv, rgb 引数の少なくとも一つが与えられるべきです ( すべて None なら、 None が返されます )。

color

color には次の Ren'Py が理解出来る標準フォーマットのいずれか 1 つを指定します。 :

  • Color オブジェクト

  • (r, g, b) や (r, g, b, a) のタプル、ここですべての数字は 0 から 255 です。

  • "#rgb" または "#rgba", "#rrggbb", "#rrggbbaa" の形式で 16 進数で指定する文字列

hls

色相、輝度、彩度の色空間のカラーです。これは 3 つの要素からなるタプルで与えられ、各要素は 0.0 から 1.0 までです。

hsv

色相、彩度、明度の色空間のカラーです。これは 3 つの要素からなるタプルで与えられ、各要素は 0.0 から 1.0 までです。

rgb

赤、青、緑の色空間のカラーです。これは 3 つの要素からなるタプルで与えられ、各要素は 0.0 から 1.0 までです。

与えられた Color にアルファチャンネルがなければ、 alpha が使用されます。 alpha は 0.0 から 1.0 でなければなりません。

Color オブジェクトは 4 つの要素のタプルとして使用でき、各要素は (red, green, blue, and alpha) です。タプルとして使用されるとき各要素の値は 0 から 255 です。

Color オブジェクトは + と -, * 演算子をサポートし、要素を考慮して加算、減算、乗算をします。これらの処理を使用すると要素がサポート外の範囲にある color を作成出来てしまいます。そのような color は Ren'Py の他の部分に渡さないべきです ( normalize メソッドは 要素が適切な範囲に制限された新しい Color を返します)。

Color オブジェクトは以下のプロパティーを持ちます。

hls link

色相、輝度、明度を指定する 3 つの浮動小数点のタプルとしてカラーを返します。各要素は 0.0 から 1.0 までの範囲です。

hsv link

色相、彩度、明度を指定する 3 つの浮動小数点のタプルとしてカラーを返します。各要素は 0.0 から 1.0 までの範囲です。

rgb link

赤青緑を指定する 3 つの浮動小数点のタプルとしてカラーを返します。各要素は 0.0 から 1.0 までの範囲です。

rgba link

赤青緑、アルファを指定する 4 つの浮動小数点のタプルとしてカラーを返します。各要素は 0.0 から 1.0 までの範囲です。

premultiplied link

赤青緑、アルファを指定する 4 つの浮動小数点のタプルとしてカラーを返します。各要素は 0.0 から 1.0 までの範囲です。赤青緑はアルファで乗算されます。

alpha link

0.0 から 1.0 までの範囲で、このカラーのアルファ(透明度)を返します。 0.0 では透明度で、 1.0 では不透明です。

hexcode link

#rrggbb または #rrggbbaa の形式の 16 進数カラーコードを含む文字列を返します。

Color オブジェクトは以下のメソッドを持ちます。 Color は immutable なので、これらのメソッドは常に新しい Color オブジェクトを返します。

interpolate(other, fraction) link

RGB色空間でこの Color と other を補間し、新しい Color を返します。 fraction が 0.0 なら結果はこの color と同じで、 1.0 なら other と同じです。

interpolate_hls(other, fraction) link

HLS色空間でこの Color と other を補間し、新しい Color を返します。 fraction が 0.0 なら結果はこの color と同じで、 1.0 なら other と同じです。

other は文字列か、 Color, HLS タプルです。

interpolate_hsv(other, fraction) link

HSV色空間でこの Color と other を補間し、新しい Color を返します。 fraction が 0.0 なら結果はこの color と同じで、 1.0 なら other と同じです。

other は文字列か、 Color, HSV タプルです。

multiply_hls_saturation(saturation) link

saturation でこの Color の彩度を乗算し、新しい Color を返します。これは HLS色空間で処理されます。

multiply_hsv_saturation(saturation) link

saturation でこの Color の彩度を乗算し、新しい Color を返します。これは HSV色空間で処理されます。

multiply_value(value) link

value でこの Color の明度を乗算し、新しい Color を返します。これは HVS色空間で処理されます。

normalize() link

すべての要素が 0 から 255 までにノーマライズされたバージョンの Color を返します。

opacity(opacity) link

opacity でこの Color のアルファチャンネルを乗算し、新しい Color を返します。

replace_hls_saturation(saturation) link

この Color の彩度を saturation で置き換え、新しい Color を返します。これは HLS 色空間で処理されます。

replace_hsv_saturation(saturation) link

この Color の彩度を saturation で置き換え、新しい Color を返します。これは HSV 色空間で処理されます。

replace_hue(hue) link

この Color の色相を 0.0 から 1.0 までの hue で置き換え、新しい Color を返します。

replace_lightness(lightness) link

この Color の輝度を lightness で置き換え、新しい Color を返します。これは HLS 色空間で処理されます。

replace_opacity(opacity) link

opacity でこの Color のアルファチャンネルを置換し、新しい Color を返します。

replace_value(value) link

この Color の明度を value で置き換え、新しい Color を返します。これは HSV 色空間で処理されます。

rotate_hue(rotation) link

rotation でこの Color の色相を回転し、新しい Color を返します。rotation は 1 回転に対する( 0.0 から 1.0 までの) 割合です。

shade(fraction) link

黒と混ぜてこの Color の影を作成します。 fraction は新しいカラーに対するこの color の割合です。 fraction が 1.0 なら color は変更されず、0.0 なら黒が返されます。

アルファチャンネルは変更されません。

tint(fraction) link

白と混合してこの color の淡色を作成します。 fraction は新しいカラーに対するこの color の割合です。 fraction が 1.0 なら color は変更されず、0.0 なら白が返されます。

アルファチャンネルは変更されません。