Kristinka Hair 3.0 released

Plugins linking to this thread: (hide)

Kristinka Hair 3.2Author: Anto Matkovic
The July 2014 update is another big one introducing new nodes like »Fit NURBS«, »Curls advanced«, »Curvature Amplifier«, »Grouping in Form« »Follow CurveList« »Stretch Hair« »Hair Filler Rounded« — for a full description see the si-community thread and the updated documentation.

The Kristinka Hair toolset is a new and unique way to set up, style and simulate hair using ICE nodes. A set of fully customizable ICE nodes Scalable, from only a few basic compounds for building basic hair, to very complex structures. Hair styling that always considers the whole shape of the hair. Styling works well for short and for long hair. Unlimited hair length, unlimited number of hair segments. Automatic, procedural generation of details - always with full control. Locks, clumps, curls, turbulence, are created by ICE compounds Additional modifiers, like cutting hairs by external geometry, constant strand length for key frame animation, resampling and subdividing strands, morphing with another hair, modulating hair's distribution over emitter, so user can increase density on most visible areas Full support for the Sofimage's built-in Strand Dynamics Framework simulation engine. Only factory ICE nodes were used, it should work nicely with any Softimage version from 7.01 on.

Other media available: Version 3.1's online 'first steps' tutorial. si-community user Bronco67 has created a video introduction for an earlier version available here. Also: A rendering tests thread, a TV ad by PsyOp featuring Kristinka Hair.

In case you want to apply kH3 nodes and dynamics on top of strands that were not generated by kH3 itself, here is a setup to enable that.

local backup: kristinka_hair_32_02july2014.rar

j3st3r
Posts: 121
Joined: 11 Jun 2009, 09:13

Re: Kristinka Hair 3.0 released

Post by j3st3r » 22 Aug 2011, 14:39

Hey,

For some reasons I can't UV map the extruded strips. I used a mesh as a source, I made my ICE Tree, and the extrusions are created, but unfortunately I can't UV map the extruded mesh (procedurally)

Any idea?



Cheers


Jester

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 22 Aug 2011, 20:17

hi there,

'mesh source', this probably belongs to extrusions in SI 2012 - if so, here is the thread. I don't believe there is something specific with kH3, about UV generation.

User avatar
AlexanderM
Posts: 28
Joined: 10 Jun 2009, 17:13
Contact:

Re: Kristinka Hair 3.0 released

Post by AlexanderM » 02 Sep 2011, 13:53

Good update.
Can I use kH3 Grouping compound with "Guides and Filler Triangles" mode? When I try, I get the problem where the roots. Also, is it possible to perform extrusions along strands with this mode? I noticed there beams, which are needed to address the problems of interpolation. I need single guide strands to make extrusion for connecting ICE Syflex dynamics.
I understand that "nurbs" method is easier to work with him and less of a problem, but I preferred "polymesh" and I want to find out
Attachments
khair1.jpg
khair1.jpg (174.09 KiB) Viewed 3656 times

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 02 Sep 2011, 20:24

AlexanderM wrote:Good update.
Can I use kH3 Grouping compound with "Guides and Filler Triangles" mode?
Yes, there are examples for both ('cross_sections_grouping' and 'stick_to_...'). Probably you want to compare these setups with yours, before going to forum. Especially ICE tree on emitter, correct reference to UV property.
Suggested setup for attaching to extrusions is one-mesh-strip-per-triangle (or, three guides) - to prevent Syflex sim, to do not explode with overlaps.
Btw, interpolation could look better with (almost) equal size of triangle's sides.

Cheers

tupu
Posts: 2
Joined: 18 Sep 2011, 15:06

Re: Kristinka Hair 3.0 released

Post by tupu » 23 Sep 2011, 02:33

Hi,

I am modeling a spider, from one master leg(which is the emitter object for all pointclouds) I use the deform hair compound to transfer the strands to the animated(deformed) legs.
It worked on the 3 legs but when trying to do the exact same thing on the fourth I can't make it work?

If I duplicate the fourth leg and try transfering between these two(leg_4 and new one Leg_5) it works, but for som reason it doesn't work from the "master" object.

The objects are all identical with same number of points and polys and so on and I have searched for differences in them but can't find any, is there something I am missing?

Here's a screenshot if it helps.

Image

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 23 Sep 2011, 15:33

tupu wrote:Hi,

I am modeling a spider, from one master leg(which is the emitter object for all pointclouds) I use the deform hair compound to transfer the strands to the animated(deformed) legs.
It worked on the 3 legs but when trying to do the exact same thing on the fourth I can't make it work?

If I duplicate the fourth leg and try transfering between these two(leg_4 and new one Leg_5) it works, but for som reason it doesn't work from the "master" object.

The objects are all identical with same number of points and polys and so on and I have searched for differences in them but can't find any, is there something I am missing?

Here's a screenshot if it helps.
Hi,

well this should work.... my wild guess is, probably references to objects are screwed up, sometime during duplicating - afaik ICE behaves differently than standard operators, there (let's say, you have reference to many curves in ICE tree, select and rename them all, you'll get a mass...). So maybe you can try to create all new references to all geometries, save and reload the scene. afaik#2, you'll see a 'real' result only after reload.

tupu
Posts: 2
Joined: 18 Sep 2011, 15:06

Re: Kristinka Hair 3.0 released

Post by tupu » 24 Sep 2011, 21:08

Hi,

Nothing seemed to work so I made new master emitter objects for the objects that weren't working by just duplicating them.

Is there a way to assign a group to "emit from polymesh", guessing not but I haven't gone through every compund yet or the all of the docs, but it would make
things a little easier, anyways great job on the compounds, thank you.

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 25 Sep 2011, 02:19

tupu wrote:Hi,
Is there a way to assign a group to "emit from polymesh", guessing not but I haven't gone through every compund yet or the all of the docs, but it would make
things a little easier, anyways great job on the compounds, thank you.
nope... it's using emit location for 'reinterpret location to new geometry' node, this doesn't work with emitting from groups. Deformer should be 'exact' copy (no changes in topology, like extrude, weld, so on), just something with same number of points isn't enough, here. If you can merge all meshes into one and envelope them...

cheers

User avatar
talent103
Posts: 181
Joined: 08 Jan 2010, 15:47
Location: New York City
Contact:

Re: Kristinka Hair 3.0 released

Post by talent103 » 26 Dec 2011, 22:51

Hi Marko
How woiuld I get the hair to collide with the face and body and not go through it?
Thanks
John

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 27 Dec 2011, 10:25

talent103 wrote:Hi Marko
How woiuld I get the hair to collide with the face and body and not go through it?
Thanks
John
I hope I'll post a few setups in next few days, in this thread. Some more convenient method for attaching to mesh stripes, instead the one in download. For factory strand dynamics framework as well. Don't know is there anything able to simulate on curves in newer SI versions, but possibly I'll try the one with curves too.

If you're talking with me :) - this is not my name... but I don't worry about :)

cheers

User avatar
talent103
Posts: 181
Joined: 08 Jan 2010, 15:47
Location: New York City
Contact:

Re: Kristinka Hair 3.0 released

Post by talent103 » 27 Dec 2011, 17:50

Sorry Mathaeus. :) I don't know where I got Marko from. That would be great if you could post the new setups. I originally tried the hair system when you first came out with it. I had not touched it again till this week with the new 3.0 set up. I know for the one I worked with I needed Phils Ice Pack for the simulation. It does seem like easier set ups now as we only need one ice tree and not 2. I was trying to re create the one point simulation model.
John

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 28 Dec 2011, 16:05

Honestly, v3 is made to be easier and faster for styling and key-frame animation, as some.. enough... easy parts. Drawback is a far more tricky simulation setup. Simulation is left to 'third party' :). After all, even basic simulation tasks in ICE (loading cache, re-timing, keeping attributes alive...) requires a power user, so few problems more, who cares :).
Also, according to fact that Cinema 4d for example, has a reliable hair sim for a years.... someone would expect something a bit more complex than about twenty nodes from Strand Dynamics Framework in out-of-the-box SI , in more than three years of ICE on the road. On another side, it's really easy to build something on top of that simple engine.

Here is a "clamped" Strand Framework in action - modifiers ( bend and randomize) were added later, on top of cached sim. Now, just to find enough easy setup...

User avatar
talent103
Posts: 181
Joined: 08 Jan 2010, 15:47
Location: New York City
Contact:

Re: Kristinka Hair 3.0 released

Post by talent103 » 29 Dec 2011, 18:01

I see. Yes Cinema 4D was something I was going to look into as well. I wanted to do something along the lines of the FLV file on your site of the woman with long hair giving a kick. Just so I am clear. Do you mean that it would be easier to animate the hair rather than simulate? If so I may just do that. I also heard in the xsi mail list of using Ice syflex for simulation. I am not sure if that wouild be on the follow nurbs items or on hair from curves. Thanks for explaining. I am just doing hair tests at the moment to see what would work best for me.
John

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 29 Dec 2011, 20:56

well I already have a few setups, just want to keep them a day of two, maybe I'll find some improvement. Don't give up, now :)

'giving a kick' setup, as well as setups for attaching to mesh stripes ( that is, for Syflex), both already were able in some version of kH.

What I wanted to say, it's really hard to find a some unified method for simulation, without forcing people to go deeper in ICE stuff.

Syflex and mesh stripes could be a total solution, as it provides self-collision, well defined vectors for kH modifiers on top of sim, all features of 'beast' engine after all. But it's not that fast, nicely to say. Also, getting a hair volume solely by self-collision, in many cases, I think this is a bit masochistic.

I wouldn't animate it. I wouldn't simulate geometry used for styling, for me this looks too stiff ( and it's not easy as it looking at first). 'Centrifugal' motion, so typical for hair, is lost when hairs were attached to just a few pieces of cloth.

User avatar
Mathaeus
Posts: 1778
Joined: 08 Jun 2009, 21:11
Location: Zagreb, Croatia
Contact:

Re: Kristinka Hair 3.0 released

Post by Mathaeus » 31 Dec 2011, 02:03

hi,

so finally there are two setups for download. For 'One Point Simulation' that coming with kH, and factory Strand Dynamics Framework. Both have a two separate point clouds. 'Point cloud_simulated', prepared for caching, and 'point cloud_load_cache', prepared for cache load. In order to see something meaningful, you'll need to cache the simulated point cloud, and load cache to 'load_cache' one. Here, caching process takes about minute for SDF ( Strand Dynamics Framework), much less for OPS (one point simulation), for about 200 frames.

Generally, structure is:

Simulated point cloud:

1: ICE tree in modeling region: basic emitter node, node for basic shape creation (here, kH Follow NURBS), nodes for initializing the simulation
2: ICE tree in simulation region: simulation nodes
3: Optional ICE tree in post-simulation, only for preview. Disable this ICE tree before caching (RMB in explorer, 'disable from here')


'Load cache' point cloud: this is created from simulated one - simulation stack is deleted, I've used 'cache on file' node for loading. This allows to have everything in a single ICE tree. However, you'll need to replace the emitter mesh with static copy (no deformations). In this single ICE tree there is:
1: basic emitter node, kH Follow NURBS or another 'form' node. 'Form' node still needs to be present, because it creates static vectors for later deformations.
2: load cache node
3: node for applying the particle motion to strands, for OPS, or... node for calculating the 'dynamic' deformation vectors, for SDF.
4. modifiers (bend, curls, randomize)
5. hair filler

A few words of simulations:

'One Point Simulation' simulates only on particles, it doesn't simulate on strands. In post simulation, spring motion is applied to strands, motion on particles is disabled.
It just bends the strands. For example, you can't get 'S' like shape. However, it's 'by design' faster than 'real' strand simulation, I'd believe it's more predictable too.
There are only three simulation parameters, typical for simple spring simulations: weight of linear and angular motion, weight of drag force. Preventing collision to external objects is still possible, but only in post-simulation, more like some small correction.

Factory strand dynamics framework is a full simulation on strands. Collision is calculated together with simulation. There is no self-collision, anyway. In movie a few post above, I've mixed SDF sim with transformed original strand shape. In simulated ICE tree, there is a node called 'kH3 restore original shape'. It's pretty much the same as 'strand groom force' from Melena/MT strands, but this time it's a 'brute force'. With full weight, this node will just kill the simulation, still transforming the strands by emitter's motion. You can weight this one along strands, for example, setting a higher weight at roots, zero weight at tips. It seems it also helping in calming the SDF sim.
Tip: keep weight less than one, even something like 0.99. Don't kill simulation completely (otherwise, I'm afraid ICE will come with optimizations, and whole chain of side-effects begins - at least I think so).

In 'cache_load' ICE tree of SDF, you'll see 'kH3 Apply Strand Orientation Delta' node, which re-calculates up-vector and tangent. In kH, these vectors are called 'kH_strandUpVector' and 'kh_Strand Tangent'. They are custom attributes, to prevent ICE to kill them on it's own choice. These two vectors are very important for correct behavior of modifiers (curls, bend). Method of this node is really basic - if deformed and transformed strand shape differs too much (more than 180 degree, I think), curl ( or another modifier) will suddenly rotate for 180 degree.

For those users who want better, I think the golden mine is a Gillaume Laforge's Deform Strand Extrusion. I think this is the only public available node with, let's call it a 'smooth flip' (similar to standard 'deform by curve' OP). Of course, some adaptation would be required. In movie, I've used something along line of mentioned node, but still I don't feel ready to share it.


About collision nodes:

I've used 'Test Collision with Surface" from SDF - the same as "push strands outside the geo", or else. Node is looking to closest location on surface. According to dot-product of point normal and direction to closest location, it decides where to
push the strands. So, with some exaggerated motion this could be unwanted, opposite side. So, 'safe' speed could be a less than half length of collider's volume, per one sampling interval (that is, one frame. maybe... sub-frame in newest SI). For
motion in samples, let's say the head or arm is enough 'fat', ears or fingers, definitively not.

download


happy holidays

User avatar
talent103
Posts: 181
Joined: 08 Jan 2010, 15:47
Location: New York City
Contact:

Re: Kristinka Hair 3.0 released

Post by talent103 » 02 Jan 2012, 19:54

Thank You so much. What a great New Years gift. I will play with these this week and let you know what I come up with. Thaks again.
John

Post Reply

Who is online

Users browsing this forum: No registered users and 29 guests