The document below is a sample product for a Tech Art led interdisciplinary project.
It was developed to facilitate a meeting between team leads to “stack hands” prior to budgeting and planning. This represents a “scrappy” level of rigor, with a turn around time of 1 day between synthesis, conceptualization, and drafting.
Document Intent:
outlines a system according to the needs and concerns previously raised by art, design, and development teams
accommodates familiar workflows for input across different technical and creative disciplines
organize a proposed division of ownership and upkeep, explicitly defining roles and relationships
defines key system-related vocabulary to facilitate interdisciplinary communication
documents takeaways from preceding collaborative design session that informed the project and systems definitions
provides a glossary of terms that are likely to be unfamiliar across disciplines for technical, theoretical, or operational reasons
Systems Documentation and Dev Plan
System:
Notice for Teams Concerned:
Art Department - Animation Team
Art Department - Effects and Graphics
Design Department - Gameplay Systems Team
Design Department - Mechanics Design Team
Development Department - Gameplay Programming Team
Primary Point of Contact:
Manual Reload System
Chris Chung, Tech Art Team
Stated System Definition and Requirements:
Manual player control of reloading sequence
Gameplay Systems Design Team tunable base parameters for game feel and balance
Mechanics Design Team tunable upgrade and modifier [Interface]
Animation Team tunable procedural animation system
Effects Team [Effects Events] integration
The [Formal System] will manage input parsing, game-state, and parameter control
The [Representational System] will handle interpretation of [Formal System] parameters to procedurally animate the character
System Design Features:
Manual Reloading System will be divided into a [Formal System] and [Representational System]
The [Formal System] will have:
System Inspector Editor - an editor tool for systems designers to affect gameplay relevant state values (e.g. input rate scalars, success/fail rates, transition durations)
Modifiers Interface - an interface for mechanics designers to permit the game’s progression systems, items, status effects, etc. to modify base values using existing mechanical content tools
Animators and Effects Tools - a tool suite for artist to define positional targets on weapons, define secondary animation parameters and contextual secondary animations
The [Representational System] will be a "black box” design owned wholly by the Tech Art Team
Primary Animation will be driven by [IK Handles] to allow for contextual targeting irrespective of the weapon geometry
Animation Effects will be driven by Art Team controllable dynamic behaviors of [IK Targets] and [blendshape] behaviors
[Animation Map] allows artists to regain typically lost authorship of tweening between keyframes under typical procedural approaches and more nuanced timing and positioning of VFX events
Solution Tools and Terminology:
Tuning Profile
Allows for the external definition of base values for A-B testing, and transport across scenes
Exposes “modifier” layer values to simulate layered effects from upgrades, status effects, etc.
Animation Map
Variation of the Finite State Machine pattern’s state
Differentiated by different schedulable Update functions (e.g. InputUpdate(), ParametersUpdate(), AnimationEffectsProfilesUpdate(), etc.)
Each state manages a 0-1 progress value that can progress bidirectionally via InputUpdate() logic
Exposes, at the class level, the current state and associated progress value (for primary interpretation for animation)
Manages “Blackboard” style internally accessible parameters dictionary based on animation effects
Is pure data class constructed at runtime based on Animation Map Profile Scriptable Object
Animation Map Profile
Scriptable Object based object that allows for the construction of Animation Map (states) at runtime
Permits scheduling Pose Profiles along a 0-1 timeline to drive data for primary animation interpretation
Permits definition of [Easing] curves between Pose Profiles
Permits scheduling Animation Effects Profiles along 0-1 timeline to drive “Blackboard” dictionary parameter collection
Has independent collection for Animation Team and Effects team to simplify visual inspection and interference
Pose Profile
Scriptable Object based object that allows for the definition of multi-context positioning
Has “key” based context definition (e.g. “Player” would use the active player’s character transform’s position and orientation as a reference, but “Weapon” would use the weapon’s transform, and “PlayerPack” could reference the player’s backpack object’s transform.
Allows for the definition of a position, rotation, and scale in local space for each pose.
Animation Effects Profile
Scriptable Object based object that allows for the definition of support effects for animation tuning
Exposes a collection of “effects options” for scheduling — for example:
Blendshape - define blendshape by name, min and max value slider, and rule options like “simple remap” where the blendshape’s value range is mapped over the associated Animation Map’s 0-1 progress value
IK Target - define an IK Target by name, a transform reference for local space context, and desired local space position and orientation
Effects Events - define an visual or audio effect by name, and drop down rule options with editing options like “trip rate” which will fire the event if the Animation Map progress value crosses the trip value at a rate exceeding the defined value
Team-based Ownership Plan:
Gameplay Programming Team
Initial Design and Development of [Formal System]
Gameplay related functionality
Definition of base tuning parameters scriptable object for mechanical tuning
Integration into existing modifier systems (e.g. progression system, upgrades, status effects, etc.)
Definition of generic empty base class for Tech Art team to extend for Art Team usage (requirements below)
Upkeep of [Formal System]
Portions of the formal system that directly affects gameplay
Debugging of mechanical behavior
Animation Team
Meshes
Rigging, armature conventions, and deformation compensation blend shapes
Procedural Animation Posing and Targeting
Targeting of [IK Handles] on weapons and characters
Animation Map Profile Creation and Tuning - Secondary Animation Effects
Definition of profiles for blendshape parameters and behaviors along animation maps
Tuning of behaviors for animation quality
Bug reporting to Tech Art Team
Effects Team
Animation Map Profile Creation and Tuning - VFX Events
Definition of profiles for VFX events, including VFX event triggering timing, and firing/canceling logic
Bug reporting to Tech Art Team
Gameplay Systems Design Team
[Formal System] State Design
Definition of mechanical states, desired input schema, state transition relationships, and transition behavior (e.g. delays, cancelable, etc.)
Ownership of the tuning and upkeep of base values of the system
Definition of permissible behaviors in each state, as well as expected representational behavior (e.g. grabs magazine at 0, flare elbow at 0.25, extract magazine at 0.5, recovery from 0.5 - 1)
Bug reporting to the Tech Art Team
Mechanics Design Team
Mechanical Content Design
Bug reporting to Gameplay Programming Team
Tech Art Team
Initial design, development, and upkeep of the [Representational System]
Architecture and development of Manual Reloading System’s animation
Integration into animation systems complex
Upkeep of [Formal System]
Extension of existing system to interpret gameplay parameters for animation
Tooling
For Gameplay Systems Design Team:
Custom Inspector Editor for Scriptable Object Profiles to control Formal System base parameters
Custom Inspector Editor to inspect Formal System states
For Animation Team
Targeting tool for posing to store in Pose Profile Scriptable Objects
Scheduling and Definition tool for Secondary Animation Effects to visually script, edit, and modify Animation Effects Profiles
0-1 timeline with numbered nodes
Associated node editing - plain language, numerical, and drop down based effects editing
For Effects Team
Scheduling and Definition tool for Animation Effects Map Effects to visually script, edit, and modify Animation Effects Profiles
0-1 timeline with numbered nodes
Associated node editing - plain language, numerical, and drop down based effects editing
Simulation Scene
Customized Simulation scene to tune profiles and scheduling without interfering game systems
Research and Ideation Notes (Design Context):
Manual Reload System Design:
Manual Reload System (New Feature) was selected to enhance [Panic] and [Skill Ceiling]
Key referents include “Receiver”, “Far Cry 2”, “Metro”-series, and “Escape from Tarkov”
Referents Selection:
Receiver - procedural parametric animation system is expressive and light weight
Far Cry 2 - wear and tear weapon stats modification is inspiration for key formal mechanical parameters
Metro - ammo conservation and [Manual of Arms] variants can help create phenomenological variance between weapons
Escape from Tarkov - magazine management and vulnerability during reloading aligns with key aesthetic of [Panic] and is a vector for raising player [Skill Ceiling]
Key Features and Approaches:
Animation - a procedural approach was selected over baked animations for the following reasons:
Flexibility - Pre-production support via light-weight visual feedback for design teams
Cost - Production phase control by removing need for external animation out-sourcing
Expressiveness - Pose-blending allows for infinite variants along parametric spectrums
Designer-facing tooling concerns - workflow and scaling considerations for the design teams:
Weapons Prototyping - designers need to be able to define key spatial reference points on weapons, as well as parameters for animation system
Reloading Mechanical Feel - designers need flexibility to tune underlying values between 0-1 parametric values without breaking underlying animation algorithms (e.g. PID controls)
Systems Tuning - designers need to be able to easily create, modify, and destroy new status effects, abilities, and player progression stats that interface with reloading system
Artist-facing tooling concerns - workflow and iteration considerations for art teams:
Posing Workflow - artists require FK/IK tooltips to remind animators what parameters are allowed to be tuned for each animation layer to minimize errors
Blendshape Support - artists require hookups for [blendshape] interpolation and falloffs to control for rig deformations
Graphics and Effects Support - art team requires the ability to create events along [animation maps], and define selective conditions to cancel event calls
Interdisciplinary Terms Glossary:
Interface - Programming term for standardized defined exposed functions
Effects Events - Art team reserved technical term for event system’s event class; used to drive VFX events and pass essential event data [Dev Team Note: not tied to gameplay event manager]
Panic - Key game aesthetic — not used in Game Design MDA Framework usage of “aesthetic”
Skill Ceiling - Game design term for how far player skill can be used to formally affect play outcomes
Manual of Arms - Borrowed keyword referring to the standardized trained actions associated with the operation of a specific weapon platform — Game design term for mechanics associated with firing, reloading, unjamming, etc.
Blendshape - A 3D model affordance where a mesh can be deformed using string-based name keyed 0-1 parameters; does not use but can be modified by armature/rig/bones
Animation Map - Tech art team reserved term defining new procedural animation system paradigm; defined above
Formal System - In programming terms, the “controller” that manages the logic behind the mechanic
Representational System - Systems responsible for interpreting the game state into relevant output — in this case procedural animation
IK Handle - Animation tech concept; the in-engine spatial transform (position, rotation, scale) reference that defines where end effectors (hands, feet, eyes, etc.) will be placed
IK Targets - Animation tech concept; the in-engine spatial transform (position, rotation, scale) reference that is used by the solver to define FK joint rotations necessary to calculate discrete solution for end effector (i.e. the position the elbow should be closest to when the hand is at the desired position