I make an ability from Naruto, where the player uses the ability and a piece of earth rises from the ground he is standing on. How do I do that? Is there any guides etc.?
you can look for some raycasting guides on youtube or simply use the current player position and create a new part then change the part properties to your needs
--put this inside a function or something idk
local NewPart = Instance.new("Part")
NewPart.Position = --player character position here-- - vector3.new(0,3,0)
NewPart.Anchored = true
NewPart.Parent = workspace
NewPart.Size = vector3.new(4,6,4)
You will have to use Raycasting, Tween Service and Debris Service to detect where to place parts, make parts move, scale, change transparency smoothly and to automatically remove them
ye trust this guy he is saying the truth
Do you want Parts to rise up, or do you want the Roblox Terrain to rise up.
If it’s a momentary boost or effect then it’s likely Parts will work better.
you could do something like this (serverside)
local TS = game:GetService("TweenService")
local hrp = PATH_TO_HUMANOIDROOTPART_OF_PLAYER_USING_ABILITY
local rock = Instance.new("Part")
rock.Anchored = true
rock.Size = Vector3.new(4, 10, 4)
local rayOrigin = hrp.Position
local rayDirection = Vector3.new(0, -10, 0)
local raycastResult = workspace:Raycast(rayOrigin, rayDirection) -- i think this is how you do it
if raycastResult then
rock.Parent = game.Workspace
rock.Position = raycastResult.Position + Vector3.new(0, -20, 0)
local info = TweenInfo.new(2)
local goal = {}
goal.Position = rock.Position + Vector3.new(0, 15, 0)
local track = TS:Create(rock, info, goal)
track:Play()
end
I DIDNT TEST THIS, IT MIGHT ERROR
i think there are a few issues:
local TS = game:GetService("TweenService")
local hrp = PATH_TO_HUMANOIDROOTPART_OF_PLAYER_USING_ABILITY
local rock = Instance.new("Part")
rock.Anchored = true
rock.Size = Vector3.new(4, 10, 4)
local rayOrigin = hrp.Position + Vector3.new(0, 20, 0)
local rayDirection = Vector3.new(0, -1, 0)
local raycastResult = workspace:Raycast(rayOrigin, rayDirection)
rock.Parent = game.Workspace
rock.Position = raycastResult.Position + Vector3.new(0, -20, 0)
local info = TweenInfo.new(2)
local goal = {Position = rock.Position + Vector3.new(0, 15, 0)}
local track = TS:Create(rock, info, goal)
track:Play()
where is the check for raycast result???
you could create from the start an attachment parented to the character humanoidRootPart to where the wall should spawn
oh sorry if i removed the raycast check i will just assume it always hit