はじめに (対象読者・この記事でわかること)
このページは、PC作業中に目の疲れを軽減したいエンジニアやデザイナー、在宅勤務の方を対象にしています。Windows 10 以降の環境で、画面全体ではなく「特定の領域」だけにブルーライトカット(暖色フィルター)を適用したいというニーズに応えるものです。本記事を読むことで、以下ができるようになります。
- Windows の標準機能だけでは実現できない「部分的」フィルターの仕組みを理解する
- 無料ツール(AutoHotkey 等)を使って、任意の領域にブルーライトカットを設定する手順を実装できる
- 設定時に注意すべきポイントや、よくあるトラブルの対処法を把握できる
この記事を書いた背景は、在宅勤務が増える中で「コードエディタだけは暖色化したい」や「動画視聴中はフィルターを外したい」など、作業ごとに色味を変えたくなるケースが増えているためです。
前提知識
この記事を読み進める上で、以下の知識があるとスムーズです。
- Windows 10/11 の基本的な設定画面の操作経験
- AutoHotkey のインストールと簡単なスクリプト作成ができること(初心者向けの公式チュートリアル程度の理解)
ブルーライトカットの概要と部分適用の課題
Windows が提供する「夜間モード」や「カラー フィルター」は画面全体に対して色温度を変更します。これらはシステムレベルで働くため、特定のウィンドウや領域だけに適用することはできません。部分的にブルーライトカットを行う主な手法は次の二つです。
-
サードパーティーツールによるオーバーレイ描画
透明度を調整したカラーの矩形を画面上に重ね、対象領域だけ色味を変える方法です。代表的なツールに「AutoHotkey」や「DimScreen」「f.lux(カスタムマスク)」があります。 -
GPU レベルでのシェーダ適用
高度な手法として、OpenGL/Vulkan のシェーダで画面の一部だけ色温度を変更することも可能ですが、一般ユーザーが手軽に導入できる環境は限られます。
本記事では、導入コストが低く、設定が比較的シンプルな AutoHotkey を利用したオーバーレイ方式を中心に解説します。AutoHotkey は Windows 向けの無料スクリプト言語で、GUI ウィンドウの描画・透明度設定・マウス・ホットキー操作などを簡潔に記述できます。スクリプトを数行書くだけで、任意の座標とサイズで暖色フィルターを表示できます。
AutoHotkey で部分的にブルーライトカットを実装する手順
以下では、実際に「エディタ領域だけを暖色化」するシナリオを例に、ステップバイステップで設定方法を解説します。
ステップ1 AutoHotkey のインストール
- 公式サイト(https://www.autohotkey.com/)へアクセスし、最新の AutoHotkey v2 をダウンロード。
- ダウンロードしたインストーラーを実行し、
AutoHotkeyをシステムにインストール。 - インストール完了後、デスクトップ上で右クリック → 新規作成 → 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 スクリプトの実行と領域調整
- スクリプトファイルをダブルクリックして実行。画面指定した座標に半透明の暖色矩形が表示されます。
- オーバーレイが対象ウィンドウに重なるか確認し、**必要に応じて
TargetX/Y/W/H**の数値を調整。
- Windows の「Snipping Tool」や「PowerToys の Measure Tool」等でピクセル座標を取得すると正確です。 Ctrl + Alt + Lを押すと、オーバーレイの表示・非表示が切り替わります。作業中に動画視聴時は非表示にすれば、ブルーライトカットが解除されたように見えます。
ステップ4 自動起動設定(任意)
毎回手動でスクリプトを起動したくない場合は、スタートアップフォルダにショートカットを配置します。
Win+R→shell:startupと入力してスタートアップフォルダを開く。- 作成した
BlueLightPartial.ahkのショートカットをこのフォルダにコピー。 - 次回 Windows 起動時に自動でオーバーレイが有効になります(デフォルトは表示状態)。
ハマった点やエラー解決
| 症状 | 原因 | 解決策 |
|---|---|---|
| オーバーレイが全画面に広がる | TargetW/H に 0 または負の値が設定されている |
正しい数値(ピクセル単位)を設定し直す |
| 表示がちらつく・CPU負荷が高い | Gui が頻繁に再描画される |
Gui, +LastFound と SetTimer で描画頻度を抑制(高度な最適化は不要) |
Ctrl+Alt+L が効かない |
他のアプリが同ショートカットを占有 | 別の組み合わせ(例:^!b)に変更する |
| 透過が全く効かない(白いウィンドウが表示) | WinSet, Transparent が失敗 |
#Requires AutoHotkey v2.0 が正しく認識されているか確認し、WinSet, Transparent の数値を 255 未満に調整 |
特に注意すべきは、OverlayColor の設定です。 BGR 順序で数値を書く必要があるため、RGB の感覚で 0xFFB200 と書くと意図しない色になることがあります。必ず 0xB200FF のように BGR に変換してください。
さらに高度な設定(応用編)
- マルチモニタ環境:各ディスプレイごとに別々のスクリプトを作成し、
TargetXを画面全体の座標系で設定します。 - ウィンドウ自動追跡:AutoHotkey の
WinGetPosとSetTimerを組み合わせ、対象ウィンドウ(例:VS Code)の位置が変わったらオーバーレイも自動で再配置させることが可能です。 - 色温度のグラデーション:複数のオーバーレイウィンドウを重ね、透明度を段階的に変えることで、領域ごとに微妙な色温度差を作ることもできます。
まとめ
本記事では、Windows 10/11 の画面全体ではなく、任意の領域だけにブルーライトカット(暖色フィルター)を適用する方法 を解説しました。
- AutoHotkey を使ったオーバーレイ手法 により、座標とサイズだけで簡単に部分的な色温度調整が実現できる。
- スクリプトのカスタマイズ(色、透明度、ホットキー)で自分の作業スタイルに合わせた柔軟な運用が可能。
- トラブルシューティング と マルチモニタ・ウィンドウ追跡 の応用例を紹介し、実装時の壁を低減した。
この手法を活用すれば、コードエディタだけを暖かくしたり、動画視聴中はフィルターをオフにしたりと、シーンに合わせた目の保護が実現できます。今後は、GPU シェーダを利用した高精度部分フィルタ や、PowerToys の新機能連携 といった、より高度な実装にも挑戦してみたいと思います。
参考資料
- AutoHotkey 公式サイト – Documentation (v2)
- AutoHotkey Forum – Overlay example threads
- Microsoft Store – Night Light (標準機能解説)
- PowerToys – FancyZones (ウィンドウ管理ツール)
- f.lux – Custom Mask Feature (英語)
