Bake Your Animations to Greatly Improve Performance...For Some Use Cases | Unity Tutorial @LlamAcademy
Bake Your Animations to Greatly Improve Performance...For Some Use Cases | Unity Tutorial  @LlamAcademy
Uploaded November 2022 | Updated September 2026, 2 hours ago
In this Unity tutorial you will learn how to bake animations as a series of "snapshots" of meshes. These snapshots can be taken at a configurable framerate that suits your game.

The concept here is attacking a similar problem as Animation Instancing: blog.unity.com/technology/animation-instancing-instancing-for-skinnedmeshrenderer, but is still handled by the CPU and does not require any "shader magic" to manipulate the vertices.
It also does not reduce the Draw Calls, as Animation Instancing will do. Instead, this approaches the problem by resolving the "CPU Skinning" taking up a lot of CPU time on the main Unity thread to improve FPS.

This can be taken one step further to batch all the meshes into a single draw call per material via Graphics.DrawMeshInstanced(): docs.unity3d.com/ScriptReference/Graphics.DrawMeshInstanced.html
Strangely, with my initial attempt, the performance was actually worse than what is implemented here. I didn't have time to dive into that and the performance here was "good enough" for my use case.

๐Ÿ”ถ ALL THINGS LlamAcademy now available at: https://llamacademy.dev/support including latest tutorials, courses, ways to support, and more! Check it out ๐Ÿ™‚
๐Ÿ‘จโ€๐Ÿ’ป Get the FULL FREE PROJECT on GitHub: github.com/llamacademy/baked-animation-meshes
๐Ÿท๏ธSave 25% on the ultimate C# IDE: JetBrains Rider with code LLAMACADEMY: jetbrains.com/store/?section=personal&billing=yearly

๐Ÿ“š Resources
๐ŸŸ  Bake Skinned Mesh Renderer Mesh: docs.unity3d.com/ScriptReference/SkinnedMeshRenderer.BakeMesh.html
๐ŸŸ  Graphics Draw Mesh Instanced: docs.unity3d.com/ScriptReference/Graphics.DrawMeshInstanced.html /
๐ŸŸ  Animator Play: docs.unity3d.com/ScriptReference/Animator.Play.html
๐ŸŸ  Animator Update: docs.unity3d.com/ScriptReference/Animator.Update.html
๐ŸŸ  "Woodsman the Peasant" video that inspired this one: youtube.com/watch?v=DMdncCPpjyE

Some links may be affiliate links, which at no additional cost to you, gives me a small portion of the purchase.

Chapters:
00:00 Problem Statement - SkinnedMeshRenderers at Scale.
01:01 A Solution - Precomputed or "Baked" Animations
02:16 Key Components - AnimatedMeshScriptableObject.cs
02:21 Key Components - AnimatedMesh.cs
02:55 Creating Baked Animations with an Editor Script
03:46 Bake Your Animations!
05:23 Animator Considerations when Baking
06:37 Become a Supporter!
07:03 When is this a viable option, and when is it not?
Bake Your Animations to Greatly Improve Performance...For Some Use Cases | Unity TutorialAdvanced Lerping | Unity Tutorial #ShortsUnity Scene Transition Animation Framework | Unity Tutorial #shortsEnemy Behavior Tree AI FULL IMPLEMENTATION (AI Tree) | AI Series 48 | Unity TutorialWhy New WRITING CODE is a CRITICAL SKILL for Game DevsStatic vs Instances | Unity C# Basics Part 4While upgrading from Built-In Pipeline to URP I found an issue with the Decal Projector #ShortsCinemachine Transposer & Composer for Top-Down Object Targeting | Unity TutorialHow to Implement a Touch Movement Joystick Using the New Input System | Unity Tutorial #shortsAnimator Transition Interrupt Sources, Explained | Unity Tutorial #shortsAdvanced NavMesh Usage - Beyond Simple SetDestination | Unity Tutorial4 Unity Destruction Libraries Compared - Which is best for you?
LlamAcademy |

Bake Your Animations to Greatly Improve Performance...For Some Use Cases | Unity Tutorial

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER