#component #bevy #gltf #assets #gamedev

bevy_gltf_components

允许您在gltf文件中直接定义Bevy组件,并在Bevy侧实例化这些组件

14个版本 (5个破坏性更新)

0.6.0 2024年7月18日
0.5.1 2024年3月18日
0.4.0 2024年3月4日
0.3.2 2024年2月19日
0.1.3 2023年9月29日

#684 in 游戏开发

Download history 60/week @ 2024-04-28 44/week @ 2024-05-05 58/week @ 2024-05-12 79/week @ 2024-05-19 53/week @ 2024-05-26 86/week @ 2024-06-02 98/week @ 2024-06-09 97/week @ 2024-06-16 122/week @ 2024-06-23 73/week @ 2024-06-30 117/week @ 2024-07-07 229/week @ 2024-07-14 183/week @ 2024-07-21 118/week @ 2024-07-28 76/week @ 2024-08-04 59/week @ 2024-08-11

每月476次下载
用于 3 个Crate(2个直接使用)

MIT/Apache

26KB
344

Crates.io Docs License Bevy tracking

bevy_gltf_components(已弃用,改为Blenvy)

bevy_gltf_components已弃用,改为其继任者Blenvy,它是Blenvy项目的一部分。不会为Bevy bevy_gltf_components进行进一步的开发或维护。有关背景信息,请参阅#194

此crate允许您在gltf文件中直接定义Bevy组件。

用法

重要 : 处理gltf文件的插件在更新阶段运行,因此如果您在设置(the additional components will not show up)中从gltf中生成场景,则不能直接使用这些组件

请参阅

  • 示例
  • 或使用bevy_asset_loader进行可靠的文件预加载,因为此crate不处理加载您的资源。
  • 或者使用基于此crate功能的bevy_gltf_blueprints crate,它允许您直接从基于gltf的蓝图生成实体。

以下是一个最小使用示例

# Cargo.toml
[dependencies]
bevy="0.14"
bevy_gltf_components = { version = "0.6"} 

//too barebones of an example to be meaningfull, please see https://github.com/kaosat-dev/Blender_bevy_components_workflow/bevy_gltf_components/examples/basic for a real example
 fn main() {
    App::new()
         .add_plugins(DefaultPlugins)
         .add_plugin(ComponentsFromGltfPlugin::default())
         .add_system(spawn_level)
         .run();
 }
 
 fn spawn_level(
   asset_server: Res<AssetServer>, 
   mut commands: bevy::prelude::Commands,
   keycode: Res<Input<KeyCode>>,

 ){
 if keycode.just_pressed(KeyCode::Return) {
  commands.spawn(SceneBundle {
   scene: asset_server.load("basic/models/level1.glb#Scene0"),
   transform: Transform::from_xyz(2.0, 0.0, -5.0),
 ..Default::default()
 });
 }
}

安装

将以下内容添加到您的[dependencies]部分中的Cargo.toml

bevy_gltf_components = "0.6"

或使用cargo add

cargo add bevy_gltf_components

配置

从版本0.3开始,此插件是可配置的 使用默认配置

ComponentsFromGltfPlugin::default()

或禁用传统模式:(默认启用)

ComponentsFromGltfPlugin{legacy_mode: false}

您需要禁用旧模式才能使用bevy_components Blender 插件以及bevy_registry_export crate!因为它会创建以真正的 ron 文件格式写入的自定义属性,而不是简化的版本(旧模式中的版本)

注意:旧模式支持将在未来版本中取消,默认行为将是无旧模式

SystemSet

系统的顺序非常重要!

例如,要将您的代理组件(无法/不需要在 gltf 文件中使用真实组件时的替代组件)替换为实际组件,

这应该在 之后 注入 gltf 文件中的组件发生,

因此 bevy_gltf_components 为此提供了一个 SystemSetGltfComponentsSet

通常,系统的顺序应该是

bevy_gltf_components (GltfComponentsSet::Injection) => replace_proxies

附加功能

  • 截至版本 0.5,此包还包括对 gltf 文件中灯光的自动处理,以尽可能接近 Blender 的 eevee 渲染
  • BlenderLightShadows(由 gltf_auto_export Blender 插件自动生成)允许您在 Blender 中切换灯光的阴影开/关,并在 Bevy 中具有匹配的行为
  • BlenderBackgroundShader(也称为背景颜色)也在 Bevy 端自动设置
  • BlenderShadowSettings 将 bevy 端的 cascade_size 设置为与 Blender 中配置的匹配

如果您的 gltf 文件中存在这些组件,则此包将自动处理它们;否则将忽略它们。

示例

https://github.com/kaosat-dev/Blender_bevy_components_workflow/tree/main/examples/bevy_gltf_components/basic

兼容的 Bevy 版本

主分支与最新的 Bevy 版本兼容,而 bevy_main 分支试图跟踪 Bevy 的 main 分支(欢迎更新跟踪提交的 PR)。

bevy_gltf_components 版本的兼容性

bevy_gltf_components bevy
0.6 0.14
0.5 0.13
0.2 - 0.4 0.12
0.1 0.11
分支 main 0.13
分支 bevy_main main

许可证

此包、所有代码、内容和资产均采用以下任一许可证的双重许可

依赖项

~37–77MB
~1.5M SLoC