Character Creation in PokerVR

PokerVR has vast range of avatars and development cycle of adding new avatars for testing and later for production was fast and adding new avatar requires updating new fbx model and recreating new prefab which was time consuming and error prone. Manual integration takes more or less one hour and after integration all avatars needs to be QA again. There has been many iterations on new avatar before they go into production.

The need was arise to create automation system for character integration, goal was to create an automation system which is

  • Designer friendly
  • Easy to add new characters
  • Handles Creation of Prefab for different platforms like Rift & Gear
  • Gives visual indications if fbx model is not exported correctly.
  • Make iteration process faster

Demo of Character Creation Tool

Character Customization system is divided into four major modules

  • Meta classes
  • Editor window
  • Loader & Initializer
  • Customization Module

Meta/Model Classes:
These classes used to hold data related to different modules, Editor window is used to update these meta classes and Loader & Initializer module create new prefab utilizing these classes and last but not least Customization Module uses this meta information to make different customization in game.

customization_model_class
Model classes for storing data

For saving meta classes XML serialization is used instead of json & scriptable objects, XML file is easy to read & modify if you need to update some data from file as XML use begin & end tags.

Editor Window
It is divided into different sessions and each session has different tabs.
Character’s List: It contains list of all avatars and avatar related properties which are unique to every avatar and you can remove and added new avatars. Major properties are mesh references of avatar’s body and facial hair from fbx model.

customization_unique_parts_0
Added Characters are on the left   

Common Properties

it contain common and global properties which has following tabs

  • Inverse Kinematics (IK) contains references of Avatar rig for IK system
  • Hair contains mesh references of all Hair meshes
  • Shirts contains mesh references of all shirts
  • Anchors contains json string of anchors which needs to be created at run-time while creating prefab, such as left & right hand gun anchors.
Anchor_3
Json Object to create Anchors at run-time
  • Pants contains references of pants meshes
  • Materials contains path of materials for Rift & Gear
customization_common_parts_1
Character Creation Common Properties view

Loader & Initializer

Loader is responsible for loading meta files and caching all references of mesh & rig from fbx model where as Initializer’s job is to attach character related scripts to newly created prefab, assign references and initialized them to required value and assign materials to meshes.

Customization Module
it is used to customize the avatar at run-time i.e in game, it looks like this.

charactercustomization_class
Character Customization Class 
customization_commands
Commands for Updating customization

After development of Customization Tool, we were able to add new avatar within 5 minutes via couple of click.

Leave a comment