# DiceBear 如何标记变体 DiceBear 的自有样式共用一套标签,因此 [`tags`](https://dicebear.zhcndoc.com/guides/filter-variants-with-tags/) 过滤器在不同样式中的行为保持一致。目前仅提供一个类别:动画样式的 `animation` 标签。下文中的角色类别将在即将发布的版本中加入。 DiceBear 会根据每个变体的渲染效果进行标记,而不是根据其名称。名称并不总是可靠。名为 `long04` 的头发变体,实际查看后可能是短发,因此标签由渲染出来的形状决定。 以下原则有助于保持标签的一致性: - 标签仅用于描述。变体只携带符合其显示内容的标签,绝不会携带下方集合之外的类别。 - 只有在特征明确时才会添加标签。对于含义模糊或纯装饰性的变体,不会猜测,而是留空不标记。如果某个类别存在不带值的形式,例如 `headwear`,仍会设置该基础标签,只是不附加值。 - 大多数变体不带标签或只带一个标签。少数变体会带有两个标签,例如带有明显帽子的头发。 - 变体标签只会增加信息,不会自行移除变体。若要在渲染时排除某项,请使用 [`tags` 选项](https://dicebear.zhcndoc.com/guides/filter-variants-with-tags/) 的 `!` 形式。禁止规则存在于过滤器中,而不是数据中。 标签语法为 `category` 或 `category:value`,每个片段均采用 camelCase 格式并由字母数字组成。每个变体最多包含 32 个标签。 ## 动画 `animation` 类别涵盖动画样式中的动画组件。它是一个不带值的纯类别:每个动画变体都带有普通的 `animation` 标签,而静态默认变体不带任何标签,因此在请求动画之前,动画会保持关闭状态。 - `['animation']` 会开启动画,并根据种子以随机速度播放。 - `['!animation']` 会使头像保持静态。禁止项优先级更高,因此它也会覆盖同一列表中的 `animation`。 速度级别属于变体,而不是特征,因此不带任何值标签。若要固定速度,请设置 `animationVariant` 选项(例如 `animationVariant: 'slow'`);该选项比筛选器更具体,并且始终优先。 ## 计划中的类别 > [!WARNING] 尚未发布 > 目前没有任何 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 自有样式所使用的,并不是每种样式都必须遵循的规则。[自定义样式](https://dicebear.zhcndoc.com/guides/create-an-avatar-style-with-figma/) 可以重复使用这些分类、添加自己的值,或完全定义不同的分类。只要符合语法,你可以自由地以最适合的方式描述你的作品。