LoginSignup
16
24

More than 5 years have passed since last update.

RealsenseSDKとWEBカメラでキャラクターになりきる(Live2D編)

Last updated at Posted at 2016-03-10

RealsenseSDKとWEBカメラでキャラクターになりきる方法をLive2Dのモデルにも適応してみました.

Live2DをUnityで利用する

Live2DのSDKをダウンロードしてUnityでLive2Dモデルを利用できるようにします.
http://www.live2d.com/
からCubism SDKをダウンロードします.

今回は顔の動きと表情をLive2Dモデルに反映させるだけなので,sampleのDemoをUnityで開きます.
sample.png

下準備

  1. Realsen SDKとWEBカメラを使うためのunitypackageをインポートする

ここに置いておきます.Downloads
注. sampleが動作するか確認してください.
2. Live2Dモデルを動かすためのスクリプトをインポートします.FaceLive2D.cs
3. インポートしたFaceLive2D.csをLive2DModelに適応します.

Webカメラが利用できるようにSelectDeviceNumberも設定しておきます.
sample2.png

Live2Dスクリプトの変更

FaceLive2D.csからの顔認識情報をLive2Dモデルに反映させるためにSimpleModel.csに処理を追加します.

SampleModel.cs

    private FaceLive2D face;//追加

    void Start()
    {
        face = GetComponent<FaceLive2D>();//追加
    }

    void Update()
    {
        /*(...省略...)*/
        eyeBlink.setParam(live2DModel);

        //ここから追加
        live2DModel.setParamFloat("PARAM_ANGLE_X", face.GetRot(0) * 20);
        live2DModel.setParamFloat("PARAM_ANGLE_Y", face.GetRot(1) * 30);

        live2DModel.setParamFloat("PARAM_BODY_ANGLE_X", face.GetRot(0) * 10);

        live2DModel.setParamFloat("PARAM_EYE_BALL_X", -face.GetRot(0));
        live2DModel.setParamFloat("PARAM_EYE_BALL_Y", -face.GetRot(1));

        live2DModel.setParamFloat("PARAM_ANGLE_Z", face.GetRot(2) * 3000);

        live2DModel.setParamFloat("PARAM_EYE_L_OPEN", 1.0f - face.GetMorph(0));
        live2DModel.setParamFloat("PARAM_EYE_R_OPEN", 1.0f - face.GetMorph(1));

        live2DModel.setParamFloat("PARAM_MOUTH_OPEN_Y", face.GetMorph(2) * 5);
        //ここまで

        if (physics != null) physics.updateParam(live2DModel);

        live2DModel.update();
    }

FaceLive2DをGetComponentで取得した後,setParamFloatに適当な値を入れていきます.
設定出来たら顔認識の結果がLive2Dに反映されているか確認して,細かなパラメータの調整をしてください.
sample3.png

なりきってください.


16
24
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
16
24