<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>K'conf | portfolio</title>
<link>http://kenz0.s201.xrea.com/portfolio/</link>
<description>Rainmeterのオリジナルスキンや周辺情報のためのブログ</description>
<language>ja</language>
<lastBuildDate>Wed, 07 Dec 2011 11:46:21 +0900</lastBuildDate>
<item>
<title>Portfolioの更新終了します</title>
<link>http://kenz0.s201.xrea.com/portfolio/memo/the_end.html</link>
<description>
<![CDATA[<img src="/images/2011/12/08/01.jpg" class="img_f1" />
<p>長らく更新が滞っていましたが、今後は『Blog』でやっている情報サイトとしての活動に専念したく、『Portfolio』で扱ってきたRainmeter関連の情報やスキン制作などの更新を終了しようと思います。</p>]]>
<![CDATA[<br />
<p>『Portfolio』の記事や公開スキンは今後サイト全体をリニューアルするまでは当面このままアーカイブとして公開しておきますが、情報やスキンが古いことで起こる問題に関してはサポート出来かねますのでご了承ください。</p>
<br />
<p>今までご購読くださいました皆様に心より感謝申し上げます。<br /><(_ _)></p>]]>
</description>
<category>memo</category>
<guid>http://kenz0.s201.xrea.com/portfolio/memo/the_end.html</guid>
<pubDate>Wed, 07 Dec 2011 11:46:21 +0900</pubDate>
</item>
<item>
<title>RSS1.0フィードの配信は終了しました</title>
<link>http://kenz0.s201.xrea.com/portfolio/memo/rss10.html</link>
<description>
<![CDATA[<p>RSS1.0フィードの配信は終了しRSS2.0に一本化しました。</p>]]>
</description>
<category>memo</category>
<guid>http://kenz0.s201.xrea.com/portfolio/memo/rss10.html</guid>
<pubDate>Thu, 02 Jun 2011 22:19:06 +0900</pubDate>
</item>
<item>
<title>Rainmeter2.0リリース</title>
<link>http://kenz0.s201.xrea.com/portfolio/update/rainmeter20.html</link>
<description>
<![CDATA[<p><strong><a href="http://rainmeter.net/" class="link">Rainmeter.net</a></strong></p>
<p>Rainmeter2.0が公式リリースされました。</p>
<p>前回のリリースバージョン1.3からの主な更新点をザッとリストしておきます。</p>
<p>（<a href="/portfolio/update/rainmeter_r642.html">前回のエントリー</a>分も含む）</p>]]>
<![CDATA[<h2 class="title2">修正</h2>
<ul>
<li>「Hide on Mouse Over」または「Click Through」状態での画面のチラつきが発生する問題</li>
<li>W/Hが未定義状態でのDynamicWindowSizeの不具合</li>
<li>DynamicVariables有効下でUpdateDividerが無効になる問題</li>
<li>!RainmeterZPosの不具合</li>
<li>AlwaysOnTopの不具合</li>
<li>プラグインをTrayMeasureで使用するときの不具合</li>
<li>相対座標指定「R」の不具合</li>
<li>BevelTypeが各メーター個別に適用できない不具合</li>
<li>!RainmeterSetVariable及び!RainmeterWriteKeyValueで設定値に空文字が指定できない問題</li>
<li>AntiAlias無効状態でGradientAngle使用時に稀に起こる描画の不具合</li>
</ul>
<h2 class="title2">変更</h2>
<ul>
<li>GreyScale, ImageTint, ImageFlip, ImageRotate, ColorMatrix、といったイメージ編集オプションが他の画像を使うメーターでも利用可能に（ImageRotateはButtonImage/BitmapImageでの仕様は不可）</li>
<li>ツールチップの非表示オプション「ToolTipHidden」が[Rainmeter]セクションに対応（すべてのツールチップを非表示）</li>
<li>MeterStyleの複数定義が可能に（<strong><a href="/portfolio/update/rainmeter_r642.html#kome1">※1</a></strong>）</li>
<li>「MeasureName」に対応した変数「%(n)」が10以上でも使用可能に</li>
<li>MBM5プラグインとWirelessInfoプラグインの廃止</li>
<li>Groupsの定義が[Rainmeter]セクションに対応（スキン全体のGroups定義）</li>
<li>IMAGEメーターでSTRINGメーターのような変数「%(n)」を使ったImageNameの定義が可能に（<strong><a href="/portfolio/update/rainmeter_r642.html#kome2">※2</a></strong>）</li>
<li>各種レンダリング関連の改善</li>
<li>Update/UpdateDividerで負の値を指定すると更新を行なわないように変更</li>
</ul>
<h2 class="title2">追加</h2>
<ul>
<li>スキンのドラッグを抑制する「DisableDragging」が追加</li>
<li>背景画像を繰り返し描画するモード「BackgroundMode=4」の追加</li>
<li>画像の指定部分を切り取る「ImageCrop」が全画像使用メーター（ButtonImage/BitmapImageは不可）に追加（<strong><a href="/portfolio/update/rainmeter_r642.html#kome3">※3</a></strong>）</li>
<li>IMAGEメーターに繰り返し描画する「Tile」が追加</li>
<li>テキスト入力ボックスのための「InputText」プラグインが追加</li>
<li>指定フォルダーの情報取得のための「FolderInfo」プラグインが追加</li>
<li>設定ファイル（INI）にスクリプト言語「Lua」が組み込み可能に</li>
<li>IMAGEメーターに伸縮範囲を除外する部分指定「ScaleMargins」オプションが追加</li>
<li>ビルトイン変数にそれ自体の所属セクション名を返す「#CURRENTSECTION#」が追加</li>
<li>任意のタイミングでメジャーとメーターを更新させる「!RainmeterUpdate」「!RainmeterUpdateMeter(Group)」「!RainmeterUpdateMeasure(Group)」が追加</li>
<li>PowerPluginで周波数の値を取得可能に</li>
<li>ビルトイン変数に現在のスキンの位置と大きさを返す変数「#CURRENTCONFIGX#
」「#CURRENTCONFIGY#」「#CURRENTCONFIGWIDTH#」「#CURRENTCONFIGHEIGHT#」が追加</li>
<li>STRINGメーターのAutoScaleオプションでスケーリング値が選択可能に</li>
<li>外部ソフト「CoreTemp」からの値を取得するCoreTempプラグインの追加</li>
</ul>
<h2 class="title2">その他</h2>
<ul>
<li>Rainstallerのユニコード対応他</li>
<li>コンテキストメニューにスキンのダウンロードサイトへのリンク「Download」が追加</li>
<li>付属スキンが「Illustro」のみに変更</li>
<li>インストーラーの標準インストールの他にポータブル・インストールが追加</li>
<li>C#でのプラグイン開発が可能に</li>
<li>デバッグ（ログファイル）出力の改善</li>
<li>Aboutダイアログの各種改善</li>
</ul>
<br />
<br />
<h2 class="title2">備考</h2>
<p>前回のリリースバージョン1.3から2.0へと大きくバージョンをアップした理由としては、C#でのプラグイン開発が可能になったことや、スクリプト言語のLuaが組み込めることができるようになったことでRainmeterの次のステップを予感させる期待感が込められたものと思われます。</p>
<br />
<p>それ以外でも個人的に注目したい点と言えば、レンダリングと更新の改善が挙げられます。</p>
<p>Rainmeterはウィンドウサイズと更新スピードに比例してCPUを消費する傾向があって、たとえ何の更新のないメーター、例えばある指定画像をデスクトップに表示するだけのスキンであっても、そのサイズが巨大であるならば多くのCPUを消費するという欠点がありましたが、今回の改善では更新のないメーターに限り再描画をスキップすることでCPU消費を抑える措置が加わっています。</p>
<br />
<p>また更新スピード（Update）を完全にストップさせたり、任意のタイミングで更新させたりすることが可能になり、今まで抱えていた諸問題の解決に用いることできるようになりました。</p>
<p>例えば、!RainmeterSetVariableを使ってメーターの外観を変える場合、必然的にその設定値が適用され外観が変化するまでUpdateミリ秒のブランクが生じますが、「!RainmeterUpdate」を効果的に用いることで設定値が直ちに適用されブランクが発生することを回避できます。</p>
<p>今まで主流だったShow/Hideによるメーターの状態の切り替え方法から、よりスマートな方法として!RainmeterSetVariableを使った方法に置き換えるのも現実的になります。</p>
<br />
<p>その他にも、例えばウェブからの情報取得スキンなどは実際には数秒間隔で更新が必要なわけではなく、30分間隔で更新されるスキンであればCPU消費対策としてUpdateを30分間隔にしてやりたいところですが、情報取得が完了してそれが描画されるまで１Updateが必要なため、そうしてしまうと描画されるまで30分かかってしまうという問題があります。</p>
<p>しかしこのようなケースでもFinishActionで「!RainmeterUpdate」を実行してやることで直ちに描画が更新されます（むしろ描画までのブランクが発生しないので通信環境によっては驚くほど高速に描画されます）。</p>
<p>実際には上のような方式でスキンを作成しようとすると、単純なものは別として、一筋縄ではいかない部分もあってなかなか難しいところはありますが、うまく作れば必要なメジャー／メーターの更新時以外、スキンの大きさや内容に無関係に全くCPUの消費しないスキンも実現可能となります。</p>
<br />
<p>また単機能としては、<strong><a href="/portfolio/update/rainmeter_r642.html#kome3">ImageCrop</a></strong>辺りも単に便利なだけではなく、創造的なスキンを作成するための機能として応用範囲の広い機能と言えます。</p>
<p>とくにDynamicVariablesと共に動的使い方をすると面白い効果が期待できるのではないでしょうか。</p>
<br />
<br />
<p>バージョン1.0以降では後方互換性に関して非常にシビアな開発が行なわれており、バージョンアップによって既存のスキンの動作が変わることや動作しなくなるといったことは非常に稀です。また、2.0ではLuaの実装などで実行ファイル自体は大きくなったものの、パフォーマンス的には上記のようにかなり向上しており、特に現在のバージョンで不満無く使っているユーザーであってもアップデートするメリットはあると思います（メモリー消費はスキンに依存するので旧バージョンとほとんど変わらないと思います）。</p>
<br />
<br />
<ul class="tweet"><li><a href="/portfolio/how_to/rainmeter.html">こちら</a>のページもそろそろ改訂しないと...</li></ul>]]>
</description>
<category>update</category>
<guid>http://kenz0.s201.xrea.com/portfolio/update/rainmeter20.html</guid>
<pubDate>Sun, 06 Feb 2011 20:34:58 +0900</pubDate>
</item>
<item>
<title>Rainmeterアップデート情報 r642</title>
<link>http://kenz0.s201.xrea.com/portfolio/update/rainmeter_r642.html</link>
<description>
<![CDATA[<p><strong><a href="http://rainmeter.net/RainCMS/" class="link">Rainmeter.net</a></strong></p>
<p>前回取り上げたリビジョン（r560）からの更新分です。</p>
<br />]]>
<![CDATA[<h2 class="title2">修正</h2>
<ul>
<li>「Hide on Mouse Over」または「Click Through」状態での画面のチラつきが発生する問題</li>
<li>W/Hが未定義状態でのDynamicWindowSizeの不具合</li>
<li>DynamicVariables有効下でUpdateDividerが無効になる問題</li>
<li>!RainmeterZPosの不具合</li>
<li>AlwaysOnTopの不具合</li>
</ul>
<h2 class="title2">変更</h2>
<ul>
<li>GreyScale, ImageTint, ImageFlip, ImageRotate, ColorMatrix、といったイメージ編集オプションが他の画像を使うメーターでも利用可能に（ImageRotateはButtonImage/BitmapImageでの仕様は不可）</li>
<li>ツールチップの非表示オプション「ToolTipHidden」が[Rainmeter]セクションに対応（すべてのツールチップを非表示）</li>
<li>MeterStyleの複数定義が可能に（※1）</li>
<li>「MeasureName」に対応した変数「%(n)」が10以上でも使用可能に</li>
<li>MBM5プラグインとWirelessInfoプラグインの廃止</li>
<li>Groupsの定義が[Rainmeter]セクションに対応（スキン全体のGroups定義）</li>
<li>IMAGEメーターでSTRINGメーターのような変数「%(n)」を使ったImageNameの定義が可能に（※2）</li>
</ul>
<h2 class="title2">追加</h2>
<ul>
<li>スキンのドラッグを抑制する「DisableDragging」が追加</li>
<li>背景画像を繰り返し描画するモード「BackgroundMode=4」の追加</li>
<li>画像の指定部分を切り取る「ImageCrop」が全画像使用メーター（ButtonImage/BitmapImageは不可）に追加（※3）</li>
<li>IMAGEメーターに繰り返し描画する「Tile」が追加</li>
<li>テキスト入力ボックスのための「InputText」プラグインが追加</li>
<li>指定フォルダーの情報取得のための「FolderInfo」プラグインが追加</li>
</ul>
<h2 class="title2">その他、機能以外の更新</h2>
<ul>
<li>Rainstallerのユニコード対応</li>
<li>コンテキストメニューにスキンのダウンロードサイトへのリンク「Download」が追加</li>
<li>付属スキンが「Illustro」のみに変更</li>
<li>インストーラーの標準インストールの他にポータブル・インストールが追加</li>
</ul>
<br />
<hr />
<br />
<p><a name="kome1">（※1）</a>1つのメーターに対して複数のMeterStyleが適用できるようになりました。これにより効率的で自由度の高い定義が可能となります。</p>
<p>定義方法は以下のように「|」で区切って定義します。</p>
<div class="code"><pre>
MeterStyle=StyleA | StyleB | StyleC
</pre></div>
<p>もしもStyleAの定義内容とStyleCの定義内容が重なった場合には後方定義のStyleCが適用されることとなります。</p>
<br />
<p><a name="kome2">（※2）</a>IMAGEメーターで以下のようなSTRINGメーターに似た定義方法が可能になりました。</p>
<div class="code"><pre>
MeasureName=MeasureImageName
MeasureName2=MeasureImageoSize
ImageName="%1 - %2.jpg"
</pre></div>
<br />
<p><a name="kome3">（※3）</a>画像を指定領域で切り取る「ImageCrop」が追加されました。ButtonImage/BitmapImage以外の画像使用メーター下で使用できます。</p>
<div class="code"><pre>
ImageCrop=X, Y , 幅, 高さ, (基準点)</pre></div>
<p> (基準点)はオプションでデフォルトは１（左上）になります。</p>
<ul>
<li>1 = 左上</li>
<li>2 = 右上</li>
<li>3 = 右下</li>
<li>4 = 左下</li>
<li>5 = 中央</li>
</ul>
<div class="code"><pre>
例）ImageCrop=-60, -60, 120, 120, 5
</pre></div>
<img src="/image/blog/2010-12-09-01.png" class="img1" />
<p>X/Yは負の値が使用可能です。指定エリアが元画像のサイズの部分の越える場合、その部分は透明色として扱われます。</p>]]>
</description>
<category>update</category>
<guid>http://kenz0.s201.xrea.com/portfolio/update/rainmeter_r642.html</guid>
<pubDate>Mon, 06 Dec 2010 04:12:01 +0900</pubDate>
</item>
<item>
<title>Rainmeter1.3リリース</title>
<link>http://kenz0.s201.xrea.com/portfolio/update/rainmeter13.html</link>
<description>
<![CDATA[<p><strong><a href="http://rainmeter.net/RainCMS/" class="link">Rainmeter.net</a></strong></p>
<p>Rainmeterの新しいバージョン1.3が本日リリースされました。</p>
<p>いつもの如く、前回のバージョン1.2からの修正/変更/追加に関する情報を、個々のアップデート情報からまとめてリストアップしておきます。</p>]]>
<![CDATA[<h2 class="title2">修正</h2>
<ul>
<li>マルチモニター環境でのいくつかの改善</li>
<li>環境変数%APPDATA%の不具合の修正</li>
<li>マウスに関わる緒問題の修正と改善（<strong><a href="/portfolio/update/rainmeter_r499.html">r499</a></strong>）</li>
<li>コマンドライン引数に関する問題の修正</li>
<li>プラグイン「WifiStatusPlugin」の修正</li>
<li>MeasureTime/Uptimeの修正</li>
<li>諸々の修正（大／小文字問題、StringIndexなど）</li>
<li>画面解像度変更時に変数がリセットされる問題</li>
<li>異質なSound関連コマンド（PLAYなど）の定義方法を改善</li>
<li>Hiddenメーター上でも表示されるToolTipの問題</li>
<li>ToolTipWidthの定義で計算式が使えない問題</li>
<li>DynamicVariables上の変数では小数点以下が切り捨てられる問題</li>
<li>WebParserで取得URLが空の時、既存の情報がクリアされない問題</li>
</ul>
<h2 class="title2">変更</h2>
<ul>
<li>アップデートチェックのシステム変更（<strong><a href="/portfolio/update/rainmeter_r475.html">r475</a></strong>）</li>
<li>「ConfigEditor」無指定時ではデフォルトのテキストエディタでINIファイルが開くように変更</li>
<li>Logファイルの作成に関する変更（<strong><a href="/portfolio/update/rainmeter_r475.html">r475</a></strong>）</li>
<li>「DesktopWorkArea」オプションがマルチモニターに対応</li>
<li>コンテキストメニューの改訂（<strong><a href="/portfolio/update/rainmeter_r475.html">r475</a></strong>）</li>
<li>多重起動に関する挙動の変更</li>
<li>メニューの「Help」がローカルマニュアルからオンラインマニュアルへ変更</li>
<li>Substituteでダブルクォートを表現することが可能に（<strong><a href="/portfolio/update/rainmeter_r529.html">r529</a></strong>）</li>
<li>WebParserのPCREライブラリの更新(Ver.8.10)</li>
<li>AboutダイアログのUIが変更（<strong><a href="/portfolio/update/rainmeter_r529.html">r529</a></strong>）</li>
<li>Percentual=1の状態でNumOfDecimalsが使用可能に</li>
<li>ToolTipにメジャーからの取得値を参照する（%）が使用可能に</li>
</ul>
<h2 class="title2">追加</h2>
<ul>
<li>Windows7とVistaのシステムボリュームの状態とコントロールのためのプラグイン「Win7AudioPlugin」の追加（Windows7とVistaのみ対応）</li>
<li>バーチャルデスクトップ用のアプリと連携するためのプラグイン「VirtualDesktops」の追加（DexpotとVirtuaWinに対応）</li>
<li>Logファイルを開くエディタを指定する「LogViewer」の追加</li>
<li>複数のConfig/Measure/Meter同士をグループ化させる「Group」オプションとそれに対応した!Bangコマンドの追加（<strong><a href="/portfolio/update/rainmeter_r475.html">r475</a></strong>）</li>
<li>トレイアイコンと各スキンのコンテキストメニューを呼び出すための「!RainmeterTrayMenu」と「!RainmeterSkinMenu」のコマンドの追加</li>
<li>ツールチップ機能の追加（<strong><a href="/portfolio/update/rainmeter_r475.html">r475</a></strong>）</li>
<li>Tooltipsは幅を定義する「ToolTipWidth」の追加</li>
<li>ビルトイン変数「#ROOTCONFIGPATH#」の追加</li>
<li>INIファイルの書き換えを行なうBangコマンド「!RainmeterWriteKeyValue」の追加（<strong><a href="/portfolio/update/rainmeter_r499.html">r499</a></strong>）</li>
<li>「PluginMediaKey」プラグイン追加</li>
<li>いくつかの設定変更に関するコマンドの!Bang化（<strong><a href="/portfolio/update/rainmeter_r529.html">r529</a></strong>）</li>
<li>WebParserに実体参照文字列のデコード機能が追加（<strong><a href="/portfolio/update/rainmeter_r529.html">r529</a></strong>）</li>
<li>ToolTipの表示を抑制するToolTipHiddenの追加（デフォルト0）</li>
</ul>
<br />
<hr />
<br />
<p>上記はプログラム本体や公式プラグインに関するアップデート内容で、そのほか付属のアドオンなども若干の修正/変更がなされています。</p>
]]>
</description>
<category>update</category>
<guid>http://kenz0.s201.xrea.com/portfolio/update/rainmeter13.html</guid>
<pubDate>Mon, 11 Oct 2010 13:22:13 +0900</pubDate>
</item>
<item>
<title>Rainmeterアップデート情報 r529</title>
<link>http://kenz0.s201.xrea.com/portfolio/update/rainmeter_r529.html</link>
<description>
<![CDATA[<p><strong><a href="http://code.google.com/p/rainmeter/downloads/detail?name=Rainmeter-1.3-r529-32bit-beta.exe" class="link">Rainmeter-1.3-r529-32bit-beta.exe</a></strong></p>
<p><strong><a href="http://code.google.com/p/rainmeter/downloads/detail?name=Rainmeter-1.3-r529-64bit-beta.exe" class="link">Rainmeter-1.3-r529-64bit-beta.exe</a></strong></p>]]>
<![CDATA[<h2 class="title2">修正</h2>
<ul>
<li>諸々の修正（大／小文字問題、StringIndexなど）</li>
<li>画面解像度変更時に変数がリセットされる問題</li>
<li>異質なSound関連コマンド（PLAYなど）の定義方法を改善</li>
</ul>
<h2 class="title2">変更</h2>
<ul>
<li>Substituteでダブルクォートを表現することが可能に（※1）</li>
<li>WebParserのPCREライブラリの更新(Ver.8.10)</li>
<li>AboutダイアログのUIが変更（※4）</li>
</ul>
<h2 class="title2">追加</h2>
<ul>
<li>「PluginMediaKey」プラグイン追加</li>
<li>いくつかの設定変更に関するコマンドの!Bang化（※2）</li>
<li>WebParserに実体参照文字列のデコード機能が追加（※3）</li>
</ul>
<br />
<hr />
<br />
<p>（※1）従来、ダブルクォートは開始/終了の引用符文字として扱われ、ダブルクォート自体を置き換える手段がありませんでしたが、その解決手段として以下のようにシングルクォートで囲う方法が使用できるようになりました。</p>
<div class="code"><pre>
Substitute='"':""
</pre></div>
<p>（シングルクォートがダブルクォートと同様に使えるようになったわけではありません）</p>
<br />
<p>（※2）以下のコマンドが追加されました。内容はどれもコンテキストメニューから行なえる設定変更に関するコマンド群です。</p>
<ul>
<li>!RainmeterDraggable(Group)</li>
<li>!RainmeterKeepOnScreen(Group)</li>
<li>!RainmeterClickThrough(Group)</li>
<li>!RainmeterSnapEdges(Group)</li>
</ul>
<br />
<p>（※3）WebParserに実体参照文字列のデコード機能が追加され、「DecodeCharacterReference」オプションにて各有効/無効を切り替えることができます。</p>
<ul>
<li>0：デコードしません（デフォルト）</li>
<li>1：数値文字参照と文字実体参照の両方をデコードします</li>
<li>2：数値文字参照のみデコードします</li>
<li>3：文字実体参照のみデコードします</li>
</ul>
<p>従来Substituteによって以下のように出現率の多い文字だけを置き換えていた不完全で煩雑な作業がこの機能によって一掃されます。</p>
<div class="code"><pre>
Substitute="&amp;lt;":"<","&amp;gt;":">","&amp;apos;":"'","&amp;amp;":"&"
</pre></div>
<p>とくに、Twitterのように完全にエンコードされたソースから正しい文字を表示するためには不可欠な機能といえます。</p>
<br />
<p>（※4）以下のようにAboutダイアログのUIが一新され、デバッグ情報が統合されました。</p>
<div class="zoom">
<a href="/image/blog/2010-09-07-01.png" class="mb"><div class="zoom_i" title="画像拡大"></div><img src="/image/blog/2010-09-07-01.png" width="380" /></a>
</div><br clear="all"/>
]]>
</description>
<category>update</category>
<guid>http://kenz0.s201.xrea.com/portfolio/update/rainmeter_r529.html</guid>
<pubDate>Tue, 07 Sep 2010 13:50:15 +0900</pubDate>
</item>
<item>
<title>ニコニコ動画用スキン「2coMeter2」アップデート</title>
<link>http://kenz0.s201.xrea.com/portfolio/memo/2cometer2.html</link>
<description>
<![CDATA[<p><strong><a href="http://kenz0.s201.xrea.com/portfolio/skins/2cometer2.html">2coMeter2</a></strong>をアップデートしました。</p>
<p>従来の表示タイプに加え、指定時間毎に一件づつ順次表示していく[2coMeter2R]と
10件まとめて表示する[2coMeter2Th/Tv]を新たにバリエーションに加えました。</p>
<p>このバージョンはRainmeter-1.3beta以上で動作可能です。</p>
]]>
<![CDATA[<h2 class="title2">製作メモ</h2>
<p>[2coMeter2R]はフィード内のアイテム（動画情報）を一件づつ指定した間隔で順次表示していくというスキンです。</p>
<p>以前も似たような趣旨で<strong><a href="/portfolio/memo/feedline_rssrainmeter.html">FeedLine</a></strong>というスキンを製作したことがありますが、今回はまた違ったアプローチでより効率的な方法を模索してみました。</p>
<p>幸いにも1.3ベータにて、「<strong><a href="/portfolio/update/rainmeter_r499.html">!RainmeterWriteKeyValue</a></strong>」というスキンの内容を書き換える機能が追加され、これを効率よく使用することでそれが可能となりました。</p>
<br />
<p>理屈は単純で、指定した時間になると変数NUMががカウントアップされその番号に書き換えられたスキンで新たにリフレッシュされます。</p>
<p>そして変数NUMは何件目を取得対象にするかという正規表現に働いて取得するポイントが変わっていくという仕組みで、変数NUMが変数MAXに達すると再び0に戻ります。</p>
<br />
<p>さて、ここまでは動作的に問題ないのですが、問題はスキンの起動時です。</p>
<p>上記の手法だと、スキンを終了した時のポイントで次回から始まることになってしまいます。</p>
<p>そうではなく、起動時は必ず1件目から始めたいという問題をクリアするためには、ちょっとした細工が必要になりそうです。</p>
<p>まず考えたことは、OnRefreshActionで起動時に強制的に変数NUMを0に書き換えること、しかしこれでは、指定時間でリフレッシュを繰り返すこのスキンでは、毎回０に書き換えられてしまうことになります。</p>
<p>OnRefreshActionコマンドは初回起動時だけではなくリフレッシュの時にも同様に働くコマンドだからです。</p>
<p>そこでリフレッシュ時には適用されず、初回起動時にのみ適用される方法として次のような方法を考えてみました。</p>
<br />
<p>これはCalcのCounter関数を利用する方法です。</p>
<p>Counter関数はUpdate秒間隔で１づつカウントアップを繰り返す特殊な関数で、これ自体はスキンの開始から終了まで止まることなく働き続け、たとえ途中でリフレッシュしたりDisabledにしても０にリセットされることがない、という特徴を持っています。</p>
<div class="code"><pre>
[RESET]
Measure=Calc
Formula=Counter
IfEqualValue=1
IfEqualAction=!Execute [!RainmeterWriteKeyValue Variables NUM 0][!RainmeterRefresh]
</pre></div>
<p>そこでこの特徴を利用して上記のように設定すれば、スキンを起動した直後だけ指定コマンドを実行することができるようになります。</p>
<p>Counterが１を返すのはスキン開始直後の1回限りで、その後スキンがリフレッシュされても2度と１は返しません。</p>
<p>注意点としては、必ず「IfEqual」を使うこと。これを「IfAbove」にしてしまうと当然リフレッシュ時に「１以上」という評価でコマンドが実行されてしまいます。</p>
<br />
<p>!RainmeterWriteKeyValueコマンドは非常に強力で今後いろいろな利用が期待できる機能といえます。</p>
<p>ただし、書き換えた内容をスキンに適用するためにはスキンのリフレッシュが不可欠であることは言うまでもありませんが、このリフレッシュのタイミングがこの機能を使いこなす上でポイントになってくるでしょう。</p>
<p>安易にリフレッシュの設定をすると永久ループを形成してしまう恐れもあり、上記のようなCounter関数を利用する方法はその解決策の一つとして挙げられます。</p>
<br /><br />
<p>さて、もう一つオマケ機能ということで、スキンの更新間隔毎にフェードアウト＆インしながら更新されるという機能を入れてみました。</p>
<p>これはスキンが書き換えられリフレッシュされる直前に!RainmeterHideFadeでスキンをフェードアウトして、リフレッシュ直後に!RainmeterShowFadeでフェードインするという仕組みです。</p>
<div class="code"><pre>
[START]
Measure=Calc
Formula=START+1
IfAboveValue=1
IfAboveAction=!Execute [!RainmeterShowFade][!RainmeterDisableMeasure START]
[COUNT]
Measure=Calc
Formula=#MAX#>(#NUM#+1)?(#NUM#+1):0
[ROTATION]
Measure=Calc
Formula=Counter%(#UPDATE#+2)
IfEqualValue=#UPDATE#
IfEqualAction=!RainmeterHideFade
IfAboveValue=#UPDATE#
IfAboveAction=!Execute [!RainmeterWriteKeyValue Variables NUM [COUNT]][!RainmeterRefresh]
</pre></div>
<p>具体的には、[ROTATION]で指定時間に達するとIfEqualActionで!RainmeterHideFadeが実行され、それを過ぎるとIfAboveActionでスキンの書き換えが行なわれ同時にスキンがリフレッシュされます。</p>
<p>次に[START]によってスキン開始一秒後に!RainmeterShowFadeが実行されるというわけです。</p>
<p>スキンには「OnRefreshAction=!RainmeterHide」と定義しており基本的には非表示でスタートすることを明示しておき、上記の!RainmeterShowFadeによって表示させてやるようにします。</p>
<br />
<p>上は!RainmeterShowFade/HideFadeを利用してスライドショーのように見せるやり方の応用ですが、その他にもこんな使い方もできるので興味のある方は試してみてください。</p>
<p>（定義した5つの語句がフェードしながら切り替わっていく例）</p>
<div class="code"><pre>
[Rainmeter]
DynamicWindowSize=1
[Variables]
num=1
Phrase1="1st Phrase"
Phrase2="2nd Phrase"
Phrase3="3rd Phrase"
Phrase4="4th Phrase"
Phrase5="5th Phrase"
[MeasureCount]
Measure=Calc
Formula=(((Counter%50)-((Counter%50)%10))/10)+1
Substitute=".00000":""
[MeasureSwitch]
Measure=Calc
Formula=Counter % 10
IfEqualValue=8
IfEqualAction=!RainmeterHideFade
IfAboveValue=8
IfAboveAction=!Execute [!RainmeterSetVariable num [MeasureCount]][!RainmeterShowFade]
DynamicVariables=1
[Phrase1]
Measure=Time
Format=#Phrase1#
[Phrase2]
Measure=Time
Format=#Phrase2#
[Phrase3]
Measure=Time
Format=#Phrase3#
[Phrase4]
Measure=Time
Format=#Phrase4#
[Phrase5]
Measure=Time
Format=#Phrase5#
[MeterText]
Meter=STRING
FontSize=75
AntiAlias=1
FontColor=FFFFFF
Text=[Phrase#num#]
DynamicVariables=1
</pre></div>
<br />
<hr />
<br />
<p>[2coMeter2Th/Tv]はまとめて10件表示するタイプのスキンです。</p>
<p>とはいっても、通常の[2coMeter2]をただ10個並べるのではスキンは巨大になってしまうので、1個あたりの表示内容は簡潔に画像とタイトルのみにしました。</p>
<p>また、さらに省スペース化を実現するため、新たに追加された<strong><a href="/portfolio/update/rainmeter_r475.html">ツールチップ機能</a></strong>を使ってタイトルを表示することにしました。</p>
<div class="zoom">
<a href="/image/skins/2coMeter2/2cometer2Th.png" class="mb"><div class="zoom_i" title="画像拡大"></div><img src="/image/skins/2coMeter2/2cometer2Th.png" width="380" /></a>
</div><br clear="all"/>
<p>当初は「ToolTipTitle」でタイトルと、「ToolTipText」で概要を表示させる設定でしたが、概要が長い場合にツールチップが巨大になり相当のリソースを消費してしまうことになるため、これは却下することにしました。</p>
<p>また、「ToolTipTitle」はツールチップの幅を定義する「ToolTipWidth」の対象外で長いタイトルではツールチップの幅を抑制できないことから、結局、「ToolTipTitle」は使わず「ToolTipText」でタイトルだけを表示する簡素な仕様になりました。</p>
<br />
<p>また、右（下）ボタンで何件目を表示するかを指定できるようにしてみました。</p>
<p>これは前述の!RainmeterWriteKeyValueを使った方法と同様で、あらかじめボタンには変数番号が指定されていて、ボタンをクリックすればその番号に書き換えられ新しいスキン内容で更新されるという仕組みです。</p>
<p>ただし、ランキング用フィードなどは100件までありますが、一般の動画フィードなどは30件までしかないので、そのようなフィードでは40件目以降をクリックしても当然エラーになることに注意してください。</p>]]>
</description>
<category>memo</category>
<guid>http://kenz0.s201.xrea.com/portfolio/memo/2cometer2.html</guid>
<pubDate>Tue, 24 Aug 2010 16:20:05 +0900</pubDate>
</item>
<item>
<title>Rainmeterアップデート情報 r499</title>
<link>http://kenz0.s201.xrea.com/portfolio/update/rainmeter_r499.html</link>
<description>
<![CDATA[<p><strong><a href="http://code.google.com/p/rainmeter/downloads/detail?name=Rainmeter-1.3-r499-32bit-beta.exe&can=2&q=" class="link">Rainmeter-1.3-r499-32bit-beta.exe</a></strong></p>
<p><strong><a href="http://code.google.com/p/rainmeter/downloads/detail?name=Rainmeter-1.3-r499-64bit-beta.exe&can=2&q=" class="link">Rainmeter-1.3-r499-64bit-beta.exe</a></strong></p>]]>
<![CDATA[<h2 class="title2">修正</h2>
<ul>
<li>環境変数%APPDATA%の不具合の修正</li>
<li>マウスに関わる緒問題の修正と改善（※1）</li>
<li>コマンドライン引数に関する問題の修正</li>
<li>プラグイン「WifiStatusPlugin」の修正</li>
<li>MeasureTime/Uptimeの修正</li>
</ul>
<h2 class="title2">変更</h2>
<ul>
<li>多重起動に関する挙動の変更</li>
<li>メニューの「Help」がローカルマニュアルからオンラインマニュアルへ変更</li>
</ul>
<h2 class="title2">追加</h2>
<ul>
<li>Tooltipsは幅を定義する「ToolTipWidth」の追加</li>
<li>ビルトイン変数「#ROOTCONFIGPATH#」の追加</li>
<li>INIファイルの書き換えを行なうBangコマンド「!RainmeterWriteKeyValue」の追加（※2）</li>
</ul>
<br />
<hr />
<br />
<p>（※1）従来のRainmeterはマウスに関する動作でいくつかの不都合がありましたが、そのほとんどが解決されました。</p>
<p>以下、解決された代表的な問題。</p>
<ul>
<li>近接するメーターがないとMouseLeaveが働かない問題</li>
<li>MouseOver/Leaveおよびクリックアクションがメーターを通過して下のメーターまで届いてしまう問題</li>
<li>重ねられた複数のスキン上でボタンメーターのhover動作が下のスキンに影響を与える問題</li>
<li>ボタンメーターがつかめない問題</li>
</ul>
<br />
<p>（※2）「!RainmeterWriteKeyValue」は新しく追加されたINI形式のファイルの書き換えを可能にするコマンドで、以下の形が基本です。</p>
<div class="code"><pre>
!RainmeterWriteKeyValue Section Key Value ("FileSpec")
</pre></div>
<p>これによりスキンのファイル自体を書き換えることが可能になります。</p>
<p>例えば現在のスキンの特定の部分を書き換えることを例に挙げるとすると、</p>
<div class="code"><pre>
[MeasureExample]
Measure=Calc
Formula=<u>0</u>
</pre></div>
<p>、という部分の<u>0を1</u>に書き換えようとした場合</p>
<div class="code"><pre>
!RainmeterWriteKeyValue MeasureExample Formula <u>1</u>
</pre></div>
<p>として実行すれば値が1としてファイルが上書きされます。</p>
<br />
<ul class="hint"><li>書き換えられた内容を反映させるためにはスキンをリフレッシュさせる必要があります<br />「!RainmeterSetVariable」はリアルタイムに変数を変化させるコマンドですがリフレッシュ後には値は初期値に戻ってしまいます。<br />一方、「!RainmeterWriteKeyValue」はファイル自体を書き換えるため変更は恒久的で、この点が両コマンドの大きな違いです。</li></ul>
<br />
<p>("FileSpec")部分はオプションで、上記のように省略した場合は自動的に現在のスキンに適用されますが、書き換え対象を指定すれば他のスキンあるいはIncudeファイル、Rainmeter.iniになどのINI形式のファイルを書き換えることもできます。</p>
<br />
<ul class="warning"><li>
書き換え対象ファイルのパス指定は以下のようにビルトイン変数を使って定義し、フルパスや相対パスでの指定は原則できないようになっています。<br />（Rainmeter関連以外のファイルの書き換えを禁止するため）
<div class="code"><pre>
- #SKINSPATH#SkinName\RSS.ini
- #SETTINGSPATH#Rainmeter.ini
- #CURRENTPATH#Variables\var.inc
</pre></div>
</li></ul>
<br />
<p>!RainmeterWriteKeyValueで書き換える値には、もちろんメジャーで取得した値をあてることもできるため、使い方によって非常に強力なコマンドとして活用できるでしょう。</p>]]>
</description>
<category>update</category>
<guid>http://kenz0.s201.xrea.com/portfolio/update/rainmeter_r499.html</guid>
<pubDate>Mon, 09 Aug 2010 19:52:54 +0900</pubDate>
</item>
<item>
<title>Rainmeterアップデート情報 r475</title>
<link>http://kenz0.s201.xrea.com/portfolio/update/rainmeter_r475.html</link>
<description>
<![CDATA[<p><strong><a href="http://code.google.com/p/rainmeter/downloads/detail?name=Rainmeter-1.3-r475-32bit-beta.exe" class="link">Rainmeter-1.3-r475-32bit-beta.exe</a></strong></p>
<p><strong><a href="http://code.google.com/p/rainmeter/downloads/detail?name=Rainmeter-1.3-r475-64bit-beta.exe" class="link">Rainmeter-1.3-r475-64bit-beta.exe</a></strong></p>]]>
<![CDATA[<h2 class="title2">修正</h2>
<ul>
<li>マルチモニター環境でのいくつかの改善</li>
</ul>
<h2 class="title2">変更</h2>
<ul>
<li>アップデートチェックのシステム変更（※1）</li>
<li>「ConfigEditor」無指定時ではデフォルトのテキストエディタでINIファイルが開くように変更</li>
<li>Logファイルの作成に関する変更（※4）</li>
<li>「DesktopWorkArea」オプションがマルチモニターに対応（<del>DesktopWorkArea@x でx番目のモニターを指定可能、０または無指定の場合はプライマリモニター</del>　下のコメント＃1,#2にて詳細説明を頂きました）</li>
<li>コンテキストメニューの改訂（※5）</li>
</ul>
<h2 class="title2">追加</h2>
<ul>
<li>Windows7とVistaのシステムボリュームの状態とコントロールのためのプラグイン「Win7AudioPlugin」の追加（Windows7とVistaのみ対応）</li>
<li>バーチャルデスクトップ用のアプリと連携するためのプラグイン「VirtualDesktops」の追加（DexpotとVirtuaWinに対応）</li>
<li>Logファイルを開くエディタを指定する「LogViewer」の追加</li>
<li>複数のConfig/Measure/Meter同士をグループ化させる「Group」オプションとそれに対応した!Bangコマンドの追加（※2）</li>
<li>トレイアイコンと各スキンのコンテキストメニューを呼び出すための「!RainmeterTrayMenu」と「!RainmeterSkinMenu」のコマンドの追加</li>
<li>ツールチップ機能の追加（※3）</li>
</ul>
<br />
<hr />
<br />
<p>（※1）現在使用しているバージョンより新しいバージョンがリリースされたかを確認するアップデートチェックのシステムが変更されました。</p>
<p>従来はデフォルトで「チェックしない」だったのが、デフォルトで「チェックする」に変更されました。</p>
<p>「チェックしない」に変更するためにはAbout画面で「Disable check for updates」にチェックを入れるか、Rainmeter.iniの[Rainmeter]セクション内に「DisableVersionCheck=1」と記述します。</p>
<p>また、更新が確認された場合の動作もポップアップ画面でお知らせするものから、トレイアイコンメニューの最上部に「"New Version Available"」と追加表示されるものへと変更されました。</p>
<br />
<p>（※2）グループ化させたMeasure、Meter、あるいはConfigをまとめて実行させるためのオプションとそのコマンドです。</p>
<p>以下に基本例を紹介します。</p>
<br />
<script src="http://friendpaste.com/7f46iJhwid68ILFBECCycu.js"></script>
<br />
<p>上記の例では、Groupに「ImageMeter」と名付けられた三つのメーターを[Meter_Show_Image]セクションでまとめて実行させる例です。</p>
<p>「!RainmeterToggleMeterGroup <u>ImageMeter</u>」のようにグループ名を指定すれば、そのグループ名の持つメーターのすべてが実行対象になる訳です。</p>
<p>Measureに対するコマンドも同様に「!RainmeterToggleMeasureGroup グループ名」などというように指定してまとめて実行させることが可能です。</p>
<p>一方、Configに対するグループ化は概念的には上と全く同じですが、こちらはRainmeter.iniの各Configのセクション内でグループ名を指定しておきます。</p>
<p>そしてConfigのためのコマンドである、例えば!RainmeterToggleのグループ用コマンド「!RainmeterToggleGroup」で、「!RainmeterToggleGroup　グループ名」などとすればグループ名で指定したConfigだけをまとめて実行させることができます。</p>
<br />
<p>これらのグループ用コマンドは冗長になりがちなコマンドの記述を簡潔にすることができ、特にMeterStyleと組み合わせて用いれば、とてもスマートなコードにすることが可能です。</p>
<br />
<p>（※3）いくつかのオプションを定義することで、メーターにマウスを乗せた際にツールチップを表示できます。</p>
<p>以下は実例です。</p>
<br />
<script src="http://friendpaste.com/5kBAhzYPxrBVZpYa33vNmU.js"></script>
<br />
<ul>
<li>ToolTipText=表示テキスト（必須）</li>
<li>ToolTipTitle=表示タイトル</li>
<li>ToolTipType=表示タイプ（0で矩形、1で吹き出し型）</li>
<li>ToolTipIcon=表示アイコンのタイプ<ul> 
<li>INFO</li>
<li>WARNING</li>
<li>ERROR</li>
<li>QUESTION</li>
<li>SHIELD</li>
<li>フルパス指定で任意のアイコン</li>
</ul></li>
</ul>
<p>アイコン表示のためにはToolTipTitleが必須です、また、ToolTipTexのテキスト内には改行を表す変数「#CRLF#」を挿入することで適宜改行させることが可能です。</p>
<p>任意に表示させるアイコンはICO形式のファイルが対象です。また、ツールチップ自体のスタイルはWindowsのテーマに依存します。</p>
<br />
<p>上記オプションはもちろんDynamicVariablesと一緒に使えるので、以下のように他の取得値をツールチップの設定値に割り当てて、動的なツールチップにすることも可能です。</p>
<br />
<script src="http://friendpaste.com/3Nn2bBDDJj3rB7c33kCJ7I.js"></script>
<br />
<p>（※4）コンテキストメニュー内に「Logging」が追加され、サブメニューからログファイルのいくつかの操作ができるようになりました。</p>
<ul>
<li>ログファイルを開く</li>
<li>ログの記述を開始する</li>
<li>ログの記述を停止する</li>
<li>ログファイルを削除する</li>
<li>詳細モードへの切り替え</li>
</ul>
<br />
<p>（※5）コンテキストメニューが大幅に改訂されました。</p>
<p>まだ変更される可能性があるため、詳細説明は時期リリース版公開後とします。</p>]]>
</description>
<category>update</category>
<guid>http://kenz0.s201.xrea.com/portfolio/update/rainmeter_r475.html</guid>
<pubDate>Wed, 21 Jul 2010 09:39:49 +0900</pubDate>
</item>
<item>
<title>Obligatory Clock: 針をもたないアナログ時計</title>
<link>http://kenz0.s201.xrea.com/portfolio/memo/obligatory_clock_1.html</link>
<description>
<![CDATA[<p><strong><a href="/portfolio/skins/obligatory_clock.html" class="link">Obligatory Clock</a></strong></p>
<br />
<div class="zoom">
<a href="/image/skins/ObligatoryClock/ObligatoryClock.png" class="mb"><div class="zoom_i" title="画像拡大"></div><img src="/image/skins/ObligatoryClock/ObligatoryClock.png" width="380" /></a>
</div><br clear="all"/>
<p>最近、デザイン系のサイトで目にしたアナログ時計がなかなかクールだったのでRainmeterスキンにしてみました。</p>]]>
<![CDATA[<br />
<p><img src="http://vimeo.com/favicon.ico" style="margin-right:4px;vertical-align:-12%;" /><strong><a href="http://vimeo.com/12846551">Obligatory Designer Clock</a></strong></p><div class="zoom"><a href="http://vimeo.com/moogaloop_local.swf?clip_id=12846551&server=vimeo.com&autoplay=1&fullscreen=1&show_portrait=0&show_title=0&show_byline=0&context_id=&hd_off=0" class="mb" rel="width:640,height:360"><div class="zoom_p" title="再生"></div><img src="/image/blog/2010-07-15-01.png" alt="Obligatory Designer Clock on Vimeo" /></a></div><br clear="all"/>
<p><strong><a href="http://www.saikatbiswas.com/web/Projects/Obligatory_Designer_Clock.htm" class="link">Obligatory Designer Clock - Saikat Biswas</a></strong></p>
<br />
<p>見方はそれほど難しいことはなく上のビデオを見てもらえば一目瞭然だと思いますが、バーの方向が時間、バーの長さが分ということになります。</p>
<br />
<p>さて、世の中にはどうやって読むのか見当も付かないような奇妙キテレツな時計もありますが、このように奇をてらい過ぎず、それでいて個性的なところが実にいいと思います。</p>
<br />
<p>構造的には、このように動作するメーターを作るためには大きく2つの方法があると思います。</p>
<p>1つはBARメーターを一時間毎で動的に回転させる方法、そしてもう一つはROUNDLINEメーターで細長いバーを作って、その長さを分単位で動的に変える方法です。</p>
<p>今回は後者の方が簡単だったので後者の方法で作成してみました。</p>
]]>
</description>
<category>memo</category>
<guid>http://kenz0.s201.xrea.com/portfolio/memo/obligatory_clock_1.html</guid>
<pubDate>Thu, 15 Jul 2010 11:02:54 +0900</pubDate>
</item>
</channel>
</rss>

