ブログ一覧

  1. HOME
  2. ブログ
  3. 制作事例
  4. 🗡️【Roblox】かんたん銃(ピストル)を作ってみよう!

🗡️【Roblox】かんたん銃(ピストル)を作ってみよう!

〜弾がまっすぐ飛んで、音がして、当たるとダメージ!〜

こんにちは🌞
今日はRoblox Studioを使って、自分だけのかっこいい銃(ピストル)🔫を作ってみよう!
順番にやればぜったいできるよ!レッツチャレンジ💪


1. 🔨 銃の形を作ろう!

まずは銃の見た目を作るよ!

🧱 手順:

  • 「Part」を作って、細長くしよう(サイズ:長さ4、幅1、高さ1くらい)
  • 色は好きに決めてOK!黒やグレーが人気だよ
  • 名前は「Handle」にしてね(Toolの中に入れるため)

💡 ポイント: このPartが銃の「持つところ」になるよ!


2. 💥 弾を作ろう!

次に、銃から出る**弾(たま)**を作るよ!

🧱 手順:

  • 小さな「Part」を作って「球(きゅう)」にしよう
  • サイズは 0.3 にして小さく!
  • 名前は「Bullet」にして、ServerStorage に入れておこう!
  • Anchored = false, CanCollide = false にするのをわすれずに!

🎯 弾の形を丸にするのがリアルでオススメ!


3. 🚀 弾をまっすぐ飛ばす(重力なし!)

ふつうのパーツは地面に落ちるけど、弾は**まっすぐビューン!**と飛ばしたいよね!

📜 弾の中に入れるスクリプト:

luaコピーする編集するlocal bullet = script.Parent

local bv = Instance.new("BodyVelocity")
bv.Velocity = bullet.CFrame.LookVector * 200  -- 前に200スピードで進むよ!
bv.MaxForce = Vector3.new(1e5, 1e5, 1e5)       -- 大きな力で押し出す
bv.Parent = bullet

game:GetService("Debris"):AddItem(bullet, 3)  -- 3秒後に自動で消えるよ🧼

🧠 おぼえよう!
BodyVelocity を使うと、パーツがまっすぐ進むようになるよ!


4. 🧰 銃を撃つスクリプトを書こう!

銃のモデルを「Tool」にして、スクリプトをつけよう!

📜 Toolの中に入れるスクリプト:

luaコピーする編集するlocal tool = script.Parent
local ServerStorage = game:GetService("ServerStorage")
local Players = game:GetService("Players")

tool.Activated:Connect(function()
    local character = tool.Parent
    local player = Players:GetPlayerFromCharacter(character)
    local handle = tool:WaitForChild("Handle")

    local bullet = ServerStorage:WaitForChild("Bullet"):Clone()
    bullet.CFrame = handle.CFrame
    bullet.Parent = workspace
end)

🔧 Toolの中身はこうしよう:

  • Handle(銃本体)
  • Script(上のコード)
  • Sound(次のステップで使うよ!)

5. 🔊 バン!という音を出そう!

銃を撃つときはやっぱり「バン!」って音があると気持ちいい!

🎵 やり方:

  1. Toolの中に「Sound」を入れる
  2. 「SoundId」をこれにする:
    rbxassetid://911882501 ←ピストルの音!
  3. スクリプトに音を鳴らすコードを追加:
luaコピーする編集するlocal gunshotSound = tool:WaitForChild("Sound")
gunshotSound:Play()

🎧 おすすめ!他にも「Gun」「Shot」と検索すると色んな音があるよ!


6. ❤️ ダメージを与える!&物に当たったら消す!

敵に当たったらHPをけずろう!
あと、ブロックなど何かに当たったら弾を消すようにしよう!

📜 弾の中に入れるコード:

luaコピーする編集するlocal bullet = script.Parent

bullet.Touched:Connect(function(hit)
    local humanoid = hit.Parent:FindFirstChild("Humanoid")
    if humanoid then
        humanoid:TakeDamage(10)  -- 10ダメージ!
    end
    bullet:Destroy()  -- 何かに当たったら弾を消す!
end)

🎯 こうすると:

  • 敵に当たればHPがへる!
  • ブロックでも地面でも当たればパッと消える!

🧠 まとめ

🧩 パーツ💡 ポイント
銃の本体Partで作って名前を「Handle」にしよう
弾(Bullet)小さな球で作ってServerStorageに入れよう
弾を飛ばすBodyVelocityでビューンと前に進む
撃った時の音SoundをToolに入れて Sound:Play() しよう
敵にダメージTouchedTakeDamage() でHPをけずろう!
ぶつかったら消すbullet:Destroy() を使ってすぐに消えるようにしよう!

🥳 おつかれさま!

これで君もRobloxシューターゲームの開発者🎮!
お友だちと遊ぶFPSゲームにも使えるよ!

📌 次のステップで:

  • 🎯 敵を出したり
  • 🔁 弾を連射したり
  • 🧠 スコアを増やしたり

もできるよ!

関連記事