Sebagian besar permainan memungkinkan pemain menggunakan avatar Roblox mereka sendiri, meskipun beberapa menerapkan sistem kustomisasi dalam permainan seperti template UGC Homestore. Permainan lain membuat 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 sifat karakter default melalui pengaturan avatar atau modifikasi penampilan secara manual.
Pengaturan avatar global
File ⟩ Pengaturan Avatar di Studio memungkinkan Anda dengan cepat mengatur beberapa sifat karakter pemain global di permainan Anda. Pengaturan ini berlaku secara global untuk semua model karakter pemain yang bergabung ke permainan Anda. Untuk mengubah karakter tertentu, seperti model karakter non-pemain, lihat modifikasi penampilan secara manual.
Dalam jendela ini, Anda dapat menetapkan berbagai preset untuk pakaian, aksesori, bagian tubuh, perilaku benturan, animasi, dan lainnya. Saat mengedit pengaturan ini, pratinjau dari pengaturan yang diterapkan ditampilkan di ruang kerja.
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 mencakup model karakter pemain atau model karakter non-pemain dalam permainan Anda.
Anda dapat menyesuaikan sifat karakter berikut dalam permainan Anda menggunakan HumanoidDescription:
| Sifat karakter | Deskripsi |
|---|---|
| Skala | Nilai angka untuk sifat fisik height, width, head, body type dan proportion. Ini tidak mempengaruhi tipe tubuh R6. |
| Aksesori | ID aset dari accessories yang dilengkapi oleh karakter. |
| Pakaian Klasik | ID aset dari Shirt, Pants, dan tekstur gambar ShirtGraphic yang dapat Anda terapkan ke karakter. |
| Bagian Tubuh | ID aset dari Face, Head, Torso, RightArm, LeftArm, RightLeg dan LeftLeg bagian dari karakter. |
| Warna Tubuh | BodyColors dari bagian individu karakter. |
| Animasi | ID aset dari Animations 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 sifat yang ingin Anda terapkan pada karakter Humanoid.
- Terapkan deskripsi pada satu karakter, semua karakter pemain, atau bahkan pada semua karakter yang muncul.
Buat HumanoidDescription
Anda dapat membuat instance HumanoidDescription baru langsung dalam hierarki Explorer atau dalam Script dengan kode berikut:
local humanoidDescription = Instance.new("HumanoidDescription")Dalam kebanyakan kasus, Anda harus menggunakan HumanoidDescription yang sudah ada instead of a default new HumanoidDescription dengan merujuk ke karakter pemain yang sudah ada, pakaian avatar, atau ID pengguna.
Dari karakter pemain
Gunakan contoh kode berikut untuk membuat HumanoidDescription baru berdasarkan sifat 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 pakaian yang ada
Gunakan kode contoh berikut untuk membuat HumanoidDescription dari ID pakaian 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 sifat HumanoidDescription, setel mereka langsung pada HumanoidDescription atau gunakan metode tertentu sebelum menerapkan HumanoidDescription ke karakter.
Contoh kode berikut memberikan contoh penetapan berbagai jenis sifat 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)Set beberapa aksesori
Untuk perubahan aksesori berlapis atau massal, Anda dapat menggunakan HumanoidDescription:SetAccessories() untuk melakukan pembaruan yang berkaitan dengan aksesori. Contoh kode berikut menambahkan sweter berlapis dan jaket dalam urutan tersebut 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 satu karakter
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 terpisah dengan 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 agar 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)
-- Munculkan 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 ruang kerja, gunakan kode contoh berikut dalam Script untuk mengakses instance ruang kerja:
local Players = game:GetService("Players")
-- Hentikan pemunculan otomatis agar dapat dilakukan dalam callback "PlayerAdded"
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- Munculkan 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 terkurung, seperti aksesori berlapis, menggunakan WrapTarget dan WrapLayer untuk meregangkan dan membungkus di sekitar Model target. Aksesori berlapis dapat bekerja dengan karakter R15 standar R15 Roblox dan model non-R15.
Implementasi kustom dari aksesori berlapis, seperti model yang menggunakan peta UV kandang yang unik, tidak dapat diunggah dan dipublikasikan 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 agar model tambahan melingkar di sekelilingnya.
- 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 pelapis.
- Jika model target Anda bukan R15, atau tidak termasuk 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. Sebagai contoh, Part0 merujuk pada aksesori dan Part1 merujuk pada Part induk.
- Jika model target Anda adalah R15 dan menyertakan Humanoid, pengelasan ini dibuat secara otomatis.