局所的な形状調整にベジェ曲線とBスプライン曲線のどちらを選ぶか
仮想キャラクターの輪郭上の目印や接線方向を直接制御したい場合は、複数のセグメントで構成されたベジェパスを選びましょう。制御点の影響を一定範囲に抑えながら連続した輪郭を変形したい場合は、Bスプラインを選びましょう。決め手となるのは、編集の影響がどこまで及ぶか、そしてその範囲が変更したい特徴に合っているかです。
このガイドでは、外部の曲線エディターで仮想キャラクターのシルエットを微調整する方法に焦点を当てます。周囲の輪郭を保ちながら、耳や頬、しっぽを調整する方法を扱います。以下の推奨事項では、どちらか一方の曲線形式が常に局所的だと決めつけず、曲線の特性を編集時の判断に結びつけます。
キャラクターの輪郭における「局所的な調整」とは?
曲線を選ぶ前に、変更したい内容と、それを加えても形を保つ必要がある境界の両方を明確にしましょう。「耳の付け根とあごを固定したまま、頬を丸くする」は有用な指定です。「輪郭を改善する」だけでは、決めるべきことが多すぎます。
局所性には2つの尺度があります。数学的な局所性とは、制御点に対して曲線のどの部分が反応するかを表します。実用上の局所性とは、その影響範囲がキャラクターの特徴に収まるかどうかです。数学的に局所的な編集でも、小さな頬の範囲を越えて隣接する特徴にまで影響することがあります。
1つのベジェセグメントでは、そのセグメント内で制御が全体に及びます。制御点を1つ動かすと、セグメントの内部全体で形状が変わります。Bスプラインでは局所的に変形でき、制御点の影響は一定のパラメーター区間に限られます。Michigan Technological Universityの教材では、制御点の変更でこの違いを示しています。
描画での違いを、次のような簡単な要件に置き換えましょう。動かしてよい輪郭の範囲を特定し、選んだ制御点の影響がその範囲内に収まるか確認します。
複数のセグメントで構成されたベジェパスが局所的な編集に適するのはどんな場合?
「ベジェ曲線には局所制御がない」という説明には補足が必要です。これは個々のベジェセグメントについての話です。キャラクターの輪郭を複数のセグメントで構成すれば、共有アンカーやエディターの制約を変えない限り、あるセグメントの制御点を編集しても遠く離れたセグメントは変わりません。
頬と頭部の大部分を1つの長いセグメントで描いている場合、編集の影響範囲が広すぎることがあります。分割すると、元の形状を再現する小さなベジェセグメントに置き換えられます。そうすれば、該当する部分を編集できます。分割の手順と、望ましくない部分を切り分ける方法については、ベジェ曲線の分割で説明しています。
キャラクター制作では、特徴ごとに適切な境界を設定できるなら、ベジェ曲線は有力な出発点です。耳の付け根にアンカーを置き、頬への移行付近にも別のアンカーを置いて、その間のセグメントを調整します。アンカーの配置は設計上の判断として扱いましょう。あちこちにアンカーを追加しすぎると、輪郭を把握しにくくなります。
共有アンカーには特に注意が必要です。共有アンカーを動かすと、隣接するセグメントの接点が変わります。アンカーを固定していても、ハンドルが連動していれば、選択した側を調整した際に隣のセグメントが変わることがあります。
滑らかな輪郭の制御には、どんなときBスプラインが適している?
Bスプラインでは、次数と制御点の数が別々に決まります。そのため、多数の制御点を使いながら、長い輪郭を低い多項式次数で表現できます。ノットベクトルはパラメーター領域を複数の区間に分け、各制御点の影響範囲を定めるのに役立ちます。これらの特性については、Bスプライン曲線:重要な特性で解説しています。
次数 p の曲線でインデックス i の制御点が影響する区間は、ノット uᵢ から uᵢ₊ₚ₊₁ までです。三次Bスプラインの場合、影響範囲は最大4つの非ゼロノット区間に及びます。これらはパラメーターの区間であり、表示される輪郭上で等しい距離に対応するとは限りません。この支持範囲の規則は、Bスプライン曲線:制御点の移動で導かれています。
例として、ノットベクトルが 0, 0, 0, 0, 1, 2, 3, 4, 5, 5, 5, 5 の三次曲線を考えてみましょう。ゼロ始まりのインデックスで制御点 P₃ を動かすと、パラメーター値0から4までの曲線に影響することがあります。影響範囲は限定されていますが、5つある非ゼロ区間のうち4つに及びます。そのため、小さな曲線でも編集範囲が意外に広く感じられることがあります。
長いしっぽの輪郭など、変形したい滑らかな部分に制御点の影響が収まる場合は、Bスプラインを選びましょう。調整のたびに、残したい近くの特徴まで変わってしまう場合は、作業を続ける前に曲線の構成を見直してください。
滑らかな接続や意図的な角は、曲線の選択にどう影響する?
複数のセグメントで構成されたベジェ輪郭では、編集する接続部の両側にあるハンドルを確認しましょう。ベジェ曲線の端点の接線は、制御多角形の最初と最後の辺に沿います。通常の接続部では、共有アンカーの反対側に伸びる同一直線上のハンドルによって、接線方向を一致させられます。これは G1 連続性と呼ばれます。1階導関数を一致させる C1 連続性では、ハンドルの長さとセグメントの次数にも関係が加わります。ベジェ曲線の導関数を参照してください。
静止したキャラクターのシルエットでは、まず見た目のつながりを確認しましょう。頬から頭部へ滑らかにつながっているか、それとも角が生じているかを見ます。接線の方向を揃えることは有用ですが、それだけでは接続部の曲率が均等に変化するとは限りません。
エディターの設定も重要です。Inkscapeのガイドでは、ハンドルを個別に動かせるカスプノード、ハンドルが揃うスムーズノード、ハンドルの方向と長さが揃う対称ノード、自動的にハンドルが調整されるオートスムーズノードを区別しています。こうした挙動により、一見個別の編集がノードの反対側にも影響する理由がわかります。ノードの種類についてを参照してください。
Bスプラインの滑らかさは、次数とノットの重複度によって決まります。内部ノットが単純な三次スプラインは C2 連続性を持ち、ノットを重複させると、その位置で必要とされる連続性が低くなります。そのため、「Bスプライン」というだけでは、すべての接続部がどれほど滑らかになるかは定まりません。この関係はBスプライン曲線:重要な特性で解説しています。
先の尖った耳を意図的に作る場合は、両側のハンドルを独立して制御できるベジェの角が扱いやすい選択肢です。途切れのない丸い輪郭には、ノットと制御点の構成で移行部分全体を扱いやすく形作れるなら、Bスプラインを検討しましょう。
元の形状を変えずに、細かく制御できるようにするには?
まず曲線を細分化し、その後で形を変えます。この2つの操作を分けると、予期しない変化が制御点の追加によるものか、制御点の移動によるものかを見分けやすくなります。
ベジェ曲線では、適切な位置で形状を保ったまま分割しましょう。分割後の各部分は元と同じ次数を保ち、合わせると元のセグメントを再現します。分割後は、周囲のシルエットを固定しておく必要がある場所の境界アンカーと接線の関係を維持してください。この方法については、ベジェ曲線の分割で説明しています。
Bスプラインでは、エディターが対応していれば、正しい方法でノットを挿入しましょう。ノット挿入ではノットを追加し、関係する制御点を再計算しますが、曲線の形状は変わりません。制御多角形に任意の点を追加する操作とは異なります。この違いと手順は、Bスプライン曲線:ノット挿入に示されています。
いずれの操作の後も、形状を調整する前に、細分化した輪郭を保存済みのコピーと比べましょう。その後、制御点を一度に1つずつ動かします。現在の曲線構成では、決めた境界内で目的の特徴を実現できない場合にのみ、さらに細かく分割してください。
次のキャラクター編集には、どちらの曲線を選ぶべき?
動かしてよい範囲を特定したら、この判断ガイドを使いましょう。以下は、上記の特性に基づく実用上の推奨事項であり、アプリケーション間の測定比較ではありません。
| 編集要件 | 最初に選ぶ曲線 | 確認事項 |
|---|---|---|
| 固定された目印の間にある1つの特徴を調整する | 複数セグメントのベジェ | セグメントの境界が特徴に合っているか、共有ハンドルが意図どおりに動くか |
| 長く滑らかな輪郭を繰り返し変形する | Bスプライン | 制御点の影響が目的の範囲に収まるか |
| 意図的な先端や角を作る | ハンドルを独立して制御できるベジェ | 両側が意図した方向を保つか |
| すでに満足しているベジェ輪郭を細分化する | ベジェを維持し、必要な箇所を分割する | 分割後も元のシルエットが保たれるか |
| Bスプラインの調整範囲をさらに狭くする | Bスプラインを維持し、対応していればノットを挿入する | 制御点を動かす前に、挿入によって形状が保たれるか |
既存の輪郭を優先して判断しましょう。必要な編集にすでに対応できる曲線形式なら、そのまま細分化して使います。表現形式を切り替えると、評価すべき操作が増えますが、頬や耳を1か所調整するだけなら、ほとんど利点が得られない場合があります。
選択した曲線が適しているかどうか、どう確かめる?
キャラクターの輪郭を複製し、編集境界テストを行いましょう。曲線の名称に頼らず、具体的な方法で表現形式を比較できます。
- 変更内容を決める。 たとえば、耳の付け根とあごを保ちながら、頬を広げます。
- 変更してよい範囲に印を付ける。 特徴の周りにある、目で確認できる2つの境界位置を特定します。
- 曲線の構成を調べる。 この部分に影響するベジェセグメントまたはBスプライン制御点を見つけます。
- 小さく編集する。 対象の特徴と隣接する輪郭の両方を観察します。
- 境界を確認する。 変更が境界を越えた場合は、ハンドルの連動を確認するか、再度試す前に曲線を細分化します。
- 作業時と表示時のサイズで結果を確認する。 特徴の形状や接続部を確認し、目的のサイズで調整が見えるかどうかも確かめます。
役立つベジェアンカーの間に頬を分離できているなら、ハンドルの調整だけで、大幅な再構成をせずに作業を終えられるかもしれません。隣接部分を何度も調整する必要がある滑らかな輪郭では、Bスプラインの制御点のほうが編集しやすい場合があります。変更を許容する範囲に沿って選びましょう。すでに気に入っている輪郭を保ちながら、特徴を形作るのに十分な制御ができる曲線を使います。
出典
- 制御点の変更 — Michigan Technological University
- ベジェ曲線の分割 — Michigan Technological University
- Bスプライン曲線:重要な特性 — Michigan Technological University
- Bスプライン曲線:制御点の移動 — Michigan Technological University
- ベジェ曲線の導関数 — Michigan Technological University
- ノードの種類について — Inkscape Beginners’ Guide
- Bスプライン曲線:ノット挿入 — Michigan Technological University
