Files
Edom 5502b2d97a docs:发布不含几何的角色机芯学习仓
以 kivo@9337f7e 的 replica 机芯为基准,单独开源弹簧/状态机/眼睛编排。
不包含 geometry-data、官方图标和抽出的应用主包。
2026-08-15 22:45:18 +08:00

2.1 KiB

window.GROK_GEO 接口

Playground 只在检测到可用的 window.GROK_GEO 时才会创建角色。
本仓库不附带这份数据。若要本地看完整外形,自行把 replica/geometry-data.js 放到同目录,并保证它在 src/*.js 之前执行。

不要把从商业应用抽出的几何、图标或主包提交到本仓库,也不要再分发。

最小可用对象

window.GROK_GEO = {
  Re: 100,             // 身体逻辑半径,绘制原点
  G9e: 20,             // 眼睛纵向基准
  VJt: 4,              // 非 uniform 眼距预留
  viewBox: { minX: 0, minY: 0, width: 200, height: 200 },
  palette: {
    black: { light: "#111111", dark: "#f4f4f4" },
  },
  eyes: [
    // 下标对应 tables.js 的 playlist。每组 [左眼多边形, 右眼多边形]
    // 每个多边形是 [[x, y], ...]
  ],
  shapes: {
    blob: {
      label: "Blob",
      path: "M ... Z",   // 你自己的 SVG path d
      face: { x: 0, y: 0, sx: 1, sy: 1, eye: 1 },
      radius: 100,
      tiltScale: 1,
      top: 0,
      bottom: 200,
    },
  },
};

字段

字段 用途
Re 身体中心 / 变换原点
G9e VJt 眼睛缩放与间距
viewBox 舞台视口;机芯里的 VIEW 与此对齐
palette[id].light/dark setColor 在非 login 墨水下的纯色
eyes[i] 第 i 号眼形。tables.js 的 playlist 用下标引用,默认按 25 组编排
shapes[id].path 身形轮廓
shapes[id].face 面部相对身体的偏移与缩放,可选 leftDX
shapes[id].radius/top/bottom/tiltScale 眼睛夹持、点头倾斜
solids 可选。bean / tablet / cloud 等旋转时的截面带

默认 playground 从 shapes.blob 起播。tables.js 的 SHAPE_ZOOM 给部分 id 配了缩放;其它 id 仍可渲染。
tables.js 里的 VIEW 决定取景框。身形 path 的坐标系最好和它对齐,否则角色会偏出画面。

加载

index.html 会尝试加载 geometry-data.js。文件不存在时页面保持说明态,不会创建 GrokCharacter。该文件已被 .gitignore 忽略。