Skip to content

UniView 2.3.1

Choose a tag to compare

@NightHawkHSI NightHawkHSI released this 27 Sep 09:10
· 9 commits to main since this release

Fixes

  • Font previews in Source, Source 2 and Unreal games: .ttf/.otf fonts now show their sample sheet instead of an error (they only worked in Unity games before).
  • Your game list and settings are safer: projects.json and settings.json are saved in one step, so a crash or full disk can't leave them half-written. If one can't be read, UniView keeps a copy as projects.json.bad / settings.json.bad instead of starting over and overwriting it.
  • A bad value in settings.json now only resets that one setting (and says so in the log) instead of being ignored silently.
  • More problems are written to viewer.log instead of being swallowed (textures that fail during OBJ export, Blender lookup, etc.).

For plugin authors

  • The plugin API in engines/sdk.py is fully type-annotated, with named shapes for the dicts plugins return (GameInfo, AssetStats, PluginOption, Rig, ...). Keep the template's type hints and your editor, or mypy, flags mistakes like a misspelled stats key. See Type checking in PLUGINS.md.
  • New optional GameSession.font(asset). By default it renders raw(), so returning the font file's bytes from raw() is enough.

Under the hood

  • The app's code moved from one 4,800-line file into a uniview/ package (unity_viewer.py still starts it). No change in behavior.
  • Automated tests for GLB export, skeleton/animation math, settings and plugin loading, run on every build.

Windows: download UniView-v2.3.1-win64.zip, unzip, run UniView.exe. No Python needed.

🤖 Generated with Claude Code