ARPG facing、碰撞与遭遇
合成自 foxzool/mosaic docs/research/(2026-07-21 至 2026-08-17)。研究,不是 SideDawn 产品锁。 SideDawn 今日没有 player / skill / combat crate;可玩是 zonegen preview 飞相机。见 decisions、research-mosaic-ingest。
转身与 facing
click-to-move ARPG 主流是 离散 8 向瞬转 + 速度沿朝向(Flare / freeablo / OpenDiablo2 可证实),或 连续角瞬时对齐位移。车式限速转向(R = v/ω)是引擎 AI / 载具默认,不是 Diablo 式玩家手感。docs/research/2026-07-21-arpg-character-turning-methods.md(2026-07-21)。
走 vs 射必须可拆。把瞄准写进移动航向,会导致施法时角色拐向光标。isometric 主流是 单 Facing 权威 + 双意图竞争(走路跟 heading,出手瞬至 aim),不是 TPS 上下半身双 yaw。硬约束:aim 不写回 heading;无覆盖窗时 Facing 跟 heading;表现层不写 Facing。docs/research/2026-08-05-arpg-walk-vs-cast-facing-practices.md(2026-08-05)。
碰撞与命中
管线三段:broadphase → narrowphase → resolution。角色↔环境用 kinematic + collide-and-slide,不要 dynamic 刚体当角色。多数 ARPG 角色↔角色允许重叠或只做软分离。战斗命中是 hitbox 打 hurtbox,按攻击去重;近战不要用 raycast。快速位移要防 tunneling。docs/research/2026-07-21-arpg-collision-system-design.md(2026-07-21)。
mosaic 当时的 32×32 固定格 + 相近实体尺寸,调研倾向 uniform grid / 空间哈希,不必先引 avian。这是 mosaic 透镜,不是 sidedawn zonegen 合同。 当前地形真源是 sidedawn crates/zonegen,见 arpg-terrain-design。
Actor 状态 vs 动画;死亡
Gameplay 状态是因,动画状态是果。一个逻辑态可映射多个 clip;动画结束事件不该当命中权威。Bevy 0.19 有 AnimationTransitions / AnimationPlayer,无原生 Animation Notify。死亡 clip:不 .repeat(),播完停在末帧;复位在 app 侧 play(idle).repeat(),且死后要挡住 locomotion 系统把死亡动画切走。docs/research/2026-08-09-actor-state-vs-animation-state.md、docs/research/2026-08-05-death-animation-bevy-path.md(2026-08-05 / 08-09)。
敌人与遭遇
行业敌型 = 家族 + 职能原型(近战/远程/施法/bruiser/swarmer/…)。首张图 3–5 个职能原型是基线。威胁来自数量 + 词缀,不来自「更聪明的 AI」。telegraph 是公平性合同。pack / 密度是数据表,运营期可调。入口附近不刷怪是 PoE2 明文惯例。精英词缀是难度主杠杆;没有厂商公开精英:普通官方比率。docs/research/2026-08-17-arpg-enemy-ai-encounters-research.md(2026-08-17)。
对 SideDawn
这些笔记描述 mosaic 夹具里的战斗/朝向/遭遇研究。不要据此重开 POI / gate / world-map 实现票,也不要写成「SideDawn 已有 combat ECS」。Bevy 实现对照见 bevy-arpg-combat-ecs(该页偏历史架构指南)。