You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Animation mode (Mode 6): New GUI mode that plays IFF bone animations on textured 3D MEF models. Gated by Settings > Animation toggle. Includes:
QSC object parser (qsc_object_parser.*) that reverse-engineers decompiled objects.qsc to extract HumanSoldier Task_New entries with model ID, bone hierarchy, and stand animation.
Auto-detection of objects.qsc, common/ANIMS folder, and LEVEL/models folder when a level is selected (Settings > Level).
Animation panel with Model dropdown, Animations listbox, Play button, Loop checkbox, and FPS input textbox (configurable 1-120 FPS).
Skeletal skinning that deforms the textured MEF mesh using IFF bone transforms each frame (30+ FPS).
Right-click "Play Animation" on binary .MEF/.MEX files.
P key to toggle rest-pose skinning for debugging; B key to toggle bone skeleton overlay.
Full 33-bone mapping verification logged to detect MEF/IFF skeleton mismatches.
ComputeBoneWorldPositions() exposed in mef_native.h for GUI skinning.
Fixed
Animation root-offset mismatch: IFF places root at (0,0,0) but MEF mesh uses (0,0,3990.4). The skinning now adds the root translation back so the deformed model stays in the MEF viewer frame, preventing detached body parts.
Animation playback speed: Timer increment was hardcoded at 16ms per tick regardless of actual timer interval (33ms). Now uses 1000.0f / fps for correct speed at any FPS.
Bone overlay alignment: addBonesOverlay() was double-normalising bone vertices (pre-normalising then getting normalised again by the mesh loop), collapsing all 33 bones into a single dot. Now pushes raw MEF-space coordinates so the single normalisation loop handles mesh and bones together — bones are perfectly aligned with the model at all model scales.
All hardcoded paths removed: No more machine-specific D:/Software/IGI-Game defaults or D:/IGI1/... test paths. GUI falls back to the user's home directory; the RealLevel1ObjectsQsc test uses the IGI_GAME_PATH env var / --game-path flag and skips cleanly when absent.
Changed
Version bumped to 1.9.4.
Animation FPS now configurable via a QLineEdit in the Animation panel (default 30).
Duplicate FPS label removed from the Animation panel.