標準機能でそのようなものがあるか検索してみたものの、ちょっと見つかりませんでした。
代替案として、パラメーター設定役のオブジェクトを用意し、それに対してタイムラインによるコントロールを行うというのはどうでしょうか。
まず下準備として、ご提示の「【Unity】指のポーズをブレンドしてハンドジェスチャーを作ろう - すぎしーのXRと3DCG」に従って指の動きを作り、パラメーター操作で指が開閉する状態にしました(手抜きして右手しか作っておりません)。
そして下記のようなスクリプトを用意し...
C#
1using UnityEngine;
2
3[ExecuteAlways]
4public class AnimatorFloatParameterController : MonoBehaviour
5{
6 [SerializeField] private Animator target;
7 [SerializeField] private string parameter0;
8 [Range(0.0f, 1.0f)] public float value0;
9 [SerializeField] private string parameter1;
10 [Range(0.0f, 1.0f)] public float value1;
11 [SerializeField] private string parameter2;
12 [Range(0.0f, 1.0f)] public float value2;
13 [SerializeField] private string parameter3;
14 [Range(0.0f, 1.0f)] public float value3;
15 [SerializeField] private string parameter4;
16 [Range(0.0f, 1.0f)] public float value4;
17
18 private int hash0;
19 private int hash1;
20 private int hash2;
21 private int hash3;
22 private int hash4;
23
24 private void Update()
25 {
26 if (this.target == null)
27 {
28 return;
29 }
30
31 void SetFloat(int hash, float value)
32 {
33 if (hash != 0)
34 {
35 this.target.SetFloat(hash, value);
36 }
37 }
38
39 SetFloat(this.hash0, this.value0);
40 SetFloat(this.hash1, this.value1);
41 SetFloat(this.hash2, this.value2);
42 SetFloat(this.hash3, this.value3);
43 SetFloat(this.hash4, this.value4);
44 }
45
46 private void OnValidate()
47 {
48 int StringToHash(string parameter) => string.IsNullOrWhiteSpace(parameter) ? 0 : Animator.StringToHash(parameter);
49
50 this.hash0 = StringToHash(this.parameter0);
51 this.hash1 = StringToHash(this.parameter1);
52 this.hash2 = StringToHash(this.parameter2);
53 this.hash3 = StringToHash(this.parameter3);
54 this.hash4 = StringToHash(this.parameter4);
55 }
56}
シーン上に空のオブジェクトを作ってスクリプトをアタッチし、Targetにはユニティちゃんを、Parameter 0~4には指開閉プロパティの名前を入力しました。
タイムライン実行役としてもう一つシーン上に空オブジェクトを作り、タイムライン上にパラメーター設定役オブジェクトについてのアニメーショントラックを作成し、「Record basic animation | Timeline | 1.8.5 」の無限クリップによる方法でモーションを設定しました。
ゲームを実行し、タイムラインを再生したところ設定されたモーションに従って指が開閉しました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/09/15 13:27