1. 骨骼动画配置类

位于:BOS3D.Plugins.Animation.SkeletalAnimationConfig

1.1. 实例化

var config = new BOS3D.Plugins.Animation.SkeletalAnimationConfig();

1.2. 属性

1.2.1. modelKey

/**
 * 模型key
 * @property {string}
 */

1.2.2. viewer

/**
 * Viewer对象
 * @property {BOS3D.Viewer}
 */

1.2.3. rightDir

/**
 * 模型人物正方向
 * @property {Array}
 */

2. 骨骼动画操作类

位于:BOS3D.Plugins.Animation.SkeletalAnimation

2.1. 实例化

实例化需要在对应动画模型加载完成之后。 当前类中移动距离的单位和场景保持一致,例如场景单位是“米”,那么一个单位代表一米。场景单位和第一个加载的模型单位保持一致,可以通过实例化 BOS3D.Viewer 的 getSceneUnit()接口获取。

let config = new BOS3D.Plugins.Animation.SkeletalAnimationConfig();
config.viewer = viewer3D;
config.modelKey = "modelKey";
let skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);

2.2. 动画操作方法

2.2.1. getAnimationMixer

获取动画混合器

返回值说明 类型 示例
混合器 THREE.AnimationMixer null

调用方式:

/**
 * 获取动画混合器
 * @method getAnimationMixer
 * @return {THREE.AnimationMixer} 混合器
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.getAnimationMixer();

2.2.2. getTimeScale

获取时间尺度

返回值说明 类型 示例
时间尺度 number 0.5}

调用方式:

/**
 * 获取时间尺度
 * @method getTimeScale
 * @return {number}  时间尺度
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.getTimeScale();

2.2.3. setTimeScale

设置时间尺度

名称 说明 类型 是否必须 示例
speed 时间尺度 number 0.5
返回值说明 类型 示例
null null

调用方式:

/**
 * 设置时间尺度
 * @method setTimeScale
 * @param {number} speed 时间尺度。倍速播放动作,例:0会完全停止,0.5是动作变慢一半。2是两倍速度
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.setTimeScale(1);

2.2.4. setWeight

设置动作的权重

名称 说明 类型 是否必须 示例
name 动画名称 string "run"
weight 权重 number 0.5
返回值说明 类型 示例
null null

调用方式:

/**
 * 设置动作的权重
 * @method setWeight
 * @param {string} name 动画名称
 * @param {number} weight 权重,值域0-1
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.setWeight("run", 1);

2.2.5. play

播放动作,同时取消暂停。

名称 说明 类型 是否必须 示例
name 动画名称 string "run"
weight 权重,默认为 1.为 1 时,停止其他动作,播放当前动作。否则直接播放 number 0.5
返回值说明 类型 示例
null null

调用方式:

/**
 * 播放动作,会停止其他动作。
 * @method play
 * @param {string} name 动作名称
 * @param {number} weight 权重,默认为1.为1时,停止其他动作,播放当前动作。否则直接播放。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.play("run");

2.2.6. stop

停止当前动作

名称 说明 类型 是否必须 示例
name 动作名称,默认停止所有 string "run"
返回值说明 类型 示例
null null

调用方式:

/**
 * 停止当前动作。
 * @method stop
 * @param {string} name 动作名称,默认停止所有
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.stop();

2.2.7. paused

暂停当前动作

名称 说明 类型 是否必须 示例
name 动作名称,默认暂停所有或恢复所有。动作状态不一样时,按第一个获取到的动作 string "run"
返回值说明 类型 示例
null null

调用方式:

/**
 * 暂停当前动作。
 * @method paused
 * @param {string} name 动作名称,默认暂停所有或恢复所有。动作状态不一样时,按第一个获取到的动作。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.paused();

2.2.8. deactivateAllActions

停止所有动作

名称 说明 类型 是否必须 示例
null null null null
返回值说明 类型 示例
null null

调用方式:

/**
 * 停止所有动作。
 * @method deactivateAllActions
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.deactivateAllActions();

2.2.9. activateAllActions

激活所有动作,同时取消暂停。

名称 说明 类型 是否必须 示例
null null null null
返回值说明 类型 示例
null null

调用方式:

/**
 * 激活所有动作。播放第一个动作。
 * @method activateAllActions
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.activateAllActions();

2.2.10. pauseAllActions

暂停所有动作

名称 说明 类型 是否必须 示例
null null null null
返回值说明 类型 示例
null null

调用方式:

/**
 * 暂停所有动作。
 * @method pauseAllActions
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.pauseAllActions();

2.2.11. getActiveActions

获取当前激活的动作列表

名称 说明 类型 是否必须 示例
null null null null
返回值说明 类型 示例
激活的动作 [THREE.AnimationAction]

调用方式:

/**
 * 获取当前激活的动作列表。
 * @method getActiveActions
 * @return {[THREE.AnimationAction]}  激活的动作列表
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.getActiveActions();

2.2.12. getActionByName

获取动作

名称 说明 类型 是否必须 示例
name 动画名称 string "run"
返回值说明 类型 示例
激活的动作 THREE.AnimationAction null

调用方式:

/**
 * 获取动作。
 * @method getActionByName
 * @param {string} name 动画名称
 * @return {THREE.AnimationAction}  动作
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.getActionByName();

2.2.13. getActionNames

获取所有动作的名字

名称 说明 类型 是否必须 示例
null null null null
返回值说明 类型 示例
动作的名称数组 Array ["run","walk"]

调用方式:

/**
 * 获取所有动作的名字。
 * @method getActionNames
 * @return {Array}  动作的名称数组
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.getActionNames();

2.2.14. transitionTo

从当前动作过渡到指定动作

名称 说明 类型 是否必须 示例
name 动画名称 string "run"
duration 过渡持续时间 ,单位毫秒 number 2
immediately 是否立即执行 string true
返回值说明 类型 示例
null null

调用方式:

/**
 * 过渡到指定动画
 * @method transitionTo
 * @param {string} name 动画名称
 * @param {number} duration 过渡持续时间,单位毫秒
 * @param {boolean} immediately 是否立即执行,false时会等当前动作完成一次循环之后执行过渡。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.transitionTo("run", 5);

2.2.15. transitionTo

从当前动作过渡到指定动作

名称 说明 类型 是否必须 示例
now 起始动作名称 string "run"
to 目标动作名称 string "run"
duration 过渡持续时间 number ,单位毫秒 2
immediately 是否立即执行 string true
返回值说明 类型 示例
null null

调用方式:

/**
 * 动作之间过渡
 * @method transition
 * @param {string} now 起始动作名称
 * @param {string} to 目标动作名称
 * @param {number} duration 过渡持续时间,单位毫秒
 * @param {boolean} immediately 是否立即执行,false时会等当前动作完成一次循环之后执行过渡。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.transition("run", "walk", 5);

2.3. 模型人物操作方法

2.3.1. getRightDir

获取正方向

返回值说明 类型 示例
动画模型的正方向 THREE.Vector3 {x:1,y:0,z:0}

调用方式:

/**
 * 获取正方向
 * @method getRightDir
 * @return {THREE.Vector3}  动画模型的正方向(人物的面向方向)。
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.getRightDir();

2.3.2. setRightDir

设置正方向

名称 说明 类型 是否必须 示例
v3 动画模型的正方向 THREE.Vector3 或 Array {x:1,y:0,z:0} 或[0,1,0]
返回值说明 类型 示例
null null

调用方式:

/**
 * 设置正方向
 * @method setRightDir
 * @param {THREE.Vector3} v3 动画模型的正方向(人物的面向方向)。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.setRightDir([0, 1, 0]);

2.3.3. goTurn

模型人物旋转

名称 说明 类型 是否必须 示例
angle 左右旋转的角度(弧度制) number 0.5
time 过渡时间(单位毫秒) number 1000
返回值说明 类型 示例
null null

调用方式:

/**
 * 模型人物旋转
 * @method goTurn
 * @param {number} angle 左右旋转的角度(弧度制),大于0时逆时针转动,小于0时顺时针转动。
 * @param {number} time 过渡时间,移到angle角度所需的时间。默认为0,这时需要手动调用moveUpdate方法更新角度。大于0时会自动更新人物角度实现过渡动画。旋转过程中再次调用会立即实行新的过渡。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.goTurn(0.5);

2.3.4. goFrontBack

模型人物前后移动 移动距离的单位和场景保持一致,例如场景单位是“米”,那么一个单位代表一米。场景单位和第一个加载的模型单位保持一致,可以通过实例化 BOS3D.Viewer 的 getSceneUnit()接口获取。

名称 说明 类型 是否必须 示例
step 前后移动的距离 number 0.5
time 过渡时间(单位毫秒) number 1000
返回值说明 类型 示例
null null

调用方式:

/**
 * 模型人物前后移动
 * @method goFrontBack
 * @param {number} step 前后移动的距离,大于0时向前移动,小于0时向后移动。
 * @param {number} time 过渡时间(单位毫秒),移到step距离所需的时间。默认为0,这时需要手动调用moveUpdate方法更新位置。大于0时会自动更新人物位置实现过渡动画。移动过程中再次调用会立即实行新的过渡。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.goFrontBack(0.5);

2.3.5. goRightLeft

模型人物左右移动 移动距离的单位和场景保持一致,例如场景单位是“米”,那么一个单位代表一米。场景单位和第一个加载的模型单位保持一致,可以通过实例化 BOS3D.Viewer 的 getSceneUnit()接口获取。

名称 说明 类型 是否必须 示例
step 前后移动的距离 number 0.5
time 过渡时间(单位毫秒) number 1000
返回值说明 类型 示例
null null

调用方式:

/**
 * 模型人物左右移动
 * @method goRightLeft
 * @param {number} step 左右移动的距离,大于0时向右移动,小于0时向左移动。
 * @param {number} time 过渡时间(单位毫秒),移到step距离所需的时间。默认为0,这时需要手动调用moveUpdate方法更新位置。大于0时会自动更新人物位置实现过渡动画。移动过程中再次调用会立即实行新的过渡。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.goRightLeft(0.5);

2.3.6. goUpDown

模型人物上下移动。移动距离的单位和场景保持一致,例如场景单位是“米”,那么一个单位代表一米。场景单位和第一个加载的模型单位保持一致,可以通过实例化 BOS3D.Viewer 的 getSceneUnit()接口获取。

名称 说明 类型 是否必须 示例
step 上下移动的距离 number 0.5
time 过渡时间(单位毫秒) number 1000
返回值说明 类型 示例
null null

调用方式:

/**
 * 模型人物上下移动
 * @method goUpDown
 * @param {number} step 上下移动的距离,大于0时向上移动,小于0时向下移动。
 * @param {number} time 过渡时间(单位毫秒),移到step距离所需的时间。默认为0,这时需要手动调用moveUpdate方法更新位置。大于0时会自动更新人物位置实现过渡动画。移动过程中再次调用会立即实行新的过渡。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.goUpDown(0.5);

2.3.7. goto

模型人物上下左右前后移动和旋转。移动距离的单位和场景保持一致,例如场景单位是“米”,那么一个单位代表一米。场景单位和第一个加载的模型单位保持一致,可以通过实例化 BOS3D.Viewer 的 getSceneUnit()接口获取。

名称 说明 类型 是否必须 示例
steps 每个方向上的移动距离 object { x:1,y:1,z:0,w:0 }
steps.x 上下移动的距离,默认 0 number 0.5
steps.y 上下移动的距离,默认 0 number 0.5
steps.z 上下移动的距离,默认 0 number 0.5
steps.w 左右旋转的角度,默认 0 number 0.5
time 过渡时间(单位毫秒) number 1000
返回值说明 类型 示例

调用方式:

/**
 * 模型人物上下左右前后移动和旋转
 * @method goto
 * @param {object} steps 每个方向上的移动距离
 * @param {number} steps.x 前后移动的距离,大于0时向前移动,小于0时向后移动。
 * @param {number} steps.y 左右移动的距离,大于0时向右移动,小于0时向左移动。
 * @param {number} steps.z 上下移动的距离,大于0时向上移动,小于0时向下移动。
 * @param {number} steps.w 左右旋转的角度(弧度制),大于0时逆时针转动,小于0时顺时针转动。
 * @param {number} time 过渡时间(单位毫秒),移到step距离所需的时间。默认为0,这时需要手动调用moveUpdate方法更新位置。大于0时会自动更新人物位置实现过渡动画。移动过程中再次调用会立即实行新的过渡。
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.goto({
    x: 1,
    y: 1,
    z: 0,
    w: 0,
});

2.3.8. moveUpdate

更新模型人物位置

名称 说明 类型 是否必须 示例
null null null null
返回值说明 类型 示例
null null

调用方式:

/**
 * 更新模型人物位置(每次调用移动、旋转接口之后需要调用)
 * @method moveUpdate
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.moveUpdate();

2.4. 其他方法

2.4.1. destroy

销毁

名称 说明 类型 是否必须 示例
null null null null
返回值说明 类型 示例
null null

调用方式:

/**
 * 销毁
 * @method destroy
 * @return {void}
 * */
var skeletal = new BOS3D.Plugins.Animation.SkeletalAnimation(config);
skeletal.destroy();
版权所有@盈嘉互联(北京)科技有限公司 京ICP备15051988号-9 Copyright © 2022 all right reserved,powered by Gitbook该文件修订时间: 2022-06-27 15:28:07

results matching ""

    No results matching ""