Godot4で振動に対応してるコントローラーを振動させたい!
概要
今回の記事では、Godot4で振動に対応してるコントローラーを振動させる手順を掲載する。
仕様書
環境
- Gogot 4.1.1
手順書
あらかじめ「Project」->「Project Settings...」の「Input Map」で下記のような感じでマウス(タップ)にアクションを設定しておく。
Name | Event |
---|---|
weak_vibrate | Joypad Button 0 (Xbox A) |
strong_vibrate | Joypad Button 1 (Xbox B) |
long_vibrate | Joypad Button 2 (Xbox X) |
stop_vibrate | Joypad Button 3 (Xbox Y) |
スクリプトは下記のような感じ。
extends Node2D
func _process(delta):
if Input.is_action_just_pressed("weak_vibrate"):
Input.start_joy_vibration(0, 1, 0, 1)
elif Input.is_action_just_pressed("strong_vibrate"):
Input.start_joy_vibration(0, 0, 1, 1)
elif Input.is_action_just_pressed("long_vibrate"):
Input.start_joy_vibration(0, 1, 0, 10)
elif Input.is_action_just_pressed("stop_vibrate"):
Input.stop_joy_vibration(0)
使ってるコントローラーがXBOXのものだとして説明すると、A
ボタンを押すと弱振動のモーターが1秒間振動する。B
ボタンを押すと強振動のモーターが1秒間振動する。X
ボタンを押すと弱振動のモーターが10秒間振動する。Y
ボタンを押すと振動を停止する。。
説明
Input.start_joy_vibration
関数で振動を開始する。各引数は下記のような感じ。
第n引数 | 型 | 説明 |
---|---|---|
1 |
int |
0 から始まるデバイスの番号。 |
2 |
float |
弱振動(軽く早い感じ?)のモーターの強度を0.0 ~1.0 の間で設定。 |
3 |
float |
強振動(重い感じ?)のモーターの強度を0.0 ~1.0 の間で設定。 |
4 |
float |
振動する時間。 |
Input.stop_joy_vibration
関数で振動してるデバイスの振動を止める。引数で振動を止めるデバイスの番号を設定する。
まとめ(感想文)
キーボード&マウス派なので振動ってなんだか斬新&ノスタルジック。
引用・参考文献
下記の公式のリファレンスを参考にさせていただきました。