Softbody text problem

Hi All,
I am using Blender 2.57. I created a text and added the softbody modifier to it. I un-clicked the softbody goal. I created a plane and set collision on. The problem is when the text touches the plan, in the animation, it collapses. When I do the same thing with a cube it works and the cube does not collapse. How can I make it work for text please?

try activating stiff quads.

good luck :slight_smile:

Thank you youthofblender for your reply, unfortunately this did not work.

Yeah, Blender softbodies works that way. You can’t just throw any old mesh at it. It collapses because there are no internal veritices to resist the collapse. You need to “Densify” the mesh then the stiff quads may work.

But softbodies is kind of a one trick pony. You can play with it for hours and it basically does the same thing. I find the parameters offer little control other than slight variations from the default settings.

Hi, I had this little script to add some extra edges. This could prevent geometry collapsing on soft body simulation… it works fine on simple objects -see you need to adjust the parameters-

Anyway on text I would suggest a different aproach:
Add a cube and scale it to be just bigger than your text. Loopcut it to get a regular grid, then run this script on the cube and make it a Soft Body. Bind the text to this object with a Mesh Deform modifier…


min = 0.25       # new edges when distance bigger than this
max = 1.50       # and smaller than this value...
limit = 250      # add up to this number of edges

import bpy, mathutils, random
from mathutils import Vector
obj = bpy.context.object
edg = obj.data.edges
ver = obj.data.vertices
ind = list(range(len(ver)))
app = []

for a in ind:
    for b in ind[a:]:
        delta = ver[a].co - ver[b].co
        if delta.length >= min:
            if delta.length <= max:
                app.append([a,b])

bpy.ops.object.mode_set()
for a in ver: a.select = False
bpy.context.tool_settings.mesh_select_mode = [True, False, False]
random.shuffle(app)

for b in app:
    ver[b[0]].select = ver[b[1]].select = True
    bpy.ops.object.editmode_toggle()
    bpy.ops.mesh.edge_face_add()
    bpy.ops.object.editmode_toggle()
    ver[b[0]].select = ver[b[1]].select = False
    limit-=1
    if not limit: break

# obj.draw_type = 'WIRE'
# obj.hide_render = True

some simple example: http://dl.dropbox.com/u/16486113/Blender/softbtext.blend

Nice demo, once again:cool:

Thank you very much Liero. I shall try this. It will take me a while as I am fairly new to blender. The demo looks great.:smiley: