【Unity】メッシュカッターについて その2
これを切断するわけだが
前回でメッシュの作り方は書いた。
メッシュカッターはズバッとこれを切断する。
ポリゴン数が増えても各ポリゴンで繰り返すだけだ。
どっちに頂点があるかチェックする
3つの頂点があり、これを2つのグループに分けた場合、以下になる
- 全部1グループに属し、2グループは0になる
- 全部2グループに属し、1グループは0になる
- 1つが1グループに属し、2グループが2つ
- 2つが1グループに属し、1グループが1つ
外を切る!という考えがあることに注意。
この内
- 全部1グループに属し、2グループは0になる
- 全部2グループに属し、1グループは0になる
この2つは切る必要がないため、後回しにする。
グループ分けの方法
正直なんでもいい。自作でもいいし。
有り物で行くならUnityではPlaneを使うのがシンプルだ。
3DオブジェクトにあるPlaneでは無く、
たった一つのpointとたった1つのnormalを持つ平面を表す構造体だ。
この
これを使う。
内部的には
その頂点が法線方向にあればtrue。
無ければfalseなだけだ。
これを使えば一定の位置からどっちのグループにあるか計算出来る。
まずは、Planeを作るスクリプトを組んでみよう
ここではLineRendererで引いた線に沿ってplaneを作る。
こんな感じにシンプルに。
OnDrawGizmosSelected()でPlaneの法線が見えるようにしている。
一歩踏み込んでマウスで自由に線を引けるようにして、
その都度Planeを作ってもいい。
「もうこれで頂点分けてメッシュ作るだけでええやん」
と思ったかと思います。そのとおりです。
次はいよいよ本当にカットします。