Skip to content
导览

阿凡达 AvatarManager

阿凡达管理器是用于控制云渲染阿凡达的工具,通过获取该管理器,用户可以方便地进行阿凡达的控制和管理。 该工具的主要功能包括:

  1. 开启阿凡达功能
  2. 关闭阿凡达功能
  3. 重力模式
  4. 第一视角
  5. 碰撞检测
  6. 获取阿凡达状态
  7. 设置是否需要优化相机位置
  8. 设置avatar漫游速度
  9. 设置当前阿凡达的action
  10. 设置阿凡达与相机的固定位置

我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。

AvatarManager

用户可以调用云渲染实例 cloud 上的 getAvatarManager() 方法来获取 AvatarManager 阿凡达管理器。

ts
const avatarManager = await cloud.getAvatarManager()
const avatarManager = await cloud.getAvatarManager()

用户调用 cloud.getAvatarManager() 后,avatarManager 会被自动挂载到当前 cloud 实例上。

ts
await cloud.getAvatarManager()
const avatarManager = cloud.avatarManager
await cloud.getAvatarManager()
const avatarManager = cloud.avatarManager

开启阿凡达功能 | openAvatar

  • 说明:开启阿凡达功能

我们可以调用 AvatarManager 上面的 openAvatar 方法来开启阿凡达功能。

  • 参数说明
NameTypeDescription
modelFileNamestring模型文件名

调用示例:

ts
const avatarManager = await cloud.getAvatarManager();
await avatarManager.openAvatar('avatar_woman.wlkx');
const avatarManager = await cloud.getAvatarManager();
await avatarManager.openAvatar('avatar_woman.wlkx');

关闭阿凡达功能 | removeAvatar

  • 说明:关闭阿凡达功能

我们可以调用 AvatarManager 上面的 removeAvatar 方法来开启、关闭阿凡达功能。

调用示例:

ts
const avatarManager = await cloud.getAvatarManager();
await avatarManager.removeAvatar();
const avatarManager = await cloud.getAvatarManager();
await avatarManager.removeAvatar();

开启关闭重力模式 | openAvatarWalkMode

  • 说明:开启关闭,阿凡达的重力模式

我们可以调用 AvatarManager 上面的 openAvatarWalkMode 方法来开启关闭重力模式。

  • 参数说明
NameTypeDescription
parambooleantrue:开启 false:关闭

重力模式

阿凡达的重力模式可以让阿凡达角色在场景中像真实人一样受到重力的影响,比如走在斜坡上就会有所不同。若不受重力影响,阿凡达角色不会掉落,受全局重力影响,阿凡达角色会向下掉落,且走在斜坡上时会有所不同。 需要注意的是,仅当开启了阿凡达功能并设置了阿凡达的重力模式时,阿凡达角色才会受到重力的影响。

调用示例:

ts
const avatarManager = await cloud.getAvatarManager()
await avatarManager.openAvatarWalkMode(true)
const avatarManager = await cloud.getAvatarManager()
await avatarManager.openAvatarWalkMode(true)

开启关闭第一视角 | openAvatarFPPMode

  • 说明:开启关闭,阿凡达的第一视角

我们可以调用 AvatarManager 上面的 openAvatarFPPMode 方法来开启关闭,阿凡达的第一视角。

  • 参数说明
NameTypeDescription
parambooleantrue:开启 false:关闭

第一视角

阿凡达第一视角是指用户可以以阿凡达角色的视角观察和交互场景。在云渲染中,开启第一视角模式后,渲染出的画面将是以阿凡达角色为视点的视角。需要注意的是,仅当开启了阿凡达功能并设置了阿凡达第一视角模式后,才能以阿凡达角色的视角观察和交互场景。此外,当用户开启第一视角模式时,需要注意场景中的其他物体是否会遮挡阿凡达角色的视野,以免影响交互效果。

调用示例:

ts
const avatarManager = await cloud.getAvatarManager()
await avatarManager.openAvatarFPPMode(true)
const avatarManager = await cloud.getAvatarManager()
await avatarManager.openAvatarFPPMode(true)

开启关闭碰撞检测 | openAvatarHorCollideMode

  • 说明:开启关闭,阿凡达的碰撞检测

我们可以调用 AvatarManager 上面的 openAvatarHorCollideMode 方法来开启关闭,阿凡达的碰撞检测。

  • 参数说明
NameTypeDescription
parambooleantrue:开启 false:关闭

碰撞检测

阿凡达碰撞检测是指检测阿凡达角色与场景中其他物体的碰撞情况,一般用于实现阿凡达角色与物体的交互。在开启了阿凡达功能后,云渲染会自动进行碰撞检测。如果阿凡达角色与其他物体发生碰撞,则会触发碰撞事件。需要注意的是,仅当开启了阿凡达功能并设置了阿凡达碰撞检测后,才能进行阿凡达碰撞检测。

调用示例:

ts
const avatarManager = await cloud.getAvatarManager()
await avatarManager.openAvatarHorCollideMode(true)
const avatarManager = await cloud.getAvatarManager()
await avatarManager.openAvatarHorCollideMode(true)

获取阿凡达状态 | getAvatarStatus

  • 说明:是否开启阿凡达、是否开启重力模式、是否开启第一人称、是否开启碰撞检测

我们可以调用 AvatarManager 上面的 getAvatarStatus 方法来获取阿凡达状态。

调用示例:

ts
const avatarManager = await cloud.getAvatarManager()
const states = await cloud.avatarManager.getAvatarStatus()
const avatarManager = await cloud.getAvatarManager()
const states = await cloud.avatarManager.getAvatarStatus()
  • Returns

返回一个promise

Promise<AvatarStatus>

设置是否需要优化相机位置 | setIsNeedOptimizeCameraPos

  • 说明:设置是否需要优化相机位置

我们可以调用 AvatarManager 上面的 setIsNeedOptimizeCameraPos 方法来设置是否需要优化相机位置。

  • 参数说明
NameTypeDescription
isNeedOptimizeCameraPosbooleantrue:需要优化 false:不需要优化

优化相机位置

优化相机位置是指在阿凡达运动停止时,会自动变化相机的位置,找到一个较优的视角来观察阿凡达。

调用示例:

ts
const avatarManager = await cloud.getAvatarManager()
await avatarManager.setIsNeedOptimizeCameraPos(true)
const avatarManager = await cloud.getAvatarManager()
await avatarManager.setIsNeedOptimizeCameraPos(true)

获取阿凡达状态 | getAvatarStatus

  • 说明:是否开启阿凡达、是否开启重力模式、是否开启第一人称、是否开启碰撞检测

我们可以调用 AvatarManager 上面的 getAvatarStatus 方法来获取阿凡达状态。

调用示例:

ts
const avatarManager = await cloud.getAvatarManager()
const states = await cloud.avatarManager.getAvatarStatus()
const avatarManager = await cloud.getAvatarManager()
const states = await cloud.avatarManager.getAvatarStatus()
  • Returns

返回一个promise

Promise<AvatarStatus>

设置avatar漫游速度 | setAvatarMoveSpeed

  • 说明:设置avatar漫游速度

我们可以调用 AvatarManager 上面的 setAvatarMoveSpeed 方法来设置avatar漫游速度。

  • 参数说明
NameTypeDescription
speednumber漫游速度(m/s)

优化相机位置

speed取值范围0.1-10;

调用示例:

ts
let avatarManager = await cloud.getAvatarManager();//获取阿凡达管理器
await avatarManager.SetAvatarMoveSpeed(5);
let avatarManager = await cloud.getAvatarManager();//获取阿凡达管理器
await avatarManager.SetAvatarMoveSpeed(5);

设置avatar漫游姿势 | setAvatarMoveAction

  • 说明:设置avatar漫游姿势。

我们可以调用 AvatarManager 上面的 setAvatarMoveAction 方法来设置avatar漫游姿势。

  • 参数说明
NameTypeDescription
actionNamestring漫游姿势,其值可为:"Walk"、"Run"、"Stand"、"WalkCrouch"、"Climb"

调用示例:

ts
let avatarManager = await cloud.getAvatarManager();//获取阿凡达管理器
await avatarManager.setAvatarMoveAction("Run");
let avatarManager = await cloud.getAvatarManager();//获取阿凡达管理器
await avatarManager.setAvatarMoveAction("Run");

设置当前阿凡达的action | setAction

  • 说明:设置当前阿凡达的action。当行走后再次静止时需要重新设定此action。

我们可以调用 AvatarManager 上面的 setAction 方法来设置当前阿凡达的action。

  • 参数说明
NameTypeDescription
actionNamestring漫游姿势,其值可为:"Walk"、"Run"、"Stand"、"WalkCrouch"、"Climb"、"Jump"、"Fly"、"Ladder"

调用示例:

ts
let avatarManager = await cloud.getAvatarManager();//获取阿凡达管理器
await avatarManager.setAction("Run");
let avatarManager = await cloud.getAvatarManager();//获取阿凡达管理器
await avatarManager.setAction("Run");

设置阿凡达与相机的固定位置 | setFixedCamera

  • 说明:设置阿凡达与相机的固定位置

我们可以调用 AvatarManager 上面的 setFixedCamera 方法来设置阿凡达与相机的固定位置。

  • 参数说明
NameTypeDescription
heightnumber阿凡达或者模型头顶向上的距离
distancnumber距离阿凡达的距离

优化相机位置

height单位m 正为上 负为下;distanc,取值范围-100-100,单位为m ,默认为为5,正为后,负为前。

调用示例:

ts
let avatarManager = await cloud.getAvatarManager();//获取阿凡达管理器
await avatarManager.setFixedCamera(12,-15);
let avatarManager = await cloud.getAvatarManager();//获取阿凡达管理器
await avatarManager.setFixedCamera(12,-15);