กลับไป ข่าว AI Game
ข่าวเกม AI

Unity ML-Agents ฝึกตัวละครเกมด้วยรางวัลและบทลงโทษ

โดย GameSlash

ดูสองฉากตัวอย่าง Unity ML-Agents ฝึกทรงลูกบอลและผลักกล่อง พร้อมวิธีกำหนดรางวัลและข้อจำกัดที่คนทำเกมต้องเตรียม

Unity ML-Agents มีฉากตัวอย่างให้คนทำเกมศึกษาการฝึกพฤติกรรมด้วยคะแนนรางวัล เริ่มได้จากงานที่มองเห็นเป้าหมายชัดอย่างทรงลูกบอลไม่ให้ตก หรือผลักกล่องไปยังจุดหมาย แล้วสังเกตว่ากติกาให้คะแนนทำให้ตัวละครเรียนรู้พฤติกรรมแบบไหน

ฉาก 3DBall ของ Unity ML-Agents มีตัวละครกล่องสีน้ำเงินสิบสองตัวทรงลูกบอล
© Unity Technologies, Unity ML-Agents: ภาพฉากตัวอย่าง 3DBall จากคู่มือทางการ (Apache 2.0).

ฝึกทรงลูกบอล ก่อนออกแบบ NPC ที่ซับซ้อน

ในฉาก 3DBall ตัวละครเอียงแท่นเพื่อประคองลูกบอล คู่มือ Unity ให้คะแนน +0.1 ทุกก้าวการฝึกที่ลูกบอลยังอยู่บนแท่น และ −1 เมื่อลูกบอลตก ตัวอย่างนี้สอนการควบคุมค่าที่ปรับได้ต่อเนื่อง ต่างจากการเลือกคำสั่งเดินจากรายการตายตัว

ก่อนทำฉากของตนเอง ควรกำหนดว่าตัวละครรับรู้อะไรและควบคุมส่วนไหนได้ แล้วจึงออกแบบรางวัล ผู้ช่วยเขียนโค้ด AI อาจช่วยอธิบายหรือสร้างส่วนประกอบเหล่านี้ได้ แต่ผู้พัฒนายังต้องตรวจว่าพฤติกรรมที่ได้ตรงกับกติกาของเกมหรือไม่

ฉาก Push Block มีตัวละครกล่องสีน้ำเงิน กล่องสีขาว และพื้นที่เป้าหมายสีเขียว
© Unity Technologies, Unity ML-Agents: ภาพฉากตัวอย่าง Push Block จากคู่มือทางการ (Apache 2.0).

ให้รางวัลเมื่อทำสำเร็จ แล้วดูว่าตัวละครเรียนรู้อะไร

Push Block ให้ +1 เมื่อผลักกล่องถึงเป้าหมาย และหัก −0.0025 ทุกก้าวการฝึก ต้นทุนเวลาช่วยกระตุ้นให้ทำงานสำเร็จแทนการเดินวน ตัวอย่างนี้ทำให้เห็นว่ากติกาให้คะแนนเป็นส่วนหนึ่งของการออกแบบพฤติกรรม

ฉากเหล่านี้เป็นตัวอย่างฝึก ไม่ใช่ตัวละครสำเร็จรูปที่ใส่ได้กับทุกเกม ลองเริ่มจากสนามเล็ก สังเกตครั้งที่ทำพลาด และเปลี่ยนเงื่อนไขทีละอย่าง คะแนนการฝึกที่สูงขึ้นไม่ได้แปลว่าตัวละครทำตามสิ่งที่ผู้ออกแบบตั้งใจเสมอไป

ต้องเตรียมอะไรบ้าง

ขั้นตอนใช้งานต้องมี Unity แพ็กเกจ ML-Agents และเครื่องมือฝึกด้วย Python การฝึกและทดสอบยังเป็นงานแยกจากการให้ AI เขียนโค้ด บทความนี้อธิบายฉากตัวอย่างที่มีอยู่แล้ว GameSlash ไม่ได้ฝึกโมเดลเหล่านี้เอง

อ่านคู่มือตัวอย่างของ Unity หรือดู Unity ML-Agents ในหมวด Tools ของ GameSlash

ดูแหล่งที่มา