9 releases (breaking)
0.8.0 | Nov 14, 2023 |
---|---|
0.7.0 | Jul 15, 2023 |
0.6.0 | Mar 7, 2023 |
0.5.0 | Dec 6, 2022 |
0.3.0 | Jun 13, 2021 |
#927 in Game dev
29KB
214 lines
bevy_vox_mesh
A plugin for the bevy engine which allows loading magica voxel .vox
files directly into usable meshes. This uses mesh vertex coloring.
Bevy compatibility
Bevy version | Plugin version |
---|---|
0.5 | 0.1, 0.2 |
0.8 | 0.4 |
0.9 | 0.5 |
0.10 | 0.6 |
0.11 | 0.7, 0.7.1 |
0.12 | 0.8 |
Usage
use bevy::prelude::*;
use bevy_vox_mesh::VoxMeshPlugin;
use std::f32::consts::PI;
fn main() {
App::default()
.add_plugins(DefaultPlugins)
.add_plugin(VoxMeshPlugin::default())
.add_startup_system(setup)
.run();
}
fn setup(
mut commands: Commands,
mut meshes: ResMut<Assets<Mesh>>,
mut stdmats: ResMut<Assets<StandardMaterial>>,
assets: Res<AssetServer>,
) {
commands.spawn(Camera3dBundle {
transform: Transform::from_xyz(-2.0, 2.5, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
..Default::default()
});
commands.spawn(PbrBundle {
transform: Transform::from_scale((0.01, 0.01, 0.01).into())
* Transform::from_rotation(Quat::from_axis_angle(Vec3::Y, PI)),
mesh: assets.load("chicken.vox"),
material: stdmats.add(Color::rgb(1., 1., 1.).into()),
..Default::default()
});
}
Take a look in the examples/
directory for a complete working example.
Acknowledgements
This asset loader is powered by the awesome block-mesh-rs
crate.
Ported to bevy 0.12.0 thanks to @baranyildirim.
Dependencies
~37–72MB
~1.5M SLoC