Steam-syöte
Steam-syöte on yleiskäsite ohjelmiston, laitteiston ja apuohjelmien kokonaisuudelle, jonka avulla Steam kommunikoi pelien kanssa.
Steam-syötteen määrittäjä
Steam-syötteen määrittäjä (Steam Input Configurator eli SIC) on Steam-asiakasohjelman sisäinen toiminto, joka käsittelee tietoja pelaajan ja pelin/sovelluksen välillä. SIC vastaanottaa syötteen syötelaitteelta ja tulkitsee tiedot pelaajan asetusten mukaisesti, ennen kuin se välittää ne pelille.
SIC:tä voi käyttää pääasiassa kahdella tavalla:
legacy- tai
natiivitilassa.
Legacy-tila
Legacy-tila on yhteensopivuustila peleille, jotka eivät käytä Steam-syötteen ohjelmointirajapintaa. SIC toimii näissä tapauksissa syötteen määritystyökaluna, jota
kuka tahansa pelaaja voi käyttää
missä tahansa pelissä Steamissä.
Pelaaja voi yhdistää minkä tahansa fyysisen syötteen toiseen fyysiseen syötteeseen. Esimerkiksi A-painike voidaan simuloida vastaamaan näppäimistön Enter-painiketta tai vasemman analogiliipaisimen täysi veto voi vastata hiiren klikkausta. Tämä tila toimii
missä tahansa tuetussa oheislaitteessa, ei ainostaan Steam Controllerissa.
Legacy-tila sopii mainiosti peleihin, jotka eivät koskaan tukeneet ohjelmointirajapintaa, mutta siinä on rajoituksensa. Peli on saatettu ohjelmoida siten, ettei se oleta peliohjaimen ja hiiriohjauksen olevan koskaan yhtäaikaisesti aktiivisina. Tällaiset pelit kärsivät tunnetusti kaikenlaisista ongelmista, kun määritykset rikkovat tätä oletusta. Peli ei tiedä sinun käyttävän määrittäjää (se saa ainoastaan matalan tason laitteistosyötteitä, joita määrittäjä lähettää). Näytöllä näkyvät ohjainsyötteen merkit eivät luultavasti vastaa toisiaan.
Natiivitila
Natiivitilassa peli saa syötetiedot suoraan määrittäjältä toimintojen muodossa. Ideana on se, ettei peli tiedä, mitkä todelliset syötteet ajavat toimintoja. Se tietää vain, että toiminnot tapahtuvat. Kaikki määritys- ja hallinta-asetukset on siirretty Steam-syötteen määrittäjään. Peli saattaa kuitenkin pyytää erityisellä ohjelmointirajapintakutsulla tietoja siitä, mitkä fyysiset ohjaimet on yhdistetty mihinkin toimintoihin. Tämän tarkoituksena on vain näyttää oikeat merkit näytöllä.
Steam-syötteen ohjelmointirajapinta
Kehittäjät käyttävät Steam-syötteen ohjelmointirajapintaa kutsuakseen Steam-syötteen määrittäjää suoraan natiivitilassa. Ohjelmointirajapinta ei ole välttämätön legacy-tilan tukemiseksi.
Koko dokumentaatio löytyy täältä:
ISteamInput.
Ohjainmääritykset
Pelaajat voivat tehdä täysin mukautettuja syötemäärityksiä mille tahansa kokoelman pelille käyttämällä natiivi- tai legacy-tilaa tai niiden yhdistelmää. Näitä syötemäärityksiä kutsutaan "ohjainmäärityksiksi". Pelaaja voi luoda useita eri määrityksiä yhdelle ja samalle pelille sekä jakaa niitä muiden pelaajien kanssa verkossa.
Syötehierarkia
Fyysiset syötteet
Fyysinen syöte on minkä tahansa oheislaitteen fyysinen koneisto, jolla käyttäjä tuottaa syötedataa tietokoneelleensa. Näitä on sekä analogisessa että digitaalisessa muodossa. Esimerkkeihin kuuluu painikkeita, ohjainsauvoja, ristiohjaimia, olkapainikeita, liipaisimia, lisäpainikkeita, hattuja, pallohiiriä, gyroskooppeja jne.
Ennen kuin siirrytään teoreettisempiin käsitteisiin, kannattaa muistaa tämä: fyysiset syötteet ovat syöttölaitteen osasia, joita heilutetaan sormin (tai vaikka varpain).
Syötelähteet
Syötelähde on laitteessa oleva alue, jonka voi ajatella suuremmaksi modulaariseksi yksiköksi. Sen tilaa voi vaihtaa, jolloin se muuttaa tapaa, jolla se tuottaa dataa.
Juuri tämä on edellä mainittua teoriaa!
Suomeksi sanottuna: mitä eroa on ristiohjaimella ja ohjaimella, jossa on neljä kirjainpainiketta (A, B, X, Y) vinoneliön muotoisesti?
Kummassakin on neljä digitaalista "painiketta", mutta useimmat ristiohjaimet on suunniteltu rakenteellisesti siten, ettei ylös- ja alas-painikkeita tai vasenta ja oikeaa painiketta voi painaa yhtä aikaa. Kutakin etupainiketta voi puolestaan painaa muista riippumatta. Steam-syötteellä voit kuitenkin määrittää ristiohjaimen rajoitukset etupainikkeisiin.
Vaikka sekä ristiohjain että etupainikkeet on laadittu neljästä eri fyysisestä syötteestä, kannattaa ajatella ristiohjainta ja etupainikkeita omina yksikköinään, jotta kokonaisuuden käyttäytymistä voi muokata.
Tunnistettujen syötelähteiden lista:
- vasen kosketuslevy
- oikea kosketuslevy
- keskimmäinen kosketuslevy
- vasen ohjainsauva
- oikea ohjainsauva
- ABXY
- ristiohjain
- vasen liipaisin
- oikea liipaisin
- gyro
- lisäpainikkeet.
HUOMAA! Lisäpainikkeet-syötelähteeseen lasketaan kaikki fyysiset syötteet, jotka eivät kuulu muihin ryhmiin: paluu- ja aloituspainikkeet, vasen ja oikea olkapainike ja lapapainikkeet ohjaimen alla.
Lisätietoja:
Syötelähteiden tilat
Syötelähteillä on erilaisia tiloja, jotka muuttavat niiden toimintaa. Näitä kutsutaan syötelähdetiloiksi. Vaikka ne ovat hyödyllisiä digitaalisille syötteille, niitä käytetään useimmiten analogisissa ohjaimissa ja erityisesti kosketuslevyissä, jotka voidaan määrittää useilla eri tavoilla.
Tunnistettujen syötelähdetilojen lista:
- ristiohjain
- neljä painiketta
- absoluuttinen hiiriohjaus
- suhteellinen hiiriohjaus
- ohjainsauvan liike
- ohjainsauva hiirenä
- ohjainsauvakamera
- vieritysrulla
- liipaisin
- kosketusvalikko
- hiirenkaltainen sauvaohjain
- hiirialue
- ympyrävalikko
- lisäpainikkeet.
Lisätietoja:
Lyhyt kertaus:
Fyysiset syötteet:
Laitteen fyysiset osaset, joilla toimitaan. Esimerkiksi A-painike, ristiohjaimen ylös-painike jne.
Syötelähteet:
Yksittäisten fyysisten syötteiden muodostama suurempi modulaarinen yksikkö. Koko ristiohjain, etupainikkeet, koko vasemman ohjainsauvan kokoonpano jne.
Syötelähteiden tilat:
Syötelähteelle määritettävä tietty toimintatapa. Esimerkiksi "ohjelmoi etupainikkeet toimimaan ristiohjaimen tavoin" tai "ohjelmoi vasen ohjainsauva toimimaan etupainikkeiden tavoin" jne.
Toiminnot
Toiminnot ovat tapahtumia, joita Steam-syötteen ohjelmointirajapinta käyttää kaiken järjestelemiseksi. Pelisi ei saa natiivitilassa A-painike pohjassa -toimintoa. Se saa toiminnon Hyppää (tai jonkin muun). Täysin pelaajan päätettävissä on se, millainen syöte saa aikaan Hyppää-toiminnon.
Digitaaliset toiminnot
Digitaaliset toiminnot ovat toiminnoista yksinkertaisimpia ja yleisimpiä. Ne ovat vain joko käytössä tai poissa käytöstä, joten pelin tarvitsee vain kuunnella näiden toimintojen tilaa toistuvilla kyselyillä.
Analogiset toiminnot
Analogisilla toiminnoilla on yksi tai useampi tietoakseli. Niitä käytetään esimerkiksi hahmon sulavaan liikuttamiseen, autojen ohjaamiseen ja kameran hallintaan. Tavallisissa sauva- ja hiirikäyttöisissä toiminnoissa on yleensä X- ja Y-akselit, mutta yhden akselin analogiset toiminnot ovat myös mahdollisia. Ne on yleensä yhdistetty analogisiin liipaisimiin. Tässä tapauksessa toimintatiedoissa raportoidaan kaksi akselia, mutta Y-akseli on aina nollassa.
Toiminnon nimi
Kaikilla toiminnoilla on oltava yksilöivä nimi, kuten "hyppy" tai "isku". Nämä merkkijonojen arvot ovat lokalisoitavissa ja erillään pelaajan näkemästä tekstistä eli toiminto-otsikoista.
Toiminnon kutsumanimi
Stringien nimiin perustuva toimintojen kysely on kallista ja tehotonta. Kun pelisi käynnistää ohjelmointirajapinnan, sen on rekisteröitävä kaikki toiminnot nimen mukaan. Vastauksena se saa kokonaislukumuotoiset toiminnon nimet.
Toimintolähde
Toimintolähde ("action origin") on merkkijono, jonka avulla tunnistetaan, minkälainen syöte on liitetty mihinkin toimintaan pelaajan syötelaitteen määrityksessä.
Toimintosarjat
Toimintosarja on toisiinsa liittyvien toimintojen looginen ryhmittely. Vain yksi toimintosarja voi olla aktiivisena tietylle syötelaitteelle kerrallaan. Voit esimerkiksi luoda valikkotoimintosarjan, joka on aktiivinen valikkojaksojen aikana, ja vastaavasti toimintosarjat ajamiselle, kävelemiselle ja lentämiselle. Näitä voidaan tarvita esimerkiksi GTA V:n kaltaisissa peleissä, joissa on useita ajoneuvo- ja liikkumistiloja. Toimintosarjoja on sekä natiivi- että legacy-tilassa. Natiivitilassa kehittäjä määrittää ne erikseen, ja peli nimittää ohjelmointirajapintakutsujen avulla kunkin aktiivisen toimintosarjan. Legacy-tilassa pelaaja käynnistää toimintosarjojen muutokset itse manuaalisesti. Kummassakin tapauksissa toimintosarjoilla vapautetaan oheislaitteen tilaa. Jokaista pelissä mahdollisesti tapahtuvaa toimintoa ei tarvitse määrittää erikseen eikä jättää valmiustilaan odottamaan.
Toimintosarjakerrokset
Toimintosarjan kerrokset ovat valinnainen joukko toimintomäärityksiä, jotka voi lisätä olemassa olevien komentojen päälle. Toisin kuin toimintosarjat, kerrokset noutavat toimintonsa siitä toimintosarjasta, jossa ne ovat. Ne eivät korvaa jo aktiivisia ominaisuuksia vaan lisäävät pieniä muokkauksia. Nämä voivat olla asetusten muutoksia tai perustoimintosarjan määritysten lisäyksiä tai poistoja. Kerroksia voi lisätä useamman kuin yhden kerralla ja soveltaa perätysten.
Lisätietoja löytyy
Toimintosarjan kerrokset -dokumentaatiosta.
Fyysinen palaute
Jotkin oheislaitteet pystyvät antamaan visuaalisen palautteen lisäksi pelaajalle palautetta tärinänä ja valoina.
Haptiset ominaisuudet
Haptiikan tuottamat, hienot fyysiset aistimukset auttavat pelaajaa tunnistamaan, missä hänen kätensä ja sormensa ovat suurilla kosketuspinnoilla. Pelaaja voi tuntea esimerkiksi emuloidun pallohiiren virtuaaliset liikkeet. Steam Controller- ja Nintendo Switch -ohjaimet tukevat haptiikkaa. Muut laitteet ohittavat haptiikan ohjelmointirajapintakutsut.
Tärinä
Tärinä on perinteisempi fyysinen palaute, jossa laitteen sisäinen moottori värisee ja ravistelee laitetta. PlayStation 4 - ja Xbox-ohjaimet (ja monet XInput-yhteensopivat geneeriset laitteet) tukevat tärinätoimintoa. Steam Controllerissa ei ole täydellistä tärinätoimintoa, mutta se emuloi tärinän haptiikan avulla (ja vastaa siksi tärinän ohjelmointirajapintakutsuihin).
Ledivalot
Steam Controller- ja PlayStation 4 -ohjaimissa on sisäänrakennettu ledivalo. Steam Controllerin valo on aina valkoinen, mutta PlayStation 4 -ohjaimen ledin väri on täysin ohjelmoitavissa. Kumpikin laite vastaa valon värin vaihtamisen ohjelmointirajapintakutsuun, mutta Steam Controller näyttää valon yksivärisenä ja käyttää sitä vain säädelläkseen kirkkautta. PlayStation 4 -ohjain puolestaan säätelee sillä sekä väriä että kirkkautta. Muut laitteet ohittavat ledin ohjelmointirajapintakutsut.