Unity Live2D SDK的使用方法(三)——自动眨眼与看向指针方向

自动眨眼

Step1:设置管理器

定义成员变量

private EyeBlinkMotion eyeBlinkMotion;

在start中实例化

eyeBlinkMotion = new EyeBlinkMotion();

Step2:进行实时更新

在update中调用方法

eyeBlinkMotion.setParam(live2DModel);

live2DModel是Live2DModelUnity类的对象。也就是模型的信息。

看向指针方向

Step1:设置管理器

定义成员变量:

private L2DTargetPoint drag;

在start中进行实例化:

drag = new L2DTargetPoint();

Step2:坐标信息转换

将鼠标点击的屏幕坐标转换为live2d坐标轴的坐标

if (Input.GetMouseButton(0))
{
     drag.Set(pos.x / Screen.width * 2 - 1, pos.y / Screen.height * 2 - 1);
 }

else if (Input.GetMouseButtonUp(0))
{
     drag.Set(0, 0);
}

live2d坐标轴为(-1,1)区间的横纵坐标轴。

Step3:将鼠标点击信息进行实时更新

drag.update();

Step4:看向点击位置的逻辑

if (drag.getX() != 0)
{
    live2DModel.setParamFloat("PARAM_ANGLE_X", 30 * drag.getX());
    live2DModel.setParamFloat("PARAM_ANGLE_Y", 30 * drag.getY());

    live2DModel.setParamFloat("PARAM_BODY_ANGLE_X", 10 * drag.getX());

    live2DModel.setParamFloat("PARAM_EYE_BALL_X", -drag.getX());
    live2DModel.setParamFloat("PARAM_EYE_BALL_Y", -drag.getY());
}

setParamFloat的参数有两个。
第一个是字符串形式的ID,在Cubism上可以看到。
Unity Live2D SDK的使用方法(三)——自动眨眼与看向指针方向_第1张图片Unity Live2D SDK的使用方法(三)——自动眨眼与看向指针方向_第2张图片
第二个是变动的值。可以看到在上图中,眼睛的范围是-1.0-1.0的区间,而之前在上一步操作中drag转化成的live2d坐标轴也是一个-1.0-1.0的范围,所以就直接用drag.getX()或drag.getY()获取就好。对于其它的部分,比如头的转向,可能其范围是-30.0-30.0,就要用30*drag.getX()。

你可能感兴趣的:(Unity,Live2D)