ITADN
kaosat-dev/Blenvy
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Bevy tracking License ko-fi

BLENVY:一个友好的 Blender <=> Bevy 工作流

demo

用于在 Bevy 游戏引擎中从 gltf 文件添加组件的 Crates 与工具。

它为 Bevy 提供了一种以 Blender (gltf) 为核心的工作流,即在 Blender 内部定义实体及其组件。也被称为“将 Blender 作为 Bevy 的编辑器”。

它还允许你通过在 Blender 中使用集合(大多数情况下推荐的方式)或直接针对单次使用的对象来设置“蓝图”。

[!CAUTION] Blenvy 目前处于 Alpha 1 阶段,因此仍存在相当多的 bug、缺失的功能、缺失的文档、损坏的示例等 请务必在使用前备份你的 Blender 文件!

[!CAUTION] 请务必确保 Blender 插件与 rust crate 的版本号匹配! 这是确保一切按预期工作的唯一方式

快速入门

想立即上手?请参阅 快速入门指南,了解如何以最快速度设置一个基础项目。

功能

  • 如果你希望将 Blender 用作编辑器,这将非常有用
  • 使用 UI 工具在 Blender 中将 Bevy 组件定义为自定义属性,以添加和编辑 Bevy 组件,自动导出 gltf 蓝图等更多功能,详见 Blender
  • 蓝图与关卡系统:将你的 Blender 集合转换为 gltf 蓝图,以便在仅由 Blender 场景构成的关卡中复用
  • 在 Blender 集合中设置和调整组件,如果你愿意,可以在集合实例中覆盖其中任何组件
  • 同样可以为对象、网格和材质设置和调整组件!
  • 自动加载每个蓝图的所有资产(gltf 文件、手动添加的资产),无需任何设置
  • 热重载你的关卡和蓝图
  • 最小化设置与代码,你可以快速运行一个基础版本
  • 最小化依赖:仅 Bevy、Serde 和 RON!
  • 开源

如果你之前使用的是单独的 bevy_gltf_xxx crate 和 Blender 插件,请参阅 迁移指南

Crates

一个 crate 统御所有!

  • blenvy 该 crate 允许你
    • 直接在 gltf 文件中定义组件,并在 Bevy 端实例化/注入这些组件。

    • 将项目的 Bevy 注册表导出为 json,以便在 Blender 端的 Blender blenvy 插件中生成自定义组件 UI

    • 在 gltf 文件中为 Bevy 定义 Blueprints/Prefabs 并在 Bevy 中生成它们。支持在生成时覆盖和添加组件,实现高效的“关卡”加载等

    • 通过利用 blueprint 功能仅保存动态数据的最小子集,分离关卡的动态与静态部分等,以相对简单的方式保存和加载游戏状态

      旧视频: 如果你愿意,可以观看视频教程/说明,或者阅读 crate 文档。 这个也有视频教程/说明,或者阅读 crate 文档

      该 crate 的示例在这里

工具

Blender: blenvy

  • 一个集成的 Blender 插件,用于工作流的 Blender 端:
    • 允许轻松添加和编辑 Bevy 组件,使用为每个组件自动生成的 UI
    • 每次保存 Blend 文件时,自动将你的关卡/世界从 Blender 导出为 gltf
    • 自动导出你的 Gltf blueprints 和资源

示例

你可以在这里找到所有示例

  • components 仅使用 components,以生成在 gltf 文件中定义组件的实体
  • blueprints 使用 blueprintslevels 生成关卡,然后填充来自不同 gltf 文件的实体,实时(运行时)生成实体等
  • animation 如何使用和触发来自 gltf 文件的动画
  • save_load 如何保存和加载关卡
  • demo 一个展示所有功能的完整演示,包括物理、动画

工作流程

工作流程如下(一旦你配置好 Bevy 代码)

  • 创建并注册所有你希望从 Blender 端设置的组件(这是基础 Bevy,无需特定工作)

component registration

  • 设置并随后使用 Blenvy Bevy crate

  • 设置并随后使用 Blenvy Blender add-on

  • 迭代

  • 享受乐趣!

  • 然后在 Blender 中通过精美的 UI 将组件添加到对象,详见 此处 以获取更多详细信息

请参阅 快速入门 获取完整的分步指南。

第三方集成

阅读 Avian Physics Integration 以了解如何在 Blender 中设置碰撞体,这些碰撞体将被 Bevy 中的 Avian 物理引擎使用。

限制 / 问题

  • avianbevy_rapier 中的一些 /physics 代码 / 定义碰撞体的方式或许可以在 Blender 中做得更好/更直观

贡献者

感谢所有为该项目提供帮助的贡献者!向你们致以崇高的敬意,我们总是欢迎贡献!:)

许可证

本仓库及其所有代码、内容和资产均双重许可,遵循以下任一许可: