Skip to content

0.7.0 - #11

Merged
YozoraKurage merged 9 commits into
mainfrom
0.7.0
Jun 10, 2026
Merged

YozoraKurage merged 9 commits into
mainfrom
0.7.0

Conversation

@YozoraKurage

Copy link
Copy Markdown
Owner

No description provided.

claude and others added 9 commits June 10, 2026 02:55
…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>
@YozoraKurage YozoraKurage added the minor up to 0.x.0 label Jun 10, 2026
@YozoraKurage
YozoraKurage merged commit e02d761 into main Jun 10, 2026
@YozoraKurage
YozoraKurage deleted the 0.7.0 branch June 10, 2026 05:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

minor up to 0.x.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants