Appearance
模型关节和动画操作
目录
1. 获取模型关节
引入版本:3.3 起支持
功能描述
获取模型关节
调用方法
JavaScript
let jsonData = {
id: 'modelId1',
layerId: "layerId",
};
appInstance.uniCall('getModelArticulation', jsonData, (result) => {
console.log(result);
});参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别 |
| layerId | String | 模型所属的图层 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"
}
]
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| result | Number | 1:代表成功;0:代表失败 |
| message | String | 成功或者失败原因 |
| id | String | 返回当前模型包含的全部关节定义信息 |
| data | Array | 获取模型关节数据 |
| data[0].articulation | String | 关节名称 |
| data[0].type | String | 关节类型, float / enum / bool / string |
| data[0].currentValue | String | 关节当前的值 |
| data[0].minValue | String | float 类型的最小值 |
| data[0].maxValue | String | float 类型的最大值 |
| data[0].value | Array | 枚举类型对应的全部枚举值数组 |
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);
});参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别 |
| layerId | String | 模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。 |
| duration | Number | 更新数据时长,在这个时间周期内进行差值动画(单位:秒) |
| data | Array | 定义模型关节数据 |
| data[0].articulation | String | 关节名称 |
| data[0].type | String | 关节类型,float:浮点型关节、enum:枚举型关节;bool:布尔型关节 |
| data[0].value | String | 关节取值(字符串类型) |
回调数据
JSON
{
"result": 1,
"message": "成功。"
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| result | Number | 1:代表成功;0:代表失败 |
| message | String | 成功或者失败原因 |
3. 获取模型动画
引入版本:3.3 起支持
功能描述
获取模型动画
调用方法
JavaScript
let jsonData = {
id: 'modelId',
layerId: "layerId",
};
appInstance.uniCall('getModelAnimation', jsonData, (result) => {
console.log(result);
});参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别 |
| layerId | String | 模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。 |
回调数据
JSON
{
"result": 1,
"message": "成功。",
"id": "modelId",
"data": [
{
"name": "animationName01",
"speed": 1,
"rerverserType": "none",
"state": "stop"
},
{
"name": "animationName01",
"speed": 1,
"rerverserType": "none",
"state": "stop"
}
]
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| result | Number | 1:代表成功;0:代表失败 |
| message | String | 成功或者失败原因 |
| id | String | 返回当前模型包含的全部动画 |
| data | Array | 获取模型动画数据 |
| data[0].name | String | 动画名称 |
| data[0].speed | Number | 动画播放倍速 |
| data[0].rerverserType | String | 动画是否自动反播循环,"none":不循环, "round":单向循环, "repeat":往返循环 |
| data[0].state | Number | 当前动画状态,"stop","playing", "pause" |
4. 设置模型动画
引入版本:3.3 起支持
功能描述
设置模型动画
调用方法
JavaScript
let jsonData = {
id: "modelId",
layerId: "layerId",
name: "animationName01",
speed: 1,
rerverserType: "none",
}
appInstance.uniCall('setModelAnimation', jsonData, (result) => {
console.log(result);
});参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别 |
| layerId | String | 模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。 |
| name | String | 不可修改,用于查找模型中需要修改的动画 |
| speed | Number | 动画播放倍速 |
| rerverserType | String | 动画是否自动反播循环,"none":不循环, "round":单向循环, "repeat":往返循环 |
回调数据
JSON
{
"result": 1,
"message": "成功。"
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| result | Number | 1:代表成功;0:代表失败 |
| message | String | 成功或者失败原因 |
5. 播放模型动画
引入版本:3.3 起支持
功能描述
播放模型动画
调用方法
JavaScript
let jsonData = {
id: 'modelId',
layerId: "layerId",
name: 'animationName01',
state: 'pause',
};
appInstance.uniCall('playModelAnimation', jsonData, (result) => {
console.log(result);
});参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别 |
| layerId | String | 模型所属的图层 Id,Id 可以通过 getModelsByType 接口获得。如果这个为空,会在场景世界中查找并且设置第一个对应 Id 和 Ids 的对象,如果不为空,只会查找指定 layerId 图层内的匹配 Id 和 Ids 的模型对象。 |
| name | String | 不可修改,用于查找模型中需要修改的动画 |
| state | String | 状态是: "begin", "pause", "stop", "restart" 四种 |
6. 开始关节变换
引入版本:3.1 起支持
功能描述
开始关节变换
调用方法
JavaScript
appInstance.uniCall(
'addEventListener',
{
eventName: 'onArticulationStart',
callback: function(event) {
console.log(event);
},
},
(result) => {
console.log(result);
}
);回调数据
JSON
{
"id": "articulationName01"
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别 |
7. 结束关节变换
引入版本:3.1 起支持
功能描述
结束关节变换
调用方法
JavaScript
appInstance.uniCall(
'addEventListener',
{
eventName: 'onArticulationEnd',
callback: function(event) {
console.log(event);
},
},
(result) => {
console.log(result);
}
);回调数据
JSON
{
"id": "articulationName01"
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别 |
8. 开始播放动画
引入版本:3.1 起支持
功能描述
开始播放动画
调用方法
JavaScript
appInstance.uniCall(
'addEventListener',
{
eventName: 'onAnimationStart',
callback: function(event) {
console.log(event);
},
},
(result) => {
console.log(result);
}
);回调数据
JSON
{
"id": "articulationName01"
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别 |
9. 结束播放动画
引入版本:3.1 起支持
功能描述
结束播放动画
调用方法
JavaScript
appInstance.uniCall(
'addEventListener',
{
eventName: 'onAnimationEnd',
callback: function(event) {
console.log(event);
},
},
(result) => {
console.log(result);
}
);回调数据
JSON
{
"id": "articulationName01"
}回调数据参数描述
| 属性 | 类型 | 说明 |
|---|---|---|
| id | String | 模型对象 id,新建时调用者自己传入的唯一标识,用于各种操作的对象识别 |