新手引导
一次介绍产品、并让用户最后拿到自己智能体的首次运行。
先看效果
一段三步的场景:两个角色登场,一个把工作交给另一个,接收方落进头像槽位。手动切换会暂停自动播放——伸手去按按钮的人是在自己驾驶。
第 1 / 3 步,播放中
移动是 CSS 过渡,缓动函数是从引擎自己的弹簧采样出来的 linear(),所以滑行会像脸一样过冲,却不需要第二个帧循环。槽位用普通 CSS 定位:它不知道自己在哪里,正因如此宿主可以把它放在场景旁边的表单里,而不是场景之内。
什么时候用
第一次运行。什么都还没发生,产品得在没被使用的情况下展示自己能做什么,而用户最后要得到一个属于自己的智能体。角色随产品一起醒来,走完一段简短的剧本,最后落进那个将成为用户头像的槽位——刚才看着的东西,现在就是自己的东西。
用到的组件
CastStage与useCastScene——多个角色按剧本移动,AvatarSlot是其中一个最终落脚的位置。DemoDesktop、JobBubbles、SuggestionCards、LandingWait、HandOff与Composer——引导流程的零件:放演示的窗口、进行中的工作、三个起点、空白屏幕、一个智能体交接给另一个,以及一个角色会留意的输入框。CharacterMark——onSettle告诉宿主spawning或waking什么时候走完了。
状态怎么走
spawning 和 waking 是瞬间,不是条件。它们的时钟由引擎持有,通过 onSettle 上报,宿主自己的状态可以跟着走,不必再写一个重复的计时器。减弱动态效果时收敛照样触发,只是省掉那一下花活。
每个状态的样子
| 状态 | 眼睛 | 嘴 | 特效 | 编号 | HUD | |
|---|---|---|---|---|---|---|
spawning启动 | dotWide → dot | dot | gather | 08 | — | |
waking唤醒 | curve → dotHalf → dot | dot | — | 0107 | — | |
idle空闲 | dot → dot → dot → dotLeft → dot → dotRight | none | — | 02 | — | |
curious好奇 | dotWide → dotLeft → dotWide → dotRight | dot | — | 03 | — | |
sending发送 | dot → arch | smile | send | 44 | — | |
receiving接收 | dotWide → dot | dot | fall | 31 | — | |
listening聆听 | dotLeft → dot → dotLeft | none | — | 3537 | — | |
composing编排 | dotDown → dot | cat | — | 39 | — |
spawning 是这里唯一的腰带:五颗粒子用两秒螺旋向内,之后腰带表现得像 progress。waking 进入时弹一下,眼睛分三步睁开。sending 与 receiving 是一对——一个探身送出,另一个接住——所以 HandOff 不需要在两者之间画任何飞行的东西。
接下来
- CastStage——多个角色依次入场
- Walkthrough 系列——桌面、气泡、卡片与输入框
- BootLoop——程序化生成的启动序列