プロ向けツールの多くは、パラメーターに数式を入力することができます。映像ソフトをお使いの方にはAfterEffectsの「エクスプレッション」機能としてお馴染みかもしれません。しかし多くの場合、数式入力されたパラメーターは自動的に数値計算されてしまうために、その結果の値を直接操作することが出来なくなってしまいます。例えば円の半径に2 × 4を設定した場合、自動的に半径8の円を描くことはできますが、今度はハンドルの半径を直接ドラッグ操作することは出来なくなります。

Glispでは、パラメーターに数式を入力した場合も、計算結果が「ある値」になるような数式を逆算する仕組みを用意しています。プログラミング用語では双方向評価(Bi-directional evaluation)などと呼ばれる概念ですが、ここでは分かりやすく「逆算編集」と表現してみました。この仕組みによって、パラメトリックに造作をした後もなお、マウス操作などで直接編集することができます。

半径

朱色の円の半径は、常に青色の半径の2倍になるよう設定されています。朱色の円の半径の方を動かすことで、自動的に青色の円の半径はその1/2に設定されます。

double-inverse.gif

横位置

横位置のみ連動している例です。

単位

多くのグラフィックプログラミング環境では、角度指定にラジアンを用います。しかし人間にとってはあまり直感的ではありません。そこで単位変換のための関数を用意することで、度数法や「○回転半」といった好きな単位系を使うことができます。その逆関数を実装することで、単位換算したパラメーターを直接編集しつづけることができます。

deg-turn-unit.gif

リンケージ

1点を端点、もう1点を通過点とする、ある長さの線分を描くカスタムシェイプに逆算編集を実装することで、どちらの端点からもドラッグ操作で動かすことができます。

linkage.gif

ロック