令和が始まって早一か月たちましたが、平成の振り返り(?)ということでCA暗黒期の記録を残します。
現在はHTML5プレーヤーの登場によって環境の大幅な改善が行われたので、ありがたいことにchrome互換というかブラウザ互換の必要性は少なくなってきましたが、何の記録も残さず風化させるのはもったいない!ということで記事を書きました。
記事の中で出てくるもろもろの知識は、今後一切120%役に立つ機会は無いと思いますが、歴史の1ページを眺めるように読んでいただけたらと思います。
2012年8月 chromeの脈動
事の発端は当時のニコニコの新プレーヤーであるZerowatchが公開されてしばらく後に起こりました。
当時のCA界隈は「Zerowatchとかいう視聴もコメントも満足にできないような糞プレーヤーとどうやって付き合っていくか」というニコニコが始まって以来最悪の課題を突き付けられており、お通夜ムードが漂っていたのですがchromeの仕様変更は正に泣きっ面に蜂でした。
過去に何度もブロマガでふれてますが、改めておさらいするとこの時の仕様変更によって
・一部の特殊記号がchromeにおいて表示が異なる
・主要空白文字であったU+2001の幅が異なる
という3つの大きな仕様変更がありました。
これはchromeが独自のフラッシュプレーヤーであるchrome pep flash playerを用い始めたのが理由なわけですが、この時代のニコニコプレーヤーはコメントの表示をフラッシュプレーヤーに大きく依存していたため大打撃を受けました(余計なことしやがって・・・)。
その結果何が起こったかというと、
①まず、明朝化を前提としていた絵系は完全に終わりました。
②歌詞系はゴシックであれば大丈夫でしたが、基礎技術として定着していた明朝化二重リサイズ固定(DR)が利用できなくなったため大きな制限を受けることになりました。
③装飾系も主要な装飾記号の表示が軒並み異なるため制限を受けることになりました。
ニコニコ始まって以来の緊急事態でした。
糞プレーヤーを押し付けてくる運営と突如として現れたchromeとの二重攻撃によって、こうして長い長い暗黒の時代が幕を開けることになります。
ただ、CA界隈も簡単に土俵を割ったわけではなく、ここから打倒chromeに向けてじりじりとした戦いが繰り広げられることになります。
対chrome互換の急先鋒 ”Lucida化”
絶望的とも思われたchrome互換ですが、地道な対策が着々と考案されていきます。
特にchrome互換に関して多大な貢献をしたのが、bardielさん、ごっつっつさん、orzさんの3人で以後も度々登場します。
初期の頃は中でもbardielさんが非常に熱心に調査をされていました。
chromeでどうして表示が崩れるのかということについては主因(pepflashplayer)がすぐにつきとめられています。
また、後にchrome互換の切り札として出てくるArial2001に関係してくるような
もこの時期にすでになされてます。
加えて、利用する人があまりおらずマイナーな技術でしたが、ブラウザ間で幅の伸び縮みを制御する上での発想の出発点となる
もこの時期にすでに発案されています。
後々のchrome互換はこのようなbardielさんの基本的な調査の上に成り立っており、これらの仕事は非常に重要なものでした。
もしこのような報告がなければ、CAの歴史はまた違う道を辿っていたかもしれません。
そして2013年3月。そういった種々の調査の中でもとりわけ大きな発見がなされます。
それが『Lucida化』です。
この発見が、chromeで特殊記号の表示が異なるという問題を解決するための糸口となりました。
その後、bardielさんやあめんぼさん、ごっつっつさんといった方々によってLucida化に利用できる文字や条件、またその互換性などの各種検証が行われました。
そしてついにごっつっつさんが汎用性、互換性を兼ね備えた決定版を導き出します。
これによりU+2001がchromeで幅が異なるという大きな課題のひとつが解決されることになります。
このことはchromeに対して反撃の狼煙を上げる非常に大きな大きなできごとでした。
ごっつっつさんが一般化したLucida化の技術は後に、「Lucida化+装飾記号のすぐ後ろに2001を仕込む」ことでchromeでの表記が他ブラウザと同等になることが分かったので、もう一つの課題であったchromeで装飾記号の表示が異なるという問題も解決されました。
完全に余談ですが、この装飾記号の互換法はどうしても画面の右端に装飾記号を置けないという些細な欠点がありました。これを解決するために制御文字の一つである反転文字U+202Eを考案したりました。ただこの場合だとごっつっつさんのブロマガ内で紹介されているU+202Aは少し不都合があったので、代替としてU+202Cを用いるという細かい変更が必要でした。しかし結局、後に出てくるchromeの仕様変更によって結局お披露目もできず、歴史の闇に葬られることになります・・・・・・
残る課題はフォント変化をどうするかということで、これがある意味で一番頭の痛い問題でしたが、なんとこれについてもごっつっつさんによってある手法が提案されます。
元動画(マイメモ)
キャプ
ダブルフォントを使ったりと非常にややこしいながらも、明朝歌詞でも互換ができることを示した非常に画期的な試みでした。
こうして地道に積み上げられてきた調査が実を結び、chrome互換もある程度いけるやん!という流れになってきたのですが、残念ながらそう簡単にchromeを破ることはできませんでした。
chrome、突然のちゃぶ台返し
ごっつっつさんの歌詞が投下されて一か月後の2014年2月20日。
chromeのアップデートによって突如としてLucida化が使えなくなりました。
これにより、なんと今まで積み上げてきた互換技術の大半が水泡に帰してしまったのです。
そしてさらに、同タイミングでbetaプレーヤーという今のHTML5プレーヤーのプロトタイプとなるようなプレーヤーが公開され、この頃は今後の先行きがか非常に不明慮で暗雲が立ち込めていました。
過去の環境互換で一番辛いのは、いつ大幅な仕様変更が来るか全く予想できないことです。
調べ直すのも手間ですが、なにより今までの作品が制作途中のものも含め全て手直ししなければならず、大きなモチベーションの低下につながります。
現在のHTML5プレーヤー環境は最低限の安定性は確保されているのは本当にありがたいことです。
そんなわけで盛り上がりの機運に冷や水を浴びせられたCA界隈ですが、数か月後の2014年5月にごっつっつさんが再び画期的なアプローチを試みます。
Arial200Xの存在自体は先に紹介したbardielさんの記事や、以下のorzさんのブロマガで紹介されてるようにchromeと他のブラウザで等幅であることはある程度知られていました。
しかしXPで文字化けしてしまうことと、他の空白(U+3000, U+00A0, Lucida化+U+2001)で代用できるため用いられることはほとんどありませんでした。
ごっつっつさんのアイデアが素晴らしいのは、明朝・丸文字下でブラウザ互換可能な空白としてArial2001を用いようとした点です。
これにより、今まで互換が難しいとされていた明朝歌詞が再び表舞台に出てこられるようになりました。
またArial2001はフォントがArialで固定されるので、フラッシュプレーヤー時代にあった「連れまわし」のような現象が回避できる安定性を持ち合わせていました。
このため互換目的だけでなくフォント変化を利用するときのお供として長い間愛用されることになります。
ただXPで化けてしまうという懸念事項があったので、この頃の主流はやはりU+3000でArial2001は特殊な条件で使用されることが多かったです。
突然のちゃぶ台返しを仕掛けてきたchromeでしたが、その後は特に大きな動きはなくCA界隈にひと時の平和な日常が訪れました。
そんな感じで2年が経過したある日、再びchromeが大きな動きを見せます。
暴虐のchrome
2016年は間違いなくCAの歴史の底です。
Zeroが公開された2012年も筆舌に尽くし難いほど酷かったですが、2016年はホントに大変でした・・・。
年末になって現在のHTML5プレーヤーが公開されたためなんとかなりましたが、もしプレーヤーの公開が半年遅れていた場合、完全に手遅れになっていた可能性すらあります。
その主因がchromeの度重なる仕様変更です。
2年間大きな動きがなかったchromeでしたが、2016年に入ると突如として活発に動き始めます。
まずは手始めに、主要空白U+3000の幅が変更されました。
当然のことですが、U+3000を使っていた過去のCAは全て崩れてしまいました。
これにより推奨空白がU+00A0とArial200Xのみの時代に突入します。
Arial200Xが発見されていたことは本当に幸いでした。
しかし、chromeの攻勢はこれだけでは終わりません。
2か月後、今度はフォントそのものが変更されます。
ひらがな、カタカナ、漢字・・・あらゆる文字の幅がブラウザ間で等幅でなくなってしまいました。
ゴシック(今のdefont)歌詞よりも明朝化歌詞の方が互換がしやすいという逆転現象が起きる異常事態でした。
これによって互換はさらに難しいというか手間のかかる作業になったのですが、一応ブラウザ間での文字幅の伸び縮みを利用すれば互換をすることは可能でした。
当時の頑張った頃の資料
しかし、chromeはさらに追い打ちをかけます。
3か月後、今後はコメントの高さそのものが変更されました。
簡単に説明すると、Mac仕様になりました。
CAの歩みが始まって以来9年(当時)、当初から悩まされてきたMAC互換の難問をchromeによって叩きつけられたわけです。
多くの人間が挑戦して乗り越えられなかったwin-mac互換の問題を解決するのは非常に難しく、これによって長年の戦いはchrome側の圧倒的勝利によって幕が下ろされました。
chromeにはかなわなかったよ・・・・
しかも3か月後にHTML5プレーヤーが公開されてからひょこっと元仕様に戻す辺りが最高に憎たらしい
CA側の名誉のために補足しておくと、完全敗北したわけではなく例えば元々Mac互換を意図して開発された明朝化二重リサイズ固定(空白はArial2001でなくU+3000)は互換可能でした。
この技術を発見した人ホントすごい・・・ただこれだけだとやっぱり厳しかった・・・
とこんな感じですったもんだがあった後、HTML5プレーヤーが公開され、現在に至ります。
互換問題を大きく表面化させたという点では、今のHTML5プレーヤーがあるのはもしかしたらchromeのおかげなのかもしれません。
今回の記事では大まかな流れしか紹介してませんが、chrome互換のために多くの方の努力があったのは言わずもがなです。
逆風にも負けず、CAを投下した多くの同志に敬意を表して。
♪ へっどらーいとてーるらーいと ♪