Synesthesias / PLATEAU-SDK-for-Unity

PLATEAUの3D都市モデルデータをUnityで扱うためのツールキット
MIT License
116 stars 18 forks source link

Feature/road network jira 158 #308

Closed rennone closed 1 month ago

rennone commented 1 month ago

https://github.com/Synesthesias/PLATEAU-SDK-for-Unity/pull/307 から派生しているので、↑のプルリクの後にマージをお願いします。

## 関連リンク https://synesthesias.atlassian.net/browse/PLTSDK3-158

実装内容

RnRoadGroup.TryCreateSpline関数のwidth計算で開始/終了のボーダーだけでなくスプラインのノット上の各点と左右のWayとの最近傍点を見てwidthを計算するように

マージ前確認項目

動作確認

RnRoadGroup.TryCreateSplineを使ってみる。 DebugDrawerでRoadOp -> ShowRoadGroup で Visible = true ShowSpline = true で仮でスプラインを計算して表示している。 ただし、幅を表示するのは各スプラインの点からtamを使って法線方向出して横に出すだけの単純処理なので正確なものではない。 image

その他

妥協点として、あくまでwidthは目安になります。 SplineとSegmentで正確な幅を出すのは難しいので各頂点だけで判断しています。

Ronnel216 commented 1 month ago

@rennone ソースコード、動作確認しました。 概ね動作に問題なさそうです。 ただ、3枚目の画像でスプラインが3本表示されているように見えます。 真ん中の線もスプラインでしょうか?

該当ゲームオブジェクト tran_a5db9946-7d49-40ab-b533-27cb338be07d

元のレーン base

Visibleのみ有効 visible_on

Show Splineを有効 show_spline

rennone commented 1 month ago

こちら、中央の線が実際のスプライン. 両隣の線は、そこから0.5*widthずつずらしたものになります。 実際にスプラインの幅を確認するためのデバッグ表示です。

Ronnel216 commented 1 month ago

@rennone コメントありがとうございます。 問題のないのでコンフリクトを修復したらマージしても大丈夫です。 対応ありがとうございました。