[コメントアート] 古いandroidのweb版表示が酷かった話
/コメントアートの描画が酷い画像が流れてきて、検証が始まった結果、
「古いandroidのweb版では専用のHTMLによる描画が存在して、最近の描画とは全然違うのでコメントアートが崩壊する」ということが判明した、ツイッターでのyammaboo主観な1日の記録です。
発端
普通の描画の画像
ごちうさ3期決定によるニコ動の様子です。#ごちうさ#ごちうさ3期 pic.twitter.com/m2ynLI7QUt
— ぱあぷる???? (@purple_nji) 2018年9月16日
(たぶんPCweb版。綺麗に表示されてる。)
問題の描画の画像
職人すげぇなwww#ごちうさ #ごちうさ3期 #gochiusa pic.twitter.com/DAnvLEHACP
— ゴッドサンシャイン (千夜、ことり好き) (@godgod205) 2018年9月16日
これはひどい。
このコメントアートはシンプルな「積み」という方式で作られていて、そうそう崩れることはないです。
なのに崩れるというのはヤバいので、「どういう視聴環境で崩れるのか」と騒ぎになり始めました。
当人から聞き出したところandroidと判明したようですが、androidにも色々な描画環境が知られていました。
とりあえず以下の3つがあります。
- 公式アプリ
- 非公式アプリ
- web版
公式アプリはニコニコ動画の公式で出てるアプリです。
軽微なバグはあるものの、描画はそこそこ優秀とウワサされていました。
非公式アプリはニコニコ動画の運営と関係なく作られたandroidアプリのことです。
コメントの描画は複数ある非公式アプリのそれぞれ次第なので、
最近は「スマホでコメントアートが崩壊したって話は大体非公式アプリの描画再現度低いやつ」疑惑があります。
が、今回は特に崩壊するものがあるということは判明しませんでした。(可能性を否定する材料もないですが。)
web版は、androidのブラウザでニコニコのwebサイトで見る場合です。
描画の中身はPCweb版と大体同じコードになってるので、ここまでの崩壊の場合は違うと思ってました。
が、今回web版も大きく異なる2つがあり、その片方である可能性が出ました。
検証画像たち
公式アプリはそこそこマシ
泥端のニコニコアプリ。綺麗に見れてた。 pic.twitter.com/KX1bts5ujq
— ・M・(まー) (@x_0227) 2018年9月16日
でも古いandroidは厳しい。
公式アプリは比較的、ほんとに比較的マシだった。泥4.1.2、公式アプリver4.06.1 pic.twitter.com/umjfiEofQe
— Mytea (@suzukasu123) 2018年9月16日
野良アプリは誰も調べてなさそう
疑惑というだけで終わりました。
最近のandroidのweb版で少々崩れていた
泥8.0.0のChromeブラウザ(最新)
— 鍵 (@key083) 2018年9月16日
泥互換はあまり気にしなくていいかもです pic.twitter.com/LIoIeYypyZ
問題アリですが問題の画像ほど大きい崩壊はしてない、という感じです。
一部の文字の幅(おそらくU+2588)が狭くなってしまってるようです。
これについては「U+2588を使う時はminchoではなくgothicコマンドを指定すると良い」らしいです。
うちのAndroid環境(Android7.0)でもminchoの2588が縮むので特に理由がない限りgothicの方がいいかもです
— ヒロス (@hirosususu) 2018年9月16日
webはコードはほぼ同じだけど フォントの事情で結局手放しに互換する感じではないんやな
— yammaboo (@yammaboo) 2018年9月16日
android5系のweb版が酷かった
本題。
l・ω・)お待たせいたしました。↓ Android 5.1.1 Chrome(67.0.3396.87) スマートフォン版視聴ページでの画像です。この環境だと現状こんな感じです。 pic.twitter.com/9eg27uV4KD
— monmon (@_m0nm0n_) 2018年9月16日
予想外にひどい。
通常、スマホweb版の描画はプログラム的にPCweb版と大体同じはずなのでこうはならないはずです。
「古いandroid用のHTMLによる描画」の発見
泥5.1以前はFlash時のコメント描画なんじゃないかなぁ
— ・M・(まー) (@x_0227) 2018年9月16日
古いandroidでは描画がそもそも違うという疑惑が出ました。
(もしFlash版に切り替わるのであれば、Flash版と現在標準化してるPCのHTML5版とは乖離していているので、崩れていてもおかしくないです。)
試しにFirefoxをandroid5のスマホに偽装して視聴し、開発者ツールで中身を見てみました。
すると、通常のandroidのweb版(canvasで描画)でも、Flashでもない、
未知の「span要素にスタイルを指定して描画」という方式であったということが判明しました。
android5系に偽装して見てみたけどこれhtmlで描画してるっぽいっすね・・・
— yammaboo (@yammaboo) 2018年9月16日
spanにスタイル設定してるやつがいっぱいあるよ
— yammaboo (@yammaboo) 2018年9月16日
(このSSは後で撮ったものです。通常はcanvas要素という画像表示に描画するのでこんなspan要素は存在しません。)大量のspanで描画されてたSS pic.twitter.com/eGXfxvxv9u
— yammaboo (@yammaboo) 2018年9月16日
なお当該箇所 pic.twitter.com/SC3uvwOnKz
— yammaboo (@yammaboo) 2018年9月16日
この場合はかなり描画が違うようなので、この環境でコメントアートを見るとか、この環境も想定に入れたコメントアートを作るのは厳しいと思われます。
結論
- android5前後程度の「古いandroid用のHTMLによる描画」が発見された
- HTML5版の描画とは大きく違うよう
- コメントを投稿する側での互換は不能レベル?
- 最近のandroidではminchoコマンド時にU+2588が縮む(?)
- 「U+2588を使う時はminchoではなくgothicコマンドを指定すると良い」らしい
問題の画像の環境は結局よくわからなかったものの、色々なことが判明したし、第3者からリプするほどでもないかなという感じです。