2011 . 02 . 06
Rainmeter.net
Rainmeter2.0が公式リリースされました。
前回のリリースバージョン1.3からの主な更新点をザッとリストしておきます。
(前回のエントリー分も含む)
修正
- 「Hide on Mouse Over」または「Click Through」状態での画面のチラつきが発生する問題
- W/Hが未定義状態でのDynamicWindowSizeの不具合
- DynamicVariables有効下でUpdateDividerが無効になる問題
- !RainmeterZPosの不具合
- AlwaysOnTopの不具合
- プラグインをTrayMeasureで使用するときの不具合
- 相対座標指定「R」の不具合
- BevelTypeが各メーター個別に適用できない不具合
- !RainmeterSetVariable及び!RainmeterWriteKeyValueで設定値に空文字が指定できない問題
- AntiAlias無効状態でGradientAngle使用時に稀に起こる描画の不具合
変更
- GreyScale, ImageTint, ImageFlip, ImageRotate, ColorMatrix、といったイメージ編集オプションが他の画像を使うメーターでも利用可能に(ImageRotateはButtonImage/BitmapImageでの仕様は不可)
- ツールチップの非表示オプション「ToolTipHidden」が[Rainmeter]セクションに対応(すべてのツールチップを非表示)
- MeterStyleの複数定義が可能に(※1)
- 「MeasureName」に対応した変数「%(n)」が10以上でも使用可能に
- MBM5プラグインとWirelessInfoプラグインの廃止
- Groupsの定義が[Rainmeter]セクションに対応(スキン全体のGroups定義)
- IMAGEメーターでSTRINGメーターのような変数「%(n)」を使ったImageNameの定義が可能に(※2)
- 各種レンダリング関連の改善
- Update/UpdateDividerで負の値を指定すると更新を行なわないように変更
追加
- スキンのドラッグを抑制する「DisableDragging」が追加
- 背景画像を繰り返し描画するモード「BackgroundMode=4」の追加
- 画像の指定部分を切り取る「ImageCrop」が全画像使用メーター(ButtonImage/BitmapImageは不可)に追加(※3)
- IMAGEメーターに繰り返し描画する「Tile」が追加
- テキスト入力ボックスのための「InputText」プラグインが追加
- 指定フォルダーの情報取得のための「FolderInfo」プラグインが追加
- 設定ファイル(INI)にスクリプト言語「Lua」が組み込み可能に
- IMAGEメーターに伸縮範囲を除外する部分指定「ScaleMargins」オプションが追加
- ビルトイン変数にそれ自体の所属セクション名を返す「#CURRENTSECTION#」が追加
- 任意のタイミングでメジャーとメーターを更新させる「!RainmeterUpdate」「!RainmeterUpdateMeter(Group)」「!RainmeterUpdateMeasure(Group)」が追加
- PowerPluginで周波数の値を取得可能に
- ビルトイン変数に現在のスキンの位置と大きさを返す変数「#CURRENTCONFIGX#
」「#CURRENTCONFIGY#」「#CURRENTCONFIGWIDTH#」「#CURRENTCONFIGHEIGHT#」が追加
- STRINGメーターのAutoScaleオプションでスケーリング値が選択可能に
- 外部ソフト「CoreTemp」からの値を取得するCoreTempプラグインの追加
その他
- Rainstallerのユニコード対応他
- コンテキストメニューにスキンのダウンロードサイトへのリンク「Download」が追加
- 付属スキンが「Illustro」のみに変更
- インストーラーの標準インストールの他にポータブル・インストールが追加
- C#でのプラグイン開発が可能に
- デバッグ(ログファイル)出力の改善
- Aboutダイアログの各種改善
備考
前回のリリースバージョン1.3から2.0へと大きくバージョンをアップした理由としては、C#でのプラグイン開発が可能になったことや、スクリプト言語のLuaが組み込めることができるようになったことでRainmeterの次のステップを予感させる期待感が込められたものと思われます。
それ以外でも個人的に注目したい点と言えば、レンダリングと更新の改善が挙げられます。
Rainmeterはウィンドウサイズと更新スピードに比例してCPUを消費する傾向があって、たとえ何の更新のないメーター、例えばある指定画像をデスクトップに表示するだけのスキンであっても、そのサイズが巨大であるならば多くのCPUを消費するという欠点がありましたが、今回の改善では更新のないメーターに限り再描画をスキップすることでCPU消費を抑える措置が加わっています。
また更新スピード(Update)を完全にストップさせたり、任意のタイミングで更新させたりすることが可能になり、今まで抱えていた諸問題の解決に用いることできるようになりました。
例えば、!RainmeterSetVariableを使ってメーターの外観を変える場合、必然的にその設定値が適用され外観が変化するまでUpdateミリ秒のブランクが生じますが、「!RainmeterUpdate」を効果的に用いることで設定値が直ちに適用されブランクが発生することを回避できます。
今まで主流だったShow/Hideによるメーターの状態の切り替え方法から、よりスマートな方法として!RainmeterSetVariableを使った方法に置き換えるのも現実的になります。
その他にも、例えばウェブからの情報取得スキンなどは実際には数秒間隔で更新が必要なわけではなく、30分間隔で更新されるスキンであればCPU消費対策としてUpdateを30分間隔にしてやりたいところですが、情報取得が完了してそれが描画されるまで1Updateが必要なため、そうしてしまうと描画されるまで30分かかってしまうという問題があります。
しかしこのようなケースでもFinishActionで「!RainmeterUpdate」を実行してやることで直ちに描画が更新されます(むしろ描画までのブランクが発生しないので通信環境によっては驚くほど高速に描画されます)。
実際には上のような方式でスキンを作成しようとすると、単純なものは別として、一筋縄ではいかない部分もあってなかなか難しいところはありますが、うまく作れば必要なメジャー/メーターの更新時以外、スキンの大きさや内容に無関係に全くCPUの消費しないスキンも実現可能となります。
また単機能としては、ImageCrop辺りも単に便利なだけではなく、創造的なスキンを作成するための機能として応用範囲の広い機能と言えます。
とくにDynamicVariablesと共に動的使い方をすると面白い効果が期待できるのではないでしょうか。
バージョン1.0以降では後方互換性に関して非常にシビアな開発が行なわれており、バージョンアップによって既存のスキンの動作が変わることや動作しなくなるといったことは非常に稀です。また、2.0ではLuaの実装などで実行ファイル自体は大きくなったものの、パフォーマンス的には上記のようにかなり向上しており、特に現在のバージョンで不満無く使っているユーザーであってもアップデートするメリットはあると思います(メモリー消費はスキンに依存するので旧バージョンとほとんど変わらないと思います)。