<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Threejs on yzh119</title><link>https://yzh119.github.io/zh/tags/threejs/</link><description>Recent content in Threejs on yzh119</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Sat, 03 Oct 2026 09:39:21 +0000</lastBuildDate><atom:link href="https://yzh119.github.io/zh/tags/threejs/index.xml" rel="self" type="application/rss+xml"/><item><title>[AI]三维战场实验</title><link>https://yzh119.github.io/zh/posts/battle-lab/</link><pubDate>Mon, 21 Sep 2026 01:05:15 +0000</pubDate><guid>https://yzh119.github.io/zh/posts/battle-lab/</guid><description>&lt;p&gt;我们希望把已有的三维模型放进能自选阵容、按原版 H3 规则操作的战场。&lt;a href="https://github.com/yzh119/h3-battle-lab"&gt;H3 Battle Lab&lt;/a&gt; 继续负责实时显示；战斗已经交给编译后的 VCMI，TypeScript 只保留界面、渲染和事件播放。&lt;/p&gt;&#10;&lt;h2 id="vcmi-接入进展2026-10-03"&gt;VCMI 接入进展（2026-10-03）&lt;/h2&gt;&#10;&lt;p&gt;此前在 TypeScript 中逐步补了回合、反击、远程和兵种特性。完整对战还涉及英雄、技能、魔法、士气、幸运、双格占位和攻城，继续维护一套前端规则需要不断与引擎核对。我们决定直接封装 VCMI。界面发送移动、攻击或施法的意图，读取引擎给出的合法选项与结果，再播放三维动画。自定义兵种保留统一的配置格式，后续转换为 VCMI 的兵种、bonus 或脚本配置；新机制也在引擎侧实现。&lt;/p&gt;&#10;&lt;p&gt;先用 C++ 校验战场坐标，发现原来的奇偶行偏移与 VCMI 不一致。修正后，187 个格子的可用性、165 个可用格的邻接关系，以及全部 34,969 对格子距离均与原生结果一致。两侧各一列保留给英雄，兵种不能占用。这个检查只证明坐标对应，没有证明完整战斗规则一致。代码见&lt;a href="https://github.com/yzh119/h3-battle-lab/commit/22cd091"&gt;坐标校验与迁移方向提交&lt;/a&gt;。&lt;/p&gt;&#10;&lt;p&gt;随后建立了独立的资源目录。原生核心只读取明确列出的原版 LOD、引擎配置、脚本和必需文件，启用的模块严格限定为 &lt;code&gt;core&lt;/code&gt; 与 &lt;code&gt;vcmi&lt;/code&gt;。本机的美术包、规则模组和用户设置没有进入测试。独立初始化成功读出了城堡、墓园全部 &lt;strong&gt;28 种兵种&lt;/strong&gt;的数据，包括升级单位；这还没有把 28 种模型接进浏览器。&lt;/p&gt;</description></item></channel></rss>