An open API service indexing awesome lists of open source software.

https://github.com/voxell-tech/bevy_motion_matching

Motion matching enables characters to smoothly transition between animations by finding the best matching pose and trajectory from an extensive database, without the need to create state machines.
https://github.com/voxell-tech/bevy_motion_matching

3d-animation bevy bevy-engine motion-matching

Last synced: 11 months ago
JSON representation

Motion matching enables characters to smoothly transition between animations by finding the best matching pose and trajectory from an extensive database, without the need to create state machines.

Awesome Lists containing this project

README

          

# Bevy Motion Matching

> [!Note]
> This project is being split up into library and example crates, to be published on [crates.io](https://crates.io).
> If you are interested in helping out, feel free to [reach out](#community).

Motion matching enables characters to smoothly transition between animations by finding the best matching pose and trajectory from an extensive database, without the need to create state machines.
Gameplay logic can be embedded side by side with motion matching by querying animations with the desired attributes.

## Showcase

### Configuration

![config](./.github/assets/config.png)

### Play Mode

![play-mode](./.github/assets/play-mode.png)

## Development

### Prerequisites

- Rust
- MSRV: v1.85.0
- Cargo
- Linux: [Bevy dependencies](https://github.com/bevyengine/bevy/blob/main/docs/linux_dependencies.md)
- Optional, for the Visual Studio Code `start` task: `cargo-watch`
- `cargo install cargo-watch` or `cargo binstall cargo-watch`

### Building

```bash
cargo build
```

### Running

```bash
cargo run --features bevy/dynamic_linking
```

## Community

- [Voxell Discord server](discord.gg/Mhnyp6VYEQ)

## Reference

- [Learned Motion Matching](https://static-wordpress.ubisoft.com/montreal.ubisoft.com/wp-content/uploads/2020/07/09154101/Learned_Motion_Matching.pdf)
- [Machine Learning for Motion Synthesis and Character Control](https://www.youtube.com/watch?v=zuvmQxcCOM4)
- [LAFAN1 Animation Dataset](https://github.com/ubisoft/ubisoft-laforge-animation-dataset)
- [Unity Kinematica](https://docs.unity3d.com/Packages/com.unity.kinematica@0.8/manual/index.html)

## License

`bevy_motion_matching` is dual-licensed under either:

- MIT License ([LICENSE-MIT](LICENSE-MIT) or [http://opensource.org/licenses/MIT](http://opensource.org/licenses/MIT))
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0))

This means you can select the license you prefer!
This dual-licensing approach is the de-facto standard in the Rust ecosystem and there are [very good reasons](https://github.com/bevyengine/bevy/issues/2373) to include both.