3D モデルを読み込んでゲーム内に表示させます。
環境
- Windows 11 Home 23H2
- Rust 1.76.0
- Bevy 0.12.1
- Blender 3.3.2
3D モデル
itch.io から無料の 3D モデルをお借りしました。
Bevy で 3D モデルを読み込ませるには ‘GLTF 2.0’ 形式に変換する必要があります。
変換には Blender を使いました。
インポート
ファイル -> インポート -> Wavefront (.obj)
を選択
Bevy は、右手 Y アップ座標
形式を採用しているため、Blender で変換するときは Y軸 が上になるように設定します。
https://bevy-cheatbook.github.io/fundamentals/coords.html#2d-and-3d-scenes-and-cameras
Y軸を上にしたとき、3D モデルが上を向いているか確認します。
エクスポート
ファイル -> エクスポート -> glTF 2.0 (.glb/.gltf)
を選択
特に設定は変えずエクスポートして問題ありませんでした。
プロジェクトディレクトリ内の assets
フォルダーに 3D モデルを入れておけば、ゲームから参照することができます。
ゲームのコード
src/main.rs
ファイルを開き、以下のように修正します。
1 | use bevy::{app::*,ecs::{system::*,},utils::*,math::*,transform::{components::*,},scene::*,render::{camera::*,color::*,mesh::*,},core_pipeline::{core_3d::*,},pbr::*,asset::*,DefaultPlugins,}; |
ビルドと実行
ターミナルで以下のコマンドを実行して、アプリケーションをビルド実行します。
1 | cargo run |
ゲームに 3D モデルが表示されれば成功です。
参考
https://docs.rs/bevy/0.12.1/bevy/index.html
https://bevy-cheatbook.github.io/3d/gltf.html?highlight=SceneBundle#3d-models-and-scenes-gltf