角色设置
用户挑选自己智能体外观的那些界面。
先看效果
一个设置面板。暂存式选择器在确认时只交出一个值;触发按钮显示对话框将要编辑的东西;滑块在引擎允许的 0.8–1.25 范围内移动线条粗细,所以一个智能体不可能用和邻居不同的笔画出来。
形状
配色
脸型
鼻子
右侧的小头像就是产品其余部分会显示的样子。它接收选择器产出的同一个对象,所以名册、对话行和这一页对智能体长什么样不会有分歧。
什么时候用
用户决定自己的智能体长什么样的设置页,以及给模板取名字的对话框。角色就是被编辑的对象,所以它必须在每一个选择做出的当下就显示出来——形状、墨色、脸型、鼻子、线条粗细——同时在变化中始终还是同一个角色。这里没有任何占位符:一个从未配置过的智能体已经有一张由 id 推导出来的脸。
用到的组件
CharacterPicker——受控的网格。传入face会出现eyes | line切换,线条模式下再多一排鼻子。AgentCharacterPicker——同一个网格,但把修改先暂存到确认为止,给需要"取消"有意义的对话框。CompactCharacterPicker——一小撮形状和墨色,放在注册表单旁边。AvatarEditor、AvatarTrigger与EditableAvatar——带角色、生成、上传三个标签页的对话框,以及两种打开它的按钮。TemplateDialog——名称、说明、可见性,角色站在表单旁边。
状态怎么走
保存失败回到 idle,而不是一张难过的脸——理由见 usePublishMark。
每个状态的样子
| 状态 | 眼睛 | 嘴 | 特效 | 编号 | HUD | |
|---|---|---|---|---|---|---|
idle空闲 | dot → dot → dot → dotLeft → dot → dotRight | none | — | 02 | — | |
curious好奇 | dotWide → dotLeft → dotWide → dotRight | dot | — | 03 | — | |
happy开心 | arch → archWide → arch | cat | heart | 10 | — | |
working工作 | dotDown → dot → dotDown | none | arc | 1632 | gauge | |
celebrate庆祝 | star → archWide → wink → arch | grin | sparkle | 2533 | kpi | |
proud骄傲 | dotUp → arch | smile | sparkle | 19 | — |
这些状态都不用腰带:选择器是唯一必须让轮廓保持完整的地方,因为轮廓正是被挑选的对象。切换上方的脸型可以看到每个状态戴的嘴——线条脸正是 lineWeight 所缩放的部分。
接下来
- CharacterPicker——受控的选择网格
- AvatarEditor——角色、生成、上传三个标签页
- TemplateDialog——名称、说明与可见性