Creator Guide
Korean
Korean
  • OVERDARE
    • 🚩OVERDARE 소개
    • 🐤시작하기
      • OVERDARE App
      • OVERDARE Studio
    • 📌운영 정책
      • 커뮤니티 가이드라인
      • UGC 콘텐츠 제작 가이드라인
      • UGC의 외부 활용 가이드라인
      • LOGO 활용 가이드라인
      • 지식 재산권 정책
      • 신고 안내
      • 콘텐츠 제재 이의 신청 안내
      • 크리에이터 정산 정책
      • OVERDARE 수익화 가이드라인
    • 🅰️OVERDARE Glossary
  • MANUAL
    • 🏰스튜디오 메뉴얼
      • 시작하기
        • 스튜디오 인터페이스
        • 월드 템플릿
        • 좌표계
        • 스튜디오 테스트 플레이
        • 월드 퍼블리시
        • Collaboration
      • 에셋 & 리소스 제작
        • 에셋 임포트
        • 애니메이션 에디터
      • 게임 제작
        • 게임 설정
        • 스크립트 에디터
        • 정렬
        • Material Manager
        • Collision Groups
        • Tag Editor
        • 퍼포먼스 가이드
      • Object
        • 파트
        • 모델
        • 카메라
        • 물리
        • 조명
        • Tool
        • VFX
        • Sound
      • 캐릭터
        • 캐릭터 애니메이션
        • Humanoid Description
      • GUI
    • 📝스크립트 메뉴얼
      • 시작하기
        • 스크립트 개요
        • 루아 기초 가이드
        • 코딩 스타일
        • 오브젝트 참조
        • 유니티 개발자용 가이드
      • 이벤트 및 통신
        • 이벤트
        • 서버-클라 통신
        • BindableEvent
        • Value Objects
      • 입력 및 조작
        • 모바일 조작 처리
        • TPS Strafing System
      • 게임 고도화
        • Saving & Loading Data
        • 트윈
        • 모듈 스크립트
      • 디버깅 & 최적화
        • 중단점
        • 스크립트 최적화 실전 가이드
  • 💸수익화
    • Payout Guideline
  • DEVELOPMENT
    • 📚API Reference
      • Enums
        • ActuatorRelativeTo
        • AnimationPriority
        • AspectType
        • AssetTypeVerification
        • BorderMode
        • CameraMode
        • CameraType
        • ContextActionResult
        • CoreGuiType
        • DominantAxis
        • EasingDirection
        • EasingStyle
        • ForceLimitMode
        • HttpCompression
        • HttpContentType
        • HumanoidDisplayDistanceType
        • HumanoidStateType
        • KeyCode
        • Material
        • MaterialPattern
        • NormalId
        • ParticleEmitterShape
        • ParticleEmitterShapeInOut
        • ParticleEmitterShapeStyle
        • ParticleFlipbookLayout
        • ParticleFlipbookMode
        • ParticleOrientation
        • PartType
        • PlaybackState
        • RaycastFilterType
        • RollOffMode
        • RotationType
        • UserInputState
        • UserInputType
        • VelocityConstraintMode
      • DataTypes
        • BlendSpaceSampleSata
        • BrickColor
        • CFrame
        • Color3
        • ColorSequence
        • ColorSequenceKeypoint
        • Content
        • Enum
        • EnumItem
        • NumberRange
        • NumberSequence
        • NumberSequenceKeypoint
        • OverlapParams
        • PhysicalProperties
        • Ray
        • RaycastParams
        • RaycastResult
        • ScriptConnection
        • ScriptSignal
        • TweenInfo
        • Udim
        • Udim2
        • Vector2
        • Vector3
      • Classes
        • Animation
        • AngularVelocity
        • AnimationTrack
        • Animator
        • Atmosphere
        • Attachment
        • Backpack
        • BackpackItem
        • BasePart
        • BaseScript
        • Beam
        • BindableEvent
        • BlendSpace
        • BoolValue
        • Bone
        • Camera
        • CharacterMesh
        • CollectionService
        • Constraint
        • ContextActionService
        • CoreGui
        • DataStore
        • DataModel
        • DataStoreGetOptions
        • DataStoreIncrementOptions
        • DataStoreInfo
        • DataStoreKeyPages
        • DataStoreKeyInfo
        • DataStoreService
        • DataStoreListingPages
        • DataStoreSetOptions
        • FormFactorPart
        • Frame
        • Folder
        • GlobalDataStore
        • GuiBase2d
        • GuiButton
        • GuiObject
        • HttpService
        • Humanoid
        • HumanoidDescription
        • ImageButton
        • ImageLabel
        • InputObject
        • IntValue
        • LayerCollector
        • Instance
        • Light
        • Lighting
        • LinearVelocity
        • LocalScript
        • LuaSourceContainer
        • MaterialService
        • MaterialVariant
        • MeshPart
        • Model
        • ModuleScript
        • Mouse
        • OrderedDataStore
        • Pages
        • Part
        • ParticleEmitter
        • PhysicsService
        • Player
        • PlayerGui
        • Players
        • PlayerScripts
        • PointLight
        • PVInstance
        • ReplicatedStorage
        • RemoteEvent
        • ScreenGui
        • RunService
        • Script
        • ServerStorage
        • ServiceProvider
        • Skeleton
        • ServerScriptService
        • Sound
        • SoundService
        • SoundGroup
        • SpotLight
        • SpawnLocation
        • StarterCharacterScripts
        • StarterPack
        • StarterGui
        • StarterPlayer
        • StarterPlayerScripts
        • StringValue
        • SurfaceGui
        • SurfaceGuiBase
        • Team
        • Teams
        • TextLabel
        • TextButton
        • Tool
        • Trail
        • Tween
        • TweenService
        • TweenBase
        • UIAspectRatioConstraint
        • UserGameSettings
        • UserInputService
        • UserSettings
        • VectorForce
        • Workspace
        • WrapLayer
        • WorldRoot
        • WrapTarget
  • UPDATE
    • 📰Release Note
Powered by GitBook
On this page
  • 개요
  • 속성
  • 사용 방법
  • 레벨브라우저에서의 HumanoidDescription 생성
  • 스크립트를 이용한 HumanoidDescription 생성 및 적용
  • 외형 변경
  • 애니메이션 변경
  1. MANUAL
  2. 스튜디오 메뉴얼
  3. 캐릭터

Humanoid Description

개요

HumanoidDescription는 게임 개발자들이 자신의 창의적인 비전과 게임 기획 의도를 구현하는 데 유용한 도구입니다. 이 기능을 통해 크리에이터는 플레이어의 아바타를 게임의 특정 상황이나 테마에 맞게 일관된 외형으로 변환할 수 있습니다. 이를 통해 게임 내에서 일관된 스타일과 분위기를 유지하며, 플레이어 경험을 더욱 풍부하게 만들 수 있습니다.

HumanoidDescription는 단순한 외형 변경뿐만 아니라, 캐릭터의 애니메이션, 크기 등 다양한 비헤이비어를 조정하는 데 사용됩니다. 예를 들어, 특정 지역에 들어가면 캐릭터가 특정한 의상을 입거나, 특정한 애니메이션을 재생하도록 설정할 수 있습니다. 이러한 기능들은 게임의 스토리텔링이나 게임플레이 메커니즘과도 밀접하게 연관되어 있으며, 플레이어에게 게임 내에서 의미 있는 경험을 제공합니다.

속성

속성
설명

Head

머리의 메시파트

Torso

상체의 메시파트

LeftArm

왼팔의 메시파트

RightArm

오른팔의 메시파트

LeftLeg

왼 다리 메시파드

RightLeg

오른 다리 메시파트

HeadColor

머리 메시의 색상

TorsoColor

상체 메시의 색상

LeftArmColor

왼팔 메시의 색상

RightArmColor

오른팔 메시의 색상

LeftLegColor

왼다리 메시의 색상

RightLegColor

오른다리 메시의 생삭

HeadTextureId

머리 메시의 텍스처

TorsoTextureId

상체 메시의 텍스처

LeftArmTextureId

왼팔 메시의 텍스처

RightArmTextureId

오른팔 메시의 텍스처

LeftLegTextureId

왼다리 메시의 텍스처

RightLegTextureId

오른다리 메시의 텍스처

IdleAnimantion

대기 동작 애니메이션

WalkAnimantion

걷기 동작 애니메이션

RunAnimantion

뛰기 동작 애니메이션

JumpAnimantion

점프 애니메이션

FallAnimantion

자유낙하 애니메이션

LandedAnimation

착지 애니메이션

SwimmingIdleAnimation

수영 대기 동작 애니메이션

SwimmingBreaststrokeAnimation

수영 이동 동작 애니메이션

ClimbingAnimantion

등반 애니메이션

DieAnimation

사망 애니메이션

HeightScale

캐릭터의 Y축 스케일, 캐릭터의 키

DepthScale

캐릭터의 Z축 스케일, 캐립터를 깊이

WidthScale

캐릭터의 X축 스케일, 캐릭터의 너비

사용 방법

HumanoidDescription은 레벨브라우저 또는 스크립트를 통해 생성하고 적용 할 수 있습니다.

레벨브라우저에서의 HumanoidDescription 생성

스크립트를 이용한 HumanoidDescription 생성 및 적용

local function ApplyHumanoidDescription(character)
    local humanoidDesc = Instance.new("HumanoidDescription")
    
    -- BodyPart Mesh
    humanoidDesc.Head     = 8213300
    humanoidDesc.Torso    = 8214200
    humanoidDesc.LeftArm  = 8213200
    humanoidDesc.LeftLeg  = 8213400
    humanoidDesc.RightArm = 8213100
    humanoidDesc.RightLeg = 8214100
    
    -- BodyPart Texture    
    humanoidDesc.HeadTextureId    =8211400
    humanoidDesc.TorsoTextureId   =8212600
    humanoidDesc.LeftArmTextureId =8212400
    humanoidDesc.LeftLegTextureId =8211500
    humanoidDesc.RightArmTextureId=8212500
    humanoidDesc.RightLegTextureId=8212500
    
    -- BodyPart Color
    humanoidDesc.HeadColor = Color3.new(255,100,100)
    humanoidDesc.TorsoColor= Color3.new(0,255,100)
    humanoidDesc.LeftArmColor = Color3.new(255,0,0)
    humanoidDesc.LeftLegColor= Color3.new(0,255,0)
    humanoidDesc.RightArmColor = Color3.new(0,0,255)
    humanoidDesc.RightLegColor = Color3.new(100,0,100)
    
    -- Animations
    humanoidDesc.IdleAnimation = 8208100
    humanoidDesc.RunAnimation = 8210200
    humanoidDesc.WalkAnimation = 8208600
    humanoidDesc.JumpAnimation = 8210100
    humanoidDesc.FallAnimation = 8209200
    humanoidDesc.LandedAnimation = 8208300
    
    --Scale
    humanoidDesc.HeightScale = 1.6
    humanoidDesc.DepthScale = 1.4
    humanoidDesc.WidthScale = 1.4

    local humanoid = character:WaitForChild("Humanoid")
    humanoid:ApplyDescription(humanoidDesc, Enum.AssetTypeVerification.Default)
end

외형 변경

본적으로 UGC 월드에 진입하는 플레이어 아바타는 앱에서 설정한 아바타의 외형 그대로 UGC 월드에 나타납니다. 그러나 특정 게임의 특성에 따라 캐릭터의 의상이나 악세서리를 제약해야 하는 경우가 있습니다.

예를 들어, 숨바꼭질과 같은 게임에서는 캐릭터가 눈에 띄지 않게 숨어야 하므로, 화려한 아바타가 불리할 수 있습니다. 이러한 경우, 공정한 경쟁을 위해 모든 플레이어의 의상을 통일시키는 것이 필요할 수 있습니다. 또 다른 예로, 팀을 명확히 구분하고 정체성을 나타낼 수 있도록 유니폼을 입히는 경우도 있습니다.

이러한 요구를 충족하기 위해 크리에이터는 HumanoidDescription을 활용하여 플레이어의 외형을 변경할 수 있습니다. 이 기능을 통해 게임의 특성에 맞는 일관된 아바타 스타일을 구현할 수 있으며, 이는 게임의 재미와 공정성을 높이는 데 기여할 수 있습니다.

메시파트 변경

메시파트 텍스처 및 색상 변경

애니메이션 변경

현재 오버데어에서는 캐릭터들이 동일한 기본 애니메이션을 제공받아 모든 플레이어가 동일한 방식으로 동작합니다. 그러나 UGC 환경에서는 플레이어의 상태에 따라 다양한 애니메이션을 적용하는 것이 필요할 수 있습니다.

예를 들어, 공격을 받은 플레이어가 좀비로 변신해야 하는 경우, 단순히 좀비 외형만 적용하는 것보다 실제로 캐릭터가 좀비처럼 걷는 애니메이션을 구현하면 게임의 몰입도를 크게 높일 수 있습니다. 이를 통해 플레이어는 좀 더 생생한 게임 경험을 할 수 있습니다.

HumanoidDescription을 활용하면 캐릭터의 기본 애니메이션(대기, 걷기, 뛰기, 점프, 착지, 사망 등)을 손쉽게 교체하고 동기화할 수 있습니다. 이는 게임의 다양한 시나리오에 맞춰 애니메이션을 맞춤형으로 설정할 수 있는 강력한 도구가 됩니다. 이를 통해 크리에이터는 게임의 스토리와 상호작용을 더욱 풍부하게 만들 수 있습니다.

애니메이션 동기화에 대해

기본적으로 Idle, Walk, Run 등의 이동 관련 애니메이션은 서버를 통해 실시간으로 동기화되지 않습니다. 대신, 플레이어가 게임에 접속할 때 해당 캐릭터의 애니메이션 데이터가 모든 클라이언트에 초기화되어 전달됩니다. 이후 캐릭터가 이동하거나 점프할 때는 각 클라이언트가 초기에 받은 애니메이션 데이터를 기반으로 애니메이션을 재생합니다.

따라서, 특정 플레이어 캐릭터가 무기를 잡아 기본 이동 모션이 변경되었다고 해도, 이 변화는 다른 클라이언트들에게 전달되지 않습니다. 즉, 다른 플레이어는 해당 캐릭터의 이동 모션 변화에 대해 인식할 수 없습니다.

이를 해결하기 위해서는 애니메이션 데이터를 동기화 해주는 기능이 필요합니다. 하지만 이러한 동기화 기능을 개발하는 것은 복잡한 스크립트가 요구될 수 있습니다.

이러한 문제를 해결하기 위해 HumanoidDescription을 활용하면 복잡한 동기화 스크립트 없이도 기본 애니메이션을 손쉽게 동기화 할 수 있습니다. 이를 통해 게임 내에서 일관된 애니메이션 경험을 제공할 수 있으며, 크리에이터의 작업을 간소화하는 데 기여합니다.

Previous캐릭터 애니메이션NextGUI

Last updated 26 days ago

🏰
복잡한 동기화 스크립트 없이 HumanoidDescription 적용만으로 캐릭터 애니메이션을 동기화 할 수 있다
자신의 클라이언트에서는 총기를 들고, HandgunIdle 애니메이션이 플레이 되고 있지만, 상대방에게는 HandgunIdle 애니메이션이 아닌, 기본 애니메이션 상태로 보이고 있다.