𝗥𝗲𝗻𝗱𝗲𝗿𝗶𝗻𝗴 𝗩𝗥𝗠 𝗔𝘃𝗮𝘁𝗮𝗿𝘀 𝗶𝗻 𝗦𝘄𝗶𝗳𝘁𝗨𝗜
Scowld ใช้โมเดล VRM แบบเรียลไทม์พร้อมระบบ lip sync และการแสดงสีหน้า
ผมไม่ได้สร้าง 3D pipeline ขึ้นมาใหม่ตั้งแต่ต้น แต่เลือกใช้วิธีการที่แตกต่างออกไปแทน
แอปจะเรนเดอร์ three.js และ three-vrm ภายใน WKWebView และสื่อสารกับ Swift โดยใช้ WKScriptMessageHandler
การแยกหน้าที่การทำงานแบบนี้ให้ผลลัพธ์ที่ดี:
- ฝั่ง native จะจัดการเรื่อง AI, เสียง และการแปลงเสียงเป็นข้อความ (speech to text)
- ฝั่ง web จะจัดการเรื่องการเรนเดอร์ 3D และ lip sync
ผู้ใช้สามารถควบคุมทุกอย่างได้อย่างเต็มที่ ทั้งการเปลี่ยน avatar, ชื่อ, เสียง และบุคลิกภาพ
วิธีนี้ช่วยประหยัดเวลาและทำให้ logic ของ 3D มีความเสถียร
ตรวจสอบโค้ดได้ที่นี่: https://github.com/apoorvdarshan/scowld
โพสต์ฉบับเต็ม: https://dev.to/apoorvdarshan/rendering-a-customizable-vrm-avatar-in-a-swiftui-app-3ken