캐릭터 외모

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

대부분의 게임에서는 플레이어가 자신의 Roblox 아바타를 사용할 수 있지만, 일부 게임은 UGC 홈스토어 템플릿과 같은 게임 내 사용자 정의 시스템을 구현합니다. 다른 게임들은 헬멧, 날개 또는 장르에 맞는 액세서리와 같은 제한된 수정을 플레이어 아바타에 적용합니다.

사용자 외모를 변경하는 독창적인 게임을 만들기 위해 아바타 설정을 통해 기본 캐릭터 속성을 사용자 정의하거나 수동으로 외모 수정하기를 할 수 있습니다.

전역 아바타 설정

Studio의 파일아바타 설정을 통해 게임에서 여러 전역 플레이어 캐릭터 속성을 신속하게 설정할 수 있습니다. 이러한 설정은 게임에 들어오는 모든 플레이어 캐릭터 모델에 전역적으로 적용됩니다. 특정 캐릭터를 수정하려면 비 플레이어 캐릭터 모델과 같은 수동으로 외모 수정하기를 참조하세요.

이 창에서는 의상, 액세서리, 신체 부위, 충돌 행동, 애니메이션 등 다양한 프리셋을 설정할 수 있습니다. 이러한 설정을 편집할 때 적용된 설정의 미리보기가 작업 공간에 표시됩니다.

자세한 내용은 아바타 설정을 참조하세요.

수동으로 외모 수정하기

캐릭터 모델에는 모델에 걷기, 점프, 아이템 장착, 환경과 상호 작용하는 등의 특별한 특성을 부여하는 Humanoid 객체가 포함되어 있습니다.

HumanoidDescription을 업데이트하여 프로그래밍적으로 Humanoid를 수정할 수 있습니다. 여기에는 플레이어 캐릭터 모델이나 게임의 비 플레이어 캐릭터 모델이 포함됩니다.

다음 속성을 사용하여 게임에서 HumanoidDescription을 통해 캐릭터 속성을 조정할 수 있습니다:

캐릭터 속성설명
스케일물리적 특성에 대한 숫자 값으로 height, width, head, body typeproportion이 있습니다. 이는 R6 신체 유형에 영향을 미치지 않습니다.
액세서리캐릭터가 장착한 accessories의 자산 ID입니다.
클래식 의류캐릭터에 적용할 수 있는 Shirt, Pants, 및 ShirtGraphic 이미지 텍스처의 자산 ID입니다.
신체 부위캐릭터의 Face, Head, Torso, RightArm, LeftArm, RightLegLeftLeg의 자산 ID입니다.
신체 색상캐릭터의 개별 부위에 대한 BodyColors입니다.
애니메이션캐릭터에서 사용할 수 있는 Animations의 자산 ID입니다.

다음 단계를 이용하여 HumanoidDescription으로 캐릭터를 사용자 정의하세요:

  1. 사용자의 캐릭터, 특정 의상 ID, 또는 특정 사용자 ID에서 설명을 생성합니다.
  2. 설명을 수정하여 Humanoid 캐릭터에 적용할 속성을 사용자 정의합니다.
  3. 설명을 적용하여 특정 캐릭터, 모든 플레이어 캐릭터, 또는 모든 등장하는 캐릭터에 적용합니다.

HumanoidDescription 생성

다음 코드를 사용하여 탐색기 계층 내에서 또는 Script 내에서 새 HumanoidDescription 인스턴스를 직접 생성할 수 있습니다:

새 HumanoidDescription 인스턴스 생성

local humanoidDescription = Instance.new("HumanoidDescription")

대부분의 경우, 기본 새 HumanoidDescription 대신 기존 플레이어 캐릭터, 아바타 의상 또는 사용자 ID를 참조하여 기존 HumanoidDescription을 사용하는 것이 좋습니다.


플레이어 캐릭터에서

다음 코드 샘플을 사용하여 플레이어 캐릭터의 현재 속성을 기반으로 한 새 HumanoidDescription을 생성합니다:

플레이어 캐릭터에서 HumanoidDescription 생성

local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
local humanoidDescription = Instance.new("HumanoidDescription")
if humanoid then
humanoidDescription = humanoid:GetAppliedDescription()
end

기존 의상에서

다음 샘플 코드를 사용하여 Players.GetHumanoidDescriptionFromOutfitID를 사용해 의상 ID에서 HumanoidDescription을 생성합니다:

의상 ID에서 HumanoidDescription 생성

local Players = game:GetService("Players")
local outfitId = 480059254
local humanoidDescriptionFromOutfit = Players:GetHumanoidDescriptionFromOutfitId(outfitId)

특정 사용자에서

다음 샘플 코드를 사용해 사용자 ID에서 Players:GetHumanoidDescriptionFromUserId()를 사용하여 HumanoidDescription을 생성합니다:

사용자 ID에서 HumanoidDescription 생성

local Players = game:GetService("Players")
local userId = 491243243
local humanoidDescriptionFromUser = Players:GetHumanoidDescriptionFromUserId(userId)

HumanoidDescription 수정

HumanoidDescription 속성을 사용자 정의하려면 HumanoidDescription에 직접 설정하거나 HumanoidDescription을 캐릭터에 적용하기 전에 특정 메서드를 사용하세요.

다음 코드 샘플은 다양한 유형의 HumanoidDescription 속성을 설정하는 예시를 제공합니다:

다양한 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)

여러 액세서리 설정

레이어드 또는 대량 액세서리 변경을 위해 HumanoidDescription:SetAccessories()를 사용하여 액세서리 관련 업데이트를 진행할 수 있습니다. 다음 코드 샘플은 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)

HumanoidDescription 적용

특정 Humanoid 캐릭터에 HumanoidDescription을 적용하려면 Humanoid:ApplyDescription() 또는 Humanoid.LoadCharacterWithHumanoidDescription을 사용합니다.

특정 캐릭터에서

ApplyDescription()는 모든 Humanoid를 타겟팅할 수 있습니다. 다음 코드를 사용하여 플레이어 캐릭터에 새로운 선글라스와 새로운 몸통을 추가합니다:

특정 플레이어 캐릭터에 대한 HumanoidDescription 업데이트

local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
local descriptionClone = humanoid:GetAppliedDescription()
descriptionClone.Torso = 86500008
-- 여러 얼굴 액세서리 자산이 쉼표로 구분된 문자열로 허용됨
descriptionClone.FaceAccessory = descriptionClone.FaceAccessory .. ",2535420239"
-- 수정된 "descriptionClone"을 humanoid에 적용
humanoid:ApplyDescription(descriptionClone)
end

모든 플레이어 캐릭터에서

다음 샘플 코드를 사용하여 게임의 모든 현재 플레이어에 HumanoidDescription을 적용합니다:

모든 현재 플레이어 캐릭터에 대한 HumanoidDescription 업데이트

local Players = game:GetService("Players")
for _, player in Players:GetPlayers() do
local humanoid = player.Character and player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid then
-- 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
end

모든 등장하는 캐릭터에서

다음 샘플 코드를 사용하여 모든 등장하는 플레이어 캐릭터에 대해 특정 HumanoidDescription을 설정합니다:

모든 등장 캐릭터의 HumanoidDescription 업데이트

local Players = game:GetService("Players")
-- "PlayerAdded" 콜백에서 수행될 수 있도록 자동 생성 중지
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- 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)
-- HumanoidDescription으로 캐릭터 생성
player:LoadCharacterWithHumanoidDescription(humanoidDescription)
end
-- "PlayerAdded" 이벤트를 "onPlayerAdded()" 함수에 연결
Players.PlayerAdded:Connect(onPlayerAdded)

만약 HumanoidDescription 인스턴스가 탐색기에서 생성되어 작업 공간에 부모가 설정되었다면, 다음 샘플 코드를 Script에 사용하여 작업 공간 인스턴스에 접근할 수 있습니다:


local Players = game:GetService("Players")
-- "PlayerAdded" 콜백에서 수행될 수 있도록 자동 생성 중지
Players.CharacterAutoLoads = false
local function onPlayerAdded(player)
-- "workspace.StudioHumanoidDescription"으로 캐릭터 생성
player:LoadCharacterWithHumanoidDescription(workspace.StudioHumanoidDescription)
end
-- "PlayerAdded" 이벤트를 "onPlayerAdded()" 함수에 연결
Players.PlayerAdded:Connect(onPlayerAdded)

R15가 아닌 캐릭터의 레이어드 의류

레이어드 의류 같은 억제 액세서리는 WrapTargetWrapLayer를 사용하여 특정 Model을 늘리고 감쌉니다. 레이어드 액세서리는 표준 R15 Roblox 캐릭터와 R15가 아닌 모델 모두에서 작동할 수 있습니다.

독특한 억제 UV 맵을 사용하는 모델과 같은 레이어드 의류의 사용자 정의 구현은 업로드 및 마켓플레이스에 게시될 수 없습니다. 자세한 내용은 레이어드 의류 사양을 참조하세요.

아바타 R15 리그에서 레이어드 액세서리를 구현하든 사용자 지정 리그를 사용하든, 액세서리와 신체는 다음을 포함해야 합니다:

  • 대상 모델, 일반적으로 신체는 추가 모델이 감싸질 메쉬에 WrapTarget 구성 요소가 있어야 합니다.
  • 레이어링 모델, 일반적으로 의류 또는 액세서리는 대상 모델을 감싸기 위한 메쉬에 WrapLayer 구성 요소가 있어야 합니다.
  • 대상 모델의 외부 격자레이어링 모델의 내부 및 외부 격자는 일치하는 UV 맵을 가져야 합니다.
    • 격자의 해당 정점은 레이어 격자의 이러한 정점과 동일한 UV를 가져야 합니다.
  • 대상 모델이 R15가 아니거나 Humanoid가 포함되지 않은 경우, 레이어링 MeshPartWeld 객체를 추가해야 합니다.
    • Weld는 레이어링 MeshPart를 모델의 Part 계층과 연결하도록 Part0Part1을 설정해야 합니다. 예를 들어, Part0는 액세서리를 참조하고 Part1은 부모 Part를 참조합니다.
  • 대상 모델이 R15이고 Humanoid를 포함하고 있는 경우, 이 용접은 자동으로 생성됩니다.
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.