LoginSignup
4
5

More than 5 years have passed since last update.

UnityでLive2Dのモデルにマウスオーバーした時にそちらを向かせる

Last updated at Posted at 2016-02-21

はじめに

Live2D使って嫁とイチャイチャするのは楽しいです!
Live2Dでよりインタラクティブな表現をするために、
ドラッグよりも前、つまりマウスオーバーでモデルがグリグリ動いてくれたら楽しそうですよね!!
ということで実現してみます。

※前提としてSDKのsample/SampleApp1にコードを追加する形で実装しています
※また、frameworkやsample以下のファイルは触らず、別のスクリプトを作成してアタッチすることとします

サンプルコード

以下のファイルを作成して、HierarchyのLive2D_Canvas_Haruへアタッチするだけです。
特に解説することはないかと思いますが、
Start()内でモデルを取得して、マウスオーバーした時にTouchesMoved(Vector3 inputPos)に今のマウスカーソルの位置を渡しているだけです。
LAppModelの中とLAppViewの中のTouchesMoved(Vector3 inputPos)を利用しています。

追記:マウスが離れた時や、クリックした時にモーションを再生させるために修正しました

MouseChecker.cs
using UnityEngine;
using System.Collections;

public class MouseChecker : MonoBehaviour {

    private LAppModel model;

    // Use this for initialization
    void Start () {
        model = GameObject.Find("Live2D_Canvas_Haru").GetComponent<LAppModelProxy>().GetModel();
    }

    // Update is called once per frame
    void Update () {
        if (Input.GetMouseButtonUp(0))
        {
            //ちょっと無理やりかも…
            model.TouchesEnded(Input.mousePosition);
        }
    }

    void OnMouseEnter()
    {
        model.TouchesBegan(Input.mousePosition);
    }

    void OnMouseOver()
    {
        model.TouchesMoved(Input.mousePosition);
    }

    void OnMouseExit()
    {
        model.TouchesEnded(Input.mousePosition);
    }
}

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5