Skip to content

模型关节和动画操作 ​

目录 ​

1. 获取模型关节 ​

引入版本:3.3 起支持

功能描述 ​

获取模型关节

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId1',
  layerId: 'layerId',
};
appInstance.uniCall('getModelArticulation', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
layerIdString模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。",
  "id": "modelId",
  "data": [
    {
      "articulation": "articulationName01",
      "type": "float",
      "currentValue": "10",
      "minValue": "5",
      "maxValue": "15"
    },
    {
      "articulation": "articulationName02",
      "type": "enum",
      "currentValue": "Enum1",
      "value": [
        "Enum1",
        "Enum2"
      ]
    },
    {
      "articulation": "articulationName03",
      "currentValue": "true",
      "type": "bool"
    },
    {
      "articulation": "articulationName03",
      "currentValue": "Hello",
      "type": "streaming"
    }
  ]
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因
idString返回当前模型包含的全部关节定义信息
dataArray获取模型关节数据
data[0].articulationString关节名称
data[0].typeString关节类型, float / enum / bool / string
data[0].currentValueString关节当前的值
data[0].minValueStringfloat 类型的最小值
data[0].maxValueStringfloat 类型的最大值
data[0].valueArray枚举类型对应的全部枚举值数组

返回本章目录

2. 设置模型关节数据 ​

引入版本:3.1 起支持

功能描述 ​

设置三维场景中模型关节数据

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  layerId: 'layerId',
  duration: 1,
  data: [
    {
      articulation: 'articulationName01',
      type: 'float',
      value: '15',
    },
  ],
};
appInstance.uniCall('setModelArticulation', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
layerIdString模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。
durationNumber更新数据时长,在这个时间周期内进行差值动画(单位:秒)
dataArray定义模型关节数据
data[0].articulationString关节名称
data[0].typeString关节类型,float:浮点型关节、enum:枚举型关节;bool:布尔型关节
data[0].valueString关节取值(字符串类型)

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

3. 设置图层中的模型关节数据 ​

引入版本:4.0 起支持

功能描述 ​

设置三维场景中图层中的模型关节数据

调用方法 ​

JavaScript
let jsonData = {
  layers: [
    {
      layerId: 'layerId1',
      models: [
        {
          id: 'modelId1',
          duration: 1,
          data: [
            {
              articulation: 'articulationName01',
              type: 'float',
              value: '15',
            },
            {
              articulation: 'articulationName02',
              type: 'enum',
              value: 'String001',
            },
            {
              articulation: 'articulationName03',
              type: 'bool',
              value: 'false',
            },
          ],
        },
        {
          id: 'modelId2',
          duration: 1,
          data: [
            {
              articulation: 'articulationName01',
              type: 'float',
              value: '15',
            },
            {
              articulation: 'articulationName02',
              type: 'enum',
              value: 'String001',
            },
            {
              articulation: 'articulationName03',
              type: 'bool',
              value: 'false',
            },
          ],
        },
      ],
    },
    {
      layerId: 'layerId2',
      models: [
        {
          id: 'modelId3',
          duration: 1,
          data: [
            {
              articulation: 'articulationName01',
              type: 'float',
              value: '15',
            },
            {
              articulation: 'articulationName02',
              type: 'enum',
              value: 'String001',
            },
            {
              articulation: 'articulationName03',
              type: 'bool',
              value: 'false',
            },
          ],
        },
      ],
    },
  ],
};

appInstance.uniCall('setModelArticulationByLayer', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
layersArray图层数据
layers[0].layerIdString模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象
layers[0].modelsArray模型对象数据
layers[0].models[0].idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
layers[0].models[0].durationNumber更新数据时长,在这个时间周期内进行差值动画(单位:秒)
layers[0].models[0].dataArray定义模型关节数据
layers[0].models[0].data[0].articulationString关节名称
layers[0].models[0].data[0].typeString关节类型,float:浮点型关节、enum:枚举型关节;bool:布尔型关节
layers[0].models[0].data[0].valueString关节取值(字符串类型)

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

4. 获取模型动画 ​

引入版本:3.3 起支持

功能描述 ​

获取模型动画

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  layerId: 'layerId',
};

appInstance.uniCall('getModelAnimation', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
layerIdString模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。",
  "id": "modelId",
  "data": [
    {
      "name": "animationName01",
      "speed": 1,
      "rerverserType": "none",
      "state": "stop",
      "articulationItems": [
        {
          "startTime": 0,
          "duration": 10,
          "articulationName": "关节01",
          "articulationType": "float",
          "startState": 0,
          "endState": 25
        },
        {
          "startTime": 0,
          "duration": 10,
          "articulationName": "关节02",
          "articulationType": "float",
          "startState": 0,
          "endState": 25
        }
      ]
    },
    {
      "name": "animationName01",
      "speed": 1,
      "rerverserType": "none",
      "state": "stop",
      "articulationItems": [
        {
          "startTime": 0,
          "duration": 10,
          "articulationName": "关节03",
          "articulationType": "float",
          "startState": 0,
          "endState": 25
        },
        {
          "startTime": 0,
          "duration": 10,
          "articulationName": "关节04",
          "articulationType": "float",
          "startState": 0,
          "endState": 25
        }
      ]
    }
  ]
}

回调数据参数描述 ​

属性类型说明端渲染流渲染
resultNumber1:代表成功;0:代表失败支持支持
messageString成功或者失败原因支持支持
idString返回当前模型包含的全部动画支持支持
dataArray获取模型动画数据支持支持
data[0].nameString动画名称支持支持
data[0].speedNumber动画播放倍速支持支持
data[0].rerverserTypeString动画是否自动反播循环,"none":不循环, "round":单向循环, "repeat":往返循环支持支持
data[0].stateNumber当前动画状态,"stop","playing", "pause"支持支持
data[0].articulationltems[0].startTimeNumber动画开始时间(单位:秒)不支持支持
data[0].articulationltems[0].durationNumber动画持续时长(单位:秒)不支持支持
data[0].articulationltems[0].articulationNameString动画关节名称不支持支持
data[0].articulationltems[0].articulationTypeString动画关节类型,float:浮点型关节、enum:枚举型关节;bool:布尔型关节不支持支持
data[0].articulationltems[0].startStateString动画关节开始值不支持支持
data[0].articulationltems[0].endStateString动画关节开始值不支持支持

返回本章目录

5. 设置模型动画 ​

引入版本:3.3 起支持

功能描述 ​

设置模型动画

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  layerId: 'layerId',
  name: 'animationName01',
  speed: 1,
  rerverserType: 'none',
};

appInstance.uniCall('setModelAnimation', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
layerIdString模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。
nameString不可修改,用于查找模型中需要修改的动画
speedNumber动画播放倍速
rerverserTypeString动画是否自动反播循环,"none":不循环, "round":单向循环, "repeat":往返循环

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

6. 播放模型动画 ​

引入版本:3.3 起支持

功能描述 ​

播放模型动画

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  layerId: 'layerId',
  name: 'animationName01',
  state: 'pause',
};

appInstance.uniCall('playModelAnimation', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
layerIdString模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。
nameString不可修改,用于查找模型中需要修改的动画
stateString状态是: "begin", "pause", "stop", "restart" 四种

返回本章目录

7. 播放图层中的模型动画 ​

引入版本:4.0 起支持

功能描述 ​

播放图层中的模型动画

调用方法 ​

JavaScript
let jsonData = {
  layers: [
    {
      layerId: 'layerId1',
      models: [
        {
          id: 'modelId1',
          animations: [
            {
              name: 'animationName01',
              state: 'pause',
            },
            {
              name: 'animationName02',
              state: 'pause',
            },
          ],
        },
        {
          id: 'modelId2',
          name: 'animationName01',
          state: 'pause',
        },
      ],
    },
    {
      layerId: 'layerId2',
      models: [
        {
          id: 'modelId3',
          name: 'animationName01',
          state: 'pause',
        },
      ],
    },
  ],
};

appInstance.uniCall('playModelAnimationByLayer', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
layersArray图层数据
layers[0].layerIdString模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。
layers[0].modelsArray模型对象数据
layers[0].models[0].idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识
layers[0].models[0].animationsArray模型对象动画数据
layers[0].models[0].animations[0].nameString不可修改,用于查找模型中需要修改的动画
layers[0].models[0].animations[0].stateString状态是: "begin", "pause", "stop", "restart" 四种

返回本章目录

8. 开始关节变换 ​

引入版本:3.1 起支持

功能描述 ​

开始关节变换

调用方法 ​

JavaScript
appInstance.uniCall(
  'addEventListener',
  {
    eventName: 'onArticulationStart',
    callback: function (event) {
      console.log(event);
    },
  },
  (result) => {
    console.log(result);
  }
);

回调数据 ​

JSON
{
  "id": "articulationName01"
}

回调数据参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别

返回本章目录

9. 结束关节变换 ​

引入版本:3.1 起支持

功能描述 ​

结束关节变换

调用方法 ​

JavaScript
appInstance.uniCall(
  'addEventListener',
  {
    eventName: 'onArticulationEnd',
    callback: function (event) {
      console.log(event);
    },
  },
  (result) => {
    console.log(result);
  }
);

回调数据 ​

JSON
{
  "id": "articulationName01"
}

回调数据参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别

返回本章目录

10. 开始播放动画 ​

引入版本:3.1 起支持

功能描述 ​

开始播放动画

调用方法 ​

JavaScript
appInstance.uniCall(
  'addEventListener',
  {
    eventName: 'onAnimationStart',
    callback: function (event) {
      console.log(event);
    },
  },
  (result) => {
    console.log(result);
  }
);

回调数据 ​

JSON
{
  "id": "articulationName01"
}

回调数据参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别

返回本章目录

11. 结束播放动画 ​

引入版本:3.1 起支持

功能描述 ​

结束播放动画

调用方法 ​

JavaScript
appInstance.uniCall(
  'addEventListener',
  {
    eventName: 'onAnimationEnd',
    callback: function (event) {
      console.log(event);
    },
  },
  (result) => {
    console.log(result);
  }
);

回调数据 ​

JSON
{
  "id": "articulationName01"
}

回调数据参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别

返回本章目录

12. 持续旋转模型 ​

引入版本:3.1 起支持

功能描述 ​

持续旋转模型

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  durationX: 20,
  durationY: 0,
  durationZ: 0,
  directionX: 'clockwise',
  directionY: 'clockwise',
  directionZ: 'clockwise',
};
appInstance.uniCall('rotatingModel', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
durationXNumberX 轴旋转周期(单位:秒)
durationYNumberY 轴旋转周期(单位:秒)
durationZNumberZ 轴旋转周期(单位:秒)
directionXStringX 轴旋转方向,clockwise:顺时针方向;counterclockwise:逆时针方向
directionYStringY 轴旋转方向,clockwise:顺时针方向;counterclockwise:逆时针方向
directionZStringZ 轴旋转方向,clockwise:顺时针方向;counterclockwise:逆时针方向

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

持续旋转模型端渲染效果 ​

返回本章目录

返回本章目录

13. 设置模型持续旋转状态 ​

引入版本:3.1 起支持

功能描述 ​

设置模型持续旋转状态

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  state: 'stop',
};
appInstance.uniCall('setModelRotationState', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
stateString模型持续旋转状态,pause:暂停;continue:继续;stop:停止,回到初始状态

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

14. 持续闪烁模型 ​

引入版本:3.1 起支持

功能描述 ​

持续闪烁模型

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  duration: 0.5,
  color: '#ff0000',
  type: 'type01',
};
appInstance.uniCall('blinkingModel', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
durationNumber闪烁周期(单位:秒)
colorString闪烁颜色(HEX 颜色值)
typeString闪烁风格类别,详见下表:闪烁风格类别,default:默认风格

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

持续闪烁模型流渲染效果 ​

持续闪烁模型端渲染效果 ​

返回本章目录

返回本章目录

15. 设置模型持续闪烁状态 ​

引入版本:3.1 起支持

功能描述 ​

设置模型持续闪烁状态

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  state: 'stop',
};
appInstance.uniCall('setModelBlinkState', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
stateString模型持续闪烁状态,pause:暂停;continue:继续;stop:停止,回到初始状态

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

16. 持续移动模型 ​

引入版本:3.1 起支持

功能描述 ​

持续移动模型

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  coordType: 0,
  coordTypeZ: 0,
  loopMode: 'round',
  reverse: false,
  direction: 'path',
  offset: [0, 0, 0],
  points: [
    {
      coord: [113.9505886155735, 22.532255482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9496886155735, 22.529755482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9470886155735, 22.529755482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9491886155735, 22.528555482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9483886155735, 22.526055482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9503886155735, 22.527655482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9525886155735, 22.526055482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9517886155735, 22.528555482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9540886155735, 22.529755482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9512886155735, 22.529755482736806],
      coordZ: 64,
      speed: 120,
    },
    {
      coord: [113.9505886155735, 22.532255482736806],
      coordZ: 64,
      speed: 120,
    },
  ],
};
appInstance.uniCall('movingModel', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
coordTypeNumberXY 轴坐标类别,0:X 经度,Y 纬度;1:X 米,Y 米,相对世界 00 点
coordTypeZNumberZ 轴坐标类别,0:相对 3D 世界 0 海拔;1:相对 3D 世界地表;2:相对 3D 模型表面(单位:米)
loopModeString循环模式,none:不循环;round:往返循环;repeat:从头循环
reverseBoolean是否沿路径反向移动,true:反向运动;false:正向运动
directionString沿路径调整方向,path:沿路径调整模型方向;self:模型自己原本方向不变
offsetArray沿 XYZ 三轴向的偏移量(单位:米)
points[0].coordArrayXY 轴坐标,X:经度;Y:纬度
points[0].coordZNumberZ 轴高度(单位:米)

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

持续移动模型端渲染效果 ​

返回本章目录

返回本章目录

17. 设置模型持续移动状态 ​

引入版本:3.1 起支持

功能描述 ​

设置模型持续移动状态

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  state: 'stop',
};
appInstance.uniCall('setModelMoveState', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
stateString模型持续移动状态,pause:暂停;continue:继续;stop:停止,回到初始状态

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

18. 持续路径移动模型 ​

引入版本:3.1 起支持

功能描述 ​

持续路径移动模型

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  pathId: 'path',
  loopMode: 'round',
  reverse: false,
  direction: 'path',
  offset: [100, -30, 900],
  speed: 2,
};
appInstance.uniCall('pathingModel', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
idString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
pathIdString路径图层对象 id
loopModeString循环模式,none:不循环;round:往返循环;repeat:从头循环
reverseBoolean是否沿路径反向移动,true:反向运动;false:正向运动
directionString沿路径调整方向,path:沿路径调整模型方向;self:模型自己原本方向不变
offsetArray沿 XYZ 三轴向的偏移量(单位:米)
speedNumber模型移动速度(单位:米/秒)

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录

19. 设置模型持续路径移动状态 ​

引入版本:3.1 起支持

功能描述 ​

设置模型持续路径移动状态

调用方法 ​

JavaScript
let jsonData = {
  id: 'modelId',
  state: 'stop',
};
appInstance.uniCall('setModelPathingState', jsonData, (result) => {
  console.log(result);
});

参数描述 ​

属性类型说明
modelIdString模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别
stateString模型路径移动状态,pause:暂停;continue:继续;stop:停止,回到初始状态

回调数据 ​

JSON
{
  "result": 1,
  "message": "成功。"
}

回调数据参数描述 ​

属性类型说明
resultNumber1:代表成功;0:代表失败
messageString成功或者失败原因

返回本章目录