Friday, September 10th 2010, 6:13am UTC+2

You are not logged in.

  • Login
  • Register

1

Saturday, January 16th 2010, 11:12am

Maya dynamic curves going NUTS!!! Please help!

Hi everyone!

I have been googling the web for a while looking for a solution to this problem. I must be doing something awfully wrong because I seem to be the only person with this probelm.

I am trying to create a hairstyle (long curly hair) with maya hair. I am shaping the curves first because it is easier to control them that way and then make them dynamic.

I have tried all methods of doing this I could come up with but every time I push the playback button the curves start wiggeling out of control and finally explode in my face instead of falling naturally.

This always happens when turning any sort of shaped curve into a dynamic one or when trying to shape already existing hair curves. Has anyone experienced this problem? Can anyone tell me how to fix this? The only way that has sort of worked for me was putting iterations at 1 but this also meant loosing most of the shape.

Ich habe in verschiedenen Foren zu diesem Thema gepostet und will nicht nochmal auf Deutsch formulieren (deshalb English). Antworten können also auch ruhig auf Deutsch sein! Ich hoffe es stört keinen. Habe bisher aus keinem Forum eine Antwort erhalten. Ich hoffe es gib jemanden der mir weiter helfen kann. :)
  • Go to the top of the page

bort

Intermediate

Posts: 232

Location: Seoul

Occupation: 3D

2

Sunday, January 17th 2010, 9:59am

explodierende Haare.

Hi,
Es waere vielleicht gut wenn du ein Bild von den Haaren im Ausgangs- und Explosions- Frame zeigen koenntest, damit man weiss wie der Fehler genau aussieht. Ich beschreib dir einfach mal wie ich vorgehe und was ich denke wo es bei dir dran liegen kann.

Also du hast deine Kopf-Mesh und darauf hast du deine Frisur mit Curves erstellt:
Achte darauf dass alle Curves die richtige Curve-Direction haben also den Curve-Start uf der Kopfhaut.
Checke dein Mesh, da nacher Follicles erstellt werden, ist es wichtig, dass es ordendlich abgewickelt ist
und dass die abwickling der UVs im Koordinatenbereich UV 0,0 bis UV 1,1 liegt. Also im Standart UV-Space.

Nun denke ich hast du alle Curves und den Mesh selectiert und make Dynamic gedrueckt:
Oeffne die OptionBox und aktiviere uch die mittlere von den drei Checkboxen falls du moechtest, dass die Haare auf die Kopfhaut gesnappt werden.

Nachdem die Curven dynamisch sind kommt der Knackpunkt an dem ich denke da koennte das sein was dich irritiert:

Die Rest-Pose der Follicle koennte auf "Straight" stehen, wenn dies so ist versuchen die Curves, nach begin der Simulation, sich immer gerade auszuricheten, was aussehen kann als ob sie explodieren.
Stelle die Rest-Pose aller follicle auf "Same as Start". Damit die Curven bei der Simulation versuchen in deiner Frisur zu bleiben.
Ganz wichtig: Es gibt im Haar-Menue auch "Set-Start-Pose" und "Set-Rest-Pose" fuer die Haare die man manuel setzen kann. Arbeitest du aber wie oben beschrieben solltest du diese Menu-Punkte nicht benutzen!

Versuche jetzt einmal die Simulation anzuschauen:
Ganz wichtig. Achte darauf, dass deine Playbackeinstellungen richtig sind. es ist wichtig, dass du sie auf "Play every Frame" gestellt hast. Ausserdem vergewissere dich das du vor oder genau auf dem StartFrame des HairSolvers anfaengst abzuspielen. Also im einfachsten beispiel: Ist in deiner Timeline 0 also Start dann stelle auch das Startframe des HairSolvers auf 0.

Tipps zum hairSystem:
Versuche mit startCurveAttract und der Stiffness zu spielen um gute Ergebnisse zu erhalten und deine Frisur beizubehalten.
Setzte den Stiffniss wert niemals auf ueber 1 !!! Falls deine Haare nicht in der Frisur bleiben wollen oder du zu hohe benutzten musst kannst du die Iterations hochstellen aber ein wert von 4 ist eigentlich ok.

Falls du Kollisionen haben willst benutze immer Collide-Spheres. Sie berechnen am schnellsten und am genauesten. Poly-Meshes direkt als Collisions-Object zu benutzen ist nicht gut das die Methode sehr ungenau und fehlerhaft und langsam ist im hairSolver.

Wenn es zu Durchdringungen mit den Collide-Spheres kommt. Dann musst du beim hair-Cache in der OptionBox oversampling benutzen. ein Wert von vier ist sehr gut. Das bedeutet er wird jedes Frame 4 mal berechnen. Achtung! das overSampling veraendert aber auch die kompletten Solver-Ergebnisse du brauchst also auch komplett andere Einstellungen im hairSystem.
Achte darauf das im StartFrame Collision-Objects niemals hairCurves durchdringen oder schneiden!

Ich hoffe es hat dir geholfen. Falls es das Problem nicht geloesst hat versuche deine Szene neu aufzusetzen. Um vorhereige Fehler auszuschliessen.

Gruesse :)
Bernd
  • Go to the top of the page

3

Monday, January 18th 2010, 9:38am

Hi Bernd!

Vielen Dank für die guten Tips und deine ausführliche Hilfe! Ich habe mal weiter rumexperimentiert und eine komplett neue scene angefangen mit einer simplen polygon plane als Ausgangsmesh. Ich habe ein face selektiert und das create hair tool benutzt. Alles war super bis ich dann im Hair Menü Modify Curves > Curl benutzt habe. Ich habe alles was du beschrieben hast überprüft und alle möglichen Settings ausprobiert, auch neue Kurven erstellt und sie in dynamische umgewandelt und alle Follicle settings ausprobiert... die Kurven zappeln und schlakkern immernoch wie bekloppt durch die gegend :( .

Kann ich dir vielleicht mal die Testscene schicken? Ich benutze 2008. An sonsten ist das einfach zu reproduzieren. Poly Plane erstellen, face selectieren, create hair benutzen, dann Modify Curves > Curl und rest und start positionen anpassen und dann wundern warum alles schlackert. Es scheint keinen Weg zu geben das wieder unter kontrolle zu bringen.
  • Go to the top of the page

bort

Intermediate

Posts: 232

Location: Seoul

Occupation: 3D

4

Monday, January 18th 2010, 1:40pm

Testszene

Ja kein Problem, lade sie hier einfach hoch und ich schau sie mir mal an.
  • Go to the top of the page

5

Thursday, January 28th 2010, 9:26am

Tut mir leid das ich mich so lange nicht gemeldet hab, war im Urlaub. Also ich probier jetzt mal den Testfile anzuhängen.
omnione has attached the following file:
  • curvecrap.zip (12.52 kB - 2 times downloaded - Last download: Jan 28th 2010, 1:00pm)
  • Go to the top of the page

tonytouch

Moderator

Posts: 2,679

Location: munich

Occupation: enthusiast

6

Thursday, January 28th 2010, 10:28am

hi omni ,

ich hab es selbst mal eben probiert ( eine spiralCurve in dynamic umzuwandeln ) - scheint nicht so problemlos zu funktionieren ! ich denk , das liegt daran , dass es ein ganzer haufen , unlineare ControlPoints sind , die maya dann berechnen muss und man auf die weise evtl. gar nicht zum gewuenschten ergibnis kommt .

warum die Locken mit hair erstellen ???? eigentlich muesste das doch mit FUR ganz gut gehen , und das FUR "curlen" , und die dynamic durch "gerade" curves simulieren und auf das FUR anwenden ( attract FURdescription to HAIRSYSTEM ) .


gruss und viel glueck
----------
just me

This post has been edited 2 times, last edit by "tonytouch" (Jan 28th 2010, 10:36am)

  • Go to the top of the page

bort

Intermediate

Posts: 232

Location: Seoul

Occupation: 3D

7

Thursday, January 28th 2010, 4:48pm

Jub

Hi,
Ich schliesse mich da TonyTouch an. Locken direkt mit den Curves nachzubauen ist viel zu komplex um es ordentlich zu simulieren. In 3D Simulationen ist es wichtig Ablaeufe zu abstrahieren um Performance und Uebersicht zu behalten.
TonyTouch's Idee mit der Hair-Fur Combo ist sehr gut. Mit Fur hast du sehr gute Kontrolle um fuer das aussehen der Haare.
Um keine Durchdringungen der Locken zu haben sollte die Kollisionsdicke eines Simulationshaares immer dicker oder gleich dick der gerenderten Maya-Fur-Locke sein. Die Kollisionsdicke eines Haares ergibt sich durch. HairWidth + CollisionOffset + clumbWidth.

Also allgemein versuche deine dynamischen Kurven su simple wie moeglich zu halten Spiralen sind gar keine gute Idee! Ein grosser tipp ist noch, dass die Haarsimulation auf den curve-CVs beruht. Hast du ein Haar A das 10 cm lang ist und ein Haar B mit der selben Laenge dann koennte man ja annehmen, dass beide Haare das gleiche Simulationsverhalten haben. Das ist auch so wenn Anzahl und Abstand der ihrer CVs uebereinstimmen. Hat Curve A aber 20 CVs und Curve B 4 CVs dann kannst du noch solange an dem HairSystem herumarbeiten Haar A und Haar B werden sich immer unterschiedlich verhalten. Teste diesen Sachverhalt ruhig einmal in einer Scene mit zwei curven die die gleiche Laenge und form haben aber unterschiedliche CV-Anzahl.

Ansonsten, soweit ich weis gibt es in der Maya-Hilfe Tutorials wie man Zoepfe und Locken macht aussschliesslich mit mayaHair. Dann brauchst du nicht Fur und Hair zu kombinieren.

Viel Erfolg,
Bernd :)
  • Go to the top of the page

8

Friday, January 29th 2010, 10:27am

Das hört sich nach einer guten Idee an! Werd ich gleich mal ausprobieren. Vielen Dank schonmal!
Falls es jemand interessiert, hier is das Modell an dem ich arbeite:

Momentan sind das noch poly Haare und ich krieg das nich hin das die gut aussehen im Rendering. Ich hatte auch erst dynamische Kurven in jeder einzelnen Locke aber die haben nicht auf die colision spheres reagiert oder zumindest teilweise nicht... Im grunde ist das ein lowpoly Mesh mit einer 32 bit displacement map.

Als nächstes will ich ein rig bauen und vielleicht hab ich noch die Energie mich mit dem Muskelsystem zu beschäftigen... :)
  • Go to the top of the page

bort

Intermediate

Posts: 232

Location: Seoul

Occupation: 3D

9

Saturday, January 30th 2010, 10:52am

Moin

Hi, (sorry fuer die miese Textformatierung hab einfach drauflosgeschieben)

Jetzt wo ich deine Bilder sehe, verstehe ich warum du die Curves direkt als Spirale gebaut hast. Die Frisur hat wirklich klar definierte Locken. Ich habe auch mal getestet was passiert wenn ich Spiralcurves dynamisch mache und muss sagen es klappte doch recht gut. Deine Polyhaare sind ein extrem guter Startpunkt dafuer, falls die Topologie stimmt.

ein Beispiel:

Allgemein:
Falls dein Model in einer sehr kleinen oder grossen Skalierung gebaut ist. Skaliere dein Model vor den ganzen Arbeitsschritten. Es ist nicht gut in Maya zu klein zu modellieren !! Eine Einheit enspricht nach standart 1 cm!! also bei den
Masen deines Models sollte die Frau vielleicht so 160 Einheiten gross sein. Benutzte die MeasureTools um es zu
ueberpruefen und zu korrigieren. Die Werte im hairsystem sind von der Skaliereung beinflusst. Skalierst du wie oben beschrieben wird die Simulation es dir danken.

Erstelle eine Testszene in dem gleichen Massstab wie dein Model:

-Erstelle eine PolyHelix (groesse deiner Haarlocken ensprechend)
-Selektiere einen Edgeloop ueber die gesammte Helixlaenge.
-Konvertiere den selektierten Edgeloop in eine Curve.
-Selektiere den obersten vertex der Curve und ziehe ihn mit sofSelect mit fallofMode auf "surface" und einem fallofRadius von ungefeahr einem drittel der Helixhoehe nach oben.

-Nun hast du eine Curve die ungefaehr deiner deiner FrisurLocken entspricht.
-Achte darauf das die Direction der Curve on oben nach unten ist.
-delete die History der Curve
-Erstelle eine Polyplane und schiebe sie an den startPoint der Curve
-Achte darauf das die surfaceNormale der polyPlane nach unten zur Curve gerichtet ist
-um ein paar weitere Locken zu haben dubliziere die Curve ein zweimal und verschiebe sie so das sie sich nicht ueberschneiden und drehe sie ein wenig.

-selectiere die Plane und die Curves und fuehre "make selected" Curves dynamic aus
-stelle deine playbackEinstellungen auf min 0 max 10000 und "play every frame" oeffne den Attribute Editor
-selektiere das HairSystem
-Im HairTab druecke auf interactive Playback
-Nun spielt die Simulation ab.
-wenn du die Polyplane bewegst kannst du die Simulation beurteilen beinflussen
-weahrend du im Attribut editor die hairSystem einstellungen sehen und veraendern kannst
-Zuerst werden die Curves einfach ihre spiralform verlieren
-Lasse den Stiffnesswert auf default
-Wende dich dem startCurveAttract Wert zu, stelle ihn so hoch das die Curves schwingen aber nicht ihre Form verlieren.
-Veraendere den attractionScale Graph um die Curves oben steifer zu machen und unten mehr lockerer
-Wahrscheinlich siehst du nun ein gewaltiges schwingen mit hoher Frequenz im spiralTeil der curves
-erhoehe den Dampwert um es zu eliminieren
-erhoehe den motionDrag Wert um die haare nicht wie Gummi erscheinen zu lassen. (der wert ist sehr sensitive)
-erhohe die Stiffness falls die Haare sich zu sehr dehnen (gehe niemals ueber eins)
-Lasse den StiffnessScale Graph immer als horizontale Gerade auf der hoehe 1 um die Steifheit durch die ganzen curves beizubehalten.

-falls alle werte zu extrem eingestellt werden muessen, erhoehe die iterations, dannach korrigiere die Werte
-Wiederhohle die Arbeisschritte zum hairSystem einstellen so lange bis du gute Werte gefunden hast.
-Speicher die Einstellungen als Preset
-Oeffne deine Model-Datei
-Baue aus den PolyHaaren Curves
-rebuilde die Curves so dass die CVs gleichmaessige absteande haben. Bei jeder Curve! ein Abstand von einer Einheit von CV zu CV ist eine ganz guter Wert glaube ich.

-Mache die Curves der Frisur Dynamic
-Wende dein vorher gespeichertes Preset auf deine Frisur an.
-Simuliere die Haare und mache gegebenfalls Korrekturen am hairSystem.

Fuer Kollisionen die nicht richtig funktionieren lese das was ich im ersten Post uber overSampling geschrieben habe
Sei Achtsam es beeinflusst den gesammten Workflow! Zur Kollisionsdicke der SpiralHaare: Wie ich oben geschrieben habe ergibt sie sich durch clumbWidth + hairWidth + collsionOffset sind deine pfXRenderLocken(falls du mit pfx renderst) nun sagen wir mal 4 Centimeter dick, dann stelle deine drei Werte so ein dass die Collisions-Dicke auch 4 Centimeter ist. Da clumbWidthh und hairWidth natuerlich auch deine pfx-Darstellung beieinflussen gehe ueber den collisionOffset um deine SimulationsDicke anzupasssen.

Mit der richtigen Simulationsdicke im richtigen Masstab zu arbeiten ist extrem wichtig, wenn du zB selfCollisions oder hairBunchConstrainst benutzt. sind deine HairCurves zum Beispiel nur 4 maya-Einheiten lang, weil du sehr klein gemodelt hast aber deine Colllision-Dicke ist 3 oder so, dann ist es logisch dass deine Frisur explodieren wird, da die Haare wahrscheinlich durchschnittliche Absteande von 0,2 einheiten haben, die Simulation aber auch berechnen muss dass die einzelnen Haare 3 Einheiten dick sind. Somit presst die Simulation die Haare auseinander und die Frisur explodiert.
Self-Collisions sind nach meiner meinung,(muss nicht undbedingt stimmen kann auch sein dass ich es bis jetzt nur nicht hingekriegt habe), zu vermeiden da sie sehr zu Unordnung und Zucken der Frisur Fuehren und nicht sehr ruihg simullieren.

So jetzt aber genug geschieben, Ich hoffe es hilft dir ein wenig. Versuch die Simulation nochmal mit spiralCurves und schreibe mal deine Ergebnisse. Ich bin gespannt. Deine Renderings gefallen mir sehr gut, obwohl ich sagen muss, dass du bei manchen Masssteaben sehr grosszuegig warst.


Grusse,
Bernd :)

This post has been edited 2 times, last edit by "bort" (Jan 30th 2010, 10:58am)

  • Go to the top of the page

10

Monday, February 1st 2010, 4:16pm

Wow! vielen, vielen dank für die ausführliche anleitung! :) ich werde mich sobald ich kann wieder dran setzten und es nochmal probieren. du hast recht das ich mir das mit den übertriebenen proportionen nicht verkneiffen konnte :).

ich habe beim modelieren schon sehr auf scale geachtet. sie ist knapp 170 einheiten (cm) gross. das war schon für den skin shader wichtig und die displacement map einstellungen. ich hab noch nicht probiert edges in curven zu convertieren, gute idee! ich lass dich wissen was dabei rausgekommen ist :)

danke nochmals!
  • Go to the top of the page

11

Thursday, March 11th 2010, 12:12pm

Hallo mal wieder!

Ich bin endlich dazugekommen ein wenig weiter zu machen und habe jetzt doch nochmal probiert die Haar-strands mit Haar-Curves zu steuern. Ich habe es geschafft das zappeln der Kurven zu umgehen in dem ich ein neues Haarsystem erstellt habe nachdem ich die Kurven manipuliert und die geformten Kurven dem neuen Haarsystem zugewiesen habe. Ein Problem bleibt jedoch noch... einige der Kurven scheinen Kollisionsobjekte zu ignorieren! Ich habe den Testfile zum download bereitgestellt falls sich das Jemand mal anschauen möchte http://bit.ly/dCWT42 . Ich würde jedoch darum bitten es nicht weiter zu verbreiten.

Cheers!

This post has been edited 1 times, last edit by "omnione" (Mar 19th 2010, 8:36am)

  • Go to the top of the page

12

Friday, March 19th 2010, 8:36am

Ich hab das file jetzt wieder aus dem internet genommen. Falls jemand interesse hat kann er sich bei mir gerne melden.
  • Go to the top of the page

Similar threads