Skip to content
导览

阿凡达NPC对象操作 NPCObject

阿凡达NPC对象操作是用于控制云渲染阿凡达NPC对象操作的工具, 该工具的主要功能包括:

  1. 设置NPC姿态
  2. 获取NPC姿态
  3. 设置NPC名字

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

NPCLayerManager

用户可以调用云渲染实例 cloud 上的 getNPCLayerManager() 方法来获取 NPCLayerManager 阿凡达NPC图层管理器。

ts
const NPCLayerManager = await cloud.getNPCLayerManager()
const NPCLayerManager = await cloud.getNPCLayerManager()

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

ts
await cloud.getNPCLayerManager()
const NPCLayerManager = cloud.nPCLayerManager
await cloud.getNPCLayerManager()
const NPCLayerManager = cloud.nPCLayerManager

获取NPC姿态 | getAction

  • 说明:获取NPC的姿态、动作

我们可以调用 NPCObject 上面的 getAction 方法来获取阿凡达NPC的姿态信息。

调用示例:

ts
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'man',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.addNPC(info, 'dms_1')
await ret.getAction()
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'man',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.addNPC(info, 'dms_1')
await ret.getAction()

设置NPC姿态 | setAction

  • 说明:设置添加的NPC姿态

我们可以调用 NPCObject 上面的 setAction 方法来设置NPC姿态的姿态。

  • 参数说明
NameTypeDescription
actionAvatarNPCPostureNPC姿态

调用示例:

ts
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'avatar_woman.wlkx',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.addNPC(info, 'dms_1')
await ret.setAction(AvatarNPCPosture.Dun_CaoZuo)
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'avatar_woman.wlkx',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.addNPC(info, 'dms_1')
await ret.setAction(AvatarNPCPosture.Dun_CaoZuo)

设置阿凡达NPC名字 | setName

  • 说明:设置添加阿凡达NPC的名字

我们可以调用 NPCObject 上面的 setAction 方法来设置添加阿凡达NPC的名字。

  • 参数说明
NameTypeDescription
namestringNPC文件名

调用示例:

ts
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'avatar_woman.wlkx',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.addNPC(info, 'dms_1')
await ret.setName('index_1')
const translation2 = new Vector3(0, 0, 0)
const eulerAngle2 = new Euler(30, 0, 0)
const scaling2 = new Vector3(1, 1, 1)
const trans = new Transform(translation2, eulerAngle2, scaling2)
const info: NPCObjectInfo = {
  resource: 'avatar_woman.wlkx',
  transform: trans,
  name: 'dms',
  action: AvatarNPCPosture.Dun_CaoZuo,
}
let nPCLayerManager = await cloud.getNPCLayerManager()
const ret = await nPCLayerManager.addNPC(info, 'dms_1')
await ret.setName('index_1')