用途:在 Schedule 1 模组中基于 S1API 创建、编辑、调试和审查自定义 NPC 类,遵循文档化的两阶段模型与 AvatarFramework 约束。
主要能力:区分物理与非物理 NPC、顾客与经销商及混合交互/UI 联系人;将持久化预制数据放入 ConfigurePrefab(...),运行时行为放入 OnCreated(),并按需添加 OnDestroyed()、OnLoaded()、OnResponseLoaded(...);优先使用 S1API 构建器与包装 API。
使用方式:先分类 NPC,再在 ConfigurePrefab(...) 中设置身份、图标、生成位置、关系/顾客/经销商/库存默认值与日程,并调用 plan.EnsureDealSignal() 等 Ensure*;在 OnCreated() 中调用 base.OnCreated()、Appearance.Build()、Schedule.Enable(),必要时 Schedule.InitializeActions(),并接线对话、事件与文本消息。物理 NPC 用 IsPhysical => true,非物理联系人通常无生成点与日程。顾客声明 IsCustomer => true,经销商声明 IsDealer => true,角色基础设施自动生成,不要手动添加 EnsureCustomer() 等。
限制与规则:新代码优先使用无参 NPC 构造函数,禁止用 new 手动实例化;WithIdentity(id, ...) 视为稳定存档数据,改 id 等于换 NPC;顾客/经销商/关系/日程默认值只能在 ConfigurePrefab(...) 设置;运行时外观变更后必须调用 Appearance.Build();物理 NPC 在 OnCreated() 调用 Schedule.Enable();在 OnDestroyed() 取消订阅;需在加载后继续工作的消息回调在 OnResponseLoaded(...) 重新挂接;加载敏感状态在 OnLoaded() 恢复;不应显示默认徽章的联系人调用 ClearConversationCategories()。外观方面,性别与体重按 0.0f–1.0f 归一化,身高实用范围 0.8f–1.2f,瞳孔扩张 0.0f–1.0f,眼睑 0.0f–1.0f,眉毛高度运行时限制在 -1.1f 至 1.5f,面部层不超过 6、身体层不超过 6、配件不超过 9,资源路径须匹配 Resources.Load(...) 风格且无扩展名。
适用场景:为 Schedule 1 模组添加或维护自定义 NPC、联系人、顾客与经销商,并处理生成、图标、交互、日程执行、存档恢复与消息回调。
限制:具体收费、价格、平台与效果资料暂未提供;详细 API 与外观说明需阅读 references/s1api-custom-npc-reference.md 与 references/example-project-patterns.md。