キャラクターの外観

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ほとんどのゲームではプレイヤーが自分のRobloxアバターを使用できますが、いくつかのゲームはUGCホムステアテンプレートのようなゲーム内カスタマイズシステムを実装しています。他のゲームでは、ジャンルに合わせたヘルメット、翼、アクセサリーなど、プレイヤーアバターへの制限された変更を行います。

ユーザーの外観を変更するユニークなゲームを作成するために、アバター設定を通じてデフォルトのキャラクターのプロパティをカスタマイズするか、手動で外観を変更することができます。

グローバルアバター設定

スタジオのファイルアバター設定では、ゲーム内のプレイヤーキャラクターのプロパティを迅速に設定できます。これらの設定は、あなたのゲームに参加するすべてのプレイヤーキャラクターモデルにグローバルに適用されます。非プレイヤーキャラクターモデルのような特定のキャラクターを修正するには、手動で外観を変更を参照してください。

このウィンドウでは、衣服、アクセサリー、体の部位、衝突動作、アニメーションなど、さまざまなプリセットを設定できます。これらの設定を編集する際には、適用された設定のプレビューがワークスペースに表示されます。

詳細については、アバター設定をご覧ください。

手動で外観を変更

キャラクターモデルには、モデルに特別な特性を与えるHumanoidオブジェクトが含まれています。これには、歩行、ジャンプ、アイテムを装備すること、環境とインタラクトすることが含まれます。

HumanoidHumanoidDescriptionを更新することで、プログラム的にHumanoidを変更できます。これには、ゲーム内のプレイヤーキャラクターモデルや非プレイヤーキャラクターモデルが含まれます。

HumanoidDescriptionを使用して、ゲーム内の以下のキャラクターのプロパティを調整できます。

キャラクターのプロパティ説明
スケール物理的特性のための数値 height, width, head, body type 及び proportion。これはR6ボディタイプには影響しません。
アクセサリーキャラクターによって装備される accessoriesのアセットID。
クラシック衣服キャラクターに適用できる Shirt, Pants, 及び ShirtGraphicイメージテクスチャのアセットID。
体の部位キャラクターの Face, Head, Torso, RightArm, LeftArm, RightLeg及びLeftLegの部品のアセットID。
ボディカラーキャラクターの個々のパーツの BodyColors
アニメーションキャラクターに使用できる AnimationsのアセットID。

次の手順を使用して、HumanoidDescriptionでキャラクターをカスタマイズします:

  1. ユーザーのキャラクター、特定のアウトフィットID、または特定のユーザーIDから説明を作成します。
  2. Humanoidキャラクターに適用したいプロパティをカスタマイズするために、説明を変更します。
  3. 単一のキャラクター、すべてのプレイヤーキャラクター、またはすべての生成キャラクターに説明を適用します。

HumanoidDescriptionを作成

次のコードを使用して、Explorer階層内またはScript内で新しいHumanoidDescriptionインスタンスを直接作成できます:

新しいHumanoidDescriptionインスタンスを作成

local humanoidDescription = Instance.new("HumanoidDescription")

ほとんどのケースでは、既存のプレイヤーキャラクター、アバターのアウトフィット、またはユーザーIDを参照して、デフォルトの新しいHumanoidDescriptionの代わりに既存の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)

特定のユーザーから

次のサンプルコードを使用して、Players:GetHumanoidDescriptionFromUserId()を使用してユーザーIDから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:ApplyDescription()またはHumanoid.LoadCharacterWithHumanoidDescriptionを使用して、ゲーム内の特定のHumanoidキャラクターにHumanoidDescriptionを適用します。

1つのキャラクターに

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)

ExplorerHumanoidDescriptionインスタンスが作成され、ワークスペースに親付けされた場合、次のサンプルコードを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でのレイヤード衣服

レイヤードアクセサリーは、WrapTargetおよびWrapLayerを使用して、対象のModelに伸ばしてラップします。レイヤー付きアクセサリーは、標準のR15 Robloxキャラクターおよび非R15モデルの両方で動作できます。

ユニークなケージUVマップを使用するモデルなど、レイヤード衣服のカスタム実装は、マーケットプレイスにアップロードして公開することはできません。詳細については、レイヤード衣服の仕様をご覧ください。

アバターR15リグにレイヤードアクセサリーを実装するか、カスタムリグを使用する際には、アクセサリーやボディに以下の要素が含まれていることを確認してください:

  • 対象モデル、通常はボディは、追加モデルがラップすることを目的としたメッシュにWrapTargetコンポーネントを持っています。
  • レイヤリングモデル、通常は衣服やアクセサリーは、対象モデルをラップしようとするメッシュにWrapLayerコンポーネントを持っています。
  • 対象モデルの外部ケージと、レイヤリングモデルの内部および外部ケージは、同じUVマップを持っています。
    • 対象ケージの対応する頂点は、レイヤーケージのそれらの頂点と同じUVを持っている必要があります。
  • 対象モデルがR15でない場合、またはHumanoidが含まれていない場合は、レイヤリングMeshPartWeldオブジェクトを追加する必要があります。
    • Weldは、Part0Part1の設定が、レイヤリングMeshPartをモデルのPart階層にリンクする必要があります。たとえば、Part0はアクセサリーを指し、Part1は親Partを指します。
  • 対象モデルがR15で、Humanoidが含まれている場合、このウェルドは自動的に作成されます。
©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。