相芯SDK提供的Avatar驱动功能是一种基于人工智能技术的功能,它可以通过用户的面部表情和动作来实时驱动和控制虚拟角色或虚拟人物。这个功能可以将用户的面部表情和动作实时映射到虚拟角色身上,使得虚拟角色能够模仿和响应用户的实时表情和动作。
具体来说,相芯SDK的Avatar驱动功能利用了人脸识别、人脸关键点检测、面部表情识别和姿态估计等技术。通过实时识别和分析用户的面部表情和姿态,SDK能够生成相应的驱动数据,然后将这些数据应用到虚拟角色的模型中,实现虚拟角色的实时表情和动作模仿。
这种Avatar驱动功能可以应用于多个领域,例如虚拟形象的创作、虚拟主播、虚拟助手等。它能够增强用户与虚拟角色之间的互动和沟通,使得虚拟角色更加生动和逼真。
相芯SDK提供了男孩和女孩Avatar驱动模型,这些模型具备半身驱动和全身驱动的功能,使得虚拟角色能够根据用户的面部表情和动作实时模仿和响应。
半身驱动功能: 相芯SDK的男孩和女孩Avatar驱动模型具备上身驱动功能,即能够通过用户的面部表情和动作来驱动虚拟角色的上半身行为。这意味着用户的面部表情、头部转动和上半身姿态等动作可以直接映射到虚拟角色上,使得虚拟角色能够栩栩如生地模仿用户的动作。例如,用户微笑时,虚拟角色会展现出笑容;用户转动头部时,虚拟角色也会相应地转动头部。
全身驱动功能: 除了上身驱动功能,相芯SDK的男孩和女孩Avatar驱动模型还提供了全身驱动功能,即能够通过用户的面部表情和动作来驱动虚拟角色的全身动作。这意味着用户的面部表情、头部转动以及全身动作(如手臂举起、跳跃等)都可以实时映射到虚拟角色身上,使得虚拟角色能够更加生动地模仿用户的各种动作。用户可以与虚拟角色进行互动,通过自己的动作表达情感和进行沟通。
在项目中使用Avatar驱动特效特效之前,请确保
l 已在项目中引入Faceunity SDK,详情请参考Faceunity集成文档
l 已申请包含Avatar权限的authpack证书文件
| SDK及证书获取方法:
1、发送邮件至 [email protected] 进行咨询。
allprojects配置
allprojects {
repositories {
...
maven { url 'https://maven.faceunity.com/repository/maven-public/' }
...
}
}
dependencies导入依赖
dependencies {
...
implementation 'com.faceunity:core:8.6.0'
implementation 'com.faceunity:model:8.6.0'
...
}
构造男孩对象
String ptaBoyDir = "pta/boy/";
ArrayList components = new ArrayList();
components.add(new FUBundleData(ptaBoyDir + "head.bundle"));//
components.add(new FUBundleData(ptaBoyDir + "midBody_male.bundle")); //
components.add(new FUBundleData(ptaBoyDir + "male_hair_5.bundle")); //
components.add(new FUBundleData(ptaBoyDir + "toushi_7.bundle")); //
components.add(new FUBundleData(ptaBoyDir + "peishi_erding_2.bundle")); //
components.add(new FUBundleData(ptaBoyDir + "waitao_3.bundle")); //
components.add(new FUBundleData(ptaBoyDir + "kuzi_changku_5.bundle")); //
components.add(new FUBundleData(ptaBoyDir + "xiezi_tuoxie_2.bundle")); //
构造女孩对象
tring ptaGirlDir = "pta/girl/";
ArrayList components = new ArrayList();
components.add(new FUBundleData(ptaGirlDir + "head.bundle"));
components.add(new FUBundleData(ptaGirlDir + "midBody_female.bundle"));
components.add(new FUBundleData(ptaGirlDir + "female_hair_23.bundle"));
components.add(new FUBundleData(ptaGirlDir + "toushi_5.bundle"));
components.add(new FUBundleData(ptaGirlDir + "taozhuang_12.bundle"));
components.add(new FUBundleData(ptaGirlDir + "facemakeup_3.bundle"));
components.add(new FUBundleData(ptaGirlDir + "xiezi_danxie.bundle"));
//avatar
private static String BUNDLE_AVATAR_CONTROLLER = "graphics" + File.separator + "controller_cpp.bundle";
private static String BUNDLE_AVATAR_CONFIG = "pta" + File.separator + "controller_config.bundle";
//avatar
FUBundleData controlBundle = new FUBundleData(BUNDLE_AVATAR_CONTROLLER);
FUBundleData avatarConfig = new FUBundleData(BUNDLE_AVATAR_CONFIG);
Scene sceneModel = new Scene(controlBundle, avatarConfig);sceneModel.addAvatar(avatar);
sceneModel.processorConfig.setEnableHumanProcessor(true);
String animDir = "pta/gesture/";
ArrayList animations = new ArrayList(); animations.add(new FUAnimationData(new FUBundleData(animDir + "anim_idle.bundle")));//
加载3D抗锯齿道具
Antialiasing antialiasing=new Antialiasing(new FUBundleData(DemoConfig.BUNDLE_ANTI_ALIASING));
private Avatar boyAvatarModel=boyAvatarModel = AvatarSource.buildBoyData(isFull);//
private Avatar girlAvatarModel =girlAvatarModel = AvatarSource.buildGirlData(isFull);//
加载当前特效
mFUAIKit.loadAIProcessor(DemoConfig.BUNDLE_AI_HUMAN,FUAITypeEnum.FUAITYPE_HUMAN_PROCESSOR);//
mFUAIKit.setMaxFaces(1); //
mFURenderKit.setAntialiasing(antialiasing); //
FUSceneKit.getInstance().addSceneGL(sceneModel);
FUSceneKit.getInstance().setCurrentSceneGL(sceneModel);
setHumanTrackSceneFull(isHumanTrackSceneFull);//
属性 | 说明 | 默认值 | 备注 |
enable | 3D抗锯齿开关 | true | true表示开启,false表示关闭 |
相芯SDK提供的Avatar驱动功能利用人工智能技术,实现了用户面部表情和动作对虚拟角色的实时驱动和控制,为虚拟形象的创作和互动提供了更加丰富和真实的体验,除了相芯内置的两种虚拟形象以外,相芯还提供形象定制的功能。如在接入中遇到问题,可联系相芯科技进行咨询!