• she/they/it 🏳️‍⚧️

∍⧽⧼∊ ΘΔ

grey ace, adhdtism


hobbyist game developer, professional procrastinator, and kink trash goblin


avatar by @theobii
Zorotek is @7x9000's
header by Gluepaw


Dvorakir
@Dvorakir

for various reasons i'm in a need of a big pile of blåhajs, and i want them to be tightly clumped but also not intersecting each other, so physics simulation it is

i know multiple cloth objects with collision on them usually don't work well with each other (the other cloth objects are perceived as static but moving surfaces), it can work reasonably well with spheres but once colliders get a bit more complex there's inevitably going to be some intersection and once that happens all the colliders get pulled into a singularity

the trick around this is to have everything as part of one mesh and use self collision, which I'll try tomorrow, and if that don't work I'll just fall back to slapping an armature inside blåhaj and using rigid body ragdolls


Dvorakir
@Dvorakir

self collision does indeed fix the problem, now i just need to make a more suitable collider instead of the one voxel remeshed from the actual mesh (which still happens to retain some of the mesh attributes...)


Dvorakir
@Dvorakir

since all the shark colliders have to be part of the same object, i made a little geometrynode setup that instances the collider mesh at the positions of all the HQ sharks, then realizes those to a mesh that can then be cloth simulated

the remaining step is to bind all the sharks' surface deform modifiers which can be done with this script (assuming all the sharks are selected and the deform target object is already set, which it would be when you make duplicates)

import bpy

for ob in bpy.context.selected_objects:
    with bpy.context.temp_override(object=ob):
        bpy.ops.object.surfacedeform_bind(modifier="SurfaceDeform")

You must log in to comment.