絵を JPEG で圧縮するとグラデーションに縞模様が出現する問題とその対処 お絵描き、2016/05/18 00:00

■ 以下は 2016/5/17 のツイッターの投稿に基いています。

絵を JPEG で圧縮したら、目立たないように敷いたグラデーションが汚い階段状になって目立ってしまう(バンディング)。ただ階段になるならまだしも、ノコギリ歯のように明暗が交互に現れて見える。離散的な RGB と離散的な YCbCr(輝度・色差)との変換で誤差が出るとかかな…。

色々と実験した結果、個々のグラデーション自体にうまい具合にスクリーントーンを混ぜてやると大分綺麗になる。しかしこれは一々手間が掛かる。全体にスクリーントーンを被せてから、各部分の影響量を調整するような方法は取れないかな。

元の状態(RGB の各チャンネル八ビット)で見ても、グラデーションを滑らかに表現し切れてない部分はある。これが JPEG‐化して悪化するのは、要するに実効的な階調数が 256 よりも乏しくなっているわけだ。となるとまあスクリーントーン(ディザリング)に頼るのは自然な対処。

やっと出来た。結局、縞の発生する要素を個別に網点化して対処した。

ノラたまトリオが水飲み台にいる絵をさっき pixiv に載せました。ツイッターに載せたのと比べて、ユラノの手の赤い部分を広くしたり、とくまるの後頭部の照らされ方を整えたり、流水の光り方や草の茂り方ちょっと変えたりをしました。http://pixiv.net/i/56929451

JPEG で出力するとグラデーションが汚くなる件、白黒のグラデに白黒の網点を「オーバーレイ」で合成すれば何とかごまかせました。一枚目は本来の色。二枚目は違いが分かりやすいように明るく補正した。

目立っちゃいけない物を目立たないようにする努力なので、これ自体で人が喜んだりはしない。しかしここで努力しないと、ユラノでなく謎の縞に視線を取られてしまう。

レイヤー合成モード「オーバーレイ」は、下レイヤーが黒ければ何を重ねても黒いまま、下レイヤーが白ければ何を重ねても白いままで、下レイヤーの中輝度部分にだけ上レイヤーの色が影響するので、グラデの中間色にだけ網点を乗せて段差を散らしたいという今回の目的に適うわけです。

ツイッターに死蔵される情報と、ブログ開設の目的 その他、2016/05/15 12:12

ここ数年、ウエブ上での発言の大半をツイッターに蓄積してきた。「おはよう」みたいな軽い投稿もあるけど、そこそこ纏まった話も結構書いている。連続投稿に一時間ぐらい費やす事は珍しくないし、図示した方が分かりやすい話題では添付画像を一枚作るのに一時間以上掛ける場合もある。現時点のツイログの統計に拠れば、ツイート一個で平均 68.3 字、一日に平均 1938 字をツイッターに書き込んでる。

しかしツイッターの投稿は、ほとんど投稿直後の短期間にしか閲覧されない。どれだけ面白くて有益な情報でも、投稿から 24 時間経ったら新たな読者がそれを見付け出すのは稀だ。一旦「過去ログ」となった情報が新たに役立つ可能性はとても低い。

まづ投稿直後の閲覧に関しては、以前投票機能を使って調べた所(2015/11/14)、私のツイートを「見てない時間帯の投稿もほぼ全部読む」(つまり直近 24 時間程度の未読分を遡っている)と答えたフォロワーは十人しかいなかった。ちゃんと読んで下さっている人がそれだけいるのはありがたいけど、当時の名目フォロワー数が 352 人だったのを考えると驚くほど割合が低い。大半のツイッター利用者は、タイムラインを見てる間に偶然流れて来たツイートだけを受動的に読んでいると理解される。リツイートによって広まった場合はフォロワー以外の目に触れる事になるけど、読み方が大して違う筈もなく、リツイートが偶然流れて来たのを受動的に読んでいるわけだ。

でも根本的な問題はそこではない。見てる間だけ受動的に読む人も、未読分を残さず読む人も、フォローした時点より前のログから情報を得る事がほぼないという点では同じだ。今フォローしてない人が過去ログに接する可能性は一層低い。過去ログにはたくさんの時間が費やされているのに、生かされないのが勿体ない。

今、過去ログの内容が人の目に触れるとしたら、全部読破するのはあり得ないので、読者の興味に合う情報を抽出して読むのが想定される。私がツイッターに登録したのは 2009 年七月で、今までに七万個以上のツイートを投稿している。これを読破するのは無理な話だし、私も他人のログを読破しようとは思わない。実際、古いツイートがイイネされたり、リツイートされたりする事がたまーにあるのは、恐らく検索機能を経由してるんだろう。これは「情報の抽出」に当たる。但しツイッターの検索機能はあまり信頼できない。形態素解析を過信した作りなので、平仮名の未知語が大抵駄目だ(たまごっちの名前を入れても使い物にならない)。しかも一部のツイートが不規則に抜けていたりする。

検索機能の問題はツイログでは発生しないのでいいけど、そもそもツイートという様式で記述された情報は、ログの閲覧者にとって探し出しにくいんだ。書いた本人でも「数年前に書いた覚えがある」と思って探し出すのに骨が折れたりする。個々のツイートには分かりやすい「題名」がなく、コマ切れの本文が剥き出しになっているだけ。検索で見付かるかどうかは個々の言い回しに依存する。私はなるべく検索しやすい語句を各ツイートに常に織り込むように注意してるけど、字数制限もあるから或る程度は省略しないといけない。それに連続投稿の一部だけ検出されたら、その前後を繋ぎ直して読むのが面倒だし。

一方でツイッターには、考えた順に小さく纏めて送り出していく書きやすさがある。連続投稿は初めから長い話を書こうとした場合だけでなく、書きながら考えたら結果的に話が膨らんでいったという場合も多い。ツイッターを廃止して長い記事だけを書こうとは今のところ思わない。

そこで、ツイッターに書いた話を簡単に記事として纏めていけばいいのではないかと考えて作ったのがこのブログ。これを利用すれば、ツイートにはない以下のような特性から、過去の情報が得やすくなると期待される。

  • 一続きの話がコマ切れの連続投稿ではなく一本の記事になる
  • 分かりやすい題名が付いて、読む前から内容が見通しやすい
  • 分野別に分類(カテゴリー分け)して一覧できる
  • (タグで横断的に記事を探せる…のは利用するかどうかまだ分からない)

情報の完備した分かりやすい記事を書こうとすると時間が掛かるので、このブログではあまり欲張らないで手早く書き上げるようにしたい。この記事は割ときちんと文章を書いてしまったけど、毎回そこまでの内容は求めない。「この状態ではまだ公開できない」と思ってお蔵入りにするのも勿体ないし、一個に手間を掛けたらほかの物を作れなくなる。あまりこだわらないようにして、書きやすさを最優先したい。

雑な状態で公開するので、記事の投稿後一週間ぐらいは加筆修正を一々記録しなくてもよい事にする。

タグ:ツイッター

直射光は物体の半分しか照らさない お絵描き、2016/05/14 00:00

■ 以下は 2015/11/24 頃のツイッターの投稿に基いています。

極単純に、光沢のない球が無限遠点からの光だけを浴びると、光源側の 180 度は表面の向き(法線)に応じた明るさのグラデーションを持ち、光源から見て陰になる 180 度は真っ黒のベタ塗りになる。360 度の全体にグラデーションを掛ければいいというわけではない。

勿論、ほとんどの場面設定では周りの地形からの乱反射が回り込んで陰側にボンヤリ当たるので「黒ベタ」ではあり得ない(宇宙空間に浮いてる物体の絵でもなければ)。作為的な絵作りとしては、陰側に補助光源を置くズルが広く行われている。主要光源からの直射に限ってどう捉えるかという話。

例えば真上から照らされた空中の球を真横から見た場合、上から下まで均一なグラデーションを乗せるより、上半分をグラデーションにして下はベタにした方がそれらしいぢゃないですか。周りからの反射にも依るけど。

上から照らされる白い球


■ 以下は 2016/5/13 頃のツイッターの投稿に基いています。

三次元コンピューターグラフィックスの技術に触れたら、絵を描く時も光の扱い方が格段に分析的になったし、ピアニっちのようなキャラクターの顔の立体形状についても理解が深まったので、絵描きは Blender を弄ってみるといいです。作品一個も完成させてないけど役に立った。

と言っても、昔「六角大王 Super 2」で遊んでた頃はそもそも目的の形状をあまり満足に作れなかったので、「役立てられる段階」に既に立ってないと難しいかも知れない。(当時と今ではレンダリングの速さと品質については別世界だけど。ブラウン管の丸っこい iMac の時代だ。)

大雑把に言えば、私の「光の扱い方」について一番の画期的な変化は、光源から直接当たる強い光と、周りの物体で乱反射するなどして ふんわり照らす光を分離するようになった辺り。前者は物体の表面のうち「光源側の半分」だけに寄与する。暗い方の半分には後者が効く。

光源が点一個なら、照らされた物体の表面は半分だけが明るいんだ。地球の半分は昼で半分は夜だ。つまり半分はバッサリ暗く塗っちゃっていいんだ。中々そこに気付けなかった。アプリケーションを弄る事も勉強になったけど、CG‐技術に関する記事を度々読んだのも、勿論現実の見え方の観察も役立った。

何となく、直射光が「回折」して裏側も照らすような描き方してたんだ、昔は。少なくとも、目立って絵に反映されるような形では、そんな現象はない。光源から見て裏側を照らすのは、近くの壁や地面や他の物体からの乱反射とか、屋外なら太陽以外の方向の空の明るさ(大気中の散乱)。

そういう理解を踏まえながら、描きやすく見映えが良いように臨機応変にズルをしたり、目的の画風になるように足し引きしたりするのが最近の描き方。

タグ:陰影