Live2Dモデルのパーツの座標を取得する

パーツの座標を取得

前回の記事で作成した攻撃用のアニメーションと、ゲーム内における敵弾の発射位置(ShotPosition)を連動させてみました。

スポンサーリンク

Live2Dのアニメーションと、敵弾の発射位置を連動させる

今回はLive2Dモデルのパーツの座標を取得することで、攻撃用のアニメーションとShotPositionを連動させます。

パーツの座標を取得する理由

攻撃モーションの再生中に、ShotPositionが固定されている場合であれば、その位置にShotPositionを設定しておくだけなので、割と簡単にアニメーションとShotPositionを連動させることができます。

ShotPositionの連動

今回は攻撃モーションの中で杖の角度を変化させているので、Live2Dのアニメーションと連動するように、ShotPositionを動かす必要がでてきました。

ShotPositionを動かす

ということで、今回はLive2Dモデルのパーツの座標を取得して、ShotPositionを追従させるという方式を試してみました。

Live2Dモデルのパーツの座標を取得する手順

Live2Dモデルのパーツの座標は、メッシュから取得することができます。
パーツの座標を取得するスクリプトの一例

Live2dPos.cs
[SerializeField] CubismRenderer _cubismRenderer;

void Update () {
    var mesh = _cubismRenderer.Mesh;

    // メッシュを囲う矩形の中心
    Vector3 meshPosition = mesh.bounds.center;

    // メッシュの中心座標に追従
    transform.position = meshPosition;
}

位置を連動させるアートメッシュをインスペクターから設定して、設定したメッシュを囲う矩形の中心座標に追従させます。

このスクリプトをShotPositionに追加して、位置を追従させるアートメッシュを設定します。下図では、敵弾の発射位置となる魔法陣のアートメッシュを設定しています。

追従するメッシュを設定

今回の記事で試作したボスユニットの動作については、冒頭の動画で確認することができるので、よろしければご参照ください。

タイトルとURLをコピーしました