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.
VMD Motion Optimizer by Barış Keser (barkeser2002)
Dil / Language: Türkçe · English
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)
- Python 3.11 / 3.12 önerilir (en az 3.10 gerekir)
- 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ördist/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 Animatorise varsayılan olarakBarış Keserile değiştirilir (--replace-xr-withile 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
