Partの拡大縮小アニメーション

スムーズにパーツを拡大縮小させます。

  1. Workspace に Part を1つ追加します。
  2. 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 を拡大縮小する場合は下記のようになります。

  1. いくつかの Part を追加します。
  2. それらを Model にします。(すべて選択し、右クリックメニューで Group を実行)
  3. Model の Anchor をオンにします。
  4. Model 内の代表的な Part の名前を変更します。(下記の例では「primary」としました)
  5. 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

By schilverberch

ROBLOXでゲームを作ろう! 一緒にプログラミングを学びましょう。

コメントを残す