この記事は、伺か Advent Calendar 2014の12/25担当です。
2.3.53〜54にかけて、いくつか重要部の更新を行いました。
内容はものすごい地味なのが1つ、ものすごい破廉恥なのが1つです。
地味編:SERIKO描画仕様の変更
上の画像のように、アニメーション指定の中から、複数のelement指定のあるsurface番号を呼び出した場合の挙動がまともになりました。
今までもoverlayだけならきちんと動いていましたが、それ以外でも「真っ当な」結果を生むようになりました。
以上です。
…いや、この「真っ当な」というのが曲者です。
仕組みは非常に単純で、上の例でいけばsurface101内のelementをあらかじめ背景が透明な画像に対して指定通り全部合成しておき、その合成結果の画像をsurface0の着せ替え指定でinterpolate指定で合成しています。
今まではelementを1つ1つ毎回合成していたので、overlay指定以外でこれをやると、なかなか意図しない怪しい結果になってしまっていました。
この変更のメリット
- シェル画像を各部品ごとにバラバラに用意しておき、部品ごとに合成していく自由度の高いシェルを構築可能
- 合成結果は内部でキャッシュされているので、複雑にelementまみれな定義でも合成コストは1回のみ(高速になる)
- 上記の通りにアニメーションで使わなくても、element指定が複雑なシェルはすべてこのキャッシュの対象になるので、どれだけ超ド変態な定義を書いても合成コストがほとんどかからなくなります。
デメリット
- ちょっとメモリ消費が増える
- もしかしたらすごく怪しく複雑な合成処理をしている既存ゴーストに影響があるかも
破廉恥編:タッチパネルでホイールイベントを起こせるようになった
これの何が重要なのか。
マウスホイールでぐりぐりやるとスカートがめくれるゴーストさんを、タッチパネルで直接指を使ってめくれない!!!!!
こんな事態は許せないので、マウスジェスチャ機能で上または下のジェスチャを行った場合にゴーストがジェスチャイベントに反応しない場合は、タッチパネル上からの操作に限り、ホイールイベントを内部で起こすことにしました。
SSP上のマウスジェスチャは右ドラッグですが、これはタッチパネル上でも簡単に起こせます。
目標位置を1本指でタッチ、そのまま1秒ぐらい動かさないで居ると、下の画像のように□マークが出ます。
マークが出たら、指を上に動かしてください。
めくれます。
以上です。
そのほか編:SSPヘルプがWeb上に移行しました。
Windowsのヘルプシステムにまともに使えるのがなくなったのも理由ですが、ヘルプをWeb上に移行した上で、ukadocプロジェクトに丸投げしました。これはひどい。
ここからも見られます→ http://ssp.shillest.net/ukadoc/ssphelp/
おおむね もっしょくしさん と 奈良阪さん あたりを主としてukadocのコミッター担当さんが超がんばってくれたようです。ありがとうございます。
私はだいたい見てただけです。これは超ひどい。
ukadocの本来のおしごと、まともな仕様書の編集についてもよろしくです。