【スキン】 REFCON その5 - 説明せねばなるまい。

  • 2009年06月01日(月)

今日はちょっと簡単に、このスキンの仕組みについて説明をしてみます。
や、そういう要望があったとかなかったとかは関係なく、んー‥‥気分で?

前にも書きましたが、このスキンでは画像をクリックするとコマンドが実行されます。
しかし画像自体を対象にしてしまうと、画像のどの部分でも反応してしまうので、
スキンをドラッグして移動させることができなくなってしまいます。

例えば.iniファイルをこんな風にしちゃうとダメなわけ。単純でいいんだけどね〜。

  [Icon1]
  Meter=IMAGE
  X=0
  Y=0
  ImageName=#IconColor#_#Icon1#_#Icon1W#.png
  LeftMouseDownAction=!execute ["#Exec1#"]

これは解決策としては、ボタン形式の画像を重ねるとか、文字と影の上下で
画像を分けるとかいろいろ思いつきますが、今回、画像自体は他のソフトにも
(例えば侍とか)流用できるように、Rainmeterのボタン形式の画像にはせず
一枚の画像で作るようにしていましたので(手抜きじゃないよ? ホントダヨ?)
別のセクションでクリックできる範囲を限定することにしました。

  [Icon1]
  Meter=IMAGE
  X=0
  Y=0
  ImageName=#IconColor#_#Icon1#_#Icon1W#.png

  [Exec1]
  Meter=STRING
  X=0r
  Y=0r
  W=#Icon1W#
  H=32
  LeftMouseDownAction=!execute ["#Exec1#"]

  「その4」で書いた「画像の幅を.iniファイルに記載する必要がある」というのは
  このように「W=#Icon1W#」と範囲指定するためで、各アイコンごとに記述します。
  求めている動作を画像一枚で実現するのには、どうしても必要になってきます。
  アイコンを並べるときの相対座標にも使うので、この方法がベストだと思います。

例えばこの「MESSENGER」の画像で説明すると、斜線部分が範囲指定されていて、
下の薄いピンク色の部分はマウスクリックに反応しないようになっています。

範囲指定しても画像が完全に透明だとマウスに反応しないので、適当にクリックしても
実行されるよう、「MESSENGER」のまわりには薄くぼかした影を入れてあります。
下に反射している影の部分にはぼかしを入れていないので、スキンを移動させるときは
この薄いピンク色の部分をマウスで掴んでドラッグしなければなりません。
「その3」で書いた「ちょっと掴みづらいけど」というのはこういうことです。

‥‥と書いてみると、大したことやってないのにけっこうな文章量になりますね。
スキンを作ってるときは深く考えずにやっちゃってるんですがw

あ、このスキンではこのように考えましたが、他のスキンではちがった考え方になり、
ちがった作りになります。画像と.iniファイルの組み合わせ方でいろいろな動作や
表現をさせることができる自由度の高さが、Rainmeterのスキンの魅力でしょうかね。