Crates.io | berdicles |
lib.rs | berdicles |
version | 0.3.0 |
created_at | 2024-06-26 19:27:23.280893+00 |
updated_at | 2024-12-11 02:37:10.92314+00 |
description | Expressive CPU particle system for the bevy engine. |
homepage | |
repository | https://github.com/mintlu8/berdicles |
max_upload_size | |
id | 1284802 |
size | 3,439,419 |
Instancing and projectile system for bevy.
Despite the name, berdicles
can do pretty much anything related to instancing,
for example render the same material with different colors.
The crate can create VFX such as particle systems, spawn hair or grass, manage projectile events, etc.
ProjectileRef
.Non-features
Add a ProjectileCluster
, Mesh3d
and InstancedMaterial3d
to an entity.
To create a ProjectileCluster
we need a ProjectileSystem
trait implementor and
a Projectile
type that it can spawns.
See the examples folder for more information.
Physics based particles is commonly seen in most particle system implementations, but they might be frustrating to work with in some situations. We provide alternative ways to implement particles, instead of defining things as velocities, forces or curves.
impl Particle for SpiralParticle {
fn update(&mut self, dt: f32) {
self.lifetime += dt;
}
fn get_transform(&self) -> Transform {
Transform::from_translation(
Vec3::new(self.lifetime, 0., 0.)
).with_rotation(
Quat::from_rotation_y(self.lifetime)
)
}
fn expiration_state(&self) -> ExpirationState{
ExpirationState::explode_if(self.lifetime > 8.)
}
}
bevy_hanabi
berdicle
is more of a projectile system since we have more control
over the simulation and the render pipeline.
Events can be easily extracted from berdicles
due to this fact. However,
for most VFX with no gameplay function,
bevy_hanabi
should be the superior choice.
bevy | berdicles |
---|---|
0.14 | 0.1-0.2 |
0.15 | 0.3-latest |
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.