← すべてのガイド
ガイド 2

最初の Tycoon を作ろう

Dropper が Cube を作り、Conveyor が運び、Collector が cash に変えて、ボタンで2つ目の Dropper を買います。

無料60分 · 初心者 · Roblox Studio
1
ステップ 1 / 9

プレイスを準備する

  1. Roblox Studio を開いて、New Experience をクリックし、Baseplate のテンプレートを選びます。
  2. Explorer で Workspace の上にマウスを置いて、+ をクリックし、Folder を足します。名前は Tycoon にします。
  3. このガイドで作るものは、すべてこの Folder に入れます。そうすると、Explorer がすっきりします。

くわしく見る

  • Baseplate のテンプレートは、スタート画面のテンプレート一覧にあります。
  • + をクリックすると、一覧が開きます。Folder と入力するとすぐに見つかるので、それをクリックしよう。
  • フォルダの名前を変えるには、1回クリックして F2 を押し、Tycoon と入力して Enter を押します。
  • Mac では、このガイドに Ctrl と書いてあるところで、いつも Cmd キーを使ってね。
ヒント. Part を作ったら、すぐに名前を変えましょう。スクリプトは名前で Part をさがすので、Part のままの名前だと動きません。
このステップがうまくいかない

まず、この3つを見てみよう

  • パーツやスクリプトの名前が、ガイドとまったく同じか見てみよう。大文字と小文字も同じにします。
  • スクリプトが正しいオブジェクトの中にあるか見てみよう。コードの箱の上にあるラベルを見てください。
  • Window メニューから Output を開こう。赤い文字が出ていたら、どのスクリプトの何行目に問題があるかが分かります。

まだ困っていますか? メールで教えてください →

2
ステップ 2 / 9

プレイヤー全員に cash をあげる

  1. ServerScriptService の上にマウスを置いて、+ をクリックし、Script を足します。名前は Leaderstats にします。
  2. もとから入っている行を消して、このコードをはり付けます。
  3. Play を押します。プレイヤーのリストに、あなたの名前と、となりに Cash 0 が出ます。
ServerScriptService > Leaderstats
local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
	local stats = Instance.new("Folder")
	stats.Name = "leaderstats"
	stats.Parent = player

	local cash = Instance.new("IntValue")
	cash.Name = "Cash"
	cash.Value = 0
	cash.Parent = stats
end)

それぞれの部分の はたらき

  • PlayerAdded は、プレイヤーが入ってくるたびに、1回ずつ動きます。
  • leaderstats という名前の Folder は、特別です。Roblox は、その中の値を、プレイヤーのリストに出します。
  • IntValue は、整数を1つ持ちます。ここでは、プレイヤーの cash を持っています。

くわしく見る

  • ServerScriptService は、Explorer の一覧の中にあります。この中のスクリプトは、サーバーで動きます。プレイヤーは変えられません。
  • スクリプトは、新しいタブで開きます。コードの中をクリックして、Ctrl+A を押し、そのあと Ctrl+V で、ぜんぶ置きかえよう。
  • 自分の世界にもどるには、あなたのプレイスの名前がついたタブをクリックしよう。
  • プレイヤー一覧は、ゲーム画面の右上にあります。F5 でスタート、Shift+F5 でストップです。
このステップがうまくいかない

まず、この3つを見てみよう

  • パーツやスクリプトの名前が、ガイドとまったく同じか見てみよう。大文字と小文字も同じにします。
  • スクリプトが正しいオブジェクトの中にあるか見てみよう。コードの箱の上にあるラベルを見てください。
  • Window メニューから Output を開こう。赤い文字が出ていたら、どのスクリプトの何行目に問題があるかが分かります。

まだ困っていますか? メールで教えてください →

3
ステップ 3 / 9

Dropper を作る

  1. Tycoon の Folder の中に Part を足します。Size を 4, 1, 4 にして、Anchored をオンにして、名前を Dropper にします。
  2. Move ツール (Ctrl+2) で、床から約10 studs 上に持ち上げます。
  3. Dropper に Script を足して、このコードをはり付けます。
  4. Play を押します。2秒ごとに、黄色い Cube が落ちてきます。
Dropper > Script
local Debris = game:GetService("Debris")
local dropper = script.Parent

while true do
	task.wait(2)

	local cube = Instance.new("Part")
	cube.Name = "Cube"
	cube.Size = Vector3.new(1.5, 1.5, 1.5)
	cube.Color = Color3.fromRGB(255, 200, 60)
	cube.Position = dropper.Position - Vector3.new(0, 2, 0)
	cube.Parent = workspace

	Debris:AddItem(cube, 20)
end

それぞれの部分の はたらき

  • Instance.new は、コードから新しい Part を作ります。
  • Position は、Cube を Dropper の2 studs 下に置きます。
  • Debris は、20秒たつと Cube を消します。だから、古い Cube がたまりません。

くわしく見る

  • パーツをフォルダに入れるには、Explorer でパーツの名前をドラッグして、Tycoon という名前の上に重ねよう。
  • Move ツールで、緑の矢印を上にドラッグしよう。Properties の Position の欄では、まん中の数が高さです。
  • キューブは、ドロッパーの2 studs 下に出てきて、そこから落ちます。ドロッパーが低すぎると、キューブがその下にたまります。
  • 最初のキューブは、ゲームが始まって2秒後に出ます。
よくある まちがい. Cube が出てこないとき: スクリプトが Dropper の中に入っているか、Dropper が Anchored になっているかを、たしかめましょう。
このステップがうまくいかない

まず、この3つを見てみよう

  • パーツやスクリプトの名前が、ガイドとまったく同じか見てみよう。大文字と小文字も同じにします。
  • スクリプトが正しいオブジェクトの中にあるか見てみよう。コードの箱の上にあるラベルを見てください。
  • Window メニューから Output を開こう。赤い文字が出ていたら、どのスクリプトの何行目に問題があるかが分かります。

まだ困っていますか? メールで教えてください →

4
ステップ 4 / 9

Conveyor を足す

  1. Part を足して、Size を 6, 1, 30 にして、Anchored をオンにして、名前を Conveyor にします。
  2. 片方のはしが、Dropper のすぐ下に来るように、床に置きます。
  3. Conveyor に Script を足して、このコードをはり付けます。
  4. Play を押します。Cube が Conveyor に落ちて、上をすべっていきます。
Conveyor > Script
local conveyor = script.Parent

conveyor.AssemblyLinearVelocity = conveyor.CFrame.LookVector * 8

それぞれの部分の はたらき

  • AssemblyLinearVelocity は、Part の上にあるものを、どのくらいの速さで動かすかを、Roblox に教えます。
  • LookVector は、Part の前が向いている方向です。8 という数字は、1秒に進む studs の数で、速さです。

くわしく見る

  • どのパーツにも、前があります。コンベアは、キューブを前のほうへおし出します。
  • コンベアの長い辺、つまり30 studs のほうは、ドロッパーから遠ざかる向きにしよう。コレクターを置く場所のほうです。
  • コンベア自体は動きません。上にのったものだけがすべります。
  • キューブがよこから落ちるときは、コンベアのはばを広げるか、ドロッパーをコンベアのまん中に動かそう。
よくある まちがい. Cube が反対の方へすべっていくとき: Rotate ツール (Ctrl+4) で、Conveyor を180度まわします。
このステップがうまくいかない

まず、この3つを見てみよう

  • パーツやスクリプトの名前が、ガイドとまったく同じか見てみよう。大文字と小文字も同じにします。
  • スクリプトが正しいオブジェクトの中にあるか見てみよう。コードの箱の上にあるラベルを見てください。
  • Window メニューから Output を開こう。赤い文字が出ていたら、どのスクリプトの何行目に問題があるかが分かります。

まだ困っていますか? メールで教えてください →

5
ステップ 5 / 9

Cube を集める

  1. Conveyor のいちばん先に、Part を足します。Size を 6, 4, 1 にして、Anchored をオンにして、緑色にして、名前を Collector にします。
  2. Cube がぶつかるように、かべのように立てます。
  3. Collector に Script を足して、このコードをはり付けます。
  4. Play を押します。Collector まで来た Cube 1つごとに、Cash が 5 ふえます。
Collector > Script
local Players = game:GetService("Players")
local collector = script.Parent

collector.Touched:Connect(function(hit)
	if hit.Name ~= "Cube" then return end
	hit:Destroy()

	for _, player in ipairs(Players:GetPlayers()) do
		local stats = player:FindFirstChild("leaderstats")
		if stats then
			stats.Cash.Value += 5
		end
	end
end)

それぞれの部分の はたらき

  • スクリプトは、Cube という名前ではないものを、すべて無視します。だから、あなたの足は数えられません。
  • Destroy は、Cube をゲームから消します。
  • ループは、サーバーにいるプレイヤー全員に、5 cash をあげます。1つの区画に1人のオーナーがいる Tycoon は、上級レッスンです。

くわしく見る

  • Size 6, 4, 1 なら、もう立った形になります。はば6、高さ4、あつさ1です。コンベアの終わりに、閉じたゲートのようにまたがせて置こう。
  • 下の辺が、コンベアにふれるようにします。そうすると、キューブがその下をすり抜けられません。
  • 緑にするには、Properties の Color の欄をクリックします。
  • テストするには、F5 を押して、プレイヤー一覧を見よう。キューブがかべにとどくたびに、Cash が5ずつ増えます。
このステップがうまくいかない

まず、この3つを見てみよう

  • パーツやスクリプトの名前が、ガイドとまったく同じか見てみよう。大文字と小文字も同じにします。
  • スクリプトが正しいオブジェクトの中にあるか見てみよう。コードの箱の上にあるラベルを見てください。
  • Window メニューから Output を開こう。赤い文字が出ていたら、どのスクリプトの何行目に問題があるかが分かります。

まだ困っていますか? メールで教えてください →

6
ステップ 6 / 9

2つ目の Dropper を準備する

  1. Dropper を選んで、Ctrl+D を押します。コピーの名前を Dropper2 にして、1つ目のとなりへ動かします。Conveyor の上のままです。
  2. Workspace から ServerStorage へ、Dropper2 をドラッグします。
  3. 世界から消えます。ServerStorage に入っているオブジェクトは、スクリプトがもどすまで、そこで待っています。

くわしく見る

  • コピーは、もとのパーツのちょうど真上にあります。Move ツールで横にドラッグして、両方が見えるようにしよう。
  • コピーの名前を、F2 で変えます。名前は Dropper2 にしよう。D は大文字で、スペースはなしです。
  • ServerStorage は、Explorer の一覧の中にあります。Dropper2 という名前をそこへドラッグしよう。
  • コピーの中のスクリプトも、いっしょについてきました。もう一度追加する必要はありません。
ヒント. ServerStorage の中のスクリプトは、動きません。だから、2つ目の Dropper は、だれかが買うまで静かなのです。
このステップがうまくいかない

まず、この3つを見てみよう

  • パーツやスクリプトの名前が、ガイドとまったく同じか見てみよう。大文字と小文字も同じにします。
  • スクリプトが正しいオブジェクトの中にあるか見てみよう。コードの箱の上にあるラベルを見てください。
  • Window メニューから Output を開こう。赤い文字が出ていたら、どのスクリプトの何行目に問題があるかが分かります。

まだ困っていますか? メールで教えてください →

7
ステップ 7 / 9

買うボタンを足す

  1. Conveyor の近くの床に、Part を足します。Size を 4, 1, 4 にして、Anchored をオンにして、明るい青にして、名前を BuyDropper にします。
  2. BuyDropper に Script を足して、このコードをはり付けます。
  3. ボタンに文字を付けるには、BuyDropper の上にマウスを置いて、+ をクリックし、BillboardGui を足します。Size を {0, 200}, {0, 50}、StudsOffset を 0, 3, 0 にします。
  4. BillboardGui の中に TextLabel を足します。Size を {1, 0}, {1, 0} にして、TextScaled をオンにして、この文字を入力します: Second dropper - 50
BuyDropper > Script
local Players = game:GetService("Players")
local ServerStorage = game:GetService("ServerStorage")

local button = script.Parent
local PRICE = 50
local bought = false

button.Touched:Connect(function(hit)
	if bought then return end

	local player = Players:GetPlayerFromCharacter(hit.Parent)
	local stats = player and player:FindFirstChild("leaderstats")
	if not stats or stats.Cash.Value < PRICE then return end

	bought = true
	stats.Cash.Value -= PRICE
	ServerStorage.Dropper2.Parent = workspace
	button:Destroy()
end)

それぞれの部分の はたらき

  • PRICE は、ねだんです。数字を変えると、ボタンが安くなったり、高くなったりします。
  • スクリプトは、ボタンにさわったのが本物のプレイヤーか、そのプレイヤーの cash が足りているかを、たしかめます。
  • Dropper2 を workspace に動かすと、動き出します。スクリプトも、すぐに動き始めます。

くわしく見る

  • プレイヤーは、ボタンの上に歩いて乗って買います。だから、行きやすいように、ゆかの上に置こう。
  • Size と StudsOffset は、Properties の欄をクリックして、数を見本のとおりに入力します。かっこもコンマもそのままです。そして Enter を押そう。
  • Text は、TextLabel のプロパティです。Text の欄をクリックして、ことばを入力し、Enter を押します。
  • ラベルは、ボタンの上にういています。見えないときは、StudsOffset のまん中の数を大きくしよう。
このステップがうまくいかない

まず、この3つを見てみよう

  • パーツやスクリプトの名前が、ガイドとまったく同じか見てみよう。大文字と小文字も同じにします。
  • スクリプトが正しいオブジェクトの中にあるか見てみよう。コードの箱の上にあるラベルを見てください。
  • Window メニューから Output を開こう。赤い文字が出ていたら、どのスクリプトの何行目に問題があるかが分かります。

まだ困っていますか? メールで教えてください →

8
ステップ 8 / 9

全部の流れをテストする

  1. F5 を押します。Cube が落ちて、Conveyor にのって、cash に変わるのを見ましょう。
  2. cash が 50 になるまで待って、青いボタンをふみます。
  3. 2つ目の Dropper が出てきて、ボタンが消え、cash が2倍の速さでふえます。
  4. Shift+F5 を押して、止めます。うまくいかないときは、Window メニューから Output ウィンドウを開いて、赤い文字を読みましょう。

くわしく見る

  • Cash が50たまるまでには、キューブが10個、つまり少なくとも20秒かかります。
  • 買うと、Cash が50へります。それで正しいです。ドロッパーの代金をはらったからです。
  • ボタンは、買ったあとに消えます。だから、2回は買えません。
  • 2つ目のドロッパーが、おかしな場所に出たときは、ゲームを止めて、ServerStorage から Dropper2 を Workspace にもどします。そして動かして、もう一度 ServerStorage にドラッグしよう。
よくある まちがい. Cash が ぜんぜん変わらないとき: 落ちてくる Part の名前は、Dropper のスクリプトと同じで、Cube でないといけません。
このステップがうまくいかない

まず、この3つを見てみよう

  • パーツやスクリプトの名前が、ガイドとまったく同じか見てみよう。大文字と小文字も同じにします。
  • スクリプトが正しいオブジェクトの中にあるか見てみよう。コードの箱の上にあるラベルを見てください。
  • Window メニューから Output を開こう。赤い文字が出ていたら、どのスクリプトの何行目に問題があるかが分かります。

まだ困っていますか? メールで教えてください →

9
ステップ 9 / 9

公開する

  1. File → Publish to Roblox を選びます。ゲームの名前と、短い説明を入れます。
  2. Creator Hub のウェブサイトで、自分のゲームを開いて、Maturity のアンケートに答えます。
  3. ゲームを Public にして、リンクを友だちに送ります。

くわしく見る

  • はじめて公開するときは、Studio が名前と説明を聞いてきます。Create をクリックしよう。
  • Creator Hub は、create.roblox.com というウェブサイトです。同じアカウントでログインして、一覧からあなたのゲームをクリックします。
  • ゲームを公開する前に、Roblox からほかのことを求められる場合があります。たとえば、アカウントの年齢確認です。足りないものは、ページに出ます。
  • 18歳未満の人は、このステップを保護者の人といっしょにやってね。
ヒント. 進み具合は、まだ保存されません。プレイヤーが抜けると、cash は消えます。データの保存は、上級レッスンです。
このステップがうまくいかない

まず、この3つを見てみよう

  • パーツやスクリプトの名前が、ガイドとまったく同じか見てみよう。大文字と小文字も同じにします。
  • スクリプトが正しいオブジェクトの中にあるか見てみよう。コードの箱の上にあるラベルを見てください。
  • Window メニューから Output を開こう。赤い文字が出ていたら、どのスクリプトの何行目に問題があるかが分かります。

まだ困っていますか? メールで教えてください →

自分で変えてみよう

  • Cube 1つを、5 cash ではなく 10 cash にしてみよう。
  • 200 cash の3つ目の Dropper を足してみよう。
  • 2つ目の Dropper を、1つ目より速くしてみよう。どの数字を変えるかな?