Skip to content

Full featured property based Animation System #1429

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 173 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
173 commits
Select commit Hold shift + click to select a range
9e0582c
skinned mesh import + basic startup system
Nov 7, 2020
8ddab67
working towards a generic animation system
Nov 8, 2020
93ebe53
loading animations from gltf
Nov 9, 2020
41b5fef
feching properties
Nov 9, 2020
ffa6ad3
working animations!
Nov 11, 2020
09f85d0
Merge branch 'master' of github.com:bevyengine/bevy into animations
Nov 14, 2020
3abe4d1
missing merge changes
Nov 14, 2020
474a6ce
testing some ideas and profiling animation
Nov 18, 2020
1ef529e
Merge branch 'master' of github.com:bevyengine/bevy into animations
Nov 18, 2020
46274ca
fix dup children
Nov 21, 2020
ce60d3b
(wip) major rewrite
Nov 22, 2020
95430a0
major rewrite works but it seems something is not right
Nov 23, 2020
2132691
fix bad bind meta range + some api changes
Nov 23, 2020
b16d25a
comments and extra assertion to avoid dangle pointers
Nov 23, 2020
e1ff392
tests + revert mods in bevy_properties + bit more apis
Nov 23, 2020
8b23ab7
more tests + api changed + extra asserts
Nov 24, 2020
6694ed7
reverse time sampling + comments
Nov 24, 2020
682e720
name component with hash (faster eq) + refactor
Nov 24, 2020
dbe08d6
fixed nlerp (always take the short path) + animation blening
Nov 25, 2020
acc1b33
most comments
Nov 26, 2020
71ed2d6
bench + optimizations
Nov 27, 2020
7aa7d69
binding rewrite, support for rebind attrs + NamedHierarchy
Nov 29, 2020
3c99600
handle nested clip properties + hierarch tests
Nov 29, 2020
3e3c112
handle parent change + tests
Nov 29, 2020
c121980
added children info in named hierarchy (now just hierarchy)
Nov 30, 2020
4309611
mesh skining + named hiearchy can be built from array to preserve ord…
Dec 5, 2020
5139d2e
refactor hierarchy + docs
Dec 5, 2020
740a8b4
working on a custom animator like the original bevy_animator
Dec 5, 2020
62954ba
strip curve and clip into separated files, concept proof of a safer s…
lassade Dec 5, 2020
a4fd669
working on a new clip format
lassade Dec 6, 2020
866a441
still working on a safer and faster alternative
lassade Dec 6, 2020
3258b89
trying the safe replacement function parity done
lassade Dec 6, 2020
1d8fe77
small optimizations
Dec 6, 2020
9842c03
changed the clip format, but still about the same perf
Dec 7, 2020
463ee34
last bits of optimization
Dec 7, 2020
efec93e
todos
Dec 7, 2020
551486b
merge 2 hierarchies together + comments + todos
lassade Dec 7, 2020
c0c2e5e
expose relevant clip api + comments
lassade Dec 7, 2020
4b89386
successfully mergin hierarchies (and tests)
lassade Dec 7, 2020
d856190
comments + ptr hasher (performance tests needed)
lassade Dec 8, 2020
789b3ad
tested some hashers (fnv won)
Dec 8, 2020
ee1c4f5
proper layer blending functions for boolean and handles
lassade Dec 8, 2020
603f268
lazy feching components (proto type)
lassade Dec 8, 2020
20d6611
lazy fetching wasn't a good idea after all
Dec 8, 2020
c44cf1e
animator merged hierachy
Dec 8, 2020
3117811
handle clip changed, parent and name changes, prefering tracing span
Dec 9, 2020
c59e4a8
proper keyframe caching
Dec 9, 2020
03deddc
added simple animation example
Dec 10, 2020
c14f9dd
coments and experimental features
lassade Dec 10, 2020
0ce1a0e
Merge branch 'animations' of https://github.com/lassade/bevy into ani…
lassade Dec 10, 2020
4a4d574
Merge branch 'master' of https://github.com/bevyengine/bevy into anim…
lassade Dec 12, 2020
6723bfe
fix skinned shader
lassade Dec 19, 2020
2aabf86
tests and fixes
lassade Dec 20, 2020
9a5fd37
forget to add help::Empty component
lassade Dec 20, 2020
28bb39d
dont care isn't needed
lassade Dec 20, 2020
0555841
notes + empty derive crate
lassade Dec 21, 2020
ea93036
animatior update systems runs in parallel, app functions and animated…
Dec 22, 2020
a77f40a
keyframe now respects cache line boundary (that was a bit hard)
Dec 22, 2020
4120c33
force keyframes to be aligned into cache lines
Dec 22, 2020
681d009
impls for some types, derive and other stuff
Dec 22, 2020
fbee3b9
expand attr for component derive + comments about other stuff
Dec 23, 2020
7f790a5
wip type safe animated properties
Dec 24, 2020
d989f11
hierarchy assert
Dec 24, 2020
8b23ea6
clean up and comments
Dec 25, 2020
8e58b7f
wip animator properties derive
Dec 25, 2020
5d9aa59
fix gltf loader
Dec 25, 2020
3ddf17e
type safe properties and derive trait
Dec 25, 2020
2310e5f
basic checks for unregistered clip properties
Dec 25, 2020
dbad8c9
faster lerping blend
Dec 26, 2020
5ee3daa
note on dynamic props
Dec 27, 2020
7dc1eb2
wip derives
Dec 27, 2020
43a80fa
reflect animation
Dec 27, 2020
87575f7
custom animated types
Dec 27, 2020
91f5787
cleanup
Dec 27, 2020
dd69b75
cleanup and small changes
Dec 27, 2020
b9003d1
evaluating missing functionality
Dec 27, 2020
fd5da14
polishing the reflect implementation
Dec 28, 2020
c1efd41
getting rid of the derive crate
Dec 28, 2020
a039adb
better warnings
Dec 28, 2020
2b304e0
moved short_name to a common place
Dec 28, 2020
9738c10
better shorten_name supports generics, better error messages
Dec 29, 2020
f371954
animate assets (untested) + refactor
Dec 30, 2020
10c8f03
fix animate assets + lazly cache assets and clips + comments and docs
Dec 30, 2020
66adee8
safety rules + docs
Dec 30, 2020
4b05519
extra assert
Dec 30, 2020
07532ee
organizing a bit
lassade Dec 31, 2020
80b6b87
useful curve links + more org
lassade Dec 31, 2020
2be1d5e
remove comments
Dec 31, 2020
46d1aef
Merge branch 'animations' of github.com:lassade/bevy into animations
Dec 31, 2020
295f4f2
using quake 3 fast inverse sqrt, removed layers weight normalization
Jan 4, 2021
16d6e18
comments
Jan 5, 2021
3cb9b07
small fixes for curve clamp
Jan 5, 2021
1dd3c2a
animator bench
Jan 6, 2021
29b5dff
fix bench asset path
Jan 6, 2021
cf0307d
animator bench
Jan 7, 2021
c955843
adding multiple track types
Jan 9, 2021
5e30185
wide track types and benches
Jan 9, 2021
1f43220
sampler, clean up and first pr draft
Jan 21, 2021
81ebe27
added multiple track types support
Jan 30, 2021
cc85a7b
added support for multilane track (extra overhead for single lane tra…
Jan 30, 2021
93b1af2
reduce multilane track overhead
Jan 30, 2021
9f392e0
primitive clip packing
Jan 30, 2021
20bcf2f
additive blending
Jan 30, 2021
09d10fc
add weights in aditive blending + pr.md
Jan 30, 2021
d0b51e4
Merge branch 'animations'
Davier Feb 11, 2021
853411a
Merge branch 'animations'
Davier Feb 11, 2021
8f5897c
Merge branch 'animations_new' of https://github.com/Davier/bevy into …
Feb 14, 2021
f2b0448
add a skinning system to fix animation lag and give space for a proce…
Feb 14, 2021
12edbc9
rename haedless param of animator plugin to skinning
Feb 14, 2021
4d26d85
rev 1
Feb 14, 2021
ccb35cc
more examples to animate handle and theirs properties
Feb 15, 2021
88f26ec
fixed clippy errors
Feb 17, 2021
8cc5580
port to CoreStage
lassade Mar 4, 2021
fc5a08c
Merge branch 'main' of github.com:bevyengine/bevy into animations
lassade Mar 5, 2021
e43545b
Merge branch 'main' of github.com:bevyengine/bevy into animations
lassade Apr 5, 2021
db5bf87
update skinning vert shader
lassade Apr 5, 2021
511c8be
named hierachy
lassade Apr 5, 2021
b9566b7
clippy fix
lassade Apr 6, 2021
3e92132
mesh vertex attributes for skinning and animation
lassade Apr 6, 2021
202ed1d
better attributes names
lassade Apr 6, 2021
3c3eaca
curves and lerp
lassade Apr 6, 2021
0202fc7
cleanup and NO_PARENT const
lassade Apr 6, 2021
2bf6f26
Merge branch 'main' into named-hierarchy
lassade Apr 6, 2021
5414266
Merge branch 'main' into curves-and-lerp
lassade Apr 6, 2021
acbab8a
docs
lassade Apr 6, 2021
e18b222
lerp unclamped, lerp handle, fix clippy errors
lassade Apr 7, 2021
ef099d5
Merge branch 'curves-and-lerp' into animations
lassade Apr 11, 2021
30dea54
Merge branch 'named-hierarchy' into animations
lassade Apr 11, 2021
38f64ee
Merge branch 'vert-attrs-for-skinning' into animations
lassade Apr 11, 2021
3fdaf9e
upgrate to 0.5, depend of pr's #1830 #1837 #1831
lassade Apr 11, 2021
99883b0
fixed animations, skinned mesh and gltf load
lassade Apr 11, 2021
f52dc95
fix tests
lassade Apr 11, 2021
cd60401
fix clippy issues
lassade Apr 11, 2021
9a466fe
fix clippy issue
lassade Apr 11, 2021
b697427
clippy please
lassade Apr 11, 2021
d3757a4
redesign of `CurveVariable`, fix wording
lassade Apr 13, 2021
2a02a12
update auto tangents
lassade Apr 14, 2021
81a2c08
curve variable example
lassade Apr 15, 2021
9e8b537
fix smooth interpolation
lassade Apr 15, 2021
2d1864c
curve editing functions
lassade Apr 16, 2021
bf417aa
curve variable getters
lassade Apr 17, 2021
5593700
error handling
lassade Apr 17, 2021
6857f54
fix clippy error
lassade Apr 17, 2021
e140a21
Merge branch 'main' into curves-and-lerp
lassade Apr 17, 2021
b36cd7d
fix tests
lassade Apr 17, 2021
281a912
force ci to rerun
lassade Apr 17, 2021
00a6f57
curve variable bench
lassade Apr 17, 2021
d7306a1
soa is better for random sampling
lassade Apr 17, 2021
f7a0bb4
remove unused variables
lassade Apr 17, 2021
d564c53
fix set_time and auto tangent
lassade Apr 18, 2021
69587dc
fmt + clippy
lassade Apr 18, 2021
8953ef7
renamed curve algo
lassade May 2, 2021
d765128
Update examples/README.md
lassade May 6, 2021
ab7f8ac
fix step function and cmp interpolation enum
lassade May 8, 2021
d5ad840
fix set free tangents and comments
lassade May 9, 2021
88347b5
Merge branch 'main' of github.com:bevyengine/bevy into curves-and-lerp
lassade May 9, 2021
63aca45
add thiserror crate
lassade May 9, 2021
fbec101
fix samples
lassade May 9, 2021
dc4d43b
fix error typo
lassade May 9, 2021
960aff4
idiomatic Option<T> lerp impl
lassade May 9, 2021
07c11d8
fix build errors
lassade May 9, 2021
df986e3
must use keyframe insert builder
lassade May 9, 2021
6693aaf
fix keyframe insertion
lassade May 9, 2021
6b41003
Merge branch 'curves-and-lerp' into animations
lassade May 10, 2021
cb9e1f6
fix merge
lassade May 10, 2021
c4ee420
fix format
lassade May 10, 2021
5646db6
fix clippy errors
lassade May 11, 2021
724ffc8
Merge branch 'main' of github.com:bevyengine/bevy into animations
lassade May 18, 2021
475c514
fixed handle Relfect impl
lassade May 18, 2021
a7c6c5b
Merge branch 'main' of github.com:bevyengine/bevy into animations
lassade May 20, 2021
91ed51d
bump glam version, fix Quat conversions
lassade May 20, 2021
0484f9d
fix license
lassade Jun 1, 2021
0a67f62
load clip name
lassade Jun 1, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ default = [
"bevy_audio",
"bevy_dynamic_plugin",
"bevy_gilrs",
"bevy_animation",
"bevy_gltf",
"bevy_wgpu",
"bevy_winit",
Expand All @@ -41,6 +42,7 @@ dynamic = ["bevy_dylib"]
render = ["bevy_internal/bevy_pbr", "bevy_internal/bevy_render", "bevy_internal/bevy_sprite", "bevy_internal/bevy_text", "bevy_internal/bevy_ui"]

# Optional bevy crates
bevy_animation = ["bevy_internal/bevy_animation"]
bevy_audio = ["bevy_internal/bevy_audio"]
bevy_dynamic_plugin = ["bevy_internal/bevy_dynamic_plugin"]
bevy_gilrs = ["bevy_internal/bevy_gilrs"]
Expand Down Expand Up @@ -474,6 +476,24 @@ crate-type = ["cdylib"]
name = "android"
path = "examples/android/android.rs"

[[example]]
name = "run_animation"
path = "examples/animations/run_animation.rs"

[[example]]
name = "mesh_swap_animation"
path = "examples/animations/mesh_swap_animation.rs"

# TODO: Enable once Color is sort out
# [[example]]
# name = "material_animation"
# path = "examples/animations/material_animation.rs"

# Animation
[[example]]
name = "smooth_curves"
path = "examples/animations/smooth_curves.rs"

[package.metadata.android]
apk_label = "Bevy Example"
assets = "assets"
Expand Down
Loading