Skip to content

Smart tagovi

Pored polja za korisnički unos, meta-tagovi mogu takođe preuzimati podatke iz SignalRGB API-ja. Ovi se nazivaju merači i razlikuju se od klase Meter opisane u odeljku “Snippets”. Dostupna su četiri tipa vizuelnih merača: linear, area, ocr_textmatch i ocr_numeric.

Pored toga, API nudi sedam svojstava sadržaja: nivo zvuka, širina zvuka, gustina zvuka, frekvencija zvuka, nijansa zone, zasićenje zone i osvetljenost zone.

Svi merači imaju četiri zajednička osnovna atributa:

AtributOpis
MeterDefiniše naziv promenljive, dostupne putem engine.vision.meter, gde je meter izabrani naziv.
TypeNavodi tip merača: linear, area, ocr_textmatch ili ocr_numeric
XX-koordinata u normalizovanom obliku. Merač se crta od gornjeg levog ugla.
YY-koordinata u normalizovanom obliku.

X i Y koordinate, kao i visina i širina, moraju biti unete kao normalizovane vrednosti. Na primer, ako se igra u rezoluciji 1920x1080 i mali merač treba da bude postavljen otprilike u sredini levo na ekranu, ishodište (gornji levi ugao) merača nalazi se na 50 piksela od levog ruba i 500 piksela od gornjeg levog ugla ekrana.

To daje:

x = 50, y = 500.

Da biste ih pretvorili u normalizovane koordinate, x se deli sa širinom ekrana (1920), a y sa visinom ekrana (1080), što (zaokrugljeno i u ispravnom formatu) daje:

x = “.026”, y = “.463”

Iako bi ova konverzija teorijski trebalo da osigura da merač radi za svaku rezoluciju sa 16:9 odnosom stranica, mnoge igre imaju male promene korisničkog interfejsa između rezolucija. Kako formatirati merače za različite rezolucije obrađeno je u odeljku za rešavanje problema na kraju ove stranice.

Linearni merač vraća procenat piksela duž horizontalne linije koji odgovaraju određenom HSL opsegu, sa vrednošću od 0.0 do 1.0. Na primer, linearni merač koji pokriva celu širinu zelene trake zdravlja vratio bi vrednost 0.5 pri polovini zdravlja.

<meta meter="myLinear" type="linear" x=".1729" y=".9740" width=".0390" h="0-360" s="0-10" l="90-100">

Linearni merači zahtevaju četiri dodatna atributa:

AtributOpis
WidthVrednost širine u normalizovanom obliku
HHSL komponenta nijanse, od 0 do 360
SHSL komponenta zasićenja, od 0% do 100%
LHSL komponenta osvetljenosti, od 0% do 100%

Merač površine vraća procenat piksela unutar pravougaonog područja koji spadaju u određeni HSL opseg, sa vrednostima od 0.0 do 1.0. Ovaj tip merača može se koristiti za prepoznavanje većih elemenata korisničkog interfejsa poput tekstualnih polja ili područja minimape.

<meta meter="myArea" type="area" x=".1729" y=".9740" width=".0390" height=".02" h="0-360" s="0-10" l="90-100">

Merači površine zahtevaju pet dodatnih atributa:

AtributOpis
WidthVrednost širine u normalizovanom obliku
HeightVrednost visine u normalizovanom obliku
HHSL komponenta nijanse, od 0 do 360
SHSL komponenta zasićenja, od 0% do 100%
LHSL komponenta osvetljenosti, od 0% do 100%

Ovaj merač koristi optičko prepoznavanje znakova (OCR) za traženje određenog niza znakova unutar definisanog pravougaonog područja na ekranu. Ako se niz pronađe, vraća 1; ako se ne pronađe, vraća 0; a pri nesigurnosti vraća -1.

<meta meter="myTextOCR" type="ocr_textmatch" x=".1729" y=".9740" width=".0390" height=".02" string="my string" confidence="70">

OCR merači za prepoznavanje teksta zahtevaju četiri dodatna atributa:

AtributOpis
WidthŠirina u normalizovanom obliku.
HeightVisina u normalizovanom obliku.
StringNiz znakova koji se traži. Razlikuje velika i mala slova.
ConfidenceVrednost od 0–100 koja označava koliko siguran treba da bude merač pri podudaranju. Podrazumevana vrednost je 70 ako nije navedeno.

Ovaj merač koristi optičko prepoznavanje znakova (OCR) za prepoznavanje numeričkih vrednosti unutar pravougaonog područja na ekranu. Pri uspehu vraća broj kao celi broj; pri neuspehu vraća -1.

<meta meter="myNumOCR" type="ocr_numeric" x=".1729" y=".9740" width=".0390" height=".02" confidence="70">

OCR numerički merači zahtevaju tri dodatna atributa:

AtributOpis
WidthŠirina u normalizovanom obliku.
HeightVisina u normalizovanom obliku.
ConfidenceVrednost od 0–100 koja označava koliko siguran treba da bude merač pri podudaranju. Podrazumevana vrednost je 70 ako nije navedeno.

Svojstva sadržaja su merači sa višom gustinom podataka koji dolaze direktno iz API-ja.

  • engine.audio.level vraća trenutni nivo zvuka u decibelima.
  • engine.audio.width vraća percipiranu stereo širinu dolaznog zvuka kao odnos od 0 do 1.
  • engine.audio.density vraća gustinu frekvencija dolaznog zvuka kao odnos od 0 do 1 — beli šum generiše vrednosti bliske 1,0, dok čisti tonovi vraćaju vrednosti bliže 0.
  • engine.audio.freq vraća niz sa 200 elemenata, od kojih svaki predstavlja trenutni nivo određenog frekventnog pojasa.
  • engine.zone.hue vraća niz sa 560 elemenata, od kojih svaki predstavlja vrednost nijanse tačke na ekranu. Ove tačke se uzorkuju iz rešetke 28 x 20.
  • engine.zone.saturation vraća niz sa 560 elemenata, od kojih svaki predstavlja zasićenje na tački ekrana, uzorkovanoj iz iste rešetke 28 x 20.
  • engine.zone.lightness vraća niz sa 560 elemenata, od kojih svaki daje vrednost osvetljenosti na tački ekrana, takođe uzorkovane iz rešetke 28 x 20.

Tokom programiranja mogu se pojaviti problemi. U nastavku su navedeni neki uobičajeni problemi sa meračima i njihova rešenja:

  • “Moj merač ili kontrola korisničkog unosa se ne prikazuje u aplikaciji”

    • Pokušajte potpuno zatvoriti i ponovo pokrenuti aplikaciju. Ako problem ostane, merač je možda pogrešno formatiran. Proverite pravopis i interpunkciju.
  • “Aplikacija ili LightScript stalno pada”

    • Ovo je često uzrokovano neispravnim meračem. Nedostajući ili višak atributa mogu uzrokovati pad aplikacije ili koda. Ako su merači ispravni, tražite probleme kao što su beskonačne petlje ili nedeklarisane promenljive.
  • “Moj merač se prikazuje, ali ne prati ispravno područje ekrana”

    • Normalizovane koordinate mogu biti pogrešne. Napomena: x / širina ekrana, y / visina ekrana. Ako je matematika teška, povećajte širinu ili visinu merača kako biste identifikovali ispravno područje ekrana. Imajte na umu da pravougaoni merači izgledaju vertikalno stisnuto u inspektoru.
  • “Moj merač radi na jednoj rezoluciji, ali ne na ostalima”

    • Srećom, nije potrebno više merača za dinamički korisnički interfejs. Ispod je primer linearnog merača prilagođenog za više rezolucija.
<meta meter="health" tags="vlc,fortnite" x= ".05" y=".9" width=".189" h="70-140" s="40-100" l="40-100" type="linear">
<resolution size="3440x1440" x="0.1666" y="0.8993" width="0.1541"/>
<resolution size="2560x1080" x="0.1666" y="0.8993" width="0.1541"/>
<resolution size="1920x1080" x="0.0557" y="0.9083" width="0.199"/>
</meta>

Kao što se vidi, merač je posebno prilagođen za rezolucije 3840x2160 i 2560x1080. Sve ostale rezolucije koriste originalni merač kao podrazumevani.

  • “Moj merač je ispravno postavljen, ali se ne aktivira”

    • Kao programer LightScripta, ovaj problem će se često javljati. Merači površine i linearni merači mogu biti nepouzdani sa gradijentima ili transparentnim elementima korisničkog interfejsa. Otvorite HSL klizač (poput ovog) i posmatrajte ekran dok se boje ne podudaraju. Počnite sa širokim opsezima nijanse, zasićenja i osvetljenosti dok merač ne počne dosljedno da se aktivira, a zatim suzite opseg. Za OCR merače, uverite se da je cela reč ili broj unutar merača, sa što manje dodatnog sadržaja. Veličina teksta ili rezolucija ekrana na kojoj OCR merači rade je ograničena. Postaviti OCR merač na veliki tekst “VICTORY” na ekranu 1920x1080? Nema problema. Ali u prozoru za čet na 1280x720 rezultati su ograničeni. Pored toga, visok kontrast između teksta i pozadine je idealan za OCR — beli tekst na beloj pozadini se neće prepoznati.
  • “Moj merač se aktivira prečesto ili stalno”

    • Čestitamo, merač radi, ali trostruko aktiviranje u sekundi verovatno nije cilj. Transparentni elementi korisničkog interfejsa, šarena okruženja, eksplozije, pa čak i međuscene mogu uzrokovati lažna ili brza aktiviranja merača. Ovo će uvek biti izazov. Jednostavno rešenje je korišćenje klase Meter, kao što je opisano u sledećem odeljku Snippets.