ども、お久しぶりの宗です。
Twitterだと量的に書ききれない事を書き記しに参りました。
先月からSteamでリーサルシリーズをリリースすべく色々準備をしておりました。
そしたら事前にプレイをしてもらった方から
ゲームパッドが効かね~よ
と報告を受けまして。
先日親切な方に教えて頂いたりして解決したのですが、調べた際、作者・プレイヤー、どちらにも同じ悩みが散見されたので。じゃ、解決手段をネットに晒すか、と思った次第です。
■原因
まず、なんでゲームパッドが効かなくなるのか、と言えば…。
Steamはゲームパッドの入力信号をどこ製のコントローラーでもSteam独自の入力信号に統一する仕様(強制)があります。
まあ、ここの設定(↓)でON/OFFでき、OFFなら関係なく動くのですが…。
他所様のゲームがこの仕様で「キー配置の最適化」をしていたりもするので常時ONのプレイヤーが多いのです。
私はこの仕様をいったん無視していましたが、プレイヤー視点だと「入力を有効にする」がONだと動かなくなるなんて想像できない。
…結果、実質ゲームパッド入力が無効も同じ、となっていました。
■苦戦した理由
もちろん、開発者向けのページには、この独自の入力信号を有効化するためのプログラムも説明されているのですが…。
わっかんねえよ、俺プランナーだし。
C言語とか2ヵ月しか経験ないし。
で、リーサルシリーズはLuaという言語で組まれてますから、記載された構文を使うには複数の言語で組んだプログラムを回す必要があり…。
……ってことで、正攻法は無理でしたわ。
(※Steamだけでなく、日本の外に出ると「ゲームの作者=プログラマー」って意識が強いんですよね……。日本の企業ならADV系とかイラストレーター製やライター製も普通に多いから配慮するんだけど...。)
■具体的な対応
プログラムは一切変更していません。
調査したところ、どんな条件でもキーボードは有効だったので......。
Steam上でのコントローラ入力から
キーボード入力を出力させればよい!
……という泥臭い方法で解決しました。
回りくどかろうが、プレイヤーが快適にプレイできればいいんだよ!
■対応手順1(コントローラのレイアウトを開く)
まずSteamを開く。(開発用の「Steamworks」ではない)
メニュー最上部からSteam>設定>コントローラを選択。
コントローラの設定の一番下にある「ガイドボタンのコードレイアウト」の「編集」を選択。
すると、このようなウインドウが表示されます。
ここでパッド入力設定セット(レイアウト)を自作できます。
それをSteam上に保存することで、自分のゲームの初期配置に設定することが可能になります。
■対応手順2(レイアウトを設定する)
※このページは新設かつ、日本語が怪しいので更新による変更に注意。
「レイアウトを編集」を選択
ここで各ボタンの中身を変更できます。
・ボタン
・十字キー
・トリガー
・ジョイスティック
それぞれを選択し、各ボタンに「Z」「X」「C」「V」などのキーを、十字キーとジョイスティックには「↑」「↓」「←」「→」の方向キーを設定していきます。
ボタンの割り当てを設定変更する際、画面上部の「キーボード」を押して、画面の対応するキーをクリックです。
■対応手順3(レイアウトデータを保存する)
ボタン配置設定が終わったら、それをSteam上に保存します。
画面を「コントローラ設定」まで戻して画面右の「歯車マーク」をクリック。
出てくるレイアウトオプション内から、まずは「コミュニティとレイアウトを共有」を選択。
するとレイアウトに命名と説明ができるので、ゲーム名なり後で判別できる名前と説明を入力。
※この入力をして確定を押すと、「現在のレイアウト」の表示名がその名前に変わります。
入力後、次は「レイアウト詳細」を選択。
レイアウト詳細を表示すると同時に「リンク」の中身がコピーされるので、メモ帳か何かにペーストして記録。
これでコントローラー設定側の準備は完了。
こちらの画面はもう閉じても大丈夫ですし、一度作ったレイアウトはこのアカウント内に残ります。
■対応手順4(レイアウトをSteamworkに反映)
今度は開発者用のデータ入力のためにSteamworksを開き、テクニカルツールの「Steamworks設定を編集」を開きます。
続いて、ページ上部の「アプリケーション」タブにカーソルを合わせると出現する、リストの中の「Steam入力」を選択。
このページでコントローラーやマウスの入力設定ができるので
①Steamデフォルト設定でカスタム設定(Steamワークショップでホスト)を選択
②カスタム設定で「カスタム設定を追加」を押し共有URLに■対応手順3で確保したアドレスを入力。
するとそのコントローラー設定がリスト化します。
③そのリストの「利用可能なブランチ」にチェック。
④コントローラにSteam入力を選択で適用したいコントローラーにチェック
(チェックしなかったコントローラーは設定が反映されません。まず全チェックでOK)
あとはそのデータを保存し、他の設定変更と同様に公開から「Steamに公開」を実行すれば、反映完了です。
■対応手順5(反映されたボタン配置をチェックする)
公開後、設定したゲームをダウンロードした時に設定したボタン配置が適用されます。
インストール済みなら再インストールしてください。
あと、レイアウトの設定時に使ったアカウントと、最後のテストプレイは別のアカウントを使用推奨です...。
(対象のコントローラーレイアウトをすでに持っている場合、処理がスキップされるのか…?なんか上手く行かなかった)
以上で設定は完了すれば
「入力を有効にするがON」なら上記の設定を
「入力を有効にするがOFF」なら普通のゲームパッド入力を
使い、どちらの場合でもゲームパッドが使用可能になります。
…自分の場合はこれで上手く行きました。
実際に試しておかしい所などありましたら、ご指摘頂けると助かります。
では、本日は以上で。