Steam Input APIはアクションをベースとした柔軟なAPIで、Xbox、PlayStation、Nintendo Switch ProやSteamコントローラなどすべての主要なタイプのコントローラをサポートします。
詳細情報は
Steam入力ドキュメントを参照してください。
メンバー関数
ISteamInput
のメンバー関数は、グローバルのアクセサー関数
SteamInput()
経由で呼び出されます。
ActivateActionSet
void ActivateActionSet( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle );
指定したアクションセット("メニュー", "歩く", や "運転"など)を使用するためにコントローラを再設定します。
低コストで安全に繰り返して呼び出せます。 状態移行のすべてに配置するのではなく、状態ループ内で繰り返し呼び出す方が簡単です。
例:void updateStateLoop()
{
switch( currentState )
{
case MENU:
SteamInput()->ActivateActionSet( inputHandle1, menuSetHandle );
doMenuStuff();
break;
case WALKING:
SteamInput()->ActivateActionSet( inputHandle1, walkingSetHandle );
doWalkingStuff();
break;
case DRIVING:
SteamInput()->ActivateActionSet( inputHandle1, drivingSetHandle );
doDrivingStuff();
break;
case FIGHTING:
SteamInput()->ActivateActionSet( inputHandle1, fightingSetHandle );
doFightingStuff();
break;
}
}
例:void updateStateLoop()
{
switch( currentState )
{
case MENU:
SteamInput()->ActivateActionSet( STEAM_INPUT_HANDLE_ALL_CONTROLLERS, menuSetHandle );
doMenuStuff();
break;
case WALKING:
SteamInput()->ActivateActionSet( STEAM_INPUT_HANDLE_ALL_CONTROLLERS, walkingSetHandle );
doWalkingStuff();
break;
case DRIVING:
SteamInput()->ActivateActionSet( STEAM_INPUT_HANDLE_ALL_CONTROLLERS, drivingSetHandle );
doDrivingStuff();
break;
case FIGHTING:
SteamInput()->ActivateActionSet( STEAM_INPUT_HANDLE_ALL_CONTROLLERS, fightingSetHandle );
doFightingStuff();
break;
}
}
ActivateActionSetLayer
void ActivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle );
指定したアクションセットレイヤーを使用するためにコントローラを再設定します。
より実践的な例と詳細は
アクションセットレイヤーを参照してください。
例:SteamInput()->ActivateActionSetLayer( inputHandle1, myActionSetLayer );
DeactivateActionSetLayer
void DeactivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle );
指定したアクションセットレイヤーの使用を終了するためにコントローラを再設定します。
例:SteamInput()->DeactivateActionSetLayer( inputHandle1, myActionSetLayer );
DeactivateAllActionSetLayers
void DeactivateAllActionSetLayers( InputHandle_t inputHandle );
すべてのアクションセットレイヤーの使用を終了するためにコントローラを再設定します。
例:SteamInput()->DeactivateAllActionSetLayers( inputHandle1 );
GetActiveActionSetLayers
int GetActiveActionSetLayers( InputHandle_t inputHandle, InputActionSetHandle_t *handlesOut );
指定のコントローラハンドルの現在のアクティブなすべてのアクションセットレイヤーで配列を埋めます。
例:InputHandle_t *handlesOut = new InputHandle_t [];
SteamInput()->GetActiveActionSetLayers( inputHandle1, &handlesOut );
GetActionSetHandle
InputActionSetHandle_t GetActionSetHandle( const char *pszActionSetName );
名前 | 型 | 説明 |
pszActionSetName | const char * | ゲームのVDFファイル内で定義されたアクションセットの文字列識別子。 |
アクションセットのハンドルを参照します。 開始時に実行し、将来のすべてのAPI呼び出しのハンドルを格納してください。
戻り値:InputActionSetHandle_t指定のアクションセットのハンドル。
例:InputActionSetHandle_t fightingSetHandle = SteamInput()->GetActionSetHandle( "fighting" );
GetAnalogActionData
InputAnalogActionData_t GetAnalogActionData( InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle );
提供されたアナログゲームアクションの現在の状態を返します。
戻り値:InputAnalogActionData_t指定のアナログアクションの現在の状態。
例:InputAnalogActionData_t data = SteamInput()->GetAnalogActionData( controller1Handle, moveHandle );
GetAnalogActionHandle
InputAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
名前 | 型 | 説明 |
pszActionName | const char * | ゲームのVDFファイル内で定義されたアナログアクションの文字列識別子。 |
指定されたアナログアクションのハンドルを取得。
注:この関数はアクションセットハンドルパラメーターを受け付けません。 つまり、VDFファイル内の各アクションは一意の文字列識別子を持つ必要があります。 言い換えれば、2つの異なるアクションセット内に 「up」と呼ばれるアクションを使う場合には、この関数は1つのみを返し、もう一方は無視されます。
戻り値:InputAnalogActionHandle_t指定のアナログアクションのハンドル。
例:InputAnalogActionHandle_t moveHandle = SteamInput()->GetAnalogActionHandle( "move" );
GetAnalogActionOrigins
int GetAnalogActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, EInputActionOrigin *originsOut );
OriginsOutにEInputActionOriginハンドルを記入してアクションセット内のアナログアクションの発生元を取得します。 これを使用して、アクションのプロンプトを適切に画面に表示します。
戻り値:int
originsOut
に提供された発生元の数。
例:EInputActionOrigin *origins = new EInputActionOrigin[];
SteamInput()->GetAnalogActionOrigins( controller1Handle, walkingSetHandle, moveHandle, origins );
GetConnectedControllers
int GetConnectedControllers( InputHandle_t *handlesOut );
HandlesOutにコントローラハンドルを記入して現在接続されたコントローラを列挙します。
戻り値:int
handlesOut
に書き込まれたハンドルの数。
例:InputHandle_t *inputHandles = new InputHandle_t[];
SteamInput()->GetConnectedControllers( inputHandles );
GetControllerForGamepadIndex
InputHandle_t GetControllerForGamepadIndex( int nIndex );
名前 | 型 | 説明 |
nIndex | int | コントローラハンドルを取得するエミュレートされたゲームパッドのインデックス。 |
指定のエミュレートされたゲームパッドに関連付けられたコントローラハンドルを返します。 GetInputTypeForHandleと併用でき、Steam入力ゲームパッドエミュレーションを使用中のコントローラのタイプを決定します。
戻り値:InputHandle_t例:// 照会するXInputスロットと交換します。 数字は0から3の間です
int nXinputSlotIndex = 0;
InputHandle_t inputHandle = SteamInput()->GetControllerForGamepadIndex( nXinputSlotIndex );
if ( inputHandle == 0 )
{
// 有効な入力ハンドルはゼロ以外です。これは通常のXboxコントローラーです。
}
else
{
ESteamInputType inputType = SteamInput()->GetInputTypeForHandle( inputHandle );
switch( inputType )
{
case k_ESteamInputType_Unknown:
printf( "unknown!\n" ); break;
case k_ESteamInputType_SteamController:
printf( "Steam controller!\n" ); break;
case k_ESteamInputType_XBox360Controller:
printf( "XBox 360 controller!\n" ); break;
case k_ESteamInputType_XBoxOneController:
printf( "XBox One controller!\n" ); break;
case k_ESteamInputType_GenericXInput:
printf( "Generic XInput!\n" ); break;
case k_ESteamInputType_PS4Controller:
printf( "PS4 controller!\n" ); break;
}
}
GetCurrentActionSet
InputActionSetHandle_t GetCurrentActionSet( InputHandle_t inputHandle );
指定のコントローラで現在のアクティブなアクションセットを取得。
戻り値:InputActionSetHandle_t指定のコントローラに有効化されたアクションセットのハンドル。
例:InputActionSetHandle_t controller1Set = SteamInput()->GetCurrentActionSet(controller1Handle);
GetDigitalActionData
InputDigitalActionData_t GetDigitalActionData( InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle );
提供されたデジタルゲームアクションの現在の状態を返します。
戻り値:InputDigitalActionData_t指定のデジタルアクションの現在の状態。
GetDigitalActionHandle
InputDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
名前 | 型 | 説明 |
pszActionName | const char * | ゲームのVDFファイル内で定義されたデジタルアクションの文字列識別子。 |
指定されたデジタルアクションのハンドルを取得。
注:この関数はアクションセットハンドルパラメーターを受け付けません。 つまり、VDFファイル内の各アクションは一意の文字列識別子を持つ必要があります。 言い換えれば、2つの異なるアクションセット内に 「up」と呼ばれるアクションを使う場合には、この関数は1つのみを返し、もう一方は無視されます。
戻り値:InputDigitalActionHandle_t指定のデジタルアクションのハンドル。
例:InputDigitalActionHandle_t punchHandle = SteamInput()->GetDigitalActionHandle( "punch" );
GetDigitalActionOrigins
int GetDigitalActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, EInputActionOrigin *originsOut );
originsOut
に
EInputActionOriginハンドルを設定してアクションセット内のデジタルアクションの発生元を取得します。 これを使用して、アクションのプロンプトを適切に画面に表示します。
戻り値:int
originsOut
に提供された発生元の数。
例:EInputActionOrigin *origins = new EInputActionOrigin[];
SteamInput()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
GetGamepadIndexForController
int GetGamepadIndexForController( InputHandle_t ulControllerHandle );
名前 | 型 | 説明 |
ulControllerHandle | InputHandle_t | ゲームパッドインデックスを取得するコントローラのハンドル。 |
ゲームパッドをエミュレートしている場合には、指定のコントローラに関連するゲームパッドインデックスを返します。
戻り値:int
例:int gamepadIndex = SteamInput()->GetGamepadIndexForController( controller1Handle );
GetGlyphForActionOrigin
const char * GetGlyphForActionOrigin( EInputActionOrigin eOrigin );
それぞれの発生元に対応したグリフを画面上に表示するためにローカルパスを取得します。
戻り値:const char *
グリフ用のpngファイルのパス。
例
"C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
例:// "punch"の発生元を取得
EInputActionOrigin *origins = new EInputActionOrigin[];
SteamInput()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
EInputActionOrigin firstOrigin = origins[0]; //i.e, k_EInputActionOrigin_PS4_X
// ゲーム自体の関数で、カスタムのグリフアートを取得しようとします
int glyphTextureID = getHardCodedButtonGlyphTexture( firstOrigin );
// この発生元に対してゲームではアートを設定していません! Steamが新タイプのコントローラへのサポート
//を追加したか、アートの追加を忘れたのかもしれません!
//(Steamコントローラグリフはありますが、これはPlasyStation 4コントローラーです)
if( glyphTextureID == -1 )
{
// 代わりにSteamクライアントからイメージを取得します。
const char *localGlyphPath = SteamInput()->GetGlyphForActionOrigin( firstOrigin );
printf( "path = %s\n", localGlyphPath ); // "path = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
//ファイルパスを使用可能なゲームテクスチャに変換するゲーム由来の関数
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
}
GetInputTypeForHandle
ESteamInputType GetInputTypeForHandle( InputHandle_t inputHandle );
指定のコントローラの入力タイプ(デバイスモデル)を返します。 そのコントローラが、Steamコントローラ、XBox 360コントローラー、PS4コントローラーなのかなどがわかります。
戻り値:ESteamInputType例:ESteamInputType inputType = SteamInput()->GetInputTypeForHandle(controller1Handle);
switch(inputType)
{
case k_ESteamInputType_Unknown:
printf("unknown!\n"); break;
case k_ESteamInputType_SteamController:
printf("Steam controller!\n"); break;
case k_ESteamInputType_XBox360Controller:
printf("XBox 360 controller!\n"); break;
case k_ESteamInputType_XBoxOneController:
printf("XBox One controller!\n"); break;
case k_ESteamInputType_GenericXInput:
printf("Generic XInput!\n"); break;
case k_ESteamInputType_PS4Controller:
printf("PS4 controller!\n"); break;
}
GetMotionData
InputMotionData_t GetMotionData( InputHandle_t inputHandle );
指定のコントローラの未加工のモーションデータを返します。
戻り値:InputMotionData_t例:InputMotionData_t motionData = SteamInput()->GetControllerMotionData( inputHandle );
GetStringForActionOrigin
const char * GetStringForActionOrigin( EInputActionOrigin eOrigin );
指定の発生元に(Steamの言語設定に基づいて)ローカライズされた文字列を返します。
戻り値:const char *
例:EInputActionOrigin *origins = new EInputActionOrigin[];
SteamInput()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );
const char * punchString = SteamInput()->GetStringForActionOrigin( origins[0] );
printf("punch = %s\n",punchString);
Init
bool Init();
ISteamInputインターフェイスの使用開始時に呼び出す必要があります。
戻り値:bool
常に
trueを返します。
例:SteamInput()->Init();
RunFrame
void RunFrame();
取得できる最新のSteamコントローラ入力とAPIの状態を同期します。 これはSteamAPI_RunCallbacksで自動的に実行されますが、可能な限り絶対的に最低のレイテンシーに対しては、コントローラの状態を読み出す前に直接これを呼び出せます。
例:SteamInput()->RunFrame();
SetDualSenseTriggerEffect
void SetDualSenseTriggerEffect( InputHandle_t inputHandle, const ScePadTriggerEffectParam *pParam );
名前 | 型 | 説明 |
inputHandle | InputHandle_t | 対象のコントローラのハンドル。 |
pParam | ScePadTriggerEffectParam | トリガーのパラメーター、isteamdualsense.hで定義される |
DualSenseコントローラーにトリガー効果を設定
例:ScePadTriggerEffectParam param;
memset( ¶m, 0, sizeof( param ) );
param.triggerMask = SCE_PAD_TRIGGER_EFFECT_TRIGGER_MASK_R2;
param.command[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2].mode = SCE_PAD_TRIGGER_EFFECT_MODE_VIBRATION;
param.command[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2].commandData.vibrationParam.position = 5;
param.command[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2].commandData.vibrationParam.amplitude = 5;
param.command[SCE_PAD_TRIGGER_EFFECT_PARAM_INDEX_FOR_R2].commandData.vibrationParam.frequency = 8;
SteamInput()->SetDualSenseTriggerEffect( controller1Handle, ¶m );
SetLEDColor
void SetLEDColor( InputHandle_t inputHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags );
サポートされたコントローラに、コントローラLEDを設定します。
注:VSCは白以外の色をサポートしていないため、 RGBの値を明るさのグレースケール値として理解し、SteamボタンLEDの明るさに影響します。
DS4はフルカラー情報をサポートし、その値をライトバーの色と明るさに反映します。
例:// コントローラ1にユーザーのデフォルトカラーを復元:
SteamInput()->SetLEDColor( controller1Handle, 0, 0, 0, k_ESteamControllerLEDFlag_RestoreUserDefault );
// コントローラ2の色をマゼンタに設定:
SteamInput()->SetLEDColor( controller2Handle, 255, 0, 255, k_ESteamControllerLEDFlag_SetColor );
ShowAnalogActionOrigins
bool ShowAnalogActionOrigins( InputHandle_t inputHandle, InputAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition );
使用されていません。
戻り値: bool
常に
trueを返します。
ShowBindingPanel
bool ShowBindingPanel( InputHandle_t inputHandle );
Steamオーバーレイを呼び出し割当スクリーンを表示します。
戻り値: bool
trueで成功、オーバーレイが無効化されているか使用できない場合は
falseです。 プレイヤーがBig Pictureモードを使用している場合、設定はオーバーレイ内で開きます。 デスクトップモードでは、ウィンドウとしてBig Pictureのポップアップバージョンが作られ、設定が開きます。
例:SteamInput()->ShowBindingPanel( myControllerHandle );
ShowDigitalActionOrigins
bool ShowDigitalActionOrigins( InputHandle_t inputHandle, InputDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition );
使用されていません。
戻り値:bool
常に
trueを返します。
Shutdown
bool Shutdown();
ISteamInputインターフェイスの使用終了時に呼び出す必要があります。
戻り値: bool
常に
trueを返します。
例:SteamInput()->Shutdown();
StopAnalogActionMomentum
void StopAnalogActionMomentum( InputHandle_t inputHandle, InputAnalogActionHandle_t eAction );
当該のアナログアクションの慣性を停止します。(例:バーチャルトラックボール設定のあるタッチパッドを使用)
注:すべての関連するハプティクスも停止します。 カルーセルの回転やWebページのスクロール等、ユーザーにアクションの限界に到達したことを伝える場合に便利です。
例:SteamInput()->StopAnalogActionMomentum( controller1Handle, moveHandle );
TriggerHapticPulse
void TriggerHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec );
対応コントローラでの(低レベル)ハプティックパルスを誘発。
注:現在は VSC のみがハプティックパルスに対応しています。
この API コールは、他のコントローラモデルでは無視されます。
符号なしshortの最大値は 65535 で、この方法によって誘発できる最長のハプティックパルスの期間が 0.065535 秒であることを意味します。 (1 秒 の 1/10 以下です。) この関数は、より複雑な動作を作成するためのより高レベルなユーザー関数で繰り返し使用される、低レベルのプリミティブな方法としてお考え下さい。
例://1秒間のパルス、それぞれ1/20秒のon/offパルスパターンを持ちます
SteamInput()->TriggerRepeatedHapticPulse( controller1Handle, k_ESteamControllerPad_Left, 50000, 50000, 10 );
TriggerRepeatedHapticPulse
void TriggerRepeatedHapticPulse( InputHandle_t inputHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags );
名前 | 型 | 説明 |
inputHandle | InputHandle_t | 対象のコントローラのハンドル。 |
eTargetPad | ESteamControllerPad | 影響するハプティックタッチパッド。 |
usDurationMicroSec | 符号なし short | マイクロ秒 (1 秒の 1/1,000,000) 単位でのパルス期間。 |
usOffMicroSec | 符号なしshort | マイクロ秒単位での、パルス間の期間。 |
unRepeat | 符号なしshort | usDurationMicroSec / usOffMicroSec デューティ―比を繰り返す回数。 |
nFlags | 符号なしint | 現在未使用ですが、将来のため予約済みです。 |
対応コントローラで繰り返されるハプティックパルスを誘発します。
注:現在はSteamコントローラ、Steam Deck、Nintendo Switch Proコントローラーがハプティックパルスに対応しています。
非対応のコントローラモデルでは、このAPIコールは無視されます。
ユーザーが実際に気が付くことのできる長さのパルスパターンを生成できるため、TriggerHapticPulseよりもユーザーフレンドリーな関数です。
usDurationMicroSecとusOffMicroSecパラメーターへの変更は、ハプティックパルスの "テクスチャ"を変更します。
例://1秒間のパルス、それぞれ1/20秒のon/offパルスパターンを持ちます
SteamInput()->TriggerRepeatedHapticPulse( controller1Handle, k_ESteamControllerPad_Left, 50000, 50000, 10 );
TriggerVibration
void TriggerVibration( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed );
名前 | 型 | 説明 |
inputHandle | InputHandle_t | 対象のコントローラのハンドル。 |
usLeftSpeed | 符号なしshort | 左ランブルモーターの強度値。 |
usRightSpeed | 符号なしshort | 右ランブルモーターの強度値。 |
対応コントローラーでの振動イベントを誘発。
注:非対応コントローラモデルではこのAPI呼び出しは無視されます。
これは従来の"ランブル" 振動効果を生成します。
VSCはハプティックを用いて伝統的なランブルをエミュレートします。
例:SteamInput()->TriggerVibration( controller1Handle, 10000, 10000 );
TriggerVibrationExtended
void TriggerVibrationExtended( InputHandle_t inputHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed );
名前 | 型 | 説明 |
inputHandle | InputHandle_t | 影響するコントローラのハンドル。 |
usLeftSpeed | unsigned short | 左ランブルモーターの強度値。 |
usRightSpeed | unsigned short | 右ランブルモーターの強度値。 |
usLeftTriggerSpeed | unsigned short | 左のXboxインパルストリガーモーターの強度値。 |
usRightTriggerSpeed | unsigned short | 右のXboxインパルストリガーモーターの強度値。 |
Xboxインパルストリガーモーター値を含む、対応コントローラー上の振動イベントをトリガーします。
注:WindowsのXboxインパルストリガーモーター値へのサポートは、ユーザーがXbox拡張機能サポートドライバをインストールしていることを必要とします。
SteamコントローラとSteam Deckはハプティクスを使用して、従来のランブルをエミュレートします。
例:SteamInput()->TriggerVibrationExtended( controller1Handle, 10000, 10000, 10000, 10000 );
GetActionOriginFromXboxOrigin
EInputActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin );
名前 | 型 | 説明 |
inputHandle | InputHandle_t | 対象のコントローラのハンドル。 このハンドルの取得にGetControllerForGamepadIndexを使えます。 |
eOrigin | EXboxOrigin | イメージを取得するボタンです。 例: k_EXboxOrigin_A |
戻り値: EInputActionOrigin
グリフ検索テーブルで使用できる、またはGetGlyphForActionOriginかGetStringForActionOriginに渡されるアクション発生元を取得します。
例:int nXinputSlot = 1; // プレイヤーにとって適切なXinput入力と置き換える
InputHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EInputActionOrigin buttonOrigin = SteamInput()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A );
// Steamクライアントからイメージを取得する。
const char *localGlyphPath = SteamInput()->GetGlyphForActionOrigin( buttonOrigin );
printf( "path = %s\n", localGlyphPath ); // "path = C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"
//ファイルパスを使用可能なゲームテクスチャに変換するゲームからの関数
glyphTextureID = loadButtonGlyphTextureFromLocalPath( localGlyphPath );
TranslateActionOrigin
EInputActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin );
名前 | 型 | 説明 |
inputHandle | InputHandle_t | 影響するコントローラのハンドル。 このハンドルの取得にGetControllerForGamepadIndexを使えます。 |
eDestinationInputType | ESteamInputType | 変換するコントローラのタイプ。 k_ESteamInputType_Unknownが使用されれば、Steamはご利用のSDKバージョンから最も近いタイプを選択します。 |
eSourceOrigin | EInputActionOrigin | 変換したいボタン。 |
戻り値: EInputActionOrigin
eDestinationInputTypeがk_ESteamInputType_Unknownの場合、特定のコントローラのタイプまたはゲームにビルドしたSDKに存在する最も近いコントローラタイプの同等の発生元を取得します。 このアクション発生元は、グリフルックアップテーブルで使用するか、GetGlyphForActionOriginまたはGetStringForActionOrigin に渡すことができます。
例:int nXinputSlot = 1; // プレイヤーにとって適切なXinputスロットに置き換えます。
InputHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot );
EInputActionOrigin buttonOrigin = SteamInput()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); //例えば k_EInputActionOrigin_PS4_X
if ( buttonOrigin >= k_EInputActionOrigin_Count )
{
// この発生元へのアートをゲーム内に設定していません! Steamが新しいコントローラのサポートを
// 追加したようです! ビルドしたSDKがサポートする最も近い値を取得しましょう。
buttonOrigin = SteamInput()->TranslateActionOrigin( k_ESteamInputType_Unknown, buttonOrigin )
}
// これは、カスタムのグリフアートを取得するためのゲーム自身の機能です。
int glyphTextureID = getHardCodedButtonGlyphTexture( actionOrigin );
GetDeviceBindingRevision
bool GetDeviceBindingRevision( InputHandle_t inputHandle, int *pMajor, int *pMinor );
名前 | 型 | 説明 |
inputHandle | InputHandle_t | 照会するコントローラのハンドル。 |
pMajor | int * | メジャーな割り当て変更が格納されるintへのポインター。 |
pMinor | int * | マイナーな割り当て変更が格納されるintへのポインター。 |
戻り値: bool ー デバイスの割り当てが正常に見つかった場合はtrue、割り当てがまだ読み込み中の場合にはfalse。
Steam Input API構成のメジャー、およびマイナーなデバイス割り当て変更を取得します。 メジャーな変更は、アクションセット数の変更があった時など、古い設定が使えなくなる程度に構成が修正される時に使用します。 ユーザーの割当が現在の公式設定のメジャーな変更に同意しない場合には、Steamは強制的にユーザーを新しい設定に更新します。 メジャーな変更を更新するときには、すべてのコントローラ用に新しい設定が作成される必要があります。 マイナーな変更は、任意のアクションの新規追加や、設定内のローカライズ更新などの小さな変更です。 マイナーな変更を更新するときは一般的に、一つの設定を更新してから「アクションブロックを使用」を確認して、残りの設定にアクションブロックの変更を適用します。
サンプルコード:int nMajorRevision = -1;
int nMinorRevision= -1;
const int nCurrentMajorRevision = 1;
const int nCurrentMinorRevision = 1;
if ( GetDeviceBindingRevision( inputHandle, &nMajorRevision , &nMinorRevision ) )
{
if ( nMinorRevision != nCurrentMinorRevision )
{
// 期限切れのマイナーバージョン、問題なし
// 次回のconfig編集で修正されます
}
if ( nMajorRevision != nCurrentMajorRevision )
{
// Steamが検出中の間のみ短期間で発生
// その後最新の公式configにユーザーを強制的にアップデート
}
}
else
{
// このコントローラには設定がまだ読み込まれていません
}
ゲームアクションファイルの使用例:"In Game Actions"
{
"major_revision" "0"
"minor_revision" "1"
"actions"
{
...
GetRemotePlaySessionID
uint32 GetRemotePlaySessionID( InputHandle_t inputHandle );
戻り値: uint32 - Steam Remote PlayのセッションID
デバイスに関連付けられたSteam Remote PlayセッションIDか、関連セッションが無ければ0を取得します。 Steam Remote Playセッションの詳細情報はisteamremoteplay.hを参照してください。
構造体
これらは、ISteamInput内の関数が返す、またはやり取りする構造体です。
InputAnalogActionData_t
アナログアクションの現在の状態を表します。
注: - 構成によってその値や範囲などは異なりますが、(大まかに言えば)従来のアナログアクションは-1.0から1.0の正規化されたfloat値を提供し、マウスのようなアクションは、最後のフレームから移動した分の「ピクセル」数の差分アップデートを提供します。 つまり、マウスのようなアクションはより大きなxとyの絶対値を提供し、それは最後に記録された入力位置を基準としています。一方で、伝統的なアナログアクションはより小さく、中央の物理的なアンカーポイントを基準としています。
- マウスのようなアクションが提供する差分は、OSが提供するピクセルデルタに非常によく似ていますが、SCデルタは整数ではなくfloatです。 これは、このデータをカメラ回転にマッピングしたときに、より少ない潜在的な量子化と精度の損失を意味します。
- アナログトリガー等の単軸アナログ入力の場合、x軸のみがデータを含み、y軸は常に0となります。
名前 | 型 | 説明 |
eMode | EControllerSourceMode | このアクションからのデータの型は、VDF定義で設定されたアクションと一致します。 |
x | float | 横軸におけるこのアクションの現在の状態。 |
y | float | 縦軸におけるこのアクションの現在の状態。 |
bActive | bool | 現在このアクションが利用可能かどうかに関わらず、有効なアクションセットに紐づけられます。 利用できない場合、または有効なアクションセットに属さない場合、falseとなります。 |
InputDigitalActionData_t
デジタルアクションの現在の状態を表します。
名前 | 型 | 説明 |
bState | bool | このアクションの現在の状態:アクションが現在押されている場合はtrue。それ以外の場合はfalse。 |
bActive | bool | 現在このアクションが利用可能かどうかに関わらず、有効なアクションセットに紐づけられます。 |
InputMotionData_t
デバイスのモーションセンサーの現在の状態を表します。
注: rotQuatX/rotQuatY/rotQuatZ/rotQuatWでは、コントローラの慣性測定ユニットがジャイロと加速度計の融合に基づく四元数を作成します。 この値は、コントローラの絶対的な向きですが、ヨー軸上にドリフトします。
位置加速度はINT16_MINとINT16_MAXの間の補間値として報告され、その範囲は±2Gに制限されます(1G = 9.80665m/s
2)。
角速度はINT16_MINとINT16_MAXの間の補間値として報告され、その範囲は ±2000度/秒に制限されます。
名前 | 型 | 説明 |
rotQuatX | float | センサー融合絶対回転(進路にドリフトします)、x軸 |
rotQuatY | float | センサー融合絶対回転(進路にドリフトします)、y 軸 |
rotQuatZ | float | センサー融合絶対回転(進路にドリフトします)、z軸 |
rotQuatW | float | センサー融合絶対回転(進路にドリフトします)、w 軸 |
posAccelX | float | 位置的な加速、x軸 |
posAccelY | float | 位置的な加速、y軸 |
posAccelZ | float | 位置的な加速、z軸 |
rotVelX | float | 角速度、 x軸 |
rotVelY | float | 角速度、 y軸 |
rotVelZ | float | 角速度、 z軸 |
列挙型
これらはISteamInputで使用するために定義された列挙型です。
EInputActionOrigin
プレイヤーが Steam入力コンフィギュレーターでバインドするアクションを入力します。 これらの値の主な目的は、アクションに応じて表示されるボタングリフを決定することです。例:「
[A]を押してジャンプ」
名前 | 値 | 説明 |
k_EInputActionOrigin_None | 0 | |
k_EInputActionOrigin_A | 1 | (Valve Steamコントローラ) デジタルフェイスボタン A |
k_EInputActionOrigin_B | 2 | (Valve Steamコントローラ) デジタルフェイスボタンB |
k_EInputActionOrigin_X | 3 | (Valve Steamコントローラ) デジタルフェイスボタンX |
k_EInputActionOrigin_Y | 4 | (Valve Steamコントローラ) デジタルフェイスボタンY |
k_EInputActionOrigin_LeftBumper | 5 | (Valve Steamコント ローラ) デジタル左ショルダーボタン (別名 左バンパー) |
k_EInputActionOrigin_RightBumper | 6 | (Valve Steamコント ローラ) デジタル右ショルダーボタン (別名 右バンパー) |
k_EInputActionOrigin_LeftGrip | 7 | (Valve Steamコントローラ) デジタル左グリップパドル |
k_EInputActionOrigin_RightGrip | 8 | (Valve Steamコントローラ) デジタル右グリップパドル |
k_EInputActionOrigin_Start | 9 | (Valve Steamコントローラ) デジタルスタートボタン |
k_EInputActionOrigin_Back | 10 | (Valve Steamコントローラ) デジタルバックボタン |
k_EInputActionOrigin_LeftPad_Touch | 11 | (Valve Steam コントローラ) 左ハプティックタッチパッド、指での単純な接触 |
k_EInputActionOrigin_LeftPad_Swipe | 12 | (Valve Steamコントローラ) 左ハプティックタッチパッド、任意の軸上へのタッチ入力 |
k_EInputActionOrigin_LeftPad_Click | 13 | (Valve Steamコントローラ) 左ハプティックタッチパッド、デジタルクリック (全体押し込み) |
k_EInputActionOrigin_LeftPad_DPadNorth | 14 | (Valve Steam コントローラ) 左ハプティックタッチパッド、デジタルクリック (4分割上) |
k_EInputActionOrigin_LeftPad_DPadSouth | 15 | (Valve Steamコントローラ) 左ハプティックタッチパッド、デジタルクリック (4分割下) |
k_EInputActionOrigin_LeftPad_DPadWest | 16 | (Valve Steamコントローラ) 左ハプティックタッチパッド、デジタルクリック (4分割左) |
k_EInputActionOrigin_LeftPad_DPadEast | 17 | (Valve Steamコントローラ) 左ハプティックタッチパッド、デジタルクリック (4分割右) |
k_EInputActionOrigin_RightPad_Touch | 18 | (Valve Steamコントローラ) 右ハプティックタッチパッド、指での単純な接触 |
k_EInputActionOrigin_RightPad_Swipe | 19 | (Valve Steamコントローラ) 右ハプティックタッチパッド、任意の軸上へのタッチ入力 |
k_EInputActionOrigin_RightPad_Click | 20 | (Valve Steamコントローラ) 右ハプティックタッチパッド、デジタルクリック (全体押し込み) |
k_EInputActionOrigin_RightPad_DPadNorth | 21 | (Valve Steamコントローラ) 右ハプティックタッチパッド、デジタルクリック (4分割上) |
k_EInputActionOrigin_RightPad_DPadSouth | 22 | (Valve Steamコントローラ) 右ハプティックタッチパッド、デジタルクリック (4分割下) |
k_EInputActionOrigin_RightPad_DPadWest | 23 | (Valve Steamコントローラ) 右ハプティックタッチパッド、デジタルクリック (4分割左) |
k_EInputActionOrigin_RightPad_DPadEast | 24 | (Valve Steamコントローラ) 右ハプティックタッチパッド、デジタルクリック (4分割右) |
k_EInputActionOrigin_LeftTrigger_Pull | 25 | (Valve Steamコントローラ) 左アナログトリガー、任意量の押し込み (アナログ値) |
k_EInputActionOrigin_LeftTrigger_Click | 26 | (Valve Steamコントローラ) 左アナログトリガー、押し切り (デジタル値) |
k_EInputActionOrigin_RightTrigger_Pull | 27 | (Valve Steamコントローラ) 右アナログトリガー、任意量の押し込み (アナログ値) |
k_EInputActionOrigin_RightTrigger_Click | 28 | (Valve Steamコントローラ) 右アナログトリガー、押し切り (デジタル値) |
k_EInputActionOrigin_LeftStick_Move | 29 | (Valve Steamコントローラ) 左ジョイスティック、任意の軸での移動(アナログ値) |
k_EInputActionOrigin_LeftStick_Click | 30 | (Valve Steamコントローラ) 左ジョイスティック、クリック(デジタル値) |
k_EInputActionOrigin_LeftStick_DPadNorth | 31 | (Valve Steamコントローラ) 左ジョイスティック、デジタル移動 (4分割上) |
k_EInputActionOrigin_LeftStick_DPadSouth | 32 | (Valve Steamコントローラ) 左ジョイスティック、デジタル移動 (4分割下) |
k_EInputActionOrigin_LeftStick_DPadWest | 33 | (Valve Steamコントローラ) 左ジョイスティック、デジタル移動 (4分割左) |
k_EInputActionOrigin_LeftStick_DPadEast | 34 | (Valve Steamコントローラ) 左ジョイスティック、デジタル移動 (4分割右) |
k_EInputActionOrigin_Gyro_Move | 35 | (Valve Steamコントローラ) ジャイロスコープ、任意の軸へのアナログ移動 |
k_EInputActionOrigin_Gyro_Pitch | 36 | (Valve Steamコントローラ) ジャイロスコープ、(正面を天井と床方向に向ける)ピッチ軸のアナログ移動 |
k_EInputActionOrigin_Gyro_Yaw | 37 | (Valve Steamコントローラ) ジャイロスコープ、(正面を左右へ向ける)ヨー軸のアナログ移動 |
k_EInputActionOrigin_Gyro_Roll | 38 | (Valve Steamコントローラ) ジャイロスコープ、(正面を左右へ傾ける)ロール軸のアナログ移動 |
k_EInputActionOrigin_SteamController_Reserved0 | 39 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved1 | 40 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved2 | 41 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved3 | 42 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved4 | 43 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved5 | 44 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved6 | 45 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved7 | 46 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved8 | 47 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved9 | 48 | 将来のため予約済み |
k_EInputActionOrigin_SteamController_Reserved10 | 49 | 将来のため予約済み |
k_EInputActionOrigin_PS4_X | 50 | (Sony Dualshock 4) デジタルフェイスボタン X |
k_EInputActionOrigin_PS4_Circle | 51 | (Sony Dualshock 4) デジタルフェイスボタン 〇 |
k_EInputActionOrigin_PS4_Triangle | 52 | (Sony Dualshock 4) デジタルフェイスボタン△ |
k_EInputActionOrigin_PS4_Square | 53 | (Sony Dualshock 4) デジタルフェイスボタン□ |
k_EInputActionOrigin_PS4_LeftBumper | 54 | (Sony Dualshock 4) デジタル左ショルダーボタン (別名 左バンパー) |
k_EInputActionOrigin_PS4_RightBumper | 55 | (Sony Dualshock 4) デジタル右ショルダーボタン (別名 右バンパー) |
k_EInputActionOrigin_PS4_Options | 56 | (Sony Dualshock 4) デジタルオプションボタン (別名 Start) |
k_EInputActionOrigin_PS4_Share | 57 | (Sony Dualshock 4) デジタルshareボタン (別名 Back) |
k_EInputActionOrigin_PS4_LeftPad_Touch | 58 | (Sony Dualshock 4) タッチパッド左半分、指での単純な接触 |
k_EInputActionOrigin_PS4_LeftPad_Swipe | 59 | (Sony Dualshock 4) タッチパッドの左半分、任意の軸上へのタッチ入力 |
k_EInputActionOrigin_PS4_LeftPad_Click | 60 | (Sony Dualshock 4) タッチパッドの左半分、(全体への)デジタルクリック |
k_EInputActionOrigin_PS4_LeftPad_DPadNorth | 61 | (Sony Dualshock 4) タッチパッドの左半分、(4分割下への)デジタルクリック |
k_EInputActionOrigin_PS4_LeftPad_DPadSouth | 62 | (Sony Dualshock 4) タッチパッドの左半分、(4分割下への)デジタルクリック |
k_EInputActionOrigin_PS4_LeftPad_DPadWest | 63 | (Sony Dualshock 4) タッチパッドの左半分、(4分割左への)デジタルクリック |
k_EInputActionOrigin_PS4_LeftPad_DPadEast | 64 | (Sony Dualshock 4) タッチパッドの左半分、(4分割右への)デジタルクリック |
k_EInputActionOrigin_PS4_RightPad_Touch | 65 | (Sony Dualshock 4) タッチパッド右半分、指での単純な接触 |
k_EInputActionOrigin_PS4_RightPad_Swipe | 66 | (Sony Dualshock 4) タッチパッドの右半分、任意の軸上へのタッチ入力 |
k_EInputActionOrigin_PS4_RightPad_Click | 67 | (Sony Dualshock 4) タッチパッドの右半分、(全体への)デジタルクリック |
k_EInputActionOrigin_PS4_RightPad_DPadNorth | 68 | (Sony Dualshock 4) タッチパッドの右半分、(4分割上への)デジタルクリック |
k_EInputActionOrigin_PS4_RightPad_DPadSouth | 69 | (Sony Dualshock 4) タッチパッドの右半分、(4分割下への)デジタルクリック |
k_EInputActionOrigin_PS4_RightPad_DPadWest | 70 | (Sony Dualshock 4) タッチパッドの右半分、(4分割左への)デジタルクリック |
k_EInputActionOrigin_PS4_RightPad_DPadEast | 71 | (Sony Dualshock 4) タッチパッドの右半分、(4分割右への)デジタルクリック |
k_EInputActionOrigin_PS4_CenterPad_Touch | 72 | (Sony Dualshock 4) 統一タッチパッド、指での単純な接触 |
k_EInputActionOrigin_PS4_CenterPad_Swipe | 73 | (Sony Dualshock 4)統一タッチパッド、任意の軸上へのタッチ入力 |
k_EInputActionOrigin_PS4_CenterPad_Click | 74 | (Sony Dualshock 4) 統一タッチパッド、(全体への)デジタルクリック |
k_EInputActionOrigin_PS4_CenterPad_DPadNorth | 75 | (Sony Dualshock 4) 統一タッチパッド、(4分割上への)デジタルクリック |
k_EInputActionOrigin_PS4_CenterPad_DPadSouth | 76 | (Sony Dualshock 4) 統一タッチパッド、(4分割下への)デジタルクリック |
k_EInputActionOrigin_PS4_CenterPad_DPadWest | 77 | (Sony Dualshock 4) 統一タッチパッド、(4分割左への)デジタルクリック |
k_EInputActionOrigin_PS4_CenterPad_DPadEast | 78 | (Sony Dualshock 4) 統一タッチパッド、(4分割右への)デジタルクリック |
k_EInputActionOrigin_PS4_LeftTrigger_Pull | 79 | (Sony Dualshock 4) 左アナログトリガー、任意量の押し込み(アナログ値) |
k_EInputActionOrigin_PS4_LeftTrigger_Click | 80 | (Sony Dualshock 4) 左アナログトリガー、押し切り(デジタル値) |
k_EInputActionOrigin_PS4_RightTrigger_Pull | 81 | (Sony Dualshock 4) 右アナログトリガー、任意量の押し込み(アナログ値) |
k_EInputActionOrigin_PS4_RightTrigger_Click | 82 | (Sony Dualshock 4) 右アナログトリガー、押し切り(デジタル値) |
k_EInputActionOrigin_PS4_LeftStick_Move | 83 | (Sony Dualshock 4) 左ジョイスティック、任意の軸での移動(アナログ値) |
k_EInputActionOrigin_PS4_LeftStick_Click | 84 | (Sony Dualshock 4) 左ジョイスティック、クリック(デジタル値) |
k_EInputActionOrigin_PS4_LeftStick_DPadNorth | 85 | (Sony Dualshock 4) 左ジョイスティック、デジタル移動 (4分割上) |
k_EInputActionOrigin_PS4_LeftStick_DPadSouth | 86 | (Sony Dualshock 4) 左ジョイスティック、デジタル移動 (4分割下) |
k_EInputActionOrigin_PS4_LeftStick_DPadWest | 87 | (Sony Dualshock 4) 左ジョイスティック、デジタル移動 (4分割左) |
k_EInputActionOrigin_PS4_LeftStick_DPadEast | 88 | (Sony Dualshock 4) 左ジョイスティック、デジタル移動 (4分割右) |
k_EInputActionOrigin_PS4_RightStick_Move | 89 | (Sony Dualshock 4) 右ジョイスティック、任意の軸での移動(アナログ値) |
k_EInputActionOrigin_PS4_RightStick_Click | 90 | (Sony Dualshock 4) 右ジョイスティック、クリック(デジタル値) |
k_EInputActionOrigin_PS4_RightStick_DPadNorth | 91 | (Sony Dualshock 4) 右ジョイスティック、デジタル移動 (4分割上) |
k_EInputActionOrigin_PS4_RightStick_DPadSouth | 92 | (Sony Dualshock 4) 右ジョイスティック、デジタル移動 (4分割下) |
k_EInputActionOrigin_PS4_RightStick_DPadWest | 93 | (Sony Dualshock 4) 右ジョイスティック、デジタル移動 (4分割左) |
k_EInputActionOrigin_PS4_RightStick_DPadEast | 94 | (Sony Dualshock 4) 右ジョイスティック、デジタル移動 (4分割右) |
k_EInputActionOrigin_PS4_DPad_North | 95 | (Sony Dualshock 4) デジタルパッド、(4分割上への) 押し込み |
k_EInputActionOrigin_PS4_DPad_South | 96 | (Sony Dualshock 4) デジタルパッド、(4分割下への) 押し込み |
k_EInputActionOrigin_PS4_DPad_West | 97 | (Sony Dualshock 4) デジタルパッド、(4分割左への) 押し込み |
k_EInputActionOrigin_PS4_DPad_East | 98 | (Sony Dualshock 4) デジタルパッド、(4分割右への) 押し込み |
k_EInputActionOrigin_PS4_Gyro_Move | 99 | (Sony Dualshock 4) ジャイロスコープ、任意の軸へのアナログ移動 |
k_EInputActionOrigin_PS4_Gyro_Pitch | 100 | (Sony Dualshock 4) ジャイロスコープ、(正面を天井と床方向に向ける)ピッチ軸のアナログ移動 |
k_EInputActionOrigin_PS4_Gyro_Yaw | 101 | (Sony Dualshock 4) ジャイロスコープ、(正面を左右へ向ける)ヨー軸のアナログ移動 |
k_EInputActionOrigin_PS4_Gyro_Roll | 102 | (Sony Dualshock 4) ジャイロスコープ、(正面を左右へ傾ける)ロール軸のアナログ移動 |
k_EInputActionOrigin_PS4_Reserved0 | 103 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved1 | 104 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved2 | 105 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved3 | 106 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved4 | 107 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved5 | 108 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved6 | 109 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved7 | 110 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved8 | 111 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved9 | 112 | 将来のため予約済み |
k_EInputActionOrigin_PS4_Reserved10 | 113 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_A | 114 | (XB1) デジタルフェイスボタン A |
k_EInputActionOrigin_XBoxOne_B | 115 | (XB1) デジタルフェイスボタン B |
k_EInputActionOrigin_XBoxOne_X | 116 | (XB1)デジタルフェイスボタン X |
k_EInputActionOrigin_XBoxOne_Y | 117 | (XB1) デジタルフェイスボタン Y |
k_EInputActionOrigin_XBoxOne_LeftBumper | 118 | (XB1) デジタル左ショルダーボタン (別名 左バンパー) |
k_EInputActionOrigin_XBoxOne_RightBumper | 119 | (XB1) デジタル右ショルダーボタン (別名 右バンパー) |
k_EInputActionOrigin_XBoxOne_View | 121 | (XB1) デジタルビューボタン (別名 back) |
k_EInputActionOrigin_XBoxOne_LeftTrigger_Pull | 122 | (XB1) 左アナログトリガー、任意量の押し込み(アナログ値) |
k_EInputActionOrigin_XBoxOne_LeftTrigger_Click | 123 | (XB1) 左アナログトリガー、任意量の押し込み(アナログ値) |
k_EInputActionOrigin_XBoxOne_RightTrigger_Pull | 124 | (XB1) 右アナログトリガー、任意量の押し込み(アナログ値) |
k_EInputActionOrigin_XBoxOne_RightTrigger_Click | 125 | (XB1) 右アナログトリガー、押し切り(デジタル値) |
k_EInputActionOrigin_XBoxOne_LeftStick_Move | 126 | (XB1) 左ジョイスティック、任意の軸での移動(アナログ値) |
k_EInputActionOrigin_XBoxOne_LeftStick_Click | 127 | (XB1) 左ジョイスティック、クリック(デジタル値) |
k_EInputActionOrigin_XBoxOne_LeftStick_DPadNorth | 128 | (XB1) 左ジョイスティック、デジタル移動 (4分割上) |
k_EInputActionOrigin_XBoxOne_LeftStick_DPadSouth | 129 | (XB1) 左ジョイスティック、デジタル移動 (4分割下) |
k_EInputActionOrigin_XBoxOne_LeftStick_DPadWest | 130 | (XB1) 左ジョイスティック、デジタル移動 (4分割左) |
k_EInputActionOrigin_XBoxOne_LeftStick_DPadEast | 131 | (XB1) 左ジョイスティック、デジタル移動 (4分割右) |
k_EInputActionOrigin_XBoxOne_RightStick_Move | 132 | (XB1) 右ジョイスティック、任意の軸での移動(アナログ値) |
k_EInputActionOrigin_XBoxOne_RightStick_Click | 133 | (XB1) 右ジョイスティック、クリック(デジタル値) |
k_EInputActionOrigin_XBoxOne_RightStick_DPadNorth | 134 | (XB1) 右ジョイスティック、デジタル移動 (4分割上) |
k_EInputActionOrigin_XBoxOne_RightStick_DPadSouth | 135 | (XB1) 右ジョイスティック、デジタル移動 (4分割下) |
k_EInputActionOrigin_XBoxOne_RightStick_DPadWest | 136 | (XB1) 右ジョイスティック、デジタル移動 (4分割左) |
k_EInputActionOrigin_XBoxOne_RightStick_DPadEast | 137 | (XB1) 右ジョイスティック、デジタル移動 (4分割右) |
k_EInputActionOrigin_XBoxOne_DPad_North | 138 | (XB1) デジタルパッド、(4分割上への) 押し込み |
k_EInputActionOrigin_XBoxOne_DPad_South | 139 | (XB1) デジタルパッド、(4分割下への) 押し込み |
k_EInputActionOrigin_XBoxOne_DPad_West | 140 | (XB1) デジタルパッド、(4分割左への) 押し込み |
k_EInputActionOrigin_XBoxOne_DPad_East | 141 | (XB1) デジタルパッド、(4分割右への) 押し込み |
k_EInputActionOrigin_XBoxOne_Reserved0 | 142 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved1 | 143 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved2 | 144 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved3 | 145 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved4 | 146 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved5 | 147 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved6 | 148 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved7 | 149 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved8 | 150 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved9 | 151 | 将来のため予約済み |
k_EInputActionOrigin_XBoxOne_Reserved10 | 152 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_A | 153 | (X360) デジタルフェイスボタン A |
k_EInputActionOrigin_XBox360_B | 154 | (X360) デジタルフェイスボタン B |
k_EInputActionOrigin_XBox360_X | 155 | (X360) デジタルフェイスボタン X |
k_EInputActionOrigin_XBox360_Y | 156 | (X360) デジタルフェイスボタン Y |
k_EInputActionOrigin_XBox360_LeftBumper | 157 | (X360) デジタル左ショルダーボタン (別名 左バンパー) |
k_EInputActionOrigin_XBox360_RightBumper | 158 | (X360) デジタル右ショルダーボタン (別名 右バンパー) |
k_EInputActionOrigin_XBox360_Start | 159 | (X360) デジタルStartボタン |
k_EInputActionOrigin_XBox360_Back | 160 | (X360) デジタルBackボタン |
k_EInputActionOrigin_XBox360_LeftTrigger_Pull | 161 | (X360) 左アナログトリガー、任意量の押し込み(アナログ値) |
k_EInputActionOrigin_XBox360_LeftTrigger_Click | 162 | (X360) 左アナログトリガー、押し切り(デジタル値) |
k_EInputActionOrigin_XBox360_RightTrigger_Pull | 163 | (X360) 右アナログトリガー、任意量の押し込み(アナログ値) |
k_EInputActionOrigin_XBox360_RightTrigger_Click | 164 | (X360) 右アナログトリガー、押し切り(デジタル値) |
k_EInputActionOrigin_XBox360_LeftStick_Move | 165 | (X360) 左ジョイスティック、任意の軸での移動(アナログ値) |
k_EInputActionOrigin_XBox360_LeftStick_Click | 166 | (X360) 左ジョイスティック、クリック(デジタル値) |
k_EInputActionOrigin_XBox360_LeftStick_DPadNorth | 167 | (X360) 左ジョイスティック、デジタル移動 (4分割上) |
k_EInputActionOrigin_XBox360_LeftStick_DPadSouth | 168 | (X360) 左ジョイスティック、デジタル移動 (4分割下) |
k_EInputActionOrigin_XBox360_LeftStick_DPadWest | 169 | (X360) 左ジョイスティック、デジタル移動 (4分割左) |
k_EInputActionOrigin_XBox360_LeftStick_DPadEast | 170 | (X360) 左ジョイスティック、デジタル移動 (4分割右) |
k_EInputActionOrigin_XBox360_RightStick_Move | 171 | (X360) 右ジョイスティック、任意の軸での移動(アナログ値) |
k_EInputActionOrigin_XBox360_RightStick_Click | 172 | (X360) 右ジョイスティック、クリック(デジタル値) |
k_EInputActionOrigin_XBox360_RightStick_DPadNorth | 173 | (X360) 右ジョイスティック、デジタル移動 (4分割上) |
k_EInputActionOrigin_XBox360_RightStick_DPadSouth | 174 | (X360) 右ジョイスティック、デジタル移動 (4分割下) |
k_EInputActionOrigin_XBox360_RightStick_DPadWest | 175 | (X360) 右ジョイスティック、デジタル移動 (4分割左) |
k_EInputActionOrigin_XBox360_RightStick_DPadEast | 176 | (X360) 右ジョイスティック、デジタル移動 (4分割右) |
k_EInputActionOrigin_XBox360_DPad_North | 177 | (X360) デジタルパッド、(4分割上への) 押し込み |
k_EInputActionOrigin_XBox360_DPad_South | 178 | (X360) デジタルパッド、(4分割下への) 押し込み |
k_EInputActionOrigin_XBox360_DPad_West | 179 | (X360) デジタルパッド、(4分割左への) 押し込み |
k_EInputActionOrigin_XBox360_DPad_East | 180 | (X360) デジタルパッド、(4分割右への) 押し込み |
k_EInputActionOrigin_XBox360_Reserved0 | 181 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved1 | 182 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved2 | 183 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved3 | 184 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved4 | 185 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved5 | 186 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved6 | 187 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved7 | 188 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved8 | 189 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved9 | 190 | 将来のため予約済み |
k_EInputActionOrigin_XBox360_Reserved10 | 191 | 将来のため予約済み |
k_EInputActionOrigin_Switch_A | 192 | (Nintendo Switch Pro)デジタルフェイスボタンA |
k_EInputActionOrigin_Switch_B | 193 | (Nintendo Switch Pro)デジタルフェイスボタンB |
k_EInputActionOrigin_Switch_X | 194 | (Nintendo Switch Pro)デジタルフェイスボタンX |
k_EInputActionOrigin_Switch_Y | 195 | (Nintendo Switch Pro)デジタルフェイスボタンY |
k_EInputActionOrigin_Switch_LeftBumper | 196 | (Nintendo Switch Pro)デジタル左ショルダーボタン(別名 左バンパー) |
k_EInputActionOrigin_Switch_RightBumper | 197 | (Nintendo Switch Pro)デジタル右ショルダーボタン(別名 右バンパー) |
k_EInputActionOrigin_Switch_Plus | 198 | (Nintendo Switch Pro) プラスボタン |
k_EInputActionOrigin_Switch_Minus | 199 | (Nintendo Switch Pro) マイナスボタン |
k_EInputActionOrigin_Switch_Capture | 200 | (Nintendo Switch Pro)デジタルキャプチャーボタン |
k_EInputActionOrigin_Switch_LeftTrigger_Pull | 201 | (Nintendo Switch Pro) 左トリガー、クリック |
k_EInputActionOrigin_Switch_LeftTrigger_Click | 202 | (Nintendo Switch Pro) 左トリガー、クリック(以前の値と同じ) |
k_EInputActionOrigin_Switch_RightTrigger_Pull | 203 | (Nintendo Switch Pro) 右トリガー、クリック |
k_EInputActionOrigin_Switch_RightTrigger_Click | 204 | (Nintendo Switch Pro) 右トリガー、クリック(以前の値と同じ) |
k_EInputActionOrigin_Switch_LeftStick_Move | 205 | (Nintendo Switch Pro) 左ジョイスティック、任意の軸での移動(アナログ値) |
k_EInputActionOrigin_Switch_LeftStick_Click | 206 | (Nintendo Switch Pro)左ジョイスティック、クリック(デジタル値) |
k_EInputActionOrigin_Switch_LeftStick_DPadNorth | 207 | (Nintendo Switch Pro) 左ジョイスティック、デジタル移動 (4分割上) |
k_EInputActionOrigin_Switch_LeftStick_DPadSouth | 208 | (Nintendo Switch Pro) 左ジョイスティック、デジタル移動 (4分割下) |
k_EInputActionOrigin_Switch_LeftStick_DPadWest | 209 | (Nintendo Switch Pro) 左ジョイスティック、デジタル移動 (4分割左) |
k_EInputActionOrigin_Switch_LeftStick_DPadEast | 210 | (Nintendo Switch Pro) 左ジョイスティック、デジタル移動 (4分割右) |
k_EInputActionOrigin_Switch_RightStick_Move | 211 | (Nintendo Switch Pro) 右ジョイスティック、任意の軸での移動(アナログ値) |
k_EInputActionOrigin_Switch_RightStick_Click | 212 | (Nintendo Switch Pro)右ジョイスティック、クリック(デジタル値) |
k_EInputActionOrigin_Switch_RightStick_DPadNorth | 213 | (Nintendo Switch Pro) 右ジョイスティック、デジタル移動 (4分割上) |
k_EInputActionOrigin_Switch_RightStick_DPadSouth | 214 | (Nintendo Switch Pro) 右ジョイスティック、デジタル移動 (4分割下) |
k_EInputActionOrigin_Switch_RightStick_DPadWest | 215 | (Nintendo Switch Pro) 右ジョイスティック、デジタル移動 (4分割左) |
k_EInputActionOrigin_Switch_RightStick_DPadEast | 216 | (Nintendo Switch Pro) 右ジョイスティック、デジタル移動 (4分割右) |
k_EInputActionOrigin_Switch_DPad_North | 217 | (Nintendo Switch Pro) デジタルパッド、(4分割上への) 押し込み |
k_EInputActionOrigin_Switch_DPad_South | 217 | (Nintendo Switch Pro) デジタルパッド、(4分割下への) 押し込み |
k_EInputActionOrigin_Switch_DPad_West | 219 | (Nintendo Switch Pro) デジタルパッド、(4分割左への) 押し込み |
k_EInputActionOrigin_Switch_DPad_East | 220 | (Nintendo Switch Pro) デジタルパッド、(4分割右への) 押し込み |
k_EInputActionOrigin_SwitchProGyro_Move | 221 | (Nintendo Switch Pro) ジャイロスコープ、任意の軸へのアナログ移動 |
k_EInputActionOrigin_SwitchProGyro_Pitch | 222 | (Nintendo Switch Pro) ジャイロスコープ、(正面を天井と床方向に向ける)ピッチ軸のアナログ移動 |
k_EInputActionOrigin_SwitchProGyro_Yaw | 223 | (Nintendo Switch Pro)ジャイロスコープ、(正面を左右へ向ける)ヨー軸のアナログ移動 |
k_EInputActionOrigin_SwitchProGyro_Roll | 224 | (Nintendo Switch Pro) ジャイロスコープ、(正面を左右へ傾ける)ロール軸のアナログ移動 |
k_EInputActionOrigin_Switch_Reserved0 | 225 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved1 | 226 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved2 | 227 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved3 | 228 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved4 | 229 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved5 | 230 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved6 | 231 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved7 | 232 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved8 | 233 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved9 | 234 | 将来のため予約済み |
k_EInputActionOrigin_Switch_Reserved10 | 235 | 将来のため予約済み |
k_EInputActionOrigin_Count | 258 | この列挙型の数値は反復処理に便利です。 |
k_EInputActionOrigin_MaximumPossibleValue | 32767 | この列挙型の数値は反復処理に便利です。 |
EControllerSource
多数のモードの内の一つを割り当てて意味のあるデータの出力に使えるコントローラの領域で、より大きく抽象的なモジュラーユニットとして考えることができます。 例えば、ジョイスティックを一つのアナログ入力として扱ったり、仮想の十字キーを作って4つの別々のデジタル入力として扱うことができます。 同様に、ABXYフェイスボタンを4つの独立したボタンとして扱われるグループにすることや、仮想DPADの一部として扱うことができます。
名前 | 値 | 説明 |
k_EInputSource_None | 0 | コントローラソースがありません。 |
k_EInputSource_LeftTrackpad | 1 | 左タッチパッド、または中央タッチパッドの左半分です。 |
k_EInputSource_RightTrackpad | 2 | 右タッチパッド、または中央タッチパッドの右半分です。 |
k_EInputSource_Joystick | 3 | ジョイスティックです。2つ以上ジョイスティックがある場合には、左のジョイスティックです。 |
k_EInputSource_ABXY | 4 | 4つの主なフェイスボタンです。 |
k_EInputSource_Switch | 5 | コントローラ上の、その他のソースに該当しないスイッチ/ボタンです。 バンパー、start/selectボタン、グリップなどを含みます。 これは特別な例外であり広い範囲での典型に属さないため、デジタルボタンのソースが割り当てられ、対応するモードが処理されます。 |
k_EInputSource_LeftTrigger | 6 | 左アナログトリガーです。 |
k_EInputSource_RightTrigger | 7 | 右アナログトリガーです。 |
k_EInputSource_Gyro | 8 | 内蔵のジャイロスコープ。 |
k_EInputSource_CenterTrackpad | 9 | 中央のタッチパッドです。 (DS4のみ) |
k_EInputSource_RightJoystick | 10 | 右ジョイスティックです。 ジョイスティックが一つだけの場合、このソースは使用されません。 |
k_EInputSource_DPad | 11 | デジタルパッドです。 |
k_EInputSource_Key | 12 | キーボードのキー(スキャンコード付きキーボード用)。 |
k_EInputSource_Mouse | 13 | 伝統的なマウス |
k_EInputSource_Count | 14 | この列挙型の数は、反復処理に便利です。 |
EControllerSourceMode
仮想入力モードはコントローラソースのコンフィギュレータで制御されます。 例えば、コンフィギュレータはアナログジョイスティックを4つのデジタル入力を持つ十字キーのようにセットでき、EControllerSourceがk_EInputSource_Joystickで、 EControllerSourceModeが k_EInputSourceMode_Dpadとなります。 モードには、関連アクションにが受け付けた入力データの変更もできます。
名前 | 値 | 説明 |
k_EInputSourceMode_None | 0 | 入力モードなし。 |
k_EInputSourceMode_Dpad | 1 | デジタルパッド -- 十字型の4方向のデジタルボタンで、各軸において一度に押すことのできるのは1方向だけです。 |
k_EInputSourceMode_Buttons | 2 | |
k_EInputSourceMode_FourButtons | 3 | 4つのデジタルフェイスボタン。同時に押すことができます。 |
k_EInputSourceMode_AbsoluteMouse | 4 | |
k_EInputSourceMode_RelativeMouse | 5 | |
k_EInputSourceMode_JoystickMove | 6 | |
k_EInputSourceMode_JoystickMouse | 7 | |
k_EInputSourceMode_JoystickCamera | 8 | |
k_EInputSourceMode_ScrollWheel | 9 | |
k_EInputSourceMode_Trigger | 10 | |
k_EInputSourceMode_MouseJoystick | 12 | |
k_EInputSourceMode_MouseRegion | 13 | |
k_EInputSourceMode_SingleButton | 15 | |
k_EInputSourceMode_Switches | 16 | |
ESteamControllerLEDFlag
(デバイス上にLEDがある場合)SteamコントローラデバイスのLEDの色をコントロールします。
注:VSCにはLEDが一つありますが、色は常に白であり、明るさだけが影響されます。
DS4のLEDは色と明るさを設定できるライトバーです。
名前 | 値 | 説明 |
k_ESteamControllerLEDFlag_SetColor | 0 | 指定した値に色を設定します。 |
k_ESteamControllerLEDFlag_RestoreUserDefault | 1 | (ゲーム外の)色をデフォルト設定に戻します。 |
ESteamInputType
対象のハードウェアのでデバイスモデルを表します。
名前 | 値 | 説明 |
k_ESteamInputType_Unknown | 0 | 認識されないデバイスのキャッチオールです |
k_ESteamInputType_SteamController | 1 | ValveのSteamコントローラ |
k_ESteamInputType_XBox360Controller | 2 | Microsoft XBox 360コントローラー |
k_ESteamInputType_XBoxOneController | 3 | Microsoft XBox Oneコントローラー |
k_ESteamInputType_GenericXInput | 4 | 一般的なサードパーティXInputデバイス |
k_ESteamInputType_PS4Controller | 5 | Sony PlayStation 4コントローラー |
k_ESteamInputType_AppleMFiController | 6 | 未使用 |
k_ESteamInputType_AndroidController | 7 | 未使用 |
k_ESteamInputType_SwitchJoyConPair | 8 | 未使用 |
k_ESteamInputType_SwitchJoyConSingle | 9 | 未使用 |
k_ESteamInputType_SwitchProController | 10 | Nintendo Switch Proコントローラー |
k_ESteamInputType_MobileTouch | 11 | Steamリンクアプリのモバイルタッチコントローラー |
k_ESteamInputType_PS3Controller | 12 | Sony PlayStation 3コントローラまたはPS3/PS4互換性のある格闘ゲーム用スティック |
k_ESteamInputType_Count | 13 | 返された値の現在の数 |
k_ESteamInputType_MaximumPossibleValue | 255 | 返される可能性のある値の最高値 |
ESteamControllerPad
Steamコントローラデバイスのタッチパッドの領域です。
注:VSCでは、左右のハプティックタッチパッドに対する値です。
DS4では、中央に位置する一つのタッチパッドへの左右半分に対する値です。
名前 | 値 | 説明 |
k_ESteamControllerPad_Left | 0 | Steamコントローラデバイス上の左タッチパッドの領域です。 対応モデル:VSC, DS4 |
k_ESteamControllerPad_Right | 1 | Steamコントローラデバイスの右タッチパッドの領域です。 対応モデル:VSC, DS4 |
Typedefs
これらはISteamInputで使用するために定義されたtypedefsです。
名前 | ベース型 | 説明 |
InputActionSetHandle_t | uint64 | これらのハンドルは指定のゲームアクションまたはアクションセットの参照に使われます。 すべてのアクションハンドルは、パフォーマンス上の理由のために初期化中に照会する必要があります。 |
InputAnalogActionHandle_t | uint64 | アナログアクションへのハンドルです。 GetAnalogActionHandleから取得できます。 |
InputDigitalActionHandle_t | uint64 | デジタルアクションへのハンドルです。 GetDigitalActionHandleから取得できます。 |
InputHandle_t | uint64 | このハンドルは、切断、再接続された場合も含め常時コントローラを識別します。 |
定数
これらはISteamInputで使用するために定義された定数です。
名前 | 型 | 値 | 説明 |
STEAMINPUT_INTERFACE_VERSION | const char * | "SteamInput001" | |
STEAM_INPUT_HANDLE_ALL_CONTROLLERS | int | UINT64_MAX | この特別な値を、全てのコントローラではなく、指定のコントローラハンドルだけに送信するオプションとして使用できます。 |
STEAM_INPUT_MAX_ANALOG_ACTIONS | int | 16 | 各コントローラ上で実行できるアナログアクションの最大数です。 |
STEAM_INPUT_MAX_ANALOG_ACTION_DATA | float | 1.0f | 任意の軸上のアナログアクションで報告することのできる最大値です。 |
STEAM_INPUT_MAX_COUNT | int | 16 | Steam入力コンフィギュレーターで同時に使用できるコントローラの最大数です。 |
STEAM_INPUT_MAX_DIGITAL_ACTIONS | int | 128 | 各コントローラ上で実行できるデジタルアクションの最大数です。 |
STEAM_INPUT_MAX_ORIGINS | int | 8 | 一つのアクションに関連付けられる入力元の最大数です。 |
STEAM_INPUT_MIN_ANALOG_ACTION_DATA | float | -1.0f | 任意の軸上のアナログアクションで報告することのできる最小値です。 |