A beginner friendly, attribute-based, Tool animation compatibility layer using Motor6Ds!
| About Me:
Hello everyone, I’ve been making posts on the forum ever since 2020. Tool 6D initially went under the name “Motor6DHandler” at the time as the script was called exactly that. You’d drop it under the root of your Tool and open and edit the scripts values to what you needed.
I’m glad it was able to help about 800+ (back when this was first made) people who put the script into their games to animate their tools. I wasn’t expecting that number alone, and it still shocks me that it continues to grow!
This resource aims to improve upon the older versions, giving you better reliability for animating Tools in a really simple way!
| Table of Contents:
-
Prologue: What is Tool 6D?
-
Chapter 1: Setup your Animation Rig w/ Motor6D(s)
-
Chapter 2: Preparing Tool for Tool 6D
-
Chapter 3: Setting up Tool 6D
-
Epilogue (p.1): Testing the Setup
-
Epilogue (p.2): Conclusion
| Prologue: What is Tool 6D?
You might be wondering how this resource is helpful, and I’ll be answering that in this small chapter.
Roblox does not natively support the ability to animate Tool handles of any kind, and the only way to achieve the effect of animating the handle is to manually create animations and use a script to delete the Tool grip and attach Motors.
To inexperienced developers, this ends up being a hassle to work around on their own, much what it was like for me when I first began actual Game Development on this platform. I had to ask a few people and it took a bit for me to fully understand how to achieve the result I wanted.
Now, while Tool 6D in of itself is quite a basic system, it allows you to:
- Use Attributes to specify Tool/Body parts for Motor6Ds, allowing Animations of any kind
- Set C0 & C1 offsets to support Blender animations, and different kinds of Tool Grip positions
In short, Tool 6D exists to close the difficulty curve of animating Tool handles by being easily customizable and simple to install!
| Chapter 1: Setup your Animation Rig w/ Motor6D(s)
I attached a Tutorial on the previous post about setting this up, which I still recommend the average user to follow since it’s more in-depth, but for the sake of a fully explained tutorial, I’ll quickly go through the setup.
If you’re already familiar with animating Motor6Ds (I’m just assuming the average person is not), you can likely skip this step because you’ll likely already know what I’m going to show.
If you wish to follow the previously linked resource on the old post, you can do so here.
(Credit to @H_mzah)
Step 1: Creating a new Dummy Rig.
Create a new Dummy based on whatever type of animation you intend on making (Whether that being R6, or R15, this will work with both)
You can do so by navigating to the Avatar
tab sitting on the top of the Studio window:
The reason why we need to go here is due to a recent studio overhaul. Roblox relocated the Animation Editor
plugin and the Rig Builder
plugin to this very tab.
To start, click on the Rig Builder
option listed in the Ribbon bar:
Open doing so, you’ll be greeted with this window, which you can select an option from, in the viewport. Select the one you’d like. For me, I’m going to choose R6 for the sake of simplicity.
I personally like to go for the Block Rig, but you can choose others depending on your use case:
Step 2: Preparing the Rig w/ Motor6D & Animation.
At this point, you might have something that looks like this. A basic colorless Dummy, with nothing else much to it. That will change:
We’ll need to create an object for them to hold, so for the sake of simplicity, I’m going to use the classic LinkSword. Go ahead and place it within general range of it. (not required, just so you know it’s there, and can keep tabs on it)
At this point, it should roughly look like this:
Now, we’re ready to begin creating a Motor6D to link the Dummy with the Tool (In this case, it’s the sword. For you, it may be something different!)
In order to do this, we need to use the Explorer in Roblox Studio, usually found on the right side of Roblox Studio. If you repositioned the windows around studio it may be located elsewhere, but just locate the Explorer.
Once you do, you’ll see something like this. If your game has a lot more content in it, just search for the Dummy, and the Sword. You can group these both together to make locating it easier:
You’ll want to drag your Tools handle (In my case, the sword), into the Dummy’s Character model, as shown in the video below:
(Keep in mind, it may be safer to create a copy of your Tools Handle to use specifically for the Animation Rig, and one for your Tool. That way you can separate the two safely.)
After you’ve done this, you’ll need to create a Motor6D to put inside the Character Model.
To do this, click on the Dummy in the Explorer, and while hovering your mouse over it’s name, you’ll see a + icon next to it.
Clicking the + should cause a menu to pop up. When it does, simply search “Motor6D”, then hit Enter.
If you’re confused, refer to the video below:
Once that is done, click on the newly created Motor6D, then locate the Properties window just like you did when finding the Explorer window.
*You’ll need to set the Part0 to the Body Part you want, and set the Part1 to the Handle of your Tool (In this case, it’s the sword for me).
If you’re confused on this step, refer to the video below:
After you’ve done this, you’ll see the Dummy change in your viewport to something that looks like this. If you see this, you’ve done everything correctly:
If nothing changes, make sure the character is fully unanchored. You can select the model and anchor/unanchor it to make sure the Handle of your tool, and the Body Parts are all unanchored.
Now, just like the previous tutorial, I assume you know how to animate. I’m going to skip the animation step, but the Animation Editor should now be able to animate the Handle part with keyframes like it wasn’t able to before.
Below is an example of it working in action.
Things you need to take note of:
-
You’ll need to make an Idle animation for your Tool to prevent the Motor6D moving the Tool Part back to the origin C0/C1. Alternatively, you can manually adjust the C0/C1 offsets later with the 6D_Config to set your own Tool Grip. This is necessary because Motor6Ds do not work with the default
RightGrip
that Tools automatically create. -
Make sure you set Animation priorities properly. (Idle Animation is Action, and for things like swinging a sword, Action2, or higher.) The reason you should do this is to compensate for the Weight based system Animations now use. If you need to do this, the Animation Editor allows you to specify what Animation Priority you want the Animation to have in the 3 dot menu.
| Chapter 2: Preparing Tool for Tool 6D
Now that you have all your Animations prepared (Idle animation, and any other animation as needed), you’ll need to setup the Tool for usage.
Before we begin, I should remind you that some scripting experience is greatly recommended. Tool 6D doesn’t have Animation Loading/Playing functionality, as all it does is add support for playing Tool based animations. You can refer to the below attached Sword model if you need a basic Animation Loading/Playing script. With that out of the way, let’s begin!
| Sword Model: GET IT HERE!
It’s very important that when you create your Tool, that you toggle off RequiresHandle
. You’ll never need it on if you’re using Motor6Ds. You also will not be able to use the name Handle
anymore as the name seems to mess with Tools when RequiresHandle
is off. Try picking a different name that accurately represents what your Tool is, and go with that instead.
If you require assistance with this step, please refer to the below video:
Once you have Animation Loading/Playing all figured out, you can move on to the next chapter. If you already had all of that configured, you can just ignore this chapter and move onto the next one.
| Chapter 3: Setting up Tool 6D
Now it’s time to actually give your Tool Motor6D support!
First, you’ll need to obtain a copy of Tool 6D. Luckily for you, I have conveniently attached the model here for you to obtain it from.
| Tool 6D: GET IT HERE!
Now that you have the model, go ahead and insert it into your game. Once you get the model, you can find it under your Models in the Toolbox.
Once inserted, drop all contents within the folders into their respective services. For example, if it says “ReplicatedStorage” on the Folder, you’d drag the Remotes
folder directly into the ReplicatedStorage
service.
Once everything has been put in it’s proper locations, you’ll need to focus your attention onto your Tool you have most likely sitting in the StarterPack
of your place file.
We’ll need to create a configuration called 6D_Config
and parent it to the Tool. Simply click on the + button next to your Tools name in the Explorer, and type “Configuration”, hitting enter when you see the option popup in the list:
Then, change the name in the Properties panel to the name 6D_Config
exactly as written here:
If you do not create the 6D_Config
, Tool 6D will treat the Tool as normal, and will not affect it in any way. If you don’t want a Tool to be affected by Tool 6D, simply do not create the Configuration!
Next, you’ll want to create another Configuration, and place that inside the 6D_Config
we just created. The reason we need to do this is because the Tool 6D system you just installed into your place will detect any Equipped tool, and check for this Configuration to know how to setup Motors.
You can give the Motor Configurations under 6D_Config
any name you’d like to help you differentiate between connected Motor6Ds. The only name that cannot change is the 6D_Config
, so keep that in mind! If you need help on this step reference the below ordered images:
At this point, your setup should appear exactly like this, except with a different name for the Motor Configuration you created:
Now, click on the Motor Configuration you created. In my case, it’s called “Any Name Works!”
Next, in order to get things working, we’ll need to create 4 Attributes that Tool 6D will use when creating Motor6Ds. Simply click on the + button beside the “Attributes” section of the Properties panel, and follow the below order:
After all that, your setup should currently look like this:
You can now edit these 4 new attributes to your liking. Back in Chapter 1, you need to set the Part0
and Part1
values on the Motor Configuration to the exact same values you used in the Animation phase. For me, Part0
was Right Arm
and Part1
was Sword
.
If you edited the C0
and/or C1
values on the Motor6D when you made the original Animations, you’ll need to set the C0_Offset
and C1_Offset
attributes to the same values on the Motor Configuration. The reason this is important is because when you load & play the animation, the Tool Grip might appear slanted or messed up.
If you need more than one Motor6D for your Tool (If you’re animating more than just a single part), create a duplicate of the Motor Configuration and edit the Attributes to match the Body_Part / Tool_Part so that the new Motor6D can connect. You don’t need to create unique names, but I’d recommend it! Also, you can attach multiple Motor6Ds to the same Parts, so don’t worry about that!
| Epilogue (p.1): Testing the Setup
Here comes the fun part! Finally! You can now take a break, and look at the Animation you worked hard on earlier, with this very simplistic change! (not technically of course)
| Video:
| Epilogue (p.2): Conclusion
That concludes this tutorial pretty much. I hope you make great things with this, and once you keep doing this, it’ll basically become second nature to your skillset!
Is something not making sense to you? Do you need additional support?
Please contact me through my Developer Forum profile if you need help with anything listed here. It may help a bit more if you tell me which Chapter you’re confused on, that way I can go over that segment with you.
Please also keep in mind that this post is brand new, and just like the old post, I likely forgot to include an important step, or mention something. Writing all these words have probably driven me mad (not really, but it’s a lot), so go easy on me!
Keep an eye on the Console inside studio!
Is something not working right? Do you feel like you followed the tutorial to the core but it’s just not working? Please take a look at the Studio console (or in-game console) to figure out if there are any errors, or likewise.
What are the limitations of Tool 6D?
Well, this script was made for people who wish to use melees which happen to possibly involve usage of other separate handles and body parts. It was never thought to be useful with guns, as that was out of the scope of this in resource, at least in my eyes, and for old times sake.
Animating guns with moving parts may not be possible, however you can animate the guns grip with this. I haven’t tested with making a gun, so if it works out, be sure to share how you did it!
If you happen to find other things this doesn’t work with, be sure to let me know here, and I’ll edit this post after testing your findings.
(p.s) Thanks to all those in the past that helped me accomplish my goals, and helped me with finding out what older versions of this resource wasn’t capable of, including supporting me up until this point. I wouldn’t have gone through the trouble of putting all this together with my very small brain.
Know you matter, and that’s all for me
Have a great day/night, and until next time!