mcpField
R
roblox-input

roblox-input

github.com/tabooharmony開発1381.9k 回インストール2 週間前に更新
リポジトリ

roblox-input について

Roblox Input は、クライアント側のタッチ、ゲームパッド、キーボード、マウス、モーション入力を扱う開発スキルです。クロスプラットフォームのバインド、UI 状態に応じた入力制御、キャンセル動作、テストツールを解説します。

主な機能

  1. 01入力イベントの処理
  2. 02ContextActionService のバインドパターン
  3. 03PreferredInput による操作表示
  4. 04UI フォーカス時のゲーム入力制御
  5. 05長押し入力のキャンセル条件
  6. 06Device Simulator と Controller Emulator によるテスト

活用シーン

  1. 01クロスプラットフォーム操作の構築
  2. 02モバイル向けアクションボタンの追加
  3. 03メニューやテキスト入力中のゲーム操作の抑止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tabooharmony/roblox-brain --skill roblox-input

インストール後、Claude Code で/roblox-inputを入力して読み込まれたか確認します。

同梱ファイルreferences/full.md

詳細

Roblox Input

読み込むタイミング

タッチ、ゲームパッド、キーボード、マウス、モーション入力、画面上のアクションボタン、クロスプラットフォームのバインド。クライアント専用です。Server Authority のシミュレーション入力には Input Action System を使用します。

クイックリファレンス

  • イベント: InputBegan/Changed/Ended は (input, gameProcessedEvent) を返します。ゲームプレイ用にフィルタリングしてください。ホイールで発生するのは InputChanged のみです。
  • バインド: ContextActionService:BindAction(name, handler, touchButton, ...keys) を優先してください。state で判定します(タッチの場合は KeyCode.Unknown)。バインドはスタック順になるため、BindActionAtPriority を使用してください。Server Authority では、InputAction/InputContext と RunService:BindToSimulation() を使用します(Workspace.UseFixedSimulation が必要です)。
  • モバイル優先、ハイブリッド対応: TouchEnabled を一度だけ取得して使うのではなく、GetPropertyChangedSignal で監視した UserInputService.PreferredInput(Enum.PreferredInput)に応じてコントロールを表示します。
  • タッチアクションボタン: ボタン上で始まったタッチに対してのみ発火します。カメラ操作のドラッグがボタン上を通過しても発火しません。PlayerGui.TouchGui のジャンプボタンの位置を測定して配置し、サムスティックの領域を空けてください。
  • ゲームプレイを制御する: ゲームウィンドウが開いているとき、TextBox にフォーカスがあるとき、GuiService.MenuIsOpen が有効なとき、または GuiService.SelectedObject が設定されているときは、攻撃をブロックしてください。
  • キャンセルはリリースではありません: ウィンドウを開いたとき、Cancel、装備解除、フォーカス喪失、入力切り替え、パッド切断の際には、ホールド状態をキャンセルしてください。
  • ゲームパッドツール: デフォルトのコントロールでは、BindActivate を通じて ButtonR2 がバインドされます。Tool.ManualActivationOnly = true にすると無効になります。ゲームパッドでは GetMouseLocation() ではなく、画面中央から照準を合わせてください。
  • ヒント: GetStringForKeyCode(key, Enum.KeyCodeStringFormat.Abbreviated)、GetImageForKeyCode、または InputActionLabel を使用してください。Xbox の名称をハードコードしないでください。
  • テスト: Device Simulator と Controller Emulator を使用してください。メニューのフォーカスは roblox-gui にあります。

詳細:references/full.md

コメント