Files
VMD-Motion-Optimizer/README-en.md
T
Barış Keser f8512adde5 Add VMD Motion Optimizer and supporting scripts
- Implemented `optimize_vmd.py`, a comprehensive VMD motion optimizer that includes features for position and rotation simplification, depth alignment removal, and ground stabilization.
- Introduced `peek_bytes.py`, a utility script for inspecting byte data from VMD files.
- Created `version.txt` to track the version of the VMD Motion Optimizer, initialized to 0.1.0.
2025-08-17 21:48:36 +03:00

53 lines
1.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# VMD Motion Optimizer by Barış Keser (barkeser2002)
![Logo](logo.png)
VMD Motion Optimizer is a tool to optimize MikuMikuDance (MMD) `.vmd` motion files using smart heuristics.
It reduces position/rotation keys, removes depth alignment, and applies ground stabilization.
- Author: Barış Keser (barkeser2002)
- License: GNU General Public License v3.0 (GPL-3.0) — see `LICENSE`
- Version: see `version.txt`
Features
- RDP-like curve simplification for position
- Quaternion SLERP-based angular-error simplification for rotation
- Morph key reduction
- Depth (Z) alignment removal: measure from root, apply global translation to all bones
- Ground (Y) stabilization: global translation based on per-frame min Y (feet/all bones selectable)
- PyQt6 GUI with profiles
- Portable builds via PyInstaller (Windows)
Install (CLI)
1) Python 3.11/3.12 recommended
2) Virtualenv + deps:
- `py -3 -m venv .venv`
- `.venv\\Scripts\\pip.exe install -r requirements.txt`
CLI Usage
```
python scripts/optimize_vmd.py input.vmd -o output.vmd \
--pos-eps 0.05 --rot-eps-deg 0.5 --morph-eps 0.001 \
--remove-depth --depth-smooth 3 --depth-scale 1.0 \
--stabilize-ground --ground-target-y 0.0 --ground-smooth 5 --ground-scale 1.0 \
--ground-all-bones
```
GUI
```
python scripts/app.py
```
Build
- CMD: `build_exe.bat` (portable folder at `dist/VMDOptimizer`)
- PowerShell: `build_exe.ps1`
Notes
- Some VMD headers may be non-standard/corrupted; the reader attempts auto-fix.
- Camera/light blocks are currently not preserved (written as 0).
- If model name is “XR Animator”, it’s replaced with “Barış Keser” by default (configurable via CLI).
Credits
- VMD Motion Optimizer by Barış Keser (barkeser2002)
- GPL-3.0 — see `LICENSE`