Bevy は、Rust言語で開発されたゲームエンジンのことです。
環境
Windows 11 Home 23H2
Rust 1.76.0
Bevy 0.12.1
Cargo プロジェクトの作成 Bevy は Cargo でプロジェクトを管理します。
新しいプロジェクトを作成するには、ターミナルに以下コマンドを入力して実行します。
Bevy の依存関係を追加 プロジェクトディレクトリで以下コマンドを実行して Bevy を依存関係に追加します。
cargo add
コマンドを実行すると、最新バージョンのパッケージが自動的に検索され Cargo.toml
に 依存関係が追加されます。
Cargo.toml
1 2 3 4 5 6 7 8 9 [package] name = "hello-rust" version = "0.1.0" edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] bevy = "0.12.1"
ゲームのコードを書く src/main.rs
ファイルを開き、以下のように編集して Bevy の基本的な構造を作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 // ライブラリのインポート // Bevyエンジンから必要なコンポーネントをインポート // 今回は、アプリケーション構築、アセット管理、3Dカメラの設定、物理ベースのレンダリング(PBR)、メッシュとマテリアルのハンドリング、数学関数をインポート use bevy::app::App; use bevy::app::Startup; use bevy::asset::Assets; use bevy::core_pipeline::core_3d::Camera3dBundle; use bevy::DefaultPlugins; use bevy::ecs::system::Commands; use bevy::ecs::system::ResMut; use bevy::math::Quat; use bevy::math::Vec3; use bevy::pbr::PbrBundle; use bevy::pbr::PointLight; use bevy::pbr::PointLightBundle; use bevy::pbr::StandardMaterial; use bevy::render::color::Color; use bevy::render::mesh::Mesh; use bevy::render::mesh::shape; use bevy::transform::components::Transform; use bevy::utils::default; fn main() { // Bevyアプリケーションの設定 // デフォルトプラグインの追加 // アプリケーション起動時に実行されるsetup関数の登録 App::new() .add_plugins(DefaultPlugins) .add_systems(Startup, setup) .run(); } fn setup( mut commands: Commands, mut meshes: ResMut<Assets<Mesh>>, mut materials: ResMut<Assets<StandardMaterial>>, ) { // 円形メッシュの作成 // 白色のマテリアルを適用 // X軸を90度回転 commands.spawn(PbrBundle { mesh: meshes.add(shape::Circle::new(4.0).into()), material: materials.add(Color::WHITE.into()), transform: Transform::from_rotation(Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)), ..default() }); // 立方体メッシュの作成 // RGB色のマテリアルを適用 commands.spawn(PbrBundle { mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })), material: materials.add(Color::rgb_u8(124, 144, 255).into()), transform: Transform::from_xyz(0.0, 0.5, 0.0), ..default() }); // 点光源の追加 // 影の有効化 commands.spawn(PointLightBundle { point_light: PointLight { intensity: 1500.0, shadows_enabled: true, ..default() }, transform: Transform::from_xyz(4.0, 8.0, 4.0), ..default() }); // 3Dカメラをシーンに追加 // シーンの中心を見下ろすように設定 commands.spawn(Camera3dBundle { transform: Transform::from_xyz(-2.5, 4.5, 9.0).looking_at(Vec3::ZERO, Vec3::Y), ..default() }); }
アプリケーションのビルドと実行 ターミナルで以下のコマンドを実行して、アプリケーションをビルド実行します。
初回は依存関係の構築があるため、実行に時間がかかるが、次回以降はすぐに実行されます。
しばらく待つと、ゲーム画面が表示される。
参考 https://bevyengine.org/learn/quick-start/getting-started/