+3 votes

Hello there,

I'm trying to use softbody to simulate long hair for one of my characters, so I created the mesh in Blender and converted to softbody in Godot. The problem is fixing the pinpoints of the scalp on characters head is a real nightmare because it has to be marked one by one. Shift + Selection does not have any effect.

Do you guys know a more efficient way for fixing the softbodies pinpoints? That interface full of dots and delayed selection is really awful. :-(
(I love Godot, by the way, please, developers, don't take this critique personal, but as suggestion of something that maybe you should consider improving)

Another thing I've been wondering of is to use hair strand meshes without any texture, but different materials to each one to give an impression of hair, instead of a single mesh of the whole scalp. Do you think this is an efficient approach regarding performance? Should I use multimeshInstance to instanciate those hair strands?

Thank you in advance.

in Engine by (65 points)

1 Answer

0 votes

Final success work on youtube: https://youtu.be/yttmpihjmEo
See youtube instead of below


I found some way to do that but it's another Hell-work :(

( my example works failed but you can do this way )

Idea

enter image description here

every vertex in model has their index
(image wrong :/ , start from 0)

and there is some kind of work with index (like build modifier on blender)
enter image description here

and I found that "join object" mean "push_back" their vertex
enter image description here
you can see join order can effect vertex index

Example work

enter image description here
example work with blender

enter image description here
select vertex you want to pin

enter image description here
duplicate selected vertex and seperate from object with Editmode > Seperate Selection
*important ) check your pin vertex count

enter image description here
select hair object, pin object and join it
after join, merge vertex by distance

and go to godot

enter image description here
set pinned points count to *your vertex count and set element same as index
you can see pin vertex selected well (in example, 155 vertex)

enter image description here
and another hell work for spatial attachment setting :\

enter image description here
ahh i forgot select hair volume, failed example
but you can see expectation result

so, test your hair simulation on blender
and work with fixed vertex (group) :)

EDIT:
Good news !
you can setup easier Hell-work on tscn text edit
enter image description here
change pinnedpoints array 0 to *selectedpinned_size
and change attachments properties; "NodePath()" to "NodePath("..")"

enter image description here
Work very well :)

create pinned_points array text for Processing

final int count = 450;

void setup() {
  StringList tmp = new StringList();
  for (int i=0; i<count; i++) {
    tmp.append(str(i)+",");
  }
  String[] j = tmp.array();
  saveStrings("arraylist.txt",j);
  exit();
}
by (43 points)
edited by
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.