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

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

Suggest a change

Success!

Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.

Close

Sumbission failed

For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.

Close

Cancel

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

このような状況に対応するには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 に対するコールを,次のように行います:
ソロおよびミュート機能
ルートモーションの仕組み