# motion-robot

> 智能问答动作机器人

Latest version **1.0.0** (published 2022-09-08) · ISC license · 0 weekly downloads

## Install

```sh
npm install motion-robot
pnpm add motion-robot
yarn add motion-robot
bun add motion-robot
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2022-09-08 |
| First published | 2022-09-08 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 3 |
| Unpacked size | 55.2 KB |
| Known vulnerabilities | 0 (+24 in 1 direct dependencies) |
| Install scripts | no |
| Author | zksz |
| Maintainers | vegali |
| Keywords | motion, 问答 |

## Links

- npm: https://www.npmjs.com/package/motion-robot
- npm.io page: https://npm.io/package/motion-robot

## Dependencies (3)

- [axios](https://npm.io/package/axios.md) ^0.27.2
- [three](https://npm.io/package/three.md) ^0.140.2
- [howler](https://npm.io/package/howler.md) ^2.2.3

## Alternatives

- [@luma.gl/experimental](https://npm.io/package/@luma.gl/experimental.md) — 77.1K weekly downloads
- [persona-harness](https://npm.io/package/persona-harness.md) — 4.7K weekly downloads
- [@tsparticles/effect-bubble](https://npm.io/package/@tsparticles/effect-bubble.md) — 4.6K weekly downloads
- [f3d](https://npm.io/package/f3d.md) — 730 weekly downloads
- [spark-html-motion](https://npm.io/package/spark-html-motion.md) — 298 weekly downloads

## Recent versions

- 1.0.0 (latest) — 2022-09-08

## README

# 快速开始

## 1、安装
```
npm i motion-robot
```

## 2、引入

```javascript
import * as Robot from 'motion-robot'
```

## 3、使用
```javascript
// 容器
<div ref="robot"></div>

// 配置信息
Robot.configData({
  audioFileFormat: 'wav',
  serverUserId: '15001191540'
})
// 请求服务数据
Robot.getServerConfigData(() => {
  // 初始化模型
  Robot.initModel(this.$refs.robot, 500, 500, e => {
    console.log(e)
  })
})
```

## 暴露出的方法
```javascript
/**
 * 插件对象数据的配置
 * @param {object} obj 数据对象，字段全为选填，按需配置
 * {
 *   localMotionArr: [
 *     {
 *       actionName: "A", // 由模型提供方提供
 *       audioUrl: "https://zksz/123456.wav", // 对应行为的语音
 *       mouthUrl: "https://zksz/123456.json" // 对应行为的口型
 *     }
 *   ],
 *   randomMotionKeyArr: ["A"], // 由模型提供方提供
 *   faceMorphKey: "Face_51_0,Face_51_1", // 由模型提供方提供，0:小程序，1:web
 *   modelUrl: "https://wwww.xxx.com/kefu.glb", // 模型url地址，可以固定配置，也可以从服务端获取
 *   serverUserId: "15001191540", // 服务端的 userId
 *   terminalNo: "00211", // 终端设备编号
 *   asrName: "baidu" // 语音识别名称
 *   audioFileFormat："pcm" // 语音文件格式 pcm m4a
 * }
 */
configData(obj)

/**
 * 获取服务端配置信息(根据 serverUserId(必填) 和 terminalNo(可选) 获取)
 * @param {object} callback 服务器结果回调
 */
getServerConfigData(callback)

/**
  * 模型初始化
  * @param {number} width 渲染器的宽度
  * @param {number} height 渲染器的高度
  * @param {function} callback 模型加载结果回调
  */
init(width, height, callback)

/**
  * 根据语音获取对应的答案
  * @param {object} audioRes 音频文件对象 { "bolb": bolb, size: bolb.size }
  * @param {object} options 配置数据 { "isNeedPlay": false }
  * @param {function} resultCallback 服务器结果回调
  * @param {function} playStartCallback 语音播报开始回调
  * @param {function} playCompleteCallback 语音播报结束回调
  */
getAnswerAccordAudio(audioRes, options, resultCallback, playStartCallback, playCompleteCallback)

/**
  * 根据文本获取对应的答案
  * @param {string} text 文本
  * @param {object} options 配置数据 { "isNeedPlay": false }
  * @param {function} resultCallback 服务器结果回调
  * @param {function} playStartCallback 语音播报开始回调
  * @param {function} playCompleteCallback 语音播报结束回调
  */
getAnswerAccordText(text, options, resultCallback, playStartCallback, playCompleteCallback)

/**
 * 根据文本生成对应的语音播报
 * @param {string} text 文本
 * @param {object} options 配置数据 { "isNeedPlay": false }
 * @param {function} resultCallback 服务器结果回调
 * @param {function} playStartCallback 语音播报开始回调
 * @param {function} playCompleteCallback 语音播报结束回调
 */
getBoardcastAudio(text, options, resultCallback, playStartCallback, playCompleteCallback)

/**
  * 开始动作(肢体动作、脸部表情)
  * @param {string} actionName 动作名称
  * @param {number} actionId 动作唯一标识，(使用场景：一个动作用于多种回答) 选填
  */
startAction(actionName)

/**
  * 停止动作
  */
stopAction()

/**
  * 改变语音的音量
  * @param {number} volume 声音的音量 0～1
  */
changeAudioVolume(volume)
```

---
_Source: https://npm.io/package/motion-robot · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
