Source Filmmaker

Source Filmmaker

303 ratings
How to add physics! [DOWNLOAD FIXED]
By Scruffygamer (SFM COMMISSIONS) and 1 collaborators
This guide will show you how to add physics to any model in any map in SFM!

Thank you for your support lately! 4 stars!

I hope you all enjoyed this guide and we might be looking forward to more in the future!
4
2
4
2
2
   
Award
Favorite
Favorited
Unfavorite
RIG Scripts
First off, you will need to add rig_physics to your models.

Your model will be updated with a new property. You may get two properties if you have more bones on your model.

Here is what the physics properties do on “rigidbodies.”

Shape - “It changes the shape properties of your model. The more you drag it right, the more it will
act as a sphere.”

Bounce - “It affects the way your prop bounces, useful for balls.”

Kinematic - “It will not affect the prop unless it is turned right all the way. It will affect if the prop moves with physics or not, but will have physical properties.”

Friction - “It changes how much an object skids across the surface, to act like ice.”

Lineardamping - “Changes how fast your model moves with physics.”

Rotationaldamping - “Changes how much your model rotates with physics.”

THE PHYSICS WILL NOT COLLIDE WITH THE LEVEL! YOU WILL NEED TO ADD INVISIBLE FLOOR PROPS! Use carpet models from the TF2 files, or download this Overwatch model pack and use the floor props from there: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=685994386 .

This guide is probably done unless we missed some details about the script. If you see some missing information, please comment below, and we will check on it!

Thank you!




Applying Physics
Make sure to do this after you are ready with all your properties and positions of your models!

First of all, select a finite time range for your physics shot to take place.

Finally, use "rig_sfmphys_Simulation.py."

The more models and bones, the longer it will take to calculate the physics.

Remember! The physics isn't PERFECT. Ragdolls may glitch and stretch out if other objects interact with them too roughly.


THE PHYSICS WILL NOT COLLIDE WITH THE LEVEL! YOU WILL NEED TO ADD INVISIBLE FLOOR PROPS! Use carpet models from the TF2 files, or download this Overwatch model pack and use the floor props from there: https://steamhost.cn/steamcommunity_com/sharedfiles/filedetails/?id=685994386

This guide is probably done unless we missed some details about the script. If you see some missing information, please comment below, and we will check on it!

Thank you!
DOWNLOAD!
Always remember this first!

Click here to download SFM physics.[github.com]

To install it, follow the directions on what the picture shows above.

This guide is probably done unless we missed some details about the script. If you see some missing information, please comment below, and we will check on it!

Thank you!
117 Comments
jass_gaming 9 Jul @ 2:04am 
the new update sfm is not working, how?
ramanauskiene.edita 17 Feb @ 2:12pm 
finally, physics.
dainbramage 30 Jan @ 7:02pm 
bro the gif to install is to fast
DitieBun 25 Nov, 2024 @ 4:17am 
I got it working, then tried it later, now anything I give physics suddenly disappears
what do I do? :winterbunny2023:
jules archibald 29 Aug, 2024 @ 1:53am 
it dosent collide with other models
GeeTee 28 Aug, 2024 @ 7:45am 
no:steamthumbsdown:
Ryan Davanzo UwU 26 May, 2024 @ 3:17pm 
part 2 because steam only allows 1000 characters :v

File "d:\steam\steamapps\common\sourcefilmmaker\game\sdktools\python\2.7\win32\lib\site-packages\sfmphys\dagutils.py", line 35, in GetAbsTransformAtTime
trans = GetTransformAtTime(dag, time)
File "d:\steam\steamapps\common\sourcefilmmaker\game\sdktools\python\2.7\win32\lib\site-packages\sfmphys\dagutils.py", line 62, in GetTransformAtTime
pos = GetValueAtTime(dag.FindTransformControl().GetPositionChannel(), time)
AttributeError: 'NoneType' object has no attribute 'GetPositionChannel'
Ryan Davanzo UwU 26 May, 2024 @ 3:17pm 
and this one on clicking to simulate:

Traceback (most recent call last):
File "<string>", line 54, in <module>
File "d:\steam\steamapps\common\sourcefilmmaker\game\sdktools\python\2.7\win32\lib\site-packages\sfmphys\rigutils.py", line 67, in __init__
self.readFromGroup(group, time)
File "d:\steam\steamapps\common\sourcefilmmaker\game\sdktools\python\2.7\win32\lib\site-packages\sfmphys\rigutils.py", line 142, in readFromGroup
self.pos, self.quat = TransformToPosQuat(GetAbsTransformAtTime(self.handle, time))
File "d:\steam\steamapps\common\sourcefilmmaker\game\sdktools\python\2.7\win32\lib\site-packages\sfmphys\dagutils.py", line 40, in GetAbsTransformAtTime
partrans = GetAbsTransformAtTime(dag.GetParent(), time)
Ryan Davanzo UwU 26 May, 2024 @ 3:16pm 
This error appears when applying the rig:

rig_physics.py: looking for config file at: <FILE NOT FOUND>
rig_physics.py: no config found, assuming rigidbody
Traceback (most recent call last):
File "<string>", line 133, in <module>
File "d:\steam\steamapps\common\sourcefilmmaker\game\sdktools\python\2.7\win32\lib\site-packages\sfmphys\rigutils.py", line 112, in writeToGroup
vs.ConcatTransforms(bonedag.GetAbsTransform(), CenterTransform, ResultTransform)
AttributeError: 'NoneType' object has no attribute 'GetAbsTransform'
The Man 17 May, 2024 @ 10:22pm 
how do i select a finite time range