Skip to content

codelelou/GameInputDisplay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

䞻に2぀の䜿い方がありたす。

  • ゲヌムコントロヌラヌの入力を配信画面に衚瀺するController/KeyLogモヌド
  • ゲヌムコントロヌラヌのボタンに動画・音声・画像・HTMLファむルを割圓おるDeckモヌド

カスタマむズやDeckモヌドで制限はありたすがダりンロヌドせずに動かすこずは可胜なので、XInput察応ゲヌムコントロヌラヌを接続の䞊、お詊し・動䜜確認しおみおください。
初期蚭定は「Controller/KeyLogモヌド」ですが、パラメヌタヌ蚭定でモヌド倉曎など行えたすデバッグモヌドの「パラメヌタヌ蚭定ゞェネレヌタヌ」が䟿利です。

ダりンロヌドはGitHubペヌゞ䞊郚にある緑色のCodeボタンを開き、Download ZIPボタンからできたす。

元々は自分甚ずしお栌闘ゲヌム「ストリヌトファむタヌV」のゲヌム実況甚に開発したした。
配信゜フトに「OBS」を䜿っおいるので、説明もOBS向けになっおいたすが、他の配信゜フトでもOBSず同等の機胜があれば䜿甚はできるず思いたす。

コントロヌラヌスキンは画像の差し替えだけでもカスタマむズ可胜ベヌスの画像ず抌したボタンの差分画像で構成にしおいたす。
蚭定・カスタマむズは配信゜フト「OBS」のブラりザ゜ヌスのプロパティから、URLパラメヌタヌ蚭定ずカスタムCSSで行いたす。

泚意・制玄・制限

プレむするゲヌムずは別にコントロヌラヌの入力情報を取埗・凊理しおいるため、入力内容が䞀臎しない堎合がありたす。

OBSのブラりザ゜ヌスずしお本゜フトりェアを衚瀺する堎合、䞀郚のコントロヌラヌが認識できない堎合がありたす。
DualShock4PS4玔正パッドは無線接続だず入力情報を取埗できなくなる堎合があり、このような時は有線接続をお詊しください。

Gamepad API

入力情報の取埗はGamepad APIWeb APIを䜿甚䟝存しおいるため、XInput未察応のゲヌムコントロヌラヌやキヌボヌドなどには察応しおおりたせん。

パ゜コンに接続しおいる最倧4぀たでのゲヌムコントロヌラヌを識別でき、パラメヌタヌ蚭定「controller」で入力を取埗する察象のゲヌムコントロヌラヌを指定できたす。
PCゲヌムをゲヌムコントロヌラヌでプレむする堎合でも、他に接続しおいるゲヌムコントロヌラヌを指定するこずでDeckモヌドを䜿甚するこずができたす。

Gamepad APIの仕様䞊、ルヌプ凊理でゲヌムコントロヌラヌの情報どのボタンが抌されおいるかなどを取埗しおいるため、ルヌプ間隔の空癜の時間にのみ抌されたボタンの情報は取埗できたせん。
ルヌプ間隔はパラメヌタヌ蚭定「delay」で指定可胜できたす。

ストリヌトファむタヌ6

ストリヌトファむタヌ6の「巊右同時入力はニュヌトラル」ず「䞊䞋同時入力はニュヌトラル」の方向入力ルヌルぞのプログラム的な察応は基本的に行っおいたせん。 キヌログではCSSで察応しおおり、方向入力は䜙分に衚瀺されやすく、トレモなどゲヌム内ずの衚瀺ず盞違が発生しやすいです。特に方向入力をボタンずレバヌで䜵甚しお行う堎合は䜙分に衚瀺されやすくなりたす。

仕様倉曎

version.01.05.03以降

バヌゞョン「01.05.03」から、コントロヌラヌスキンの衚瀺䜍眮が右䞋を起点に衚瀺するように仕様倉曎になりたした。

キヌログは埓来どおり、巊䞊を起点に衚瀺したたたです。
ただしパラメヌタヌ蚭定「styles」に「KeyLog_Horizontally_DU」を指定しおいる堎合は、コントロヌラヌスキンは右䞊を起点に、キヌログは巊䞋を起点にしお衚瀺したす。

これはキヌログの暪衚瀺方向察応による仕様倉曎になりたす。

䜿い方

配信゜フトOBSの゜ヌスに、本゜フトりェアindex.htmlを「ブラりザ」ずしお蚭定するこずで䜿甚できるようになりたす。

その際はブラりザ゜ヌスのプロパティの「URL」に「http://absolute/C:/GameInputDisplay/index.html」のように蚭定しおくださいロヌカルファむルパスの頭に「http://absolute/」を぀ける。
「ロヌカルファむル」ずしお蚭定するずパラメヌタヌ蚭定ができなくなるので泚意しおください。

ダりンロヌドせずに「https://codelelou.github.io/GameInputDisplay/index.html」ず蚭定するこずでも動䜜はしたすが、オフラむン環境やサヌバヌが萜ちおいる時などは䜿甚できたせんし、凊理に遅延が発生しやすいかもしれたせん。
たたDeckモヌドでロヌカルファむルを指定する堎合はダりンロヌドしお䜿甚する必芁がありたすブラりザの制玄のため。

幅ず高さは配信画面ず同じにするず良いず思いたすOBSの初期蚭定は800×600ず小さめ。
DeckモヌドをOBSで䜿甚する堎合は「OBSを介しお音声を制埡する」の項目を有効にしおいるず、OBS偎でも音声の調敎ができるようになるかず思いたす。

OBS起動のたびにコントロヌラヌスキンの各ボタンの差分画像の読み蟌みに時間がかかる堎合がありたす。配信前に党おのボタンやスティックを操䜜しお差分画像を衚瀺させおおくこずで画像がキャッシュされお遅延が改善されるかず思いたす。
これは暙準のコントロヌラヌスキンをシンプルにしおCSS初心者でもカスタマむズに挑戊しやすいように、差分画像の自動キャッシュしない䜜りにしおいるためです。

Controller/KeyLogモヌドのサむズ・衚瀺䜍眮などの調敎

配信゜フトOBSを䜿甚する堎合の解説になりたすが、他の配信゜フトでも䌌たような機胜や項目があれば同じように蚭定できるかず思いたす。
他の゜ヌスず同じような感芚で配信゜フトのシヌン・゜ヌス管理機胜でサむズや衚瀺䜍眮、䞍透明床の蚭定する手順になりたすカスタムCSSの蚭定が䞍芁。

たずは本゜フトりェア専甚シヌンずしお、新芏「シヌン」を远加したす。
このシヌンの゜ヌスにはブラりザ゜ヌスずしお本゜フトりェアを远加したす。

URLは「http://absolute/C:/GameInputDisplay/index.html」のように蚭定ご自身の環境に合わせお「http://absolute/」以降を倉曎しおくださいし、幅ず高さは配信画面ず同じにしたす。
本゜フトりェアを衚瀺しない時に無駄なプログラムは走らないように「衚瀺されおないずきに゜ヌスをシャットダりン」の項目も有効にしたすチェックを入れる。

次にゲヌムコントロヌラヌ甚ずキヌログ甚ずしお2぀のシヌンを䜜成したす。
これらのシヌンの゜ヌスには、シヌン゜ヌスずしお先皋远加した本゜フトりェア専甚シヌンを远加したすシヌンを分けるこずで個別に䞍透明床の蚭定などができるようになりたす。

ゲヌムコントロヌラヌ甚シヌンにはゲヌムコントロヌラヌのみが、キヌログ甚シヌンにはキヌログのみが衚瀺されるようにクロップ切り取りしたす。
拡倧瞮小するような感じでサむズ調敎をaltキヌを抌しっぱなしでするこずでクロップの調敎ができたす。
キヌログはゲヌムコントロヌラヌの入力がないず衚瀺されないので、パ゜コンに䜿甚するコントロヌラヌを接続し、いく぀か入力を行っおキヌログを衚瀺しおくださいゲヌムの起動は䞍芁です。

サむズ調敎をリセットしたい堎合は、リセットしたい゜ヌスを右クリックし「倉換」メニュヌの「倉換をリセット」を実行しおくださいその゜ヌスがロック状態の堎合はロックを解陀しおください。

あずは他の゜ヌスず同じように、お奜みのシヌンの゜ヌスにゲヌムコントロヌラヌ甚シヌンやキヌログ甚シヌンをシヌン゜ヌスずしお远加し、サむズや衚瀺䜍眮の調敎をするだけです。
そのシヌン゜ヌスのフィルタに「カラヌキヌ」を远加するこずで、「䞍透明床」の調敎もできたす。

なおコントロヌラヌスキンの瞊暪の比率はスキンによっお異なりたすし、キヌログも衚瀺するボタン数もキヌログ甚カスタムCSSキヌコンフィグで異なりたす。 コントロヌラヌスキンずキヌログの切替はパラメヌタヌ蚭定「styles」で行いたす初期蚭定はPS4玔正パッド向けになっおたすが、暙準でアケコンやHitBox颚のコントロヌラヌスキンや、ストリヌトファむタヌV䜿甚のキヌログを甚意しおいたす。

コントロヌラヌスキンのカスタマむズなどは最初に䜜成したシヌンのブラりザ゜ヌスの「カスタムCSS」で蚭定しおください。
耇数のコントロヌラヌスキンをカスタムCSSに別スタむル名で蚭定しおおけば、そのブラりザ゜ヌスのURLのstylesパラメヌタヌを倉曎するこずでスキンを切替えれたす。

シヌン゜ヌスの切替えでスキンを切り替えたい堎合は、スキン別にシヌンを䜜成し、それぞれにブラりザ゜ヌスずしお本゜フトりェアを蚭定し、さらにそれらのシヌンを元にスキン毎にゲヌムコントロヌラヌ甚ずキヌログ甚のシヌンを䜜る必芁がありたす。
ゲヌムによっおコントロヌラヌが違うなど頻繁にスキンを切替える堎合は、スキン別にシヌンを䜜成する方法が向いおいるかもしれたせん。

埌はお奜みに応じおパラメヌタヌ蚭定を行っおください。
䟋えばアケコンでストリヌトファむタヌVをプレむする堎合は、URLを「http://absolute/C:/GameInputDisplay/index.html?styles=ArcadeController,KeyLog_StreetFighterV」のようにしおパラメヌタヌ蚭定を行いたす。

パラメヌタヌ蚭定

本゜フトりェアの各皮蚭定は、「index.html?delay=4&log=20&excludes=8,9,11&styles=ButtonBox,KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK」のようにパラメヌタヌから指定できたす。
スペヌスや党角などが含たれおいるような堎合は、正垞に本゜フトりェアが動䜜しない堎合がありたす。

パラメヌタヌ蚭定「modes」に「Debug」を指定「index.html?modes=Debug」するこずで、デバッグモヌドから「パラメヌタヌ蚭定ゞェネレヌタヌ」を䜿甚できたす。

modes

既定倀Controller,KeyLog

  • Controller
  • KeyLog
  • Deck
  • Debug

以䞊のモヌドがあり、「Controller」ず「KeyLog」は䜵甚できたす。

コントロヌラヌかキヌログのどちらか䞀方のみを衚瀺したい堎合は「index.html?modes=Controller」のように指定したす。

デバッグモヌド「index.html?modes=Debug」が有効の堎合は、コントロヌラヌもキヌログも䞡方衚瀺されたす。
デバッグモヌドでは本゜フトりェアのバヌゞョンや各パラメヌタヌ蚭定内容の確認、パ゜コンに繋いでいるコントロヌラヌの情報接続Indexやボタン番号などを確認できたす。

Controllerコントロヌラヌスキン

ゲヌムコントロヌラヌを暡した画像スキンが衚瀺され、芖芚的に抌しおいるボタンなどを衚瀺したす。

KeyLogキヌログ

どのボタンを抌したかなど、入力履歎を衚瀺したす。

Deckデッキ

ゲヌムコントロヌラヌの各ボタンに動画・音声・画像・HTMLファむルを割り圓おるこずができたす。
ファむルの割り圓おはパラメヌタヌ蚭定「deck」で指定したす。

OBSWindows10でバックグラりンド操䜜できるこずを確認しおいたすが、䜿甚するハヌド・゜フトや䜿甚環境・状況などによっおブラりザや配信゜フトでバックグラりンドで動䜜できない堎合がありたす。

動画・音声ファむルはルヌプ再生されたすが、同じボタンを抌すこずで再生・䞀時停止を切り替えるこずができたす。

配信の埅機甚ファむルやBGMをボタン操䜜で切り替えるずいった䜿い方ができたす。
Stream Deckのような配信゜フトのシヌンを切り替えたり、アプリケヌションを起動したり、マクロを登録したりする機胜はありたせん。

知識・技術があればHTMLファむルに特殊なプログラムを行わせるこずができるかもしれたせん。

Clearクリアボタン

既定倀ボタン番号0

クリアボタンを抌すず衚瀺・再生䞭のファむルを非衚瀺・停止したす。
衚瀺したファむルを非衚瀺にする時はこのクリアボタンを抌しおください。

止めたい音声ファむルのボタンがわからなくなったような時にも、このクリアボタンを抌すこずで停止するこずができたすクリアボタンは「䞀時停止」ではなく「停止」になりたす。

非衚瀺をクリアボタンで行う仕様は、ラむブ配信䞭に咄嗟に画像で配信画面を隠したいような時に、ボタンを2回抌したせいで画像が非衚瀺になっおしたい隠せおいないようなトラブルを避けるためです。

HTMLファむル内の動画や音声はそのHTMLファむルの凊理に䟝存しおおり、クリアボタンを抌しおも䞀時停止・停止の凊理は行いたせんHTMLファむル自䜓は非衚瀺になりたす。
このような堎合はリセットボタンでメモリ䞊の読み蟌んだファむルを削陀するこずで停止できるず思いたすファむル自䜓は削陀されたせん。

Resetリセットボタン

既定倀ボタン番号11

メモリ䞊の読み蟌んだファむルを削陀したすファむル自䜓は削陀されたせん。
音量はリセットされたせん。

通垞はリセットボタンではなくクリアボタンを䜿いたす。
ファむルを再読み蟌みしたいような堎合にリセットボタンを䜿いたす。

音量調敎

既定倀十字キヌボタン・巊スティックの䞊䞋

十字キヌボタン・巊スティックの䞊䞋入力で動画・音声ファむルの音量の䞊げ䞋げを行えたすHTMLファむル内の動画・音声はHTMLファむル偎で凊理が必芁です。
既定音量は「50」で、ミュヌトから最倧たで0100を10間隔で調敎できたす。

音量は党ファむル共有で、ミュヌト状態で別ファむルを再生しおもミュヌトのたた再生され、最倧状態では音量最倧で再生されたす。
特に最倧音量に差があるファむルを䜿甚するような堎合は泚意しおください配信゜フトで音量に制限をかけれる堎合がありたす。

十字キヌボタンはパラメヌタヌ蚭定「directionals」で割り圓おるボタン番号を倉曎できるので、存圚しないボタン番号に割り圓おるこずで、十字キヌボタンにもファむルを割り圓おるこずができたす。
十字キヌボタンずは別に巊スティックがあるコントロヌラヌを䜿甚する堎合は割り圓おれるボタンを増やすこずができたす。

スキップ

既定倀十字キヌボタン・巊スティックの巊右

十字キヌボタン・巊スティックの巊右入力で動画・音声ファむルのスキップ前埌5秒できたすHTMLファむル内の動画・音声はHTMLファむル偎で凊理が必芁です。

耇数の動画・音声ファむルを再生しおいる堎合は、それらの再生䞭のファむルのみスキップされたす。
音声ファむルを再生しながら動画をスキップするず、音声ファむルも同じようにスキップしたす䞀時停止䞭の動画は衚瀺䞭でもスキップはできたせん。

十字キヌボタンはパラメヌタヌ蚭定「directionals」で割り圓おるボタン番号を倉曎できるので、存圚しないボタン番号に割り圓おるこずで、十字キヌボタンにもファむルを割り圓おるこずができたす。
十字キヌボタンずは別に巊スティックがあるコントロヌラヌを䜿甚する堎合は割り圓おれるボタンを増やすこずができたす。

controller

既定倀0

耇数のコントロヌラヌを繋いでいる堎合は、入力を衚瀺したいコントロヌラヌのIndexを指定しおください。
最倧4台たでのコントロヌラヌを認識できたす03。

デバッグモヌドで接続䞭のゲヌムコントロヌラヌのIndexを確認するこずができたす。

delay

既定倀8

ゲヌムコントロヌラヌの入力状態はルヌプ凊理でチェックしおおり、そのルヌプの最短の間隔をミリ秒で指定するこずができたす。
この仕様はGamepad APIによるものですボタンが抌された時にのみ凊理を行うこずができないため、ルヌプ凊理でゲヌムコントロヌラヌの情報を取埗しおいたす。

そのため再取埗するたでの空癜の時間delayの入力情報は取埗できたせんし、耇数同時抌しの堎合でもミリ秒単䜍のズレがあるず同時抌しずしお衚瀺されない堎合がありたす。
これは本゜フトりェアでの衚瀺であり、プレむ䞭のゲヌム内の凊理ずは関係ありたせん。

ルヌプ間隔が短すぎるずパ゜コンに過床の負荷が掛かったり、ブラりザの制玄などにより指定した間隔で動䜜しない堎合がありたす。
4ミリ秒未満を指定した堎合は、ブラりザの内郚凊理で匷制的に4ミリ秒を基準ずしお凊理が行われるこずが倚いようです。

Windowsであればタスクマネヌゞャヌの「プロセス」から配信゜フトのCPU䜿甚率などをチェックできたすゲヌム未起動・未配信状態で、本゜フトりェアの専甚゜ヌスのみ衚瀺しおチェックする方が負荷の切り分けがしやすいかず思いたす。
ゲヌムコントロヌラヌ入力䞭の方が倚くの凊理が行われるため、ボタン等を色々抌しながらチェックしおください。

excludes

既定倀はありたせん。

入力を無芖したいボタンの番号を「index.html?excludes=8,9,11」のように、半角カンマ区切りで指定したす。

これは本゜フトりェア甚の蚭定のため、プレむ䞭のゲヌムなどには圱響したせん。

converts

既定倀はありたせん。

ボタン番号を倉換したい堎合に「index.html?converts=10-4,10-1,11-12,11-14,11-15,9-0」のように、半角カンマ区切りで指定したす。
「x-y」ず「x」には倉換元の番号抌されたボタンを、「y」には倉換先の番号を指定し、それらを「-」半角ハむフンで繋ぎたす。
1぀のボタン番号に耇数のボタン番号を割圓おたい堎合は「14-2,14-3,14-4」のように指定し、倉換元のボタンも抌されたたたにしたい堎合は「14-2,14-3,14-4,14-14」のように倉換元ず倉換先のボタン番号のセットも指定しおください。

これは本゜フトりェア甚の蚭定のため、プレむ䞭のゲヌムなどには圱響したせん。

パラメヌタヌ「excludes」が優先されるため、「excludes」で指定したボタン番号を「converts」で倉換元に指定しおいしおも入力そのものが無芖されたす。
ただし「excludes」で指定したボタン番号を「converts」の倉換先に指定するこずは可胜です。

directionals

既定倀12-13-14-15

バヌゞョン「01.03.00」から远加したパラメヌタヌ蚭定になりたす。

  • 侊 = ボタン番号12
  • 例 = ボタン番号13
  • å·Š = ボタン番号14
  • 右 = ボタン番号15

十字キヌボタンの䞊䞋巊右のボタン番号を指定したす。

ボタン番号半角数字を半角ハむフン「-」で巊から順に「䞊」「䞋」「巊」「右」ず繋ぎたす。
耇数のボタン番号を指定する堎合は「index.html?directionals=10,12-11,13-14-15」のように、半角カンマ「,」で区切りたす。

パラメヌタヌ「excludes」が優先されるため、「excludes」で指定したボタン番号を指定しおも入力そのものが無芖されたす。

log

既定倀30

キヌログの最倧衚瀺件数を指定したす。
1100の敎数に察応しおいたすログ数が倚いほど負荷が高くなりたす。

入力内容によっおはキヌログのCSSキヌコンフィグにより非衚瀺になるログもあるため、指定件数より実際に衚瀺されるのは少ない可胜性がありたす。

items

既定倀40

キヌログのアむテム数を1以䞊の敎数で指定したす。
䞻にカスタムキヌコンフィグカスタムCSS甚で、キヌログに倚皮類のアむコンを衚瀺する堎合に蚭定するパラメヌタヌずしお甚意しおいたす。

キヌログの最倧件数行数はパラメヌタヌ蚭定「log」で行いたす。

deck

Deckモヌドでゲヌムコントロヌラヌのボタンに割り圓おるファむルを指定したす。
察応ファむルは次の通りです。

  • ビデオ*.mp4 *.webm
  • オヌディオ*.wav *.wave *.mp3 *.ogg *.aac *.flac
  • 画像*.png *.jpeg *.jpg *.gif *.bmp
  • Webペヌゞ*.html *.htm

䞀郚のファむルは正垞に衚瀺・再生できない堎合はありたす。
ブラりザに䟝存しおいるため、H.265/HEVCの動画ファむルなどはOSやブラりザなどが察応しないず正垞に衚瀺・再生できたせん。

ファむルの皮類は拡匵子「.mp4」や「.png」などでファむルの皮類を識別しおおり、いずれにも圓おはたらない堎合はWebペヌゞずしお扱いたす。
Webペヌゞはiframe仮想ブラりザフレヌムずしお衚瀺するのですが、Webサむト偎でフレヌム衚瀺を犁止しおいるような堎合は、Webペヌゞのアドレスを指定しおも正垞に衚瀺されたせん。

぀のボタン番号に耇数のファむルパスを指定した堎合、そのボタンで耇数のファむルの衚瀺・再生を切り替えたす。
耇数のボタン番号に同じファむルパスを指定した堎合、そのファむルを耇数のボタンで共有するため耇数衚瀺・再生にはなりたせん同じファむルをコピヌ・リネヌムする必芁がありたす。

ファむルパスは絶察パス・フルパスか盞察パスで、「{ボタン番号}-{ファむルパス}」のようにボタン番号ずファむルパスを半角ハむフン「-」で繋ぎたす。
耇数指定する堎合は半角カンマ「,」で区切りたす。

**ファむルパスはURL゚ンコヌドが2回必芁「{ボタン番号}-encodeURIComponent(encodeURIComponent(ファむルパス))」**です。
デバッグモヌドのパラメヌタヌ蚭定ゞェネレヌタヌが䟿利です。

特殊ボタン

次の特殊ボタンは凊理が優先他を無芖されたすが、パラメヌタヌ蚭定で倉曎可胜です。

  • リセット既定ボタン番号11
  • クリア既定ボタン番号0
  • 音量調敎既定ボタン番号12,13
  • スキップ既定ボタン番号14,15

ファむルパスの代わりにリセットボタンは「Reset」を、クリアボタンは「Clear」を指定しお倉曎したす䟋「{ボタン番号}-Reset」。

音量調敎ボタンずスキップボタンはパラメヌタヌ蚭定「directionals」で倉曎したす。
十字キヌボタンずは別に巊スティックがあるゲヌムコントロヌラヌであれば、「directionals=99-99-99-99」のように存圚しないボタン番号を蚭定するず、十字キヌボタンにもファむルを割り圓おるこずができたす。

サむコロHTMLファむル./deck/Dices/dices.html

方向入力で操䜜可胜なサむコロツヌルDeckモヌド甚HTMLファむルのサンプル。

十字キヌボタン・巊スティック・右スティックのいずれでも操䜜可胜ですが、十字キヌボタンず巊スティックだずマスタヌ音量や同時に衚瀺・再生䞭の動画・音声ファむルず干枉するため、右スティックでの操䜜を掚奚したす。
たたDeckモヌドではゲヌムコントロヌラヌの入力は共有のため、他のファむルの同時衚瀺䞭は操䜜が干枉する堎合がありたす。このファむルを衚瀺する前にクリアボタンを抌しお他のファむルを非衚瀺にしおおくこずで干枉を避けるこずができたす。

ボタンか入力欄がフォヌカス䞭の時に操䜜可胜で、フォヌカス䞭は瞁に黒い圱ができ背景がゆっくり赀く点滅したすサむコロ停止䞭のみボタンは点滅したせん。
暪入力でフォヌカスの移動ができたす。

ボタンStopかRollがフォヌカス䞭は、䞋入力でサむコロを止めたり振ったりできたす。
サむコロが止たるずサむコロの目の合蚈倀が衚瀺されたす。

面入力欄か個数入力欄がフォヌカス䞭は、䞊䞋の入力で倀を増枛できたす。
面は299、個数は19の間で蚭定できたす。

サむコロの目をカスタマむズ

「./deck/Dices/dices.html?labels=A,2,3,4,5,6,7,8,9,10,J,Q,K」のように、サむコロの目を指定するこずもできたす。
サむコロの目は2぀以䞊必芁で、半角カンマ「,」で区切りたす。

labelsパラメヌタヌが有効な堎合は面入力欄ず合蚈倀が非衚瀺になりたす。

styles

既定倀ProPad,KeyLog_ButtonSymbol_PS_DualShock

PlayStation4玔正パッドDualShock4での暙準的な䜿甚ケヌスの割合の倚さを想定し、stylesを指定するこずなく䜿甚できるように芏定倀を倉曎したした。
「ProPad」がコントロヌラヌスキン甚のスタむル名で、「KeyLog_ButtonSymbol_PS_DualShock」がキヌログ甚のスタむル名です。
バヌゞョン「01.03.00」未満の既定倀は「Front6Pad」でした。

コントロヌラヌスキンやキヌログ甚キヌコンフィグプリセットの指定ができたす。

キヌコンフィグプリセットを指定する際は、「index.html?styles=Front6Pad,B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VShift_B7HK」のように半角カンマ区切りでコントロヌラヌスキンも指定しおください。
コントロヌラヌスキンが未蚭定状態の堎合はコントロヌラヌが衚瀺されない堎合がありたす。

コントロヌラヌスキン

  • ProPad既定・DualShock4/DualSense颚
  • PopPadProPadず同じレむアりトのポップなデザむンのゲヌムパッド颚
  • Front6Pad6ボタンゲヌムパッド颚
  • ArcadeControllerアヌケヌドコントロヌラヌ颚
  • ButtonBoxHitBox・レバヌレスコントロヌラヌ颚
  • DualBoxHitBox Cross|Up颚

暙準でこれらのコントロヌラヌスキンを指定できたす。

オヌバヌレむ甚スタむル特殊

オヌバヌレむ甚スタむルは本゜フトりェアの応甚的な利甚法になりたす。
ゲヌムコントロヌラヌの入力によっおコントロヌラヌスキンの画像が切り替わる仕組みを応甚し、ゲヌムコントロヌラヌで配信画面に衚瀺する画像を切り替えれるようにするずいうものです。

ラむブ配信でゲヌムプレむ䞭などに配信゜フトを操䜜できない時や、咄嗟に配信画面を隠したいような時に、ゲヌムコントロヌラヌをリモコン代わりにボタンに割り圓おた画像を衚瀺できるようにする方法です。

パラメヌタヌ蚭定「controller」で操䜜に䜿うゲヌムコントロヌラヌは指定できるので、ゲヌムコントロヌラヌでPCゲヌムをプレむ䞭でも別のゲヌムコントロヌラヌを繋げお操䜜するこずができたす。

通垞のコントロヌラヌスキンやキヌログの衚瀺ずは䞀緒に䜿甚できないため、配信゜フトには新たにオヌバヌレむ甚ブラりザ゜ヌスずしお远加する必芁がありたす。

衚瀺するPNG画像はオヌバヌレむ甚フォルダに「Button_X.png」「X」はボタン番号に眮き換えるずいうファむル名で保存したす。
暙準でボタン番号019に察応しおいたす。
ただしOSや他の゜フトsteamクラむアントなどによっおは、特殊ボタンPSボタンなどを抌すずメニュヌが衚瀺されるこずがあるので泚意しおください。

サンプルずしお「Button_0.png」を甚意しおいたす。

画像の寞法・比率は配信画面に合わせるず自動的にフィットするので調敎しやすいず思いたす。 APNGずいうアニメヌションPNGであれば、画像をアニメヌションさせるこずも可胜です。

Overlays

このスタむルはゲヌムコントロヌラヌのボタンが抌された時に、そのボタン番号に察応する画像があった堎合にその画像を衚瀺し続けたす。
画像を割圓おおいないボタンを抌すかスティックを操䜜するこずで非衚瀺にできたす。

パラメヌタヌ蚭定「modes」を「KeyLog」にしお動䜜させる必芁があり、「index.html?modes=KeyLog&styles=Overlays」のように指定したす。

画像ファむルの保存先は「skins」フォルダ内の「Overlays」フォルダになりたす。

FlashOverlays

このスタむルはゲヌムコントロヌラヌのボタンが抌されおいる間だけ、そのボタン番号に察応する画像があった堎合にその画像を衚瀺したす。

パラメヌタヌ蚭定「modes」を「Controller」にしお動䜜させる必芁があり、「index.html?modes=Controller&styles=FlashOverlays」のように指定したす。

なお、ボタンを連打するず画像が高速点滅状態になり、画面を芋おいるリスナヌさんなどの健康を害する恐れがあり非垞に危険です。
過去にはテレビアニメのポケモンにおいお画面の点滅により救急搬送されるずいった事故も起きおいたす。
事故や事件に぀ながりかねないので泚意しおください。

画像ファむルの保存先は「skins」フォルダ内の「FlashOverlays」フォルダになりたす。

キヌログキヌディスプレむ

キヌコンフィグはCSSで蚭定可胜です。
配信゜フトOBSの堎合はブラりザ゜ヌスのプロパティの「カスタムCSS」に蚭定したす。

暙準でいく぀かキヌコンフィグプリセットを甚意しおおり、「index.html?styles=Front6Pad,KeyLog_StreetFighterV」のようにパラメヌタヌで指定するこずができたす。
「styles」パラメヌタヌを指定する時は、コントロヌラヌスキンの指定を忘れないようにしおくださいキヌログのみ指定するずコントロヌラヌが衚瀺されない堎合がありたす。

暙準で甚意しおいるキヌコンフィグのプリセットは次の通りです独自のキヌコンフィグの蚭定する際の参考にもなるかず思いたす。

コマンド衚瀺十字キヌ・方向キヌ・巊スティック

巊右䞡方の入力がある堎合は、巊右䞡矢印を衚瀺したす。
巊右䞡方入力に加え䞊䞋の入力が䞀方でもある堎合は、巊右の入力は無芖し、䞊矢印か䞋矢印を衚瀺したす。
䞊䞋のがどちらも入力されおいる堎合は、䞊矢印を衚瀺したす。

キヌログ暪方向衚瀺

通垞、キヌログは巊䞊を起点ずしお最新の入力が䞊に远加衚瀺され、他に同時に入力されおいるものが右に暪䞊びに衚瀺され、履歎は䞊から䞋に流れるように衚瀺されたす。

次のスタむル名をパラメヌタヌ蚭定「styles」に远加するこずで、キヌログが暪に流れるように衚瀺されたす。

  • KeyLog_Horizontally_UD
  • KeyLog_Horizontally_DU

「KeyLog_Horizontally_UD」はコマンド衚瀺が䞊に、他に同時に入力されおいるものが䞋に瞊䞊びに衚瀺され、履歎は巊から右に流れるように衚瀺されたす。

「KeyLog_Horizontally_DU」は「KeyLog_Horizontally_UD」の倩地を逆にした感じになり、コマンド衚瀺が䞋に、他に同時に入力されおいるものが䞊に瞊䞊びに衚瀺され、履歎は巊から右に流れるように衚瀺されたす。
「KeyLog_Horizontally_DU」を蚭定しおいる時は、キヌログが巊䞋を起点に、コントロヌラヌスキンが右䞊を起点にした衚瀺に倉わるので泚意しおください。

「index.html?styles=ProPad,KeyLog_ButtonSymbol_PS_DualShock,KeyLog_Horizontally_UD」のように指定したす。

KeyLog_ButtonSymbol_PS_DualShock

パラメヌタヌ蚭定「styles」で既定のキヌコンフィグで、PlayStation4玔正パッドDualShock4のボタン衚蚘に合わせおいたす。

  • ボタン0 = ×
  • ボタン1 = 〇
  • ボタン2 = □
  • ボタン3 = △
  • ボタン4 = L1
  • ボタン5 = R1
  • ボタン6 = L2
  • ボタン7 = R2
  • ボタン8 = SHARE
  • ボタン9 = OPTIONS
  • ボタン10 = L3巊スティック抌蟌
  • ボタン11 = R3巊スティック抌蟌
  • ボタン12 = 䞊十字ボタン
  • ボタン13 = 䞋十字ボタン
  • ボタン14 = 巊十字ボタン
  • ボタン15 = 右十字ボタン
  • ボタン16 = PSボタン
  • ボタン17 = タッチパッドタッチパッドボタン

非玔正DualShock4颚コントロヌラヌなどではボタン配眮番号が異なる可胜性があるため、正垞に衚瀺されない堎合がありたす。
たた日本囜内向けのDualShock4で蚭定・確認を行ったため、海倖仕様のDualShock4でも正垞に衚瀺されない可胜性もありたす。

KeyLog_StreetFighterV

察戊栌闘アクションゲヌム「ストリヌトファむタヌV」のプレむを想定したキヌコンフィグになっおいたす。
「index.html?styles=Front6Pad,KeyLog_StreetFighterV」のように指定したす。

  • ボタン0 = 匱キック
  • ボタン1 = 䞭キック
  • ボタン2 = 匱パンチ
  • ボタン3 = 䞭パンチ
  • ボタン4 = 匱䞭匷パンチ同時抌し
  • ボタン5 = 匷パンチ
  • ボタン6 = 匱䞭匷キック同時抌し
  • ボタン7 = 匷キック

アケコンなど栌闘ゲヌム向けのコントロヌラヌのボタン配眮番号向けのため、コントロヌラヌによっおは適切に衚瀺されない堎合がありたす。
PS4玔正パッドを䜿甚する堎合は「KeyLog_SFV_ProPad」が向いおいるず思われたす。

KeyLog_SFV_ProPad

「ストリヌトファむタヌV」向けのキヌコンフィグをPS4玔正パッド向けにカスタマむズしたものです。
「index.html?styles=ProPad,KeyLog_SFV_ProPad」のように指定したす。

  • ボタン0 = 匱キック
  • ボタン1 = 䞭キック
  • ボタン2 = 匱パンチ
  • ボタン3 = 䞭パンチ
  • ボタン4 = 匷パンチ
  • ボタン5 = 匷キック
  • ボタン6 = 匱䞭匷パンチ同時抌し
  • ボタン7 = 匱䞭匷キック同時抌し

パラメヌタヌ「styles」のみでカスタムキヌコンフィグを蚭定する

パラメヌタヌ蚭定「styles」のみカスタムCSS䞍芁でカスタムキヌコンフィグを蚭定するこずも可胜です。
ほずんどのゲヌムコントロヌラヌで蚭定可胜だず思いたすが、䞀郚䟋倖があるかもしれたせん。

ボタン番号毎に匱䞭匷のパンチ・キックを指定したスタむル名を半角カンマ「,」で繋げおstylesパラメヌタヌに蚭定する感じになりたす。
䜿甚するゲヌムコントロヌラヌのボタン番号はデバッグモヌドindex.html?modes=Debugで調べるこずができたす。

プリセットずしお匱䞭匷のアクションのそれぞれにボタン番号019たでスタむル名を甚意しおいたす。 スタむル名は「KeyLog_SFV_KC_アクション_ボタン番号」の曞匏で、次のようになっおいたす末尟の「X」を割り圓おるボタン番号に眮き換えおください。

  • 匱パンチ = KeyLog_SFV_KC_PL_X
  • 䞭パンチ = KeyLog_SFV_KC_PM_X
  • 匷パンチ = KeyLog_SFV_KC_PH_X
  • 匱キック = KeyLog_SFV_KC_KL_X
  • 䞭キック = KeyLog_SFV_KC_KM_X
  • 匷キック = KeyLog_SFV_KC_KH_X

䟋えば次のようにカスタムキヌコンフィグを蚭定するずしたす。

  • ボタン0 = KeyLog_SFV_KC_KL_0 = 匱キック
  • ボタン1 = KeyLog_SFV_KC_KM_1 = 䞭キック
  • ボタン2 = KeyLog_SFV_KC_PL_2 = 匱パンチ
  • ボタン3 = KeyLog_SFV_KC_PM_3 = 䞭パンチ
  • ボタン4 = KeyLog_SFV_KC_PL_4,KeyLog_SFV_KC_KL_4 = 匱パンチ・匱キック同時抌し投げ
  • ボタン5 = KeyLog_SFV_KC_PH_5 = 匷パンチ
  • ボタン6 = KeyLog_SFV_KC_PH_6,KeyLog_SFV_KC_KH_6 = 匷パンチ・匷キック同時抌しVトリガヌ
  • ボタン7 = KeyLog_SFV_KC_KH_7 = 匷キック

この堎合のキヌコンフィグ甚スタむル名は「KeyLog_SFV_KC_KL_0,KeyLog_SFV_KC_KM_1,KeyLog_SFV_KC_PL_2,KeyLog_SFV_KC_PM_3,KeyLog_SFV_KC_PL_4,KeyLog_SFV_KC_KL_4,KeyLog_SFV_KC_PH_5,KeyLog_SFV_KC_PH_6,KeyLog_SFV_KC_KH_6,KeyLog_SFV_KC_KH_7」になりたす。

パラメヌタヌ蚭定「styles」を指定する際は同時にコントロヌラヌスキンの指定が必芁になりたすので、「index.html?styles=DualBox,KeyLog_SFV_KC_KL_0,KeyLog_SFV_KC_KM_1,KeyLog_SFV_KC_PL_2,KeyLog_SFV_KC_PM_3,KeyLog_SFV_KC_PL_4,KeyLog_SFV_KC_KL_4,KeyLog_SFV_KC_PH_5,KeyLog_SFV_KC_PH_6,KeyLog_SFV_KC_KH_6,KeyLog_SFV_KC_KH_7」のように指定したす。

KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK

  • ボタン0 = 匱キック
  • ボタン1 = 䞭キック
  • ボタン2 = 匱パンチ
  • ボタン3 = 䞭パンチ
  • ボタン4 = 匱パンチ・匱キック同時抌し投げ
  • ボタン5 = 匷パンチ
  • ボタン6 = 匷パンチ・匷キック同時抌しVトリガヌ
  • ボタン7 = 匷キック

ストリヌトファむタヌVでR1ボタンに投げを、R2ボタンにVトリガヌを蚭定した堎合の暙準的なキヌコンフィグのプリセットになりたす。
䞀般的なアケコンなどのボタン配眮番号向けのため、PS4玔正パッドなどには向きたせん。

CSSキヌコンフィグの解説

パラメヌタヌ蚭定「styles」ではなく、カスタムCSSでカスタムキヌコンフィグを蚭定するような堎合の参考にしおください。
カスタムCSSであればアむコンや色、衚瀺順などより现かくカスタマむズ可胜ですし、別のゲヌムタむトル仕様のキヌログのスタむルにするこずも可胜です。

/* [KeyLog: Street Fighter V: KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK] Key Log: Button */
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul[class*="Button_"] > li:not(:nth-child(1))::after {
  /* コマンド入力矢印アむコン以倖の暙準蚭定されおいるパンチやキックのアむコンの蚭定をリセット */
  content: unset;
  color: unset;
  background-color: unset;
  transform: unset;
}
/* [KeyLog: Street Fighter V: KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK] Key Log: Button: Punch: Light 匱パンチ */
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_2 > li:nth-child(11)::after,
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_4 > li:nth-child(11)::after {
  content: "\1F44A";  /* パンチアむコンナニコヌド */
  background-color: #00ffff;  /* 青色 */
}
/* [KeyLog: Street Fighter V: KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK] Key Log: Button: Punch: Med 䞭パンチ */
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_3 > li:nth-child(13)::after {
  content: "\1F44A";  /* パンチアむコンナニコヌド */
  background-color: #ffff00;  /* 黄色 */
}
/* [KeyLog: Street Fighter V: KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK] Key Log: Button: Punch: Heavy 匷パンチ */
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_5 > li:nth-child(15)::after,
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_4 > li:nth-child(15)::after {
  content: "\1F44A";  /* パンチアむコンナニコヌド */
  background-color: #ff0000;  /* 赀色 */
}
/* [KeyLog: Street Fighter V: KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK] Key Log: Button: Kick: Light 匱キック */
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_0 > li:nth-child(21)::after,
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_6 > li:nth-child(21)::after {
  content: "\1F9B6";  /* キックアむコンナニコヌド */
  background-color: #00ffff;  /* 青色 */
  transform: rotate(60deg);  /* アむコンの傟き */
}
/* [KeyLog: Street Fighter V: KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK] Key Log: Button: Kick: Med 䞭キック */
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_1 > li:nth-child(23)::after {
  content: "\1F9B6";  /* キックアむコンナニコヌド */
  background-color: #ffff00;  /* 黄色 */
  transform: rotate(60deg);  /* アむコンの傟き */
}
/* [KeyLog: Street Fighter V: KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK] Key Log: Button: Kick: Heavy 匷キック */
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_7 > li:nth-child(25)::after,
#GameInputDisplay[data-styles~="KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK"] > #GIDKeyLog > ul.Button_Press_6 > li:nth-child(25)::after {
  content: "\1F9B6";  /* キックアむコンナニコヌド */
  background-color: #ff0000;  /* 赀色 */
  transform: rotate(60deg);  /* アむコンの傟き */
}

攻撃ボタンのキヌコンフィグのみの倉曎のため、攻撃ボタンの蚭定のみリセットし、各ボタン番号にアむコン・色などを蚭定し盎しおいたす。

アむコンを衚瀺するためのブランクのliタグはパラメヌタヌ蚭定「items」の蚭定分だけあり「li:nth-child(n)」で個別指定が可胜、1番目「li:nth-child(1)」以倖に匱䞭匷のパンチやキックを割り圓おたす。
ここでは次のように割り圓おおいたす。

  • li:nth-child(11) = 匱パンチ
  • li:nth-child(13) = 䞭パンチ
  • li:nth-child(15) = 匷パンチ
  • li:nth-child(21) = 匱キック
  • li:nth-child(23) = 䞭キック
  • li:nth-child(25) = 匷キック

2番以䞊でパラメヌタヌ蚭定「items」倀以内でお奜きな番号を割り圓おるこずができ、連番でも倧䞈倫です番号でキヌログの衚瀺順も管理しおいたす。
ただし異なるアクションに察しお同じ番号を指定するず蚭定が䞊曞きされおしたいたすし、同䞀のアクションに察しお耇数の番号を割り圓おるず同じアクションが同時に耇数衚瀺される堎合がありたす。

たた投げなどのアクションを远加し番号を割り圓おるこずもできたす。

アクションパンチやキックなどにボタン番号ずアむコン番号が玐付けば、埌はCSSの曞匏に応じおスタむルアむコンや色などを指定しおいくだけです。

ボタン番号は「Button_n」のように管理されおおり、ボタン番号が「3」の堎合は「Button_3」ずなりたす。
お䜿いのコントロヌラヌのボタン番号は、デバッグモヌドで確認するこずができたす。

カスタマむズしたキヌコンフィグは「B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VTrigger_B7HK」を別のスタむル名に曞き換えおカスタムCSSずしお蚭定しおおけば、必芁に応じおstylesパラメヌタヌでキヌコンフィグを切り替えるこずができたす。

スタむル名は半角英数字のみを掚奚したす党角文字や䞀郚の蚘号などは䞍具合の原因になりやすいため。
スタむル名はコントロヌラヌスキンでも䜿甚しおおり、スタむル名が被るず他のコントロヌラヌスキンやキヌコンフィグず干枉する恐れがあるため、スタむル名が他ず被らないように泚意しおください。

KeyLog_SFV_B0LK_B1MK_B2LP_B3MP_B4Throw_B5HP_B6VShift_B7HK

  • ボタン0 = 匱キック
  • ボタン1 = 䞭キック
  • ボタン2 = 匱パンチ
  • ボタン3 = 䞭パンチ
  • ボタン4 = 匱パンチ・匱キック同時抌し投げ
  • ボタン5 = 匷パンチ
  • ボタン6 = 匷パンチ・䞭キック同時抌しVシフト
  • ボタン7 = 匷キック

ストリヌトファむタヌVでR1ボタンに投げを、R2ボタンにVシフトを蚭定した堎合の暙準的なキヌコンフィグのプリセットになりたす。
䞀般的なアケコンなどのボタン配眮番号向けのため、PS4玔正パッドなどには向きたせん。

KeyLog_SFV_Lelou_Front6Pad

  • ボタン0 = 匱キック
  • ボタン1 = 䞭キック
  • ボタン2 = 匱パンチ
  • ボタン3 = 䞭パンチ
  • ボタン4 = 匷パンチ
  • ボタン5 = 匱䞭パンチ同時抌し
  • ボタン6 = 匷キック
  • ボタン7 = 匱䞭キック同時抌し
  • ボタン10 = 十字キヌ䞊入力

このキヌコンフィグは特殊で、本゜フトりェアの開発者がストリヌトファむタヌVをプレむする時のキヌコンフィグのプリセットになりたす6ボタンパッドを䜿甚。

「index.html?excludes=12&directionals=10-13-14-15&styles=Front6Pad,KeyLog_SFV_Lelou_Front6Pad」のように指定したす。
パラメヌタヌ蚭定䟋では䞊入力をパラメヌタヌ蚭定「excludes」で十字キヌ䞊を無効化し、パラメヌタヌ蚭定「directionals」で䞊入力がボタン10ボタン12から倉曎になるように指定しおいたす。

攻撃ボタンは右手でのみ操䜜し、EX技の匷床匱䞭・匱匷・䞭匷の入力にも察応できる配眮になっおいたす。
投げ・Vスキル・Vトリガヌ・Vシフトは耇数のボタンを同時抌ししお行いたす。

たた䞊入力は通垞の十字キヌの䞊ボタン番号「12」から、L1ボタンの䜍眮巊手人差し指に移動しおいたすボタン番号「10」。
これによりパッドでも䞋入力を維持したたた䞊入力行えるようになり、HitBoxなどず同じように匕き぀けサマヌ゜ルトキックなどが出しやすくなりたす。

ザンギ゚フのスクリュヌパむルドラむバヌのような十字キヌ1回転コマンドはやりづらいかもしれたせんがストVには簡易コマンドがあるので出来なくはない、ガむルに限らず他のキャラクタヌでもこのキヌコンフィグでプレむできるかず思いたす。
個人の感想ですが、䞊入力やりやすくなったのか空投げ察空がやりやすくなりたした。

ストリヌトファむタヌ6

察戊栌闘アクションゲヌム「ストリヌトファむタヌ6」のプレむを想定したキヌコンフィグに察応しおいたす。

䞊䞋同時入力や巊右同時入力はニュヌトラル䞊䞋もしくは巊右の入力はないものずしお凊理ずしお衚瀺したす。
たたホヌルド䞭長抌しに他の入力で倉化があった堎合は、ホヌルド䞭のものも含めその時点で入力されおいる方向・ボタンを新たに衚瀺したす。

PS4玔正パッド向けに操䜜タむプの「クラシック」ず「モダン」のプリセットのキヌログはありたすが、ボタン配眮をカスタマむズしおいたり䜿甚するコントロヌラヌの皮類によっおはプリセットのキヌログが䜿えない堎合がありたす。 このような堎合は、埌でご玹介する『パラメヌタヌ「styles」のみでスト6のカスタムキヌコンフィグを蚭定する』を参考にしおください。

ただしGameInputDisplayずストリヌトファむタヌ6ずではコントロヌラヌの入力受付凊理が異なるため、実際の入力内容ずキヌログの衚瀺が異なる堎合がありたす。
たたGameInputDisplayが動䜜する端末に接続されおいるコントロヌラヌの入力情報を元に動䜜するため、コン゜ヌル機や2PC環境ゲヌムをプレむするPCず配信゜フトが動䜜するPCが分かれおいるでは基本的に動䜜したせん。

なおカスタムCSSを䜜成するなど䞊玚者向けの情報になりたすが、パラメヌタヌ「styles」に「KeyLog_SF6」の文字列が含たれおいるずストリヌトファむタヌ6向けのキヌログになりたす。
ストリヌトファむタヌ6向けのキヌコンフィグは特殊なため、埓来のキヌログず「KeyLog_SF6」の文字列を含むキヌログを䜵甚する堎合は、正しく衚瀺されない恐れがありたす。

KeyLog_SF6_ProPad

PS4玔正パッドで操䜜タむプが「クラシック」の堎合のプリセットで、「index.html?styles=ProPad,KeyLog_SF6_ProPad」のように指定したす。

  • ボタン0× = 匱キック
  • ボタン1○ = 䞭キック
  • ボタン2□ = 匱パンチ
  • ボタン3△ = 䞭パンチ
  • ボタン4L1 = 匷パンチ・匷キック同時抌し
  • ボタン5R1 = 匷パンチ
  • ボタン6L2 = 䞭パンチ・䞭キック同時抌し
  • ボタン7R2 = 匷キック

KeyLog_SF6_Modern_ProPad

PS4玔正パッドで操䜜タむプが「モダン」の堎合のプリセットで、「index.html?styles=ProPad,KeyLog_SF6_Modern_ProPad」のように指定したす。

  • ボタン0× = 䞭攻撃
  • ボタン1○ = 匷攻撃
  • ボタン2□ = 匱攻撃
  • ボタン3△ = 必殺技
  • ボタン4L1 = ドラむブむンパクト
  • ボタン5R1 = ドラむブパリィ
  • ボタン6L2 = 投げ
  • ボタン7R2 = アシストボタン

パラメヌタヌ「styles」のみでスト6のカスタムキヌコンフィグを蚭定する

パラメヌタヌ蚭定「styles」のみカスタムCSS䞍芁でカスタムキヌコンフィグの蚭定が可胜です。
ほずんどのゲヌムコントロヌラヌで蚭定可胜だず思いたすが、䞀郚䟋倖があるかもしれたせん。

ボタン番号毎に匱䞭匷のパンチ・キックやモダン甚ボタンを指定したスタむル名を半角カンマ「,」で繋げおstylesパラメヌタヌに蚭定する感じになりたす。
䜿甚するゲヌムコントロヌラヌのボタン番号はデバッグモヌドindex.html?modes=Debugで調べるこずができたす。

プリセットずしお匱䞭匷のアクションなどのそれぞれにボタン番号019たでスタむル名を甚意しおいたす。 スタむル名は「KeyLog_SF6_KC_アクション_ボタン番号」の曞匏で、次のようになっおいたす末尟の「X」を割り圓おるボタン番号に眮き換えおください。

  • 匱パンチ = KeyLog_SF6_KC_PL_X
  • 䞭パンチ = KeyLog_SF6_KC_PM_X
  • 匷パンチ = KeyLog_SF6_KC_PH_X
  • 匱キック = KeyLog_SF6_KC_KL_X
  • 䞭キック = KeyLog_SF6_KC_KM_X
  • 匷キック = KeyLog_SF6_KC_KH_X
  • モダン匱攻撃 = KeyLog_SF6_KC_LA_X
  • モダン䞭攻撃 = KeyLog_SF6_KC_MA_X
  • モダン匷攻撃 = KeyLog_SF6_KC_HA_X
  • モダン必殺技 = KeyLog_SF6_KC_SP_X
  • モダンドラむブパリィ = KeyLog_SF6_KC_DP_X
  • モダンアシスト = KeyLog_SF6_KC_AS_X
  • モダンドラむブむンパクト = KeyLog_SF6_KC_DI_X

䟋えば次のようにカスタムキヌコンフィグを蚭定するずしたす。

  • ボタン0 = KeyLog_SF6_KC_KL_0 = 匱キック
  • ボタン1 = KeyLog_SF6_KC_KM_1 = 䞭キック
  • ボタン2 = KeyLog_SF6_KC_PL_2 = 匱パンチ
  • ボタン3 = KeyLog_SF6_KC_PM_3 = 䞭パンチ
  • ボタン4 = KeyLog_SF6_KC_PL_4,KeyLog_SF6_KC_KL_4 = 匱パンチ・匱キック同時抌し投げ
  • ボタン5 = KeyLog_SF6_KC_PH_5 = 匷パンチ
  • ボタン6 = KeyLog_SF6_KC_PH_6,KeyLog_SF6_KC_KH_6 = 匷パンチ・匷キック同時抌しドラむブむンパクト
  • ボタン7 = KeyLog_SF6_KC_KH_7 = 匷キック

この堎合のキヌコンフィグ甚スタむル名は「KeyLog_SF6_KC_KL_0,KeyLog_SF6_KC_KM_1,KeyLog_SF6_KC_PL_2,KeyLog_SF6_KC_PM_3,KeyLog_SF6_KC_PL_4,KeyLog_SF6_KC_KL_4,KeyLog_SF6_KC_PH_5,KeyLog_SF6_KC_PH_6,KeyLog_SF6_KC_KH_6,KeyLog_SF6_KC_KH_7」になりたす。

パラメヌタヌ蚭定「styles」を指定する際は同時にコントロヌラヌスキンの指定が必芁になりたすので、「index.html?styles=DualBox,KeyLog_SF6_KC_KL_0,KeyLog_SF6_KC_KM_1,KeyLog_SF6_KC_PL_2,KeyLog_SF6_KC_PM_3,KeyLog_SF6_KC_PL_4,KeyLog_SF6_KC_KL_4,KeyLog_SF6_KC_PH_5,KeyLog_SF6_KC_PH_6,KeyLog_SF6_KC_KH_6,KeyLog_SF6_KC_KH_7」のように指定したす。

なおコントロヌラヌが同じボタン配眮ボタン番号でカスタムキヌコンフィグが同じであれば、このパラメヌタヌ「styles」は他のプレむダヌでもそのたた流甚できるこずがありたす。
困っおいる人がいればお互いに助け合っおいただければず思いたす。

オリゞナルのコントロヌラヌスキンの䜜り方

プリセットのコントロヌラヌスキンはベヌスずなる「Base.png」の䞊に、差分の「Button_XX.png」や「StickYY_XX.png」の画像を衚瀺する構造になっおおり、ベヌス画像ず差分画像を眮き換えるだけでオリゞナルのコントロヌラヌスキンを自䜜できたす。
カスタムCSSでもオリゞナルスキンの䜜成はできたすが、CSSなどの知識も倚少必芁になりたす。

ベヌス画像ず差分画像の画像寞法が同じであれば、元のスキンず画像寞法が倉わっおも、自動的にサむズ調敎しお衚瀺されたす。
ベヌス画像ず差分画像の寞法が異なるずカスタムCSSなどで衚瀺䜍眮の調敎が必芁になる堎合がありたす。

䜜ろうず思うオリゞナルのコントロヌラヌスキンず十字キヌボタン・巊スティック・右スティックの数が近いプリセットのコントロヌラヌスキンの画像を差し替えるのが簡単です。

PS4玔正パッドやプロコンなどのように十字キヌボタンも巊スティックも右スティックもそれぞれ独立しおいるなら、「ProPad」スキンが最適だず思いたす。
アケコンなど十字キヌ入力がスティックのみの堎合は「ArcadeController」スキンが最適だず思いたす。

なお、スキンフォルダ内の「Active.png」は差分画像ファむルを䜜成する時に䜿甚した䜜業ファむルで、参考のために残しおいたす。
実際のスキンの衚瀺には䜿甚しおいないため削陀しおも倧䞈倫です。

ProPad

PS4玔正パッドDualShock4仕様の「ProPad」スキンがプリセットの䞭で最もボタンが倚く、十字キヌボタン以倖に巊スティックず右スティックが独立しおいたす。
L2ボタンずR2ボタンはトリガヌタむプずしお入力匷床・抌蟌み床合いに察応しおいたす䞍透明床で衚珟。

「skins/ProPad」フォルダにあり、次の画像で構成されおいたす。

-- Base.png
-- Button_0.png
-- Button_1.png
-- Button_2.png
-- Button_3.png
-- Button_4.png
-- Button_5.png
-- Button_6.png
-- Button_7.png
-- Button_8.png
-- Button_9.png
-- Button_10.png
-- Button_11.png
-- Button_12.png
-- Button_13.png
-- Button_14.png
-- Button_15.png
-- Button_16.png
-- Button_17.png
-- StickL_1.png
-- StickL_2.png
-- StickL_3.png
-- StickL_4.png
-- StickL_6.png
-- StickL_7.png
-- StickL_8.png
-- StickL_9.png
-- StickR_1.png
-- StickR_2.png
-- StickR_3.png
-- StickR_4.png
-- StickR_6.png
-- StickR_7.png
-- StickR_8.png
-- StickR_9.png
-- Controller_0.png
-- Controller_1.png
-- Controller_2.png
-- Controller_3.png

ベヌス画像「Base.png」は垞時衚瀺され、入力がない状態の画像になりたす。
他は差分ファむルずなっおおり、入力状態などによっお衚瀺されたす。

「Controller_{パラメヌタヌ蚭定『controller』の倀}.png」はコントロヌラヌIndexの識別甚差分画像で、Nintendo Switch向けコントロヌラヌ等で芋られるこずが倚いかず思いたす。

「Button_{ボタン番号}.png」は察応する番号のボタンが抌された時に衚瀺する差分画像です。

「StickL_{方向のテンキヌ衚蚘番号}.png」は巊スティックの差分画像で、「StickR_{方向のテンキヌ衚蚘番号}.png」は右スティックの差分画像です。
テンキヌ衚蚘番号ずはキヌボヌドの数字19のテンキヌ入力の䞊びを十字方向で衚珟したもので、未入力ニュヌトラルを「5」ずし、䞊䞋巊右斜めを残りの19で衚したす。
䞊は「8」で䞋が「2」、巊が「4」、右が「6」ずなり、巊䞋が「1」、右䞋が「3」、巊䞊が「7」、右䞊が「9」ずなりたす。

衚瀺しない画像はそれらの画像ファむルを削陀するか、䜕も衚瀺しない透過だけの画像ファむルに倉曎したす。

Deckモヌド応甚線

GameInputDisplayDeckモヌドからHTMLファむルiframeに送信されるメッセヌゞ

DeckモヌドでHTMLファむルを衚瀺するず、その埌のゲヌムコントロヌラヌの操䜜によっお入力情報や状態を送信したす。

postMessage({
  action: 'GameInputDisplay',  // {string} 倀固定
  message: {
    axes: { // 
      commands: ['Up','Down','Left','Right'],  // {string[]} 十字キヌボタン: 'Up', 'Down', 'Left', 'Right' ハヌド・蚭定によっおは党方向入力がありえる
      leftAxis: ['Up', 'Left'],  // {string[]} 巊スティック: 'Up', 'Down', 'Left', 'Right' 1方向もくしは2方向の倀
      rightAxis: ['Down', 'Right']  // {string[]} 右スティック: 'Up', 'Down', 'Left', 'Right' 1方向もくしは2方向の倀
    },
    state: 'Play',  // {string} iframeの状態 'Play' = 衚瀺䞭, 'Pause' = 衚瀺䞭のたた, 'Clear' = 非衚瀺
    type: 'HTML',  // {string} Deckアむテムの皮類: 'HTML' or 'Others'
    url: window.location.href,  // {string} GameInputDisplay芪フレヌムの「window.location.href」倀
    volume: 0.5  // {number} マスタヌ音量: 01
  }
}, "*");

ボタン番号資料

DualShock4PlayStation4玔正パッド

  • ボタン0 = ×
  • ボタン1 = 〇
  • ボタン2 = □
  • ボタン3 = △
  • ボタン4 = L1
  • ボタン5 = R1
  • ボタン6 = L2
  • ボタン7 = R2
  • ボタン8 = SHARE
  • ボタン9 = OPTIONS
  • ボタン10 = L3巊スティック抌蟌
  • ボタン11 = R3巊スティック抌蟌
  • ボタン12 = 䞊十字ボタン
  • ボタン13 = 䞋十字ボタン
  • ボタン14 = 巊十字ボタン
  • ボタン15 = 右十字ボタン
  • ボタン16 = PSボタン
  • ボタン17 = タッチパッドタッチパッドボタン

日本囜内向けのDualShockの情報のため、グロヌバル仕様ずは異なる可胜性がありたす䌝統的に×ボタンず〇ボタンの扱いが海倖ず日本では異なるこずがあるため。

技術情報

HTMLの構造

<body>
  <div id="GameInputDisplay" data-version="${version}" data-controller="${controller}" data-log="${log}" data-ecludes="${ecludes}" data-modes="${modes}" data-styles="${styles}">
        <!-- version: "xx.xx.xx" -->
        <!-- controller: GetParameter.controller -->
        <!-- log: GetParameter.log -->
        <!-- excludes: GetParameter.excludes -->
        <!-- modes: GetParameter.models.split(",").join(" ") -->
        <!-- styles: GetParameter.styles.split(",").join(" ") -->
    <ul id="GIDGameController" class="${classNames}">
      <li></li>  <!-- x100 -->
    </ul>
    <div id="GIDKeyLog">
      <ul class="${classNames}">  <!-- x${GetParameter.log} -->
        <li></li>  <!-- x${GetParameter.items} -->
      </ul>
    </div>
    <ul id="GIDDebug">
      <li class="settings">
        <dl>
          <dt class="controllerIndex">Controller Index</dt>
          <dd class="controllerIndex">${controller}</dd>  <!-- controller: GetParameter.controller -->
          <dt class="inputDelay">Input Delay</dt>
          <dd class="inputDelay">${delay}</dd>  <!-- delay: GetParameter.delay -->
          <dt class="logLimit">Log Limit</dt>
          <dd class="logLimit">${log}</dd>  <!-- log: GetParameter.log -->
          <dt class="modes">Modes</dt>
          <dd class="modes">${modes}</dd>  <!-- modes: GetParameter.modes.split(",").join(" ") -->
          <dt class="styles">Styles</dt>
          <dd class="styles">${styles}</dd>  <!-- styles: GetParameter.styles.split(",").join(" ") -->
          <dt class="directionals">Directional button indexes</dt>
          <dd class="directionals">
            <dl>
              <dt>Up</dt>
              <dd>${directionals.up}</dd>  <!-- directionals.up: GetParameter.directionals.split("-")[0].split(",").join(",") -->
              <dt>Down</dt>
              <dd>${directionals.down}</dd>  <!-- directionals.down: GetParameter.directionals.split("-")[1].split(",").join(",") -->
              <dt>Left</dt>
              <dd>${directionals.left}</dd>  <!-- directionals.left: GetParameter.directionals.split("-")[2].split(",").join(",") -->
              <dt>Right</dt>
              <dd>${directionals.right}</dd>  <!-- directionals.right: GetParameter.directionals.split("-")[3].split(",").join(",") -->
            </dl>
          </dd>
          <dt class="excludeButtons">Exclude Buttons</dt>
          <dd class="excludeButtons">${ecludes}</dd>  <!-- excludes: GetParameter.excludes -->
          <dt class="converts">Button Index Converts</dt>
          <dd class="converts">${converts}</dd>  <!-- converts: GetParameter.converts -->
          <dt class="items">Key log items</dt>
          <dd class="items">${items}</dd>  <!-- items: GetParameter.items -->
        </dl>
      </li>
      <li class="controllers">
        <dl>  <!-- x4 -->
          <dt class="id">ID</dt>
          <dd class="id">${gamepadApi.id}</dd>
          <dt class="index">Index</dt>
          <dd class="index">${gamepadApi.index}</dd>
          <dt class="connected">Connected</dt>
          <dd class="connected">${gamepadApi.connected}</dd>
          <dt class="mapping">Mapping</dt>
          <dd class="mapping">${gamepadApi.mapping}</dd>
          <dt class="timestamp">Timestamp</dt>
          <dd class="timestamp">${gamepadApi.timestamp}</dd>
          <dt class="axes">Axes</dt>
          <dd class="axes">
            <ol start="0">
              <li></li>  <!-- <li></li> * (${gamepadApi.axes.length}) -->
            </ol>
          </dd>
          <dt class="buttons">Buttons</dt>
          <dd class="buttons">
            <ol start="0">
              <li></li>  <!-- <li></li> * (${gamepadApi.buttons.length}) -->
            </ol>
          </dd>
        </dl>
      </li>
    </ul>
  </div>
</body>

Author

神戞ルルCode Lelou