Version: 2022.1
ソロとミュート
IK

ターゲットマッチング

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

You can use the Animator.MatchTarget function to handle this kind of situation. Imagine, for example, you want to arrange a situation where the character jumps onto a platform and you already have an animation clip for it called Jump Up. Firstly, you need to find the place in the animation clip at which the character is beginning to get off the ground, note in this case it is 14.1% or 0.141 into the animation clip in normalized time:

アニメーションクリップの中で、キャラクターが着地する場所を見つけることも必要です。この場合78.0%、または、0.78 です。

With this information, you can create a script that calls MatchTarget which you can attach to the model:

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);
        }       
    }
}


上記のスクリプトによって、キャラクターは現在の場所からジャンプして目的の地点に左足で着地します。MatchTarget を使用するときは、一般的に、ゲームプレイの正しい瞬間に呼び出さないと役立たないことに気を付けてください。

ソロとミュート
IK
Copyright © 2020 Unity Technologies
优美缔软件(上海)有限公司 版权所有
"Unity"、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属机构在美国及其他地区的商标或注册商标。其他名称或品牌是其各自所有者的商标。
公安部备案号:
31010902002961