モデルを透明にする

Modelの透明度を変える関数

Model内の全Partの透明度を変える関数です。valueは0から1の値になります。1が透明度100%です。
巨大なモデルを扱う場合は、ループ内にwaitを入れた方がベストです。

function setTransparency(model,value)
    for _, child in pairs(model:GetChildren()) do
        if child:IsA('Model') then
    -- Modelの中にさらにModelが入っていた場合
            setTransparency(child,value)
        elseif child:IsA('BasePart') then
            child.Transparency = value
        end
    end
end

一瞬でモデルを透明にする方法

Touched イベントや、MouseClick イベントなどで使用できます。
透明にしたからといっても通り抜けは出来ません。通り抜けられるようにするには、PartのCanCollideをFlaseに設定しなくてはなりません。

setTransparency(Model,1)

徐々にモデルを透明にする方法

0.1秒ごとに10%だけ透明にします。

for t = 0,1,0.1 do
    setTransparency(Model,t)
    wait(0.1)
end

ModelのCanCollideを変更する関数

通り抜けできる、できないを設定する関数です。f は true か false です。falseが通り抜けできます。

function setCanCollide(model,f)
    for _, child in pairs(model:GetChildren()) do
        if child:IsA('Model') then
  -- Modelの中にさらにModelが入っていた場合
            setCanCollide(child,f)
        elseif child:IsA('BasePart') then
            child.CanCollide = f
         end
    end
end

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です