コンテンツへスキップ

【Roblox Studio入門⑦】アニメーション編「オリジナル剣」を作るパート2!【完全解説】


オリジナル剣を作ろうパート1」で作った剣に、自分だけのアニメーションをつけよう!

キャラクター(Rig)と剣を連結する「Motor6D」、アニメーションエディタでアニメーションを作るやり方、アニメーションをスクリプトへ反映させる手順などについて詳しく解説します。

アニメーション編「オリジナル剣」を作る パート2!アニメーション編【完全解説】

 この動画で学べること

 1. キャラクター(Rig)と剣を連結する「Motor6D」の使い方
 2. アニメーションエディタでアニメーションを作るやり方
 3. 歩きながら攻撃できる「優先順位(Action)」の設定
 4. Robloxへ公開して、IDをコピーするやり方
 5. 作成したアニメーションをスクリプトへ反映させる手順

 チャプター目次 :
00:00 オープニング・完成品の紹介
00:17 剣ツールをワークスペースに配置する
00:53 Rig(リグ)と剣を Motor6D で連結する
02:12 アニメーションエディタの起動と初期設定
02:44 ポージングとタイムラインの編集方法
05:47 アニメーションのRobloxへ公開とIDコピー
06:39 アニメーションのスクリプトへの適用
07:07 アニメーションのテスト

1. 準備:剣ツールをワークスペースに配置する

STEP.1

StarterPack 内にあるMySword ツールを Workspace へ移動して

STEP.2

ビューポート上で剣を編集できるようにする

STEP.3

オリジナル剣の作り方は、パート1を見て下さい

STEP.4

パート3で解説するパーティクルが邪魔にならないように

STEP.5

エクスプローラー画面からパーティクルを選択して

STEP.6

プロパティの Enabled のチェックをオフにして非表示にする

STEP.7

剣のパーティクルが消えた

2. Rig(リグ)と剣を Motor6D で連結する

STEP.1

エクスプローラで Rig(キャラクターモデル)を展開する

STEP.2

RightHand(右手)の横にある ⊕ ボタンをクリック

STEP.3

Motor6Dオブジェクトを追加

STEP.4

追加した Motor6D のプロパティを設定をする

STEP.5

Motor6D設定手順1:プロパティにあるPart0の横の空欄をクリック

STEP.6

Motor6D設定手順2:エクスプローラの RightHand をクリック


※エクスプローラの「RightHand」メッシュをクリックすると、プロパティのPart0の空欄が「RightHand」に変わります。

STEP.7

Motor6D設定手順3:プロパティにあるPart1の横の空欄をクリック

STEP.8

Motor6D設定手順4:エクスプローラのHandleをクリック


※エクスプローラの「MySword」ツールの「Handle」メッシュをクリックすると、プロパティのPart1の空欄が「Handle」に変わります。

STEP.9

Rigの右手と剣が連結された!

STEP.10

しかし、剣の向きが不自然なので

STEP.11

「ホーム」タブの 「回転」 ツールで剣の向きを調整する

STEP.12

剣の向きを調整したらMotor6Dの設定完了

3. アニメーションエディタの起動と初期設定

STEP.1

「アバター」タブにある 「アニメーション」 ボタンをクリック

STEP.2

アニメーションエディタが開いたら、エクスプローラの Rig を選択

STEP.3

トラックリスト右上の ⊕ マークをクリック

STEP.4

「全ての本文を追加」 を選ぶ


※日本語訳の影響で「全ての本文を追加(Add All Body)」と表示されていますが、これは「キャラクターの全身の関節を追加する」という意味です。

STEP.5

Rigの各パーツと、連結した剣のアニメーションを設定出来るようになった

4. ポージングとタイムラインの編集方法

STEP.1

最初のフレーム(0:00)で剣を構えるポーズを作る

STEP.2

タイムラインの青いバーを右側に動かす

STEP.3

次のポーズを作る

STEP.4

これ(STEP.2 – STEP.3)を繰り返すことで、剣による攻撃アニメーションが完成

STEP.5

ビューポート上でパーツを選択しづらいときは(上半身を選択したいときなど)

STEP.6

トラックリストでもパーツを選択出来ます

STEP.7

トラックリストでUpper Troso(上半身)をアニメーションのスクリプトへの適用

STEP.8

Upper Troso(上半身)のポーズを変えることが出来る

STEP.9

Rig全体を動かしたいときは

STEP.10

トラックリストから「Lower Torso(下半身)」を選択

STEP.11

「Lower Torso(下半身)」を選択すれば、Rig全体を回転、移動出来る

STEP.12

「移動」ツールでRigの位置も変えられる

STEP.13

Rig全体を上に動かす

STEP.14

ある程度完成したら、プレイボタンをクリックしアニメーションを確認する

STEP.15

キーフレームのコピー・ペースト手順1:コピーしたいキーフレームを選択し、Ctrl + Cキーを押す

STEP.16

キーフレームのコピー・ペースト手順2:タイムラインの青いバーを貼り付けたい場所に動かして、Ctrl + Vキーを押す

STEP.17

タイムラインを最初に戻して

STEP.18

プレイボタンを押して確認してみよう

STEP.19

アニメーションの完成!


※動画内で剣の軌跡(トレイル)が見えている場合がありますが、これはパート3で設定するエフェクトです。何も表示されなくても問題ありません。

5. アニメーションのRobloxへ公開とIDコピー

STEP.1

アニメーションエディターの左上にある 「…(設定ボタン)」 をクリック

STEP.2

「アニメーションの優先順位を設定」 を選び

STEP.3

「動作 (アクション)」 を選択する


重要: これを「動作 (アクション)」に設定することで、プレイヤーが歩きながら剣を振ったときでも、攻撃モーションが正しく優先して再生されるようになります。

STEP.4

もう一度 「…(設定ボタン)」 をクリックし、「Robloxに公開」 をクリック

STEP.5

「Robloxに公開」 をクリック

STEP.6

「Robloxへ公開」手順1:タイトルを入力して

STEP.7

「Robloxへ公開」手順2:「送信」ボタンをクリック

STEP.8

「Robloxへ公開」手順3:Robloxへの公開が完了

STEP.9

「Robloxへ公開」手順4:画面に表示された 「ID(数字の列)」 のコピーアイコンをクリック

STEP.10

「Robloxへ公開」手順5:「ID(数字の列)」 がクリップボードにコピーされた!


※クリップボード(見えない一時保管場所)にコピーされたIDは、次の章で説明するScript(スクリプト)の「指定された場所」に貼り付けます。

6. アニメーションのスクリプトへの適用

STEP.1

エクスプローラから MySword の中にある Script を開く

STEP.2

スクリプト内の anim.AnimationId という部分を探す

STEP.3

rbxassetid://の後に

STEP.4

5章でクリップボードにコピーしたIDをCtrl + Vで貼り付ける

7. アニメーションのテスト

STEP.1

Workspace に置いていた MySword ツールをドラッグして

STEP.2

MySwordツールを元の StarterPack フォルダに戻

STEP.3

プレイボタンをクリックし、実際に剣を振ってみよう!

STEP.4

剣を振ったときのアニメーションがカッコよくなった!

8. スクリプト

-- 1. 設定:パーツとダメージ量
local tool = script.Parent
local sword = tool:WaitForChild("Sword")
local handle = tool:WaitForChild("Handle") -- Sword内のHandleを参照
local swordSound = handle:FindFirstChildOfClass("Sound") -- Handleの中の音を探す
local damage = 100 -- ダメージ量
local isAttacking = false -- 攻撃判定のスイッチ

-- 2. アニメーションの準備
local anim = Instance.new("Animation")
-- anim.AnimationId = "rbxassetid://522635514" -- 標準のアニメーション
-- ここにアニメションIDを入れる!
anim.AnimationId = "rbxassetid://75057476916808" -- チュートリアル動画で作ったアニメーションのID
local loadAnim = nil -- 再生用の入れ物

-- 3. 装備した時:アニメーションをプレイヤーに読み込む
tool.Equipped:Connect(function()
	local character = tool.Parent
	local humanoid = character:FindFirstChildOfClass("Humanoid")

	if humanoid then
		loadAnim = humanoid:LoadAnimation(anim)
	end
end)

-- 4. クリックした時:アニメーション再生とスイッチの管理
tool.Activated:Connect(function()
	if loadAnim and not isAttacking then
		isAttacking = true -- 攻撃開始
		swordSound:Play() -- 音を再生
		loadAnim:Play()
		task.wait(0.8) -- 攻撃が続く時間
		isAttacking = false -- 攻撃終了
	end
end)

-- 5. 刃が触れた時:ダメージを与える
sword.Touched:Connect(function(hit)
	if isAttacking then
		local character = tool.Parent
		local targetChar = hit.Parent
		local targetHuman = targetChar:FindFirstChildOfClass("Humanoid")

		-- 自分以外かつ人間(またはモンスター)ならダメージ
		if targetHuman and targetChar ~= character then
			targetHuman:TakeDamage(damage)
			isAttacking = false -- 連続ヒット防止
		end
	end
end)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください