คุณสามารถสร้างเกมที่อนุญาตให้ผู้เล่นสร้างตัวละครอวาตาร์ที่ใช้งานได้จริงจากภาพถ่ายและข้อความกระตุ้น
กระบวนการนี้ประกอบด้วยขั้นตอนดังนี้:
- ขอเซสชันการสร้างอวาตาร์
- ขอให้ผู้ใช้ถ่ายเซลฟี่และสร้างภาพพรีวิวขนาด 2 มิติของอวาตาร์
- สร้างตัวละครอวาตาร์เต็มรูปแบบโดยใช้ HumanoidDescription
ขอเซสชันการสร้างอวาตาร์
เพื่อเริ่มต้นการสร้างอวาตาร์จากภาพถ่าย ให้เรียกใช้ AvatarCreationService:RequestAvatarGenerationSessionAsync() จากเซิร์ฟเวอร์เพื่อขอเซสชันสำหรับผู้เล่น เซสชันจะมอบ Player ที่มีจำนวนพรีวิวอวาตาร์และการสร้างอวาตาร์ที่กำหนด
เนื่องจากอาจใช้เวลาสักครู่เพื่อให้เซสชันพร้อมใช้งาน AvatarCreationService:RequestAvatarGenerationSessionAsync() จะส่งคืน RBXScriptConnection และ waitTime เป็นวินาที waitTime สามารถใช้เพื่อให้ข้อมูลแก่ Player ว่าจะใช้เวลากี่นาทีในการเริ่มการสร้างของตน
เมื่อเซสชันพร้อมใช้ ฟังก์ชัน callback จะถูกเรียกโดยมี Dictionary ของข้อมูลเกี่ยวกับเซสชัน Dictionary ดังกล่าวรวมถึง:
- SessionId — ถูกส่งเป็นอาร์กิวเมนต์เมื่อเรียกใช้ AvatarCreationService:GenerateAvatar2DPreviewAsync() และ AvatarCreationService:GenerateAvatarAsync()
- Allowed2DGenerations — จำนวนการสร้างพรีวิวขนาด 2 มิติที่อนุญาตในเซสชัน
- Allowed3DGenerations — จำนวนการสร้างอวาตาร์ขนาด 3 มิติที่อนุญาตในเซสชัน
- SessionTime — เวลาสูงสุดสำหรับเซสชันเป็นวินาที
ขอให้ผู้ใช้ถ่ายเซลฟี่และสร้างพรีวิวขนาด 2 มิติ
หลังจากที่เซสชันเริ่มต้นแล้ว ขอให้ผู้ใช้ถ่ายเซลฟี่และรับ fileId string โดยการเรียกใช้เมธอด AvatarCreationService:PromptSelectAvatarGenerationImageAsync() บนเซิร์ฟเวอร์ fileId นี้จะถูกส่งไปยังเมธอด AvatarCreationService:GenerateAvatar2DPreviewAsync()
เพื่อสร้างภาพพรีวิวขนาด 2 มิติของอวาตาร์ ให้เรียกใช้เมธอดต่อไปนี้:
- AvatarCreationService:GenerateAvatar2DPreviewAsync() บนเซิร์ฟเวอร์
เมธอด AvatarCreationService:GenerateAvatar2DPreviewAsync() รับ SessionId, fileId และข้อความกระตุ้นแบบออปชันเป็นข้อมูลนำเข้าเพื่อสร้างพรีวิวอวาตาร์ขนาด 2 มิติ เมธอดนี้จะส่งคืน previewId
previewId นี้ควรส่งไปยังไคลเอนต์และสามารถใช้เพื่อเรียกดูพรีวิวเป็น EditableImage
หากผู้ใช้งานไม่พอใจกับพรีวิวที่สร้างขึ้น สามารถทำงานนี้ซ้ำได้
สร้างอวาตาร์ขนาด 3 มิติ
เมื่อผู้ใช้พอใจกับพรีวิวแล้ว คุณสามารถสร้างตัวละครอวาตาร์ขนาด 3 มิติเต็มรูปแบบ
ในการสร้างตัวละครอวาตาร์:
- เรียกใช้ AvatarCreationService:GenerateAvatarAsync() บนเซิร์ฟเวอร์ด้วย Dictionary ที่มี SessionId และ PreviewId
- การเรียกใช้เมธอดนี้จะส่งคืน string generationId
- ดึงข้อมูลอวาตาร์ที่สร้างขึ้นมาเป็น HumanoidDescription โดยใช้เมธอด AvatarCreationService:LoadGeneratedAvatarAsync() บนเซิร์ฟเวอร์เกมและไคลเอนต์
- คุณสามารถใช้เมธอด Players.CreateHumanoidModelFromDescription เพื่อสร้างโมเดลอวาตาร์จาก HumanoidDescription เพื่อนำเสนอให้กับ Player
ทรัพย์สินแบบ Mesh และ texture จะถูกจัดเตรียมเป็นวัตถุ EditableMesh และ EditableImage ตามลำดับ เพื่อให้สามารถแก้ไขอวาตาร์ที่สร้างขึ้นได้อย่างต่อเนื่อง การแก้ไขควรทำทั้งบนเซิร์ฟเวอร์เกมและสำเนาไคลเอนต์เพื่อรักษาความสอดคล้องสำหรับการเผยแพร่
เผยแพร่
หากผู้ใช้งานพอใจกับอวาตาร์ที่ได้ สามารถเผยแพร่ด้วยเมธอด AvatarCreationService:PromptCreateAvatarAsync()
สำหรับรายละเอียดเพิ่มเติมดูที่ การสร้างในเกม