ユーザ用ツール

サイト用ツール


vci:script:reference:color

Color(色の指定)



Effekseer (エフェクト)のエフェクトのカラーや、マテリアルの色を変更したりする時に使用します。


メソッド一覧

メソッド一覧は[EmbeddedScriptWorkspace]フォルダ内の[types.lua]を開くと最新のメソッド一覧を確認できます。

メソッド名 説明
_new fun(r: number, g: number, b: number, a: number): Color 初期化 新しいColorを宣言する時に使用します
ToString fun(): string 色を文字列に変換します
GetHashCode fun(): number ハッシュ値を取得します
Lerp fun(a: Color, b: Color, t: number): Color AのカラーからBのカラーまで補間します
LerpUnclamped fun(a: Color, b: Color, t: number): Color AのカラーからBのカラーまで補間します(clampされません)
_toVector4 function vector4とcolor型の変換 (現在は使用できません)
_toColor function vector4とcolor型の変換 (現在は使用できません)
HSVToRGB fun(H: number, S: number, V: number): Color HSVで指定してカラーを作成します
red Color 赤(レッド) RGBA(1, 0, 0, 1)
green Color 緑(グリーン) RGBA(0, 1, 0, 1)
blue Color 青(ブルー) RGBA(0, 0, 1, 1)
white Color 白(ホワイト) RGBA(1, 1, 1, 1)
black Color 黒(ブラック) RGBA(0, 0, 0, 1)
yellow Color 黄(イエロー) RGBA(1, 0.922, 0.016, 1)
cyan Color 水(シアン) RGBA(0, 1, 1, 1)
magenta Color 紫(マゼンダ) RGBA(1, 0, 1, 1)
gray Color 灰(グレー) RGBA(0.5, 0.5, 0.5, 1)
clear Color 透明(クリア) RGBA(0, 0, 0, 0)
grayscale number カラーをグレースケールにした時の濃さを求めます
linear Color カラーをリニアに変換します
gamma Color カラーをガンマに変換します
maxColorComponent number RGBの要素で最も大きい値を返します
r number Color の Red(赤) の要素にだけアクセスします
g number Color の Green(緑) の要素にだけアクセスします
b number Color の Blue(青) の要素にだけアクセスします
a number Color の alpha(透明度) の要素にだけアクセスします

RGBについて


プログラムでは色を赤(Red)、青(Blue)、緑(Green)に分けて指定する事で表現します。
この表現をそれぞれの頭文字をとってRGB(RGBカラーモデル)と呼びます。
RGBに加えて、透明度(alpha)の指定が入ったものをRGBAと呼びます。

色を作成する場合、RGBAの成分を混ぜる事で表現しています。
例えば、紫色であればRとBの値を大きくし、黄色であればRとGの値を大きくとります。
全ての値が1の時は白になり、0の時は黒になります。また、RGBを同じ値にする事でグレーになります。


  • ユーティリティで用意されているcolorの確認を行えます。

サンプル

main.lua
    -- RGB
    print("red : "..tostring(Color.red))
    print("green : "..tostring(Color.green))
    print("blue : "..tostring(Color.blue))
 
    -- white gray black
    print("white : "..tostring(Color.white))
    print("gray : "..tostring(Color.gray))
    print("black : "..tostring(Color.black))
    -- clear
    print("white : "..tostring(Color.clear))
 
    -- cyan magenta yellow
    print("cyan : "..tostring(Color.cyan))
    print("magenta : "..tostring(Color.magenta))
    print("yellow : "..tostring(Color.yellow))

__new()

第1引数:red(number) 第2引数:green(number) 第3引数:blue(number) 第4引数:alpha(number)

  • RGBAを直接指定してカラーを作成します。指定する範囲は 0 から 1 です。

サンプル

main.lua
function onUse()
 
    -- グレーを作成します
    local color = Color.__new(0.5, 0.5, 0.5, 1.0)
 
    -- CubeColorのマテリアルをcolorに変更します
    vci.assets._ALL_SetMaterialColorFromName("CubeColor", color)
 
end

実行結果

(CubeColorのマテリアルの色がグレーに変化します)

HSVToRGB()

第1引数:Hue(number) 第2引数:Saturation(number) 第3引数:Value(number)

  • HSVを指定してカラーを作成します。指定する範囲は 0 から 1 です。
  • RGBで色を作成するのは直感的ではないので、HSVで指定すると直感的に色が選べます。
  • 詳細は VCIでHSVtoRGBを実装する にも掲載されています。

サンプル

main.lua
local _hue = 0
 
function update()
 
    -- hueを毎フレーム0.01ずらす
    _hue = _hue + 0.01
 
    -- hueが1を越えたらリセット
    if _hue > 1.0 then
        _hue = 0
    end
 
    -- _hueの値を使ってColorを適用する
    local color = Color.HSVToRGB(_hue, 1, 1)
    vci.assets._ALL_SetMaterialColorFromName("CubeColor", color)
 
end

実行結果

(CubeColorが虹色に変化します)

linear変換 gamma変換

  • カラーをlinearとgammaに変換できます。

サンプル

main.lua
function onUse()
 
    -- gray 0.5
    local col = Color.__new(0.5, 0.5, 0.5, 1.0)
    print(col.ToString())
 
    -- linear
    print(col.linear.ToString())
 
    -- gamma
    print(col.gamma.ToString())
 
end

実行結果

RGBA(0.500, 0.500, 0.500, 1.000)
RGBA(0.241, 0.241, 0.241, 1.000)
RGBA(0.735, 0.735, 0.735, 1.000)

vci/script/reference/color.txt · 最終更新: 2019/11/07 22:52 by navana

ページ用ツール