import { Live2DCubismFramework as cubismid } from './framework/id/cubismid';
import { Live2DCubismFramework as cubismusermodel } from './framework/model/cubismusermodel';
import { Live2DCubismFramework as icubismmodelsetting } from './framework/icubismmodelsetting';
import { Live2DCubismFramework as acubismmotion } from './framework/motion/acubismmotion';
import { Live2DCubismFramework as csmvector } from './framework/type/csmvector';
import { Live2DCubismFramework as csmmap } from './framework/type/csmmap';
import { Live2DCubismFramework as cubismmatrix44 } from './framework/math/cubismmatrix44';
import { Live2DCubismFramework as csmstring } from './framework/type/csmstring';
import { Live2DCubismFramework as csmrect } from './framework/type/csmrectf';
import { Live2DCubismFramework as userMotionParam } from './framework/type/userMotionParam';
import csmRect = csmrect.csmRect;
import csmString = csmstring.csmString;
import CubismMatrix44 = cubismmatrix44.CubismMatrix44;
import csmMap = csmmap.csmMap;
import csmVector = csmvector.csmVector;
import ACubismMotion = acubismmotion.ACubismMotion;
import CubismIdHandle = cubismid.CubismIdHandle;
import CubismUserModel = cubismusermodel.CubismUserModel;
import ICubismModelSetting = icubismmodelsetting.ICubismModelSetting;
import CubismMotionParam = userMotionParam.CubismMotionParam;
import { LAppDelegate } from './lappdelegate';
/**
* 用户实际使用的模型的实现类
* 调用模型生成,功能组件生成,更新处理和呈现。
*/
export declare class LAppModel extends CubismUserModel {
_delegate: LAppDelegate;
_modelSetting: ICubismModelSetting;
_modelHomeDir: string;
_modelTextures: string[];
_userTimeSeconds: number;
_eyeBlinkIds: csmVector;
_lipSyncIds: csmVector;
_motions: csmMap;
_expressions: csmMap;
_hitArea: csmVector;
_userArea: csmVector;
_idParamAngleX: CubismIdHandle;
_idParamAngleY: CubismIdHandle;
_idParamAngleZ: CubismIdHandle;
_idParamEyeBallX: CubismIdHandle;
_idParamEyeBallY: CubismIdHandle;
_idParamBodyAngleX: CubismIdHandle;
_state: number;
_expressionCount: number;
_textureCount: number;
_motionCount: number;
_allMotionCount: number;
_modelResource: {
path: string;
modelName: string;
};
_mouthOpen: boolean;
_mouthSpeed: number;
_mouthSpeedCal: number;
_mouthParamY: number[];
_mouthOpenIndex: number;
_autoIdle: boolean;
_batchLoad: boolean;
_modelPositionX: number;
_modelPositionY: number;
_modelSize: number;
/**
* 构造函数
*/
constructor(resource: {
path: string;
modelName: string;
modelSize: number;
}, delegate: LAppDelegate);
/**
* model3.json从目录和文件路径生成模型
* @param dir
* @param fileName
*/
loadAssets(dir: string, fileName: string, modelName: string, textures?: string[]): Promise;
/**
* 重建渲染器
*/
reloadRenderer(): void;
/**
* 更新
*/
update(): void;
/**
* 开始播放参数指定的动作
* @param group 运动组名称
* @param no 组内的数字
* @param priority 优先级
* @param autoIdle 执行完本动画后是否自动执行idle动画
* @param autoAppear 模型隐藏时执行动画是否自动显示模型并执行动画
* @return 返回已启动的运动的标识号。 用于isFinished()的参数,用于确定单个动作是否已结束。 无法启动时返回[-1]
*/
startMotion(motionParams?: CubismMotionParam): Promise;
/**
* 开始播放随机选择的动作。
* @param group 运动组名称
* @param priority 优先级
* @return 返回已启动的运动的标识号。 用于isFinished()的参数,用于确定单个动作是否已结束。 当你无法开始时返回[-1]
*/
startRandomMotion(group: string, priority?: number): Promise;
/**
* 执行一组动作。
*/
startMotionQueue(motions: CubismMotionParam[], clear?: boolean): Promise;
/**
* 停止所有动作 清除动作队列 已执行的动作如果有回调函数依旧会执行.
* @Param clear 是否清除画布内容
*/
stopAllMotions(args?: {
clear?: boolean;
autoIdle?: boolean;
}): Promise;
/**
* 更改idle动作的名称.
*/
replaceIdleMotion(groupName: string, execImmediately?: boolean): void;
/**
* 嘴巴进行说话动作.
*/
mouthOpen(speed: any): void;
mouthClose(): void;
/**
* 眼睛注视某个坐标点. 坐标以模型原点为(0,0)点进行象限分布, 取值范围±1.
*/
lookAt(pointX: number, pointY: number): void;
/**
* 设置参数指定的面部表情运动
*
* @param expressionId 表达式动作ID
*/
setExpression(expressionId: string): void;
/**
* 设置随机选择的面部表情动作
*/
setRandomExpression(): void;
/**
* 接收事件解雇
*/
motionEventFired(eventValue: csmString): void;
/**
* 打击判断测试
* 从指定ID的顶点列表计算矩形,并确定坐标是否在矩形范围内。
*
* @param hitArenaName 用于测试命中判断的目标的ID
* @param x 要判断的X坐标
* @param y 要判断的Y坐标
*/
hitTest(hitArenaName: string, x: number, y: number): boolean;
/**
* 从组名称批量加载运动数据。
* 运动数据的名称是从ModelSetting内部获得的。
*
* @param group 动作数据组名称
*/
preLoadMotionGroup(group: string): void;
/**
* 显示模型。
* @Param {pointX: number, pointY: number} 出现的坐标
*/
appear(param: {
pointX: number;
pointY: number;
zIndex?: number;
}): void;
/**
* 隐藏模型。
*/
disappear(): void;
/**
* 模型显示状态。
*/
getVisible(): boolean;
getProperty(): {
visible: boolean;
autoIdle: boolean;
mouthOpen: boolean;
idleMotion: string;
};
/**
* 释放所有运动数据。
*/
releaseMotions(): void;
/**
* 释放所有面部表情数据。
*/
releaseExpressions(): void;
/**
* 绘制模型的过程。 通过空间的View-Projection矩阵绘制模型。
*/
doDraw(): void;
/**
* 清除画布
*/
clear(): void;
/**
* 绘制模型的过程。 通过空间的View-Projection矩阵绘制模型。
*/
draw(matrix: CubismMatrix44): void;
/**
* asyncLoadMotionGroup
*/
asyncLoadMotionGroup(motionGroups: string[]): void;
private fetchFile;
/**
* 执行一组动作。
*/
private executeMotionQueue;
/**
* 从model3.json中生成模型
* 根据model3.json的描述生成模型生成,运动和物理操作等组件。
*
* @param setting ICubismModelSetting的一个实例
*/
private setupModel;
/**
* 将纹理加载到纹理单元中
*/
private setupTextures;
}