Roblox はじめて体験・基礎編

第10回「キャラクターにScriptを設定しよう」

RB10-07

キャラクターに
Scriptを設定しよう

受講を終了する
7. 自由制作(7 / 8)
STAR AI・情報塾

自由制作に挑戦しよう

今日作った2段ジャンプ・ワープ・チェックポイントを組み合わせて、自分だけのステージを仕上げましょう。余裕がある人は、以下のアイデアにも挑戦してみてください。

🧗 壁ジャンプ

2段ジャンプと似た考え方で、壁に触れている間だけジャンプできるようにする応用です。

⚔️ 攻撃できる剣

ツール型アイテム(第4回)とHumanoid.Health(第9回)の組み合わせで作れます。

🚗 車を運転できるようにする

ツールボックスの「 乗り物 」カテゴリから車を出すだけで、最初から運転できる状態のものが手に入ります。

挑戦してみよう:追ってくるNPC

球体パーツを1つ作り、名前を「 追跡NPC 」にして「 固定 」もしておきましょう。Scriptを入れて、以下のコードを貼り付けると、近づいた時だけゆっくりプレイヤーを追いかけてきます。

local ball = script.Parent
local speed = 2             -- 追いかける速さ
local detectRange = 30      -- 反応する距離

game:GetService("RunService").Heartbeat:Connect(function()
    for _, player in pairs(game.Players:GetPlayers()) do
        local character = player.Character
        if character and character:FindFirstChild("HumanoidRootPart") then
            local target = character.HumanoidRootPart
            local distance = (target.Position - ball.Position).Magnitude

            if distance <= detectRange then
                local direction = (target.Position - ball.Position)
                direction = Vector3.new(direction.X, 0, direction.Z).Unit
                ball.Position = ball.Position + direction * speed * (1/60)
            end
        end
    end
end)
ポイント RunService.Heartbeatは「 毎フレーム(1秒間に約60回) 」実行される特別な仕組みです。全プレイヤーとの距離を毎回チェックし、近ければ追いかける処理を行っています。速さや反応距離は2〜3行目の数値を変えれば調整できます。
もっと手軽に試したい人へ 自分でScriptを書かなくても、ツールボックスで公式の「 Drooling Zombie 」を検索すれば、最初からプレイヤーを追いかけて攻撃するNPCがすぐに手に入ります。倒せるようにしたい場合は、Script付きの剣なども一緒に用意しましょう。

チェックポイントとワープを組み合わせて、ちょっと変わったショートカットのあるステージにしてみたよ!

Well done!

次のステップに進みましょう!