[OLD] SmartBone - An optimized module for Dynamically Simulated Bones

There are like 50 post about this already

1 Like

Wow! Can you tell me how they did this?

2 Likes

Im not entirely sure how, but i can sure you that it was ā€œcomplicatedā€ (quote from the friend). Ill copy and paste her reply to you here


"Hi! Maple here, Iā€™m going to try my best to simplify and leave as much detail as possible without having to make this reply large. I used ViewportFrames to render the objects. Structured the main mirror script to be Object Orientated (OOP) so I can handle/reference objects and mirrors more effectively. For reflecting the objects, they are first parented in a WorldModel in the ViewportFrame. And with a little scripting and optimization, I made it to be able to reflect.

Specifically, to reflect the object, I cloned the original object (one that is in front of the mirror to be reflected), parent it in the WorldModel (of the ViewportFrame), and did some fancy math reflections to CFrame the object that Iā€™ve cloned (and parented to the WorldModel) that is based off the original object (one that isnā€™t in the WorldModel/Cloned), but reflected (or put behind the mirror, and allow the ViewportFrame to render it).

Sadly, animations canā€™t possibly be reflected, though, I can reflect each individual body part of the character. But thatā€™s too hacky and possibly resource consuming. Tried it, only to find out another problem with certain body packages being reflected incorrectly (e.g a body part being reflected correctly, but isnā€™t orientated correctly due to the mesh being orientated but not the BasePart itself, if that makes sense).

Extras: We optimized the mirror by just doing raycast and other checks. For one, if an object is obstructing the view (or is in between the player and mirror itself) of the mirror, itā€™ll stop rendering/CFraming objects as well as stop and disable the mirror SurfaceGui and rendering itself. Iā€™ve also performed checks for if the player is behind the mirror or far away to an extent. Iā€™ve also made the mirror render objects that have been updated (e.g colors, transparency, material, etc) with the use of Events/Listeners, which isnā€™t shown in the video Holly posted."

~ Maple


Hope that helped you with her reply!

4 Likes

cool! Does your friend have a name for the project

2 Likes

I think she does, im not so sure. Though, I do know she created it for us to use in our current projects.Not entirely sure if she does have an actual on going project of her own(?).

2 Likes

Seems like a good resource, I will use it to make my rabbit characterā€™s ears more realistic, i hope collisions come out soon so I can make hair for my characters that doesnt gets inside their caps or bodies.

2 Likes

how to use it with a tool i tried to use but it not moved a inch
(this is a lenght long)

1 Like

Thank you so much! This is actually real cool!

1 Like

I tried a see chat, and model just broken or deleted ?_?

1 Like

Changed. (Module just delete by the Roblox xd, so yeah, guys, we canā€™t make this in soon time) 29.03.23, Just use a github.

2 Likes

Cant get it from roblox anymore?

the roblox model was taken down

so how can i get it now? Ive seen it in github but idk how to use it

1 Like

This is incredible, and this video is over two months old so I know its only gotten better. Any estimate on when we can get our hands on a demo? (Not tryna pressure you guys or anything, take your time with this very cool project).

8 Likes

im excited for the colision update

5 Likes

Hey I believe there is a memory leak in the code. On line617 the RemovedEvent is fired after the event is destroyed on line600 resulting in the actor not being destroyed because the RemovedEvent callback wonā€™t be called

3 Likes

Does anyone know why is this happening to my model whenever I tag it with SmartBone?

Without SmartBone
image

With SmartBone

Please help, I have been trying to fix this for the past 2 days

What attributes are you using on the root part?

image
Even if I use the default one, it shows the same result

Hm this is odd behaviour mind sharing the mesh your using here or in pms?