Fusion 360 をコツコツとマスターする（９）Tスプラインの編集

__スカルプトモード__でのTスプラインを編集する操作。この操作はものすごく奥が深いと思います。ごく初歩的な操作しかまだ試していないですが、それでもすでにかなりの数のバリエーションを作り出せます。

# Tスプラインの表示モードの確認

点やエッジなどの移動について見ていく前にTスプラインの３つの表示モードを確認しておきます。

ごく単純な箱のモデルを３つのモードで表示した様子です。

- スムース表示（デフォルト設定）
- 制御フレーム表示
- ボックス表示

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/2eaef72d-dbd0-f800-681d-9be000c614b5.png' width='662' />

制御フレーム表示は他の２つの表示モードのハイブリッド表示でなおかつ制御点はボックス表示の状態です。スムース表示で直感的に作業を進めるのも一つの手ですが、Autodesk公式のYouTube動画のいくつかで「ほとんどの場合、ボックスモードで作業をし、時々その効果をスムース表示で確認します」と言っているプロの方がいました。

おそらくですが、ボックス表示とスムース表示には「ボックス表示（原因）－＞ スムース表示（結果）」のような関係があるからだと推測しています。つまり、ボックス表示で表示される制御点はTスプラインのスムース処理前の状態で、その処理の出力として曲面から構成されるスムース表示のようなボディが出来る、ということだと思うのです。

Tポイントをいくつか置いて、ボックス表示とスムース表示を比べると分かりやすいでしょう。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/16f055be-aaa6-69ca-c32e-b00c6225c533.png' width='603' />

赤矢印が指している、箱上面中心近くにあるフェイスを比べてみると、スムース表示（上）の方がボックス表示のものよりやや小さく見えることが分かります。

両方が見える制御フレーム表示にして、良く見てみましょう。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/eb41c466-04eb-e215-8530-67f506d0010e.png' width='1087' />

赤枠で囲まれたフェイスがスムース表示の時の、やや小さめのもの。青枠で囲まれたフェイスはボックス表示のもの。

この２つの枠は同じフェイスを表示しているのに、大きさも位置も異なります。「原因->結果」の関係で考えると「ボックス表示の状態 -> スムース表示の状態」になります。何しろ、Subdivide（分割）コマンドで分けていった際、等間隔で分割されていったので、青枠は他の3つのフェイスと同じ辺の長さになっています。

なぜこのようなことが起こるかと言うと、Tスプラインとして計算されるとき、制御点どおしの感覚が短いほど「お互いを引っ張り合って」近い距離になるからです（これは観察に基づいて言っていますので、間違いであればご指摘ください）。

制御点が密集すればするほど、それらが引っ張り合う相乗効果でスムース表示（つまり結果として出力されるボディー）のフェイスがより小さくなっていく様子が分かります。

原理の説明は間違っているかもしれませんが、少なくとも制御点を加える度に、全体に対しての既存のフェイスがある法則に基づいて変更されると言えるでしょう。

ここから以下のようなことが言えるでしょう：

- 原因と結果の関係にあるので、その原因であるボックス表示で編集をするプロがいる。つまりそれはベストプラクティスと考えられる
- 制御点の追加および削除は近隣のフェイス（エッジ）に影響を与える
- モデリングの過程で予期せぬフェイスの変更が生じた時はいったんボックス表示で制御点などの状態を確認すると抜け出せるかもしれない

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/e5785fe7-d513-dd61-2c66-83b070366254.png' width='1173' />


# 編集の対象を確認

スカルプトモードで編集できるモノを確認しておきます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/35c79d89-e1e2-3361-ac8e-8ce02df4b6b0.png' width='1351' />

複数同時に選んで操作対象に出来ます。種類を混ぜることも出来ます。

どれを選択しているか、というのはとても重要なので、編集する際に意識しておいた方が良さそうです。

# 点（頂点）の編集

## Tスプラインのボディー内部にある点の編集

内側の点を１つ選んで、３つの軸方向に一定の長さ移動してみました。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/738b4b3f-251c-098f-c60f-262f448e2ef7.png' width='1238' />

点の移動に引っ張られて、近くのエッジも少し影響を受けてます。ただし面の外周は影響を受けないようですね。これは曲線の始めと終わりの点（端点というらしいですね）は、内側の点とは異なるからでしょう。

面白いなと気づいたのが、Y軸方向（垂直）に引っ張り上げた時にできる山は、X軸とZ軸方向に、平面にそって引っ張られてカーブの合成のようだということ。下図では、赤矢印が指す曲線と、青矢印が指す曲線。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/dfb2cb07-0c88-afef-4c6d-e37b562f1fdc.png' width='1233' />

こういうのを感覚的に覚えていくと、移動後の全体的な変化をある程度予測できし、意図的に出来るようになるのかな。

## Tスプラインのボディーの外周にある点の編集

点がTスプラインの内部か外周にあるかで全体に対する変化が全くことなるので注意が必要です。それらの点は「点の配列」としての曲線の両端にある端点なので、それを動かすことすなわち曲線全体の長さの変更になる、と理解してもいいと思います。

端点、この場合は角の点を選んで３つの軸方向に一定の長さ移動してみた。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/41da3b24-a545-9f90-a378-3a4bfdf7630e.png' width='1184' />

ところで、上図の左下のTスプラインが重なってしまった部分、これはエラーになります。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/b9cf28b3-dac7-ac35-13c8-5d78db4894dd.png' width='1296' />

「エッジがフェイスが交差してしまってるよ！」と言っています。この状態で作業を続けていくと直すのが面倒なので、出来るだけ早い段階で発見したいものです。ひとつのテクニックとしては、スカルプトモードを一旦出て、エラーの有無を確認して「Ctrl-Z」でスカルプトモードに戻る、というのがあるそうです。

## 隠れている点もある（タンジェントハンドル）

編集フォームを表示させ、選択対象のフィルターを点にすることで選べるようになる点があります。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/996f7bcd-6846-1b3c-ef08-09f4cf051ae7.png' width='1235' />

特殊な点で、タンジェントハンドルと呼ばれるTスプラインに独特の制御点です。端点の「向き」を決定します。「点に向き」があるというのはおかしな話ですが、この場合「点の向き」ではなく「点の接点の角度」のことで、デフォルトでは端点が接するエッジに対して直角になるように「寝て」いますが、これを起こすことも出来るとうわけですね。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/9a2f58d4-c6db-74d8-ec58-c2f1c04bbcd5.png' width='953' />

点に対する編集はおそらくこれで全てだと思います。編集ツールでは「回転」と「スケール（大きく・小さく）する」もありますが、点に対してそれらの操作は意味がないです（点を回転しても点、大きくしても点）。


# エッジ（線）の移動編集

## Tスプラインのボディーの内側にあるエッジの編集

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/d090ae3d-585f-594b-9238-7ddebdb6a38f.png' width='1424' />

## Tスプラインのボディーの角の点を含むエッジの編集

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/7e928547-e572-329e-5fe6-8be11b65d446.png' width='1354' />

エッジやフェイスが交差するとエラーになるのは点の編集の場合と同じです。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/eabf5c5b-f444-879b-4c8f-8a52d0f8f424.png' width='1083' />


# エッジのスケール変更編集（拡大縮小）

エッジは「線」なので、線の拡大はすなわち長さを「長くする・短くする」という意味です。線の長さの変化は両端に対称に起こります。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/c174f0b9-f81c-b461-c384-73011bed7047.png' width='1222' />

# エッジの回転編集

エッジは「線」なので、線を軸として回転しても線のままです。よって、３つのうち２つの回転ツールしか効果はありません。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/bedb6d7a-424e-20f8-608a-abe4ac0d606d.png' width='1177' />

# エッジの編集による変化

１つのエッジを、位置、スケール、回転だけで編集することでサーフェイスモデルに大きく変更を加えることが出来ます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/719794c4-a836-2b50-4bdb-f88ed700e28d.png' width='811' />

１つのエッジにこれだけ「盛ってしまう」のはベストプラクティスかどうかという点で怪しいと思いますが、経験のない私は分からないので今後注意して観察していこうと思います。

# フェイスの編集（移動、スケール、回転）

フェイスもおおよそ予期したとおりの効果が表れます。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/517b2d4d-7204-8e5b-7f97-653db37923a2.png' width='1320' />

# 端のエッジを含むフェイスの回転編集

Tスプラインは制御点の列なので、端の点を含む操作は全体を大きく変えるのはエッジでもフェイスでも同じです。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/54b15bf7-560a-6967-113d-3a893e1a2479.png' width='722' />

ただし、注意しなくてはいけないのが、回転の軸です。３つとも同じ形状のフェイスを回転すると、フェイスの中心を通る線を軸として回転していました。

横から見ると、回転軸の位置（赤矢印）と、直接選択されてないにも拘わらず大きく変更されたフェイス（青矢印）が良く分かります。

<img src='https://qiita-image-store.s3.amazonaws.com/0/103139/b0a92426-4b63-786e-695d-4e591a2a181e.png' width='924' />

# まとめ

既存のTスプラインの構成要素である、点、エッジ、フェイス、の編集を見ていきました。大きく分けて、３D空間の移動、大きさの変更（スケール）、方向の変更（回転）を見ていきました。

Tスプラインは全体的になめらかな曲線をもつサーフェイスモデルを作るので、ひとつの編集が他に影響を与えることがしばしばです。これは便利でもあり、場合によってはその副次的作用をうまくコントロールできないストレスにもなりうると思います。本番のモデルでは慎重に進めて行ったり、コピーを取って効果を確認したりするのも手だと思います。まぁあとは経験ですかね。