Sebagian besar permainan memungkinkan pemain menggunakan avatar Roblox mereka sendiri, meskipun beberapa menerapkan sistem kustomisasi dalam permainan seperti template UGC Homestore. Permainan lain melakukan modifikasi terbatas pada avatar pemain seperti helm, sayap, atau aksesori yang sesuai dengan genre.
Untuk membuat permainan yang unik yang mengubah penampilan pengguna Anda, Anda dapat menyesuaikan properti karakter default melalui pengaturan avatar atau modifikasi penampilan secara manual.
Pengaturan avatar global
File ⟩ Pengaturan Avatar di Studio memungkinkan Anda dengan cepat mengatur beberapa properti karakter pemain global dalam permainan Anda. Pengaturan ini berlaku secara global untuk semua model karakter pemain yang bergabung dengan permainan Anda. Untuk memodifikasi karakter tertentu, seperti model karakter non-pemain, lihat modifikasi penampilan secara manual.
Di jendela ini, Anda dapat mengatur berbagai preset untuk pakaian, aksesori, bagian tubuh, perilaku tabrakan, animasi, dan lainnya. Saat mengedit pengaturan ini, pratinjau dari pengaturan yang diterapkan ditampilkan di workspace.
Untuk informasi lebih lanjut, lihat Pengaturan Avatar.
Modifikasi penampilan secara manual
Model karakter berisi objek Humanoid yang memberikan karakteristik khusus pada model, seperti berjalan, melompat, mengenakan item, dan berinteraksi dengan lingkungan.
Anda dapat memodifikasi Humanoid secara programatis dengan memperbarui HumanoidDescription. Ini termasuk model karakter pemain atau model karakter non-pemain dalam permainan Anda.
Anda dapat menyesuaikan properti karakter berikut dalam permainan Anda menggunakan HumanoidDescription:
| Properti karakter | Deskripsi |
|---|---|
| Skala | Nilai angka untuk sifat fisik tinggi, lebar, kepala, tipe tubuh dan proporsi. Ini tidak mempengaruhi tipe tubuh R6. |
| Aksesori | ID aset dari aksesori yang dilengkapi oleh karakter. |
| Pakaian Klasik | ID aset dari Shirt, Pants, dan tekstur gambar ShirtGraphic yang dapat Anda terapkan pada karakter. |
| Bagian Tubuh | ID aset dari bagian Wajah, Kepala, Torso, Lengan Kanan, Lengan Kiri, Kaki Kanan dan Kaki Kiri dari karakter. |
| Warna Tubuh | BodyColors dari bagian individu karakter. |
| Animasi | ID aset dari Animasi yang dapat Anda gunakan pada karakter. |
Sesuaikan karakter dengan HumanoidDescription menggunakan langkah-langkah berikut:
- Buat deskripsi dari karakter pengguna, ID Outfit tertentu, atau dari ID Pengguna tertentu.
- Modifikasi deskripsi untuk menyesuaikan properti yang ingin Anda terapkan pada karakter Humanoid.
- Terapkan deskripsi pada karakter tunggal, semua karakter pemain, atau bahkan pada semua karakter yang muncul.
Buat HumanoidDescription
Anda dapat membuat instance baru HumanoidDescription langsung di dalam hierarki Explorer atau dalam Script dengan kode berikut:
local humanoidDescription = Instance.new("HumanoidDescription")Dalam kebanyakan kasus, Anda harus menggunakan HumanoidDescription yang sudah ada daripada HumanoidDescription baru default dengan merujuk pada karakter pemain yang sudah ada, outfit avatar, atau ID pengguna.
Dari karakter pemain
Gunakan contoh kode berikut untuk membuat HumanoidDescription baru berdasarkan properti karakter pemain saat ini:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
local humanoidDescription = Instance.new("HumanoidDescription")
if humanoid then
humanoidDescription = humanoid:GetAppliedDescription()
endDari outfit yang ada
Gunakan kode contoh berikut untuk membuat HumanoidDescription dari ID outfit menggunakan Players.GetHumanoidDescriptionFromOutfitID:
local Players = game:GetService("Players")
local outfitId = 480059254
local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)Dari pengguna tertentu
Gunakan kode contoh berikut untuk membuat HumanoidDescription dari ID pengguna menggunakan Players:GetHumanoidDescriptionFromUserId():
local Players = game:GetService("Players")
local userId = 491243243
local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)Modifikasi HumanoidDescription
Untuk menyesuaikan properti HumanoidDescription, atur langsung pada HumanoidDescription atau gunakan metode tertentu sebelum menerapkan HumanoidDescription ke karakter.
Contoh kode berikut memberikan contoh pengaturan berbagai jenis properti HumanoidDescription:
local humanoidDescription = Instance.new("HumanoidDescription")
humanoidDescription.HatAccessory = "2551510151,2535600138"
humanoidDescription.BodyTypeScale = 0.1
humanoidDescription.ClimbAnimation = 619521311
humanoidDescription.Face = 86487700
humanoidDescription.GraphicTShirt = 1711661
humanoidDescription.HeadColor = Color3.new(0, 1, 0)Atur beberapa aksesori
Untuk perubahan aksesori berlapis atau massal, Anda dapat menggunakan HumanoidDescription:SetAccessories() untuk melakukan pembaruan terkait aksesori. Contoh kode berikut menambahkan sweater berlapis dan jaket dalam urutan itu ke HumanoidDescription:
local humanoidDescription = Instance.new("HumanoidDescription")
local accessoryTable = {
{
Order = 1,
AssetId = 6984769289,
AccessoryType = Enum.AccessoryType.Sweater
},
{
Order = 2,
AssetId = 6984767443,
AccessoryType = Enum.AccessoryType.Jacket
}
}
humanoidDescription:SetAccessories(accessoryTable, false)Terapkan HumanoidDescription
Terapkan HumanoidDescription ke karakter Humanoid tertentu dalam permainan Anda dengan Humanoid:ApplyDescription() atau Humanoid.LoadCharacterWithHumanoidDescription.
Pada karakter tunggal
ApplyDescription() dapat menargetkan Humanoid mana pun. Gunakan kode berikut untuk menambahkan sepasang kacamata hitam baru dan torso baru ke karakter pemain:
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local descriptionClone = humanoid:GetAppliedDescription()
descriptionClone.Torso = 86500008
-- Beberapa aset aksesori wajah diizinkan dalam string yang dipisahkan koma
descriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"
-- Terapkan "descriptionClone" yang dimodifikasi ke humanoid
humanoid:ApplyDescription(descriptionClone)
endPada semua karakter pemain
Gunakan kode contoh berikut untuk menerapkan HumanoidDescription ke semua pemain saat ini dalam permainan:
local Players = game:GetService("Players")
for _, player in Players:GetPlayers() do
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- Buat HumanoidDescription
local humanoidDescription = Instance.new("HumanoidDescription")
humanoidDescription.HatAccessory = "2551510151,2535600138"
humanoidDescription.BodyTypeScale = 0.1
humanoidDescription.ClimbAnimation = 619521311
humanoidDescription.Face = 86487700
humanoidDescription.GraphicTShirt = 1711661
humanoidDescription.HeadColor = Color3.new(0, 1, 0)
humanoid:ApplyDescription(humanoidDescription)
end
endPada semua karakter yang muncul
Gunakan kode contoh berikut untuk mengatur HumanoidDescription tertentu untuk semua karakter pemain yang muncul:
local Players = game:GetService("Players")
-- Hentikan pemunculan otomatis sehingga dapat dilakukan dalam callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Buat HumanoidDescription
local humanoidDescription = Instance.new("HumanoidDescription")
humanoidDescription.HatAccessory = "2551510151,2535600138"
humanoidDescription.BodyTypeScale = 0.1
humanoidDescription.ClimbAnimation = 619521311
humanoidDescription.Face = 86487700
humanoidDescription.GraphicTShirt = 1711661
humanoidDescription.HeadColor = Color3.new(0, 1, 0)
-- Spawn karakter dengan HumanoidDescription
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- Hubungkan event "PlayerAdded" ke fungsi "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)Jika instance HumanoidDescription dibuat di Explorer dan diparent ke workspace, gunakan kode contoh berikut dalam Script untuk mengakses instance workspace:
local Players = game:GetService("Players")
-- Hentikan pemunculan otomatis sehingga dapat dilakukan dalam callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Spawn karakter dengan "workspace.StudioHumanoidDescription"
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- Hubungkan event "PlayerAdded" ke fungsi "onPlayerAdded()"
Players.PlayerAdded:Connect(onPlayerAdded)Aksesori berlapis pada non-R15
Aksesori yang terkurung, seperti aksesori berlapis, menggunakan WrapTarget dan WrapLayer untuk meregangkan dan membungkus di atas Model target. Aksesori berlapis dapat bekerja dengan baik pada karakter pemain standar maupun model non-R15.
Implementasi kustom aksesori berlapis, seperti model yang menggunakan peta UV kandang unik, tidak dapat diunggah dan diterbitkan ke Marketplace. Untuk informasi lebih lanjut, lihat spesifikasi aksesori berlapis.
Apakah Anda menerapkan aksesori berlapis pada rig avatar R15, atau menggunakan rig kustom, pastikan bahwa aksesori dan tubuh Anda mencakup hal-hal berikut:
- Model target, biasanya tubuh, memiliki komponen WrapTarget pada mesh yang dimaksudkan untuk dibungkus oleh model tambahan.
- Model pelapisan, biasanya pakaian atau aksesori, memiliki komponen WrapLayer pada mesh yang dimaksudkan untuk membungkus model target.
- Kandang luar model target, dan kandang dalam dan luar model pelapisan memiliki peta UV yang cocok.
- Vertex yang sesuai pada kandang target harus memiliki UV yang sama dengan vertex tersebut pada kandang lapisan.
- Jika model target Anda bukan R15, atau tidak menyertakan Humanoid, Anda harus menambahkan objek Weld ke MeshPart pelapisan.
- Weld harus memiliki Part0 dan Part1 yang diatur untuk menghubungkan MeshPart pelapisan ke hierarki Part dari Model. Misalnya, Part0 mengacu pada aksesori dan Part1 mengacu pada Part induk.
- Jika model target Anda adalah R15 dan menyertakan Humanoid, pengelasan ini dibuat secara otomatis.