Loading…
Transcript

非常に複雑なメカニズムなため挙動が安定しない

すぐに何か見つけると思う

明朝化2重リサイズ固定

固定とは

明朝化とは

コメント表示領域とほぼ同じ高さのコメントは弾幕状態になっても縦位置が動かなくなる。

その現象とそれを利用するテクニックのこと。

コメントが中国語であると誤認させることによってコメントを simsun というフォントで描画させることができる。

その現象とそれを利用するテクニックのこと。

明朝化はなぜ起こる?

全く同じ高さのコメントをする

弾幕状態での縦位置は

表示領域の高さとコメントの高さの差分でのランダム位置になる。

この四角

明朝化2重リサイズ固定

Flash Player は ■ (U+2588 という文字)

が入っていると(なぜか)それを中国語であると認識する。

これをCAでは『明朝化属性を持つ』あるいは

『明朝化文字』と表現する。

コメントは通常 MS P ゴシックで描画されるが、内部的には Arial が指定されている。

日本語を与えると Arial では描画できないので、 Flash がそれを描画できるフォントを探し、結果として MS P ゴシックが選ばれている。

中国語であれば中国語が描画できるフォントが選ばれる。

同様に韓国語であると誤認させると Gulim というフォントが選ばれる。(これを丸文字化という)

明朝化2重リサイズ固定

明朝化属性のある文字は、異字対の漢字や、U+20CA(『ˊ』)

注音符号等がある。

逆に「これがあると確実に日本語だと判断する文字」も存在し、半角カナ中点(『・』)などがそれにあたり

『ゴシック保護文字』と呼ばれる。

明朝化コメントの特徴

2重リサイズとは

一定以上の高さを持つコメントはフォントが半分に縮小される(改行リサイズ)

  • MS P ゴシックのコメントよりも線が細く、上品な印象がある。
  • 通常のコメントに埋もれない。
  • 日本語が全角空白も含めて等幅である。

表示領域より幅の広いコメントは幅に合わせて縮小される

(臨界幅リサイズ)

これを同時に起こすと表示領域の倍の幅に合わせたフォントサイズになる。その現象とそれを利用したテクニックのこと。

明朝化と2重リサイズの組み合わせ。

明朝化2重リサイズ固定

2重リサイズのコメントは幅に依存するため挙動が安定しない。

2重リサイズ固定とは

明朝化させれば等幅になるので安定させることができる。

明朝化には明朝化文字が必要。

2重リサイズを含む臨界幅リサイズ状態では、横幅によってフォントサイズが変化する。

それを利用して固定が起こる大きさにフォントを調整して固定を行うこと。

2重リサイズであれば画面外に文字を置くことができる。

一定の幅に全体を合わせようとするため、幅を広げるとフォントが小さくなる。

これを利用して固定が起こる大きさにする。

明朝化と2重リサイズは相互に補完しあう。

理解不能注意

CA は非常に複雑で、前提とする知識があまりに多いため

職人と同じレベルでの説明はほぼ誰にも理解できません。

聞き手のレベルに合わせて説明すべきですが、

それでは語りたいことが全く語れません。

この LT はその点自重しません。

理解できなくても気にするな。

いろいろ自重せずに CA を説明してみる

内容

明朝化2重リサイズ固定

CA の Chrome 対策の現状

明朝化2重リサイズ固定

Chrome だとこう見える

3セク 西江 みのる

まとめ

しょくにんすごい

くろーむたいへん

ある人の調査の結果

Chrome 33 以降、ゼロ幅文字に隣接させてもダイアクリティカルマークが幅を持って描画させるようになった。

アラビア語などと隣接させても Lucida が選択されなくなった。

Lucida化を起こした状態での

U+2001

が、そういう都合のいい文字であるという結論が出された。

よってこの技術は Chrome 33 以降使用できない。

Lucidaはアラビア語、ヘブライ語などと認識させると、表示できるフォントが見つからず、その結果選択される。

(この現象は Chrome でも起こる)

代替技術は見つかっていない。

現在は Chrome 互換の CA の作成は絶望的と言われている。

しかし、Lucida化を起こすための文字がどれも中途半端な幅を持っているため、そのままではテンプレートに使用できない。

Chrome 対策

Chromeでも使用できるコメントのテンプレートを作るために

この

 (202A) + (0655) + (2001 * N )

は約1年ほどの間 CA の Chrome 対策の基礎となっていた。

過去形。

漢字一文字と同じ幅を持ち、

どの環境でも同じ幅で描画される空白が必要

そんな都合のいい文字が存在するのか?

MS P ゴシックの全角空白は狭すぎる。

明朝化は Chrome で使用できない。

Google Chrome 問題

安定した文字幅で Lucida 化を起こす

Lucida化ができれば U+2001 空白が安定する。

しかし Lucida 化が安定しない。

ChromeのFlashプレイヤーは他のブラウザのものと違う(PepperAPI版)

安定的な Lucida 化手順をさがした結果、

フォント変化のロジックが異なる。

(MS932で表現できるものは日本語と判断するっぽい。)

アラビア語ダイアクリティカルマーク U+0655: ARABIC HAMZA BELOW でゼロ幅文字 U+202A: LEFT-TO-RIGHT EMBEDDING を修飾する 

明朝化2重リサイズ固定

明朝化しない。

結果、こうなる。

ことで、ゼロ幅でLucida化を行うことができることがわかった。

ここまでゼロ幅

つまり

MS P ゴシックの空白はやたら狭いので、

幅が2重リサイズ閾値を超えない

U+202A    U+0655     ( U+2001 * N )

ゼロ幅文字

明朝化2重リサイズ固定とは

直前の文字を修飾するアラビア語の文字

漢字 N 文字分の安定した空白

明朝化と2重リサイズを組み合わせたテンプレートコメント。

方眼紙に文字を置いていくようにコメントをデザインすることができる。

こういうこと

テンプレートなのでいろんな動画で使われてる

明朝化状態(等幅)であれば2重リサイズは安定する。

たとえば一行が29文字であれば10行で固定される。

それをテンプレートとしてしまえば良い。

多分このへんで5分