Unreal Engine 5.4: Animation Deep Dive | GDC 2024
LEGO Fortnite: Behind the Scenes
Introduction to the Project
- Fredrik Nilsson introduces himself as a lead technical product manager in Unreal Engine and an animator, emphasizing his user-centric perspective.
- The team discusses their milestone achievement of fully rigging and animating LEGO Fortnite within Unreal Engine, allowing for redefined workflows.
Involvement of Team Members
- Jacob Buck shares his initial involvement with LEGO Fortnite, highlighting the potential of Control Rig's node-based workflow for animation.
- Buck acknowledges that while Control Rig was ready for production, the animation engine needed a project like LEGO Fortnite to showcase its capabilities.
Animation Style Development
- Scott Lemmer describes how he joined early in the project after working on collision events in Fortnite; he notes that the initial animation scope was simple yet ambitious.
- The team aimed to replicate the stop-motion style seen in The LEGO Movie, focusing on humor and fidelity to real-life materials without deformation.
Early Animation Tests
- Ed Fornoles conducted the first successful animation test entirely within Unreal Engine, confirming that animating in-engine was feasible.
- Buck mentions ongoing iterations on character rigs and collaboration with Fredrik and Ed during prototyping phases.
Evolution of Animation Style
- Lemmer explains that while they initially pursued a stop-motion aesthetic, playtesting revealed issues like motion sickness among players.
- To address gameplay fluidity concerns, they transitioned to a more fluid animation style which aligned better with other game elements running at higher frame rates.
Scaling Up Animation Efforts
- As content demands increased, so did the need for additional animators; establishing familiar tools became crucial for onboarding new team members.
Control Rig and Animation Tools in Unreal
Simplifying Character Animation
- The lack of character deformation simplified the implementation process, allowing artists to work more naturally within their viewport.
- Control Rig provides animators with flexibility and intuitive controls that encapsulate complex rig logic, enhancing usability.
- Proxy controllers enable non-keyable control manipulation, facilitating complex movements like body rocking through automatic pivot calculations.
Enhancing Posing Techniques
- Proxy controls offer multiple built-in pivots, making character posing feel more realistic and efficient for animators.
- The development phase was marked by excitement as new control rigs opened up innovative possibilities for animation techniques.
Overcoming Initial Hesitations
- Initial doubts about transitioning to new tools were addressed through discussions on project scope and animator needs.
- Concerns regarding the effectiveness of new tools were alleviated after feedback sessions highlighted the necessity of these changes.
Feedback and Development Process
- The project became a primary source of feedback for both rigging and animation tools, focusing on quality-of-life improvements for animators.
- Addressing initial pain points included enhancing selection methods, hotkeys, and introducing advanced tools like space switching.
Collaborative Approach to Tool Development
- A two-pronged approach was adopted where core functionality was developed alongside user-friendly interfaces tailored for animators' workflows.
Editor Utility Widgets and Animation Tools in Unreal Engine
Overview of Editor Utility Widgets
- Customization for Workflows: FREDRIK NILSSON discusses how new features in the engine come with exposed APIs, allowing studios to create tailored tools that automate or script their usage.
Animation Browser Tool
- Centralized Animation Management: JACOB BUCK introduces the Animation Browser, designed to provide animators a centralized location to view and manage animations, enhancing file organization through built-in versioning.
Impact on Animator Workflow
- Familiarity with Systems: SCOTT LEMMER emphasizes that using the engine helps animators become more familiar with its systems, leading to improved animation quality as they understand how everything integrates.
Linked Animation Sequences
- Seamless Updates: JACOB BUCK explains that linked animation sequences automatically bake animation data into sequences upon saving, streamlining the animator's workflow by ensuring updates are reflected instantly.
Customizable Animation Picker
- User-Friendly Design: The modular animation picker allows artists to utilize Blueprints for customization. It provides quick access to features like mirroring and flipping while integrating Unreal's pose library for enhanced usability.
Challenges in Animating LEGO Fortnite Characters
Unique Character Limitations
- Adapting Actions for Different Proportions: The team faces challenges due to LEGO figures lacking human-like joints (elbows, knees), requiring creative solutions to convey similar actions and emotions as Fortnite characters.
Outfit Conversion Process
- Using Mutable Technology: JACOB BUCK describes utilizing Mutable technology for runtime mesh and texture combinations, minimizing custom animations needed across various outfits from Fortnite’s extensive catalog.
Animation Techniques and Control Rigs
Texture-Based Facial Animation
- Performance Efficiency: The decision to use a texture-based approach for facial animations supports performance while maintaining material fidelity. This method allows quick outfit changes by swapping face atlases.
Flexible Control Rig Implementation
- Data Integration in Control Rigs: By embedding data assets into skeletal meshes, the team can create adaptable control rigs applicable across different models. This flexibility enhances procedural generation capabilities during runtime.
Terrain Adaptation for Quadrupeds
Adjusting Creature Behavior on Uneven Terrain
Animation Authoring Updates in Unreal Engine 5.4
New Features and Improvements
- Introduction of New Gizmos: The latest version introduces experimental manipulators with a new look and feel, featuring proper indirect manipulation and a new parent space option in the viewport, expanding beyond just local and world settings.
- Sequencer Enhancements: Significant improvements have been made to the Sequencer's appearance and functionality, including exposing previously hidden features as columns and icons next to tracks for easier access.
- Anim Details Window Update: The Anim Details window now displays transforms for all elements added to the Sequencer (props, cameras, lights), not just character controls. A new selection system is synchronized with the Curve Editor for better usability.
- Key Status Indicators: New indicators show whether a keyframe exists on the current frame, enhancing user awareness during animation editing.
- Overhauled Constraint System: The constraint system has been rewritten to save data directly into level sequences while still supporting level constraints outside of Sequencer. It allows changes during creation for more flexibility.
Layered Control Rigs
- Introduction of Layered Control Rigs: This new feature provides greater flexibility in posing and animating over incoming data without needing to bake it down first. Users can add layered rigs to modify existing animations easily.
- Excitement About New Features: Developers express enthusiasm about these updates, emphasizing their potential impact on animation workflows within Unreal Engine.
Workflow Improvements
- Seamless Animation Process: Scott Lemmer highlights how recent updates allow animators to work directly within the engine without needing third-party software or extensive back-and-forth processes between game simulation and animation adjustments.
- Feedback Encouragement: Users are encouraged to download Preview 1 of 5.4, experiment with its features, and provide feedback on their experiences.
Discovery of Efficient Workflows
- Animator's Happy Accident: An animator discovered that leaving the game running allowed them to see real-time updates while animating without restarting PIE (Play In Editor), significantly speeding up their workflow.
- Instant Playtesting Benefits: This newfound ability enables instant playtesting of animations within the game environment, which is invaluable for animators seeking immediate feedback on their work.
Acknowledgments
Introduction to Motion Matching in Fortnite
Overview of the Team and Goals
- Paddy Walker introduces himself as the Technical Product Manager of Gameplay Animation, alongside Samuele Rigamonti and Jose Villarroel, discussing their excitement about implementing motion matching in Fortnite and Unreal 5.4.
- The team successfully shipped motion matching for all players and NPCs across platforms, including Switch and mobile, marking a significant achievement.
Challenges Faced During Development
- Despite initial assumptions that implementing motion matching would be straightforward due to limited animations, the complexity arose from Fortnite's fast-paced gameplay requiring instant responsiveness.
- Traditional motion matching struggles with quality were compounded by Unreal Engine's rigid character movement model, which lacked customization options necessary for their goals.
- Existing game features like Icy Feet and Hot Pepper complicated the implementation of motion matching due to unexpected interactions with player movement dynamics.
Technical Difficulties Encountered
Specific Issues with Game Features
- The introduction of new elements such as a moving train platform highlighted issues where motion matching could not adapt effectively to changing velocities affecting player capsules.
Performance Requirements
- The system needed to be highly performant, memory-efficient, and user-friendly for artists while allowing scalability for various game visions.
Development Timeline Constraints
Time Limitations
- The development timeline was tight; after showcasing an internal prototype to Fortnite’s team, they requested its inclusion in Chapter 5 with only three to four months available for development.
Understanding Motion Matching Fundamentals
Definition and Mechanism
- Samuele Rigamonti explains that motion matching automates transitions between animation nodes based on scoring metrics derived from pose comparisons within a database.
Implementation Details
- A basic setup involves a character using an Animation Blueprint that integrates both a motion matching node and a pose history node for effective querying of animation data.
Database Schema in Motion Matching
Structure of Data Management
High-Quality Motion Matching Techniques
Introduction to Motion Matching
- The team opted against using dance cards, instead focusing on short animations with high connectivity for pose features like character fit positions and velocities. This approach facilitated automated transitions in motion graphs.
- Animations were organized into multiple databases driven by gameplay logic, allowing differentiation between start stops, idles, run cycles, and platform setups.
Challenges with Data and Motion Models
- Limited data sometimes poorly matched the twitchy motion model. The need arose to construct better motion matching queries that accurately reflected the variety of sample animation poses.
- Input trajectory generation was manipulated by mapping velocity and acceleration while filtering out unwanted input behaviors. Historical trajectory reconstruction was necessary for moving platforms.
Addressing Animation Shredding
- High-frequency animation shredding from motion matching stressed the initial inertial blend adopted. Continuous blending between dissimilar poses caused visible extrapolation defects in fast-moving limbs.
- A simple blend stack implementation was introduced to manage animation assets until blend weights faded away, leading to a dynamic interpolating blend tree used during asset selection.
Mitigating Discrepancies in Animation
- Blend profiles with faster speeds on the lower body helped reduce feet sliding during blends. Orientation warping adjusted selected animations towards requested input trajectories.
- Continuing Pose Bias was tuned to minimize animation shredding by favoring currently-playing animations over abrupt transitions into new ones.
Final Adjustments and Transition Management
- For looping animations, selection from the same asset was disabled, and a ring buffer tracked previously-selected poses to avoid unnatural repetition.
- Jose Villarroel transitioned the discussion towards layering techniques essential for scalable pipelines in live service games like Fortnite.
Layering Techniques in Motion Matching
Reworking Item Structures
- Hundreds of weapons and consumables had to be rebuilt using motion matching due to structural changes required for scalability.
- Prior to Chapter 5, Fortnite utilized per-item additive animations; now hundreds of individual animations could be created through motion matching without manual authoring.
Overcoming Authoring Challenges
- Two main challenges emerged: the impracticality of manually creating hundreds of additive animations within a season release timeframe and memory constraints necessitating a runtime procedural solution.
Prototype Development Process
- The prototype included an unarmed animation selected via motion matching, an idle frame for dynamic additive building, and static item poses layered on top.
- Custom nodes such as Bone Mask (for dynamic blending per bone node based on data-driven inputs), and Copy Motion (to extract transforms for scaling/reorienting before application), were developed.
Enhancing Animation Quality
- Earlier versions baked curves offline but switched to a random approach supported by post-history from motion matching that allowed real-time adjustments per item basis.
Procedural Layering Implementation
Motion Matching Implementation in Fortnite
Overview of the Content Pipeline
- The content pipeline was established, leading to the production and conversion of all items.
- Performance and memory challenges were addressed by separating motion-matching databases into dense (hundreds of animations) and sparse (less than 100 animations) sets.
- Animation compression improvements resulted in savings of up to 16%, allowing for additional slow walking animations.
Optimization Process
- Initial performance issues arose as the new system was almost twice as slow compared to previous seasons; optimization efforts began.
- A comprehensive optimization approach was necessary due to no single identifiable cause for performance degradation; various animation systems were improved.
- Post-optimization performance numbers matched previous seasons but included more post extractions and animations, with motion matching enhancing quality.
Final Adjustments and Community Feedback
- A significant code change by Jason Hoerner saved 17 megabytes, crucial for shipping the update successfully.
- Chapter 5 introduced movement model updates that faced community backlash; however, motion matching allowed quick adaptation with new run loop animations added within two weeks.
Future Developments in Motion Matching
- Motion matching will be available in Unreal Engine 5.4 as a production-ready feature, with plans for a learning project post-release.
- The learning project aims to provide structured resources and hundreds of free animations for developers at all levels, emphasizing accessibility.
Expansion Plans