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

Wow that’s actually super cool!
I’m surprised this isn’t built into the Roblox engine yet because it’s pretty much a standard for game engines to have nowadays.

Unreal, Unity and I think Godot already have bone simulation for hair, clothes and appendages.
Roblox should definitely include this in their engine since implementing it in C++ would likely offer even better performance.
They should hire you tbh.

I don’t know why, but I get this error 33% of the time and it causes one of my SmartBone instances to not work. Is there going to be a fix for this?


Also, it would be nice to have another setting where you can set the “flow” of the smartbone instance causing it to overshoot more. And setting the speed of the flow/smartbone instance (no not UpdateRate and Damping, thats different). Because creating hair physics seem a little bit stiff and unrealistic. Ive messed with the Inertia, Damping, Elasticity, and Stiffness for all of it to basically be the same.

Example of hair needing to be a bit more flowy and less elastic;

Not even in VRChat hair its perfect, either it is 2 stiff or 2 floaty, most people make it float around, its an aesthetic choice done by limitations that come up, you should try the same and instead use hairs that would fit this style.

1 Like

You’re right. Just implemented that style and honestly it looks better than before, thanks!


10 Likes

Hello, I’ve recently found about this module and quickly fell in love with it. I tried to animate a mesh that had the smartbone function and it worked perfectly and as espected. However recently (Like about 2 days ago) it stopped working properly. It’s very “glitchy” and when I try to play an animation on the mesh, it almost feels like it tries to stay in the default place all the time, which ruins the effect completely. It’s really weird because it worked perfectly before and now for some reason it stopped working. I have no idea on how to fix this issue and I’m starting to think that this problem is being caused by an roblox update. However this is just my theory at the moment. Perhaps this module wasn’t designed to be used on meshes with animations. If anyone knows something about this or has tried to use this module on meshes with animations, I would appreciate your response.

1 Like

I’m not sure what the cause would be, but I would personally try recovering an autosave from around when it was working as intended. It can help you narrow down the cause

1 Like

I tried doing this and unfortunately it still doesn’t work. My second attempt was to do it in a different game and with a different mesh, but I had no luck either. I think the problem is that roblox released an update that broke this. I haven’t made any new changes to my game for 3 days (it was working then) and when I decided to work on it again yesterday, it was broken. Anyway, thanks for the reply.

very creative usage, good job!!

1 Like

I got a problem importing my own meshes. For some reason, only the mmain bone remain after itgot imported. So i can’t use smartbone on them, did it ever happened to you?

This has never happened to me. When importing the mesh, make sure all the bones are selected on the left side. Maybe you should try to rig the mesh again.

Hello, I also got that weird enough…
It’s an easy fix though as shown below:
image
image

3 Likes

If anyone wants a temporary add on/wind solution until the new update comes out, put this in the Runtime script (or any other local script) .

local RunService = game:GetService("RunService")
local Lighting = game:GetService("Lighting")

RunService.RenderStepped:Connect(function()
	Lighting:SetAttribute("WindDirection", workspace.GlobalWind)
	Lighting:SetAttribute("WindSpeed", workspace.GlobalWind.Magnitude)
end)
2 Likes

UPDATE

Roblox has removed SmartBone from the Marketplace with the following message.

I am currently appealing to Roblox to hopefully get the asset back up, but for now the GitHub repo will remain available for you all to manually install SmartBone into your games. I’m sorry for any inconvenience this causes, and I will update you all as the things progress.

25 Likes

i like it + the hair on video game is too hard to do.
continue, great job. :slight_smile:
“my first replay on devforum Roblox community.”

There is a considerably better way to implement this incredible contribution—no reason to connect to any RunService Events. Just connect to the property change instead and save RenderStepped for things that would be better utilized… :slight_smile:

local function UpdateWindAttributes()
	game.Lighting:SetAttribute("WindDirection", workspace.GlobalWind);
	game.Lighting:SetAttribute("WindSpeed", workspace.GlobalWind.Magnitude);
end

workspace:GetPropertyChangedSignal("GlobalWind"):Connect(UpdateWindAttributes);
UpdateWindAttributes();
9 Likes

when it will back? can you give an rbxm file of module

Can anybody send a rbxm file of it please

i found a rbxm file of it

SmartBone.rbxm (13.5 KB)

just use insert from file in whatever game if u wanna open it

4 Likes

is it updated version or first version?

1 Like

idk also i forgot to send the local script mb

SmartBoneRuntime.rbxm (700 Bytes)

3 Likes