Game Maker Language リファレンス > 組み込み関数 用途別 > 2D グラフィック機能 > テクスチャ・ブレンド機能 > draw_set_blend_mode_ext
Game Maker Language リファレンス > 組み込み関数 用途別 > 色とブレンドモード > draw_set_blend_mode_ext
拡張された描画ブレンドモードを設定します
draw_set_blend_mode_ext( src, dest );
GameMaker:StudioではSourceカラー(描こうとしているピクセルの色)とDestinationカラー(すでに描かれているピクセルの色)を描画時に判定してブレンドモードに従い計算をして描画を行います。各色の成分は0〜1の間の浮動小数点値として記憶されます。新しい色はSourceカラーとDestinationカラーの各要素との各コンポーネントの乗算した結果となります。
この関数はカスタムブレンドモードを作成するためにSourceとDestinationを設定することが可能です。R成分・G成分・B成分・A成分を持っておりSourceは(Rs, Gs, Bs, As)、Destinationは(Rd, Gd, Bd, Ad)と定義すると、使用可能な11の定数は以下の通りとなります
定数名 | ブレント値(Red, Green, Blue, Alpha) |
bm_zero | (0, 0, 0, 0) |
bm_one | (1, 1, 1, 1) |
bm_src_color | (Rs, Gs, Bs, As) |
bm_inv_src_color | (1-Rs, 1-Gs, 1-Bs, 1-As) |
bm_src_alpha | (As, As, As, As) |
bm_inv_src_alpha | (1-As, 1-As, 1-As, 1-As) |
bm_dest_alpha | (Ad, Ad, Ad, Ad) |
bm_inv_dest_alpha | (1-Ad, 1-Ad, 1-Ad, 1-Ad) |
bm_dest_color | (Rd, Gd, Bd, Ad) |
bm_inv_dest_color | (1-Rd, 1-Gd, 1-Bd, 1-Ad) |
bm_src_alpha_sat | (f, f, f, 1) where f = min(As, 1-Ad) |
これらの異なるブレンドモードがどのように動作するかを視覚化することは非常に困難な場合があります。そういった場合、単一の背景の上に描画モードのさまざまな組み合わせで描画され、単一のスプライトの基本的な相互作用を示して簡単なチャートを見つけることができようにします。使用するブレンドモードの実際の結果は非常に多くのスプライト内の色(スプライトと背景の色とアルファ値)によって異なりますのでご注意ください。
すべてのプラットフォームですべてのブレンドモードが使えるわけではありません。Android、Tizen、iOS、HTML5(WebGL無効状態)は、以下のブレンドモードが使用できません
(※訳者注:iOSでは上記定数は使えました)
draw_set_blend_mode_ext(bm_src_alpha, bm_one); draw_circle_color(100, 100, 50, c_white, c_black, 0); draw_set_blend_mode(bm_normal);
これはグロー効果の例となります
// 乗算 draw_set_blend_mode_ext(bm_zero, bm_src_color); // 反転 draw_set_blend_mode_ext(bm_inv_dest_color, bm_zero); // 除外 (排他的論理和) draw_set_blend_mode_ext(bm_inv_dest_color, bm_inv_src_color); // スクリーン draw_set_blend_mode_ext(bm_inv_dest_color, bm_one);
拡張ブレンドモードの設定の例。