えもふりでVtuberの真似事をする④ マウスに目線を追従させる
前回までだと棒立ち口パク人形なので、Vtuberらしく動かしてみる。
完全に追従すると動き過ぎてキモいので、割とざっくりとさせるつもりだ。
①前回と同じく、新しいC#scriptを作成し、中身を書き換えて保存。(私自身はプログラマーじゃないので、クソコードしか書けない。書ける人は自分なりに直してほしい。)
今回はTest2で作った。
public class Test2 : MonoBehaviour
{
public EmotePlayer targetPlayer;
public float tilt_X;
public float tilt_Y;
private Vector3 position;
// Start is called before the first frame update
void Start()
{
if (targetPlayer == null)
targetPlayer = this.GetComponent(typeof(EmotePlayer)) as EmotePlayer;
tilt_X=0;
tilt_Y=0;
}
// Update is called once per frame
void Update()
{
position = Input.mousePosition;
if (tilt_X<(position.x-500)/8 && tilt_X<15) tilt_X += 1;
if (tilt_X>(position.x-500)/8 && tilt_X>-15) tilt_X -= 1;
if (tilt_Y<(position.y-300)/15 && tilt_Y<15) tilt_Y += 1;
if (tilt_Y>(position.y)-300/15 && tilt_Y>-15) tilt_Y -= 1;
targetPlayer.SetVariable("face_eye_LR" , tilt_X , 0, 0);
targetPlayer.SetVariable("head_LR" , tilt_X , 0, 0);
targetPlayer.SetVariable("face_eye_UD" , -1*tilt_Y , 0, 0);
targetPlayer.SetVariable("head_UD" , -1*tilt_Y , 0, 0);
}
}
②そろそろ仕様が分かってきた頃。前回と同じく、さっき作ったプログラムをEmote PlayerへAdd Componentする。
③再生を押すと、目線である程度追ってくれる。
あまり角度を傾けると、不自然に見えるので、完全には追従していない。
ちなみに最初はキー入力で操作するように作ったが、ゲーム中に顔がブンブンしてもアレなのでやめた。