前言

一个虚拟人展示到屏幕上,大致有四个步骤:

1、初始化底层渲染库(FURenderKit)及其他必要模块。

2、创建场景(FUScene)。

3、创建虚拟人(FUAvatar)。

4、将虚拟人放到场景中展示。

一、初始化


------------------------------------- FURenderKit初始化 ---------------------------------------
 
使用 FURenderKitManager 的如下接口初始化 FURenderKit
/// 根据配置信息初始化 FURenderKit
/// @param config 配置信息
+ (void)setupWithConfig:(FURenderKitManagerConfig *)config;
FURenderKitManagerConfig 是一个配置类,里面配置底层库初始化时需要用到内容,FURenderKitManager 使用这个 config 对 FURenderKit进行了初始化,并且加载了人脸驱动、身体驱动相关的资源。这是后续所有操作的前提条件。
  
----------------------------------- FUResourceManager初始化 ----------------------------------
  
云服务的初始化是通过 FUResourceManager的初始化完成的,如果需要用到云服务就需要初始化FUResourceManager
/// 根据配置信息初始化云平台能力 【⚠️所有云平台接口调用前需配置】
/// @param config 配置对象
/// @param downloadRootPath 下载文件的保存根路径
- (void)setupWithConfig:(FUCloudServiceConfig *)config downloadRootPath:(NSString *)downloadRootPath
  
------------------------------------- FUPathsHelper初始化--------------------------------------
 
FUPathsHelper 是路径管理者,属于必须初始化的类,调用如下接口即可完成初始化
+ (void)setupWithAssetsRootPath:(NSString *)assetsRootPath
              sceneListJsonPath:(NSString *)sceneListJsonPath
                defaultJsonPath:(NSString *)defaultJsonPath
             animationGraphPath:(NSString *)animationGraphPath
             animationLogicPath:(NSString *)animationLogicPath;
 
-------------------------------------- FUDataCenter初始化 --------------------------------------
  
FUDataCenter是数据管理中心,负责解析组装用户配置的场景数据(scene_list.json)和虚拟人数据(customAvatarRootPath、buildInAvatarsPath),调用如下接口即可完成初始化设置
/// 设置配置信息【⚠️使用前需先设置】
/// @param config 配置信息
- (void)setupWithConfig:(FUDataCenterConfig *)config;
  


二、FUScene的创建

FUScene 是场景模型包含灯光(FULight)、背景(FUBackground)、虚拟形象(FUAvatar)、机位(FUSceneCamera)等;


 // 创建场景
self.scene = [[FUScene alloc] init];


三、Avatar的创建


-------------------------------------- 手动创建 --------------------------------------
  
FUAvatarModel *avatarModel = [[FUAvatarModel alloc] initWithName:@"newAvatar" avatarPath:avatarPath];
 
参数解释:
1、Name 为 FUAvatarModel的名称
2、avatarPath 为 avatar.json的根路径,需要有一个标准的 avtar.json 在这个avatarPath下,才能生成一个 FUAvatar对象。
  
------------------------------- 使用 FUDataCenter进行创建 ------------------------------
 
FUDataCenter初始化后,使用下面的接口即可完成 FUAvatarModel 的创建
[[FUDataCenter shareCenter] loadAvatarsWithCompletion:^{
}];


四、Avatar的显示


//加载兜底道具
NSArray *defaultPaths = [FUPathsHelper shareHelper].defaultPaths;
NSMutableArray *temp = [NSMutableArray array];
for (NSString *path in defaultPaths) {
   [temp addObject:[[FUPathsHelper shareHelper].assetsRootPath stringByAppendingPathComponent:path]];
}
[FUPathsHelper loadDefaultBundleWithPaths:[temp copy]];
 
 
// 把创建的场景添加到渲染中
[[FURenderKit shareRenderKit] addScene:self.scene completion:^(BOOL success) {
     if (success) {
        [FURenderKit shareRenderKit].currentScene = self.scene;
                
         // 加载 Avatar的道具
         [[FUResourceManager sharedManager] loadAvatarBaseItemsWithAvatarModel:self.avatarModel progress:^(NSString * _Nonnull progress) {} completion:^(NSError * _Nullable error) {
        if (!error) {
          // 添加 Avatar到场景中
           [self.scene addAvatar:self.avatarModel.avatar];
        }
    }];
 }];


 


< 上一页: 快速集成
下一页: 下载模块 >