Creator Guide
English
English
  • OVERDARE
    • 🚩Introduction to OVERDARE
    • 🐤Get Started
      • OVERDARE App
      • OVERDARE Studio
    • 📌Policy
      • Community Guidelines
      • UGC Creation Guidelines
      • Guidelines on the External Use of UGC
      • Logo Usage Guidelines
      • Intellectual Property Rights Policy
      • Reporting Guidelines
      • Guidelines on Disputing Suspensions and Bans
      • Creator Payout Policy
      • Monetization Guidelines
    • 🅰️OVERDARE Glossary
  • MANUAL
    • 🏰Studio Manual
      • Get Started
        • Studio Interface
        • World Template
        • Coordinate System
        • Studio Test Play
        • World Publish
        • Collaboration
      • Asset & Resource Creation
        • Asset Import
        • Animation Editor
      • Game Development
        • Game Settings
        • Script Editor
        • Align Tool
        • Material Manager
        • Collision Groups
        • Tag Editor
        • Performance Guide
      • Object
        • Part
        • Model
        • Camera
        • Physics
        • Lighting
        • Tool
        • VFX
        • Sound
      • Character
        • Character Animation
        • Humanoid Description
      • GUI
    • 📝Script Manual
      • Get Started
        • Script Overview
        • Basic Guide to Lua
        • Coding Style
        • Object Reference
        • Unity Developer Guide
      • Events & Communication
        • Event
        • Server-Client Communication
        • BindableEvent
        • Value Objects
      • Input & Controls
        • Mobile Input Handling
        • TPS Strafing System
      • Advanced Gameplay Systems
        • Saving & Loading Data
        • Tween
        • Module Script
      • Debugging & Optimization
        • Breakpoint
        • Practical Guide to Script Optimization
  • 💸Monetization
    • 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
  • Overview
  • Attributes
  • How to Use
  • Creating HumanoidDescription from the level browser
  • Creating and applying HumanoidDescription using a script
  • Changing the Appearance
  • Changing the Animation
  1. MANUAL
  2. Studio Manual
  3. Character

Humanoid Description

Overview

HumanoidDescription is a useful tool that allows game developers to bring their creative vision and game design intentions to life. By using this function, creators can alter a player’s avatar appearance to fit specific scenarios or themes within the game. This helps maintain a consistent style or atmosphere in the game, and enhance the overall player experience.

HumanoidDescription doesn’t just change the appearance of an avatar. It can also control various character behaviors, such as animations or size. For example, upon entering a specific region, a character might wear a particular outfit or trigger a specific animation. These functions are closely tied to the game’s storytelling and gameplay mechanics to offer players a more meaningful experience in the game.

Attributes

Attribute
Description

Head

Head MeshPart

Torso

Torso MeshPart

LeftArm

Left arm MeshPart

RightArm

Right arm MeshPart

LeftLeg

Left leg MeshPart

RightLeg

Right leg MeshPart

HeadColor

Head mesh color

TorsoColor

Torso mesh color

LeftArmColor

Left arm mesh color

RightArmColor

Right arm mesh color

LeftLegColor

Left leg mesh color

RightLegColor

Right leg mesh color

HeadTextureId

Head mesh texture

TorsoTextureId

Torso mesh texture

LeftArmTextureId

Left arm mesh texture

RightArmTextureId

Right arm mesh texture

LeftLegTextureId

Left leg mesh texture

RightLegTextureId

Right leg mesh texture

IdleAnimantion

Idle animation

WalkAnimantion

Walking animation

RunAnimantion

Running animation

JumpAnimantion

Jumping animation

FallAnimantion

Freefall animation

LandedAnimation

Landing animation

SwimmingIdleAnimation

Idle swimming animation

SwimmingBreaststrokeAnimation

Swimming animation

ClimbingAnimantion

Climbing animation

DieAnimation

Death animation

HeightScale

Character y-axis scale, character height

DepthScale

Character z-axis scale, character depth

WidthScale

Character x-axis scale, character width

How to Use

HumanoidDescription can be created and applied through the level browser or script.

Creating HumanoidDescription from the level browser

Creating and applying HumanoidDescription using a script

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

Changing the Appearance

The player avatar that enters the UGC world will appear as it is set up in the app. However, certain game characteristics may require restrictions on the character’s clothing or accessories.

For example, in games like hide-and-seek, where the character must hide to avoid being seen, extravagant avatars may be at a disadvantage. In such cases, it may be necessary to standardize clothing for all players to ensure fair competition. Another example would be assigning players to teams and having them wear uniforms to indicate which team they belong to.

To meet such requirements, the creator can use HumanoidDescription to modify the player’s appearance. This function can help achieve a consistent avatar style that aligns with the game’s characteristics, which may improve both the fun and fairness of the game.

Changing the MeshPart

Changing the MeshPart Texture and Color

Changing the Animation

At OVERDARE Studio, all characters currently use the same default animation, and all players move in the same way. However, in a UGC environment, it can be important to diversify animations based on the player’s status.

For example, if a player is attacked and must transform into a zombie, instead of simply changing the character’s appearance, an animation that makes the character walk like a zombie can be applied. This makes the game more immersive to provide a more realistic experience for players.

By using HumanoidDescription, the character’s default animations (such as idle, walking, running, jumping, landing, dying, etc.) can be easily switched and synchronized. This powerful tool allows for the customization of animations based on various in-game scenarios, enabling creators to enhance the game’s story and interactions.

Regarding Animation Synchronization

By default, movement-related animations such as idle, walking, and running are not synchronized in real time through the server. Instead, a player’s animation data is initialized and sent to all clients when the player logs into the game. After that, when the character moves or jumps, the client plays the corresponding animations based on the animation data received at the start.

As a result, even if a player’s character equips a weapon and their default movement animation changes, this update is not reflected on other clients. In other words, other players won’t see the change in that character’s movement animations.

To address this, an animation synchronization function is needed. However, creating such a function typically requires a complex script.

To resolve this issue, HumanoidDescription can be used to easily synchronize default animations without the need for complicated synchronization scripts. This allows for a consistent animation experience across the game while simplifying the creator’s workload.

PreviousCharacter AnimationNextGUI

Last updated 28 days ago

🏰
By implementing HumanoidDescription, the character’s animations can be synchronized without a complicated synchronization script.
Even though they are holding a weapon and the HandgunIdle animation is playing on their client, the other player sees the default animation instead of the HandgunIdle animation.