![見出し画像](https://assets.st-note.com/production/uploads/images/156186103/rectangle_large_type_2_2367b2141e7e615376279033d0e24d4d.jpeg?width=1200)
【RobloxStudio】地形が破壊される様子を眺めることができるオブジェクトを作る
こんにちは!月一投稿を心がけているアイデアがじりひんのけつべつです…
大きな雑貨屋さんに入った時、ある額縁を見つけました。
その額縁の中には砂と水が入っていて、山のような綺麗な模様ができていました。額縁の向きを変えるたびに砂が流れ、新しい模様が現れるようになっていました。サンドピクチャーと呼ばれるものらしいです。
シンプルなつくりなのに動きがあって感動でした。これを見て、けつべつも同じようなものを作ってみることにしました!
アイデア
サンドピクチャーのように、何かが変化していく様子を眺めることができるものでつくれそうなもの。
変化するもので真っ先に思いついたのが地形。ロブロックスでは爆弾で地面に穴をあけることができます。
それと同時に地面にひたすら爆弾を置いて地球の裏側まで穴をあけるゲームのことを思い出しました。
爆弾で穴が開いていく様子を横から眺めることができたら面白いかも?
早速作ってみます!!
用意したもの
・額縁
![](https://assets.st-note.com/img/1727607734-DspyLiaqKSnx6URo4IM9Q71N.png?width=1200)
簡単な額縁と、額縁の中に隙間ができるように透明なパーツを前後ろにふたつ設置したもの。
・地面
![](https://assets.st-note.com/img/1727659447-4IL2RnSVG1jXZglJWf0F3sNq.png?width=1200)
額縁の中の隙間がピッタリ埋まるくらいの大きさのブロックとスクリプト。
その二つをフォルダーの中に入れたもの。
スクリプトの中身
wait()
local box = script.Parent.Box1
game.Workspace.Terrain:FillBlock(box.CFrame, box.Size, Enum.Material.Grass)
script.Parent:Destroy()
「ブロックがある場所にブロックと同じ大きさの草が生えた地面を置く」と書いてあります。
Enum.Materialに続く部分を変えれば別のマテリアルを置くことができます。
ここに書き込めるマテリアルの名前の一覧は、このページの表「Current Terrain」から見れます↓
・爆弾
![](https://assets.st-note.com/img/1727659460-x1JO2H40kL9bfEyz5RKrQDAv.png?width=1200)
丸いパーツの中にスクリプトが入ったものをフォルダーにまとめたもの。
パーツはAnchor(固定)をオンにしておきます。
スクリプトの中身
wait(5)
script.Parent.Anchored = false
local rand = math.random(4,8)
local function onTouch(hit)
local Box = hit.Parent
local exp = Instance.new("Explosion")
exp.Position = script.Parent.Position
exp.Parent = game.Workspace
exp.ExplosionType = Enum.ExplosionType.Craters --爆発すると地形に穴が開く
exp.Visible = false --爆発は見えない
exp.DestroyJointRadiusPercent = 0 --爆発に巻き込まれても死なない
exp.BlastRadius = rand --爆発の威力
wait()
end
script.Parent.Touched:Connect(onTouch)
「パーツが現れた五秒後に固定が解除される。丸いパーツが何かに触れた時に爆発が起こる。爆発すると地形に穴が空き、巻き込まれても人は死なない。爆発の威力は4~8のうちのどれか」と書きました。
爆発の威力がランダムであれば毎回違った結果になり、見ていて飽きない物になるかと考えこうしました。
地面と爆弾フォルダーはServerStorageに入れてください。
![](https://assets.st-note.com/img/1727658686-P6qLnltEbfKia1345uShx8Ip.png)
・ServerScriptServiceに入れたスクリプト
![](https://assets.st-note.com/img/1727658859-NW6GDZXFR3keJrYj2bdzhpav.png)
スクリプトで二つのフォルダーをworkspaceの中に召喚したり削除するように書きます。
スクリプトの中身
wait(5)
while true do
game.ServerStorage.Bombs:Clone().Parent = workspace
game.ServerStorage.Ground1:Clone().Parent = workspace
wait(30)
workspace.Bombs:Destroy()
wait(20)
end
地形を爆弾で破壊し、30秒後に爆弾を消し、20秒間完成した地形を眺め、その後に全てを元に戻す。それを繰り返すようにしました。
テスト
![](https://assets.st-note.com/production/uploads/images/156183783/picture_pc_56ae6011d27dc0f318a40fae2bb3aa42.gif)
爆弾が転がり続けて穴が開いていきます。
しばらくすると爆弾が消え、地形が完成します。
![](https://assets.st-note.com/img/1727659953-jQnlbVfoPvc7kJWza4M3XH8U.png?width=1200)
![](https://assets.st-note.com/img/1727659953-yzSe0YTEovHdFXZIV43CLDhl.png?width=1200)
爆弾の威力によって毎回違った結果になります。
時間が経つとまた最初に戻り、同じ動作を繰り返します。
これでサンドピクチャーのようなものが完成しました。
ロビーのような場所で噴水の代わりにこれを置いてみるものいいですね!
背景にネオンを置くとおしゃれかも?
このオブジェの逆バージョンがあってもいいかもしれません。
ぜひアレンジしてみてください…
作ったものがどんな風に動くのか確認したい人はここからどうぞ。
この記事が誰かの役に立ったらうれしいです!
〜おしまい〜