Partの拡大縮小アニメーション
スムーズにパーツを拡大縮小させます。
- Workspace に Part を1つ追加します。
- Part に Script を追加します。
part = script.Parent
while true do
for i=1, 3, 0.1 do
part.Size = Vector3.new(i,i,i)
wait(0.01)
end
for i=3, 1, -0.1 do
part.Size = Vector3.new(i,i,i)
wait(0.01)
end
end
Modelの拡大縮小アニメーション(1)
一般的には、複数のパーツを1つにまとめ、Model にすると思います。Model を拡大縮小する場合は下記のようになります。
- いくつかの Part を追加します。
- それらを Model にします。(すべて選択し、右クリックメニューで Group を実行)
- Model の Anchor をオンにします。
- Model 内の代表的な Part の名前を変更します。(下記の例では「primary」としました)
- Model に Script を追加します。
function Resize(Model,Scale)
for k,v in next,Model:GetChildren() do
if v:IsA("BasePart") then
local Vcf = v.CFrame
local _,_,_,c0,c1,c2,c3,c4,c5,c6,c7,c8 = Vcf:components()
v.Size = v.Size * Scale
v.CFrame = CFrame.new(Vcf.p * Scale) * CFrame.new(0,0,0,c0,c1,c2,c3,c4,c5,c6,c7,c8)
end
end
end
while true do
for i=0, 10 do
Resize(script.Parent,1.1) -- 1.1倍ずつ拡大
wait(0.02)
end
for i=0, 10 do
Resize(script.Parent,0.9) -- 0.9倍ずつ拡大(いわゆる縮小)
wait(0.02)
end
end
Model を一括で拡大縮小する関数はないようなので、NiceDrift さんが作成した「Resize」というスクリプトをインポートして使用させていただきました。
https://www.roblox.com/library/128299797/Simple-Scale-Resize-Model-Script
Modelの拡大縮小アニメーション(2)
モデルには、ScaleTo() というメソッドが存在しました。こちらの方が簡単ですね。
local model = script.Parent
while true do
for scale=1, 2, 0.1 do
model:ScaleTo(scale) -- scale倍に拡大
wait(0.02)
end
for scale=2, 1, -0.1 do
model:ScaleTo(scale)
wait(0.02)
end
end