คู่มือเริ่มต้นฉบับย่อสำหรับนักพัฒนาเกม
หากคุณเป็นนักพัฒนาเกมและต้องการวิธีง่าย ๆ ในการผสานรวมเอฟเฟกต์ SignalRGB ให้กับผู้ใช้ของคุณ ยินดีต้อนรับสู่คู่มือเริ่มต้นฉบับย่อ นักพัฒนาของเราเชี่ยวชาญในการทำให้เอฟเฟกต์ทำงานร่วมกับ UI ที่โดยปกติไม่ได้ออกแบบมาเพื่อจุดประสงค์ของเรา ผู้ใช้ชื่นชอบฟีเจอร์อย่างการไล่ระดับสี UI โปร่งใส UI สกิลที่ปรับแต่งได้ หรือองค์ประกอบ HUD ที่เด้งหรือสั่น ซึ่งล้วนเป็นความไม่สม่ำเสมอที่เราต้องคำนึงถึงในการเรียกใช้เอฟเฟกต์ ยิ่ง UI ซับซ้อนมากเท่าไร เราก็ยิ่งทำอะไรให้กับเกมและประสบการณ์ของผู้ใช้ได้น้อยลงเท่านั้น ด้วยการทำงานร่วมกันระหว่างคุณกับนักพัฒนาของเรา ปัญหาเหล่านี้สามารถหมดไปได้ และการผสานรวมกับเกมก็จะก้าวไปอีกขั้น
พื้นฐานการเรียกใช้เอฟเฟกต์
หัวข้อที่มีชื่อว่า “พื้นฐานการเรียกใช้เอฟเฟกต์”API ของ SignalRGB มีเครื่องมือที่โดดเด่นและทรงพลังให้นักพัฒนาใช้วิเคราะห์ข้อมูลภาพ พูดง่าย ๆ คือ เราสามารถจับข้อมูลสี RGB ที่แม่นยำจากพิกเซลใดก็ได้หรือกลุ่มพิกเซล แล้วใช้การเปลี่ยนแปลงของค่าที่เสถียรเพื่อเรียกใช้เอฟเฟกต์ ตัวอย่างเช่น แถบพลังชีวิตลดลง เมนูเปิดขึ้น หรือไอคอนสกิลสีซีดลง องค์ประกอบ UI ใดก็ตามที่สม่ำเสมอสามารถใช้เรียกใช้เอฟเฟกต์บนอุปกรณ์ต่อพ่วงของผู้ใช้ได้
วิธีนี้ถือเป็นการสื่อสารทางอ้อมและมาพร้อมกับความท้าทายหลายประการที่นักพัฒนาของเราต้องคำนึงถึงในการผสานรวมทุกครั้ง ส่วนต่อไปนี้จะสำรวจแนวคิดสำหรับการสื่อสารโดยตรง ซึ่งปัจจุบันยังเป็นเพียงทฤษฎี (นักพัฒนาเกม โปรดติดต่อเรา)
แนวคิดที่ 1 - การสื่อสารแบบไบนารี
หัวข้อที่มีชื่อว่า “แนวคิดที่ 1 - การสื่อสารแบบไบนารี”ทริกเกอร์ที่ง่ายที่สุดของเราจะตรวจสอบช่วงสีที่กำหนด และคืนค่า “ใช่” หากตรงกัน หรือ “ไม่ใช่” หากไม่ตรง ในแง่ของข้อมูล สิ่งนี้เรียกว่าบิต และกลุ่มของแปดบิตจะประกอบเป็นไบต์ ซึ่งแทนสถานะที่เป็นไปได้สูงสุด 256 สถานะ
ในทางปฏิบัติ คุณระบุพิกัดของพิกเซลคงที่บนหน้าจอ (มองเห็นได้ในทุกความละเอียด) พิกเซลเหล่านี้จะอยู่รวมกันหรือกระจายกันก็ได้ และเป็นสีใดก็ได้ ตราบใดที่ตำแหน่งของแต่ละพิกเซลไม่เปลี่ยนแปลงในเกม และสีที่ใช้เปิดใช้งานยังคงสม่ำเสมอ เมื่อสีของพิกเซลตรงกับสีที่ใช้เปิดใช้งาน จะถูกบันทึกเป็น “1” ในอาร์เรย์ หากเป็นสีอื่น จะถูกบันทึกเป็น “0” ในแต่ละเฟรม การผสานรวมจะคำนวณจำนวนเต็มที่ได้จากลำดับไบนารีนี้ และคงสถานะที่สอดคล้องกันตามที่คุณกำหนดไว้
ต่อไปนี้เป็นตัวอย่างแบบง่ายที่ใช้เพียงสามพิกเซล ซึ่งให้สถานะที่ไม่ซ้ำกันหกสถานะ องค์ประกอบ UI ในตัวอย่างนี้คือมุมของมินิแมปจากเกมยอดนิยมเกมหนึ่ง

และนี่คือสามพิกเซลที่เลือก:

เราได้เลือกสีเดิมเป็นสีที่ผ่านการตรวจสอบ ดังนั้นการจัดเรียงบิตนี้จึงเท่ากับ 111 หรือ “6” หากไม่มีพิกเซลใดผ่าน หรือ 000 จะเท่ากับ “0”

สิ่งแรกที่เราต้องกำหนดคือสถานะ “idle” ในเกม ซึ่งเพียงคงทุกอย่างที่เกิดขึ้นไว้ระหว่างที่รออินพุตเพิ่มเติม สถานะนี้จะเป็นสถานะ “0” และอาจแทนด้วยค่าพิกเซลดังต่อไปนี้:

เราตั้งค่าแต่ละพิกเซลเป็น rgb(0, 0, 0) ซึ่งไม่ผ่านการตรวจสอบ อย่างไรก็ตาม ความแตกต่างขนาดใหญ่แบบนี้อาจเป็นที่สังเกตของผู้ใช้ได้ ในตัวอย่างถัดไป เราจะทำให้แนบเนียนกว่านี้
สมมติว่าเรายืนยันแล้วว่าอยู่ในเกมและคงสถานะพื้นฐานไว้ ตัวละครของคุณใช้ความสามารถแรก และเราต้องการบันทึกการเปลี่ยนแปลงนี้เป็นเอฟเฟกต์ เอฟเฟกต์สำหรับ “ใช้ความสามารถที่ 1” ถูกกำหนดเป็นสถานะ “1” และจะเปิดใช้งานเมื่อเราสื่อสารสถานะ “1” ไปยังการผสานรวม ในการทำเช่นนี้ เราปรับสีพื้นฐานของพิกเซล 1 และ 2 (นับจากซ้าย) เล็กน้อยเพื่อสร้าง 001

อาจดูไม่ได้มากนัก แต่พิกเซล 1 ถูกลดความสว่างลงประมาณ 30% และพิกเซล 2 มีความอิ่มตัวของสีเพิ่มขึ้น 50% เนื่องจากระบบของเราตรวจจับการเปลี่ยนแปลงเหล่านี้ได้ง่าย สถานะจึงจะเปลี่ยนเป็น “1” ได้อย่างน่าเชื่อถือ และเอฟเฟกต์ความสามารถจะถูกเรียกใช้ ความสามารถที่มีระยะเวลากำหนดสามารถสิ้นสุดเองได้ แต่สมมติว่าความสามารถนี้เปิดใช้งานด้วยการกดปุ่มหนึ่งครั้งและสิ้นสุดด้วยการกดอีกครั้ง เพื่อคงเอฟเฟกต์ไว้อย่างไม่มีกำหนด สถานะ “1” จะเปิดใช้งาน และสถานะ “2” อาจสิ้นสุดเอฟเฟกต์ตามอินพุตเพิ่มเติมของผู้ใช้ เอฟเฟกต์บางอย่างมีลักษณะต่อเนื่องแบบแอนะล็อกมาก และยังคงต้องให้นักพัฒนาของเราจัดการเป็นรายกรณี แต่สำหรับส่วนที่เหลือ ระบบนี้มีแนวโน้มที่จะเชื่อถือได้ ข้อจำกัดหลักคือการมองเห็น “พิกเซล” ซึ่งต้องคงที่ตลอดสถานะการเล่นเกม และควรมีขนาดใหญ่กว่าความละเอียดของพิกเซลสถานะ “1”