下面我们添加眼部追踪:
为我们的模型添加这两个组件。
将look target的脚本拖入到controller的target窗口。
找到parameters,红框标注的四个参数 。添加这样一个组件,设置如下:
此时设置基本完成,这时,如果角色就在unity的世界坐标正中心(0,0,any), 此时按下鼠标拖动,可以看到角色的眼睛跟随光标的效果是相当不错的。
然而,我们不能仅仅满足于角色放在正中心,我们想让角色在任意位置都能实现眼部跟踪。如果是这样,除了角色的位置,我们什么都不改变,会出现角色都看向中心位置的情况,并且你的鼠标移到哪里都不能移出中心所在的区域,否则眼部跟随无效,这不是我们所期望的。(就不放图了)
那么如何做呢?常规的调调界面里的参数已经不能满足要求(控制力太差),我们就需要unity的强大底层执行逻辑语言c#脚本的帮助。要从代码的逻辑上实现我们的功能,控制力是最佳的。
我们首先右键cubism look target,它是我们跟踪的目标, 点击下方的edit script, 开始我们的编辑。
找到GetPosition函数,红框处是修改后的语句。
代码逻辑我就不解释了,读者可以看懂。
这样做的原因是,它被controller中的target.GetPosition()引用了 ,我们还需要点击这个函数去修改。
找到上图中的这个位置,将我们的GoalPosition改成这样。(如果不知道为什么,读者可以评论,我先不解释)
Ctrl+S保存,回到unity,点击start,就实现了想要的真正的眼部跟随的效果。
如上图,鼠标放在中心。
鼠标放在左下角。