Files
VMD-Motion-Optimizer/README.md
T
Barış Keser 5423971fa7 Dokümanları kodla hizala ve v1.1.0'a yükselt
READMEler koda uymayan davranışlar anlatıyordu: depth ve ground'un "tüm
kemiklere global çeviri uyguladığı" yazıyordu, oysa kod yalnızca kök kemiğe
uyguluyor (kod içi docstring de README ile çelişiyordu). Kamera/ışık
bloklarının yazılmadığı notu artık geçersiz - korunuyorlar.

Eklenenler: Releases indirme bağlantısı, tüm CLI seçeneklerinin tam tablosu
(--no-preserve-end, --replace-xr-with, --flatten-interp, --force,
--ground-exclude-ik/--ground-include-ik dahil), test çalıştırma talimatı ve
ground stabilizasyonun neyi ölçtüğüne dair dürüst bir not (VMD iskelet
içermez, mutlak yükseklik ondan türetilemez).

CLI örneklerindeki "\" satır devamları kaldırıldı - Windows'a yönelik bir
araçta ne cmd ne PowerShell bunu kabul ediyor, örnekler kopyalanınca
çalışmıyordu.

v1.1.0: --remove-depth ve --stabilize-ground çıktısı v1.0.4'ten farklı.
Bu bilinçli - v1.0.4'ün çıktısı hatalıydı. Değişiklik notu üç READMEde de var.
2026-08-03 10:13:11 +03:00

3.6 KiB
Raw Permalink Blame History

VMD Motion Optimizer by Barış Keser (barkeser2002)

Dil / Language: Türkçe · English

Logo

VMD Motion Optimizer, MikuMikuDance (MMD) .vmd motion dosyalarını akıllı sezgilerle optimize eden bir araçtır. Pozisyon/rotasyon anahtarlarını azaltır, derinlik sürüklenmesini kaldırır ve zemin stabilizasyonu uygular.

  • Yazar: Barış Keser (barkeser2002)
  • Lisans: GNU GPL v3.0 — bkz. LICENSE
  • Sürüm: bkz. version.txt

İndirme

En güncel taşınabilir Windows derlemesi için Releases sayfası. ZIP'i açıp VMDOptimizer/VMDOptimizer.exe dosyasını çalıştırın; kurulum gerekmez. Her sürümde indirmeyi doğrulamak için bir .sha256 dosyası bulunur.

Özellikler

  • RDP benzeri eğri sadeleştirme (pozisyon)
  • Quaternion SLERP açısal hata sınırlı sadeleştirme (rotasyon)
  • Morph anahtar sadeleştirme (sabit tutuşlar rampaya dönmez, korunur)
  • İnterpolasyon (bezier) eğrileri korunur — elle ayarlanmış yumuşatmalar kaybolmaz
  • Kamera, ışık, self-shadow ve IK/görünürlük blokları olduğu gibi taşınır
  • Depth (Z) sürüklenmesini kaldırma: kök kemiğin düşük frekanslı eğilimi ölçülüp çıkarılır, gerçek ileri/geri hareket korunur
  • Ground (Y) stabilizasyon: en düşük ayak kemiği Y ötelemesi ölçülür ve kök kemik hedef yüksekliğe taşınır
  • PyQt6 GUI: profiller, sürükle-bırak ve çalışan bir İptal düğmesi
  • PyInstaller ile portable derleme (Windows)

Kurulum (CLI)

  1. Python 3.11 / 3.12 önerilir (en az 3.10 gerekir)
  2. Sanal ortam ve bağımlılıklar:
py -3 -m venv .venv
.venv\Scripts\pip.exe install -r requirements.txt

CLI Kullanımı

python scripts/optimize_vmd.py input.vmd -o output.vmd --pos-eps 0.05 --rot-eps-deg 0.5 --morph-eps 0.001

Derinlik sürüklenmesi kaldırma ve zemin stabilizasyonu ile:

python scripts/optimize_vmd.py input.vmd -o output.vmd --remove-depth --depth-smooth 30 --stabilize-ground --ground-target-y 0.0 --ground-smooth 5

Tüm seçeneklerin listesi için README-tr.md veya README-en.md dosyasına bakın.

GUI

python scripts/app.py

Derleme

  • CMD: build_exe.bat (portable klasör dist/VMDOptimizer)
  • PowerShell: build_exe.ps1

Testler

pip install -r requirements-dev.txt
python -m pytest tests -q

Notlar

  • Bazı VMD dosyalarında imza ile model adı arasındaki dolgu standart dışıdır; okuyucu bunu otomatik algılayıp onarır.
  • Hem VMD 1.0 (10 baytlık model adı) hem VMD 2.0 (20 baytlık) başlıkları desteklenir.
  • Ground stabilizasyon, VMD içindeki öteleme değerlerini ölçer; gerçek dünya yüksekliğini değil. VMD dosyası iskelet içermediği için mutlak yükseklik ondan türetilemez. Ofset kök/merkez kemiğe uygulanır; tüm iskelet onunla taşınır.
  • Model adı XR Animator ise varsayılan olarak Barış Keser ile değiştirilir (--replace-xr-with ile değiştirilebilir).
  • GUI şu an yalnızca Türkçedir.

v1.1.0 ile değişenler

--remove-depth ve --stabilize-ground artık v1.0.4'ten farklı çıktı üretir. v1.0.4'te --remove-depth kökün Z değerini kendinden çıkarıyor ve tüm ileri/geri hareketi sıfırlıyordu; interpolasyon eğrileri siliniyordu; kamera/ışık/gölge/IK blokları düşüyordu; sabit morph tutuşları uzun rampalara dönüyordu. Bunlar hataydı — yeni çıktı amaçlanan davranıştır.

Kredi

  • VMD Motion Optimizer by Barış Keser (barkeser2002)
  • GPL-3.0 — bkz. LICENSE