Asset Viewer and Data Authoring Tools

 

Throughout our second year I have been working on an Asset viewing tool for our group project which runs on the same Monostein Engine backend that allows the viewer to reflect update changes to our rendering pipelines whilst working in a stable and easily editable environment. The tool has gone through a number of large iterations but the two largest happened between the first and second project in the second year.

 

First Project

After the first project the tool was usable by Artists, Animators and Technical Artists to view their assets as they would be seen in game as well as with a small selection of debug tools, such as stepping through our render targets to check their Albedos, Normals, Materials. This can be seen on my page about the engine; Monostein.

 
Old Asset Viewer.gif

The tool provided one directional light and the ability to edit one static model, or one animated model, or sprites (for the Technical Artists Shader testing)

The different Colour modes were used to help provide a visual indication in what viewing mode you were in (static, animated or shader)

The tool had a filewatcher built in that allowed textures to be edited and updated in real time by simply saving over the currently loaded texture, and the same even applied for our shader writing.

 
 

Second Project

After the first project we realised that the asset viewer needed a large overhaul, although functionally it was useful, it was clunky and slow to use and was missing a bunch of quality of life and debugging tools that would have been useful. Secondly an overhaul was required to match the new threaded message queue system that I developed for our rendering.

 
 
Animations by August Wahlberg for Project Chronos

Animations by August Wahlberg for Project Chronos

Multiple Objects

The first major update that was required was to allow a user to see multiple objects of varying types, this would make it easier to compare textures and colours, as well as easily allowing a user to view multiple things at the same time.

 
 

Saving and Loading

Secondly a user could then save out a scene with these settings into asset scenes. Allowing them to be quickly reloaded with any of their previous data intact.

Loading.gif
 
 
Skeleton, joint Positions, Skeleton & Orientation, Bone connected Colliders. Animations by August Wahlberg

Skeleton, joint Positions, Skeleton & Orientation, Bone connected Colliders. Animations by August Wahlberg

Animation Data Creation.gif
 

Animation debugging and data creation

Thirdly to speed up our animation pipeline I also rewrote what data we provided to our animation system; so that we could now pack up an animation using an editor. This same editor could also be used to provide bone based collisions. and provides debug rendering which can seen on the left.

The data creation aspects of the asset viewer feeds our in game animation systems with data for the animations connected to a rig. This includes; the transitions that each of the animations can perform, the variables that can trigger the animations, such as an “aiming” state, Colliders connected to skeletons as well as the ability calculate out socket positions

The animation transition editor is based largely on Unity’s Transition editor; It allows a user to pick the two animations, and choose if the animation has an exit time as well as choosing the transition duration and the target animation time offset, this is driven by conditional bools that are saved into the animation set data which all instances of an animation will receive a copy.

The animation events system is based largely on my previous experience of creating animation tools for my previous 2D projects. You can read more about that here

 
 

Multiple lights

Fourthly multiple lights would allow an artist or technical artist to test their shaders and texturing with a number of different lighting options.

Animations by August Wahlberg

Animations by August Wahlberg

 
 
Previous
Previous

Monostein Engine

Next
Next

Model To Game-Ready Content Tooling