除了使用动画的方式可以使模型动起来以外还可以用设置参数的方法使模型动起来。
使用cubism打开Epsilon.cmox模型文件
可以看见在中下Parameter一栏有许多参数,这些参数就是控制模型动作的参数。右键一个属性在inspector面板中会出现相关的信息,其中有个id属性,这便是这个参数的id。2.x版本的sdk是无法从代码中获取参数的id的。
使用模型的setParamFloat方法设置参数,方法参数为(参数id, 值, 权重),实际改变值为值*参数, 权重一般省略
live2DModel.setParamFloat("PARAM_ANGLE_X", 1);//头右转30度
这个PARAM_ANGLE_X便是模型中角度x这个属性的id。
还可以通过获得模型参数的索引来进行设置。
int paramAngleX = live2DModel.getParamIndex("PARAM_ANGLE_X");
live2DModel.setParamFloat(paramAngleX, 1);
可以在update函数中设置参数的累加和累成来控制模型的动作
void Update () {
live2DModel.setMatrix(transform.localToWorldMatrix * live2dCanvasPos );
if (Input.GetKeyDown(KeyCode.A))
// //以上一个值累加
live2DModel.addToParamFloat("PARAM_ANGLE_X", 10, 1);
//累乘
live2DModel.multParamFloat("PARAM_ANGLE_X", 2);
live2DModel.update();
}
参数设置后可以进行保存与加载(保存与加载的都是整个模型的所有参数)
live2DModel.saveParam();
live2DModel.loadParam();
模型除了参数以外,还有部件,在cubism左上角有个part视口,其中每一个文件夹是一个part,点选一个文件夹如文中所示,在监视面板出现这个part的ID,可以通过part的ID来设置相关属性。
设置part的透明度: 0完全透明 1完全不透明
live2DModel.setPartsOpacity("PARTS_01_FACE_001", 0);