Jump to content

Hi There

Welcome to Klub Exile. If you happened to make your way to the site either from Lovers Lab or a Search on Google, we are glad you found us.  To unlock the entire site you will need to have a account registered.  Don't worry it is free but in the mean time you can read up on why we made the site and other little tidbits.  Feel free to join or Discord Server also if you have any more questions.  Thanks for stopping by and See You on the other side.

admin admin
Creating a Blog? Don't Forget the Feature Photo!! ×

Hairworks masterclass


vi363R

880 views

I'm planning to work out the real deal with Hairworks. It is nice creating them in Blender, but the part where the data needed to be pasted in the apx file has always intrigued me and left me wondering there was more to it and I'd like to be in control of the collisions and anything else there may be to control.

So here I am, installing 3DS Max with hairworks plugin 121 and a whole lot to learn 😉

  • Like 3
  • Thumbs Up 6

28 Comments


Recommended Comments



8 hours ago, hfg2 said:

This is the code that marked as flipped some of the bones: (https://github.com/search?q=repo%3AModdingClass%2FTK17-Custom-Bodies-plugin+isFlipped&type=code)

	lowerBodyList = [ "hip_R_joint", "vagina_L_joint01", "clavicle_L_joint"]
	breastFixList = ["breast_L_joint", "breast_scale_L_joint", "nipple_L_joint01", "nipple_L_jointEnd", "breast_deform01_R_joint01","breast_deform02_R_joint01", "breast_deform03_R_joint01","breast_deform01_R_jointEnd","breast_deform02_R_jointEnd","breast_deform03_R_jointEnd"]
	lipsFixList = ["upper_lip_R_joint01","upper_lip_R_joint02","upper_lip_R_joint03","upper_lip_R_jointEnd", "lower_lip_R_joint01","lower_lip_R_joint02","lower_lip_R_joint03","lower_lip_R_jointEnd"]
	headFixList = ["cheek_R_joint01", "cheek_R_jointEnd","ear_R_joint01", "ear_R_jointEnd", "forehead_joint01","forehead_jointEnd", "nose_joint01", "nose_joint01","nose_joint02","nose_jointEnd"]
	eyeFixList =["eye_socket_R_joint", "eye_brow_R_joint01","eye_brow_R_joint02", "eye_brow_R_jointEnd", "eye_R_joint"]
	specialCaseList = ["rib_R_jointEnd", "butt_R_jointEnd"]
	fixList = lowerBodyList + breastFixList +lipsFixList + eyeFixList + headFixList +specialCaseList
	empty["isFlipped"] = False
	if name in fixList or hip_R_joint_child or vagina_L_joint01_child or clavicle_L_joint_child : 
		empty["isFlipped"] = True

So in practice for me the left arm joints are flipped. 🙂

So focusing on the right arm should give you proper joints orientation from start, easier to work on that first, not taking into account flipping that must be applied on the other side.

ok I think I did it. upper arm collisions under control. thanks to your tool I was able to find the correct orientation for the shoulders (same as the clavicle) and I believe the rest was already working. need to do some more testing but I'm positive that another step towards fully controllable collisions has been taken here.

thanks!

2023-12-18 16_31_22-Greenshot.jpg

2023-12-18 16_35_21-Greenshot.jpg

  • Thumbs Up 1
Link to comment

WORKING!! OMG this took me the better part of my free time and sleep last week. 

  • No more rotations in pass file, all default values
  • Custom UV for growth mesh
  • Custom armature with very detailed bone orientations in XYZ
  • Possibility to create different growth meshes in Blender and import them into 3ds Max and start with hairworks, or
  • Simply keep the mesh for the growth and simply start combing and export apx directly into ActiveMod in just a few simple steps.
  • Python script to inject collision spheres into existing hairworks (with the same orientation)

Now I need some sleep, this kept me awake the entire week 😉

screenshot_23_12_18 22_41_38.jpg

  • Like 2
Link to comment
On 12/18/2023 at 10:48 PM, vi363R said:

WORKING!! OMG this took me the better part of my free time and sleep last week. 

  • No more rotations in pass file, all default values
  • Custom UV for growth mesh
  • Custom armature with very detailed bone orientations in XYZ
  • Possibility to create different growth meshes in Blender and import them into 3ds Max and start with hairworks, or
  • Simply keep the mesh for the growth and simply start combing and export apx directly into ActiveMod in just a few simple steps.
  • Python script to inject collision spheres into existing hairworks (with the same orientation)

Now I need some sleep, this kept me awake the entire week 😉

 

For the moment this is the outcome. It includes an example .max file to start from. With that, creating hairworks has become a whole lot easier, it is now really the art of combing 😉

Most likely I'll create some new meshes in the future, for more complex hairs, or different splits. The one included has an (overlapping) split between left and right.

 

  • Like 1
Link to comment

×
×
  • Create New...

Important Information

WARNING! Adult Only Content You must be 18 years of age or older to enter. By accepting you agree to Klub Exile's Terms of Use and Guidelines upon creating an account.