微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity 关联 Live2D 学习3

眼动追踪:

在这里,我们将解释如何使型的注视跟随鼠标光标。

SDK提供了两个很好的组件:CubismLook Look Controller

混合模式:三个参数和之前文章提供的参数设置函数中的参数意义一致

-Center:在此处设置一个GameObject作为要遵循的坐标的中心。 
中心是已设置的GameObject的边界的中心。 一般是live2D本体

- 阻尼:跟踪目标需要时间。值越小,跟随速度越高。

- 目标:设定目标以使视线跟随。

CubismLookParameter:

此组件设置在要追踪的身体部位上。

CubismLookParameter有两个设置项。

- 轴:设置Parameter(s)是作为轴变形处理的。例如,当指定X时,它是根据Target的X轴值计算的。

- 因子:将数值设置为乘以计算值。由于计算结果的值在-1到+1的范围内, 
Parameter(s)根据情况,放大或缩小范围可能是自然运动,或者反转+和 - 。

 

具体方法

添加好CubismLookParameter和CubismLook Look Controller之后创建空物体做管理。

using UnityEngine ;

 

public class CubismLookTarget : MonoBehavIoUr , ICubismLookTarget

{

     public Vector 3 GetPosition ( )

    {

         if ( ! Input . GetMouseButton ( 0 ) )

        {

             return Vector3 . zero ;

        }

 

         var targetPosition = Input . mousePosition ;

 

         targetPosition = ( Camera . main . ScreenToViewportPoint ( targetPosition ) * 2 ) - Vector3 . one ;

 

         return targetPosition ;

    }

 

 

     public bool IsActive ( )

    {

         return true ;

    }

}

官方提供的实例,要继承ICubismLookTarget 接口来返回坐标值

之后将脚本添加给空物体后作为CubismLook Look Controller的target

 

注意:

由于Live2D的画布提供范围为[-1,1],所以Live2D的坐标和Unity提供的坐标并不一致。在实现接口时要转化坐标。

 

自动眨眼功能

高版本框架已经十分简化了此功能。只需要添加CubismAutoEyeBlinkInput和CubismEyeBlinkController即可。

CubismAutoEyeBlinkInput其中有三个参数:

Mean:平均眨眼时间,以秒为单位。

MaximumDeviation:参考Mean的最大偏差值

Timescale

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐