首页 > 其他分享 >配置steam input遇到的坑,调用steam input API 之前的准备工作

配置steam input遇到的坑,调用steam input API 之前的准备工作

时间:2023-07-09 13:34:22浏览次数:35  
标签:nes controller API vdf Action input steam

配置steam input遇到的坑,调用steam input API 之前的准备工作

 

总共需要3种类型的文件

1.steam_appid.txt

这个文件里面就只有一个id,对应着你正在调试的app,这个文件必须放在你生成的game.exe旁边比如在vc的Debug文件夹中,或者工程的根目录下.

缺这个文件SteamAPI_Init无法调用成功

 

2.controller_xxxxx.vdf, 

这是手柄布局配置文件,由steam客户端配置手柄时产生,其中xxxx指的是控制器类型,比如你配置的是xbox360手柄,文件名称就为controller_xbox360.vdf,

配置文件可以有多个,根据你配置的控制器类型的数量决定,比如可以是

controller_xboxone.vdf

controller_xbox360.vdf

controller_ps4.vdf

controller_steam.vdf

 

要得到配置文件首先要使用一种叫IGA的文件用于设置你游戏中碰到的各种行为动作(Action),比如发子弹,跳,移动,飞行….等等.

有了IGA文件客户端才知道如何配置手柄,

https://partner.steamgames.com/doc/features/steam_controller/iga_examples  IGA文件模板

 

下面是一个IGA文件的例子,这个例子描述呢nes模拟器模拟nes手柄的操作

"In Game Actions"

{

    "actions"

    {

        "GameControls"

        {

            "title"                 "#Set_GameControls"

            "Button"

            {

                "Action_A"          "#Action_A"

                "Action_B"          "#Action_B"

                "Action_Select"     "#Action_Select"

                "Action_Start"      "#Action_Start"

                "Action_Up"         "#Action_Up"

                "Action_Down"       "#Action_Down"

                "Action_Left"       "#Action_Left"

                "Action_Right"      "#Action_Right"

            }

        }

    }

    "localization"

    {

        "english"

        {

           "Set_GameControls"       "General Controls"

           "Action_A"               "nes button A"

           "Action_B"               "nes button B"

           "Action_Select"          "nes button Select"

           "Action_Start"           "nes button Start"

           "Action_Up"              "nes button Up"

           "Action_Down"            "nes button Down"

           "Action_Left"            "nes button Left"

           "Action_Right"           "nes button Right"

        }

    }

}

 

将创建好的IGA文件重命名为game_actions_xxxxxx.vdf (xxxxx为你的App ID),将文件放入,…….steam\controller_config\中,

如果不存在controller_config就创建一个,然后就可以在客服端配置手柄了,这里最好使用app的测试版本调试steaminput,也就是后面跟着Playtest的版本,

因为可以直接从steam界面启动手柄配置

 

 

如果使用正式发布版测试,需要进入steam大屏幕才能配置,切来切去比较麻烦.

手柄布局编辑好之后,点下面这个设置按钮

 

 

 

然后在win10运行中执行 start steam://dumpcontrollerconfig?appid=X (X为已在steam发行的应用的ID)

这样就可以将你的当前配置文件复制到”我的文档”中

文件名为 config_xxxxx_controller_xxxxx.vdf 这个就是我们需要手柄布局配置文件了.

 

 

 

3.steam_input_manifest.vdf

manifest清单文件很简单,就是在有效的IGA文件基础上改一下

中间加一个"configurations"集合,包含了你使用到的布局配置文件的地址,一般都清单文件和布局配置文件都放在同一个目录中.

"Action Manifest"

{

         "configurations"

         {

                   "controller_xboxone"

                   {

                            "0"

                            {

                                     "path" "xbox_controller.vdf"

                            }

                   }

                   "controller_steamcontroller_gordon"

                   {

                            "0"

                            {

                                     "path" "steam_controller.vdf"

                            }

                            "1"

                            {

                                     "path" "steam_controller_motion_controls.vdf"

                            }

                   }

         }

         "actions"

         {

         }

         "localization"

         {

         }

}

 

这3种文件准备好之后,将steam_appid.txt放入Debug文件夹中或vc工程的根目录

将清单steam_input_manifest.vdf和所有controller_xxxxx.vdf文件放在你的steam游戏根目录下.

然后进入steamwork App管理界面,Application -> Steam input,进行设置

 

 

 

 设置完后点保存,然后发布,重启steam客服端更新App

 

一切准备好后你就可以返回IDE正常的调用steam input API了

标签:nes,controller,API,vdf,Action,input,steam
From: https://www.cnblogs.com/zxdplay/p/17538631.html

相关文章

  • 给input文本框添加灰色提示文字
    灰色提示功能大家都见到很多网站的文本框都有灰色提文字,一点即消失,鼠标一开又出现(没填写状态下)用下面这段短短的代码就可以实现啦!将这段代码加载input中!value="你的提示文字"onFocus="if(value==defaultValue){value='';this.style.color='#000'}"onBlur="if(!value){value=de......
  • Net 编译器平台--- Roslyn Scripting APIs
    引言上一篇中.Net编译器平台---Roslyn,介绍了Roslyn的各项功能,包括公开API,使用语法,使用语义,使用工作区等功能。那么回到上一篇中提到的问题,实现类似这样的功能(以下代码为伪代码):stringscriptText="inta=1;intb=2;returna+b;";varresult=Script.Run(scriptTex......
  • 谈一谈电商api的未来
     随着互联网的飞速发展,电商行业已经成为了现代消费的主流模式。在电商平台上,商品的交易、物流、支付等环节都需要使用API(ApplicationProgrammingInterface)接口来实现信息的传递和互动。那么,什么是电商API?电商API的未来又会有怎样的发展趋势呢?一、我们来了解一下什么是API。AP......
  • 为什么微服务需要API网关
    为什么微服务需要API网关1.防止内部关注暴露给外部客户端API网关将外部公共API与内部微服务API分开,允许添加微服务和更改边界。其结果是能够在不对外部绑定客户端产生负面影响的情况下重构和适当大小的微服务。它还通过为您的所有微服务提供单一入口点,对客户端隐藏了服务发现和版......
  • Amazon SP API拉取日期范围报告和分类树
    基础类:https://www.cnblogs.com/xiangshihua/p/16598177.html日期范围报告  GET_DATE_RANGE_FINANCIAL_TRANSACTION_DATA日期范围报告无法申请报告,只能通过爬虫去模拟后台登陆点击生成报告(生成报告完成后抓取到report_id)日期范围报告由于每个站点的表头不一样可以做成配置......
  • 【题解】 [APIO2007] 动物园
    目录题目链接原题描述题目描述输入格式输出格式样例#1样例输入#1样例输出#1样例#2样例输入#2样例输出#2提示题意概括思路历程1.与环相关2.设计状态代码实现题目链接原题描述[APIO2007]动物园题目描述新建的圆形动物园是亚太地区的骄傲。圆形动物园坐落于太平洋的一个......
  • python - input()函数
    1.示例message=input("tellmesomething,andIwillrepeatitbacktoyou:")print(message)1.1提示-promptprompt="Ifyoutelluswhoyouare,wecanpersonalizethemessagesyousee."prompt+="\nWhatisyourfirstname?......
  • solidworks api ch03
    3.1系统选项letsystemOptions(swApp:ISldWorks)=swApp.SetUserPreferenceToggle(intswUserPreferenceToggle_e.swInputDimValOnCreate,true)swApp.GetUserPreferenceToggle(intswUserPreferenceToggle_e.swInputDimValOnCreate)|>sprintf"%b&q......
  • SteamAPI_Init 返回失败的原因
    SteamAPI_Init您在自己的项目内设置SteamworksAPI后,就可以通过调用 SteamAPI_Init 函数,初始化此API并开始使用。这样即可设置全局状态,并填入可以通过与此接口名称匹配的全局函数访问的接口指针。 必须调用此函数并返回成功,才能访问任何 Steamworks接口!如果Steamworks......
  • WEB API 添加jwt认证后,跨域失效问题
    WEBAPI添加jwt认证后,跨域失效问题跨域配置策略如下://添加跨域策略builder.Services.AddCors(options=>{options.AddPolicy("CorsPolicy",opt=>opt.AllowAnyOrigin().AllowAnyHeader().AllowAnyMethod().WithExposedHeaders("......