Repository navigation
0.7.0 - #11
Merged
Merged
0.7.0#11
Conversation
…ions, terminal-state analysis, edge labels & node badges
Features ported from the YGDR comparison report, implemented natively on
DaerD's own GraphView (no Unity-internals patching):
- Graph frames: comment/group boxes drawn behind nodes. Created from the
context menu around the current selection; title bar drag moves the
frame (optionally carrying the nodes inside it), bottom-right handle
resizes, interior clicks fall through so node interaction and rubber-band
selection keep working. Title / color / move-with-frame are edited in the
inspector; frames persist in a hidden GraphFrameData sub-asset created
lazily on first use.
- Pack Into Sub-State Machine / Unpack Sub-State Machine: membership moves
via the states arrays so all transition objects survive (cross-level
transitions stay valid). Unpack re-points transitions that targeted the
machine to its former default state, recreates its Any State rules on the
parent, and rewrites exit transitions when the machine had a single,
unambiguous exit target (logged warnings otherwise).
- Connect States menu: Chain In Click Order, This -> Other Selected, and
Other Selected -> This (fan-out / fan-in), all honoring the configured
transition defaults.
- Analyzer: terminal state groups — strongly connected components (iterative
Tarjan) that can be entered but never left, excluding the default state's
own loop. Reported as Info.
- Transition edges show a one-line condition summary ("Speed > 0.5",
"exit @ 0.75", "(no conditions)") on single-transition edges; state nodes
show WD / B corner badges (Write Defaults ON, has behaviours). Both
toggleable under Preferences > Yozolab > daerD.
Tests: StatePackerTests, TransitionBatchTests, ControllerAnalyzerTests
(SCC cases), GraphFrameDataTests.
https://claude.ai/code/session_01SxnuHWXWvzKNgxHq8mQR1J
…Parameters integration Completes the remaining two items of the YGDR comparison report: - Connect States menu gains a two-step cross product: "Mark Selected As Sources" captures one state set, then "Marked Sources -> Selected" connects every marked source to every selected state (self-pairs skipped, transition defaults applied). Marks clear automatically when the layer or controller changes, since transitions cannot cross either. - VRChat integration, active only when com.vrchat.avatars is installed (versionDefines -> DAERD_VRCSDK_AVATARS), so the package keeps working in plain Unity projects. The Parameters panel links the open controller to the scene avatar whose descriptor references it and shows the sync budget (used/256 bits) with a ping to the Expression Parameters asset, plus a per-parameter chip: S synced (with bit cost), L local-only, ! type mismatch, or a + button that appends the parameter to the Expression Parameters as a synced entry (Trigger maps to Bool, default value carries over). Scene scans are cached for two seconds. Tests: TransitionBatch cross-product cases. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…s Unity 2022.2+ Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- Toggling Write Defaults in the inspector, adding/removing a behaviour, and the bulk Write Defaults buttons now refresh the affected graph node's badges immediately (light label refresh, no full rebuild). - The WD / B badges move from floating above the node into a right-aligned mini row under the motion line, inside the node body. The row collapses when neither badge applies, so unaffected nodes keep their compact height. The B badge tooltip now reports the behaviour count. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…wo lines The in-body badge row grew the node and looked heavy. The badges are now plain 8px text overlaid in the top-right corner (no layout impact, original node height restored), always visible: lit green/blue when Write Defaults is ON / behaviours exist, grey when not. Tooltips state the exact status. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…only containment - "Create Frame" in the graph context menu drops an empty 320x220 frame at the cursor; "Create Frame Around Selection" stays for the existing flow. - Dragging a frame now moves the contained nodes in lockstep during the drag (captured on mouse-down, followed on every geometry change) instead of snapping them after the drop; positions persist once on drop through the regular moved-elements path, so no rebuild flash. Alt-drag and the per-frame "Move Nodes With Frame" toggle still move the frame alone, and resizing never drags contents. - Containment now requires the node's whole rect to lie inside the frame. Nodes merely touching or crossing the outline are no longer carried along, matching what visually reads as "inside". Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…and frame utilities
Frame usability round two:
- Lock: a locked frame cannot be moved, resized, renamed or deleted
(capabilities stripped, resize handle hidden, title shows "(locked)",
menu/inspector entries grey out). Toggle from the context menu or the
inspector; the frame stays selectable so it can be unlocked.
- Frame-only move: dragging the border moves the frame alone, dragging the
title bar carries the contained nodes. Replaces the Alt-drag idea, which
never worked because GraphView reserves Alt+left-drag for canvas panning.
- Rename: F2 (single selected frame) or double-clicking the title opens an
in-place rename field, matching state renaming.
- Memo notes: free-floating sticky notes ("Create Note" in the context
menu), persisted next to frames in the GraphFrameData sub-asset. Drag
anywhere to move, resize handle, double-click/F2 for in-place multiline
editing, color presets and S/M/L font size via context menu or inspector.
- Frame extras: Select Contents (grab everything fully inside), Fit To
Contents (snug the frame around its nodes), and color presets in the
context menu.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…ames, note opacity - The frame title bar gains an inspector-style padlock button (top-right): one click toggles the lock, icon reflects the state. - Frames and notes are now resized via eight square handles — corners plus the midpoint of every edge — shown while the element is selected, with matching resize cursors. Replaces the single bottom-right GraphView resizer on both. - Memo notes lying fully inside a frame are carried along when the frame's title bar is dragged, and Select Contents / Fit To Contents include them. - Notes honour their colour's alpha: an Opacity submenu (100/80/60/40%) joins the context menu, and the inspector colour field's alpha slider works as expected. Colour presets preserve the chosen opacity. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Drops the sync-budget line, the per-parameter S/L/!/+ chips and the VrcExpressions helper, and clears the com.vrchat.avatars versionDefine — the feature isn't wanted. The VRChat built-in parameter entries in the Parameters panel's Add menu are untouched. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.