はじめに (対象読者・この記事でわかること)

このページは、PC作業中に目の疲れを軽減したいエンジニアやデザイナー、在宅勤務の方を対象にしています。Windows 10 以降の環境で、画面全体ではなく「特定の領域」だけにブルーライトカット(暖色フィルター)を適用したいというニーズに応えるものです。本記事を読むことで、以下ができるようになります。

  • Windows の標準機能だけでは実現できない「部分的」フィルターの仕組みを理解する
  • 無料ツール(AutoHotkey 等)を使って、任意の領域にブルーライトカットを設定する手順を実装できる
  • 設定時に注意すべきポイントや、よくあるトラブルの対処法を把握できる

この記事を書いた背景は、在宅勤務が増える中で「コードエディタだけは暖色化したい」や「動画視聴中はフィルターを外したい」など、作業ごとに色味を変えたくなるケースが増えているためです。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。

  • Windows 10/11 の基本的な設定画面の操作経験
  • AutoHotkey のインストールと簡単なスクリプト作成ができること(初心者向けの公式チュートリアル程度の理解)

ブルーライトカットの概要と部分適用の課題

Windows が提供する「夜間モード」や「カラー フィルター」は画面全体に対して色温度を変更します。これらはシステムレベルで働くため、特定のウィンドウや領域だけに適用することはできません。部分的にブルーライトカットを行う主な手法は次の二つです。

  1. サードパーティーツールによるオーバーレイ描画
    透明度を調整したカラーの矩形を画面上に重ね、対象領域だけ色味を変える方法です。代表的なツールに「AutoHotkey」や「DimScreen」「f.lux(カスタムマスク)」があります。

  2. GPU レベルでのシェーダ適用
    高度な手法として、OpenGL/Vulkan のシェーダで画面の一部だけ色温度を変更することも可能ですが、一般ユーザーが手軽に導入できる環境は限られます。

本記事では、導入コストが低く、設定が比較的シンプルな AutoHotkey を利用したオーバーレイ方式を中心に解説します。AutoHotkey は Windows 向けの無料スクリプト言語で、GUI ウィンドウの描画・透明度設定・マウス・ホットキー操作などを簡潔に記述できます。スクリプトを数行書くだけで、任意の座標とサイズで暖色フィルターを表示できます。

AutoHotkey で部分的にブルーライトカットを実装する手順

以下では、実際に「エディタ領域だけを暖色化」するシナリオを例に、ステップバイステップで設定方法を解説します。

ステップ1 AutoHotkey のインストール

  1. 公式サイト(https://www.autohotkey.com/)へアクセスし、最新の AutoHotkey v2 をダウンロード。
  2. ダウンロードしたインストーラーを実行し、AutoHotkey をシステムにインストール。
  3. インストール完了後、デスクトップ上で右クリック → 新規作成 → AutoHotkey Script を選択し、スクリプトファイル(例:BlueLightPartial.ahk)を作成します。

ポイント:v2 系は構文が v1 と若干異なるため、公式ドキュメントの「v2 Getting Started」を一読しておくとスムーズです。

ステップ2 オーバーレイスクリプトの作成

以下のコードを作成した BlueLightPartial.ahk に貼り付けます。コメントで各行の意味を解説しています。

Ahk
#Requires AutoHotkey v2.0 ;------------------------------------------------- ; 部分的ブルーライトカット用オーバーレイスクリプト ; ------------------------------------------------ ; 設定項目(必要に応じて変更) OverlayColor := 0xB200FF ; 暖色 (R=255,G=180,B=0) を BGR 形式で指定 OverlayOpacity := 150 ; 0~255 の透明度 (150 ≈ 60% 不透明) TargetX := 100 ; 左上隅の X 座標 (ピクセル) TargetY := 100 ; 左上隅の Y 座標 TargetW := 1200 ; 幅 TargetH := 800 ; 高さ ; GUI(透明ウィンドウ)作成 Gui, +AlwaysOnTop -Caption +ToolWindow +E0x80000 ; 0x80000 = WS_EX_LAYERED Gui, Color, % OverlayColor Gui, Show, x%TargetX% y%TargetY% w%TargetW% h%TargetH% NoActivate ; 透明度設定 WinSet, Transparent, % OverlayOpacity%, A ; ホットキーでオン/オフ切替 (Ctrl+Alt+L) ^!l:: { if (GuiVisible := !GuiVisible) Gui, Show else Gui, Hide } return

コード解説

内容 補足
OverlayColor 変更したい暖色(BGR形式)を 16 進数で指定。この例ではオレンジ系。 0xB200FF → B=255, G=180, R=0
OverlayOpacity 透明度。255 が不透明、0 が完全に透明。目安は 120〜180。 150 は約 60% 不透明で、目に優しい。
TargetX/Y/W/H フィルターをかける領域の座標とサイズ。画面左上が原点。 必要に応じてメモ帳等でウィンドウサイズを測定。
Gui, +AlwaysOnTop -Caption +ToolWindow +E0x80000 常に前面に表示し、枠なし・透過レイヤーを有効化。 E0x80000 はレイヤードウィンドウフラグ。
WinSet, Transparent ウィンドウの透明度を設定。 透過度は OS の合成エンジンが処理。
^!l:: Ctrl+Alt+L でオーバーレイ表示/非表示を切り替えるショートカット。 作業中にオンオフでき便利。

ステップ3 スクリプトの実行と領域調整

  1. スクリプトファイルをダブルクリックして実行。画面指定した座標に半透明の暖色矩形が表示されます。
  2. オーバーレイが対象ウィンドウに重なるか確認し、**必要に応じて TargetX/Y/W/H** の数値を調整。
    - Windows の「Snipping Tool」や「PowerToys の Measure Tool」等でピクセル座標を取得すると正確です。
  3. Ctrl + Alt + L を押すと、オーバーレイの表示・非表示が切り替わります。作業中に動画視聴時は非表示にすれば、ブルーライトカットが解除されたように見えます。

ステップ4 自動起動設定(任意)

毎回手動でスクリプトを起動したくない場合は、スタートアップフォルダにショートカットを配置します。

  1. Win+Rshell:startup と入力してスタートアップフォルダを開く。
  2. 作成した BlueLightPartial.ahk のショートカットをこのフォルダにコピー。
  3. 次回 Windows 起動時に自動でオーバーレイが有効になります(デフォルトは表示状態)。

ハマった点やエラー解決

症状 原因 解決策
オーバーレイが全画面に広がる TargetW/H に 0 または負の値が設定されている 正しい数値(ピクセル単位)を設定し直す
表示がちらつく・CPU負荷が高い Gui が頻繁に再描画される Gui, +LastFoundSetTimer で描画頻度を抑制(高度な最適化は不要)
Ctrl+Alt+L が効かない 他のアプリが同ショートカットを占有 別の組み合わせ(例:^!b)に変更する
透過が全く効かない(白いウィンドウが表示) WinSet, Transparent が失敗 #Requires AutoHotkey v2.0 が正しく認識されているか確認し、WinSet, Transparent の数値を 255 未満に調整

特に注意すべきは、OverlayColor の設定です。 BGR 順序で数値を書く必要があるため、RGB の感覚で 0xFFB200 と書くと意図しない色になることがあります。必ず 0xB200FF のように BGR に変換してください。

さらに高度な設定(応用編)

  • マルチモニタ環境:各ディスプレイごとに別々のスクリプトを作成し、TargetX を画面全体の座標系で設定します。
  • ウィンドウ自動追跡:AutoHotkey の WinGetPosSetTimer を組み合わせ、対象ウィンドウ(例:VS Code)の位置が変わったらオーバーレイも自動で再配置させることが可能です。
  • 色温度のグラデーション:複数のオーバーレイウィンドウを重ね、透明度を段階的に変えることで、領域ごとに微妙な色温度差を作ることもできます。

まとめ

本記事では、Windows 10/11 の画面全体ではなく、任意の領域だけにブルーライトカット(暖色フィルター)を適用する方法 を解説しました。

  • AutoHotkey を使ったオーバーレイ手法 により、座標とサイズだけで簡単に部分的な色温度調整が実現できる。
  • スクリプトのカスタマイズ(色、透明度、ホットキー)で自分の作業スタイルに合わせた柔軟な運用が可能。
  • トラブルシューティングマルチモニタ・ウィンドウ追跡 の応用例を紹介し、実装時の壁を低減した。

この手法を活用すれば、コードエディタだけを暖かくしたり、動画視聴中はフィルターをオフにしたりと、シーンに合わせた目の保護が実現できます。今後は、GPU シェーダを利用した高精度部分フィルタ や、PowerToys の新機能連携 といった、より高度な実装にも挑戦してみたいと思います。

参考資料