Skip to content

安装与初始化

VVE 不是一个单独丢进 datapacks 就能工作的包。它把数值运算、线性代数和可选调试绘图交给 Math3 系列,把模块代码的生成交给 MOT。

组成与职责

项目要求运行时是否必需用途
Math3.13.1.2+定点数、向量、四元数、标记实体与公共数据工具
Math3.1 LALib3.1.2+线性代数与张量计算
VVE 33.0.1+运动模型、介质、响应、模拟器和示例
VVE 资源包与数据包配套看显示需求骰子、载具等自定义模型和纹理
Math3.1 GELib3.1.2+碰撞点、坐标轴、惯性张量等可视化调试
MOT 22.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 的内存中。它不会上传你的文件,也不会写入浏览器持久存储;刷新页面即丢弃会话。

VVE 由小豆 8593 开发;本站是面向学习与查阅的增强文档。