とっても滑らかなスクロールに魅了されて...。

評判どおり、Firefox 3は素晴らしいブラウザで常用したいのだけど*1、たった一つのことに魅了されて、今なおSafari 3を使い続けてしまっている。

環境

Safariはコマ落ちしないスクロール

それはスクロールの滑らかさ。自分のMacBookのトラッックパッドで二本指スクロールさせた時の環境*2では、Safariでは表示されている文字や画像が連続して移動する。動画に例えれば秒間30コマの滑らかな映像を見ている感じだ。スクロールする最小単位が1ドットずつ移動している感じ。だから、スクロールしている最中でも文字や画像を目で追うことができる。
一方、Firefoxの方はスクロールの最小単位は20ドットくらいの感じ。トラックパッドの操作に対応して、スクロールは滞りなく処理されているのだけど、映像としてみた感じは秒間10コマ以下のぎこちない映像を見ている感じだ。スクロールの最中は文字や画像を見失いがちになる。無理して追っていると、目が非常に疲れる。

Firefoxのスムーズスクロール

Firefoxの環境設定には「スムーズスクロール機能を使用する」という設定項目がある。期待してチェックありにしてみたのだが...。確かにスクロールは滑らかになった。しかし、自分のMacBook環境ではトラックパッドの操作に対するスクロールの動きに、若干の時間的な遅れがでる。トラックパッドを操作した自分の期待よりも、スクロールが少し遅れて実現される感じだ。反応の悪いリモコンを操作している感じで、気持ち良く操作できなかった...。これならスムーズスクロールは無効にしておいた方がいい。(ビデオ性能がもっと高性能であれば良いのかもしれない。)

Smart Scrollの予想外の滑らかさ

Firefoxで滑らかなスクロールを実現する方法を求めて探していたら、Smart Scrollというシェアウェアを見つけた。(タイムリーなことに7/1にバージョン 2.8.4がリリースされて、OSX 10.5.4もサポートされている。)

    スーパースクロール

スクロールは驚くほどにスムーズになります。しかも、通常のスクロールより楽々です!

      • スーパースクロールの自由流スクロールでページのスクロールをより細かく操作することができます。
      • iPhone と同様に「惰性機能」によって長い書類内の移動はより早くて楽になります。
http://www.bridge1.com/smartscroll.html

上記の解説にすごく期待してインストールしてみた。結果...

ところが、何故かFirefoxではSmart Scrollの効果があらわれない...。(ガックリ)今までのコマ落ちスクロールのままだ。一方のSafariは、iPhoneとかiPod Touchの滑らかさ。Firefoxのスクロール性能を改善したかったのに、ますますSafariが魅力的になってしまった...。

  • ちなみに、自分のMacBookでは以下の設定が気持ちいい。


Firefoxのアドオン

気を取り直して、Firefoxに滑らかなスクロール環境をもたらすアドオン探し。そして見つかったのが、Yet Another Smooth Scrolling 2.0.8。(素晴らしいスクロール環境に感謝です!)デフォルトでは3つのプリセットが設定されていて、それぞれの設定は自分仕様にチューニングも可能だった。

  • MacBookでの好みの設定は以下のような感じ。

これでFirefoxのスクロールもかなり良くなったが、しかし、Smooth ScrollなSafariのスクロールを経験した今となっては、ちょっと色褪せて見える。それくらいSmooth Scrollは感動的に滑らかだった。(と感じる。)恐らく、性能的には大差ないのかもしれない。でも、操作した時に自分の感性にハマっているのはSmooth Scrollだった。
考えてみれば、スクロールという操作は、マウス操作の中でかなりの時間を占めているのではないだろうか。*3自分は気持ち良くスクロールできる環境にとても魅力を感じる。iPhoneiPod Touch、またはFirefoxアドオンのPicLens等の一番の魅力も、スクロールする時の人間の感性にハマる操作感かもしれない。
FirefoxにもPicLensという感性にハマる素晴らしいアドオンがあるのだから、チューニング次第ではSmooth Scroll以上に気持ちいいスクロール環境が作れるはず。そんな素晴らしいスクロール環境が早く出てくることに期待。(出来ることなら、そんなアドオンをサクッと開発できる人になりたいものだ。)

Yet Another Smooth Scrollingの設定

その後も微調整を繰り返し、今は以下の設定で落ち着いた。自分のMacBookトラックパッド環境ではかなりいい感じになった!
設定しながら感じたことは、そのマシンのハードウェア性能(GPUトラックパッドまたはマウス)、システム環境設定のスクロールの速さ、使う人の感性によって、Yet Another Smooth Scrollingのベストな設定はずいぶん変わってくるだろうと。

移動単位
  • スクロールする時の最小単位のドット。40ドットにしている自分の設定では、Firefox 3デフォルトの20ドットよりも大きくて余計にぎこちない動きになりそうだが、Yet Another Smooth Scrollingの効果によって、その間の動きを滑らかに繋いでくれるので大丈夫。
  • トラックパッドで上から下まで指を動かした時に、どれくらいの範囲がスクロールすることを期待しているかによって設定が変わってくる。OS側のシステム環境設定の[スクロールの速さ」の影響も大きい。
45:16+09:00">スムースネス - 初動:
  • 100に近いほど、スクロールの動き始めが鈍い反応になった(車両重量の重い車の加速が鈍いように)。軽快なほど良さそうな気もするが、最も軽快な0にしてしまうとトラックパッドに指を載せただけで過敏に反応してしまい、一瞬スクロールしたい方向とは逆の方向に動いてしまうことがあった。
  • 車のアクセルにも、ハンドルにも遊びがある。使う人の動かし方の癖が、大きく・素早く・ダイナミックに動かす場合ほど、より100に近い値に設定した方が良さそうだ。
  • 自分の場合はより軽快に反応する設定にしたかったので、最も軽快な0に設定した。(設定値に関係なく、一瞬逆方向に動く現象は発生した...。)0から2目盛り動かした0.225に設定した。トラックパッドに指を載せた瞬間の逆方向スクロール防止のため)
45:16+09:00">スムースネス:
  • 100に近いほど、スクロールの慣性で動き続ける時間が長くなった。0なら慣性は無し、即止まる。100だとダラダラといつまでも動き続ける。
加速の感度
  • 大きな値ほど、素早く動かした時のスクロールの移動単位が大きくなって加速する感じ。0であれば、OS側のシステム標準の加速度しか得られなかった。
  • 値が大き過ぎると、スムーススクロールといえども目で追えなくなってしまうので、自分のMacBook環境では130くらいが適当だと感じた。(移動単位の設定と深く関係しているので、その値によっても大分変わってくると思う。)

スムースネス-初動 と スムースネス

さらにその後もYet Another Smooth Scrollingの設定に試行錯誤していると、スムースネスに関する自分の理解が間違っていたことに気付いた...。スクロールが軽快か、鈍いか、慣性があるか、無いかというのは、二つのスムースネスが特定の条件の時に結果として発生する現象であって、スムースネス本来の意味とは違っていた。

  • 二つのスムースネスは直訳の通り素直に「滑らかさ」の指標と考えれば良かったのだ。
    • 0は滑らかさ無し。移動単位が40pxである時、その間の描画は一切なし。スクロールは40pxごとにカクカク動く。
    • 100は最高に滑らか。移動単位が40pxである時、その間を(実際に100コマ描画する訳ではないが、感覚として)100コマの映像で補完する感じ。スクロールは流れるように滑らかに...。
  • どちらも最高に滑らかな100に設定してしまうのが良さそうな気がするが、現実にはビデオ性能の不足で、規定時間内に描画処理が間に合わずに、反応に遅れた間延びしたスクロールになってしまうようだ。(と思うようにしている。)
  • 「スムースネス-初動」はスクロール始めの滑らかさ、「スムースネス」はスクロール中からスクロール終了までの滑らかさ。
  • 1移動単位のスクロールは「スムースネス-初動」の滑らかさに始まり、「スムースネス」の滑らかさで終わる。これが繰り返されると思われる。
  • 「スムースネス-初動」と「スムースネス」の組み合わせは無数にあり、やってみるまでどのようなスクロール効果になるか、未だに予想がつかない。
  • 二つのスムースネスの数値が大き過ぎてもダラダラ。小さ過ぎてもカクカク。

横スクロール

暫く使っていると、Yet Another Smooth Scrollingが有効な時、横スクロールが出来ない状況に気付いた。いろいろ試してみると、シフトキーを押しながらだと縦横自在にスクロールできる。そして、シフトキーを押さずに二本指で横方向になぞると縦方向にスクロールすることにも気付いた。これは最初に不便も感じたが、ブラウザでほとんど使うことのない横スクロールが縦スクロールと認識されると、それはそれで使い易くなってきた。MacBookトラックパッドでは圧倒的に横方向のストロークが長くとれるので、一回の操作で広範囲のスクロールが楽々可能になるのだ。結構気持ちいい。

最終的には、自分のMacBook環境では以下の設定で落ち着いた。(偶然にも40と80の美しい設定値になった。)かなりスムーズにスクロールするようになった!満足。

スクロール関連のabout:config

  • Firefox3ではデフォルトで横スクロール可能な状態になっている。
  • 但し、Yet Another Smooth Scrollingが有効な時は上記の仕様となっているため、シフトキーの併用が必要だ。(シフトキーを併用しない横スクロールの方法は分からなかった。)
  • mousewheel.withnokey.actionの値には以下のような意味がある。(ここで設定すれば、ピクセル単位のスクロールも可能になる。けれど、とても実用的とは言えないが...。)
    • 0: 行単位のスクロール
    • 1: ページ単位のスクロール
    • 2: 履歴を戻る、進む
    • 3: 文字サイズの拡大、縮小
    • 4: ピクセル単位のスクロール

*1:Firefox 3は総合的に見て、今自分が利用できるブラウザの中で最速だし、使い勝手もいいと感じた。ページの読み込みも早いし、複数ページをタブで同時に読み込んでいる最中でも比較的スムーズに操作できる。gmailAppleのページであっても、Safariよりもさらに軽快に操作できている。強制終了した時も、終了時点のウィンドウとタブの状態をページ遷移の履歴を含めて復元してくれるのはすごく嬉しい。ブックマークバーの挙動やタブが開く時の挙動も自分好み。ブックマークの管理画面もSafariより遥かに使い易い。

*2:自分の環境では、マウスのスクロールホイールよりも、2本指のトラックバッドの方がより滑らかだ。

*3:マウスの歴史を振り返ってみると、1ボタンが2ボタンになり、その後スクロールホイールまで装備されるようになってきた。今時、スクロールバーをドラッグしてスクロールしようとは思わなくなってしまった...。