【初心者向け】Roblox Studioでアニメーションを作成してプレイヤーを動かす方法を徹底解説!
コラム
Roblox Studio(ロブロックススタジオ)では、自分だけのゲームを作れるだけでなく、キャラクターにオリジナルの動きを加える「アニメーション」も作成できます。
この記事では、ゲーム開発を始めたばかりの初心者でもわかるようにRoblox Studioでアニメーションを制作し、プレイヤーにそのアニメーションを再生させる方法をステップごとに解説していきます。
目次
Roblox Studioとは?
Roblox Studio(ロブロックススタジオ)は、無料で使えるRobloxのゲーム開発ツールで、プログラミング言語「Lua」を使用してアスレチックゲームやロールプレイングゲームなど、様々なゲームを開発し世界中に公開することができます。
まだパソコンにRobloxStudioをダウンロードしていない方は
→こちらの記事からダウンロード:Roblox(ロブロックス)でゲームを作る方法!初心者向けプログラミングガイド
アニメーションを使うと何ができる?
Roblox Studioのアニメーション機能を使用することで、ゲーム内のキャラクターやオブジェクトにオリジナルの動きを追加することが可能です。
各パーツをパラパラ漫画のように段階的に動かすだけで、誰でも直感的にアニメーションを制作することができます。
具体的には、以下のような表現が可能です。
- キャラクターのダンスや挨拶などのモーション
- 戦闘時のアクション(例:武器を振る動作)
- ゲーム開始時の演出的な動き
- エモート(手を振る、ジャンプなど)
アニメーションの導入により、ゲーム全体の臨場感や表現力が大きく向上します。
アニメーションの作成ステップ
それでは早速アニメーションを作っていきましょう。今回は実際に教室の生徒さんから実際に希望のあった「テニスのゲーム内でプレイヤーがボールを打つ動き」を例に作っていきたいと思います。
アニメーションの制作はRobloxStudio(ロブロックススタジオ)を使用します。
まだダウンロードが出来ていない方はこちらの記事を参考にダウンロードをしましょう。
→Roblox(ロブロックス)でゲームを作る方法!初心者向けプログラミングガイド
1.アバター>リグビルダー>R15のブロック型アバターを生成します
R15とR6の違いは関節の数です。R15の方が関節の数が増え、より細かな動きを作ることができます

2.アバター>アニメーション編集をクリックしたら、ワールド内のRigをクリック

3.作るアニメーションの名前を付け、「+」>すべての本文を追加をクリック

4.メモリの1つ下段、青線の上で右クリックをし、ここにキーフレームを追加をクリック
出てきたダイヤ型のマークが”キーフレーム”といいます
このキーフレームを作っていき、パラパラ漫画のようにすることでアニメーションができます

5.0.5秒で腕を上げたいので、青線を0.5のメモリまで移動させ、腕を上げたい位置まで回転させます

6.出来たら左にある「▶」またはスペースキーで、アニメーションの確認が行えます
もう少し動きを早くしたい場合は、キーフレームをドラッグアンドドロップすれば速さの変更ができます

7.動きが出来たら、タイトル横にある「・・・」をクリックし、「保存」と「Robloxに公開」をクリック

これで、アニメーションの作成は完了です!
次にプログラミングを行い、自分のアバターにこの動きをさせてみましょう。
アニメーションをプレイヤーに再生させるステップ
1.ツールボックス>持ち物>マイアニメーションを開き、先ほど作ったアニメーションを出します。
💡ツールボックスが無い場合は、表示>プロパティの右にある小さなアイコンの中にツールボックスボタンがあるので、クリックしましょう。

2.使いたいアニメーションで右クリック>アセットIDをコピーをクリック

3.エクスプローラー>StarterPlayer>StarterCharacterScriptsの「+」からLocalScriptを追加
4.LocalScriptの「+」からAnimationを追加。画像の通りになっていればOKです

5.追加したAnimationのエクスプローラーのAnimationIdに、先ほどコピーしたIdを貼り付けます。

6.LocalScriptを開き、print文は削除しましょう。以下のプログラムを記述します。
ここで1度プレイすると、3秒後に先ほど作ったアニメーションがプレイされることが分かります。
local animation = script:WaitForChild("Animation")
local humanoid = script.Parent:WaitForChild("Humanoid")
local anim = humanoid:LoadAnimation(animation)
wait(3)
anim:Play()
ボタンでアニメーションを切り分ける
ではいよいよテニスでスマッシュを打つ動きを、プログラムで制御したいと思います。
①1回目のマウスクリックでボールを上げる
②2回目のマウスクリックで打つ
と動きを分けたいので、新しくアニメーション「Smash」を追加しました。
1.LocalScriptの中身を、以下のプログラムに書き換えます
💡6行目と8行目の「ここにIDをいれる」の部分に作ったそれぞれのIDを貼り付けます
--アニメーションの設定
local animation = script:WaitForChild("Animation")
local humanoid = script.Parent:WaitForChild("Humanoid")
local ballupAnim = Instance.new("Animation")
ballupAnim.AnimationId = "http://www.roblox.com/asset/?id=ここにIDをいれる"
local smashAnim = Instance.new("Animation")
smashAnim.AnimationId = "http://www.roblox.com/asset/?id=ここにIDをいれる"
local ballupTrack = humanoid:LoadAnimation(ballupAnim)
local smashTrack = humanoid:LoadAnimation(smashAnim)
--マウスクリックの設定
local tool = script.Parent
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local clickCount = 0
local debounce = false
mouse.Button1Down:Connect(function()
if debounce then return end
debounce = true
if clickCount == 0 then
clickCount += 1
ballupTrack:Play()
else
clickCount = 0
smashTrack:Play()
end
wait(0.5)
debounce = false
end)
5.プレイして動きを確認しましょう
少し腕の上がりが少ないですが、きちんと動いていることが確認できました!

よくあるエラーと対処法
アニメーションを制作する際、エラーが発生することがあると思います。
ゲーム開発初心者の段階でのエラーは、概ね単純なミスなことが多いです。
焦らずもう1度手順やプログラムを、細かく見直してみましょう。
エラー内容 | 主な原因 | 対処方法 |
---|---|---|
アニメーションが再生されない | AnimationIdが正しくない | “rbxassetid://” から始まる形式か確認する |
アニメーションが途中で止まる or アニメーションがループしている | ループ設定が正しくない | 作ったアニメーションのLoop プロパティを true またはFalse に設定する |
応用アイデア:公式アニメーションを活用しよう
Robloxでは、他のクリエイターが作ったたくさんのアニメーションが公開されています!
CreaterHub>Storeで気になるアニメーションを使ってみるのも、ゲームを効率よく制作する手段です。

まとめ:Robloxアニメーションで自分だけの動きを作ろう!
Roblox Studioでは、アニメーション機能を活用することで、キャラクターに生命感を与え、より魅力的なゲームを構築することができます。
初心者でも取り組みやすいため、ゲーム制作の幅を広げる第一歩としてぜひ活用してみてください。
Roblox体験授業、開催中!
当教室では、子ども向けのRobloxゲーム開発コースを開催しています。ゲームが大好きなお子さまが「遊ぶだけ」から「自分で作る」楽しさを知るきっかけになる大人気のクラスです。
Roblox Studioの使い方や、オリジナルアイテムやゲームの制作を講師が丁寧にサポートします。
「プログラミングは初めて…」というお子さまも大歓迎です!
ご興味のある方はお気軽にご相談ください。皆さまのご参加をお待ちしております!

国内外の幼児~小学校教育に携わり、現在子ども向けプログラミング講師として従事。
ただプログラミングを教えるだけではなく、子ども1人1人と保護者、そして教室と相互に関わり合い成長していけるように日々取り組んでいます!