Tag Pintar
Selain medan input pengguna, tag meta juga boleh mengambil data dari API SignalRGB. Ini dikenali sebagai meter, berbeza dari kelas Meter yang dibincangkan dalam bahagian Petikan Kod. Terdapat empat jenis meter visual yang tersedia: linear, area, ocr_textmatch, dan ocr_numeric.
Selain itu, API menawarkan tujuh Sifat Kandungan: tahap audio, lebar audio, ketumpatan audio, frekuensi audio, hue zon, saturasi zon, dan kecerahan zon.
Semua meter berkongsi empat atribut teras:
| Atribut | Deskripsi |
|---|---|
| Meter | Mentakrifkan nama pemboleh ubah, boleh diakses melalui engine.vision.meter, di mana meter adalah nama yang Anda pilih. |
| Type | Menentukan jenis meter: linear, area, ocr_textmatch, atau ocr_numeric |
| X | Koordinat-X, dalam bentuk yang dinormalkan. Meter dilukis dari sudut kiri atasnya. |
| Y | Koordinat-Y, dalam bentuk yang dinormalkan. |
Koordinat yang Dinormalkan
Section titled “Koordinat yang Dinormalkan”Koordinat X dan Y, bersama tinggi dan lebar, mesti dimasukkan sebagai nilai yang dinormalkan. Sebagai contoh, jika saya bermain permainan pada resolusi 1920x1080 dan ingin meletakkan meter kecil kira-kira di tengah-tengah pada bahagian kiri skrin, saya menentukan asal (sudut kiri atas) meter adalah 50 piksel dari kiri dan 500 piksel ke bawah dari sudut kiri atas skrin.
Ini memberi saya:
x = 50, y = 500.
Untuk menukar ini kepada koordinat yang dinormalkan, saya bahagi x dengan lebar skrin (1920) dan y dengan tinggi skrin (1080), yang menghasilkan (dibundarkan dan dalam format yang betul):
x = “.026”, y = “.463”
Walaupun penukaran ini secara teori sepatutnya membolehkan meter berfungsi untuk mana-mana resolusi dengan nisbah aspek 16:9, banyak permainan mengalami perubahan UI kecil antara resolusi. Cara memformat meter untuk resolusi berbeza akan diliputi dalam bahagian penyelesaian masalah di bahagian bawah halaman ini.
Meter Linear
Section titled “Meter Linear”Meter linear mengembalikan peratusan piksel di sepanjang garisan mendatar yang sepadan dengan julat HSL yang ditentukan, dengan nilai dari 0.0 hingga 1.0. Sebagai contoh, meter linear yang meliputi lebar penuh bar kesihatan hijau akan mengembalikan nilai 0.5 pada setengah kesihatan.
<meta meter="myLinear" type="linear" x=".1729" y=".9740" width=".0390" h="0-360" s="0-10" l="90-100">Meter linear memerlukan empat atribut tambahan:
| Atribut | Deskripsi |
|---|---|
| Width | Nilai lebar, dinyatakan dalam bentuk yang dinormalkan |
| H | Komponen hue HSL, berkisar dari 0 hingga 360 |
| S | Komponen saturasi HSL, dari 0% hingga 100% |
| L | Komponen kecerahan HSL, dari 0% hingga 100% |
Meter Kawasan
Section titled “Meter Kawasan”Meter kawasan mengembalikan peratusan piksel dalam kawasan segiempat tepat yang berada dalam julat HSL yang ditentukan, dengan nilai dari 0.0 hingga 1.0. Jenis meter ini boleh digunakan untuk mengesan elemen UI yang lebih besar seperti kotak teks atau zon peta kecil.
<meta meter="myArea" type="area" x=".1729" y=".9740" width=".0390" height=".02" h="0-360" s="0-10" l="90-100">Meter kawasan memerlukan lima atribut tambahan:
| Atribut | Deskripsi |
|---|---|
| Width | Nilai lebar, dinyatakan dalam bentuk yang dinormalkan |
| Height | Nilai tinggi, dinyatakan dalam bentuk yang dinormalkan |
| H | Komponen hue HSL, berkisar dari 0 hingga 360 |
| S | Komponen saturasi HSL, dari 0% hingga 100% |
| L | Komponen kecerahan HSL, dari 0% hingga 100% |
Meter Padanan Teks OCR
Section titled “Meter Padanan Teks OCR”Meter ini menggunakan Pengecaman Aksara Optik (OCR) untuk mencari rentetan tertentu dalam kawasan segiempat tepat yang ditakrifkan pada skrin. Jika rentetan ditemui, ia mengembalikan 1; jika tidak ditemui, ia mengembalikan 0; dan jika tidak pasti, ia mengembalikan -1.
<meta meter="myTextOCR" type="ocr_textmatch" x=".1729" y=".9740" width=".0390" height=".02" string="my string" confidence="70">Meter padanan teks OCR memerlukan empat atribut tambahan:
| Atribut | Deskripsi |
|---|---|
| Width | Lebar, dalam bentuk yang dinormalkan. |
| Height | Tinggi, dalam bentuk yang dinormalkan. |
| String | Rentetan yang dicari. Sensitif terhadap huruf besar-kecil. |
| Confidence | Nilai dari 0-100 yang menentukan seberapa pasti meter harus tentang padanan. Lalai kepada 70 jika tidak ditentukan. |
Meter Numerik OCR
Section titled “Meter Numerik OCR”Meter ini menggunakan Pengecaman Aksara Optik (OCR) untuk mengesan nilai numerik dalam kawasan segiempat tepat pada skrin. Jika berjaya, ia mengembalikan nombor sebagai integer; jika gagal, ia mengembalikan -1.
<meta meter="myNumOCR" type="ocr_numeric" x=".1729" y=".9740" width=".0390" height=".02" confidence="70">Meter numerik OCR memerlukan tiga atribut tambahan:
| Atribut | Deskripsi |
|---|---|
| Width | Lebar, dalam bentuk yang dinormalkan. |
| Height | Tinggi, dalam bentuk yang dinormalkan. |
| Confidence | Nilai dari 0-100 yang menentukan seberapa pasti meter harus tentang padanan. Lalai kepada 70 jika tidak ditentukan. |
Sifat Kandungan
Section titled “Sifat Kandungan”Sifat kandungan adalah meter ketumpatan tinggi yang datang terus dari API.
Sifat Audio
Section titled “Sifat Audio”- engine.audio.level mengembalikan tahap audio semasa dalam desibel.
- engine.audio.width memberikan lebar stereo yang dirasai audio masuk, sebagai nisbah dari 0 hingga 1.
- engine.audio.density menyediakan ketumpatan frekuensi audio masuk, juga sebagai nisbah dari 0 hingga 1 — hingar putih menghasilkan nilai hampir 1.0, manakala nada tulen mengembalikan nilai lebih dekat kepada 0.
- engine.audio.freq mengembalikan susunan dengan 200 elemen, masing-masing mewakili tahap semasa jalur frekuensi tertentu.
Sifat Skrin
Section titled “Sifat Skrin”- engine.zone.hue mengembalikan susunan 560 elemen, masing-masing mewakili nilai hue titik pada skrin. Titik-titik ini diambil sampel dari grid 28 x 20.
- engine.zone.saturation mengembalikan susunan 560 elemen, masing-masing mewakili saturasi di titik skrin, diambil sampel dari grid 28 x 20 yang sama.
- engine.zone.lightness mengembalikan susunan 560 elemen, masing-masing menunjukkan nilai kecerahan di titik skrin, juga diambil sampel dari grid 28 x 20.
Penyelesaian Masalah
Section titled “Penyelesaian Masalah”Apabila menulis kod, masalah boleh berlaku. Berikut adalah beberapa isu biasa dengan meter dan cara membetulkannya:
-
“Meter atau kawalan pengguna saya tidak muncul dalam aplikasi”
- Cuba tutup dan mulakan semula aplikasi sepenuhnya. Jika masalah berterusan, meter mungkin diformat dengan salah. Semak semula ejaan dan tanda baca.
-
“Aplikasi atau LightScript terus ranap”
- Ini sering disebabkan oleh meter yang cacat. Atribut yang hilang atau tambahan boleh meruntuhkan aplikasi atau kod. Jika meter Anda betul, cari isu seperti gelung tak terhingga atau pemboleh ubah yang tidak diisytiharkan.
-
“Meter saya muncul tetapi tidak menjejaki kawasan skrin yang betul”
- Koordinat yang dinormalkan mungkin tidak betul. Ingat: x / lebar skrin, y / tinggi skrin. Jika matematik bukan kekuatan Anda, cuba tingkatkan lebar atau tinggi meter untuk membantu mengenal pasti kawasan skrin yang betul. Hanya ingat bahawa meter segiempat tepat akan kelihatan terhimpit secara menegak dalam pemeriksa.
-
“Meter saya berfungsi pada satu resolusi, tetapi tidak pada yang lain”
- Nasib baik, Anda tidak memerlukan berbilang meter untuk UI dinamik. Lihat di bawah untuk contoh meter linear yang disesuaikan untuk pelbagai resolusi.
<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>Seperti yang Anda dapat lihat, saya telah melaraskan meter secara khusus untuk resolusi 3840x2160 dan 2560x1080. Semua resolusi lain akan menggunakan meter asal.
-
“Meter saya diletakkan dengan betul tetapi tidak mencetuskan”
- Sebagai pembangun LightScript, ini akan menjadi isu yang biasa. Meter kawasan dan linear boleh menjadi cerewet pada kecerunan atau UI yang telus. Buka gelangsar HSL (seperti yang ini) dan perhatikan skrin Anda sehingga warna sepadan. Mulakan dengan julat yang lebar dalam hue, saturasi, dan kecerahan sehingga meter mencetuskan secara konsisten, kemudian sempitkan. Untuk meter OCR, pastikan keseluruhan perkataan atau nombor yang Anda sasarkan disertakan dalam meter, dengan kandungan tambahan yang sesedikit mungkin. Terdapat had pada saiz teks atau resolusi skrin di mana meter OCR akan berfungsi. Meletakkan meter OCR pada teks “VICTORY” besar yang memenuhi skrin 1920x1080? Tiada masalah. Tetapi cuba pada kotak sembang pada 1280x720 dan Anda akan melihat hasil yang terhad. Juga, kontras tinggi antara teks dan latar belakang adalah ideal untuk OCR — teks putih pada latar belakang putih tidak akan dibaca.
-
“Meter saya mencetuskan terlalu cepat atau sepanjang masa”
- Tahniah, meter Anda berfungsi, tetapi mencetuskan tiga kali sesaat mungkin bukan yang Anda mahu. UI yang telus, persekitaran berwarna-warni, letupan, dan bahkan cutscene boleh menyebabkan pengaktifan palsu atau cepat meter Anda. Ini akan sentiasa menjadi cabaran. Satu penyelesaian mudah adalah menggunakan kelas Meter, seperti yang digariskan dalam bahagian seterusnya, Petikan Kod.