JSON Pose Add-on

04 November 2021

code-preview
A Blender Add-on for easy, approachable loading of JSON-based pose files onto an armature. This project is designed to interface with files produced by a fan-made tool for a popular MMO. This add-on is useful for both artists looking to extract things from the game, as well as those preparing to import assets into the game. For example, players may wish to extract their character model for either 3d-printing or custom rendering. For those users, this add-on provides an easy interface for posing characters either exactly as they would be in-game, or in any number of fan-made poses which have been archived over the years. In another use-case, artists who intend to import mods can save out troublesome poses from the engine and examine exactly how their skinned meshes interact with the enormous in-game animation library.

Poses are saved in a JSON file format defined by the compatible tool, with rotation, scale, and position offset values for each bone. Currently I am working with rotation only, but I plan to expand to include scale a few updates down the line, and possibly position some time later. Rotation is stored as-read from the game’s memory, quaternions in the character’s local space. Blender pose rotations are relative to the bones rest position, so the add-on must convert these rotations. Luckily, Blender’s python API provides a useful function for converting between spaces of any object or posebone.

code-preview
Code available by request.