4
2

More than 3 years have passed since last update.

UnityのAnimation Riggingを使って、Live2Dモデルにリグを仕込んで動かす

Last updated at Posted at 2019-09-05

はじめに

Unity2019で新たに導入されたAnimation Riggingは、Unity内で任意のオブジェクトに対してリグを設定して動かすことを可能にします。これを使うことで、Live2Dモデルを動かしてみましょう。Animation Riggingの基本的なところは、テラシュールさんを参考にして下さい。また、Live2DモデルをUnityに組み込む方法についてはLive2Dのサイトなどを参考にしてください。以下は、すでにLive2D SDKを使ってLive2DモデルをUnityに組み込んだ前提で始めます

Live2Dのアートメッシュを強制的に動かす

Live2DモデルをUnityに組み込むと、モデル名/Drawables/Artmesh...という形でアートメッシュがヒエラルキーに作られますが、それらの位置はCubism Render Controllerが制御しているため、普通にやっても変更できません。そこで、ダミーのゲームオブジェクトを作って、強制的に動かします。

今回は、腕を動かすことを考えます。Live2Dモデルとは別に、以下のオブジェクトを作ってください。全て空で良いです。

image.png

今回はWrist(手首)に相当するところはありませんが、一応つけておきます。

次に、ShoulderRootを、モデルで肩に相当するところに移動させてください。
image.png
ElbowRootも同様です。
image.png

次に、ShoulderPivotとElbowPivotに以下のスクリプトをアタッチしてください。

LateAdjuster.cs
using UnityEngine;

[ExecuteInEditMode]
public class LateAdjuster : MonoBehaviour
{
    public Transform toBeAdjusted;
    void LateUpdate()
    {
        toBeAdjusted.position = transform.position;
        toBeAdjusted.rotation = transform.rotation;
    }
}

次にインスペクタ上で、ShoulderPivotのLateAdjusterのtoBeAdjustedに上腕に相当するアートメッシュのゲームオブジェクトのTransformを、ElbowPivotのtoBeAdjustedに前腕に相当するアートメッシュのゲームオブジェクトのTransformを適用してください。

以下はShoulderPivotの例です。ArtMesh78が上腕に相当します。
image.png

すると、下の図にあるようにアートメッシュがとんでもないところに移動してしまいます。

image.png

このずれはLive2D SDKの特性によるものなので、ShoulderPivotを移動させて元の位置に戻してください。ArtMesh78のPositionを見て、その正負を入れ替えたものをShoulderPivotのPositionにすればよいです。

image.png
image.png

これで、ShoulderRootの動きが対応するアートメッシュの動きとシンクロするようになります。ShoulderPivotではないので注意してください。

Animation Riggingを使って動かす。

あとはShoulderRootとElbowRootにリグを仕込んで動かすだけです。RigRootの下に、以下のようにRig, Target, Hintという空のゲームオブジェクトを追加してください。

image.png

Targetは手のひら、Hintはひじのあたりに動かしておいてください。

次に、RigにRigコンポーネント、Two Bone IK Constraintコンポーネントをアタッチして、以下のように設定してください。

image.png

最後に、RigRootにRig Builder, Bone Rendererをアタッチして、以下のように設定してください。

image.png

これで設定は終了です。あとは、エディターを実行すればTargetの動きに追従して腕が動くはずです。

Live2DAnimationRigging2.gif

4
2
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
2