ロブロックス(Roblox)エモートの作り方|自作のダンスをキーとボタンで出すまで画像で解説

制作手順難易度: 上級所要時間: 約60分(目安)情報確認日: 2026年10月31日

「自分のゲームで、オリジナルのダンスを踊らせたい」「エモートを作ったのに、歩くと腕が動かなくなる」

ロブロックス(Roblox)のエモートの作り方を、実際の画像付きで誰でも簡単に分かるように解説します。この記事では、両手を上げる「バンザイダンス」を作り、Eキー・画面のボタン・チャットの3通りで出せるようにします。

最初からあるエモートの出し方と、エモートができないときの原因も、スタジオで試した結果つきで紹介します。

上級ステップ24/42 前の記事:ロブロックス(Roblox)スタジオの3Dモデルのインポート方法 全体の順番を見る

使うもの:Roblox Studioが起動するパソコン、マウス、キーボード。

今回の完成状態:下の画像のように、テスト中にEキーを押すとキャラクターが両手を上げて踊り続ければ成功です。

先に答え

知りたいこと答え
エモートはどう出す?パソコンは「.」(ピリオド)キーで輪を開くか、チャットに「/e dance」と入れる
スマホは?左上の3本線のメニューの「リアクション」を押す
自分のゲームに自作のエモートを入れるには?動きを作ってRobloxに公開し、番号をスクリプトで再生する
自作の動きはエモートの輪に入る?入れても押すと「今はリアクションを使えません。」と出たので、キーやボタンで出す
歩くと腕が動かなくなるときは?動きの優先順位を「動作」にして公開し直す
エモートができないときは?R6(体が6つの部品の型)のアバターだと輪のエモートは使えない。R15(15の部品の型)にする

1. 最初からあるエモートを出してみる

まず、どのゲームでも使えるエモートを試します。新しいBaseplateを開きます。3D画面の上の作品のタブ「Place1」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。

Robloxの公式の説明によると、エモートはチャットのコマンドか、エモートのメニューから出せます。最初からあるものとして、dance・point・cheerが挙げられています。

チャットで出す

「/」キーを押してチャットの欄を開き、「/e dance」と入れてEnterキーを押します。キャラクターが踊り出します(赤い枠)。

同じように「/e cheer」で両手を上げて応援し(1枚目)、「/e point」で指をさします(2枚目)。

輪のメニューで出す

エモートのメニューは、3D画面の左上の3本線のボタンから開けます。3本線のボタン(赤い枠)を押します。

メニューを下へ送り、「リアクション」を押します(赤い枠)。

1〜8の番号が付いた輪が出ます(赤い枠)。人の形が入っている番号を押すと、その動きをします。パソコンでは「.」(ピリオド)キーを押しても、同じ輪が開きます。

スマホで出す

スマホの場合も、左上の3本線のボタンを押してメニューを開きます。メニューを指で上へ送り、「リアクション」を押します(赤い枠)。

パソコンと同じ輪が出ます。上と下の画像は、スタジオのスマホ表示(デバイスシミュレータ)で確かめた画面です。

確かめたら、Shift + F5キーでテストを停止します。

2. 作品をRobloxに保存する

自作の動きをゲームで使うには、動きをRobloxに公開します。そのため、先に作品をRobloxに保存します。

3D画面上部メニューの「ファイル」を押し、「Robloxに保存」を押します(赤い枠)。

保存の画面が開きます。「名前」の欄に作品の名前を入れて(画像の1)、「保存」を押します(画像の2)。ここでは「Asobishift Emote Practice」と入れました。

保存が終わると、3D画面の上のタブの名前が作品の名前に変わります。保存しただけでは、ほかの人は遊べません。

3. 動かす人形を置く

動きは、スタジオの人形(リグ)で作ります。ホームタブの「キャラクター」を押します(画像の1)。「リグを生成」の窓が出たら、リグタイプ「R15」、体型「男子型」のまま、「ブロック型アバター(2012年)」を押します(画像の2)。

エクスプローラのWorkspaceに「Rig」が入り(画像の1)、3D画面に灰色の人形が出ます(画像の2)。

人形が小さく見えるときは、3D画面でマウスのホイールを回して寄せます。

4. 両手を上げる動きを作る

上の「アバター」タブを押し(画像の1)、「クリップ編集」を押します(画像の2)。画面の下に「アニメーション編集」の欄が開きます。初めて開いたときに説明の窓が出たら、「了解!」を押して閉じます。

3D画面の人形を押して選びます(赤い枠)。アニメーション編集の欄の左上に「Rig」と出ます。欄がせまいときは、「出力」の欄との境目を左へドラッグして広げます。「+」や「…」が見えないときは、時間の線との境目を右へドラッグします。

左腕を動かす

「Rig」の行の右の「+」を押し(画像の1)、出てきた一覧の「LeftUpperArm」(左の上腕)を押します(画像の2)。

もう一度「+」を押し、一覧を下へ送って「RightUpperArm」(右の上腕)を押します。2つの行が入ります。「LeftUpperArm」の左の三角を押して開くと、「Position」(位置)と「Rotation」(回転)の数字の欄が出ます(赤い枠)。

アニメーション編集の上の時間の欄(「0 / 1」の左の数字)に「0.5」と入れてEnterキーを押します(画像の1)。LeftUpperArmのRotationの「Z」の欄に「-150」と入れてEnterキーを押します(画像の2)。人形の左腕が上がります(画像の3)。

時間の欄に「1」と入れてEnterキーを押し(画像の1)、LeftUpperArmのRotationのZに「0」と入れてEnterキーを押します(画像の2)。腕が下りた形に戻ります。

右腕を動かす

「LeftUpperArm」の左の三角を押して閉じ、「RightUpperArm」の左の三角を押して開きます(赤い枠)。

時間の欄に「0.5」と入れてEnterキーを押します(画像の1)。RightUpperArmのRotationの「Z」の欄に「150」と入れてEnterキーを押します(画像の2)。右腕はプラスの数です。人形が両手を上げます(画像の3)。

時間の欄に「1」と入れてEnterキーを押し(画像の1)、RightUpperArmのRotationのZに「0」と入れてEnterキーを押します(画像の2)。

時間LeftUpperArmのZRightUpperArmのZ形
000腕が下りている
0.5-150150両手が上がっている
100腕が下りている

くり返し動くようにする

アニメーション編集の上の、矢印がまるくなったボタン(赤い枠)を押して青くします。これでループ(くり返し)になります。公式の説明では、最後の形を最初の形と同じにすると、なめらかにくり返せます。今回は時間0と時間1を同じ形にしました。

5. 優先順位を「動作」にして公開する

エモートでいちばん大事な設定です。キャラクターは、歩く動きや立っている動きを最初から再生しています。優先順位は、動きが重なったときにどちらを見せるかの順番です。

アニメーション編集の上の、再生ボタンの並びのいちばん左にある「…」を押します(赤い枠)。「LeftUpperArm」の行の右にも「…」があるので、取り違えないようにします。

「アニメーションの優先順位を設定」を押し(画像の1)、「動作」を押します(画像の2)。

再生ボタンの並びの「…」をもう一度押し、「保存」を押します(画像の1)。続けて同じ「…」を押し、「Robloxに公開」を押します(画像の2)。

「Asset Configuration」の窓が開きます。「題名」の欄に動きの名前を入れて(画像の1)、「保存」を押します(画像の2)。ここでは「バンザイ」にしました。

「送信できました!」と出て、「ID」の数字が出ます(画像の1)。この数字が、スクリプトからこの動きを呼び出す番号です。右のコピーのボタンを押すとコピーできます。メモ帳などに控えてから、「閉じる」を押します(画像の2)。

アニメーション編集の欄の右上の「×」を押して閉じ、上の「ホーム」タブを押します。

人形は動きを作るためだけのものなので消します。エクスプローラで「Rig」を選び(赤い枠)、Deleteキーを押します。

6. Eキーで踊るスクリプトを入れる

自分のキャラクターを動かすので、それぞれのプレイヤーの端末で動く「LocalScript」を使います。

エクスプローラを下へ送り、「StarterPlayer」の左の三角を押して開きます。「StarterPlayerScripts」にマウスを乗せ、右に出る「+」を押します(赤い枠)。

検索欄に「LocalScript」と入れ、一覧の「LocalScript」を押します(赤い枠)。

新しいスクリプトのタブが開きます。エクスプローラで入ったLocalScriptを選んだままF2キーを押し、「EmoteScript」と入力してEnterキーを押します(赤い枠)。

EmoteScriptのタブの中身を全部消して、次のコードを貼り付けます。

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")

local ANIMATION_ID = "rbxassetid://ここに番号"

local player = Players.LocalPlayer
local track = nil

local function setupCharacter(character)
	local humanoid = character:WaitForChild("Humanoid")
	local animator = humanoid:WaitForChild("Animator")
	local animation = Instance.new("Animation")
	animation.AnimationId = ANIMATION_ID
	track = animator:LoadAnimation(animation)
end

local function toggleEmote()
	if track == nil then
		return
	end
	if track.IsPlaying then
		track:Stop()
	else
		track:Play()
	end
end

player.CharacterAdded:Connect(setupCharacter)
if player.Character then
	setupCharacter(player.Character)
end

UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then
		return
	end
	if input.KeyCode == Enum.KeyCode.E then
		toggleEmote()
	end
end)

コードの4行目の「ここに番号」を、5節で控えたIDの数字に書きかえます(赤い枠)。「rbxassetid://」と引用符は消しません。画像の番号は編集部のものです。

コード意味
ANIMATION_ID再生する動きの番号
setupCharacterキャラクターの中のAnimator(動きを再生する部品)に、動きを読み込む
player.CharacterAdded倒れて出直したキャラクターにも、動きを読み込む
toggleEmote踊っていたら止め、止まっていたら踊る
gameProcessedチャットの入力中など、ゲームの画面以外への入力ならtrueになる

3D画面の上の作品のタブ「Asobishift Emote Practice」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。

3D画面を1回押してから、Eキーを押します。以下は、テストを始めてEキーを押した画面です。キャラクターが両手を上げ下げし続けます(赤い枠)。

もう一度Eキーを押すと止まります(赤い枠)。

Shift + F5キーでテストを停止します。

7. 優先順位で何が変わるか

ここは読むだけで大丈夫です。以下は、アソビシフト編集部が優先順位の違う2つの動きを作り、立ったままと歩きながらで比べた結果です。

優先順位立って再生歩きながら再生
コア(最初の設定)腕が肩の高さまでしか上がらない腕が歩く動きになり、ダンスが見えない
動作両手がはっきり上がる足は歩き、腕はダンスのまま

コアの動きで、立って再生した画面(1枚目)と、歩きながら再生した画面(2枚目)です。5節で「動作」にしたのは、このためです。

動作の動きで、歩きながら再生した画面です。足は歩き、腕はダンスの形になっています(赤い枠)。

公式の説明では、優先順位は高いほうから Action4・Action3・Action2・Action(動作)・Movement(移動)・Idle(待機)・Core(コア)の順です。

8. 歩き出したら止まるようにする

このままでは、踊りながら歩けてしまいます。歩き出したらエモートが止まるようにします。

EmoteScriptのタブを押し、中身を全部消して、次のコードを貼り付けます。貼り付けたら、コードの4行目の「ここに番号」を自分の番号に書きかえます。

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")

local ANIMATION_ID = "rbxassetid://ここに番号"

local player = Players.LocalPlayer
local track = nil

local function setupCharacter(character)
	local humanoid = character:WaitForChild("Humanoid")
	local animator = humanoid:WaitForChild("Animator")
	local animation = Instance.new("Animation")
	animation.AnimationId = ANIMATION_ID
	track = animator:LoadAnimation(animation)

	humanoid.Running:Connect(function(speed)
		if speed > 0.1 and track.IsPlaying then
			track:Stop()
		end
	end)
end

local function toggleEmote()
	if track == nil then
		return
	end
	if track.IsPlaying then
		track:Stop()
	else
		track:Play()
	end
end

player.CharacterAdded:Connect(setupCharacter)
if player.Character then
	setupCharacter(player.Character)
end

UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then
		return
	end
	if input.KeyCode == Enum.KeyCode.E then
		toggleEmote()
	end
end)

足したのは、コードの16〜20行目の humanoid.Running の部分です。キャラクターの歩く速さが0.1を超えたときに、踊っていたら止めます。

以下は、アソビシフト編集部が試した結果です。Wキーを押して歩いたままEキーを押すと、踊りながら歩き続け、Wキーを離すと止まりました。

3D画面の上の作品のタブ「Asobishift Emote Practice」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。3D画面を1回押して、Eキーを押します(1枚目)。踊っている間にWキーを押して歩くと、腕が下りて止まります(2枚目)。

チャットの入力中に「e」と打っても踊らないことも確かめます。「/」キーを押してチャットの欄を開き、「eee」と入れます(画像の1)。キャラクターは踊りません(画像の2)。Escキーを押してチャットの欄を閉じます。

Shift + F5キーでテストを停止します。

9. スマホでも押せるボタンを作る

スマホにはEキーがないので、画面にボタンを作ります。ScreenGuiは画面に部品を並べる入れ物、TextButtonは文字の入ったボタンです。ボタンの基本はボタンを作る方法でも解説しています。

3D画面の上の作品のタブ「Asobishift Emote Practice」を押して3D画面に戻ります。エクスプローラの「StarterGui」にマウスを乗せ、右に出る「+」を押します(赤い枠)。

検索欄に「ScreenGui」と入れ、一覧の「ScreenGui」を押します(赤い枠)。

エクスプローラで入ったScreenGuiを選んだままF2キーを押し、「EmoteGui」と入力してEnterキーを押します(赤い枠)。

続けてEmoteGuiを選んだまま、プロパティの検索欄に「ResetOnSpawn」と入力します。チェックが入っています(赤い枠)。

チェックを押して外します(赤い枠)。外さないと、キャラクターが倒れて出直したあとに、ボタンを押しても踊らなくなります。

「EmoteGui」にマウスを乗せ、右に出る「+」を押します(赤い枠)。

検索欄に「TextButton」と入れ、一覧の「TextButton」を押します(赤い枠)。

エクスプローラで入ったTextButtonを選んだままF2キーを押し、「DanceButton」と入力してEnterキーを押します(赤い枠)。

続けてDanceButtonを選んだまま、プロパティを4つ変えます。プロパティの検索欄に名前を入れ、右の欄に値を入れてEnterキーを押します。似た名前の欄が並ぶので、「Text」「Size」「Position」は名前がちょうどその言葉の欄に入れます。

プロパティ値
Textダンス
TextSize28
Size{0.16, 0},{0.12, 0}
Position{0.8, 0},{0.4, 0}

EmoteScriptのタブを押し、中身を全部消して、次のコードを貼り付けます。貼り付けたら、コードの4行目の「ここに番号」を自分の番号に書きかえます。

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")

local ANIMATION_ID = "rbxassetid://ここに番号"

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local emoteGui = playerGui:WaitForChild("EmoteGui")
local danceButton = emoteGui:WaitForChild("DanceButton")
local track = nil

local function setupCharacter(character)
	local humanoid = character:WaitForChild("Humanoid")
	local animator = humanoid:WaitForChild("Animator")
	local animation = Instance.new("Animation")
	animation.AnimationId = ANIMATION_ID
	track = animator:LoadAnimation(animation)

	humanoid.Running:Connect(function(speed)
		if speed > 0.1 and track.IsPlaying then
			track:Stop()
		end
	end)
end

local function toggleEmote()
	if track == nil then
		return
	end
	if track.IsPlaying then
		track:Stop()
	else
		track:Play()
	end
end

player.CharacterAdded:Connect(setupCharacter)
if player.Character then
	setupCharacter(player.Character)
end

UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then
		return
	end
	if input.KeyCode == Enum.KeyCode.E then
		toggleEmote()
	end
end)

danceButton.Activated:Connect(toggleEmote)

足したのは2か所です。コードの7〜9行目でボタンを探し、いちばん下の行でボタンを押したときにtoggleEmoteを呼びます。Activated はマウスでも指でも、ボタンが押されたときに届きます。

3D画面の上の作品のタブ「Asobishift Emote Practice」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。「ダンス」のボタンを押します(画像の1)。キャラクターが踊ります(画像の2)。もう一度押すと止まります。

ボタンを押して止めたら、左上の3本線のボタンを押し、メニューを下へ送って「リスポーン」を押します。キャラクターが出直したあとに「ダンス」のボタンを押すと、また踊ります。

以下は、アソビシフト編集部が試した結果です。ResetOnSpawnにチェックが入ったままだと、出直したあとにボタンを押しても踊りませんでした。チェックを外すと踊りました。

Shift + F5キーでテストを停止します。

スマホの画面で確かめる

3D画面の右上の歯車のアイコンを押し、開いた一覧の「GUI」の中の「デバイスシミュレーション」にチェックを入れます(赤い枠)。新しいBaseplateでは、最初からチェックが入っていることがあります。そのときは押さずにそのままにします(押すとチェックが外れて、3D画面の上の「現在のデバイス」の欄が消えます)。

3D画面の左上に「現在のデバイス」と出てスマホの形にならないときは、欄の左のスマホのアイコンを押します(赤い枠)。マウスを乗せると「スマートフォンに切り替えます」と出ます。

3D画面を1回押してからF5キーでテストを始め、「ダンス」のボタンを押します(画像の1)。スマホの画面でも踊ります(画像の2)。

Shift + F5キーでテストを停止します。3D画面のすぐ上の機種名の右のパソコンのアイコンを押すと、元の画面に戻ります。

10. チャットのコマンドで出す

最後に、チャットに「/banzai」と入れると踊るようにします。TextChatCommandは、チャットのコマンドを作る部品です。

3D画面の上の作品のタブ「Asobishift Emote Practice」を押して3D画面に戻ります。エクスプローラの「TextChatService」にマウスを乗せ、右に出る「+」を押します(赤い枠)。

検索欄に「TextChatCommand」と入れ、一覧の「TextChatCommand」を押します(赤い枠)。

エクスプローラで入ったTextChatCommandを選んだままF2キーを押し、「BanzaiCommand」と入力してEnterキーを押します(赤い枠)。

続けてBanzaiCommandを選んだまま、プロパティの検索欄に「Alias」と入力します。上の「PrimaryAlias」の欄に「/banzai」と入れてEnterキーを押します(赤い枠)。

EmoteScriptのタブを押し、中身を全部消して、次のコードを貼り付けます。貼り付けたら、コードの5行目の「ここに番号」を自分の番号に書きかえます。これでコードは完成です。

local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local TextChatService = game:GetService("TextChatService")

local ANIMATION_ID = "rbxassetid://ここに番号"

local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
local emoteGui = playerGui:WaitForChild("EmoteGui")
local danceButton = emoteGui:WaitForChild("DanceButton")
local track = nil

local function setupCharacter(character)
	local humanoid = character:WaitForChild("Humanoid")
	local animator = humanoid:WaitForChild("Animator")
	local animation = Instance.new("Animation")
	animation.AnimationId = ANIMATION_ID
	track = animator:LoadAnimation(animation)

	humanoid.Running:Connect(function(speed)
		if speed > 0.1 and track.IsPlaying then
			track:Stop()
		end
	end)
end

local function toggleEmote()
	if track == nil then
		return
	end
	if track.IsPlaying then
		track:Stop()
	else
		track:Play()
	end
end

player.CharacterAdded:Connect(setupCharacter)
if player.Character then
	setupCharacter(player.Character)
end

UserInputService.InputBegan:Connect(function(input, gameProcessed)
	if gameProcessed then
		return
	end
	if input.KeyCode == Enum.KeyCode.E then
		toggleEmote()
	end
end)

danceButton.Activated:Connect(toggleEmote)

local banzaiCommand = TextChatService:WaitForChild("BanzaiCommand")
banzaiCommand.Triggered:Connect(toggleEmote)

足したのは、コードの3行目と、いちばん下の2行です。BanzaiCommandに入れた言葉がチャットで送られると、toggleEmoteを呼びます。

3D画面の上の作品のタブ「Asobishift Emote Practice」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。「/」キーを押し、「/banzai」と入れて(赤い枠)Enterキーを押します。

キャラクターが踊ります(赤い枠)。コマンドの文字はチャットには出ませんでした。

Shift + F5キーでテストを停止します。

11. エモートの輪の中身を変える

輪の中身も、自分のゲーム用に変えられます。公式の説明によると、輪に入れられるのは8個までで、番号はカタログのエモートのものです。

3D画面の上の作品のタブ「Asobishift Emote Practice」を押して3D画面に戻ります。エクスプローラの「StarterPlayer」の中の上の行の「StarterCharacterScripts」にマウスを乗せ、右に出る「+」を押します(赤い枠)。6節の「StarterPlayerScripts」とは別の場所です。

検索欄に「LocalScript」と入れ、一覧の「LocalScript」を押します(赤い枠)。

エクスプローラで入ったLocalScriptを選んだままF2キーを押し、「EmoteMenuScript」と入力してEnterキーを押します(赤い枠)。

EmoteMenuScriptのタブの中身を全部消して、次のコードを貼り付けます。番号は公式の説明のものなので、そのまま使えます。

local character = script.Parent
local humanoid = character:WaitForChild("Humanoid")
local description = humanoid:WaitForChild("HumanoidDescription")

task.wait(3)

local emotes = {
	["Hello"] = { 3576686446 },
	["Stadium"] = { 3360686498 },
	["Salute"] = { 3360689775 },
	["Point"] = { 3576823880 },
}

description:SetEmotes(emotes)
description:SetEquippedEmotes({ "Hello", "Stadium", "Salute", "Point" })
コード意味
emotes輪に入れるエモートの名前と番号。名前は輪にそのまま出る
SetEmotes使えるエモートを決める
SetEquippedEmotes輪に並べる順番を決める。1番から時計回りに並ぶ
task.wait(3)キャラクターの準備が終わるのを3秒待つ

以下は、アソビシフト編集部が試した結果です。task.wait(3) の行がないと、輪の中身は変わりませんでした。

3D画面の上の作品のタブ「Asobishift Emote Practice」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。3D画面を1回押して3秒ほど待ち、「.」(ピリオド)キーを押します。1〜4番に、コードで決めた4つが並びます(赤い枠)。

3番にマウスを乗せると、まん中にコードで決めた名前「Salute」が出ます(赤い枠)。

押すと、キャラクターが敬礼します(赤い枠)。

Shift + F5キーでテストを停止します。

自作の動きは輪に入る?

ここは読むだけで大丈夫です。以下は、アソビシフト編集部が自作の動きの番号を emotes に入れて試した結果です。

輪には映画のカチンコのような絵で入り、まん中に名前も出ました(赤い枠)。

しかし押すと「今はリアクションを使えません。」と出て、動きは再生されませんでした(赤い枠)。自作の動きは、この記事のようにキー・ボタン・チャットで出すのが確実です。

12. エモートができないときに確かめる所

以下は、アソビシフト編集部が同じ状態を作って試した結果です。この節は読むだけで大丈夫です。

状況起きたこと直し方
キャラクターがR6輪から選ぶと「リアクションを表示するにはR15アバターに切り替えてください。」と出た(1枚目)。「/e dance」は動いた下の「R15にする手順」
R15で作った動きをR6で再生Eキーを押しても動かなかった(2枚目)R15のキャラクターで遊ぶ
優先順位がコアのまま歩くとダンスが見えない下の「優先順位を変えて公開し直す手順」
自作の動きを輪に入れた「今はリアクションを使えません。」と出たキー・ボタン・チャットで出す
ゲームがメニューを止めている「.」キーで輪が開かなかった。「/e dance」は動いたスクリプトの SetCoreGuiEnabled(Enum.CoreGuiType.EmotesMenu, false) の行を消す

R6は、StarterPlayerにR6のキャラクターを「StarterCharacter」の名前で入れて試しました。

R15にする手順

上の「アバター」タブの左の「設定」を押します。画面の下に「アバター設定」の欄が開くので、欄の右上の「…」を押し、「R15のみ」を選びます(赤い枠)。

優先順位を変えて公開し直す手順

5節で人形を消したあとでも、公開した動きは読み込み直せます。

3節と同じように人形を置き、4節と同じように「クリップ編集」を開いて人形を選びます。再生ボタンの並びの「…」を押し、「インポート」を押して「Robloxから」を押します(赤い枠)。

公開した動きの一覧が出ます。「バンザイ」を押して(画像の1)、「インポート」を押します(画像の2)。

ひし形のキーフレームが読み込まれます(赤い枠)。あとは5節と同じように優先順位を変えて「Robloxに公開」を押し、出てきた番号をコードに入れます。

動きそのものが再生されないときは、アニメーションの作り方の「動きが再生されないときの確かめ方」も見てください。

AIに相談するときの伝え方

Roblox Studioで、StarterPlayerScriptsのLocalScriptからエモートを再生しています。
Animator:LoadAnimationで読み込み、Eキーでtrack:Play()とtrack:Stop()を切りかえています。
エモートの途中でジャンプしたら止まるようにしたいです。どこにどう書けばよいですか。

よくある質問

エモートのコマンドの一覧は?

公式の説明に挙がっているのはdance・point・cheerです。編集部は「/e dance」「/e cheer」「/e point」をチャットで試し、3つとも動きました。

スクリプトから輪のエモートを出すには?

Humanoidの PlayEmoteAsync を使います。公式のEmotesのページのコードは PlayEmote ですが、APIの説明では PlayEmote は古い方法で、PlayEmoteAsync を使うよう書かれています。書き方は humanoid:PlayEmoteAsync("Salute") です。以下は、アソビシフト編集部が11節の輪を作った状態で、テスト中のコマンドバーから実行した結果です。Salute と Point はtrueが返り、輪にない名前を入れると「No emote exists with name」というエラーが出ました。

友だちにも見える?

公式のAnimatorの説明によると、プレイヤーのキャラクターのAnimatorで、そのプレイヤーの側から始めた動きは、ほかのプレイヤーにも伝わります。この記事のコードは、この形です。

次のステップ(上級 25/42)

次は、人形の色と背を変えて帽子を付け、自分だけのキャラクターで歩きます。

→ 11月5日に公開します。今日作った作品は保存しておきましょう

次に知りたいことを選ぶ

次に読む記事