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