安装与初始化
VVE 不是一个单独丢进 datapacks 就能工作的包。它把数值运算、线性代数和可选调试绘图交给 Math3 系列,把模块代码的生成交给 MOT。
组成与职责
| 项目 | 要求 | 运行时是否必需 | 用途 |
|---|---|---|---|
| Math3.1 | 3.1.2+ | 是 | 定点数、向量、四元数、标记实体与公共数据工具 |
| Math3.1 LALib | 3.1.2+ | 是 | 线性代数与张量计算 |
| VVE 3 | 3.0.1+ | 是 | 运动模型、介质、响应、模拟器和示例 |
| VVE 资源包 | 与数据包配套 | 看显示需求 | 骰子、载具等自定义模型和纹理 |
| Math3.1 GELib | 3.1.2+ | 否 | 碰撞点、坐标轴、惯性张量等可视化调试 |
| MOT 2 | 2.0.0+ | 开发时需要 | 从 memory_storage 预设生成自己的模块 |
放置目录
数据包安装到同一个世界:
text
<world>/datapacks/
├─ math3/
├─ math3-lalib/
├─ vve3/
└─ your_project/资源包安装在客户端资源包目录,或由服务器资源包分发。math3-gelib 只在需要调试绘图时安装;不要仅为了运行普通物理而增加它。
初始化顺序
VVE 3 当前文档约定手动初始化。严格按依赖顺序执行:
mcfunction
function math:_init
function math:_init_la
function vve:_init如安装了 GELib,再执行:
mcfunction
function math:_init_ge
function math:particles/_load_1214顺序有意义:VVE 初始化会使用 Math3 提供的记分板、常量与运算实体;张量相关路径会依赖线性代数库。
用版本接口做前置检查
自动随 #minecraft:load 启动的项目,建议先查询版本,再决定是否初始化:
mcfunction
function math:_version
execute unless score version int matches 312.. run return fail
execute unless score math_init_version int = version int run function math:_init
function math:_version_la
execute unless score version_la int matches 312.. run return fail
execute unless score math_la_init_version int = version_la int run function math:_init_la
function vve:_version
execute unless score version_vve int matches 301.. run return fail
execute unless score vve_init_version int = version_vve int run function vve:_init正式项目应把 return fail 换成带清晰组件名、需要版本和下载链接的 tellraw。判断初始化记分板能避免 /reload 后无意义地重复创建整个运行环境。
版本目录差异
VVE 声明支持 Minecraft 1.21.5–26.2。新项目默认使用单数资源目录:
text
data/<namespace>/function/
data/<namespace>/advancement/
data/<namespace>/loot_table/旧版本可能接受或要求复数目录。不要仅通过 pack_format 猜测功能是否可用;还要检查命令语法、物品组件、展示实体 NBT 与资源包模型格式。
安装后最小自检
mcfunction
function vve:_version
data get storage vve:class
scoreboard players get vve_gravity int预期行为:版本函数成功;vve:class 中存在内置数据模板;vve_gravity 在一次模拟器加载常量后可读。若命令提示 unknown function,先检查包目录是否多套了一层;若初始化中途失败,按 Math3 → LALib → VVE 的顺序逐个执行定位。
在线实验不需要安装 Java
本站 Playground 会把预先打包的 VVE 与依赖下载到页面 Worker 的内存中。它不会上传你的文件,也不会写入浏览器持久存储;刷新页面即丢弃会话。