虚拟人妆容换装功能简介

ZEGO Avatar SDK 虚拟人SDK提供了多种妆容配饰(如美瞳、口红、眼镜、胡子等)等美术素材,支持在虚拟形象上实时渲染、自然替换,打造符合自己品味的专属虚拟形象。

虚拟人妆容换装功能-实现前提条件

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

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

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

虚拟人变妆换装实现流程

开发者请参考以下步骤,实现虚拟人 “换妆容、换服装” 功能。

开发者如果使用了 ZegoCharacterHelper,则无需再调用 ZegoCharacter 的任何相关接口。虽然 ZegoCharacter 也有同名的 setPackage 接口,但请不要直接调用。如果跳过 ZegoCharacterHelper 直接调用 ZegoCharacter 的接口,ZegoCharacterHelper 层的缓存将不再可信。

搭建出基本的虚拟人物形象后:

  1. 如果开发者把 Packages 资源包做成动态下载,则需要在使用 Packages 前,调用 ZegoCharacterHelper 的 setExtendPackagesPath 接口,设置 Packages 的下载目录到参数 downloadPath,以便资源索引。

    downloadPath 需指到 Packages 文件夹,例如:/data/data/im.zego.zegoavatarexample/files/assets/Packages

  2. 调用 setPackage 接口,传入 packageID(需要设置的资源,具体请参考下图或咨询 ZGEO 商务人员),调整虚拟人物相关位置的外观。

//确保换装调用前已经设置的外部 Packages 的目录
mCharacterHelper.setExtendPackagePath(getFilesDir().getAbsolutePath() + "/assets/Packages"); // 设置妆容、头发、眼镜等资源包所在目录 // 设置眼镜,需要确保资源已经在 setExtendPackagePath 指定的路径中
String packageID = "earphone7"; // earphone7 是一款耳机资源的目录名称,使用 Zego 提供的 Pacakges 下的目录名称即可。
mCharacterHelper.setPackage(packageID);

目前,即构虚拟人SDK ZEGO Avatar SDK支持的变妆换装的调整维度有:眉毛、刺青、嘴唇、胡子、美瞳、眼镜、耳机、耳饰、头发等。

具体的支持美颜换装维度和妆容资源类型,请咨询 ZEGO 商务人员

5 即构虚拟人ZEGO Avatar SDK更多帮助

获取本文ZEGO Avatar SDK的虚拟人的变妆换装开发文档、技术支持,访问即构文档中心,可以轻松构建变妆换装的小工具。

近期有开发规划的开发者可上即构官网查看,恰逢即构七周年全线音视频产品1折的优惠,联系商务获取"ZEGO Avatar虚拟人一个月免费试用 "的产品优惠;

1款可以美颜变妆换装的虚拟人SDK|Android的更多相关文章

  1. 【AS3 Coder】任务六:人物换装(纸娃娃)系统的制作

    使用框架:AS3(Flash Professional CS5.0及更高版本 + Flash Buider)任务描述:了解人物换装系统的制作原理难度系数:2 本章源码下载:http://www.iam ...

  2. Unity3D教程:换装方法

    http://www.manew.com/4136.html 游戏内的角色,能够像纸娃娃换装那样子让玩家可以为自己的角色改变外观,一直是相当受欢迎的功能:一般而言,我们建好的 3D 模型,如果要将其中 ...

  3. Unity3d 换装Avatar系统

    原理就是用新造的部件和角色的骨骼进行重新对接. demo的使用方法: PartIdx设置要换那个部件[0,4],一共5个部件 EquipIdx设置要更换部件的装备索引[0,1],具体看我的Change ...

  4. Unity 之 人物换装

    http://www.cnblogs.com/mcwind/archive/2011/02/18/1957453.html  原理 一. SkinedMeshRender:该对象负责网格绘制.主要数据 ...

  5. cocos2d下,优秀骨骼spine的换装思路

    语文老师说,文章要有个好开头!!! 最近正在引入spine骨骼代替dragon bone骨骼,既然要替代,那么原先在dragon bone上的一些额外需求,不管dragon bone上能不能实现,都应 ...

  6. WPF案例 (三) 模拟QQ“快速换装"界面

    原文:WPF案例 (三) 模拟QQ"快速换装"界面 这个小程序使用Wpf模拟QQ快速换装页面的动画特效,通过使用组合快捷键Ctrl+Left或Ctrl+Right,可实现Image ...

  7. 浅谈角色换装功能--Unity简单例子实现

    在前置篇中,基本上梳理了一下换装功能背后涉及到的美术工作流.但程序员嘛,功能终归是要落到代码上的.本文中会结合Unity提供的API及之前提到的内容来实现一个简单的换装功能.效果如下: (图1:最终效 ...

  8. DragonBones龙骨换装(局部换装+全局换装)

    参考: Egret官方换装动画 Egret换装三种方式 CSDN(全局换装) egret使用DragonBones实现简单的换装 换装,主要是替换任意插槽的图片,来达到局部换装的目的. 游戏中可以只制 ...

  9. Unity3d 换装 之 模型动画分离

    在手游中换装成了越来越不可缺的一个功能,毫无疑问各式各样的时装为游戏增添了不同的色彩. 对于2D手游,或许是更换对应的序列帧,也或许是如同3D手游一般,更换模型动画. 对于游戏中的人物,一般分为头.上 ...

  10. Unity动态换装之Spine换装

    注:转载请注明转载,并附原链接 http://www.cnblogs.com/liaoguipeng/p/5867510.html 燕双飞情侣 一.动态换装原理 换装,无非就是对模型的网格,或者贴图进 ...

随机推荐

  1. 阿里云部署Django主要注意事项

    (1)virtualenv 报错 os 没有 PathLike属性 阿里云ubuntu16.0服务器默认python版本分别是2.7.12,3.5.2,而PathLike是在python 3.6时才被 ...

  2. 462.Minimum Moves to Equal Array Elements II——LeetCode进阶路

    原题链接https://leetcode.com/problems/minimum-moves-to-equal-array-elements-ii/ 题目描述 Given a non-empty i ...

  3. Django Web应用开发实战第五章

    视图类是通过定义和声明类的形式实现的,根据用途划分3部分:数据显示视图.数据操作视图和日期筛选视图. 数据显示视图:将后台数据显示在网页上,数据主要来自模型,有:RedirectView.Templa ...

  4. 【服务器备份方案】基于Duplicati+Alist+阿里云盘的备份方案

    服务器备份方案 该博文转载自我的个人博客:小树 | 服务器备份方案 前言 在我们实际的生产环境中,由于云服务存在很多的不稳定性,因此对服务器进行定时备份就很有必要了. 虽然部分服务器厂商提供了快照备份 ...

  5. Vite代理配置不生效问题

    1.问题: 在写Vite+vue3.0项目时,配置vite代理,遇到不起效的问题,具体如下: // vite.config.ts proxy: { '/api': ' http://localhost ...

  6. IPMI新建BMC管理用户

    # 查看ipmi的ip [root@HOST-10-198-2-62 ~]# ipmitool lan print # 首先确认非admin用户的id,选择一个ID创建root用户 [root@HOS ...

  7. PHP中关于static的使用方法

    本文由 ChatMoney团队出品 PHP,作为一种面向对象的编程语言,为开发者提供了丰富的特性和功能,助力构建高效的应用程序.其中,static关键字在类和方法中的应用尤为重要,它提供了一种独特的变 ...

  8. Unity Shader入门精要个人学习笔记

    Unity Shader入门精要 渲染流水线 数学基础 1.点和矢量 类型 定义 表达 含义 性质 点(point) 点 (point) 是n 维空间(游戏中主要使用二维和三维空间)中的一个位置,它没 ...

  9. Vertx 实现webapi实战项目(一)

    关于Vertx的介绍在官方文档可以查看 https://vertx-china.github.io/docs/.网上也有许多介绍,这里就直接上项目. 一:使用idea搭建gradle项目.添加相关ve ...

  10. 堆栈与堆:临时变量std::vector<int> i; 在堆还是栈上?

    在学习C++ STL的过程中,会遇到很多动态分配内存的情况,以std::vector的实现(简化版)为例: template <typename T> class SimpleVector ...