2016-08-21 9 views
0

レンガに立っているときにアニメーションを行うことができるスクリプトが必要です。私はちょうどアニメーションを行う方法を知らない。私が探しているアニメーションでフリーモデルを見つけることができません。ここでは、私はどのように手を欲しいのプレビューです。あなたが立っているPREVIEW OF THE ANIMATIONレンガに立っているときにアニメーションを手作りにする[ROBLOX]

レンガは

script.Parent 

答えて

0

アニメーションには主に2つの方法がありますです。新しいAnimationsと古いJointsです。

guideは、アニメーションを開始するのに役立つはずです。それはvideoを得ました。

古いスタイル合同アニメーションを使用したい場合は、このような何かがうまくいくかもしれない:エンディングタッチ場合よりも大きい目に見えないCanCollide = false境界部分を作り、十分に登録していないことを

local Block = script.Parent 

local function MakeFakeShoulder(Character, Side) 
    local Controller = { ["Stop"] = function() end } 

    local Torso = Character:findFirstChild("Torso") 
    local Arm = Character:findFirstChild(Side .. " Arm") 

    if not Torso or not Arm then return Controller end 

    local Shoulder = Torso:findFirstChild(Side .. " Shoulder") 
    if Shoulder then 
     local FakeShoulder = Instance.new("ManualWeld") 
     FakeShoulder.Name = "Fake " .. Side .. " Shoulder" 
     FakeShoulder.C0 = CFrame.new(1.5 * (Side == "Right" and 1 or -1),0.5,0) 
     FakeShoulder.C1 = CFrame.new(0,0.5,0) * CFrame.fromAxisAngle(Vector3.FromAxis(Enum.Axis.Z), math.rad(-180)) 
     FakeShoulder.Part0 = Torso 
     FakeShoulder.Part1 = Arm 
     FakeShoulder.Parent = Torso 

     Shoulder.Parent = nil 

     function Controller:Stop() 
      Shoulder.Parent = Torso 
      FakeShoulder:Destroy() 
     end 
    end 
    return Controller 
end 

local function MakeFakeShoulders(Character) 
    local Controller = { } 

    local Right = MakeFakeShoulder(Character, "Right") 
    local Left = MakeFakeShoulder(Character, "Left") 

    function Controller:Stop() 
     Right:Stop() 
     Left:Stop() 
    end 

    return Controller 
end 

local function GetHumanoid(Part) 
    if Part.Parent == nil then return nil end 
    return Part.Parent:findFirstChild("Humanoid") 
end 

local CurrentlyTouching = { } 
Block.Touched:connect(function(Part) 
    local Humanoid = GetHumanoid(Part) 
    if not Humanoid then return end 

    CurrentlyTouching[Humanoid] = CurrentlyTouching[Humanoid] or 0 
    CurrentlyTouching[Humanoid] = CurrentlyTouching[Humanoid] + 1 
    if CurrentlyTouching[Humanoid] > 1 then return end 

    local Controller = MakeFakeShoulders(Part.Parent) 

    while CurrentlyTouching[Humanoid] > 0 do 
     if GetHumanoid(Block.TouchEnded:wait()) == Humanoid then 
      CurrentlyTouching[Humanoid] = CurrentlyTouching[Humanoid] - 1 
     end 
    end 

    Controller:Stop() 
end) 

は注意視覚的な部分とその代わりにスクリプトを入れて、

関連する問題