PoseSaver 1.4.8 – Minor Fix Update
Small fix this time — thank you fttp for reporting the issues!
Fixes in this update:
- Missing Arrow Buttons
When repeatedly using “Save New Pose”, thumbnails stopped showing after 8 entries and the arrow buttons disappeared.
This is now corrected — pagination shows properly again.- NullReferenceException on Pagination
Some users received this error when saving multiple poses in a row:
CreatePaginationControls: Object reference not set to an instance of an object
This has been fixed and pagination is now stable.- Character Distortion When Clicking Thumbnails
In some cases, clicking a newly saved pose thumbnail after “Save New Pose” caused the character’s shape to distort.
This happened mostly with certain presets.
The issue is now resolved.- Handstab UI Adjustments
The handstab section has been cleaned up and improved for better usability.
All known issues from the report are now fixed.(if i missed something please tell)
Thank you for helping me improve PoseSaver!
Update 1.4.7 – Timeline Auto-Keyframe Protection
✔ Fixed: Timeline overwriting animations when loading poses
Some users experienced that loading a pose in PoseSaver would trigger Timeline’s “Auto-keyframe all controllers”, causing Timeline to automatically create new keyframes and overwrite existing animation data.
This is now fully resolved.
What’s New
🛡 Automatic Timeline Auto-Keyframe Protection
PoseSaver now detects any active Timeline plugin and temporarily disables its auto-keyframe system while a pose is loading.
This prevents Timeline from generating unwanted keyframes.
How it works
- Detection
PoseSaver scans all atoms for Timeline and uses reflection to access the internal autoKeyframeAllControllers flag.- Protection
Before loading a pose, PoseSaver disables auto-keyframing on all detected Timeline instances and stores their original state.- Restoration
Once the pose is fully applied, all Timeline instances are returned to their previous settings automatically.
Works with different Timeline versions (includes safe try/catch handling).
Benefits
No more accidental overwriting of Timeline keyframes
You can load poses freely while animating
Seamless and invisible — no buttons, toggles, or setup required
Timeline settings are restored exactly as they were before pose load
Fully safe and non-intrusive
User Experience
You can now:
- Use PoseSaver while animating in Timeline
- Keep auto-keyframe on without worrying
- Switch poses rapidly with zero risk to your animation work
The fix is automatic — the only thing you’ll notice is that your Timeline keyframes stay exactly where they should.
Thank you Babul for pointing this out!
Features Added
1. Pagination System
File: PoseScreenCanvas.cs
- Previous (◄) and Next (►) arrow buttons
- Page counter display (e.g., "1/3")
- 12 poses per page (4 rows × 3 columns for 1080p)
- Auto-hides when ≤12 poses
2. Smooth Pose Transitions
Files: PoseData.cs, PoseSaver.cs, PoseSaver.cslist
- Enabled the existing PoseSaverTransition system (was built but not connected)
- Smooth lerp/slerp animation between poses
- Controlled by "Transition Time" slider (0-10 seconds)
- Camera moves first, pose follows after 1 second delay
- Added "Enable Smooth Transitions" checkbox toggle
---
Bug Fixes
Compilation Error
- Added PoseSaverTransition.cs to PoseSaver.cslist (was missing from compile list)
PoseSaver Update – Multi-Camera System + Full Hand/Finger Morph Control
This update brings two major new systems to PoseSaver, designed to give creators more control, better workflow, and smoother cinematics.
1. Multi-Camera System (CAMERA Tab)
PoseSaver now supports multiple camera angles per pose, with a clean on-screen button layout directly under each pose thumbnail.
Highlights:
- Multiple camera angles per pose (up to 6)
- Clickable on-screen camera buttons (1–6)
- Active camera shown in blue, inactive in gray
- Smooth camera transitions:
- Instant
- Linear
- Smooth (SmoothStep)
- EaseInOut
- Adjustable transition speed
- Camera thumbnail previews
- Event triggers for camera enter/exit
- Fixed UI jitter during transitions
Perfect for storytelling, dialogue scenes, showpieces, and cinematic animations.
2. Full Hand & Finger Morph System (HANDS Tab)
A complete hand-posing system is now integrated into PoseSaver.
Hand morphs automatically save and restore with each pose.
Features:
- Person Selector to choose which character’s hands you adjust
- Auto-Save toggle for automatic morph saving
- Status indicator showing morph count per character
- Quick Actions:
- Zero All
- Reset to Default (DAZ)
- Copy L → R
- Copy R → L
- Swap L ↔ R
- Morph groups:
- Hand Morphs (5)
- Finger Morphs (5)
- Individual Finger Controls (9)
- Real-time slider updates
- Each pose stores its own hand morph profile
- Correct morph ranges:
- Most: –1 → 1
- Hand Chop & Fingers In-Out: 0 → 1
- Removed non-working sliders for a clean, reliable UI
This brings fast and intuitive hand posing without needing external tools.
PoseSaver Update - Scene Graph Flow System
New Features Added:
1. Scene Graph / Story Flow System
- Link poses together to create branching narrative paths
- Each pose can have multiple "next poses" with different paths
- Create interactive, non-linear pose sequences
2. FLOW Tab (New Tab in Pose Editor)
- Visual interface for creating pose connections
- "Link to: [pose name]" buttons to connect poses
- Shows all connected poses with ability to remove them
- Flow Timing section with delay slider (0-10 seconds)
- "▶ Test This Flow" button for instant testing
- Yellow save reminder to persist connections
3. Flow Navigation (Main Screen)
- "Scene Graph Navigation" section
- Current pose indicator showing loaded pose and connection count
- "Next (Follow Story Flow)" button to navigate the flow
- Auto-advances if only one connection
- Shows choice prompt if multiple connections
4. Flow Delay System
- Per-pose delay setting (0-10 seconds)
- Controls pacing before auto-navigation or showing choices
- Saves with preset data
5. Enhanced Logging
- Detailed debug messages showing flow state
- Shows which pose is loaded, connection count, navigation actions
- Helps troubleshoot flow issues
Technical Implementation:
- Added nextPoseIndices, branchLabels, requiredVariables, setVariables, and flowDelay fields to PoseData
- Full JSON serialization/deserialization for all Scene Graph data
- Coroutine-based delay system for smooth timing
- Public currentPoseIndex for UI access
All features are fully functional and tested.(but if you find anything then as always i appreciate feedbacks)
How to Use Scene Graph Flow System
Creating a Branching Story:
Step 1: Create Your Poses
- Create 3+ poses (e.g., "Greeting", "Happy", "Sad", "Flirty")
- Save each pose using the pose list
Step 2: Link Poses Together
- Select first pose → Click FLOW tab
- Set Delay Before Next slider (e.g., 2 seconds for pacing)
- Click "Link to: [pose name]" buttons to add connections
- You can link to multiple poses for branching paths
Step 3: Test Your Flow
- Still in FLOW tab, click "▶ Test This Flow from This Pose"
- Watch it navigate automatically (or show choices if multiple paths)
Step 4: Save Your Work
- Go back to main screen
- Click "Save Preset" (or connections will be lost!)
Using Flow in a Scene:
Auto-Navigation (Single Path):
- Load a pose from the list
- Click "Next (Follow Story Flow)"
- Waits for delay → auto-navigates to next pose
Choice Prompt (Multiple Paths):
- Load a pose with 2+ connections
- Click "Next (Follow Story Flow)"
- Waits for delay → shows choice buttons
- Click your choice → navigates to that pose
Current Pose Info:
- Main screen shows: "Current: [pose name] (X flow connections)"
- Always know your flow state
That's it! Create interactive, branching pose sequences like a visual novel or interactive story.
PoseSaver - Update Log: Pose Navigation
New Feature: Pose Navigation Trigger Actions
1. Navigation Trigger Actions (NEW)
- "Load Next Pose" - Cycles forward through poses (wraps to first at end)
- "Load Previous Pose" - Cycles backward through poses (wraps to last at beginning)
- Availability: Appears in all trigger panels throughout VirtaMate
- Files: PoseSaver.cs:30-33, 87-92, 309-391
2. Current Pose Tracking
- New Variable: currentPoseIndex tracks which pose is currently loaded
- Updated Method: LoadPose() now updates current index
- Initial State: -1 (no pose loaded)
- File: PoseSaver.cs:30, 285
3. Transition Time Integration
- Fixed: LoadPose() now uses configured "Transition Time" slider
- Before: Hard-coded 0 seconds (instant snap)
- After: Uses slider value (0-10 seconds)
- Applies To: All pose loading (manual, triggers, navigation)
- File: PoseSaver.cs:287
4. Next Pose Delay Parameter (NEW)
- Parameter: "Next Pose Delay (seconds)" slider
- Range: 0-500 seconds (0 to 8+ minutes)
- Default: 0 seconds (instant)
- Purpose: Wait time BEFORE loading next/previous pose
- Implementation: Coroutine-based with WaitForSeconds()
- Files: PoseSaver.cs:37, 71-78, 327-391
---
How Users Can Use This:
Automatic Story Mode
1. Set "Next Pose Delay" to desired seconds (e.g., 10 seconds)
2. In each pose's "On Exit" trigger: PoseSaver → "Load Next Pose"
3. Manually load first pose
4. System automatically cycles through all poses with delays
Single Button Navigation
1. Create UI Button in scene
2. Add trigger: PoseSaver → "Load Next Pose"
3. Each click advances to next pose
4. Perfect for user-controlled progression
Timeline Integration
1. In Timeline keyframe triggers
2. Add: PoseSaver → "Load Next Pose"
3. Syncs pose changes with animations
---
Technical Details:
The Two Timer System:
1. Transition Time (0-10 seconds)
- Controls smoothness of pose animation
- How long it takes to morph between poses
2. Next Pose Delay (0-500 seconds)
- Controls wait time before loading next pose
- Allows automatic timed sequences
Coroutine Implementation:
- LoadNextPoseCoroutine() - Delays, then loads next
- LoadPreviousPoseCoroutine() - Delays, then loads previous
- Non-blocking (doesn't freeze VirtaMate)
- Properly handles edge cases (no poses, first/last wrap)
---
Files Modified:
1. PoseSaver.cs - Navigation actions, delay system, coroutines
---
Summary:
- 2 new trigger actions: Load Next/Previous Pose
- 1 new parameter: Next Pose Delay (0-500 seconds)
- 1 bug fix: Transition time now actually used
- Automatic sequences: Full support for timed story progression
- Manual control: Single-button navigation through poses
![]()
PoseSaver - Update 1.4.3
1. Additional Atoms Feature (NEW)
- Feature: Save position/rotation of CUAs, props, and other atoms with poses
- How It Works: Atoms with matching name prefix are saved/restored with pose
Backend Implementation:
- New Fields in PoseData:
- saveAdditionalAtoms (bool, default: true)
- atomNamePrefix (string, default: "PoseSaver_")
- additionalAtoms (JSONClass storage)
- Capture Method: CaptureAtomTransform(Atom atom)
- Saves: type, on/off state, position, rotation
- Uses mainController transform
- Restore Method: RestoreAtomTransform(Atom atom, JSONClass transform)
- Restores position, rotation, on/off state
- Integration: Added to CaptureCurrentPose() and ApplyPoseCoroutine()
- Persistence: Full save/load support in JSON
- Files: PoseData.cs:40-43, 83-119, 372-453, 559-576, 1040-1046, 1123-1137
UI Implementation:
- Location: POSE tab in pose editor
- Controls Added:
a. Toggle: "Save CUAs/Props with matching prefix"
b. Text Field: Configure atom name prefix (editable, default: "PoseSaver_")
c. Status Display: Shows count of saved atoms (e.g., "Currently saved: 3 atom(s)")
- Visual: Section divider "Additional Atoms"
- Colors: Green status when atoms saved, gray when none
- File: PoseUI.cs:750-793
Usage Example:
1. Name your atoms: "PoseSaver_Light1", "PoseSaver_Prop2", "PoseSaver_Chair"
2. Open POSE tab and enable "Save Additional Atoms" toggle
3. Optionally customize prefix (e.g., change to "MyScene_")
4. Capture/recapture pose - atoms with prefix are automatically saved
5. Load pose - atoms restore to saved positions
---
2. Bug Fix: Compilation Error
- Error: DAZMorph.resolvedPath property doesn't exist
- Fix: Changed morph path detection to use only uid property
- Location: IsPoseMorph() method
- File: PoseData.cs:248-268
---
Files Modified
1. PoseData.cs - Additional atoms backend + morph path fix
2. PoseUI.cs - Additional atoms UI controls
---
Summary
- 1 new feature: Additional Atoms saving with configurable prefix
- 1 bug fix: Morph path detection compilation error
- Full UI integration: Toggle, text field, status display
- Complete persistence: Saves/loads with pose JSON
![]()
![]()
PoseSaver – Update v1.4.2
Major Improvements:
Trigger System Enhancements
- Each pose now appears as individual trigger action ("Load Pose 1: Name", "Load Pose 2: Name", etc.)
- Added up/down arrow buttons in Edit mode to reorder poses
- Triggers automatically update when poses are reordered
Massive Performance & File Size Optimization
- Reduced pose file sizes by ~95% (from 10,000+ lines to ~200 lines per pose)
- Poses now save ONLY positions and rotations
- Removed morph saving (let expression/arousal plugins handle this)
- Removed texture/skin/hair/clothing data saving
- Poses now work with ANY character appearance
Bug Fixes
- Fixed Decal_Maker layers being duplicated on pose load
- Fixed skin textures being reloaded on pose changes
- Fixed hair being reloaded on pose changes
- Fixed physics explosions during pose transitions
- Improved stability when switching between poses
Physics Improvements
- Smoother transitions between poses
- Reduced clipping issues
- Better handling of collision detection during pose changes
Code Cleanup
- Removed all external plugin dependencies
- Optimized codebase for better performance
- Removed unnecessary logging and debug code
PoseSaver – Update v1.4.1
New Features
Trigger System Enhancements
- Each pose now appears as a separate trigger action: "Load Pose 1: My Pose Name", "Load Pose 2: Another Pose",
etc.
- Easy to trigger specific poses from scene triggers
- Trigger names automatically update when poses are reordered
Pose Reordering
- Up/Down arrow buttons (▲▼) in Edit mode to reorder poses
- Arrows disabled when poses are at top/bottom
- All triggers update automatically when reordered
Major Fixes
Texture/Appearance Separation
- Poses no longer save skin textures, clothing, or hair
- Create poses with one appearance, then change character looks completely
- Poses work with ANY character appearance now
- Poses ONLY save: body position, morphs, plugin states, camera, dialogs
Simplified Pose Transitions
- Cleaner, more reliable pose loading
- Note: Small physics "jump" is normal VirtaMate behavior - unavoidable when teleporting controllers
General
- Removed popup notifications for cleaner operation
- More stable codebase
Camera Support (Already Built-In!)
- CAMERA tab in pose edit screen (3rd tab)
- Capture current camera view per pose
- Smooth camera transitions option
- Each pose can have its own camera angle
PoseSaver – Update v1.4
This update focuses on stability, workflow improvements, and a cleaner pose-switching experience.
Several core systems have been refined to make PoseSaver more reliable and creator-friendly.
Smooth Transition Removed
The “Smooth Transition” option has been fully removed from both UI and internal pose logic.
This eliminates the physics drift and instability it caused, resulting in:
- Faster pose switching
- More accurate controller placement
- More reliable physics after pose load
Pose changes are now instant and stable.
Improved Trigger-Based Pose Flow
You can now control pose order using PoseSaver’s built-in trigger system.
This allows:
- Custom pose sequences
- Branching / non-linear pose flows
- Trigger-based storytelling setups
This also makes PoseSaver more flexible for animation-style scenes.(yeah! Animatis)
Stability & Code Cleanup
- Removed deprecated fields
- More robust JSON handling
- Faster pose capture & restore
Summary
Hopefully better than it was