RobloxStudioで「ピッケル」で「土台を壊す」仕組みを簡単に作成するメモになります。掘る仕組みの基本となる部分です。
はじめに
下記にてRobloxStudioでバックパックにアイテム追加を行いました。今回は、ピッケルで土台を壊すのを簡単に作成していきます。
blenderから取り込み
まずはBlenderでローポリゴンのピッケルを簡単に作成します。

作成したモデルをRobloxStudioに取り込みます。

Blenderで作成したモデルをRobloxStudioに取り込み方法は下記で記事にしています。
製作開始
ピッケルを作成した後にピッケルで壊す土台を作成します。
ピッケル作成
「Workspace」の「+」から「Tool」を選択します。

「Tool」の名前を「Pickel」に変更。配下に取り込んだピッケルのモデル(default)を移動して「Handle」に名前を変更。スクリプトを追加します。

スクリプトを下記に変更します。バックパックにアイテム追加で作成した時のスクリプトと同じです。
local tool = script.Parent
local function slash()
local value = Instance.new("StringValue")
value.Name = "toolanim"
value.Value = "Slash"
value.Parent = tool
end
tool.Activated:Connect(slash)
「Pickel」を配下を含んで全てを「StarterPack」に移動します。

実行してみて、キーボードの1で装備できればOKです。ピッケルを装備した状態でクリックするとピッケルを振ることが出来ます。

ピッケルの位置がずれている場合はGripを変更して位置を調節します。

ピッケルを少し斜めにしたい場合は下記のような感じ。

土台の作成
「Workspace」の「+」から「Part」を選択します。

「Part」の名前を「Mine」に変更、色、マテリアルを変更して、配下にスクリプトを追加します。

スクリプトを下記に変更します。土台に触れたのがピッケルの時に土台を破壊しています。ピッケルかどうかの判定はタグを用いてます。
local CollectionService = game:GetService("CollectionService")
local Mine = script.Parent
local function mineStone(hit)
if CollectionService:HasTag(hit.Parent, "Pickel") then
Mine:Destroy()
end
end
Mine.touched:Connect(mineStone)
「Pickel」にタグを追加します。

実行してみて、下記のようにピッケルが岩に触れたときに無くなればOKです。

石を拾う
岩を壊した後に拾うことのできる石を出現させます。「Workspace」の「+」から「tool」を選択します。

「tool」の名前を「Stone」に変更して、配下にPartを追加します。「Part」の名前を「Handle」に変更して色、マテリアルも変更します。

作成したものを配下ごとServerStorageに移動します。

岩のスクリプト(Mine_Script)を下記のように変更します。
local CollectionService = game:GetService("CollectionService")
local ServerStorage = game:GetService("ServerStorage")
local Stone = ServerStorage:FindFirstChild("Stone")
local Mine = script.Parent
local function mineStone(hit)
if CollectionService:HasTag(hit.Parent, "Pickel") then
local newDrop = Stone:Clone()
newDrop.Parent = game.Workspace
newDrop.Name = "Stone"
newDrop.Handle.CFrame = Mine.CFrame * CFrame.new(0,3,0)
Mine:Destroy()
end
end
Mine.touched:Connect(mineStone)
実行してみて、下記のようにピッケルで岩を壊したら石が出現。石に触れた時に持ち物に追加されたらOKです。


