SetDrawBlendMode

描画の際のブレンドモードをセットする

SetDrawBlendMode BlendMode, BlendParam

BlendMode : 描画ブレンドモードを指定する引数です
DX_BLENDMODE_NOBLEND : ノーブレンド(デフォルト)
DX_BLENDMODE_ALPHA  : αブレンド
DX_BLENDMODE_ADD   : 加算ブレンド
DX_BLENDMODE_SUB   : 減算ブレンド
DX_BLENDMODE_MULA   : 乗算ブレンド
DX_BLENDMODE_INVSRC  : 反転ブレンド
DX_BLENDMODE_PMA_ALPHA : 乗算済みα用のαブレンド
DX_BLENDMODE_PMA_ADD  : 乗算済みα用の加算ブレンド
DX_BLENDMODE_PMA_SUB  : 乗算済みα用の減算ブレンド
DX_BLENDMODE_PMA_INVSRC : 乗算済みα用の反転ブレンド
Pal          : 描画ブレンドモードのパラメータ(0~255)

(プラグイン / モジュール : DxLibW)

解説

DrawGraphDrawExtendGraphDrawRotaGraphDrawModiGraphDrawTurnGraphDrawLineDrawBoxDrawCircle,DrawPixel
DrawString を使用したときの描画先に
元からある画像とのブレンドを行うか等の設定を行います。

DX_BLENDMODE_NOBLEND

を指定するとブレンド処理は行われず描画しようとしているグラフィックがそのまま描画される事となります(これがデフォルトです)。

このモードの場合Palの値は意味を持ちません

DX_BLENDMODE_ALPHA

を指定すると描画先に元から描かれていた画像と描画しようとしている画像とでアルファブレンディングします。

Palの値が255に近いほど描画しようとしているグラフィックの方が濃く表示されます。

DX_BLENDMODE_ADD

を指定すると描画先に元から描かれていた画像に描画しようとしている画像の各ドットの明るさを加算します。

加算される割合はPalの値が255に近いほど強くなります。

DX_BLENDMODE_SUB

を指定すると描画先に元から描かれている画像から描画しようとしている画像の各ドットの明るさを引きます。

元の画像が明るいものほど、描画先の輝度を奪います。

ダーク系の表現に有用です。

(注意!DX_BLENDMODE_SUB は表画面に描画する際に使用すると表示が一瞬おかしくなります。
このブレンドモードを使用する際は必ず SetDrawScreen 関数で DX_SCREEN_BACK を指定し、
裏画面に描画するようにしてください。)

DX_BLENDMODE_MULA

を指定すると、描画先に元から描かれている画像の色と、描画しようとしている画像の色とで乗算します。

『色の乗算って何?』と思われるかもしれませんので、
『明るさ同士の掛け算』と言った方が分かりやすいかもしれません。

ただ、明るさ同士の掛け算と言うと描画先の画像に元からある色を元の何倍も明るい色にしてしまったり出来そうなイメージがありますが、
実際は描画先に元からある色を元の色以上に明るくすることは出来ず、
描画しようとしている画像の色が真っ白だったら元の画像はそのまま、
少しでも暗ければその分暗く、という具合になります。

用途としては、黒い煙を表現したい時や、自分の回り以外真っ暗で見えない、
等の表現をしたい時などがあります。

DX_BLENDMODE_INVSRC

描画元の色を反転して描画します。

反転ということはつまり、描画元の画像の明るいところほど暗く、
暗いところほど明るく描画されます。

シューティングゲームの敵がダメージを受けた場合や、
『ガーン』とショックを受けたときの表現に使えるかも?

DX_BLENDMODE_PMA_ALPHA

DX_BLENDMODE_PMA_ADD

DX_BLENDMODE_PMA_SUB

DX_BLENDMODE_PMA_INVSRC

それぞれ『乗算済みα』用のブレンドモードで、 _PMA が付かない同名のモードと( 乗算済みαチャンネル付き画像を使用した場合の )効果は同じです。
『乗算済みα』についてはこちらの解説をご参照ください。

『乗算済みアルファのすすめ』

それぞれエフェクト等を行う用途によって変更してください。

また、SetDrawBlendMode とは別に、Direct3D のブレンド設定のような感覚で設定を行える関数 SetDrawCustomBlendMode もあります。

戻り値:
  0:成功

サンプル

SetDrawBlendMode DX_BLENDMODE_ALPHA, 128 ; 半透明
DrawGraph 0, 0, gh, TRUE
SetDrawBlendMode DX_BLENDMODE_NOBLEND, 0   ; 通常に戻す

関連項目

SetDrawBright描画輝度をセット(DxLibW)
SetDrawArea描画可能領域のセット(DxLibW)
GetDrawBlendMode描画ブレンドモードを取得する(DxLibW)

情報

プラグイン / モジュールDxLibW
バージョン3.24f
作成日2026/04/12
著作者DxLib: Takumi Yamada / HSP binding: IronHSP Project
URLhttps://dxlib.xsrv.jp/
備考hspdxlib.as をインクルードして使用
タイプDxLib ゲームライブラリ
グループDxLib グラフィック描画
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\hspdxlib.hs