Steamworks ドキュメンテーション
ISteamController Interface (廃止)
SteamコントローラサポートAPI。

このAPIは廃止されISteamInputが採用されました - API情報はISteamInput Interfaceを参照してください。

詳細情報はSteam入力ドキュメントを参照してください。

メンバー関数

ISteamController のメンバ-関数は、グローバルのアクセサー関数 SteamController()経由で呼び出されます。

ActivateActionSet

void ActivateActionSet( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle );
名前説明
controllerHandleControllerHandle_tアクションセットを有効化するコントローラのハンドル
actionSetHandleControllerActionSetHandle_t有効化するアクションセットのハンドル

指定したアクションセット 「メニュー」。「歩く」「運転」など)を使用するためにコントローラを再設定します。

低コストで安全に繰り返して呼び出せます。 状態移行のすべてに配置するのではなく、状態ループ内で繰り返し呼び出す方が簡単です。

例:
void updateStateLoop() { switch( currentState ) { case MENU: SteamController()->ActivateActionSet( controllerHandle1, menuSetHandle ); doMenuStuff(); break; case WALKING: SteamController()->ActivateActionSet( controllerHandle1, walkingSetHandle ); doWalkingStuff(); break; case DRIVING: SteamController()->ActivateActionSet( controllerHandle1, drivingSetHandle ); doDrivingStuff(); break; case FIGHTING: SteamController()->ActivateActionSet( controllerHandle1, fightingSetHandle ); doFightingStuff(); break; } }

すべてのコントローラを有効化

一台のデバイスではなく、一度にすべてのコントローラを有効化したい場合があります。 この目的で、定数STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERSをコントローラハンドルとして使用します。 同様に、個々のコントローラハンドルを呼び出す他の関数でもこの値を使用できます。

例:
void updateStateLoop() { switch( currentState ) { case MENU: SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, menuSetHandle ); doMenuStuff(); break; case WALKING: SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, walkingSetHandle ); doWalkingStuff(); break; case DRIVING: SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, drivingSetHandle ); doDrivingStuff(); break; case FIGHTING: SteamController()->ActivateActionSet( STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS, fightingSetHandle ); doFightingStuff(); break; } }

ActivateActionSetLayer

void ActivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
名前説明
controllerHandleControllerHandle_tアクションセットレイヤーを有効化するコントローラのハンドル。
actionSetHandleControllerActionSetHandle_t有効化するアクションセットレイヤーのハンドル。

指定したアクションセットレイヤーを使用するためにコントローラを再設定します。

より実践的な例と詳細はアクションセットレイヤーを参照してください。

例:
SteamController()->ActivateActionSetLayer( controllerHandle1, myActionSetLayer );

DeactivateActionSetLayer

void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle );
名前説明
controllerHandleControllerHandle_tアクションセットレイヤーを無効化するコントローラのハンドル。
actionSetHandleControllerActionSetHandle_t無効化するアクションセットレイヤーのハンドル。

指定したアクションセットレイヤーの使用を終了するためにコントローラを再設定します。

例:
SteamController()->DeactivateActionSetLayer( controllerHandle1, myActionSetLayer );

DeactivateAllActionSetLayers

void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle );
名前説明
controllerHandleControllerHandle_tすべてのアクションセットレイヤーを無効化するコントローラのハンドル。

すべてのアクションセットレイヤーの使用を終了するためにコントローラを再設定します。

例:
SteamController()->DeactivateAllActionSetLayers( controllerHandle1 );

GetActiveActionSetLayers

int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t *handlesOut );
名前説明
controllerHandleControllerHandle_tアクションセットレイヤーを有効化するコントローラのハンドル。
handlesOutControllerActionSetHandle_t*これは STEAM_CONTROLLER_MAX_COUNT サイズの ControllerHandle_t 配列を指定する必要があります。

指定のコントローラーハンドルの現在のアクティブなすべてのアクションセットレイヤーで配列を埋めます。

例:
ControllerHandle_t *handlesOut = new ControllerHandle_t []; SteamController()->GetActiveActionSetLayers( controllerHandle1, &handlesOut );

GetActionSetHandle

ControllerActionSetHandle_t GetActionSetHandle( const char *pszActionSetName );
名前説明
pszActionSetNameconst char *ゲームのVDFファイル内で定義されたアクションセットの文字列識別子。

アクションセットのハンドルを参照します。 開始時に実行し、将来のすべてのAPI呼び出しのハンドルを格納してください。

戻り値: ControllerActionSetHandle_t
指定のアクションセットのハンドル。

例:
ControllerActionSetHandle_t fightingSetHandle = SteamController()->GetActionSetHandle( "fighting" );

GetAnalogActionData

ControllerAnalogActionData_t GetAnalogActionData( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle );
名前説明
controllerHandleControllerHandle_t照会するコントローラのハンドル。
analogActionHandleControllerAnalogActionHandle_t照会するアナログアクションのハンドル。

提供されたアナログゲームアクションの現在の状態を返します。

戻り値: ControllerAnalogActionData_t
指定したアナログアクションの現在の状態。

例:
ControllerAnalogActionData_t data = SteamController()->GetAnalogActionData( controller1Handle, moveHandle );

GetAnalogActionHandle

ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName );
名前説明
pszActionNameconst char *ゲームのVDFファイル内で定義されたアナログアクションの文字列識別子。

指定されたアナログアクションのハンドルを取得。

注: この関数はアクションセットハンドルパラメーターを受け付けません。 つまり、VDFファイル内の各アクションは一意の文字列識別子を持つ必要があります。 言い換えれば、2つの異なるアクションセット内に 「up」と呼ばれるアクションを使う場合には、この関数は一つのみを返し、もう一方は無視されます。

戻り値: ControllerAnalogActionHandle_t
指定されたアナログアクションのハンドル。

例:
ControllerAnalogActionHandle_t moveHandle = SteamController()->GetAnalogActionHandle( "move" );

GetAnalogActionOrigins

int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut );
名前説明
controllerHandleControllerHandle_t照会するコントローラのハンドル。
actionSetHandleControllerActionSetHandle_t照会するアクションセットのハンドル。
analogActionHandleControllerAnalogActionHandle_t照会するアナログアクションのハンドル。
originsOutEControllerActionOrigin *STEAM_CONTROLLER_MAX_ORIGINSサイズの EControllerActionOriginハンドルの配列。

OriginsOutにEControllerActionOriginハンドルを記入してアクションセット内のアナログアクションの発生元を取得します。 これを使用して、アクションのプロンプトを適切に画面に表示します。

戻り値: int
originsOut内に提供された発生元の数。

例:
EControllerActionOrigin *origins = new EControllerActionOrigin[]; SteamController()->GetAnalogActionOrigins( controller1Handle, walkingSetHandle, moveHandle, origins );

GetConnectedControllers

int GetConnectedControllers( ControllerHandle_t *handlesOut );
名前説明
handlesOutControllerHandle_t *これは STEAM_CONTROLLER_MAX_COUNT サイズの ControllerHandle_t 配列を指定する必要があります。

HandlesOutにコントローラハンドルを記入して現在接続されたコントローラを列挙します。

戻り値: int
handlesOut に提供されたハンドルの数。

例:
ControllerHandle_t *controllerHandles = new ControllerHandle_t[]; SteamController()->GetConnectedControllers( controllerHandles );

GetControllerForGamepadIndex

ControllerHandle_t GetControllerForGamepadIndex( int nIndex );
名前説明
nIndexintコントローラハンドルを取得するエミュレートされたゲームパッドのインデックス。

指定のエミュレートされたゲームパッドに関連付けられたコントローラハンドルを返します。 GetInputTypeForHandleと併用でき、Steam入力ゲームパッドエミュレーションを使用中のコントローラのコントローラタイプを決定します。

戻り値: ControllerHandle_t


例:
// 照会するXinputスロットと交換します。 数字は0と3の間です。 int nXinputSlotIndex = 0; ControllerHandle_t controllerHandle = SteamController()->GetControllerForGamepadIndex( nXinputSlotIndex ); if ( controllerHandle == 0 ) { // 有効なハンドルはゼロ以外。これは通常のXboxコントローラーです。 } else { ESteamInputType inputType = SteamController()->GetInputTypeForHandle(controllerHandle); 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

ControllerActionSetHandle_t GetCurrentActionSet( ControllerHandle_t controllerHandle );
名前説明
controllerHandleControllerHandle_t照会するコントローラのハンドル。

指定のコントローラで現在のアクティブなアクションセットを取得。

戻り値: ControllerActionSetHandle_t
指定のコントローラで有効状態のアクションセットのハンドル。

例:
ControllerActionSetHandle_t controller1Set = SteamController()->GetCurrentActionSet(controller1Handle);

GetDigitalActionData

ControllerDigitalActionData_t GetDigitalActionData( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle );
名前説明
controllerHandleControllerHandle_t照会するコントローラのハンドル。
digitalActionHandleControllerDigitalActionHandle_t照会するデジタルアクションのハンドル。

提供されたデジタルゲームアクションの現在の状態を返します。

戻り値: ControllerDigitalActionData_t
指定のデジタルアクションの現在の状態。

GetDigitalActionHandle

ControllerDigitalActionHandle_t GetDigitalActionHandle( const char *pszActionName );
名前説明
pszActionNameconst char *ゲームのVDFファイル内で定義されたデジタルアクションの文字列識別子。

指定されたデジタルアクションのハンドルを取得。

注: この関数はアクションセットハンドルパラメーターを受け付けません。 つまり、VDFファイル内の各アクションは一意の文字列識別子を持つ必要があります。 言い換えれば、2つの異なるアクションセット内に 「up」と呼ばれるアクションを使う場合には、この関数は一つのみを返し、もう一方は無視されます。

戻り値: ControllerDigitalActionHandle_t
指定されたデジタルアクションのハンドル。

例:
ControllerDigitalActionHandle_t punchHandle = SteamController()->GetDigitalActionHandle( "punch" );

GetDigitalActionOrigins

int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut );
名前説明
controllerHandleControllerHandle_t照会するコントローラのハンドル。
actionSetHandleControllerActionSetHandle_t照会するアクションセットのハンドル。
digitalActionHandleControllerDigitalActionHandle_t照会するデジタルアクションのハンドル。
originsOutEControllerActionOrigin *STEAM_CONTROLLER_MAX_ORIGINSサイズの EControllerActionOriginハンドルの配列。

originsOutEControllerActionOrigin ハンドルを設定してアクションセット内のデジタルアクションの発生元を取得します。 これを使用して、アクションのプロンプトを適切に画面に表示します。

戻り値: int
originsOut内に提供された発生元の数。

例:
EControllerActionOrigin *origins = new EControllerActionOrigin[]; SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins );

GetGamepadIndexForController

int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle );
名前説明
ulControllerHandleControllerHandle_tゲームパッドインデックスを取得するコントローラのハンドル。

ゲームパッドをエミュレートしている場合には、指定のコントローラに関連するゲームパッドインデックスを返します。

戻り値: int


例:
int gamepadIndex = SteamController()->GetGamepadIndexForController( controller1Handle );

GetGlyphForActionOrigin

const char * GetGlyphForActionOrigin( EControllerActionOrigin eOrigin );
名前説明
eOriginEControllerActionOrigin

それぞれの発生元に対応したグリフを画面上に表示するためにローカルパスを取得します。

戻り値: const char *
グリフ用の png ファイルのパス。
"C:\Program Files (x86)\Steam\tenfoot\resource\images\library\controller\api\ps4_button_x.png"

例:
// "punch"の発生元を取得 EControllerActionOrigin *origins = new EControllerActionOrigin[]; SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins ); EControllerActionOrigin firstOrigin = origins[0]; //i.e, k_EInputActionOrigin_PS4_X // ゲーム自体の関数で、カスタムのグリフアートを取得しようとします int glyphTextureID = getHardCodedButtonGlyphTexture( firstOrigin ); // この発生元に対してゲームではアートを設定していません! Steamが新タイプのコントローラへのサポート //を追加したか、アートの追加を忘れたのかもしれません! //(Steamコントローラグリフはありますが、これはPlasyStation 4 コントローラーです) if( glyphTextureID == -1 ) { // 代わりにSteamクライアントからイメージを取得します。 const char *localGlyphPath = SteamController()->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( ControllerHandle_t controllerHandle );
名前説明
controllerHandleControllerHandle_t入力タイプ(デバイスモデル)を紹介するコントローラのハンドル

指定のコントローラの入力タイプ(デバイスモデル)を返します。 そのコントローラが、Steamコントローラ、XBox 360コントローラ、PS4コントローラーなのか等がわかります。 詳細情報はサポート対象のコントローラデータベースを参照してください。

戻り値: ESteamInputType


例:
ESteamInputType inputType = SteamController()->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

ControllerMotionData_t GetMotionData( ControllerHandle_t controllerHandle );
名前説明
controllerHandleControllerHandle_tモーションデータを取得するコントローラのハンドル

指定のコントローラの未加工のモーションデータを返します。

戻り値: ControllerMotionData_t


例:
ControllerMotionData_t motionData = SteamController()->GetControllerMotionData( controllerHandle );

GetStringForActionOrigin

const char * GetStringForActionOrigin( EControllerActionOrigin eOrigin );
名前説明
eOriginEControllerActionOrigin

指定の発生元に(Steamの言語設定に基づいて)ローカライズされた文字列を返します。

戻り値: const char *


例:
EControllerActionOrigin *origins = new EControllerActionOrigin[]; SteamController()->GetDigitalActionOrigins( controller1Handle, fightingSetHandle, punchHandle, origins ); const char * punchString = SteamController()->GetStringForActionOrigin( origins[0] ); printf("punch = %s\n",punchString);

Init

bool Init();
ISteamController インターフェイスの使用開始時に呼び出す必要があります。

戻り値: bool
常に true を返します。

例:
SteamController()->Init();

RunFrame

void RunFrame();
取得できる最新のSteamコントローラ入力とAPIの状態を同期します。 これはSteamAPI_RunCallbacksで自動的に実行されますが、可能な限り絶対的に最低のレイテンシに対しては、コントローラの状態を読み出す前に直接これを呼び出せます。

例:
SteamController()->RunFrame();

SetLEDColor

void SetLEDColor( ControllerHandle_t controllerHandle, uint8 nColorR, uint8 nColorG, uint8 nColorB, unsigned int nFlags );
名前説明
controllerHandleControllerHandle_t対象のコントローラのハンドル。
nColorRuint8(0-255) を設定する色の赤のコンポーネント。
nColorGuint8(0-255) を設定する色の緑のコンポーネント。
nColorBuint8(0-255) を設定する色の青のコンポーネント。
nFlags符号なしintビットマスクされたフラグは ESteamControllerLEDFlag で定義された値から結合されます。

サポートされたコントローラに、コントローラLEDを設定します。

注:
VSCは白以外をサポートしていないため、RGBの値をSteamボタンLEDの明るさに影響する明るさのグレースケール値として解釈します。
DS4はフルカラー情報に対応し、その値をライトバーの色の明るさに使用します。

例:
// コントローラ1にユーザーのデフォルトカラーを復元: SteamController()->SetLEDColor( controller1Handle, 0, 0, 0, k_ESteamControllerLEDFlag_RestoreUserDefault ); // コントローラ2の色をマゼンタに設定: SteamController()->SetLEDColor( controller2Handle, 255, 0, 255, k_ESteamControllerLEDFlag_SetColor );

ShowAnalogActionOrigins

bool ShowAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t analogActionHandle, float flScale, float flXPosition, float flYPosition );
名前説明
controllerHandleControllerHandle_t
analogActionHandleControllerAnalogActionHandle_t
flScalefloat
flXPositionfloat
flYPositionfloat

非推奨。

戻り値: bool
常に true を返します。

ShowBindingPanel

bool ShowBindingPanel( ControllerHandle_t controllerHandle );
名前説明
controllerHandleControllerHandle_tバインドスクリーンを表示するコントローラのハンドル。

Steamオーバーレイを呼び出し割当スクリーンを表示します。

戻り値: bool
true で成功;オーバーレイが無効か使用不可の場合と、ユーザーが Big Picture モードを使用していない場合には false

例:
SteamController()->ShowBindingPanel( myControllerHandle );

ShowDigitalActionOrigins

bool ShowDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerDigitalActionHandle_t digitalActionHandle, float flScale, float flXPosition, float flYPosition );
名前説明
controllerHandleControllerHandle_t
digitalActionHandleControllerDigitalActionHandle_t
flScalefloat
flXPositionfloat
flYPositionfloat

非推奨。

戻り値: bool
常に true を返します。

シャットダウン

bool Shutdown();
ISteamController インターフェイスの使用終了時に呼び出す必要があります。

戻り値: bool
常に true を返します。

例:
SteamController()->Shutdown();

StopAnalogActionMomentum

void StopAnalogActionMomentum( ControllerHandle_t controllerHandle, ControllerAnalogActionHandle_t eAction );
名前説明
controllerHandleControllerHandle_t対象のコントローラのハンドル。
eActionControllerAnalogActionHandle_t慣性を停止するアナログアクション。

当該のアナログアクションの慣性を停止します。(例:バーチャルトラックボール設定のあるタッチパッドを使用)

注:
すべての関連ハプティクスも停止します。 カルーセルの回転やWebページのスクロール等、ユーザーにアクションの限界に到達したことを伝える場合に便利です。

例:
SteamController()->StopAnalogActionMomentum( controller1Handle, moveHandle );

TriggerHapticPulse

void TriggerHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec );
名前説明
controllerHandleControllerHandle_t対象のコントローラのハンドル。
eTargetPadESteamControllerPad対象のハプティックタッチ。
usDurationMicroSec符号なしshortマイクロ秒(1 秒の 1/1,000,000) 単位でのパルス期間

対応コントローラでの(低レベル)ハプティックパルスを誘発。

注:
現在は VSC のみがハプティックパルスに対応しています。
この API コールは、他のコントローラモデルでは無視されます。
符号なし short の最大値は 65535 で、この方法によって誘発できる最長のハプティックパルスの期間が 0.065535 秒であることを意味します。 (1 秒 の 1/10 以下です。) この関数は、より複雑な動作を作成するためのより高レベルなユーザー関数で繰り返し使用される、低レベルのプリミティブな方法としてお考え下さい。

例:
//1/20 秒に一度のパルス SteamController()->TriggerHapticPulse(controller1Handle, k_ESteamControllerPad_Left, 50000);

TriggerRepeatedHapticPulse

void TriggerRepeatedHapticPulse( ControllerHandle_t controllerHandle, ESteamControllerPad eTargetPad, unsigned short usDurationMicroSec, unsigned short usOffMicroSec, unsigned short unRepeat, unsigned int nFlags );
名前説明
controllerHandleControllerHandle_t対象のコントローラのハンドル。
eTargetPadESteamControllerPad対象のハプティックタッチ。
usDurationMicroSec符号なしshortマイクロ秒 (1 秒の 1/1,000,000) 単位でのパルス期間。
usOffMicroSec符号なしshortマイクロ秒単位での、パルス間の期間。
unRepeat符号なしshortusDurationMicroSec / usOffMicroSecデューティ―比を繰り返す回数。
nFlags符号なしint現在未使用ですが、将来のため予約済みです。

対応コントローラで繰り返されるハプティックパルスを誘発。

注:
現在は VSC のみがハプティックパルスに対応しています。
非対応のコントローラモデルでは、この API コールは無視されます。
TriggerHapticPulse よりもユーザーフレンドリーな関数であり、ユーザーが実際に気が付くことのできる長さのパルスパターンを生成できます。
usDurationMicroSec と usOffMicroSec パラメーターへの変更は、ハプティックパルスの 「テクスチャ」を変更します。

例:
//1秒間のパルス、それぞれ 1/20 秒の on/off パルスパターンを持ちます SteamController()->TriggerRepeatedHapticPulse( controller1Handle, k_ESteamControllerPad_Left, 50000, 50000, 10 );

TriggerVibration

void TriggerVibration( ControllerHandle_t controllerHandle, unsigned short usLeftSpeed, unsigned short usRightSpeed );
名前説明
controllerHandleControllerHandle_t対象のコントローラのハンドル。
usLeftSpeed符号なしshort左ランブルモーターの強度値。
usRightSpeed符号なしshort右ランブルモーターの強度値。

対応コントローラーでの振動イベントを誘発。

注:
非対応コントローラモデルではこの API 呼び出しは無視されます。
これは従来の「ランブル」 振動効果を生成します。
VSC はハプティックを用いて伝統的なランブルをエミュレートします。

例:
SteamController()->TriggerVibration( controller1Handle, 10000, 10000 );

GetActionOriginFromXboxOrigin

EControllerActionOrigin GetActionOriginFromXboxOrigin( ControllerHandle_t controllerHandle, EXboxOrigin eOrigin );
名前説明
controllerHandleControllerHandle_t対象のコントローラのハンドル。 このハンドルの取得にGetControllerForGamepadIndexを使えます。
eOriginEXboxOriginイメージを取得するボタンです。 例: k_EXboxOrigin_A

戻り値: EControllerActionOrigin

グリフ検索テーブルで使用できる、またはGetGlyphForActionOriginかGetStringForActionOriginに渡されるアクション発生元を取得します。


例:
int nXinputSlot = 1; // プレイヤーにとって適切なXinput入力と置き換える ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot ); EControllerActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); // Steamクライアントからイメージを取得する。 const char *localGlyphPath = SteamController()->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

EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin );
名前説明
controllerHandleControllerHandle_t対象のコントローラのハンドル。 このハンドルの取得にGetControllerForGamepadIndexを使えます。
eDestinationInputTypeESteamInputType変換するコントローラのタイプ。 k_ESteamInputType_Unknownが使用されれば、Steamはご利用のSDKバージョンから最も近いタイプを選択します。
eSourceOriginEControllerActionOrigin変換したいボタン。

戻り値: EControllerActionOrigin

eDestinationInputTypeがk_ESteamInputType_Unknownの場合、特定のコントローラのタイプまたはゲームにビルドしたSDKに存在する最も近いコントローラタイプの同等の発生元を取得します。 eDestinationInputTypeがk_ESteamInputType_Unknownの場合、特定のコントローラのタイプまたはゲームにビルドしたSDKに存在する最も近いコントローラタイプの同等の発生元を取得します。


例:
int nXinputSlot = 1; // プレイヤーにとって適切なXinputスロットに置き換えます。 ControllerHandle_t controller1Handle = GetControllerForGamepadIndex( nXinputSlot ); EInputActionOrigin buttonOrigin = SteamController()->GetActionOriginFromXboxOrigin( controller1Handle, k_EXboxOrigin_A ); //i.e, k_EControllerActionOrigin_PS4_X if ( buttonOrigin >= k_EControllerActionOrigin_Count ) { // この発生元へのアートをゲーム内に設定していません! Steamが新タイプのコントローラへのサポート //を追加したのだと思います! ビルドしたSDKがサポートする最も近い値を取得しましょう。 buttonOrigin = SteamController()->TranslateActionOrigin( k_ESteamInputType_Unknown, buttonOrigin ) } // これは、カスタムのグリフアートを取得するためのゲーム自身の機能です。 int glyphTextureID = getHardCodedButtonGlyphTexture( actionOrigin );

GetControllerBindingRevision

bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor );
名前説明
controllerHandleControllerHandle_t照会するコントローラのハンドル。
pMajorint * メジャーな割り当て変更が格納されるintへのポインター。
pMinorint * マイナーな割り当て変更が格納されるintへのポインター。

戻り値: bool - デバイスの割り当てが正常に見つかった場合はtrueで、割り当てがまだ読み込み中の場合にはfalse。

Steam Input API構成のメジャー、およびマイナーなデバイス割り当て変更を取得します。 マイナーな変更は、新しい任意のアクションの追加や、設定のローカライズ更新などの小さな変更です。 マイナー変更を更新する際には、 "Use Action Block"フラグセットで、一つの新しい設定のみが更新される必要があります。 メジャー変更は、アクションセットの数の変更や、古い設定が使えなくなる程度に構成が修正される時に使用します。 ユーザーの割当が現在の公式設定のメジャー変更に同意しない場合には、Steamは強制的にユーザーを新しい設定に更新します。 ジャーな変更を更新するときには、新しい設定はすべてのコントローラ用に作成される必要があります。

サンプルコード:
int nMinor = -1; int nMinor = -1; const int nCurrentMajorRevision = 1; const int nCurrentMinorRevision = 1; if ( GetControllerBindingRevision( controllerHandle, &nMajor, &nMinor ) ) { if ( nMinorRevision != nCurrentMinorRevision ) { // 期限切れのマイナーバージョン、問題なし // 次回configを編集するときに修正されます } if ( nMajorRevision != nCurrentMajorRevision ) { // Steamが検出中にのみ短期間発生します // その後ユーザーを最新の公式configに強制アップデートします } } else { // この設定はまだこのコントローラに読み込まれていません }

ゲームアクションファイルの使用例:
"In Game Actions" { "major_revision" "0" “minor_revision” “1” "actions" { ...

構造体

ISteamController 関数がが返すまたはやり取りする構造体です。

ControllerAnalogActionData_t

アナログアクションの現在の状態を表します。

注:
  • 構成によってその値や範囲などは異なりますが、(大まかに言えば)従来のアナログアクションは -1.0 から 1.0 の正規化された float 値を提供し、マウスのようなアクションは、最後のフレームから移動した分の "ピクセル" 数の差分アップデートを提供します。 つまり、マウスのようなアクションはより大きなxとyの絶対値を提供し、それは最後に記録された入力位置を基準としています。一方で、伝統的なアナログアクションはより小さく、中央の物理的なアンカーポイントを基準としています。
  • マウスのようなアクションが提供する差分は、OSが提供するピクセルデルタに非常によく似ていますが、SCデルタは整数ではなくfloatです。 これは、このデータをカメラ回転にマッピングした時により少ない潜在的な量子化と精度の損失を意味します。
  • アナログトリガー等の単軸アナログ入力の場合、x軸のみがデータを含み、y軸は常に0となります。

名前説明
eModeEControllerSourceModeこのアクションからのデータの型は、VDF定義で設定されたアクションと一致します。
xfloat横軸におけるこのアクションの現在の状態。
yfloat縦軸におけるこのアクションの現在の状態。
bActivebool現在このアクションが利用可能かどうかに関わらず、有効なアクションセットに紐づけられます。 利用できない場合、または有効なアクションセットに属さない場合、falseとなります。

ControllerDigitalActionData_t

デジタルアクションの現在の状態を表します。

名前説明
bStateboolこのアクションの現在の状態; アクションが現在押されている場合は true。それ以外の場合は false
bActivebool現在このアクションが利用可能かどうかに関わらず、有効なアクションセットに紐づけられます。

ControllerMotionData_t

デバイスのモーションセンサーの現在の状態を表します。

注: rotQuatX/rotQuatY/rotQuatZ では、コントローラ上の慣性測定ユニットがジャイロと加速度計の融合に基づく四元数を作成します。 この値は、コントローラの絶対的な向きですが、ヨー軸上にドリフトします。

名前説明
rotQuatXfloatセンサー融合絶対回転(進路にドリフトします)、x軸
rotQuatYfloatセンサー融合絶対回転(進路にドリフトします)、y軸
rotQuatZfloatセンサー融合絶対回転(進路にドリフトします)、z軸
rotQuatWfloatセンサー融合絶対回転(進路にドリフトします)、w軸
posAccelXfloat位置的な加速、x軸
posAccelYfloat位置的な加速、y軸
posAccelZfloat位置的な加速、z軸
rotVelXfloat角速度、 x軸
rotVelYfloat角速度、 y軸
rotVelZfloat角速度、 z軸

列挙型

ISteamControllerで使用するために定義される列挙型です。

EControllerActionOrigin

プレイヤーが Steam入力コンフィギュレーターでバインドするアクションを入力します。 これらの値の主な目的は、アクションに応じて表示されるボタングリフを決定することです。例:「
[A]を押してジャンプ」

名前説明
k_EControllerActionOrigin_None0
k_EControllerActionOrigin_A1(Valve Steamコントローラ) デジタルフェイスボタン A
k_EControllerActionOrigin_B2(Valve Steamコントローラ) デジタルフェイスボタン B
k_EControllerActionOrigin_X3(Valve Steamコントローラ) デジタルフェイスボタン X
k_EControllerActionOrigin_Y4(Valve Steamコントローラ) デジタルフェイスボタン Y
k_EControllerActionOrigin_LeftBumper5(Valve Steam コント ローラ) デジタル左ショルダーボタン (別名 「左バンパー」)
k_EControllerActionOrigin_RightBumper6(Valve Steam コント ローラ) デジタル右ショルダーボタン (別名 「右バンパー」)
k_EControllerActionOrigin_LeftGrip7(Valve Steamコントローラ) デジタル左グリップパドル
k_EControllerActionOrigin_RightGrip8(Valve Steamコントローラ) デジタル右グリップパドル
k_EControllerActionOrigin_Start9(Valve Steamコントローラ) デジタルスタートボタン
k_EControllerActionOrigin_Back10(Valve Steamコントローラ) デジタルバックボタン
k_EControllerActionOrigin_LeftPad_Touch11(Valve Steamコントローラ) 左ハプティックタッチパッド、指での単純な接触
k_EControllerActionOrigin_LeftPad_Swipe12(Valve Steamコントローラ) 左ハプティックタッチパッド、任意の軸上へのタッチ入力
k_EControllerActionOrigin_LeftPad_Click13(Valve Steamコントローラ) 左ハプティックタッチパッド、デジタルクリック (全体押し込み)
k_EControllerActionOrigin_LeftPad_DPadNorth14(Valve Steamコントローラ) 左ハプティックタッチパッド、デジタルクリック (4分割上)
k_EControllerActionOrigin_LeftPad_DPadSouth15(Valve Steamコントローラ) 左ハプティックタッチパッド、デジタルクリック (4分割下)
k_EControllerActionOrigin_LeftPad_DPadWest16(Valve Steamコントローラ) 左ハプティックタッチパッド、デジタルクリック (4分割左)
k_EControllerActionOrigin_LeftPad_DPadEast17(Valve Steamコントローラ) 左ハプティックタッチパッド、デジタルクリック (4分割右)
k_EControllerActionOrigin_RightPad_Touch18(Valve Steamコントローラ) 右ハプティックタッチパッド、指での単純な接触
k_EControllerActionOrigin_RightPad_Swipe19(Valve Steamコントローラ) 右ハプティックタッチパッド、任意の軸上へのタッチ入力
k_EControllerActionOrigin_RightPad_Click20(Valve Steam コントローラ) 右ハプティックタッチパッド、デジタルクリック (全体押し込み)
k_EControllerActionOrigin_RightPad_DPadNorth21(Valve Steamコントローラ) 右ハプティックタッチパッド、デジタルクリック (4分割上)
k_EControllerActionOrigin_RightPad_DPadSouth22(Valve Steamコントローラ) 右ハプティックタッチパッド、デジタルクリック (4分割下)
k_EControllerActionOrigin_RightPad_DPadWest23(Valve Steamコントローラ) 右ハプティックタッチパッド、デジタルクリック (4分割左)
k_EControllerActionOrigin_RightPad_DPadEast24(Valve Steam コントローラ) 右ハプティックタッチパッド、デジタルクリック (4分割右)
k_EControllerActionOrigin_LeftTrigger_Pull25(Valve Steamコントローラ) 左アナログトリガー、任意量の押し込み (アナログ値)
k_EControllerActionOrigin_LeftTrigger_Click26(Valve Steam コントローラ) 左アナログトリガー、押し切り (デジタル値)
k_EControllerActionOrigin_RightTrigger_Pull27(Valve Steamコントローラ) 右アナログトリガー、任意量の押し込み (アナログ値)
k_EControllerActionOrigin_RightTrigger_Click28(Valve Steamコントローラ) 右アナログトリガー、押し切り (デジタル値)
k_EControllerActionOrigin_LeftStick_Move29(Valve Steamコントローラ) 左ジョイスティック、任意の軸での移動(アナログ値)
k_EControllerActionOrigin_LeftStick_Click30(Valve Steamコントローラ) 左ジョイスティック、クリック(デジタル値)
k_EControllerActionOrigin_LeftStick_DPadNorth31(Valve Steamコントローラ) 左ジョイスティック、デジタル移動 (4分割上)
k_EControllerActionOrigin_LeftStick_DPadSouth32(Valve Steamコントローラ) 左ジョイスティック、デジタル移動 (4分割下)
k_EControllerActionOrigin_LeftStick_DPadWest33(Valve Steam コントローラ) 左ジョイスティック、デジタル移動 (4分割左)
k_EControllerActionOrigin_LeftStick_DPadEast34(Valve Steamコントローラ) 左ジョイスティック、デジタル移動 (4分割右)
k_EControllerActionOrigin_Gyro_Move35(Valve Steamコントローラ) ジャイロスコープ、任意の軸へのアナログ移動
k_EControllerActionOrigin_Gyro_Pitch36(Valve Steam コントローラ) ジャイロスコープ、(正面を天井と床方向に向ける)ピッチ軸のアナログ移動
k_EControllerActionOrigin_Gyro_Yaw37(Valve Steam コントローラ) ジャイロスコープ、(正面を左右へ向ける)ヨー軸のアナログ移動
k_EControllerActionOrigin_Gyro_Roll38(Valve Steam コントローラ) ジャイロスコープ、(正面を左右へ傾ける)ロール軸のアナログ移動
k_EControllerActionOrigin_PS4_X39(Sony Dualshock 4) デジタルフェイスボタン X
k_EControllerActionOrigin_PS4_Circle40(Sony Dualshock 4) デジタルフェイスボタン 〇
k_EControllerActionOrigin_PS4_Triangle41(Sony Dualshock 4) デジタルフェイスボタン △
k_EControllerActionOrigin_PS4_Square42(Sony Dualshock 4) デジタルフェイスボタン □
k_EControllerActionOrigin_PS4_LeftBumper43(Sony Dualshock 4) デジタル左ショルダーボタン (別名 「左バンパー」)
k_EControllerActionOrigin_PS4_RightBumper44(Sony Dualshock 4) デジタル右ショルダーボタン (別名 「右バンパー」)
k_EControllerActionOrigin_PS4_Options45(Sony Dualshock 4) デジタルオプションボタン (別名「Start」)
k_EControllerActionOrigin_PS4_Share46(Sony Dualshock 4) デジタルshareボタン (別名 「Back」)
k_EControllerActionOrigin_PS4_LeftPad_Touch47(Sony Dualshock 4) タッチパッド左半分、指での単純な接触
k_EControllerActionOrigin_PS4_LeftPad_Swipe48(Sony Dualshock 4) タッチパッドの左半分、任意の軸上へのタッチ入力
k_EControllerActionOrigin_PS4_LeftPad_Click49(Sony Dualshock 4) タッチパッドの左半分、(全体への)デジタルクリック
k_EControllerActionOrigin_PS4_LeftPad_DPadNorth50(Sony Dualshock 4) タッチパッドの左半分、(4分割上への)デジタルクリック
k_EControllerActionOrigin_PS4_LeftPad_DPadSouth51(Sony Dualshock 4) タッチパッドの左半分、(4分割上への)デジタルクリック
k_EControllerActionOrigin_PS4_LeftPad_DPadWest52(Sony Dualshock 4) タッチパッドの左半分、(4分割左への)デジタルクリック
k_EControllerActionOrigin_PS4_LeftPad_DPadEast53(Sony Dualshock 4) タッチパッドの左半分、(4分割右への)デジタルクリック
k_EControllerActionOrigin_PS4_RightPad_Touch54(Sony Dualshock 4) タッチパッド右半分、指での単純な接触
k_EControllerActionOrigin_PS4_RightPad_Swipe55(Sony Dualshock 4) タッチパッドの右半分、任意の軸上へのタッチ入力
k_EControllerActionOrigin_PS4_RightPad_Click56(Sony Dualshock 4) タッチパッドの右半分、(全体への)デジタルクリック
k_EControllerActionOrigin_PS4_RightPad_DPadNorth57(Sony Dualshock 4) タッチパッドの右半分、(4分割への)デジタルクリック
k_EControllerActionOrigin_PS4_RightPad_DPadSouth58(Sony Dualshock 4) タッチパッドの右半分、(4分割下への)デジタルクリック
k_EControllerActionOrigin_PS4_RightPad_DPadWest59(Sony Dualshock 4) タッチパッドの右半分、(4分割左への)デジタルクリック
k_EControllerActionOrigin_PS4_RightPad_DPadEast60(Sony Dualshock 4) タッチパッドの右半分、(4分割右への)デジタルクリック
k_EControllerActionOrigin_PS4_CenterPad_Touch61(Sony Dualshock 4) 統一タッチパッド、指での単純な接触
k_EControllerActionOrigin_PS4_CenterPad_Swipe62(Sony Dualshock 4) タッチパッド、任意の軸上へのタッチ入力
k_EControllerActionOrigin_PS4_CenterPad_Click63(Sony Dualshock 4) タッチパッド、(全体への)デジタルクリック
k_EControllerActionOrigin_PS4_CenterPad_DPadNorth64(Sony Dualshock 4) タッチパッド、(4分割上への)デジタルクリック
k_EControllerActionOrigin_PS4_CenterPad_DPadSouth65(Sony Dualshock 4) タッチパッド、(4分割下への)デジタルクリック
k_EControllerActionOrigin_PS4_CenterPad_DPadWest66(Sony Dualshock 4) タッチパッド、(4分割左への)デジタルクリック
k_EControllerActionOrigin_PS4_CenterPad_DPadEast67(Sony Dualshock 4) タッチパッド、(4分割右への)デジタルクリック
k_EControllerActionOrigin_PS4_LeftTrigger_Pull68(Sony Dualshock 4) 左アナログトリガー、任意量の押し込み(アナログ値)
k_EControllerActionOrigin_PS4_LeftTrigger_Click69(Sony Dualshock 4) 左アナログトリガー、押し切り(アナログ値)
k_EControllerActionOrigin_PS4_RightTrigger_Pull70(Sony Dualshock 4) 右アナログトリガー、任意量の押し込み(アナログ値)
k_EControllerActionOrigin_PS4_RightTrigger_Click71(Sony Dualshock 4) 右アナログトリガー、押し切り(デジタル値)
k_EControllerActionOrigin_PS4_LeftStick_Move72(Sony Dualshock 4) 左ジョイスティック、任意の軸での移動(アナログ値)
k_EControllerActionOrigin_PS4_LeftStick_Click73(Sony Dualshock 4) 左ジョイスティック、クリック(デジタル値)
k_EControllerActionOrigin_PS4_LeftStick_DPadNorth74((Sony Dualshock 4) 左ジョイスティック、デジタル移動 (4分割上)
k_EControllerActionOrigin_PS4_LeftStick_DPadSouth75(Sony Dualshock 4) 左ジョイスティック、デジタル移動 (4分割下)
k_EControllerActionOrigin_PS4_LeftStick_DPadWest76(Sony Dualshock 4) 左ジョイスティック、デジタル移動 (4分割左)
k_EControllerActionOrigin_PS4_LeftStick_DPadEast77((Sony Dualshock 4) 左ジョイスティック、デジタル移動 (4分割右)
k_EControllerActionOrigin_PS4_RightStick_Move78(Sony Dualshock 4) 右ジョイスティック、任意の軸での移動(アナログ値)
k_EControllerActionOrigin_PS4_RightStick_Click79(Sony Dualshock 4) 右ジョイスティック、クリック(デジタル値)
k_EControllerActionOrigin_PS4_RightStick_DPadNorth80((Sony Dualshock 4) 右ジョイスティック、デジタル移動 (4分割上)
k_EControllerActionOrigin_PS4_RightStick_DPadSouth81(Sony Dualshock 4) 右ジョイスティック、デジタル移動 (4分割下)
k_EControllerActionOrigin_PS4_RightStick_DPadWest82(Sony Dualshock 4) 右ジョイスティック、デジタル移動 (4分割左)
k_EControllerActionOrigin_PS4_RightStick_DPadEast83(Sony Dualshock 4) 右ジョイスティック、デジタル移動 (4分割右)
k_EControllerActionOrigin_PS4_DPad_North84(Sony Dualshock 4) デジタルパッド、(4分割右への) 押し込み
k_EControllerActionOrigin_PS4_DPad_South85(Sony Dualshock 4) デジタルパッド、(4分割下への) 押し込み
k_EControllerActionOrigin_PS4_DPad_West86(Sony Dualshock 4) デジタルパッド、(4分割左への) 押し込み
k_EControllerActionOrigin_PS4_DPad_East87(Sony Dualshock 4) デジタルパッド、(4分割右への) 押し込み
k_EControllerActionOrigin_PS4_Gyro_Move88(Sony Dualshock 4) ジャイロスコープ、任意の軸へのアナログ移動
k_EControllerActionOrigin_PS4_Gyro_Pitch89(Sony Dualshock 4) ジャイロスコープ、(正面を天井と床方向に向ける)ピッチ軸のアナログ移動
k_EControllerActionOrigin_PS4_Gyro_Yaw90(Sony Dualshock 4) ジャイロスコープ、(正面を左右へ向ける)ヨー軸のアナログ移動
k_EControllerActionOrigin_PS4_Gyro_Roll91(Sony Dualshock 4) ジャイロスコープ、(正面を左右へ傾ける)ロール軸のアナログ移動
k_EControllerActionOrigin_XBoxOne_A92(XB1) デジタルフェイスボタン A
k_EControllerActionOrigin_XBoxOne_B93(XB1) デジタルフェイスボタン B
k_EControllerActionOrigin_XBoxOne_X94(XB1) デジタルフェイスボタン X
k_EControllerActionOrigin_XBoxOne_Y95(XB1) デジタルフェイスボタン Y
k_EControllerActionOrigin_XBoxOne_LeftBumper96(XB1) デジタル左ショルダーボタン (別名 「左バンパー」)
k_EControllerActionOrigin_XBoxOne_RightBumper97(XB1) デジタル右ショルダーボタン (別名 「右バンパー」)
k_EControllerActionOrigin_XBoxOne_Menu98(XB1) デジタルメニューボタン (別名 「start」)
k_EControllerActionOrigin_XBoxOne_View99(XB1) デジタルビューボタン (別名 「back」)
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Pull100(XB1) 左アナログトリガー、任意量の押し込み(アナログ値)
k_EControllerActionOrigin_XBoxOne_LeftTrigger_Click101(Valve Steam コントローラ) 左アナログトリガー、押し切り (デジタル値)
k_EControllerActionOrigin_XBoxOne_RightTrigger_Pull102(XB1) 右アナログトリガー、任意量の押し込み(アナログ値)
k_EControllerActionOrigin_XBoxOne_RightTrigger_Click103(XB1) 右アナログトリガー、押し切り(デジタル値)
k_EControllerActionOrigin_XBoxOne_LeftStick_Move104(XB1) 左ジョイスティック、任意の軸での移動(アナログ値)
k_EControllerActionOrigin_XBoxOne_LeftStick_Click105(XB1) 左ジョイスティック、クリック(デジタル値)
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadNorth106(XB1) 左ジョイスティック、デジタル移動 (4分割上)
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadSouth107(XB1) 左ジョイスティック、デジタル移動 (4分割下)
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadWest108(XB1) 左ジョイスティック、デジタル移動 (4分割左)
k_EControllerActionOrigin_XBoxOne_LeftStick_DPadEast109(XB1) 左ジョイスティック、デジタル移動 (4分割右)
k_EControllerActionOrigin_XBoxOne_RightStick_Move110(XB1) 右ジョイスティック、任意の軸での移動(アナログ値)
k_EControllerActionOrigin_XBoxOne_RightStick_Click111(XB1) 右ジョイスティック、クリック(デジタル値)
k_EControllerActionOrigin_XBoxOne_RightStick_DPadNorth112(XB1) 右ジョイスティック、デジタル移動 (4分割上)
k_EControllerActionOrigin_XBoxOne_RightStick_DPadSouth113(XB1) 右ジョイスティック、デジタル移動 (4分割下)
k_EControllerActionOrigin_XBoxOne_RightStick_DPadWest114(XB1) 左ジョイスティック、デジタル移動 (4分割下)
k_EControllerActionOrigin_XBoxOne_RightStick_DPadEast115(XB1) 右ジョイスティック、デジタル移動 (4分割右)
k_EControllerActionOrigin_XBoxOne_DPad_North116(XB1) デジタルパッド、(4分割右への) 押し込み
k_EControllerActionOrigin_XBoxOne_DPad_South117(XB1) デジタルパッド、(4分割下への) 押し込み
k_EControllerActionOrigin_XBoxOne_DPad_West118(XB1) デジタルパッド、(4分割左への) 押し込み
k_EControllerActionOrigin_XBoxOne_DPad_East119(XB1) デジタルパッド、(4分割右への) 押し込み
k_EControllerActionOrigin_XBox360_A120(X360) デジタルフェイスボタン A
k_EControllerActionOrigin_XBox360_B121(X360) デジタルフェイスボタン B
k_EControllerActionOrigin_XBox360_X122(X360) デジタルフェイスボタン X
k_EControllerActionOrigin_XBox360_Y123(X360) デジタルフェイスボタン Y 
k_EControllerActionOrigin_XBox360_LeftBumper124(X360) デジタル左ショルダーボタン (別名 「左バンパー」)
k_EControllerActionOrigin_XBox360_RightBumper125(X360) デジタル右ショルダーボタン (別名 「右バンパー」)
k_EControllerActionOrigin_XBox360_Start126(X360) デジタル Start ボタン
k_EControllerActionOrigin_XBox360_Back127(X360) デジタル Back ボタン
k_EControllerActionOrigin_XBox360_LeftTrigger_Pull128(X360) 左アナログトリガー、任意量の押し込み(アナログ値)
k_EControllerActionOrigin_XBox360_LeftTrigger_Click129(X360) 左アナログトリガー、押し切り(デジタル値)
k_EControllerActionOrigin_XBox360_RightTrigger_Pull130(X360) 右アナログトリガー、任意量の押し込み(アナログ値)
k_EControllerActionOrigin_XBox360_RightTrigger_Click131(X360) 右アナログトリガー、押し切り(デジタル値)
k_EControllerActionOrigin_XBox360_LeftStick_Move132(X360) 左ジョイスティック、任意の軸での移動(アナログ値)
k_EControllerActionOrigin_XBox360_LeftStick_Click133(X360) 左ジョイスティック、クリック(デジタル値)
k_EControllerActionOrigin_XBox360_LeftStick_DPadNorth134(X360) 左ジョイスティック、デジタル移動 (4分割上)
k_EControllerActionOrigin_XBox360_LeftStick_DPadSouth135(X360) 左ジョイスティック、デジタル移動 (4分割下) 
k_EControllerActionOrigin_XBox360_LeftStick_DPadWest136(X360) 左ジョイスティック、デジタル移動 (4分割左)
k_EControllerActionOrigin_XBox360_LeftStick_DPadEast137(X360) 左ジョイスティック、デジタル移動 (4分割右)
k_EControllerActionOrigin_XBox360_RightStick_Move138(X360) 右ジョイスティック、任意の軸での移動(アナログ値)
k_EControllerActionOrigin_XBox360_RightStick_Click139(X360) 右ジョイスティック、クリック(デジタル値)
k_EControllerActionOrigin_XBox360_RightStick_DPadNorth140(X360) 右ジョイスティック、デジタル移動 (4分割上)
k_EControllerActionOrigin_XBox360_RightStick_DPadSouth141(X360) 右ジョイスティック、デジタル移動 (4分割下)
k_EControllerActionOrigin_XBox360_RightStick_DPadWest142(X360) 左ジョイスティック、デジタル移動 (4分割下)
k_EControllerActionOrigin_XBox360_RightStick_DPadEast143(X360) 右ジョイスティック、デジタル移動 (4分割右)
k_EControllerActionOrigin_XBox360_DPad_North144(X360) デジタルパッド、(4分割右への) 押し込み
k_EControllerActionOrigin_XBox360_DPad_South145(X360) デジタルパッド、(4分割下への) 押し込み
k_EControllerActionOrigin_XBox360_DPad_West146(X360) デジタルパッド、(4分割左への) 押し込み
k_EControllerActionOrigin_XBox360_DPad_East147(X360) デジタルパッド、(4分割右への) 押し込み   
k_EControllerActionOrigin_Count196この列挙型の数値は反復処理に便利です。

EControllerSource

多数のモードの内の一つを割り当てて意味のあるデータの出力に使えるコントローラの領域で、より大きく抽象的なモジュラーユニットとして考えることができます。 例えば、ジョイスティックを一つのアナログ入力として扱ったり、仮想の十字キーを作って4つの別々のデジタル入力として扱うことができます。 同様に、ABXYフェイスボタンを4つの独立したボタンとして扱われるグループにすることや、仮想DPAD の一部として扱うことができます。

名前説明
k_EControllerSource_None0コントローラソースがありません。
k_EControllerSource_LeftTrackpad1左タッチパッド、または中央タッチパッドの左半分です。
k_EControllerSource_RightTrackpad2右タッチパッド、または中央タッチパッドの右半分です。
k_EControllerSource_Joystick3ジョイスティックです。2つ以上ジョイスティックがある場合には、左のジョイスティックです。
k_EControllerSource_ABXY44つの主なフェイスボタンです。
k_EControllerSource_Switch5コントローラ上の、その他のソースに該当しないスイッチ/ボタンです。 バンパー、start/select ボタン、グリップなどを含みます。 これは特別な例外であり広い範囲での典型に属さないため、デジタルボタンのソースが割り当てられ、対応するモードが処理されます。
k_EControllerSource_LeftTrigger6左アナログトリガーです。
k_EControllerSource_RightTrigger7c右アナログトリガーです。
k_EControllerSource_Gyro8内蔵のジャイロスコープ。
k_EControllerSource_CenterTrackpad9中央のタッチパッドです。 (DS4のみ)
k_EControllerSource_RightJoystick10右ジョイスティックです。 ジョイスティックが一つだけの場合、このソースは使用されません。
k_EControllerSource_DPad11デジタルパッドです。
k_EControllerSource_Key12キーボードのキー(スキャンコード付きキーボード用)。
k_EControllerSource_Mouse13伝統的なマウス
k_EControllerSource_Count14この列挙型の数は、反復処理に便利です。

EControllerSourceMode

仮想入力モードはコントローラソースのコンフィギュレータで制御されます。 例えば、コンフィギュレータはアナログジョイスティックを4つのデジタル入力を持つDPADのようにセットでき、EControllerSource が k_EControllerSource_Joystick で、 EControllerSourceMode が k_EControllerSourceMode_Dpad となります。 モードには、関連アクションにが受け付けた入力データの変更もできます。

名前説明
k_EControllerSourceMode_None0入力モードなし。
k_EControllerSourceMode_Dpad1デジタルパッド -- 十字型の4方向のデジタルボタンで、各軸において一度に押すことのできるのは1方向だけです。
k_EControllerSourceMode_Buttons2
k_EControllerSourceMode_FourButtons34つのデジタルフェイスボタン。同時に押すことができます。
k_EControllerSourceMode_AbsoluteMouse4
k_EControllerSourceMode_RelativeMouse5
k_EControllerSourceMode_JoystickMove6
k_EControllerSourceMode_JoystickMouse7
k_EControllerSourceMode_JoystickCamera8
k_EControllerSourceMode_ScrollWheel9
k_EControllerSourceMode_Trigger10
k_EControllerSourceMode_TouchMenu11
k_EControllerSourceMode_MouseJoystick12
k_EControllerSourceMode_MouseRegion13
k_EControllerSourceMode_RadialMenu14
k_EControllerSourceMode_SingleButton15
k_EControllerSourceMode_Switches16

ESteamControllerLEDFlag

(デバイス上にLEDがある場合)SteamコントローラデバイスのLEDの色をコントロールします。

注:
VSCにはLEDが一つありますが、(色は常に白であり)明るさだけが影響されます。
DS4のLEDはライトバーであり、色と明るさを設定できます。

名前説明
k_ESteamControllerLEDFlag_SetColor0指定した値に色を設定します。
k_ESteamControllerLEDFlag_RestoreUserDefault1色をデフォルト(ゲーム外)設定に戻します。

ESteamInputType

対象のハードウェアのでデバイスモデルを表します。

名前説明
k_ESteamInputType_Unknown0認識されないデバイスのキャッチオールです
k_ESteamInputType_SteamController1ValveのSteamコントローラ
k_ESteamInputType_XBox360Controller2MicrosoftのXBox 360コントローラー
k_ESteamInputType_XBoxOneController3MicrosoftのXBox Oneコントローラー
k_ESteamInputType_GenericXInput4一般的なサードパーティーXInputデバイス
k_ESteamInputType_PS4Controller5Sony PlayStation 4コントローラー
k_ESteamInputType_AppleMFiController6未使用
k_ESteamInputType_AndroidController7未使用
k_ESteamInputType_SwitchJoyConPair8未使用
k_ESteamInputType_SwitchJoyConSingle9未使用
k_ESteamInputType_SwitchProController10Nintendo's Switch Pro コントローラー
k_ESteamInputType_MobileTouch11Steamリンクアプリのモバイルタッチコントローラー
k_ESteamInputType_PS3Controller12SonyのPlaystation 3 コントローラーまたはPS3/PS4互換性のある格闘ゲーム用スティック
k_ESteamInputType_Count13返された値の現在の数
k_ESteamInputType_MaximumPossibleValue255返される可能性のある値の最高値

ESteamControllerPad

Steamコントローラデバイス上でのタッチパッドの領域です。

注:
VSCでは、左右のハプティックタッチパッドに対する値です。
DS4では、中央に位置する一つのタッチパッドへの左右半分に対する値です。

名前説明
k_ESteamControllerPad_Left0Steamコントローラデバイス上での左タッチパッドの領域です。 対応モデル:VSC, DS4
k_ESteamControllerPad_Right1Steamコントローラデバイス上での右タッチパッドの領域です。 対応モデル:VSC, DS4

Typedefs

ISteamControllerで使用するために定義されたtypedefsです。

名前ベース型説明
ControllerActionSetHandle_tuint64これらのハンドルは指定のゲームアクションまたはアクションセットの参照に使われます。
すべてのアクションハンドルは、パフォーマンス上の理由のために初期化中に照会する必要があります。
ControllerAnalogActionHandle_tuint64アナログアクションへのハンドルです。 GetAnalogActionHandleから取得できます。
ControllerDigitalActionHandle_tuint64デジタルアクションへのハンドルです。 GetDigitalActionHandleから取得できます。
ControllerHandle_tuint64このハンドルは、切断、再接続された場合も含め常時コントローラを識別します。

定数

ISteamControllerで使用するために定義される定数です。

名前説明
STEAMCONTROLLER_INTERFACE_VERSIONconst char *"SteamController007"
STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERSintUINT64_MAXこの特別な値を、全てのコントローラではなく、指定のコントローラハンドルだけにに送信するオプションとして使用できます。
STEAM_CONTROLLER_MAX_ANALOG_ACTIONSint16各コントローラ上で実行できるアナログアクションの最大数です。
STEAM_CONTROLLER_MAX_ANALOG_ACTION_DATAfloat1.0f任意の軸上のアナログアクションで報告することのできる最大値です。
STEAM_CONTROLLER_MAX_COUNTint16Steam入力コンフィギュレーターで同時に使用できるコントローラの最大数です。
STEAM_CONTROLLER_MAX_DIGITAL_ACTIONSint128各コントローラ上で実行できるデジタルアクションの最大数です。
STEAM_CONTROLLER_MAX_ORIGINSint8一つのアクションに関連付けられる入力元の最大数です。
STEAM_CONTROLLER_MIN_ANALOG_ACTION_DATAfloat-1.0f任意の軸上のアナログアクションで報告することのできる最小値です。