XboxColorTool.jpg

Xbox Controller Color Tool

XboxColorTool.jpg

For the new generation of Xbox Controllers, I was tasked to create a Maya Template with the evergreen camera angles and approved lighting that will be used to render all the following controllers for this generation, which are years to come.

The template consisted of 3 lighting system for light, mid and dark colors, light positions were consistent for each camera angle but their intensity was adjusted for each of the lighting system. Additionally the template had 6 camera angles keyed in frames to import as a render sequence in Nuke, with a total of 18 different renders for all 3 lighting systems.

Previously these templates were done on 3 different Maya files one for each lighting system, but often we found that some colors work better on a different lighting system that was initially planned. I proposed a single template where we can test all lighting systems and be able to create new templates for new patterns or materials, this was the conception of the Xbox Controller Color Tool.

Xbox Color Tool Timelapse

 

Building the Template

The most challenging aspect of building the template was to bring all 18 individual maya files, each addressing particual client feedback to lock the visual style for the controller renders. Even though I tried to keep light consistency across the 3 initial controllers that ended up defining the lighting template (robot white, carbon black and shock blue), there were specific lighting notes for each lighting system.

Scripting came in handy to compare all light positions across all files, identify consistent and unique lights positions, light links and material details. At the end the template consisted of +180 lights for all 6 angles.

Technical Details

Color_Tool_UI.jpg

The Color Tool was developed in Python using the Pyside2 module for the UI. It reads and writes JSON files with all node attributes relevant to the template, this allows to load the 3 default templates (light, mid and dark) and save new custom templates. It gives you the option to load light, color and materials attributes all together or individually from existing templates or custom “Load” settings.

It is a robust tool built for rapid iteration and constant implementation. It can set up any color combination in the interactive render, the color attributes control color constants for each of the controller components, there is also a master color and default Xbox colors for the button letters.

It provides a diffuse and specular multiplier which allows to control those attributes for all lights or specific light groups.

Additional features include switching geometry parts for special edition controllers and transfer light links for new geometry.

Technical challenges for developing the tool was implementing linear to sRGB functions to pass color, creating an environment variable to identify the last used lighting template to continue using the Color Tool, setting the diffuse and specular multipliers to read from JSON files to keep a consistent value, and reading and mirroring files from the server to have a consistent template and saved settings across users.

I had a few more ideas to extend the tools to non-3D users for testing colors, this will be accomplished by creating an evergreen job in deadline that reads RGB colors from an excel sheet and renders low res images for rapid feedback. Unfortunately was not implemented for quality control from the 3D team.