diff --git a/docs/design/systems/interaction-system.md b/docs/design/systems/interaction-system.md index b1a5cac..5e4e76a 100644 --- a/docs/design/systems/interaction-system.md +++ b/docs/design/systems/interaction-system.md @@ -16,11 +16,13 @@ **用途**: 查看物品或场景,触发主角的内心独白 -**表现**: -- 角色走近物品,按交互键 -- 屏幕底部或侧面浮现一段文字(主角的内心独白) -- 文字打字机效果逐字出现,按任意键加速/跳过 -- 不进入独立界面,在场景中原地显示 +**触发流程**: 走进触发范围(1.5m)→ 物体上方浮现提示 `[E] 查看旧冰箱` → 按 E 触发 + +**触发后表现**: +1. 相机从当前第三人称位置**平滑推向物体前方**约 0.8-1m,高度略低于物体中心(微仰视),推镜约 0.5 秒,ease-out 缓动 +2. 角色自动转向物体(不锁定移动,可微调位置但不能跑开) +3. 相机到位后 0.2 秒,屏幕底部浮现内心独白文案(打字机效果,每字约 0.05 秒) +4. 按 E 或 ESC 关闭:文案淡出,相机 0.3 秒回到默认第三人称位置 **文案风格示例**: ``` @@ -48,11 +50,14 @@ **用途**: 收集场景中散落的小物品 -**表现**: -- 靠近地面上的可拾取物品(发光或微光提示) -- 按交互键,角色弯腰拾取动画 -- 屏幕右上角弹出物品获得提示(图标 + 名称,1.5秒后消失) -- 物品自动进入背包/收集列表 +**触发流程**: 走近拾取品(1.5m)→ 物品上方浮现提示 `[E] 拾取 弹珠` → 按 E 触发 + +**触发后表现**: +1. 相机**不动**,保持第三人称视角 +2. 角色播放弯腰拾取动画(约 1 秒) +3. 动画播放至"手碰到物品"时间点,物品从场景消失 +4. 右上角弹出物品获得提示(图标 + 名称),1.5 秒后自动淡出 +5. 收集计数 +1,自动结束(无需手动关闭) **v0.1 可拾取物品**: - 弹珠(不同花色) @@ -65,12 +70,20 @@ **用途**: 与场景设施或大型物体交互 -**操作类型**: -| 操作 | 表现 | 示例 | -|------|------|------| -| 开门/关门 | 角色推门动画,门物理旋转 | 家的门、小卖部的门 | -| 翻找 | 角色弯腰/伸手动画 | 翻抽屉、翻纸箱 | -| 使用设施 | 角色走到设施前触发 | 按公用电话、开水龙头 | +**触发流程**: 走近操作对象(1.5m)→ 对象上方浮现提示 `[E] 打开门` → 按 E 触发 + +**触发后表现**(通用模式): +1. 相机推向操作对象(同观察类型的推镜方式) +2. 角色播放对应操作动画 +3. 操作完成后触发状态变化 +4. 相机回到默认位置 + +**v0.1 操作对象及具体表现**: + +| 操作对象 | 推镜 | 角色动画 | 结果 | +|----------|------|----------|------| +| 门(家/小卖部) | 不推镜 | 角色伸手推门 | 门状态切换(开↔关),开门后可走进去 | +| 废纸箱(翻找) | 推近纸箱 | 角色弯腰翻找 | 弹出翻找结果文本,或意外发现拾取品 | **v0.1 操作交互对象**: - 家的门(进出) @@ -82,20 +95,31 @@ **用途**: 与场景中的 NPC 交谈 +**触发流程**: 走近 NPC(1.5m)→ NPC 上方浮现提示 `[E] 和老板说话` → 按 E 触发 + **v0.1 简化方案**: - v0.1 不实现完整对话系统 -- NPC 以"观察"方式交互——走近 NPC 显示一段对话/描述 -- 例如:走近小卖部老板 → 显示"老板正在柜台后面打瞌睡,电视里放着还珠格格。" +- NPC 本质上是"会说话的观察对象",交互表现与观察类型一致 +- 触发后:相机推向 NPC → 底部浮现场景描述文本(非内心独白) +- 例如:走近小卖部老板 → 相机推向老板 → "老板正在柜台后面打瞌睡,电视里放着还珠格格。" +- 按 E/ESC 关闭,相机回位 - 后续版本再加入对话树和分支 --- ## 交互提示 UI -### 触发规则 -- 角色进入可交互物体的**触发半径**(默认1.5m)时显示提示 -- 角色离开触发半径时提示消失 +### 可交互性提示(两级机制) + +**远距离(3-4m 外)**:无 UI 提示,靠场景设计引导注意力 +- 可交互物体的摆放位置有"意图感",不会靠墙角挤成一堆,放在玩家容易注意到的位置 +- 拾取品有**微弱的地面光斑/小光点**,暗示"这里有东西"(融入夏日阳光氛围,不违和) + +**近距离(1.5m 内,触发范围)**:物体上方浮现交互提示 UI - 多个物体在范围内时,只显示最近的那个 +- 角色离开触发半径时提示消失 + +### 提示样式 ### 提示样式 @@ -227,6 +251,41 @@ --- +## 白盒方案 + +v0.1 使用近似占位模型而非纯不可见触发区域,以便调试相机推镜距离、空间关系和交互体验。 + +**原则**: +- 找免费 lowpoly 模型或 UE Marketplace 免费素材,形状和比例大致对即可 +- 冰箱用方箱子、自行车用简单两轮模型,不要求贴图精确 +- 后续美术阶段替换为正式资产 + +**交互物占位模型需求**: + +| 区域 | 交互物 | 占位模型建议 | +|------|--------|------------| +| 家 | 旧冰箱 | 白色方箱子(~1.7m 高) | +| 家 | 老式电视 | 方箱 + 凸起背部(~0.5m 高) | +| 家 | 书桌 | 长方体桌面 + 四腿(~0.75m 高) | +| 家 | 日历 | 薄长方体贴墙(~0.4m 高) | +| 家 | 床 | 扁平长方体(~0.5m 高) | +| 小卖部 | 零食货架 | 多层架结构(~1.8m 高) | +| 小卖部 | 冰柜 | 矮宽方箱(~0.9m 高) | +| 小卖部 | 卡片架 | 窄薄立架(~1.2m 高) | +| 小卖部 | 老板(NPC) | 简单人形胶囊体,坐姿 | +| 街道 | 公用电话亭 | 窄高方柱(~2m 高) | +| 街道 | 老式自行车 | 简单车形(两轮 + 车架) | +| 街道 | 晾衣杆 | 长杆 + 几块平面(衣物) | +| 空地 | 大树 | 圆柱树干 + 球形树冠 | +| 空地 | 水坑 | 扁平圆形,反光材质 | +| 巷子 | 流浪猫 | 小型胶囊体,低矮 | +| 巷子 | 废纸箱 | 开口方箱(~0.5m 高) | +| 水塘 | 青蛙 | 极小胶囊体 | +| 水塘 | 芦苇 | 几根细圆柱簇 | +| 拾取品(通用) | 弹珠/卡片/糖纸等 | 小球/小片,+ 地面光斑 | + +--- + ## v0.1 不包含 - 对话树 / 对话分支系统