CloverPaint雑記

CloverPaintの解説・開発状況・内部仕様・利用法などについてつらつらと

手ぶれ補正実装

Clover Paint v1.22を公開しました。

このバージョンでは新しく「手ぶれ補正」機能が実装されています。

この手ぶれ補正機能は、非常に強力なカスタマイズ機能を備えていて、ちょっとした”ひずみ”の修正はもちろん、設定によっては品質の悪いタッチパネルでの線ヨレまで完全に除去できます。

 

手ぶれ補正を使うには適当なブラシのメニューを開きます。

f:id:CloverPaint:20140203210916p:plain

 

「手ぶれ補正」ボタン

設定画面を開きます。(現状、設定情報はグローバルに保存されます。)

 

「+手ぶれ補正」ボタン

選択中のブラシの、手ぶれ補正ON/OFFを切り替えるCloverショートカットアイコンを作成します。

f:id:CloverPaint:20140203211702p:plain

手ぶれ補正のON/OFFはブラシ設定内にスイッチがありますが、これをキャンバス上に作って操作した方が便利だと思われます。

 

 

手ぶれ補正の設定画面

「手ぶれ補正」ボタンを選択すると、このような設定画面が開きます。

f:id:CloverPaint:20140203214339p:plain

 

 

通常は一番上にある「手ぶれ補正タイプの簡易選択」から選べば十分だと思われます。

左が一番軽く弱い補正、右になるほど強い補正になると考えて間違いありません。

 

オススメの設定は、

 

・ラフに近い時 →「頂点座標平坦化(ぼかし)」
デジタイザーを使ったペン入れ →「慣性運動タイプ・手ぶれ補正(弱)」
・タッチパネル(指)でのペン入れ → 「慣性運動タイプ・手ぶれ補正(強)」

 

・・・こんな感じです。

 

ちょっとここが違う・・・という場合は「カスタム設定」で細かく指定する事もできます。

 

カスタム設定のパラメータ詳細

 

カスタム設定ではすべてのパラメータを細かく設定することができます。

まず、Clover Paintの手ぶれ補正は、内部処理的に3つの独立したステージから成り立っています。

・頂点座標前処理(ガウスぼかし)

ストローク変化(遅延処理または慣性運動による) 

・Knot生成(Knot[ストロークの制御点]を、手ぶれ補正処理でカスタム生成)

 

独立しているので、これらの処理はそれぞれ個別に有効/無効にできます。 

 

 

・頂点座標前処理

これは最も単純な処理です。

ちょっとしたストロークの歪みを補正する効果が期待できます。

前後の頂点座標を「ガウスぼかし」という少し重みをつけて平均を取る処理を通すことで、滑らかにしています。0でガウスぼかしなし、1で前後1頂点の平均、以下同様です。

 

ストローク変化

これは実際のペン先座標から、ストロークをわざと遅延させて滑らかにすることを狙った処理です。効果を強くすると遅延も大きくなりますが、タッチパネルでの線ヨレも完全に除去できるなど、効果も絶大です。以下のパラメータを自分で調整し、自分の感覚に合った設定を探すのも面白いでしょう。

遅延処理タイプは常に今のペン先に向かってストロークが進行しますが、慣性運動タイプではストローク自体に加速度運動がついています。通常は慣性運動の方が滑らかになると思われますが、操作しやすい方でどうぞ。

 

筆圧の遅延補間の変化硬さ

ストローク変化が有効な時、筆圧の変化もストロークに合わせて遅延します。遅延から追いつくときに、どのようなカーブを描いて筆圧が変化するかをここで設定できます。

 

追従割合(遅延追従用)

一回のポイント処理で、どの程度の割合、遅延したストロークからペン先まで移動するかをここで指定します。ここで指定した値が大きくなるほど遅延は少なくなります。

 

最低速度 (遅延追従用)

追従割合により計算した移動距離が、ここで指定した最低速度より小さい場合、この最低速度に合わせます。

 

加速度の加算量(慣性運動用)

加速度の強さを指定します。ここで指定した値と、現在のストロークからペン先までの距離を乗算したものが、加速度の強度になります。

 

空気抵抗(慣性運動用)

慣性運動にかかる抵抗値のうち、現在の速度に比例して大きくなる抵抗値を指定します。

 

摩擦抵抗(慣性運動用)

慣性運動にかかる抵抗値のうち、速度に関係ない抵抗値を指定します。

 

はらい制御用パラメータ

ストローク変化では遅延している分のストロークを、ペンが離れた時点で自動的に生成する機能があります。

これを”はらい”と呼んでいます。

はらい部分ではストローク末端に向けて筆圧が0になるようなカーブを描き、さらにそれまでのストロークの回転に合わせてはらい部分も自動回転します。

 
はらいの長さ

はらいの長さを指定します。1が標準で0だと完全になくなります。

 

はらいの曲率減衰

Knot自動生成毎に、この割合だけ回転を減衰させます。

 

はらいの方向補正

はらいの向いている方向を、実際のペンストロークの最後に払った方向に向かうよう補正します。Knot自動生成毎にここで指定した割合だけ補正されます。

 

 

・Knot生成

ストロークの制御点を指定した一定間隔で生成することで、滑らかにします。

通常タッチパネルでは16ms前後間隔で頂点座標が送られてきます。

デジタイザーでは通常8ms前後、AT703では5ms)

Clover Paintはこの頂点座標をそのままストロークの制御点として扱っていましたが、ここでKnot生成することができるようになりました。

指定した一定時間や一定距離間隔でKnotを生成することで制御点を減らし、見かけ滑らかな線にすることができます。(ただし、特に一定距離での生成を指定した場合、細かなカーブ表現はできなくなります)

 

以上です。

相変わらず非常に調整項目の多いツールになりました。

こだわる人は好みの設定になるよう調整してみてください。