Version: 5.3 (switch to 5.4b)
言語English
  • C#
  • JS

スクリプト言語

好きな言語を選択してください。選択した言語でスクリプトコードが表示されます。

Animator.MatchTarget

フィードバック

ありがとうございます

この度はドキュメントの品質向上のためにご意見・ご要望をお寄せいただき、誠にありがとうございます。頂いた内容をドキュメントチームで確認し、必要に応じて修正を致します。

閉じる

送信に失敗しました

なんらかのエラーが発生したため送信が出来ませんでした。しばらく経ってから<a>もう一度送信</a>してください。ドキュメントの品質向上のために時間を割いて頂き誠にありがとうございます。

閉じる

キャンセル

マニュアルに切り替える
public function MatchTarget(matchPosition: Vector3, matchRotation: Quaternion, targetBodyPart: AvatarTarget, weightMask: MatchTargetWeightMask, startNormalizedTime: float, targetNormalizedTime: float = 1): void;
public void MatchTarget(Vector3 matchPosition, Quaternion matchRotation, AvatarTarget targetBodyPart, MatchTargetWeightMask weightMask, float startNormalizedTime, float targetNormalizedTime = 1);

パラメーター

matchPosition ボディパーツが到達してほしい位置
matchRotation ボディパーツが到達してほしい回転位置(Rotation)
targetBodyPart マッチングに関連するボディパーツ
weightMask 位置や回転のマッチングに使用するウェイトの構造( Structure )
startNormalizedTime アニメーションクリップの開始時間( 0 - クリップの開始位置、1 - クリップの終了位置)
targetNormalizedTime アニメーションクリップの終了時間( 0 - クリップの開始位置、1 - クリップの終了位置)、1 より大きい値により特定のループ回数の後、マッチングをトリガーさせることができます。例: 2.3 は 2 回目のループの 30%を示します。

説明

ゲームオブジェクト位置および回転を自動的に調整して、現在のステータスが指定された状態となったときに AvatarTarget が matchPosition に到達するようにします。

ターゲットマッチングはベースレイヤー( index 0 )でのみ動作します。 一度にひとつのマッチターゲットをキューに積むことができ、最初の1回目の再生が終了するまで待つ必要があります。でなければ、ターゲットマッチングは破棄されます。 クリップの正規化された現在の時間の値よりも低い値の開始時間で MatchTarget を呼び出す、かつループさせることができる場合、MatchTarget は、次のクリップの再生開始と一致するように時間を調整します。例:開始時間が0.2、正規化された現在の時間が0.3であれば、開始時間は 1.2 となります。


        
using UnityEngine;

public class TargetMatchingManager : MonoBehaviour { public void MatchTarget (Vector3 matchPosition, Quaternion matchRotation, AvatarTarget target, MatchTargetWeightMask weightMask, float normalisedStartTime, float normalisedEndTime) { if (animator.isMatchingTarget) return;

float normalizeTime = Mathf.Repeat(animator.GetCurrentAnimatorStateInfo(0).normalizedTime, 1f);

if (normalizeTime > normalisedEndTime) return;

animator.MatchTarget (matchPosition, matchRotation, target, weightMask, normalisedStartTime, normalisedEndTime); } }