Connection Line Styles
How connections are drawn is a per-asset, swappable line drawing policy - an Instanced object on GraphConfig.LineDrawingPolicy. All policies share the line colors, thickness, brush, and default start/end anchors, honor per-edge color overrides, and render identically in the editor preview and at runtime.
| Policy | Look |
|---|---|
USkillTreeLineDrawingPolicy_StraightLine | Direct line between anchors (default) |
USkillTreeLineDrawingPolicy_ElbowLine | Three-segment vertical->horizontal->vertical elbow |
UCrimsonSkillTreeWidget_LineDrawingPolicy_Spline | Designer-authored cubic-bezier curves with material support |
Anchors (every line style)
Every connection attaches to its two nodes at an anchor. The policy's Default Start Anchor / Default End Anchor set the default for all connections; override either end per connection by clicking the line in the Visual graph. Anchors work the same for straight, elbow, and spline.
| Mode | Where the line attaches |
|---|---|
Center | Node centre |
Nearest | The point on the node's shape facing the other node |
Top / Bottom / Left / Right | That edge of the node's shape |
Custom | Node centre plus an offset |
Anchors attach to the node's shape, not its bounding box, so lines meet round, hexagonal, and triangular nodes cleanly. When a node widget's art doesn't fill its slot, the per-widget Connection Anchor Inset pulls the attach point in to the visible edge. The editor preview and the in-game line use the same anchor maths, so what you place is what ships.
The Spline policy
The Spline policy gives complete control over each connection's shape and look. A connection's path is authored on the Visual graph as a chain of control points and compiled into UCrimsonSkillTree::ConnectionPaths (GUID-keyed by parent/child) - mirroring how node layout compiles into NodePresentations.
| Aspect | Model |
|---|---|
| Curve | Cubic bezier through FCrimsonSkillTree_SplineControlPoints; tangents per the Curve-Editor model (Auto / User / Break / Weighted / Linear) |
| Material | Drawn via a UV-mapped triangle strip with continuous arc-length UVs, so a flowing material runs end-to-end; color-only fallback when no brush resource is set |
| WYSIWYG | Editor preview and runtime call the same tessellation + strip-builder, so they match pixel for pixel |
At runtime each connection is painted by a UCrimsonSkillTreeWidget_SplineConnection widget (one per edge). Control points are authored as draggable Visual-graph nodes, so the editor reuses native drag / select / grid-snap / undo, plus a per-asset snap size and reroute-style align/distribute actions for lining points up. Connections without authored points fall back to a clean anchor-to-anchor curve.