音のない雨音。
窓ガラスを雨が流れ落ちる、すべてリアルタイム生成のスクリーンセーバー。動画も画像も 1 バイトも入っていません。
滴の動きは周回ごとに、雨の向こうの街の景色は開始のたびに、乱数で引き直されます。同じ雨も、同じ景色も、二度と現れません。
Apple Developer ID 署名・notarized 済み · Apple Silicon 搭載 Mac 専用 · macOS 13 以上 · 検証済み: macOS 26 · SHA-256: 3c1c7af67108f5163ec79ae02e45ba6ca48b116ab6096a4da8752f9625ac82d1
雨と雪、実際の描画をそのまま録画した 2 本のループです。背景の街も画像ではなく、録画のたびに生成されたものです。これと同じものが、あなたの Mac の GPU で毎フレーム計算されます。
雨。夜の街路に本降り。滴が濡れ筋を残しながら滑り落ち、テールランプが雨滴の中に映り込む
雪。窓の向こうを雪片が舞い、ガラスに付いた雪が溶けて滴になり、下端には雪が積もっていく
水滴は動画でもアニメーション素材でもなく、すべて GPU のシェーダーでリアルタイムに生成しています。雨の向こうに見える街の景色も画像ファイルではありません。開始するたびに乱数の種を引き直し、街路・ビル街・路地のどれかを地平線の高さ・稜線・明かりの配置まで新しく描き起こします。バンドルに入っているのは 1 枚の Metal シェーダーと小さな実行ファイルだけ。滴の緩急は周回ごとに、景色は開始ごとに変わるので、ループの繰り返し感がありません。自分の壁紙や任意の写真を背景にすることもできます。
周回ごとに所要時間・引っかかりの強さと回数を抽選し、滴が引っかかりながら滑り落ちます。開始のたびに雨量や滴の大きさまで全パラメータを抽選するモードも用意(セーバーでは既定 ON)。
街路のテールランプと濡れた路面の反射、ビル街の窓明かりとネオン、路地の街灯。3 種類の景色を開始ごとに構図から生成します。空の色と街明かりの数は今の時刻に連動し、朝焼け・雨の昼・夕焼け・夜へと再生中も移り変わります。
天候を「雷雨」にすると、稲光で空全体が一瞬白く光り、遠景が黒く抜けます。再発光と雲の中の残光のタイミングは開始ごとに変わります(点滅は 1 秒に 3 回まで)。「雪」では窓の向こうを雪片が舞い、ガラスに付いた雪が溶けて滴になり、窓の下端に雪が積もっていきます。「季節で自動」なら 12〜2 月だけ雪の日に、「開始ごとにランダム」なら雨・雷雨・雪を抽選します。
水滴をハイトフィールドとして合成し、その勾配で背景をずらしています。滴の中には背景が縮小して映り込み、滴が動けば映り込みも動きます。
雨が強まるとガラスが結露で曇り、滴が通った跡だけが鮮明に抜けます。濡れ筋は時間とともに乾いて薄れていきます。
開始直後に実測した GPU 時間からフレームレートを自動で調整(60 / 30 / 20fps)。間引いても雨の速さは変わりません。描画スケール設定(100 / 85 / 75 / 50%)も併用でき、5K ディスプレイでは 75% を推奨します。スケールを下げても水滴の計算だけを縮小し、屈折や合成は実解像度で行うので、背景はぼけません。
雨量・景色・時刻・天候による表情の違い。写真背景の 1 枚以外は、すべてその場で生成された景色です。画像をクリックすると拡大表示します。
写真背景のスクリーンショットに使用した画像は CC0(パブリックドメイン)の写真(Syced 氏、Wikimedia Commons)です。
雨滴を止めて背景だけを表示したものです。これらは画像ファイルではなく、開始するたびに乱数の種から地平線・稜線・明かりの配置を決めて描き起こしています。同じ構図が二度出ることはありません。画像をクリックすると拡大表示します。
オプション画面のポップアップで切り替えます。どのモードでもネットワークは使わず、画像を外部に送信することはありません。
開始するたびに新しく生成される街の景色。空の色と街明かりの数は今の時刻に連動し、再生中もゆっくり移り変わります。景色を街路・ビル街・路地に固定することもできます。
時刻に関わらず、いつでも夜の街。景色は開始ごとに変わります。昼間でも夜の雨を眺めたい人向け。
そのスクリーンの壁紙を背景にします。見慣れた壁紙に雨が降ります。許可は不要です。
好きな写真を背景に。選んだ画像は縮小 JPEG としてセーバーの設定内に保存されるので、元ファイルを移動しても表示され続けます。
スクリーンセーバーはダブルクリックでインストールされます。アプリケーションフォルダには何も置きません。
Amaoto.saver をダブルクリックします※ 一覧のサムネイルが渦巻き(銀河)の画像になるのは macOS の仕様です。現在の macOS はサードパーティ製スクリーンセーバーのサムネイルを表示できず、どの製品でも同じ画像になります(プレビューと実際の描画は正常に動きます)。
以下のファイルを削除するだけです。
~/Library/Screen Savers/Amaoto.saver~/Library/Preferences/ByHost/com.atelierflare.amaoto.*.plistシェーダーの負荷は画素数に比例するため、GPU 性能を前提に Apple Silicon 専用としています。
謝辞: 雨滴表現の手法は Shadertoy の「Heartfelt」(Martijn Steinrucken 氏)を参考にしました。コードは Metal 向けの独自実装です。