眼动追踪:
在这里,我们将解释如何使型的注视跟随鼠标光标。
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] 举报,一经查实,本站将立刻删除。