ソロおよびミュート機能
ルートモーションの仕組み

ターゲット マッチング / Target Matching

ゲームの中でしばしば,キャラクターの手あるいは足が特定のところに特定のタイミングで着地することが発生します。例えば,キャラクターが飛び石をジャンプして越えていく必要があるかもしれないし,頭の上のビームをつかむ必要があるかもしれません。

このような状況に対応するにはAnimator.MatchTarget 関数 を使用することが出来ます。例えば,キャラクターが地面の上にジャンプして,すでに Jump Up というアニメーションクリップをすでに用意していたとします。これを実現するには,次のステップを行います:

  • アニメーションクリップにおいて,キャラクターが地面から離れる最初のタイミングを見つけ,この場合においては11.0%,またはアニメーションクリップの正規化された時間では0.11であるとします。
  • アニメーションクリップにおいて,キャラクターが地面に足を着地させるタイミングを見つけ,この場合に22.3%あるいは0.223であるとします。
using UnityEngine;
using System;

[RequireComponent(typeof(Animator))] 
public class TargetCtrl : MonoBehaviour {

    protected Animator animator;    
    
    //the platform object in the scene
    public Transform jumpTarget = null; 
    void Start () {
        animator = GetComponent<Animator>();
    }
    
    void Update () {
        if(animator) {
            if(Input.GetButton("Fire1"))         
                animator.MatchTarget(jumpTarget.position, jumpTarget.rotation, AvatarTarget.LeftFoot, 
                                                       new MatchTargetWeightMask(Vector3.one, 1f), 0.141f, 0.78f);
        }       
    }
}


  • スクリプト (TargetCtrl.cs) を作成して,MatchTarget に対するコールを,次のように行います:
ソロおよびミュート機能
ルートモーションの仕組み