I am currently attempting to create a pet system similar to Adopt Me’s pet system, but I am left wondering on how they are making them move. Do you guys have any idea on whether they use humanoids, bodymovers or anything of the sort?
Of course, I don’t specifically how they did it, but there are a couple of ways you can acomplish something like this.
You could use Motor6D’s and create an entire rig. This method is the most common and requires a lot of time. There are many videos on how to set up something like this, so a simple google search of “Roblox Character Rigging” should do the trick.
Alternatively, you could use an AnimationController. Not quite sure how they work, but I’m quite sure you’ll find something if you do a quick search.
Sorry if I wasn’t clear enough, I’m not that much into animations and character rigging.
Thank you for your reply. I appreciate the information you have provided, but I am not struggling with creating the rig itself. My problem is having them follow the player around in a similar way that is seen in Adopt Me. Their pets are not just floating around but actually walking on surfaces, and I do not think it uses a humanoid.
In the recent Medium post they said, “Instead, our pets creatively implement pathfinding, raycasting, and distributed physics to better emulate the loyalty of a real life pet walking by your side.” That’s all I’ve got for you though.
I would use motor6d’s for each part in the model and ‘glue’ that part to an invisible part named ‘HumanoidRootPart’ (or anything else what you want.).
Then I would calculate the offset between the pet and the player. Each time the player moves move CFrame the HumanoidRootPart to the player + the offset. You could ofcourse tween this so it would look alot smoother.
If you did this your model should move to the player each time your player moves, if you also used tweening it would look decent. The only thing left really is animations. Make sure you animate with the model you ‘glued’ together. Add an animation controller inside of the model and loop that animation. (If you have an idle and running animation, make the running animation play on playermovement and stop when the player stopped moving).
Pros of doing this:
Not expensive
Will look good enough to satisfy most people.
Cons of doing this:
Your pets won’t detect collision
The pets will fly in the air unless each of the pets is the same height or you have a special offset for each of the pets.
Probably more but these are the ones I can think of right now.
How to fix those cons.
Instaid of tweening directly to the player + offset, you can use PathfindingService to create ‘paths’ and tween between those paths. The pets will still ignore collision but the pathfinding service should make it look like they don’t.
If the pets still fly in the air you can raycast directly downwards and set the pet position to: Vector3.new(petPos.X,hitpos.Y+petSize.Y/2,petPos.Z) this will position the pet above the ground.
This is what I would do if I would make a pet system, I am sure that the Adopt Me developers didn’t do this exact method but I hope this helps you!