画像を透明にするには

◆PROCESSING 逆引きリファレンス

 カテゴリー:イメージ処理

画像を透明にするには

【解説】

ゲームでは、キャラクターを登場させるシーンで、徐々に姿を現したり、徐々に姿を消す効果(フェードイン・フェードアウト)を演出したい場合があります。

またダメージを受けた際に、キャラクターを青っぽく表示したり、赤っぽく表示するなどの効果を演出したい場合もあります。例えば毒を受けたら青っぽく表示し、瀕死状態なら赤っぽく表示するなどです。

このような場合、tint() 命令が役に立ちます。

【構文】

色味や透明度を変更する
tint( rgb ) ;
tint( rgb, alpha ) ;
tint( gray ) ;
tint( gray, alpha ) ;
tint( v1, v2, v3 ) ;
tint( v1, v2, v3, alpha );

変更を解除する
noTint() ;

【パラメータ】

rgb  :int  :RGBまたはHSB値を指定します。RGBなら #RRGGBB で指定可能です。
gray    :float :白黒の濃淡値を指定します。0 が真っ黒、255 が真っ白です。
v1            :float :RGBのR、またはHSBのH値を指定します。
v2            :float :RGBのG、またはHSBのS値を指定します。
v3            :float :RGBのB、またはHSBのB値を指定します。
alpha     :float :透明度を指定します。0が透明、255が不透明です。

【戻り値】

なし

【注意】

色や透明度を変更する場合:
通常、 RGBは 0 – 255、HSBは 0 -100 の範囲で値を指定します。またカラーモードの初期値はRGBです。

rgb または v1からv3の値がRGBとHSBのどちらであるかは、直前に指定された colorMode() によって決まります。またRGB、HSBの各値の範囲も colorMode() の影響を受けます。

各パラメータの範囲が規定の範囲を逸脱していても、エラーにはなりません。そのかわり、続く image() 命令で画像表示が意図しない表示となる事があります。パラメータの範囲は、プログラマー側で管理してねって事のようです(汗)。

色を変更したくない(原画の色をそのまま表示したい)場合は 、色指定に白色を与えます。例えばRGBモードなら
tint( #FFFFFF ) ;
と指定します。

alphaを255にすると不透明(原画の透明度通り)に、0にすると完全透明になります。

一度設定した tint() の影響は再度 tint() を発行するか、noTint() 命令で解除するまで継続します。

変更を解除する場合:
tint() 命令で指定した内容は、noTint() 命令で解除(初期状態に戻す事が)可能です。

noTint() を発行すると、tint()でrgbに真っ白を指定し、alphaに不透明を指定した状態と同じになります。

【関連記事】

なし


サンプルプログラム

サンプルについての全般的な注意:
下記サンプルは PROCESSING3.x用です。PROCESSING2.xでは setup() 関数の中にある「3.x用」とコメントされた行を削除し、「2.x用」と書かれたコメント行を有効にしてください。

RGB値の色を付加する例:

RGB値で色を付加した結果を、上下2段で表示しています。毒を受けたら真っ青になるなんて場面で使えそうですね(笑)。

<出力サンプル:画像URL:王国興亡記 様>
tintRGB_sample1

 

グレーの濃淡を付加する例:

grayで色を付加した結果を、上下2段で表示しています。モノクロの濃淡で色が変化していく様子がわかると思います。

<出力サンプル:画像URL:王国興亡記 様>
tintGray_sample1

 

透明度を変化させる例:

透明度を変化させた様子が、上下2段で表示されます。

ただし私の環境では、上記サンプルの「 background 」命令を記述しないと、透明度が期待通り反映されませんでした。これはPROCESSINGの不具合なのか、はたまた仕様なのか・・・はっきりしません(汗)。

<出力サンプル:画像URL:王国興亡記 様>
tintRGB_sample2

 

効果を取り消す例:

マウスをクリックすると画像が真っ黒(効果を付加)に、再度クリックすると通常(効果を取り消し)になります。

<出力サンプル:画像URL:王国興亡記 様、日商PC様>

tint_sample6

 

フェードイン・アウトさせる例:

応用です。マウスをクリックするとキャラクターが徐々に姿を現します。もう一度マウスをクリックすると、今度はキャラクターが徐々に消失します。

RPGで使えそうな効果ですね(笑)。

<出力サンプル:画像URL:RETRIP 様、王国興亡記 様、日商PC様>

tint_sample5下記はサンプルプログラムをP5.jsで書き直したものです。マウスクリックすると動作イメージを確認できます。

 


PROCESSING逆引きリファレンス一覧 へ戻る

本ページで利用しているアイコン画像は、下記サイト様より拝借しております。各画像の著作権は、それぞれのサイト様および作者にあります。