こんにちは、阿久津です。Windows Vistaに用意されているオーロラ(スクリーンセーバー)は、<設定>ボタンをクリックしても、「~設定できるオプションはありません」と表示されてしまいます。設定項目があってこそ、その面白さを満喫できそうなスクリーンセーバーですが、素の状態でしか起動できず、せっかくのきれいなアニメーションを描くスクリーンセーバーを使っていない方が多いのでは(図01)。
図01: 個人設定→スクリーンセーバーとクリックして開き、ドロップダウンリストから<オーロラ>を選択して、<設定>ボタンをクリックしますと、同スクリーンセーバーに対する設定項目が用意されていないことを確認できます |
そもそもオーロラスクリーンセーバーは、どのような動作を行なっているのか検証してみましょう。ソフトウェア開発者や、Windows OSのチューニングユーザーに欠かせないProcess Monitorで、オーロラスクリーンセーバーの実体ファイルである「Aurora.scr」を追いかけてみますと、現在のデスクトップ情報などを保存してから、Direct 3D関連のDLLファイルを呼び出し、レジストリ上からは設定値の呼び出しを行なっているのがわかります(図02)。
つまり、オーロラスクリーンセーバーの起動時には、Process Monitorが示すように、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Screensavers \ Auroraキーにある、いくつかのDWORD値を参照しているのですが、レジストリ上には値が存在しないため、NAME NOT FOUNDとエラーになっています。そこで、これらのレジストリ値を作成し、オーロラスクリーンセーバーのチューニングを行ないましょう(図03)。
図03: 通常HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Screensavers \ Auroraキーは空のため、「Aurora.scr」がレジストリ値を参照してもエラーになってしまいます |
クイック検索やファイル名を指定して実行などから「regedit」を実行してレジストリエディタを起動し、HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Screensavers \ Auroraキーまでたどって開きます。右ペインの何もないところを右クリックし、メニューから<新規>→<DWORD値>と選択。名前を「NumLayers」に変更します。同DWORD値をダブルクリックで開き、値のデータを「1」に書き換えてから、<OK>ボタンをクリックします。続いて同様の手順でDWORD値「Amplitude」を作成し、値のデータを「2000000000」に書き換えてください。[F5]キーを押して変更内容をシステムに反映させてから、レジストリエディタを終了すれば、チューニング完了です(図04~09)。
図05: HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Screensavers \ Auroraまでキーをたどって開き、右ペインで右クリック。<新規>→<DWORD(32ビット)値>と選択して、DWORD値「NumLayers」を作成します |
それでは早速、チューニングの効果を確認してみましょう。デスクトップの何もないところを右クリックし、メニューから<個人設定>を選択。ウィンドウにある<スクリーンセーバー>をクリックして、「スクリーンセーバーの設定」ダイアログを起動しましょう。ちなみに、同ダイアログはコマンドラインなどから「rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1」と実行しても起動できます。ドロップダウンリストから<オーロラ>を選択し、<プレビュー>ボタンをクリックしますと、チューニングされたオーロラスクリーンセーバーが起動します。今回はチューニング前のオーロラスクリーンセーバーの画面も用意しましたので見比べてください(図10~図14)。
図13: こんどはDWORD値「Amplitude」のデータ値を「1000000000(10進数)」、DWORD値「NumLayers」のデータ値を「12(10進数)」に変更しました。レイヤー数の効果が出ています |
図14: 図13の設定にDWORD値「Brightness」を追加し、データ値を「1040000000」にしてみました。少しハレーション的な効果が加わりました |
また、オーロラスクリーンセーバーのチューニングで使用できるレジストリ値は上記以外にもあり、下記の表1にまとめましたが、先のProcess Monitorでは「SpanMultiMon」というDWORD値も参照されているはず、と違和感を覚えたのではないでしょうか。本チューニングに関する技術資料は存在しないため、値名から推測しますと、スクリーンセーバーをマルチモニタで使用する際に有効にすると思われますが、筆者のマルチモニタ環境では設定せずとも、サブモニタにもスクリーンセーバーが表示されますし、同DWORD値のデータ値を書き換えても変化がありませんでした。
■表1 オーロラスクリーンセーバーで設定できる値 | ||
DWORD値 | 数値(10進数) | 内容 |
---|---|---|
Amplitude | 500000000から2000000000 | オーロラのアニメーションを調整します。 |
Brightness | 1000000000から1050000000 | オーロラの明るさを指定します。数値が大きくなるほど明るくなります。 |
NumLayers | 1~15 | オーロラを表示するためのレイヤー(層)数を指定します。 |
Speed | 1000000000~2100000000 | オーロラの速度を指定します。数値が大きいほど早くなります。 |
ちなみにマルチモニタ環境では、~Auroraキー下にあるScreen 1とScreen 2というサブキーが生成されます。しかし、同キーを参照している気配はなく、レジストリ値を作成しても反応がありません。きっと先のDWORD値と同じく、Windows Vista開発途中版の頃に設けられた設定の名残なのかもしれません。DWORD値「SpanMultiMon」とあわせ、お使いの環境で変化が生じた方が居られましたら、ご一報頂ければ幸いです(図15~16)。
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)