Avatar 虚拟形象
  • iOS : Objective-C
  • Android
  • 产品简介
  • 下载
  • 下载体验 App
  • 快速开始
    • 跑通示例源码
    • 集成 SDK
    • 创建虚拟形象
  • 基本功能
  • 最佳实践
  • 客户端 API
  • 服务端 API
  • 常见错误码
  • 常见问题
  • 文档中心
  • Avatar 虚拟形象
  • 基本功能
  • 妆容换装

妆容换装

更新时间:2024-01-23 22:53

本文档适用于 1.5.0 及以后版本的 SDK。

功能简介

ZEGO Avatar SDK 提供了多种妆容配饰(如美瞳、口红、眼镜、胡子、服装等)等美术素材,支持在虚拟形象上实时渲染、自然替换,还支持更换皮肤、头发和嘴唇等部位的颜色,打造符合自己品味的专属形象。

前提条件

在实现“妆容换装”功能之前,请确保:

  • 已在项目中集成了 Avatar SDK,详情请参考 集成 SDK
  • 已参考 创建虚拟形象,完成基本的虚拟人物形象搭建。

您也可以创建自己的虚拟形象(详情请参考 AI 捏脸),体验换装等功能,实现自己的个性化形象定制。

实现流程

开发者请参考以下步骤,实现“换妆容,换衣服,换颜色”功能。

目前,支持调整的维度有:脸型,肤色,口红,唇形,睫毛,眉毛,眼型,美瞳,鼻型,头发,发色,涂鸦,胡子,上衣,裤子,鞋子,背饰,手枪,帽子,眼镜,耳机,耳饰,头饰等。具体支持的维度和资源类型,请咨询ZEGO商务人员。

更换妆容或衣服

  1. 确保存在妆容或衣服资源的 Package 资源包。

  2. 调用 setPackage 接口,传入资源路径,调整虚拟形象的妆容或衣服。

不同的 Package 可能互斥,穿戴新 Package 有可能会移除原本虚拟形象身上的部分 Package。

// 设置妆容,衣服等数据
// _character 为 IZegoCharacter 实例对象
[_character setPackage:@"package path" callback:^(int errorCode) {
    // 错误码回调,处理建议请参考 [常见错误码](https://doc-zh.zego.im/article/14883)
}];

移除妆容或衣服

调用 removePackage 接口,传入角色装扮类型( ZegoAvatarMakeupType )来移除对应部位装扮。

// 设置需要被移除角色装扮类型为帽子
ZegoAvatarMakeupType makeupType = ZegoAvatarMakeupTypeCap;
// _character 为 IZegoCharacter 实例对象
[_character removePackageWithMakeupType:makeupType];

更换颜色

您可以自定义虚拟形象的皮肤颜色、头发颜色以及嘴唇颜色。

以下接口的参数应为 10 进制或 16 进制的颜色信息,如:

  • 10 进制:0,0,0,0(黑色)、255,255,255,255(白色)。
  • 16 进制:000000(黑色)、FFFFFF(白色)。

更换肤色

调用 setSkinColor 接口,传入肤色信息,即可调整虚拟形象的皮肤颜色。

// 设置肤色
// _character 为 ZegoCharacter 实例对象
[_character setSkinColor:@"color info"];

更换发色

调用 setHairColor 接口,传入开始颜色和结束颜色,即可调整虚拟形象的头发颜色。开始颜色和结束颜色可以不一样,从而打造渐变效果。

// 设置发色,头发支持渐变色
// _character 为 ZegoCharacter 实例对象
[_character setHairColor:@"start color info" endColor:@"end color info"];

更换唇色

调用 setLipColor 接口,传入唇色信息,即可调整虚拟形象的嘴唇颜色。

// 设置唇色
// _character 为 ZegoCharacter 实例对象
[_character setLipColor:@"color info"];

获取所有装扮信息

调用 getMakeupConfig ,获取虚拟形象的完整装扮信息(包括没有被装扮的部位信息),格式为 JSON。

// 获取虚拟形象的所有装扮信息
// _character 为 ZegoCharacter 实例对象
[_character getMakeupConfig];

更换多部位的 property

调用 setMakeupConfig ,同时更换多部位的 property 信息(如颜色),参数格式为 JSON,请参考 getMakeupConfig 接口的返回数据。

// makeUpConfig 为 getMakeupConfig 接口的返回数据
NSString *makeUpConfig = [_character getMakeupConfig];

// 更换多部位的 property
// _character 为 ZegoCharacter 实例对象
// 注意:getMakeupConfig 接口的返回数据会同时包含 property 信息(如颜色)和 package 信息(如妆容和衣服),但是调用本接口后,只能修改虚拟形象的 property,package 数据不生效。
[_character setMakeupConfig:makeUpConfig];
本篇目录