Engine Class
AvatarCreationService
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
สรุป
วิธีการ
เหตุการณ์
AvatarAssetModerationCompleted(assetId: number,moderationStatus: Enum.ModerationStatus):RBXScriptSignal |
AvatarModerationCompleted(outfitId: number,moderationStatus: Enum.ModerationStatus):RBXScriptSignal |
เอกสารอ้างอิงเกี่ยวกับ API
วิธีการ
AutoSetupAvatarAsync
AvatarCreationService:AutoSetupAvatarAsync(
พารามิเตอร์
ส่งค่ากลับ
ตัวอย่างโค้ด
AutoSetupAvatarAsync
local AvatarCreationService = game:GetService("AvatarCreationService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local LoadAvatarEvent = ReplicatedStorage.LoadAvatarEvent
local generatedAvatars = {}
-- ต้องเรียกใช้บนเซิร์ฟเวอร์
local function setupAvatar(player: Player, avatarModel: Model, layeredShirtModel : Model)
local arguments = {
Body = avatarModel,
Accessories = {}
}
local accessoryArgument = {
AccessoryType = Enum.AccessoryType.Shirt,
IsLayered = true,
Instance = layeredShirtModel,
}
table.insert(arguments.Accessories, accessoryArgument)
local pcallSuccess, result = pcall(function()
local generationId = AvatarCreationService:AutoSetupAvatarAsync(
player,
arguments,
function(progressInfo)
print(`AutoSetup progress: {progressInfo.Progress * 100}%`)
end
)
-- โหลดและเก็บไว้บนเซิร์ฟเวอร์เพื่อใช้กับ PromptCreateAvatarAsync
local humanoidDescription = AvatarCreationService:LoadGeneratedAvatarAsync(generationId)
generatedAvatars[generationId] = humanoidDescription
-- ส่งสัญญาณไปยังไคลเอนต์เพื่อให้สามารถโหลดอวตารสำหรับการแสดงตัวอย่างในท้องถิ่น
LoadAvatarEvent:FireClient(player, generationId)
end)
if not pcallSuccess then
warn("การตั้งค่าอวตารล้มเหลว:", result)
end
endGenerateAvatar2DPreviewAsync
AvatarCreationService:GenerateAvatar2DPreviewAsync(
พารามิเตอร์
ส่งค่ากลับ
ตัวอย่างโค้ด
สร้างตัวอย่าง Avatar2 D แบบ Asynchronous
local AvatarCreationService = game:GetService("AvatarCreationService")
function generateAvatar2DPreview(sessionId, fileId, textPrompt)
local pcallSuccess, result = pcall(function()
local args = {}
args.SessionId = sessionId
args.FileId = fileId
args.TextPrompt = textPrompt
return AvatarCreationService:GenerateAvatar2DPreviewAsync(args)
end)
if not pcallSuccess then
warn("การสร้างตัวอย่าง 2D ล้มเหลว: ", result)
end
return result
endGenerateAvatarAsync
AvatarCreationService:GenerateAvatarAsync(
พารามิเตอร์
ส่งค่ากลับ
ตัวอย่างโค้ด
สร้างอวตารแบบอะซิงค์
local AvatarCreationService = game:GetService("AvatarCreationService")
function generateAvatar(sessionId, previewId)
local pcallSuccess, result = pcall(function()
local args = {}
args.SessionId = sessionId
args.PreviewId = previewId
return AvatarCreationService:GenerateAvatarAsync(args)
end)
if not pcallSuccess then
warn("การสร้างอวตารล้มเหลว: ", result)
end
return result
endGetBatchTokenDetailsAsync
LoadAvatar2DPreviewAsync
พารามิเตอร์
ส่งค่ากลับ
ตัวอย่างโค้ด
โหลด Avatar2 D Preview แบบ Asynchronous
local AvatarCreationService = game:GetService("AvatarCreationService")
function loadAvatar2DPreview(previewId)
local pcallSuccess, result = pcall(function()
return AvatarCreationService:LoadAvatar2DPreviewAsync(previewId)
end)
if not pcallSuccess then
warn("ไม่สามารถโหลดพรีวิวได้: ", result)
end
return result
endLoadGeneratedAvatarAsync
พารามิเตอร์
ส่งค่ากลับ
ตัวอย่างโค้ด
โหลดอวาตาร์ที่สร้างขึ้นแบบอะซิงโครนัส
local AvatarCreationService = game:GetService("AvatarCreationService")
local Players = game:GetService("Players")
-- สามารถเรียกใช้ได้ทั้งบนเซิร์ฟเวอร์หรือไคลเอนต์
local function loadAvatar(generationId: string): Model?
local pcallSuccess, result = pcall(function()
local humanoidDescription = AvatarCreationService:LoadGeneratedAvatarAsync(generationId)
local model = Players:CreateHumanoidModelFromDescriptionAsync(humanoidDescription, Enum.HumanoidRigType.R15)
return model
end)
if pcallSuccess then
return result
else
print("อวาตาร์ไม่สามารถโหลดได้:", result)
return nil
end
endPrepareAvatarForPreviewAsync
PromptCreateAvatarAssetAsync
AvatarCreationService:PromptCreateAvatarAssetAsync(
พารามิเตอร์
ส่งค่ากลับ
ตัวอย่างโค้ด
PromptCreateAvatarAssetAsync
local AvatarCreationService = game:GetService("AvatarCreationService")
local function publishAvatarAsset(tokenId: string, player: Player, assetInstance: Accessory, assetType: Enum.AvatarAssetType)
local pcallSuccess, result, resultMessage = pcall(function()
return AvatarCreationService:PromptCreateAvatarAssetAsync(tokenId, player, assetInstance, assetType)
end)
if pcallSuccess then
if result == Enum.PromptCreateAssetResult.Success then
print("อัปโหลดสำเร็จด้วย AssetId: ", resultMessage)
else
print("อัปโหลดไม่สำเร็จด้วยข้อความแสดงข้อผิดพลาด:", resultMessage)
end
else
print("ไม่สามารถสร้างสินทรัพย์อวตารได้.")
end
endPromptCreateAvatarAsync
AvatarCreationService:PromptCreateAvatarAsync(
พารามิเตอร์
ส่งค่ากลับ
ตัวอย่างโค้ด
PromptCreateAvatarAsync
local AvatarCreationService = game:GetService("AvatarCreationService")
export type BodyPartInfo = {
bodyPart: Enum.BodyPart,
instance: Instance, --โฟลเดอร์ที่มี MeshParts ที่สร้างขึ้น
}
export type BodyPartList = { BodyPartInfo }
local function publishAvatar(bodyPartInstances: BodyPartList, player: Player, tokenId: string)
local humanoidDescription = Instance.new("HumanoidDescription")
for _, bodyPartInfo in bodyPartInstances do
local bodyPartDescription = Instance.new("BodyPartDescription")
bodyPartDescription.Instance = bodyPartInfo.instance
bodyPartDescription.BodyPart = bodyPartInfo.bodyPart
bodyPartDescription.Parent = humanoidDescription
end
local pcallSuccess, result, resultMessage = pcall(function()
return AvatarCreationService:PromptCreateAvatarAsync(tokenId, player, humanoidDescription)
end)
if pcallSuccess then
if result == Enum.PromptCreateAvatarResult.Success then
print("อัปโหลดสำเร็จด้วย BundleId: ", resultMessage)
else
print("อัปโหลดไม่สำเร็จด้วยข้อความแสดงข้อผิดพลาด:", resultMessage)
end
else
print("การสร้างอวตารล้มเหลว.")
end
endPromptSelectAvatarGenerationImageAsync
RequestAvatarGenerationSessionAsync
ส่งค่ากลับ
ตัวอย่างโค้ด
ขอสร้างเซสชันการสร้างอวตารแบบอะซิงค์
local AvatarCreationService = game:GetService("AvatarCreationService")
local playerSessions = {}
local playerSessionRequests = {}
function requestAvatarGenerationSession(player)
local pcallSuccess, conn, waitTime = pcall(function()
return AvatarCreationService:RequestAvatarGenerationSessionAsync(player, function(sessionInfo)
playerSessions[player.UserID] = sessionInfo
playerSessionRequests[player.UserID] = nil
end)
end)
if not pcallSuccess then
warn("ไม่สามารถขอเซสชันการสร้างอวตารได้: ", conn)
end
playerSessionRequests[player.UserID] = conn
print("เวลารอสำหรับเซสชัน: ", tostring(waitTime))
end
function cancelAvatarGenerationSessionRequest(player)
if playerSessionRequests[player.UserID] ~= nil then
playerSessionRequests[player.UserID]:Disconnect()
end
endValidateUGCAccessoryAsync
AvatarCreationService:ValidateUGCAccessoryAsync(
พารามิเตอร์
ส่งค่ากลับ
ValidateUGCBodyPartAsync
AvatarCreationService:ValidateUGCBodyPartAsync(
พารามิเตอร์
ส่งค่ากลับ
ValidateUGCFullBodyAsync
AvatarCreationService:ValidateUGCFullBodyAsync(
พารามิเตอร์
ส่งค่ากลับ
เหตุการณ์
AvatarAssetModerationCompleted
AvatarCreationService.AvatarAssetModerationCompleted(
พารามิเตอร์
ตัวอย่างโค้ด
การตรวจสอบสินทรัพย์อวตาร์เสร็จสิ้น
local AvatarCreationService = game:GetService("AvatarCreationService")
local conn = AvatarCreationService.AvatarAssetModerationCompleted:Connect(function(assetId, moderationStatus)
print("สินทรัพย์, " .. assetId .. ", พร้อมกับสถานะการตรวจสอบ: " .. moderationStatus)
end)AvatarModerationCompleted
AvatarCreationService.AvatarModerationCompleted(
พารามิเตอร์