# @adatechnology/game-characters-three 中文文档

规范地址：https://npmcn.com/package/%40adatechnology/game-characters-three/

版本：0\.9\.5
npm 元数据更新时间：2026-11-06T05:12:27.261Z
中文译文更新时间：2026-11-06T09:43:24.746Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40adatechnology/game-characters-three
原文对照：https://npmcn.com/package/%40adatechnology/game-characters-three/?lang=original
项目主页：https://github.com/Andersonfrfilho/adatechnology-game-kit#readme
源码仓库：https://github.com/Andersonfrfilho/adatechnology-game-kit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：3.5 MB，14 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- 运行依赖：6 个
- peer 依赖：three ^0\.160\.0
- 首次发布：2026-10-24T14:00:30.200Z
- 最新版本发布：2026-11-06T05:12:26.924Z
- 近 30 天下载量：3548（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：27（近 12 个月 27 个）

## 中文简介

三.j. 为@adatechnology/game-charracters作的介绍:引人注意的人群体(GPU动画、LOD、烘焙、变体、飞行肢)和富人体(Bestiário v17建造者、配有配件和手的幸存者、动画师、伤口、眼睛).

## 安装

```sh
npm install @adatechnology/game-characters-three
```

也可以使用：`pnpm add @adatechnology/game-characters-three`、`yarn add @adatechnology/game-characters-three`、`bun add @adatechnology/game-characters-three`

## README

# @adatechnology/game-charraters- 三号机车

三.j. 介绍 `@adatechnology/game-characters`. 3.js 由主办方传入(`import * as THREE from 'three'`),所以同一代码从捆绑者或从平版脚本(英语:`dist/index.global.js` 揭露 `GameCharactersThree` 联合国.

**出现人群** (游戏的文学口,G 65336-65541):

-   `buildInstancedBody(THREE, { segments, body? })`:合并的几何学(torso,头部,发型,下巴,眼睛,手臂,腿部)被用骨,支点和材料来标记;16,10和5个段是三个层次的细节. `body` 默认为 `TEAM_GAME`; 任意 `BodySpec` 移动关节.
-   `BODY_CHUNK` 编号 : `createBodyChunk`:GPU所平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起平起. `createBodyMaterial` 添加了斑点和发光的眼睛.
-   `createBodyBatch`数字 : `begin`, (中文(简体) ), `push` 每个身体, `end`;一个画召一个完整的变体.
-   `bakeBody` 财务报告和审定财务报表 `bakeVariants`:将一具丰富的躯体烘烤成可显示几何;游戏的三种变体规则(`7000 + c·101 + v·13`) (中文(简体) ).
-   `createFlyingLimbs`:40个被撕开的碎片会飞出,弹出并停留,并有注射出血的效果.

```ts
import * as THREE from 'three'
import { buildInstancedBody, createBodyBatch } from '@adatechnology/game-characters-three'

const time = { value: 0 }
const batch = createBodyBatch(THREE, buildInstancedBody(THREE, { segments: 10 }), { max: 700, time })
scene.add(batch.mesh)
batch.begin()
batch.push({ a: [x, z, yaw, phase], b: [1.8, 1, stride, 0], c: [missingMask, infection, 1, skinTone], color: { r: 0.3, g: 0.4, b: 0.5 }, eye: { r: 1, g: 0.2, b: 0.1 } })
batch.end()
time.value += dt
```

**尸体的声音和血迹** 联 合 国 `@adatechnology/game-audio` 和正在运行的电影 `@adatechnology/game-fluids-three`:

-   `createCharacterSound(host.audio, { style? })`数字 : `voice(typeId, 'idle' | 'alert' | 'special', position)` 13个不死类型(`UNDEAD_VOICES`游戏的呻吟和尖叫,艺术场景 `voice` 呻吟 有尖叫 有跳跃 有页面的类规则 对于它没有的类型, `body(event, position)` (伤=肉,切=断,裂或裂=去), `player('grab' | 'bite' | 'hurt')`16个配方`CHARACTER_SOUND_BANK`)留下与团队代码相同的痕迹.
-   `createFluidsBridge({ sink, film })` 财务报告和审定财务报表 `bloodLookOfAge(age)`(单位:千美元) `body` 事件将血液滴入胶片,在感染年龄的新鲜而干燥的颜色中(`ages.json`, (中文(简体) ), `old_blood` 对于瘦的.

**玩家阿凡达.** `createPlayerAvatar(THREE, options?)` 是团队游戏的玩家身体: 由Bestiário/Elenco所建的富人 `presets/player-avatar.json` (单位:千美元)`{ type: 'Lento', human: true, seed: 4242, skin, hs: 'short', hair }`衬衫 `0x3d5a73`),具有压倒性 `{ spec, shirtColor, clips, blend, fallSeconds, cascade, clipCascade }` (单位:千美元)`clipCascade`,默认 5 : 关节跟随的速度是多少倍,而一个不循环播放的片段,所以一击通过撞击到达了它的姿势.

```ts
const player = createPlayerAvatar(THREE)
scene.add(player.root)
player.update(dt, { speed, crouch, down, armed, pitch, hip }) // the gait is tied to the ground speed (cadence and swing from `walkCadence`/`walkGait`)
player.hand('R').add(weaponMesh) // a socket at the weapon hand
player.play('grabbed_bitten_human', { onEvent: (event) => event.type === 'impact' && applyBlow() }) // or player.play(myClip); player.on('event', fn); player.stop()
```

蹲下和瞄准的手臂从游戏的GPU平面代码(`BODY_CHUNK`,引用的行 `src/player/avatar.ts`蹲着就是大腿 `-0.95`膝盖 `1.9`后备箱 `+0.25`臀部 臀部 `-0.35`· ; 向下转动身体`±1.5` 弧度,在相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相; `armed` 如下 `(pitch + 1) / 3`。 。 。 . `play` 覆盖 a `PoseClip` 联 合 国 `@adatechnology/game-characters` (单位:千美元)`channels: 'upper'` 将双腿留给后腿;而只蹲下一脚取出双腿,因此一拳或后卫保持低调)与0.12 s相混合并放出其事(出声:`impact`, (中文(简体) ), `phase`一次通过 `onEvent` 财务报告和审定财务报表 `on('event')`。 。 。 . `hand('R')` 是武器手(木偶右手,在-x). 姿势片段 `armL`编号 :`legL` 频道移动该侧( t)`arms[1]`编号 :`legs[0]`),这样 `punch_right` 财务报告和审定财务报表 `front_kick` 联 合 国 `ATTACK_CLIPS` 驱动 `armL` 财务报告和审定财务报表 `legL`第一人称视图显示的同一只手臂和腿.

**在试验室.** `room.setAvatar(toRoomAvatar(player, { strikeClips: ATTACK_CLIPS }))` (或 `defaultCharacterClips()` 联 合 国 `game-kit-defaults`,它也有第一人称剪辑),显示在玩家脚下的身体(`toRoomAvatar` 只翻出投出: 房间计算一个向上看作为正向看, 球队比赛显示为向下看) V 切换在第一人称和第三人称之间 `@adatechnology/game-test-room`。 。 。 . `createAvatarTestModule({ avatar, camera, state })` 区域中的模块 `avatar_area` (单位:千美元)`AVATAR_AREA_ID`:取景(第1/3人)的长凳按钮,蹲起,站起,倒起,起起,武装起/起, 每个已注册剪辑一个按钮( q)`Tocar: grabbed_bitten_human`, (中文(简体) ), `grab_bite_zombie`,并与 `clips: [...POSE_CLIPS, ...ATTACK_CLIPS]` 拳打脚踢和后坐力; `clipLocales` 给出相位文本)并停止; 用于相机,剪辑播放,最后剪辑事件和关节的度量. 每一个动作都是JSON记录中的一行(`{"type":"avatar","action":"play_clip","clip":...}`包括剪辑活动,以及 `impact` 事件也获得自己的 `{"action":"impact","clip":...,"t":...}` 线条. 模块取出身体,取出视野(`camera: { mode, set }`)并州(`state: { set }`(按选择和进口) `@adatechnology/game-contracts`。 。 。 .

`toRoomAvatar` 也给房间 `strike(clipId)`,它弹出攻击弹夹在身体上(攻击的唯一来源,第一和第三人),并回答从该弹夹读取的撞击数秒(两种观点都相同). `strike(clip, { leg: 'left' })` 踢出左脚 `strike(clip, { hand: 'left' })` 以左手出拳:身体上弹夹的镜子(出自"左传"`mirrorPoseClip`编号 `<clip>_left`) (中文(简体) ). 在拳打脚踢之后 `impact` 类型 `punch`) 身体持有警卫(`guardClip`默认值 `'fight_guard'`, (中文(简体) ), `false` (无) `guardHold` 秒(默认为1.2),而它静静地站着, 所以一个组合去守卫, 拳击, 守卫; 拳击混合在 `punchBlend` (默认为0.05 s). 走走跑跑 武器或被扣留的物品 放下了警卫.

**第一人称臂.** `createFirstPersonArms(THREE, { colors?, rig?, stances?, clips?, blend?, bob? })` 将袖子(上臂取出,前臂取出,肘取出,袖取出)和手取出于相机空间的皮肤(手掌取出四指取出三段取出,拇指取出后紧紧握住),外加右腿取出,只在踢出时才显示. `arms.update(dt, { camera, targets, stance, speed, running, crouch, contact? })`页:1 `relaxed` 财务报告和审定财务报表 `fists` 姿势是休息姿势(`FIRST_PERSON_STANCES`从 `presets/first-person-arms.json`, (中文(简体) ), `hold` 沿着 `HandTargets` 联 合 国 `game-contracts` (世界空间)从固定肩上取出一双骨头的IK,肘向下弯曲并出;一个无法到达的目标被夹住(肩部移动) `reachShift` 向着它第一. `arms.play('punch_right' | 'shove_two_hands' | 'front_kick')` 覆盖 a `FirstPersonClip` (单位:千美元)`FIRST_PERSON_CLIPS` 联 合 国 `game-characters-people`,与攻击片段相同的持续时间和撞击秒; `arms.on('event', fn)` 给它 `impact`· ; `arms.handPose(side)` 读取手被抽出的地方. `contact(origin, direction, maxDistance)` (可选的;与第一地表相距或为空)使手和踢脚在沿相机向前行走的地表(肘弯)前停下几毫米; `arms.play('front_kick', { leg: 'left' })` 踢出左脚 `arms.play('punch_right', { hand: 'left' })` 用左手出拳(镜中夹子的手). 手框:x手腕到指关节,y后手,z小指侧;左手为右相镜.

## 几何

建造者`createPersonBuilder`, (中文(简体) ), `createBestBuilder`, (中文(简体) ), `bakeBody`, (中文(简体) ), `buildInstancedBody`, (中文(简体) ), `createFlyingLimbs`, (中文(简体) ), `createEye`绘制与 `shapeGeometries(host)` 联 合 国 [`game-shapes-three`](https://npmcn.com/package/%40adatechnology/game-shapes-three)盒子、圆筒、圆锥、圆圈、戒指、花环和托里都来了 取自同为字节的游戏形状;十二面体,形状和胶囊几何为三相. `tests/exact-golden.test.ts` 保持每一点 旧道创造了它们.

## 常见问题

### @adatechnology/game-characters-three 是什么？

三\.j\. 为@adatechnology/game-charracters作的介绍:引人注意的人群体\(GPU动画、LOD、烘焙、变体、飞行肢\)和富人体\(Bestiário v17建造者、配有配件和手的幸存者、动画师、伤口、眼睛\)\.

### 如何安装 @adatechnology/game-characters-three？

在项目目录运行 npm install @adatechnology/game-characters-three，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：three（^0\.160\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @adatechnology/game-characters-three 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @adatechnology/game-characters-three 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @adatechnology/game-characters-three 可以商用吗？

@adatechnology/game-characters-three 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @adatechnology/game-characters-three 的下载量有多少？

根据 npm 官方下载统计，@adatechnology/game-characters-three 在 2026/10/05 – 2026/11/03 这 30 天内被下载 3,548 次，日均约 118 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @adatechnology/game-characters-three 还在维护吗？

最新版本 0\.9\.5 发布于 2026/11/06（今天）；至今共发布 27 个版本，其中过去 12 个月发布了 27 个；首次发布于 2026/10/24。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

