The main reason why the collision doesn't work is that the cable is just a few connected vertices (edges) without any faces.
You're using the Skin modifier to give the cable some thickness. That's a good idea but the Skin modifier is below the Cloth modifier on the stack (top-down-wise). This leaves the Cloth simulation still the few vertices and no mesh for collision detection. The Skin modifier must be before (on top of) the Cloth modifier. But this doesn't work either because the Cloth modifier will make the skinned cable collapse, and when the rigid body physic kicks in then the cable "explodes".
Your physic settings are completely off. In the Collision settings of several objects you have set the Thickness Outer and Damping values to 1! (I guess you had been desperate). It's better to use a small value for the first, something like 0.05
for objects that have a real-world size, and leave Damping at the default value (0.100
).
Also in the Cloth setting you have set the Object Collisions > Distance to 1 meter! This freezes Blender completely! Go with the default settings and just lower the Distance value to 0.01 m
. The same distance you can use for Self Collisions. But it was not needed in the animation above.
Furthermore, you have some other issues, that prevent proper collision detection.
What Chris already in the comment mentioned is that the face orientation of the walls and floor is wrong. This does not work because by default the Single Sided option in the Collision settings is enabled. This makes the collision detection only work for the outside of the object (which is the inside because of the flipped normals).
Last but not least, if you run physic simulations apply the Scale to all objects so the objects have their Scale set to 1.000
(Ctrl+A in Object mode). You can check this in the N-panel in the Transform tab. Don't forget the Empty. Since you're using cloth and rigid body simulations it's a good idea to apply also the Rotation for the objects that are involved in the simulation. Applying the Location depends. Sometimes you need to apply it (=reset to 0,0,0) but sometimes you need to set it to the center of the geometry. Later is needed for the floor for example.
Checklist To Get The Animation Running
- in the first step, fix the issues (normals, scale, collision settings)
- remove the Skin modifier, extrude the cable so that it is a small stripe of faces.
- add the vertices of both ends of the cable to the Pin group.
- use the Vertex Hook for the first 4 vertices to hook them to the Empty. Make sure these 4 vertices are in the Pin group and only those are hooked
- don't scale the Empty of the hook. It affects the mesh when it is used as a hook. Better change the visual appearance in the Object Data Properties > Size
- use Vertex Parent (Ctrl+P in Edit mode) to parent the Empty to a vertex of the game controller object
- add a Collision modifier to the game controller object and change Physics Properties > Collision > Thickness Outer to
0.010
and ... > Inner to 0.050
, and uncheck 'Single Sided' to "tame" the cable near the controller.
- make the floor a Passive Rigid Body (menu Object > Rigid Body > Add Passive). This way the game controller doesn't fall through. The Collision modifier is for the Cloth, Particle & Soft Body only. (For the TV and the board, there are 2 low-poly "... Hit Box" objects that are passive rigid bodies.)
- set the origin of the floor to the geometry to make the collision work properly (menu: Object > Set Geometry > Origin To Geometry)
- remove the Cloth modifier from the cable and add a fresh one to get the default values. Set the Shape > Pin Group, and set Object Collisions > Distance to
0.01 m
.
- remove the Collision modifier from the cable connector at the game cube. The cable is pinned here anyways, and it sticks a little into the connector. The collision detection will go crazy here.
- to give the cable thickness you can use the Solidify modifier and Subdivision Surface modifier. Make sure they are after/below the Cloth modifier.
- by default, the Solidify modifier is enabled in Edit mode and the model looks like in the Object mode. Don't let Blender fool you. In Edit mode, the cloth simulation doesn't run! Make sure you're in Object mode when you run it.