Smart tags
Ngoài các trường nhập liệu của người dùng, các thẻ meta cũng có thể lấy dữ liệu từ SignalRGB API. Chúng được gọi là meter và khác với lớp Meter được mô tả trong phần “Snippets”. Có bốn loại meter hình ảnh có sẵn: linear, area, ocr_textmatch và ocr_numeric.
Ngoài ra, API cung cấp bảy thuộc tính nội dung: mức âm thanh, độ rộng âm thanh, mật độ âm thanh, tần số âm thanh, sắc độ vùng, độ bão hòa vùng và độ sáng vùng.
Meter
Phần tiêu đề “Meter”Tất cả các meter có bốn thuộc tính cơ bản chung:
| Thuộc tính | Mô tả |
|---|---|
| Meter | Xác định tên biến, có thể truy cập thông qua engine.vision.meter, trong đó meter là tên đã chọn. |
| Type | Chỉ định loại meter: linear, area, ocr_textmatch hoặc ocr_numeric |
| X | Tọa độ X ở dạng chuẩn hóa. Meter được vẽ từ góc trên bên trái. |
| Y | Tọa độ Y ở dạng chuẩn hóa. |
Tọa độ chuẩn hóa
Phần tiêu đề “Tọa độ chuẩn hóa”Tọa độ X và Y, cũng như chiều cao và chiều rộng, phải được nhập dưới dạng giá trị chuẩn hóa. Ví dụ: nếu trò chơi chạy ở độ phân giải 1920x1080 và một meter nhỏ cần được đặt ở khoảng giữa bên trái của màn hình, điểm gốc (góc trên bên trái) của meter nằm ở 50 pixel từ cạnh trái và 500 pixel từ góc trên bên trái của màn hình.
Điều đó cho:
x = 50, y = 500.
Để chuyển đổi chúng thành tọa độ chuẩn hóa, x được chia cho chiều rộng màn hình (1920), và y chia cho chiều cao màn hình (1080), cho ra (làm tròn và ở định dạng đúng):
x = “.026”, y = “.463”
Mặc dù về mặt lý thuyết, cách chuyển đổi này sẽ đảm bảo meter hoạt động cho mọi độ phân giải với tỷ lệ khung hình 16:9, nhiều trò chơi có sự thay đổi nhỏ trong giao diện người dùng giữa các độ phân giải. Cách định dạng meter cho các độ phân giải khác nhau được đề cập trong phần khắc phục sự cố ở cuối trang này.
Meter tuyến tính
Phần tiêu đề “Meter tuyến tính”Meter tuyến tính trả về tỷ lệ phần trăm pixel dọc theo một đường nằm ngang phù hợp với một phạm vi HSL nhất định, với giá trị từ 0.0 đến 1.0. Ví dụ: meter tuyến tính bao phủ toàn bộ chiều rộng của thanh sinh mạng màu xanh lá sẽ trả về giá trị 0.5 khi còn nửa sinh mạng.
<meta meter="myLinear" type="linear" x=".1729" y=".9740" width=".0390" h="0-360" s="0-10" l="90-100">Meter tuyến tính yêu cầu bốn thuộc tính bổ sung:
| Thuộc tính | Mô tả |
|---|---|
| Width | Giá trị chiều rộng ở dạng chuẩn hóa |
| H | Thành phần sắc độ HSL, từ 0 đến 360 |
| S | Thành phần độ bão hòa HSL, từ 0% đến 100% |
| L | Thành phần độ sáng HSL, từ 0% đến 100% |
Meter diện tích
Phần tiêu đề “Meter diện tích”Meter diện tích trả về tỷ lệ phần trăm pixel trong một vùng hình chữ nhật thuộc một phạm vi HSL nhất định, với giá trị từ 0.0 đến 1.0. Loại meter này có thể được sử dụng để nhận ra các phần tử giao diện người dùng lớn hơn như hộp văn bản hoặc vùng bản đồ nhỏ.
<meta meter="myArea" type="area" x=".1729" y=".9740" width=".0390" height=".02" h="0-360" s="0-10" l="90-100">Meter diện tích yêu cầu năm thuộc tính bổ sung:
| Thuộc tính | Mô tả |
|---|---|
| Width | Giá trị chiều rộng ở dạng chuẩn hóa |
| Height | Giá trị chiều cao ở dạng chuẩn hóa |
| H | Thành phần sắc độ HSL, từ 0 đến 360 |
| S | Thành phần độ bão hòa HSL, từ 0% đến 100% |
| L | Thành phần độ sáng HSL, từ 0% đến 100% |
Meter OCR nhận dạng văn bản
Phần tiêu đề “Meter OCR nhận dạng văn bản”Meter này sử dụng nhận dạng ký tự quang học (OCR) để tìm kiếm một chuỗi ký tự cụ thể trong một vùng hình chữ nhật được xác định trên màn hình. Nếu tìm thấy chuỗi, trả về 1; nếu không tìm thấy, trả về 0; và khi không chắc chắn, trả về -1.
<meta meter="myTextOCR" type="ocr_textmatch" x=".1729" y=".9740" width=".0390" height=".02" string="my string" confidence="70">Meter OCR nhận dạng văn bản yêu cầu bốn thuộc tính bổ sung:
| Thuộc tính | Mô tả |
|---|---|
| Width | Chiều rộng ở dạng chuẩn hóa. |
| Height | Chiều cao ở dạng chuẩn hóa. |
| String | Chuỗi ký tự cần tìm. Phân biệt chữ hoa chữ thường. |
| Confidence | Giá trị từ 0–100 cho biết meter cần chắc chắn đến mức nào khi khớp. Giá trị mặc định là 70 nếu không chỉ định. |
Meter OCR số
Phần tiêu đề “Meter OCR số”Meter này sử dụng nhận dạng ký tự quang học (OCR) để nhận dạng các giá trị số trong một vùng hình chữ nhật trên màn hình. Khi thành công trả về số dưới dạng số nguyên; khi thất bại trả về -1.
<meta meter="myNumOCR" type="ocr_numeric" x=".1729" y=".9740" width=".0390" height=".02" confidence="70">Meter OCR số yêu cầu ba thuộc tính bổ sung:
| Thuộc tính | Mô tả |
|---|---|
| Width | Chiều rộng ở dạng chuẩn hóa. |
| Height | Chiều cao ở dạng chuẩn hóa. |
| Confidence | Giá trị từ 0–100 cho biết meter cần chắc chắn đến mức nào khi khớp. Giá trị mặc định là 70 nếu không chỉ định. |
Thuộc tính nội dung
Phần tiêu đề “Thuộc tính nội dung”Thuộc tính nội dung là các meter với mật độ dữ liệu cao hơn đến trực tiếp từ API.
Thuộc tính âm thanh
Phần tiêu đề “Thuộc tính âm thanh”- engine.audio.level trả về mức âm thanh hiện tại theo decibel.
- engine.audio.width trả về độ rộng stereo cảm nhận của âm thanh đến dưới dạng tỷ lệ từ 0 đến 1.
- engine.audio.density trả về mật độ tần số của âm thanh đến dưới dạng tỷ lệ từ 0 đến 1 — nhiễu trắng tạo ra giá trị gần 1.0, trong khi các âm thuần trả về giá trị gần 0 hơn.
- engine.audio.freq trả về một mảng với 200 phần tử, mỗi phần tử đại diện cho mức hiện tại của một dải tần cụ thể.
Thuộc tính màn hình
Phần tiêu đề “Thuộc tính màn hình”- engine.zone.hue trả về một mảng với 560 phần tử, mỗi phần tử đại diện cho giá trị sắc độ của một điểm trên màn hình. Các điểm này được lấy mẫu từ lưới 28 x 20.
- engine.zone.saturation trả về một mảng với 560 phần tử, mỗi phần tử đại diện cho độ bão hòa tại một điểm màn hình, được lấy mẫu từ cùng lưới 28 x 20.
- engine.zone.lightness trả về một mảng với 560 phần tử, mỗi phần tử cho giá trị độ sáng tại một điểm màn hình, cũng được lấy mẫu từ lưới 28 x 20.
Khắc phục sự cố
Phần tiêu đề “Khắc phục sự cố”Trong quá trình lập trình có thể xuất hiện các vấn đề. Dưới đây là một số vấn đề phổ biến với meter và cách giải quyết:
-
“Meter hoặc điều khiển nhập liệu người dùng của tôi không hiển thị trong ứng dụng”
- Thử đóng hoàn toàn và khởi động lại ứng dụng. Nếu vấn đề vẫn còn, meter có thể được định dạng sai. Kiểm tra chính tả và dấu câu.
-
“Ứng dụng hoặc LightScript liên tục bị treo”
- Thường do meter bị lỗi. Thiếu hoặc thừa thuộc tính có thể gây ra sự cố ứng dụng hoặc code. Nếu các meter đúng, hãy tìm các vấn đề như vòng lặp vô hạn hoặc biến chưa được khai báo.
-
“Meter của tôi hiển thị, nhưng không theo dõi đúng vùng màn hình”
- Tọa độ chuẩn hóa có thể sai. Lưu ý: x / chiều rộng màn hình, y / chiều cao màn hình. Nếu toán học khó, hãy tăng chiều rộng hoặc chiều cao của meter để xác định vùng màn hình chính xác. Lưu ý rằng các meter hình chữ nhật trông bị nén theo chiều dọc trong thanh tra.
-
“Meter của tôi hoạt động ở một độ phân giải nhưng không ở các độ phân giải khác”
- May mắn thay, không cần nhiều meter cho giao diện người dùng động. Dưới đây là ví dụ về meter tuyến tính được tùy chỉnh cho nhiều độ phân giải.
<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>Như có thể thấy, meter được tùy chỉnh đặc biệt cho các độ phân giải 3840x2160 và 2560x1080. Tất cả các độ phân giải khác sử dụng meter gốc làm mặc định.
-
“Meter của tôi được đặt đúng vị trí, nhưng không kích hoạt”
- Là nhà phát triển LightScript, vấn đề này sẽ thường xuyên xảy ra. Meter diện tích và meter tuyến tính có thể không đáng tin cậy với gradient hoặc các phần tử giao diện người dùng trong suốt. Mở thanh trượt HSL (như thế này) và quan sát màn hình cho đến khi màu sắc khớp. Bắt đầu với các phạm vi sắc độ, độ bão hòa và độ sáng rộng cho đến khi meter bắt đầu kích hoạt nhất quán, sau đó thu hẹp phạm vi. Đối với meter OCR, hãy đảm bảo toàn bộ từ hoặc số nằm trong meter, với ít nội dung thừa nhất có thể. Kích thước văn bản hoặc độ phân giải màn hình mà meter OCR hoạt động bị hạn chế. Đặt meter OCR trên văn bản lớn “VICTORY” trên màn hình 1920x1080? Không vấn đề gì. Nhưng trong cửa sổ chat ở 1280x720 kết quả bị hạn chế. Ngoài ra, độ tương phản cao giữa văn bản và nền là lý tưởng cho OCR — văn bản trắng trên nền trắng sẽ không được nhận dạng.
-
“Meter của tôi kích hoạt quá thường xuyên hoặc liên tục”
- Chúc mừng, meter hoạt động, nhưng kích hoạt ba lần mỗi giây có lẽ không phải mục tiêu. Các phần tử giao diện người dùng trong suốt, môi trường nhiều màu sắc, vụ nổ, và thậm chí cảnh chuyển tiếp có thể gây ra các kích hoạt sai hoặc nhanh. Đây sẽ luôn là thách thức. Giải pháp đơn giản là sử dụng lớp Meter, như được mô tả trong phần Snippets tiếp theo.