also normally for me instead of having to do the lazy and effortful creation and adjustment of a Motor6D which the rig’s right arm has which is connected to the handle to serve as an substitute i’d create a pre-planned pseudo handle
if you don’t know what that meant i’d create an invisible handle instead of the visible handle (sword like) being the only primary handle, the thing is if a Motor6D’s oldest ancestor is disconnected, the rest of the other ancestors and its descendants still function perfectly
if you still don’t get what i mean i’ll show some picture
the picture above is my own self-insert rig that shows the hierarchy of all connected outside motor6ds, if you noticed the right arm is connected to “Handle” which is the invisible 1-sized block that’s being highlighted by the blue screenbox, the handle2 is the sword mesh itself which is connected by “Handle”, now what i meant by motor6ds still functioning even if it’s ancestor is gone is that Handle shouldn’t even be animated at all in any animation editor and only the “Handle2” which is the handle’s motor6d, the reason why you shouldn’t animate “Handle” at all is because that is the motor6d in the right arm, if you turn this into a player tool the player doesn’t have a motor6d connected to the Handle itself but the handle’s motor6d connected to the handle2 doesn’t disappear which can prefix things
also, when editing the tool’s hold offsets, i suggest using clonetrooper’s tool editor plugin and it doesn’t affect anything if you change the Handle’s tool offset, heres the game where i used this method with the animation functioning perfectly with no qualms
Everything stated here may be true for you, but doing it this way is not necessarily “lazy”. It adds the basic functionality Roblox should have provided since the very beginning with animating tools, and it was never supposed to be super advanced anyways.
I appreciate the message though for anyone willing to try it, but it’s out of the scope of this resource since this is supposed to be user friendly
I loved this post, but I have a small issue with the tool animation:
I have an R6 Avatar, the tool is only one part, and the tools settings are the same, but for some reason my handle wont go far enough when animating than I want it to, for example:
This is what I WANT:
and this is what I am GETTING:
How can I move the handle farther? If there’s a way, please let me know!
If you have a problem and need support, please Private Message me, not here.
I also need some replication files on how you got this result as this seems to be an error with the way you animated.
Edit
I believe I found your issue. It is quite possible that you enabled this because you were curious, or Roblox forced it on in a new update. I need you to switch this toggle, AnimationWeightedBlendFix, to Disabled under the Workspace service.
Some people have reported that it’s made animations behave weirdly, and I believe also encountering this when I turned the toggle on myself.
For some reason… My tool keeps acting weird when I reset. I was going to disable resetting anyway but I want to make sure it doesn’t break when somebody does (Just in case).
Basically, I reset, then when I respawn my tool does nothing but stay in my arm (still motor6d’d to my arm). How do I fix this?
This will impact the experiences in which you use the Motor6DHandler script! Make sure you check over the way you’re handling Idle and Action animations, because the WeightedAnimationBlendFix will be forced on soon, and it’s best you use the brand new Priorities roblox has added to compensate for the issues that it brings!
So for some reason, the sword is positioned the wrong way? This is the second time I’ve redone the tutorial from scratch, no luck. Am I missing something here?
Here’s the portion of the code that plays the animation, am I doing something wrong here?
Oh and, I also made it print out the priority. It prints out Enum.AnimationPriority.Action so I know that it’s using the right AnimationPriority.
local function LoadAnimation(id, priority)
local char = player.Character or player.CharacterAdded:Wait()
local hum = char:WaitForChild("Humanoid")
local animator = hum:WaitForChild("Animator")
repeat task.wait() until animator:IsDescendantOf(workspace)
local anim = Instance.new("Animation") do
anim.AnimationId = "rbxassetid://" .. id
end
local load = animator:LoadAnimation(anim) do
load.Priority = priority
warn(tostring(load.Priority))
load:Play()
end
return load
end
tool.Equipped:Connect(function()
local anim = LoadAnimation(animation.idle, Enum.AnimationPriority.Action)
anim.Looped = true
script.Equip:Play()
tool.Unequipped:Connect(function()
script.Equip:Stop()
if inputConnection then
inputConnection:Disconnect()
end
if anim then
anim:Stop()
end
end)
-- OTHER CODE DOWN HERE
Here’s the screenshot for the welds inside the tool: