なぜ狙った隣の領域が塗られてしまうのか
指先は一度に数十の領域を覆っています。そのあいまいさをどう扱うかは設計上の判断で、たいていのアプリはそこで下手を打っています。
花びらを狙って押したのに、塗られたのは隣でした。あるいは何も起きず、なぜなのかも分かりません。ぬりえアプリでいちばん多い苛立ちがこれで、原因はあなたの狙いではありません。
指先の算数
指先がガラスに触れている面は、直径にしておよそ8〜10ミリです。スマートフォンの画面でいえば、物理的な表示画素で40〜50ピクセルほど。そして緻密な絵が画面いっぱいに収められているとき、その画面画素1つが元絵の数画素ぶんを覆っていることがあります。つまり一度のタップは、幅にして数十画素ぶんの絵の上に乗っているわけです。
入り組んだ曼荼羅の小さな領域は、画像上で数画素の幅しかありません。ですから指が覆っているのは1つの領域ではありません。数十の領域を覆っていて、アプリはそのあいまいな塊から、どれを狙ったのかを決めなければなりません。
さらに悪いことに、触れた瞬間には狙いが見えていません。指がその上に乗っているからです。記憶の中の位置に向けて狙い、そして自分の手でそこを隠しているのです。
素朴な実装と、それが失敗する理由
いちばん素直なやり方は、触れた点の中心を取り、それを絵の中の座標へ換算し、その1画素の領域番号を読んで、そこを塗ることです。どのアプリもここから始まります。一行で書けますし、明らかに正しく見えるからです。
これは三つの具体的なかたちで失敗します。
- 中心が輪郭の画素に乗る。輪郭はどの領域にも属さないので、タップは何もせず、しかもなぜ何も起きなかったのかが伝わりません。
- 中心が隣の領域の内側1画素のところに乗る。すると隣が塗られます。よくある押し間違いはこれです。
- 中心が、すでに塗り終えた領域の中に乗る。タップは目に見える変化を何も残さずに消費され、無視されたように感じられます。
三つとも同じ誤りから来ています。太くて、正確でなく、自分で自分を隠してしまう入力を、マウスカーソルであるかのように扱っていることです。
対策その一:点ではなく近傍を読む
1画素だけを標本化するのではなく、触れた点のまわりの小さな円を取り、その中に何があるかを数えます。円の中に現れる領域番号をすべて集めてヒストグラムを作り、いちばん多く現れた番号を選びます。
条件をもう一つ足すと、仕事のほとんどが片づきます。まだ塗られていない番号のうち、いちばん多いものを選ぶのです。すでに塗った領域は狙いとしてありえません——そこを狙ってはいなかったのですから——ので、投票から外すだけであいまいさの大半が解けます。円の中に未塗りの領域が一つもなければ、中心のちょうど真下にあるものへ戻ります。
半径は拡大率に合わせて変わらなければなりません。Numbrush は全体表示のときで画像上のおよそ14ピクセルを使い、拡大するほど小さくします。大事なのはこの性質です。縮小しているときの補正は大らかです。どうやっても正確になれないからです。拡大すると補正は締まります。こちらが正確になれるようになった以上、大らかすぎる半径は、あなたの意図を上書きし始めてしまうからです。
対策その二:指の下を本人に見せる
補正はあくまで推測です。いちばん小さな領域について本当の解決になるのは、狙いを隠すのをやめることです。長押しすると、キャンバスから拡大鏡が浮き上がり、親指の下にある範囲を2.4倍で見せます。中心には十字があり、実際に塗られるのがどこかを示しています。欲しい領域に十字が乗るまで滑らせ、そこで指を離します。
これは「狙って祈る」操作を「見て確かめる」操作に変えます。拡大鏡のあるアプリで、小さな一片ごとにピンチで拡大して戻る往復が要らなくなるのもこのためです。数百の領域がある絵では、その往復の有無が、最後まで塗れるか途中でやめるかの分かれ目になります。
対策その三:押し間違いを無料にする
上の二つは間違いを減らします。三つ目は間違いの結果をなくします。そしてこれが二つよりも効きます。
多くのぬりえアプリは、選んでいる色とは別の色に属する領域を押したとき、それでも違う色で塗ってしまうか、ヒントを一つ減らすか、連続記録を切ります。摩擦があるから賭けが生まれる、というゲーム設計の本能を、賭けが一つもないことを目的にしている行為に当てはめてしまっているわけです。
Numbrush はそのタップを完全に無視します。何も塗られず、何も減らず、警告も出ません。このアプリに取り消しボタンも消しゴムもないのはこのためです。取り消すものが生まれることが一度もありません。誤った操作がそもそも実行されていないからです。正確さが問題でなくなる——それがこの行為全体の狙いです。
自分の側でできること
- 拡大する。手元でできるいちばん直接の対策です。指の下で領域が大きくなり、同時にアプリのタップ補正も精密になります。
- 領域が小さいときはタップではなく長押しにする。押して祈るのはやめる。
- 数字を読むのではなく、色の強調で領域を探す。色を選ぶと、その色の未塗り領域が絵全体で一度に印されます。数字を読み取るよりずっと狙いやすいはずです。
- ある色の最後の数片は、自分でキャンバスを見回すのではなく「次へ」を使う。
- いちばん密な絵では端末を横向きにするか、タブレットに移る。画面が広いほど、指の幅あたりに入る画像の画素が増えます。そこが根っこの制約です。
押しても何も起きないとき
反応のないタップは、たいてい三つのうちのどれかです。指の下の領域が、選んでいる色とは別の色に属していて、アプリが正しく塗るのを拒んでいる。その領域はもう塗り終えている。あるいは輪郭に乗っていて、輪郭はどの領域にも属していない。よくあるのは一つ目で、対処は強調表示が何を見せているかを見ることです。色を選んでいれば、いま正当に塗れる領域はすべて印がついています。
なおこの三つは、どれも不具合ではありません。こういうときにアプリが何もしないのは、反応を返すために何かを塗ってしまうよりずっと良い振る舞いです。後者はあとから直す作業を生み、その作業はアプリ自身が作り出したものだからです。
よくある質問
なぜ狙ったところの隣が塗られるのですか
アプリがタップを一つの正確な画素として読み、その画素が境界をわずかに越えていたからです。指先が覆う絵の範囲は一つの領域よりずっと広いので、触れた点のまわりの近傍を見て補正しないアプリでは、これが頻繁に起きます。
押しても何も起きないのはなぜですか
たいていはその領域が、選んでいる色とは別の色に属していて、行儀のよいアプリが違う色で塗ることを拒んでいるからです。すでに塗り終えた領域だったり、どの領域にも属さない輪郭の画素だったりすることもあります。
拡大すると本当に効きますか
効きます。しかも二重に効きます。指の下で領域そのものが大きくなりますし、アプリのタップ補正の半径も締まるので、自分で正確になれた時点から補正が意図を上書きしなくなります。
塗り間違えたときの取り消しはありますか
Numbrush では取り消すものがありません。選んでいる色に属さない領域を押しても、何も起きないからです。消しゴムがないのも同じ理由です。違う色で塗ってしまうアプリのほうは、大きな絵に取りかかる前に取り消しがあるか確かめておくとよいでしょう。
実際のキャンバスで試す
Numbrush は大人のための数字ぬりえです。曼荼羅、バラ窓、幾何学模様。1枚につき12色、狭いところには拡大鏡、押し間違えても失うものはありません。無料、オフライン、広告なし、アカウントなし。