首页 / 技术实现
Room + Story + Cross-device Blueprint

Fensy 技术实现方案

本页基于新版产品方案重构技术口径:移动端房间首页承载日常在场,剧情副本承载内容演绎与关系推进,跨端生活介入承载长期陪伴和 IoT 生态联动。 核心任务不是重做数字生命底层,而是把自然交流、角色表现、内容管线、设备授权与跨端 Action 落成一套可实现、可验证、可演示、便于扩展的工程方案。

Unity Runtime Realtime ASR/TTS Dialogue Orchestrator Memory Integration Story Runtime IoT Action Layer
3 模块同源

房间、剧情、跨端生活共享人格、记忆、关系与授权状态,不做割裂角色。

云端主脑

核心智能、关系推进和记忆读取由云端主导,本地重点负责实时表现。

渐进迭代

先把"能说、能演、能记住"跑通,再逐步放大复杂能力。

页面主线

先定义项目边界:移动端房间、剧情副本、跨端生活介入三条主线
再拆总体架构、端云分工、内容管线、IoT 接入与核心模块
然后把 Unity 运行时、记忆接入、表现驱动和 Action 层组织成 V1
最后给出性能预算、风险、开发路线、选型表与任务拆解

01 技术总览

Unity + 云端编排,先跑通"听得见、答得上、演得出来、能记住"四个闭环

为什么推荐

  • Unity 统一运行时:手机端与 MR 端共用角色、动画、状态机与交互层,工程收敛度更高。
  • 云端编排优先:LLM、关系推进、记忆读取和日志分析迭代频繁,更适合放服务端统一管理。
  • 复用现有记忆库 / 数字生命引擎:当前任务重点是接入与编排,而不是重写角色底层认知系统。
  • 表现先走受控生成:第一期优先标准化动作库、表情规则、LookAt、停顿和手势反馈,并在此基础上做条件生成与动作库回退,而不是直接上无约束全生成身体表现。

一期优先级

先做

流式 ASR / TTS、对话编排器、角色状态层、记忆调用、表情动作驱动、弱网降级。

后做

全身生成动画、复杂物理布料、端侧大模型、本地长期记忆库、动态场景生成。

第一阶段的成功标准不是"什么都做",而是"用户能明显感到她在认真回应、记住自己,并且说话时不是只有嘴在动"。

技术目标

  • 用户可用语音或文本输入,自然地与虚拟人持续交流。
  • 虚拟人回复时同步具备表情、动作、注视、停顿与情绪反馈。
  • 系统能基于现有记忆库 / 数字生命引擎体现称呼、欢迎语、偏好与关系延续。
  • 剧情副本能用关卡配置、视频、立绘、语音对白和选择结果推动关系成长。
  • 跨端 Action 层能在用户授权下连接车机、音箱、耳机、手表、MR 与 IoT 设备。

一期边界

  • 不重做记忆系统,只做稳定接入、低延迟调用与异步写回。
  • 不做开放世界家园或高度自由生成剧情,剧情副本优先走可配置关卡和受控内容管线。
  • 不追求全身动作生成,而是先做可控、细腻、低重复的基础角色表现。
  • IoT 第一阶段不追求全生态打通,优先接入少量高频设备和清晰授权场景。
A

共同能力

ASR、TTS、LLM 编排、记忆接入、角色状态层、内容状态、Action 权限、埋点日志。

B

手机端差异

文本输入权重更高、资源预算更紧、页面与聊天容器并存、后台网络切换更频繁。

C

MR 端差异

空间锚定、注视反馈、近身存在感、空间音频与性能预算比手机端更敏感。

D

阶段划分

一期做房间闭环、剧情样章和少量 IoT 联动,二期再补生态扩展、MR 高光和更重生成能力。

02 系统架构与核心模块

十层架构 + 核心模块清单 + 端云部署原则,一张图讲清系统怎么搭

Architecture Map

客户端表现层
  -> 交互输入层
  -> 角色驱动层
  -> 对话与智能层
  -> 情绪与关系层
  -> 记忆系统接入层
  -> 内容与配置层
  -> 服务端编排层
  -> 数据存储层
  -> 日志监控层
层级 职责 输入 输出 依赖
客户端表现层承载 Unity 场景、角色显示、UI、音频播放、动画执行与平台适配。动作指令、文本、音频流、配置、用户输入事件。视觉反馈、语音输出、状态回执。角色驱动层、内容配置、资源管理。
交互输入层接收语音、文本、点击、凝视与打断事件,统一包装为会话输入。麦克风流、文本内容、UI 事件、MR 注视事件。结构化输入包。ASR、客户端事件系统。
角色驱动层把回复语义转成表情、动作、LookAt、停顿和 Idle 行为。情绪标签、动作意图、对话状态。Animation 指令、Blendshape 权重、注视目标。对话编排器、Unity 动画系统。
对话与智能层处理回复生成、追问、打断、上下文裁剪和回合推进。结构化输入包、记忆召回结果、关系状态。回复文本、情绪标签、行为槽位。LLM、编排器、记忆接入层。
情绪与关系层维护情绪基线、亲密度、称呼偏好与关系推进节奏。对话事件、行为事件、历史标签。情绪状态、关系值、风格偏置。数字生命引擎、配置层。
记忆系统接入层负责记忆检索、轻量缓存、异步写回与延迟控制。用户 ID、当前话题、会话意图。欢迎语线索、称呼、偏好、历史片段。现有记忆库 / 数字生命引擎。
内容与配置层维护角色设定、提示词、情绪参数、动作映射、场景配置与灰度开关。策划配置、版本信息、运营内容。运行时参数与可热更新资源。服务端编排层、客户端资源管理。
服务端编排层统一调度 ASR、LLM、TTS、记忆检索、关系更新和日志落地。会话请求、配置、服务健康状态。流式 token、音频片段、行为指令、监控事件。对话与智能层、数据层、监控层。
数据存储层存放会话日志、关系状态、配置快照、素材元数据与监控数据。结构化事件、异步写回任务。查询结果、统计数据、恢复数据。数据库、对象存储、缓存。
日志监控层监控延迟、失败率、打断率、用户停留、ASR/TTS 质量与资源消耗。埋点、错误日志、性能指标。告警、仪表盘、排障线索。服务端编排层、客户端埋点。

核心模块与端云部署

以下为系统最关键的 10 个模块,端云部署原则已融入表格:LLM/编排/关系/记忆/日志必须云端;动画/表情/口型/LookAt/Idle 必须本地;ASR/TTS 云端主+端侧保底;场景上下文本地采集云端使用;配置云端主+本地缓存。

模块 职责 部署位置 第一版实现深度
ASR把语音流转成文本,输出时间戳和基础情绪线索。云端主、端侧缓存流式识别 + 中断恢复 + 关键词置信度
TTS把回复文本转成流式语音,输出韵律控制参数。云端主支持情绪、停顿、语速、音色切换
LLM 对话引擎理解输入、生成回复、控制追问和回答风格。云端单角色单会话,支持文本和语音输入上下文
对话编排器串起 ASR、记忆、关系、LLM、TTS 和表现指令。云端超时回退、流式回包、打断重入
角色意图/状态/情绪/关系把回复语义归一化为行为意图,维护运行时状态、情绪基线与亲密度。云端计算,客户端执行规则+模型槽位输出,有限状态驱动
记忆系统接入调用现有记忆库,检索与写回记忆。云端对话前检索、对话后异步整理
动作/表情/口型/LookAt选择动作、驱动面部、口型同步、稳定视线行为。客户端动作库+Blendshape+OVRLipSync+三级 LookAt
Idle 待机与手势反馈无输入时保持存在感,承接低成本手势表现。客户端呼吸/眨眼/微转头+预设手势状态槽位
场景上下文系统输入当前场景、时间、位置和交互对象。客户端采集,云端使用手机/MR 场景上下文统一字段
配置管理与埋点日志管理提示词、关系阈值、灰度开关;记录延迟、失败、打断、停留。云端主、本地缓存 / 双端可版本化配置 + 客户端埋点+服务端 Trace

03 交互链路与记忆支撑

从"听见"到"被记住"的完整交互链路,记忆不是外挂而是体验的一部分

Voice Loop

用户语音输入
  -> VAD 开始录音
  -> 流式 ASR
  -> 编排器接入场景上下文 + 关系状态 + 记忆检索
  -> LLM 生成回复语义 + 情绪标签 + 行为槽位
  -> TTS 流式合成
  -> 客户端同步执行口型 / 表情 / LookAt / 手势 / 语音播放

这是主链路。只要这一条链路成立,项目就已经具备"自然交流 + 角色表现 + 被记住感"的基础体验。

文本输入链路

文本输入跳过 ASR,但仍然走同一套编排、情绪、关系、记忆与表现驱动,不允许出现"文本模式只有字幕、角色没表现"的断裂。

首次进入场景

先读取轻量记忆与关系状态;新用户走初识欢迎,老用户走差异化欢迎,客户端先进入等待与注视状态,避免空场硬切。

老用户再次进入并体现"被记住"

优先读取称呼、最近事件、当前关系阶段与上次中断话题,欢迎语、眼神和说话风格直接体现"她记得你"。

打断、停顿、追问处理

  • 打断:用户插话时,客户端立刻中止 TTS 播放,角色进入"收束动作 + 重新倾听"状态。
  • 停顿:长回复前先给出思考停顿、眼神变化和轻微吸气,不让角色像网络卡住。
  • 追问:由编排器判定是否继续追问,避免模型每轮都无限扩展。

弱网 / 高延迟 / 模块失败降级

  • ASR 超时时允许回落到文本输入提示。
  • TTS 失败时允许先显示文本并播放短音效占位,不让角色完全静止。
  • 记忆服务超时时改用最近一次缓存的称呼与关系状态。
  • LLM 超时时使用安全回复模板 + 情绪表现保底,保证体验不断裂。

Memory Loop

对话前:
  读取称呼 / 最近事件 / 关系阶段 / 近期偏好

对话中:
  需要时轻量追加检索,避免每轮全量召回

对话后:
  将会话摘要、关键事件、情绪波动、关系变化异步写回

记忆系统架构:如何低延迟接入并支撑交互体验

  • 延迟控制:首次进入只读轻量记忆,会话中按需召回,会话后异步写回,不阻塞当前回合。
  • 决定称呼与欢迎语:老用户再次进入时,优先读取称呼、最近事件、关系阶段与上次中断话题,欢迎语直接体现"她记得你"。
  • 影响回复倾向:避免每次都像陌生人,根据历史偏好调整追问深度和情绪策略。
  • 影响关系推进:不让重要节点突兀发生,记忆状态参与关系节奏控制。

05 跨端生活介入

跨端生活介入需要一层独立 Action Gateway,统一授权、设备状态和厂商生态差异

Fensy 不能把 IoT 能力写成散落在各端的功能按钮。更稳的做法是把"提醒、播放、灯光、空气、窗帘、场景模式、车家接力"等动作抽象成统一 Action, 再由网关适配米家、Matter/HomeKit、华为鸿蒙智联、车机生态和可穿戴设备。

生态 / 终端 一期建议能力 接入重点
米家 / 智能家居灯光、音箱、空气、窗帘、场景开关优先做明确可见的环境反馈,所有执行动作必须经过用户授权和可回滚提示。
Matter / HomeKit跨品牌设备发现、状态读取、标准化开关类动作用统一设备模型屏蔽品牌差异,先支持低风险状态查询和开关类动作。
华为鸿蒙智联手机、耳机、音箱、手表和家居场景联动重点处理多设备连续性,让同一个角色状态能在不同终端自然接续。
车机生态出行提醒、导航建议、音乐氛围、到家前场景预热车机只做轻量陪伴和建议,不在驾驶过程中制造复杂交互或高风险控制。
桌面 / 耳机 / 手表 / MR工作陪伴、语音在场、轻提醒、高光沉浸根据终端负载拆分表现层,确保同一个会话和记忆状态能跨端同步。

Action Gateway 的职责

  • 设备注册:记录设备能力、所在空间、在线状态、厂商生态和用户命名。
  • 动作抽象:把"调暗灯光""播放歌单""到家预热"统一成可审计 Action。
  • 权限判断:按用户、设备、场景和风险级别决定可建议、待确认或可自动执行。
  • 执行回执:每次调用都返回成功、失败、超时、被用户取消或需要二次确认。
  • 日志回放:把角色为什么提出动作、用户是否授权、设备是否执行记录到事件链。

三档授权边界

  • 只建议:导航、购物、健康、驾驶相关动作只给建议,不直接执行。
  • 待确认:灯光、音乐、窗帘、空调等家庭设备默认弹出确认或语音确认。
  • 可自动:用户明确设定的低风险例行场景可自动执行,例如晚间低亮度氛围灯。
  • 随时撤销:所有设备权限都要能在手机房间首页查看、暂停、撤销和回滚。

Cross-device Action Flow

用户意图 / 角色主动建议
  -> 对话编排器判断场景和风险
  -> Action Gateway 读取设备能力与授权策略
  -> 用户确认或自动执行
  -> 厂商生态适配器调用设备
  -> 执行结果回写到房间、剧情关系和长期记忆

04 角色表现系统

从"知道演什么"到"演得好看且真实":语义驱动 + 高保真渲染的一体化方案

语义到表现的映射

  • 文本语义:回复被拆成欢迎、安抚、追问、解释、轻调侃等行为槽位。
  • 动作:不同槽位绑定不同动作池,避免每句都用同一套说话手势。
  • 表情:情绪标签映射眉眼、嘴角、眨眼频率和面部收缩强度。
  • 视线:听用户说话时稳定注视,说话时适度偏移,思考时短暂离焦再回看。

回复前 / 中 / 后的表现组织

  • 回复前:接收输入后进入倾听收束,再给一个思考停顿与轻微呼吸变化。
  • 回复中:口型、表情、头部微动作、视线切换和说话手势同步推进。
  • 回复后:尾句收束、眼神停留、轻微点头或等待姿态,承接下一轮互动。

语音韵律如何影响表现

TTS 不只是声音输出,还要同步携带语速、重音、停顿长度和情绪强度参数。 这些参数应直接影响表情幅度、头部动作频率、手势起止点和呼吸节奏。

如何避免机械、重复、有限状态机味太重

  • 动作与表情使用池化与权重随机,而不是固定一一映射。
  • Idle、说话动作和转场动作分别管理,避免全程同一种讲解姿态。
  • 情绪强度与关系阶段共同参与权重计算,让同一句话在不同状态下表现不同。
  • 保持小动作密度高于大动作密度,用微反应替代频繁夸张演出。
A

动画主路线

采用"动捕 / 面捕采集 + 动画师精修 + 标准化动作库 + 条件生成模型"的路线,让 AI 生成建立在高质量基底之上,而不是从噪声数据直接黑盒出片。

B

样本组织方式

每条样本都要绑定二维情绪坐标、亲密度阶段、角色状态、语义意图、语音韵律、视线目标和机位类型,保证后续模型能学到"为什么这样演"。

C

当前阶段建议

V1 先做"检索增强 + 条件生成 + 动作库回退"。也就是模型生成动作倾向和骨骼偏移,但关键欢迎、安抚、触碰回馈仍保留人工精选库兜底。

二维情绪标签主表

建议以 Russell 的环形模型作为基础理论,用效价(Valence)和唤醒度(Arousal)两个连续维度为样本打标签。采集和精修阶段都用同一套坐标逻辑,避免训练时语义漂移。

Capture Label Schema
在这个坐标系中,愤怒是高唤醒 + 负效价,放松是低唤醒 + 正效价。 对动作生成来说,二维模型先定义"当前基础情绪落点",亲密度和角色状态再作为修正层参与最终表演。
Fensy 二维情绪模型示意图

这张图可以直接作为动作生成模型、采集团队和动画师之间的统一坐标参考:先定位效价和唤醒度,再叠加亲密度、角色状态和语义意图做二级修正。

情绪示例 效价 唤醒度 二维位置理解 动作与表情采集重点
兴奋0.90.9高唤醒 + 高正效价动作更快,手势外扩更明显,眉眼亮起,采集"突然点亮"和"持续兴奋"两个强度版本。
喜悦0.80.6中高唤醒 + 正效价笑容更亮,视线更主动,头部和肩线有轻微上扬,适合欢迎和被认同时的样本。
满足0.6-0.1低唤醒 + 正效价动作收稳,嘴角有轻笑,适合回复后收尾、满意陪伴和轻松确认场景。
放松0.7-0.7低唤醒 + 正效价肩颈放松、呼吸变长、动作更小,重点采陪伴态、深夜安静态和无言陪伴态。
好奇0.20.5轻正效价 + 中高唤醒头部微偏、注视更聚焦,追问意愿更明显,重点采观察、确认、被吸引的微反应。
惊讶0.10.9中性偏正 + 高唤醒眼睛睁大、动作短促、语言滞后半拍,重点采"先反应后说话"的瞬时样本。
紧张-0.40.7高唤醒 + 负效价呼吸更短,肩颈更紧,动作更碎,重点采警觉、等待、被点名后的不稳定状态。
焦虑-0.70.6高唤醒 + 明显负效价会反复确认、目光不完全稳定,重点采担心、迟疑、难以放松的连续微动作。
愤怒-0.90.8高唤醒 + 高负效价肌肉更紧、起手更快、手势更有方向性,重点采克制型愤怒而不是夸张爆发。
悲伤-0.8-0.4低唤醒 + 明显负效价肩颈收束、眼神更低、语速更慢,重点采长停顿和情绪下沉时的连贯过渡。
疲惫-0.4-0.8低唤醒 + 轻负效价动作更慢更轻,能量感下降,适合下班、深夜、低电量陪伴等样本。
无聊-0.2-0.7低唤醒 + 轻负效价视线更漂移,动作更稀少,更容易出现等待和低能量停滞姿态。

亲密度阶段如何修正同一情绪

亲密度阶段 动作倾向 表情与视线倾向 采集要点
初识期 0 - 20动作幅度小,手势留在身体正面,不主动做高亲密接近。微笑更礼貌,注视更短,疑惑和观察感更强。每个情绪都要采一版"收束态",作为所有模型的安全默认值。
熟悉期 20 - 40点头、回应式抬手和邀请式手势增加,节奏更稳定。开始出现更自然的回看和持续倾听神情。重点采日常对话、中性开心、轻度安抚等高频会话样本。
亲近期 40 - 60允许轻微前倾、玩笑式摆动和共创型动作。亮眼、偷笑、轻调侃表情可以更明显。重点采共同兴趣、邀约、分享秘密前兆等"拉近关系"样本。
信赖期 60 - 75安抚动作更慢更稳,允许长时间无动作陪伴。眉眼更柔软,失落和关切之间可自然过渡。重点采沉默陪伴、夜间倾听、轻度脆弱暴露等长停顿样本。
亲密期 75 - 90允许回握、接物、专属仪式动作,但仍保持克制和真实。害羞、安心、依恋可以复合出现,回看时间更长。重点采近距离互动、触碰反馈、专属欢迎和道别等"只对你这样"的样本。
共鸣期 90 - 100大动作反而减少,更依赖精确的呼吸、停顿和极小骨骼偏移。一个眼神停留和一次轻呼气就要能成立,不再靠夸张演出。重点采低幅度高信息量样本,让模型学会"懂你时不用演很多"。

采集标签建议至少覆盖这些字段

  • 二维情绪坐标(效价、唤醒度)+ 主情绪名称 + 次情绪标签 + 强度说明。
  • 亲密度阶段、角色状态、时间语境、场景入口和对话意图。
  • 语音韵律强度、说话速度、停顿类型、是否被打断。
  • 坐姿 / 站姿、手部是否持物、视线目标位置、镜头景别。
  • 面部基准版本、骨骼版本、动作师修订轮次和最终可用评级。

建议的采集切片

  • 听:听用户时的注视、理解、误解、被触动和被安慰。
  • 想:思考停顿、回忆记忆、犹豫、要不要开口。
  • 说:欢迎、解释、追问、安抚、调侃、撒娇、道歉、拒绝。
  • 收:尾句收束、等待下一轮、留恋、欲言又止。
  • 无言陪伴:不说话但仍在场,尤其是深夜和高亲密阶段。

主流面部基准与本项目建议

基准 定位 优点 局限 本项目建议用法
FACS / AU表情语义与训练标注层适合描述动作单元,便于做表演语义标注和跨团队沟通。不是直接的运行时 rig 标准,落到引擎还需要映射。作为数据标注和动画评审语言保留,不直接作为最终面部驱动接口。
ARKit Blendshape设备捕捉与实时驱动常用接口生态成熟,移动端和实时驱动链路常见,和许多面捕工具兼容。表达维度够用但不算最丰富,高质量表演仍需更细的上层控制。作为设备采集与实时互通层保留,建议维护到主 rig 的双向映射。
MetaHuman Facial Description Standard高质量数字人面部控制标准语义细、覆盖广,适合高保真角色表演和后续高质量生成建模。直接照搬成本较高,需要结合 Unity 运行时做资源裁剪和映射。建议作为当前项目主面部基准。以它定义主 rig 与高精度语义,再导出到 Unity 运行时控制层。
最推荐的方案是:以 MetaHuman Facial Description Standard 作为主面部基准,保留到 ARKit 系数的兼容映射,并用 FACS / AU 作为采集标注语言。 这样既能保证高质量角色表演的上限,又不会失去手机端、面捕设备和实时驱动生态的互通能力。

高保真渲染

知道"演什么"之后,还要解决"怎么演得好看"

以下重点汇报角色高感知渲染的核心技术方案。我们在眼睛、面部、头发、布料和材质特效五个维度上各攻了一个关键技术难点,让水母娘在用户靠近看时,眼睛有水、脸会红、发丝会动、裙摆有重量、身体像水母一样微微发光。普通建模流程不在此赘述。

Fensy 长时间对视效果图

Beauty Target

第一眼要成立:温柔、湿润、会回看

High Fidelity Character

技术核心:把"漂亮"拆成五层,每一层都有专门攻克的高难点

水母娘不是"模型好看"这么简单,而是要让用户感觉到她是活的。我们把面部、眼睛、皮肤、头发、布料和特效绑定到同一套角色状态机里,情绪发生时,瞳孔、脸红、呼吸、发丝和裙摆会同时响应。以下五个模块各有独立的技术攻坚点,组合起来才形成了"她会看你、会害羞、会呼吸"的完整观感。

多层眼球结构 表情修正系统 发片到发丝分级 神经布料加速 环境光照融合 六层状态联动
Fensy 对视时的眼神表现

01 Eyes

眼睛要像有水、有光、有犹豫

01 眼睛:多层眼球结构 + 动态视线系统

核心难点:普通数字人眼睛像贴了一张塑料贴纸,没有深度和湿润感。真实眼球是复杂的光学系统,光线要穿透角膜、在虹膜上散射、再被泪膜折射,少了任何一层都会显得假。

我们的方案:把眼球拆成5层独立结构——巩膜(眼白)、虹膜、瞳孔、角膜、泪膜分别建模和渲染。虹膜用独立法线贴图刻画纤维放射状纹理,支持瞳孔随光线和情绪缩放;角膜设定高透射、高反射材质,叠加泪膜模拟湿润反光;巩膜区域渲染细微血管,避免眼白死白。

技术价值:多层结构让眼睛有了向内凹陷的晶体深度感,不是平面的。运行时叠加视线追踪和微扫视算法,长时间对视时她会努力看你、犹豫移开、再偷偷看回来,眼神有了"犹豫"和"害羞"的情绪温度。

五层独立眼球 虹膜纤维纹理 角膜泪膜折射 微扫视线
Fensy 被整理发丝时的面部和发丝表现

02 Face

眨眼、脸红和唇部细节一起表达害羞

02 面部:高精度表情修正 + 情绪材质联动

核心难点:标准表情系统做闭眼、大笑、嘟嘴时容易"破形"——眼皮塌陷、脸颊穿模、嘴角撕裂。情绪如果只在骨骼上切换,看起来就像换面具,没有温度。

我们的方案:在关键表情节点引入修正形变系统,闭眼时眼皮保持自然弧度、大笑时脸颊有体积、嘟嘴时嘴角不撕裂;同时保留手机面捕设备的兼容映射,采集的表演能准确还原。情绪还联动材质变化:害羞时脸颊泛红、耳尖升温、眼下色调变暖、唇部增加湿润感。

技术价值:用户看到的不是"换了个表情",而是"她真的脸红了"。近距离看也不会穿模破形,面部表演有真实肉感。

表情修正系统 面捕兼容映射 情绪材质联动 动态脸红
Fensy 发丝接触产生水光波纹

03 Hair

头发要轻、软、透,不像一整块塑料

03 头发:发片到发丝的分级方案 + 实时物理响应

核心难点:移动端性能有限,不能做发丝级模型,但发片如果做成死板的片状就会像塑料。高端剧情渲染又需要独立发丝的层次和光泽。头发还要能响应触碰、风力和角色动作。

我们的方案:移动端用发片方案,每束定义清晰的光泽流向和透明衰减,发梢自然虚化;刘海、鬓角、长发尾部接入弹簧骨骼链,实时计算发丝与头部运动、环境风力的物理碰撞,产生延迟摆动。高端剧情渲染切换到发束曲线模型,用大量独立发丝构建发型,体积和光泽更细腻。同一套发型资产支持分级切换。

技术价值:转头、靠近、被触碰、甚至角色呼吸时,发丝都有柔软的二级动态,不像一整块塑料。用户整理她发丝时,头发会自然受力散开再回弹。

发片光泽流向 发束曲线模型 实时物理碰撞 跨平台精度切换
Fensy 旋转时裙摆和水光特效

04 Cloth

裙摆和薄纱要有重量、延迟和透明层次

04 布料:物理约束解算 + 神经加速

核心难点:裙子、薄纱、丝带既要"版型稳定"又要"边缘会动",透明层多了还会闪烁或糊成一片。更麻烦的是,移动端算力有限,复杂物理模拟容易掉帧。

我们的方案:对腰部和肩部做固定约束,边缘设柔软约束,实时计算重力、风力、惯性以及布料与身体的碰撞,避免穿模。透明纱额外处理厚度感和边缘透光,解决多层透明旋转时的排序问题。移动端引入轻量级神经布料模型,用AI替代部分复杂物理计算,保证流畅度。

技术价值:旋转、行走、被触碰时,裙摆有自然的重量感和延迟摆动,薄纱的透明层次清晰可见。手机端也能流畅运行,高端设备效果更好。

分区约束解算 碰撞体系统 透明层厚度 神经布料加速
Fensy 角色材质与服装方向参考

05 Material

皮肤柔、服装精、水母元素透亮

05 材质与光照:皮肤透光 + 环境融合 + 水母荧光

核心难点:普通材质"死白死白",没有生命感。MR场景中,虚拟角色如果用自己的一套光照,会和真实环境割裂;水母娘的透明荧光特征,普通材质更做不出来。

我们的方案:皮肤采用次表面散射模拟光线穿透薄皮层的暖色透光,配合高分辨率纹理和多层次法线贴图还原毛孔与皱纹的微观起伏。MR端通过传感器估算真实环境光照方向和强度,让虚拟角色被同一盏灯照亮。水母特征用半透明折射、边缘荧光和噪声流动贴图,营造果冻感和深海荧光。配合接触阴影强化皮肤凹陷和物体相接处的立体感。

技术价值:角色身体本身在微微发光,有生物感。在MR里看,她像是站在你房间里,而不是一个悬浮的贴图。

次表面散射 环境光照估计 半透明折射 接触阴影
06 Runtime Principle

06 统一调度:六层状态机联动,让反应像真人一样连续

核心难点:如果眼睛、面部、头发、布料、材质各自独立播放,看起来会像拼凑的动画。用户整理她发丝时,如果只有头发在动、脸没反应、眼神还盯着别处,立刻就出戏。

我们的方案:把表演拆成语义状态、面部状态、眼神状态、身体状态、材质状态、物理状态六层。用户替她整理发丝时,系统同时触发视线躲闪、眨眼变慢、脸颊泛红、发丝受力摆动、水纹从接触点扩散、裙摆轻微跟随。

技术价值:用户看到的是一个自然连续的反应,底层是六个技术层被同一事件协调。这就是水母娘"有生命感"的根本原因——她不是在"播放动画",而是在"回应你"。

实时端:手机与 MR 端按设备档次自动切换渲染精度,发片简化、物理降频、皮肤近似算法,帧率优先不掉体验。
高光演出:剧情视频或 MR 展示可用发束曲线、高质量布料缓存、完整次表面散射放大观感,做"秀肌肉"的版本。
性能策略:引入注视点渲染,只对用户视线焦点(如眼睛和面部)分配高精度算力;模型和纹理按平台压缩轻量化;复杂计算走云端协同,端侧保流畅。
制作策略:关键欢迎、害羞、安抚、对视、触碰反馈优先用动作/面部采集再精修,生成式方案只做辅助和变体。
F

近景可信

皮肤次表面散射、眼睛五层结构、泪膜湿润、眨眼、微扫视和表情修正,决定用户靠近看时是否相信她是"活的"。

P

运动可信

头发、服装、饰品、呼吸、手指和身体重心共同制造二级动态,避免角色像硬模型在播放音频。

L

跨端可信

同一套资产必须有移动端、MR、桌面和剧情渲染的质量档,靠 LOD、注视点渲染和云边协同维持稳定表现。

06 平台适配与性能保障

Unity 统一底座,手机与 MR 分档适配,性能预算和风险提前锁定

Unity 负责哪些部分

  • 角色模型、材质、骨骼、Blendshape、动画图和口型驱动。
  • 文本与语音输入容器、麦克风接入、TTS 播放和状态切换。
  • LookAt、Idle、说话手势、情绪表现与镜头 / UI 层。
  • 手机端与 MR 端的场景、资源与性能档管理。

动画系统如何组织

  • 基础 locomotion / idle 层与说话动作层分开。
  • 表情、口型、LookAt 采用叠加层或独立驱动,不与主动作强耦合。
  • 动作选择由角色驱动层控制,不把业务逻辑硬写进 Animator 状态图。
  • 通过事件系统触发欢迎、倾听、思考、说话、收束等运行时状态。
M

手机端重点

60fps 优先、包体与发热控制、文本输入与语音并存、断网回退、前后台状态切换更重要。

R

MR 端重点

72fps 基线、空间锚定、近身表现、空间音频、视线反馈与用户舒适度控制更重要。

S

共用逻辑

会话状态、记忆接入、角色状态层、表情动作映射、埋点事件、资源配置结构都应共用。

表情 / 口型 / LookAt 如何组织

建议采用"主动作层 + 面部层 + 口型层 + 注视层"的分层结构。 这样说话时既能保持基础姿态,又能叠加口型和视线变化,不会互相覆盖。

Vision Pro 平台约束

当前目标平台不是以 Vision Pro 为首发,但 Vision Pro 平台约束仍值得保留做对照: 它对手势、空间映射、渲染管线和输入方式有更严格要求,因此本期不建议把它纳入主实现目标, 可作为后续 MR 高端平台研究项参照。

性能预算与风险规避

帧率、延迟、包体、成本和风险提前锁定,不让性能问题在后期爆发。

性能与延迟预算

  • 手机端目标帧率:60fps 目标,45fps 为最低可接受稳定线。
  • MR 端目标帧率:72fps 基线,高性能设备向 90fps 优化。
  • 语音首字延迟:理想 800ms - 1.5s,超过 2s 必须有思考与等待反馈。
  • 文本回复可接受延迟:1.5s 内最佳,3s 以上需要过渡状态。
  • 包体与缓存:角色主资源常驻,场景与增强资源按平台分包下载。
  • 服务端成本敏感点:流式 TTS、长上下文 LLM 和多轮记忆检索是主要成本项。
  • 线上诊断建议:客户端事件 + 服务端 trace 必须能串起单次会话全链路。

关键风险与规避

  • 风险 1:对话自然但角色表现呆板。
    规避:先做表现驱动层,不让技术方案只停留在 LLM 侧。
  • 风险 2:记忆接入拖慢回复。
    规避:轻量读取 + 按需召回 + 异步写回。
  • 风险 3:手机端性能不足。
    规避:主资源常驻、动作库轻量化、特效分档、日志持续监控。
  • 风险 4:MR 表现强,但工程链路不稳定。
    规避:优先把手机端与云端链路打稳,再放大 MR 侧表现层。

07 开发计划与选型

按 P0→P3 四阶段推进,技术选型与任务拆解一次讲清

P0

技术验证

  • 跑通 Unity 客户端与编排服务最小链路
  • 验证 ASR / LLM / TTS / 口型 / 表情连通
  • 接入现有记忆库做欢迎语与称呼实验

P1

最小可用版本

  • 手机端完成稳定会话闭环
  • MR 端完成单场景对话与存在感表现
  • 关系状态、情绪和记忆前后写回跑通

P2

高质量演示版

  • 补齐更细的动作池、Idle 与情绪层次
  • 完善打断、追问、弱网降级和日志排障
  • 把"被记住感"做成明显的欢迎体验

P3

可上线版本

  • 接入监控、灰度配置、日志回放与热更新
  • 按手机端与 MR 端做完整性能档位
  • 补齐线上诊断、运营参数与发布流程

技术选型

能力 推荐方案 说明
客户端引擎Unity 2022.3 LTS移动端房间与 MR 高光场景共用底座,便于角色表现复用。
动画系统Animator + Timeline + 事件驱动层适合第一期的可控动作组织,不急于上复杂行为树。
剧情副本管线关卡配置 + 视频 CDN + 立绘/语音资源包把主线、支线、角色回忆和限时事件拆成可配置内容单元。
ASRWhisper 类流式方案 / 商业云 ASR优先稳定低延迟,后续可加端侧保底。
TTS支持情绪参数的商业云 TTS先保证韵律和可控性,再做更高级定制。
LLM云端通用多轮对话模型重点看中文、多轮稳定性、工具调用能力与成本。
编排服务Python / FastAPI + WebSocket / SSE便于快速接入模型、记忆和日志链路。
记忆接入复用现有记忆库 / 数字生命引擎本任务明确不重构,而是做稳定接入。
IoT 接入Action Gateway + 厂商生态适配器优先支持米家、Matter/HomeKit、鸿蒙智联、车机生态的低风险动作。
日志监控结构化埋点 + 服务端 Trace至少要能回放单次会话的关键链路。

第一阶段关键任务

  • 客户端:搭 Unity 房间场景、角色运行时、表情 / 口型 / LookAt / Idle 基础链路。
  • 服务端:搭编排器、接通 ASR / LLM / TTS、统一请求协议。
  • 记忆:打通欢迎语、称呼、最近事件和关系状态读取,补异步写回。
  • IoT:搭 Action Gateway、设备能力表、授权策略和至少两个设备联动 Demo。
  • 演示:准备首次进入、老用户回归、安抚对话、追问与弱网降级五类演示脚本。

建议的排期粒度

  • 第 1 周:移动端房间骨架、会话协议、面部基准与情绪标签定版。
  • 第 2 周:ASR / LLM / TTS 跑通,接记忆欢迎与称呼,完成首批采集样本校验。
  • 第 3 周:剧情样章、表情 / 动作 / 打断 / 停顿 / Idle 打磨,验证动作库回退。
  • 第 4 周:Action Gateway、IoT 授权 Demo、弱网降级、日志埋点与跨端演示脚本。

附录:如果必须尽快出 Demo,优先砍掉哪些

  • 砍掉复杂多人互动与开放剧情分支。
  • 砍掉全身生成动作、复杂布料物理和高成本特效。
  • 砍掉端侧大模型和本地长期记忆库,只保留云端主脑。
  • 砍掉大量场景切换,聚焦一个手机场景和一个 MR 场景。
  • 砍掉重后台,只保留最基本的配置和日志链路。