Giter Site home page Giter Site logo

lukasfratzl / turbosequence Goto Github PK

View Code? Open in Web Editor NEW
159.0 7.0 29.0 606.91 MB

Skeletal Based GPU Crowds for UE5 ๐Ÿš€

Home Page: https://lukas-fratzl.com/turbo-sequence/

License: MIT License

C++ 99.49% C# 0.51%
animation skeletal-animation unreal unrealengine vats gpuinstancing ue ue5 ue5-plugin

turbosequence's Introduction

Turbo Sequence Overview

License GitHub release stars - Turbo-Sequence forks - Turbo-Sequence

Turbo Sequence is built to support a modern way to render Skeletal Meshes. It's using GPU Instancing with Niagara to manage draw calls efficiently, which is mostly the bottleneck of traditional rendering systems. Turbo Sequence is using bones to animate the meshes, which allow IK and layer mask blending per Bone.

A Crowd

What is Turbo Sequence

Turbo Sequence is a Plugin for Unreal Engine 5 which is Open Source with an MIT License. The advantage of using Turbo Sequence over VATs is that Turbo Sequence uses bone joint bending instead of pre-computed animations, which allows runtime bone joint bending like IK or Sockets. Turbo Sequence is trying to use Draw-Calls per archetype efficiently and not per instance, which has an advantage compared to traditional Skeletal Meshes.

Traditional Rendering:

CPU       GPU
         |
         v
Instance 1 (Mesh data 1) -> Draw call
         |                      |
         v                      v
Instance 2 (Mesh data 2) -> Draw call
         |                      |
         v                      v
Instance N (Mesh data N) -> Draw call

GPU Instancing

CPU       GPU
         |
         v
Base mesh data -> Draw call
                  | (all instances combined)
                  v
                  Rendered instances

TS is optimized for crowds around 10k - 50k, if you need more units, use VATs, Turbo Sequence is built to combine Animation Quality with Modern Rendering which means it is just as fast as the Quality of Bone joint bending allows it.

Features

  • Playing Animations
  • Stop Animation
  • Get IK Transform
  • Set IK Transform
  • Tweak Animation ( Speed, Weight, Start/End Transition )
  • Most Possible Skeleton Rig Support without Bugs
  • Blend Spaces
  • Switch Material
  • Switch Mesh
  • Editor UI
  • Windows Support
  • Linux Support
  • Dynamic Chunked Async Animation Loading
  • Get Socket Transform
  • Get Animation Curves
  • Root Motion
  • Animation Layer Masks Per Bone
  • Optimization: 16 or 32 bit Textures
  • Optimization: Smart Vertex iterations on the Material
  • Optimization: Update Groups
  • Smooth, Flat Normals
  • Level Of Details
  • Multi-Mesh-Character Animations
  • Blueprint Support
  • Hybrid Animation Mode between the UE System and the TS System
  • Add Instances
  • Remove instances
  • Per Instance Custom Data

Limits

  • Blueprint-only projects are not supported.
  • A Blueprint API Exists, but I highly recommend using the C++ API because it's so much faster.
  • Only Windows and Linux are supported, Not IOS and Android or Mac.

Quick Start Guide

  1. Download Turbo Sequence
  2. Install Turbo Sequence in your UE project in the Plugin Folder
  3. Open the Feature Demo Map and press Play
  4. Navigate to the Wiki to get started with the API

Download Turbo Sequence:

Navigate to the Releases and download the source of your Unreal Engine Version

Install Turbo Sequence:

  • Extract the TS Release on your Computer
  • Copy the extracted Root folder to the Plugin folder of your UE project.
  • Compile the Project and open it in Unreal Engine

Demo

Inside Unreal Engine, navigate to ..\Plugins\TurboSequence\Content\Demo and play through the demos; there is no additional setup required.

Docs

The official documentation and API can be found here:

view - Documentation

Support and Responsibility

Turbo Sequence is a Hobby Project, nothing commercial behind the Repo, the Contributors are not responsible for solving bugs for users of Turbo Sequence, features may or may not come; if you really need a specific feature, please fork the Repo and build your own system on top of it; and optional create a pull request if you really think it should be part of the original Turbo Sequence Repo.

If you encounter a bug, create an issue and when I have the time, I try to respond to it.

Contribution

Contributions are welcome; if you want to contribute, Fork the Repo, create an Exp Branch, and create a Pull Request from the Exp Branch. Pull requests need to be reviewed to maintain the quality standards of this Repo in terms of runtime performance and the UE Coding Standards.

forks - Turbo-Sequence

turbosequence's People

Contributors

lukasfratzl avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

turbosequence's Issues

Missing global shader FTurboSequence_Settings_CS_Lf's

UE Version 5.3 | Hotfix 2
Using the latest version:

Fatal error: [File:C:....\Engine\Source\Runtime\Engine\Private\ShaderCompiler\ShaderCompiler.cpp] [Line: 7480]
Missing global shader FTurboSequence_Settings_CS_Lf's permutation 0, Please make sure cooking was successful.
A breakpoint instruction (__debugbreak() statement or a similar call) was executed in Pulsar-Win64-DebugGame.exe.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.