DiceBear 如何标记变体
DiceBear 的自有样式共用一套标签,因此 tags 过滤器在不同样式中的行为保持一致。目前仅提供一个类别:动画样式的 animation 标签。下文中的角色类别将在即将发布的版本中加入。
DiceBear 会根据每个变体的渲染效果进行标记,而不是根据其名称。名称并不总是可靠。名为 long04 的头发变体,实际查看后可能是短发,因此标签由渲染出来的形状决定。
以下原则有助于保持标签的一致性:
- 标签仅用于描述。变体只携带符合其显示内容的标签,绝不会携带下方集合之外的类别。
- 只有在特征明确时才会添加标签。对于含义模糊或纯装饰性的变体,不会猜测,而是留空不标记。如果某个类别存在不带值的形式,例如
headwear,仍会设置该基础标签,只是不附加值。 - 大多数变体不带标签或只带一个标签。少数变体会带有两个标签,例如带有明显帽子的头发。
- 变体标签只会增加信息,不会自行移除变体。若要在渲染时排除某项,请使用
tags选项 的!形式。禁止规则存在于过滤器中,而不是数据中。
标签语法为 category 或 category:value,每个片段均采用 camelCase 格式并由字母数字组成。每个变体最多包含 32 个标签。
动画
animation 类别涵盖动画样式中的动画组件。它是一个不带值的纯类别:每个动画变体都带有普通的 animation 标签,而静态默认变体不带任何标签,因此在请求动画之前,动画会保持关闭状态。
['animation']会开启动画,并根据种子以随机速度播放。['!animation']会使头像保持静态。禁止项优先级更高,因此它也会覆盖同一列表中的animation。
速度级别属于变体,而不是特征,因此不带任何值标签。若要固定速度,请设置 animationVariant 选项(例如 animationVariant: 'slow');该选项比筛选器更具体,并且始终优先。
计划中的类别
尚未发布
目前没有任何 DiceBear 风格携带以下类别,因此现在对它们进行筛选不会产生任何效果。
以下类别是角色风格所使用的标准集合。我们提前发布这些定义,以便自定义风格可以复用它们,并与文档中的筛选示例保持兼容。
情绪
mood 类别涵盖面部中体现表情的部分:嘴巴、眼睛、眉毛,以及任何组合表情组件。它有两个值,并且一个变体最多只能有一个值。
negative表示明显不友好或苦恼的表情:愤怒、悲伤或害怕。positive表示其他所有表情,包括开心、自然、惊讶、顽皮和困惑的表情。
只有明确负面的表情才会被标记为 negative。任何友好、中性或模棱两可的表情都会被标记为 positive,因此筛选 mood:positive 总会保留一个可用的变体,并且不会使某个组件为空。筛选情绪通常是为了让头像保持友好,而 mood:positive 正是用于此目的。
Mood 有意设计得较为粗略。更细致的情感列表无法经受筛选,因为像“悲伤”这样的特定情感,往往无法为面部的每个部分找到匹配的变体,导致该部分被移除,头像渲染不完整。两个值可以确保每个经过筛选的面部保持完整。
完全没有表情的部分,例如面罩或纯图形形状,不会设置 mood。
头发长度
hairLength 类别涵盖头发组件。它是可选的,只有在长度确实可见时才会设置。
bald表示没有头发,或头发被剃至贴近头皮。short表示头发位于耳朵以上,包括剪短或寸头。medium表示长度大约在耳朵到下颌之间。long表示头发超过下颌,达到肩部或更长。
当头发被束起或盘起,以至于无法判断长度时,例如发髻或顶髻,不会设置长度。马尾或双马尾如果能看到垂下的发尾,仍然会获得长度标记。真正属于头饰的变体会获得 headwear 标签,同时展示头发和帽子的变体可能同时携带这两个标签。
头发的发型和质感不会携带任何标签。头发看起来是波浪卷还是自然卷,取决于判断,不同风格之间可能会得出不同结果;而筛选器的作用是从整体上调整外观,而不是挑选发型。若要指定具体发型,请设置该风格自身的头发变体选项。
头饰
headwear 类别涵盖所有佩戴在头上的物品。每个此类变体至少会携带基础的 headwear 标签,因此 !headwear 会移除所有这些变体。当形状明确可辨时,还会在此基础上添加一个值:
hat表示帽冠周围都有帽檐,例如遮阳帽或软呢帽。cap表示只有前方有帽檐,例如棒球帽或平顶帽。beanie表示没有帽檐、柔软且贴合头部的帽子。turban表示包裹头发但露出脖子的布料。headscarf表示包裹头发,同时覆盖脖子或肩膀的布料。headband表示只有发带,头发仍然可见。
这些值描述的是服饰的形状,而不是佩戴者的身份。因此,两种包裹形式通过脖子来区分;标签使用的是 headscarf,而不是某种特定服饰的名称:图画展示的是布料,而同样的布料对不同的人可能意味着不同的东西。
面部毛发
facialHair 类别涵盖胡须、八字胡和鬓角。与 animation 类似,它是一个没有值的基础类别:任何展示面部毛发的变体都会携带普通的 facialHair 标签,而没有胡须的变体则不携带任何标签。
['!facialHair']会排除面部毛发。['facialHair']会移除使用该类别的组件中未带标签的变体。此类组件是否实际绘制,仍由其概率决定。
胡茬何时算作胡须,是一个不同风格之间可能得出不同结论的问题;筛选器适合用来表达是否要面部毛发。若要指定具体胡须,请设置该风格自身的面部毛发变体选项。
眼镜
eyewear 类别涵盖眼镜。
glasses表示透明镜片或普通眼镜。sunglasses表示有色或深色镜片。
配饰
accessory 类别涵盖佩戴的附加物品。
earrings表示耳饰。mask表示佩戴在嘴部或面部、用于遮挡面部的物品,例如医用口罩。口罩是佩戴物品,而不是表情,因此戴口罩的嘴部会获得accessory:mask,不会获得mood。
自定义样式
这套分类是 DiceBear 自有样式所使用的,并不是每种样式都必须遵循的规则。自定义样式 可以重复使用这些分类、添加自己的值,或完全定义不同的分类。只要符合语法,你可以自由地以最适合的方式描述你的作品。