今回の記事ではプレイヤーの走る速さやジャンプ力を変えるギミックについて説明します。
素早く動けるようにして、広大なワールドを颯爽と走り回りましょう!
走る速さを変える
走る速さを変えるにはSet Move Speed Rate Player Gimmickを使用します。このギミックを空のオブジェクトに設定することでプレイヤーの移動速度を変えられるようになります。
※このギミックはワールド内にあるどのオブジェクトに設定しても動作しますが、分かりやすいように新しく空のオブジェクトを作成することをおすすめします。
さっそく設定してみましょう。
- UnityのHierarchyを右クリックし、Create Emptyで空のオブジェクトを作成します
- 右クリックから「Rename」を選び、名前を「PlayerGimmick」に変更しておきましょう


- 作成したオブジェクトを選択し、InspectorのAdd ComponentからSet Move Speed Rate Player Gimmickを追加します

- このギミックは追加した時点でTargetがPlayer、KeyがmoveSpeedに設定されています。今回はこれをこのまま使います

Set Move Speed Rate Player GimmickはKeyに数値を受け取ると、それに応じてプレイヤーの速度を変化させます。
今回はワールドに入ったらすぐに速度を変化させるため、On Join Player Triggerを使います。
On Join Player Triggerはプレイヤーが入室した瞬間にメッセージを発行するため、ワールドに入るとすぐに速度を変化させることができます。
※入室時にギミックを発動させる方法としては他にもOn Create Item Triggerを利用する方法などがあります。
それでは、先程と同じオブジェクトにOn Join Player Triggerを追加してみましょう。
- 追加できたら+ボタンでトリガーを追加
- TargetをPlayer、Keyをギミックと同じ「moveSpeed」に設定します
- さらにValueをSignalからFloatに変更し、値の欄に「10」と入力します

アップロードして確認してみましょう。移動速度が10倍になっているはずです。
ジャンプ力を変える
Set Jump Height Rate Player Gimmickを使用すると、ジャンプ力も変えることができます。
- 上で作ったPlayerGimmickオブジェクトにSet Jump Height Rate Player Gimmickを追加します
- TargetはPlayer、KeyはjumpHeightになってるので、このまま使います

- 続いて、On Join Player Triggerの+ボタンをクリックしてトリガーを追加します
- 追加したメッセージのTargetをPlayer、KeyをjumpHeightに設定し、ValueをFloatに変更して値を「10」にします

もう一度アップロードして確認してみましょう。今度はジャンプ力が10倍になっていると思います。
スイッチを押すと速さやジャンプ力が変わるようにする
トリガーを変えれば様々な条件で速さやジャンプ力を変更できるようになります。
例として、スイッチを押すとジャンプ力が変わるギミックをつくってみましょう。

上で作ったギミックに加え、ワールドにスイッチとなるCubeを設置します。
- Hierarchyを右クリックし、3D ObjectからCubeを選択します。

Cubeをスイッチにするため、Add ComponentからInteract Item Triggerを追加します。
- +ボタンからトリガーを追加。
- TargetをOwner、その隣の欄(Key)をSet Jump Height Rate Player Gimmickと同じjumpHeightに設定します。ValueはFloatの「20」にしましょう
ちなみにこの「Owner」にはアイテムを掴んだり使ったりしたプレイヤーが指定されます。このように設定しておくことで、スイッチに触れた本人だけがギミックの影響を受けるようになります。

アップロードして確認すると、スイッチを押す前と後でジャンプ力が変化しているのが分かります。
Interact Item TriggerからmoveSpeedを発行すれば、同様に移動速度も変えられるようになります。
広いワールドをつくったときは、ぜひ移動速度やジャンプ力を変えて自由に探索できるようにしてみましょう!