• Welcome to the Community Forums at HiveWire 3D! Please note that the user name you choose for our forum will be displayed to the public. Our store was closed as January 4, 2021. You can find HiveWire 3D and Lisa's Botanicals products, as well as many of our Contributing Artists, at Renderosity. This thread lists where many are now selling their products. Renderosity is generously putting products which were purchased at HiveWire 3D and are now sold at their store into customer accounts by gifting them. This is not an overnight process so please be patient, if you have already emailed them about this. If you have NOT emailed them, please see the 2nd post in this thread for instructions on what you need to do

Sculpting Dawn in Blender

unreal

Energetic
In waiting for D2 I decided to port my LF characters Dawn. I use Poser 12 and Blender 3.1 on a Mac. I used the Victoria series, then LaFemme once it was released. Sculpting the face of those characters in Blender is trivial because the face is a single mesh. Just export the head, import into blender keeping vert order, mask the boundary, and go. Then export from blender and import that obj as a morph in the head actor.

Once I decided to work with Dawn I found out the face is 2 meshes. I assume this is was done as a sort of stab at a face rig. In any case, this is problematic for me.
I play with CGI as a hobby. Poser I've had forever. Blender is free and becoming very good.

(Note: please don't bring DS into this. I use what I use for my reasons: Poser and Blender)

I know of no way in Blender to sculpt multiple objects at the same time. Poser can only import OBJs as morphs on a per actor-mesh basis, with the caveat that the morph OBJ has to have the same numbers of verts, and those verts are applied in poser in vert order.

Anyway, questions:

Does no one sculpt Dawn in Blender?
Are they using DS? (ie: does DS have some sort of better multiple actormesh I/O? If that's the case, is there a way using DS as a pipeline?
Is there some way to sculpt multi-meshes in Blender?

Does D2 have the same multi-mesh face?

If the answers to those provide no solution, then I'll have to write a unimesh hack.
 

Miss B

Drawing Life 1 Pixel at a Time
CV-BEE
I'm not much into sculpting, so haven't done any in Blender. I also haven't upgraded to version 3.0/3.1, as they seem pretty much in WIP status at the moment.

I'm currently trying to get used to the new UI in version 2.93, as it's so completely different than my 2.79 (and earlier) versions.

I've been taking classes at Udemy, where a group of instructors have created a new site called GameDev, and there's a forum where folks post what they're working on for comments and ideas for making whatever they're working on better. That said, there are courses by some of these instructors that have sculpting projects, but none that I know of have to do with re-sculpting and saving as a morph for an already established figure.

Have you tried YouTube to see if they have anything relatively close to what you want to do? I've gone through quite a few YouTube tutorials with some success, in fact, I'm currently trying to convert procedural hair to curves or mesh, and brought Dawn's head into Blender to see if I can create a scalp to use for the hair. Needless to say, I deleted all parts of the head I won't need. There is one instructor in this group that does some nice tutorials that you might want to check out on YouTube. His name's Grant Abbitt.

I wish I could help, but sculpting is down at the bottom of my list of things to do in Blender, so I don't see me being of any help. :(
 

unreal

Energetic
I searched. And searched. Ken wrote something very similar (other direction, though). Using techniques not dissimilar. His does a nice job of taking a morphed mesh out of Poser and allowing something like DS to easily import it as a morph. It probably can work with other software since it's stand alone. But that has "external to poser" as the target. I have "into poser" as the target.

The problem is a fundamental feature that Poser has for sculpting that Blender does not. I'm not sure of the internals of what Poser does, but it has a concept of logical "weld". That is, two vertices locked together. For sculpting, this matters as verts are affected by what other verts in their faces. It's almost like sculpting happens on a simulated unimesh, that maps each vert back to one or more non-unimesh verts.

Sculpting in poser would be almost unusable without the feature due to the nature of Poser's mesh structure (each actor has it's own. I suppose it made sense before weight mapping. I wander what else that type of thing is good for, these days.

The solution I'm trying is 2 meshes in blender. one, the normal (unmorphed), one a welded mesh (ie: merged by distance in Blender). With a vert map between them. Whatever is done on one mesh can be "pressed" (ie: copied) onto the other. In Blender, if you morph the welded mesh, then "press" it into the non welded, then export that mesh, poser can load it as a full body morph :)

So far, I've done this with edit in Blender. Exported from poser (entire figure), then edited in Blender, then exported that back out of blender and used it as a full body morph target in poser, it works exactly like it should. It does depend on having the Poser OBJ export set "just so" and the same with OBJ import and export in Blender. Otherwise, the objects end up being different. OBJ is a text file that's positionally sensitive.

Any way, this is a case of Poser devs having a need for their sculpt to work a certain way, and Blender devs not. So Blender doesn't have the ability to do this. if i was a waaaaaaay better programmer, I'd add that as a sculpt feature. That is, the ability to logically "weld" verts. Not connected at a mesh definition level. I suspect zbrush can do this. I've never used it, except to test a long time ago :)

I suppose there aren't many people doing sculpting for Poser that don't have zbrush. That's a bit out of "hobby" price range :D
With Blender's sculpt advancements, it's become quite usable.
 

Miss B

Drawing Life 1 Pixel at a Time
CV-BEE
Well, back in 2015, I started a thread at the top of the Blender forum (see link below), which includes a group of links of tutorials by Tony Vilters called PoserToBlenderToPoser, and though I've not gone through all of them, there might be something that is just what you're looking for.

Blender Help Forums And Tutorial Links
 

unreal

Energetic
It works!

I have a method and tiny script that easily allows Blender to sculpt a mesh that can be exported and used in Poser as full body morph. The script requires two things. The welded mesh and unwelded mesh. Sculpting happens on the welded mesh. The script just maps the welded mesh verts to unwelded mesh verts, and using that, forms the unwelded mesh into the same shape as the welded mesh. Blender maintains vert order on Objects, so when it esports the formed unwelded mesh, it can be used by poser as a full body morph. The script takes about a second to run. That's for Dawn (~40k verts). Poser imports an OBJ as mesh in a second as well. You can keep using the blender file to make more morphs and keep them all in the same blend file. just copy the morph mesh and sculpt that, then use that in the script to make a morph. You could even animate morphs in blender to see how they look :)

So far I've only tested making a facial character for Dawn (which crosses neck, head, jaw actors). It worked :)
 

unreal

Energetic
I'd be interested in something like this until the unimesh version of Poser appears.
Cool. I'm trying making it easier. There's a couple of ideas for it. Fundamentally, in Poser you need to export the zeroed figure as an OBJ twice. Once un-welded and the second time, welded. Then you need to import both OBJs into Blender, keeping poly groups and vert order. Then generate the map. The map generator can sanity check the two meshes.

The checks are:
  • The 2 meshes should have a different number of verts (one is welded, it will have less).
  • The list of uniq(vectors) for each should be the same. Same length, same values.
  • The mesh with less vertices is the welded vert. So I know which is the base and which is the welded.
If the checks are OK, then store the map in the file. We don't have to recalculate this. I use copies of the base mesh as source(s) for exportable morph OBJ(s). I use copies of the welded mesh as the editable source for those base mesh(s). So those meshes are best kept. Otherwise, you have to import them again.

Since the import has to be with certain options, maybe best as a button. "import Poser OBJ"

The script needs to know the two unmodified meshes. That's easy enough. It can figure out which is which on it's own. Maybe: Select 2 and click OK or Map. If you do that again and there's already a map, then dialog "remap?" Maybe also a clear map button (with dialog "are you sure")

For each morph you need to copy a source weld mesh to edit. Maybe a button to make a blank morph mesh and hide everything else.

Then to make the OBJ for poser, you need to select that source mesh. The script would make a copy of the blank un-welded, copy the all the source vertex vectors to that blank, then write the FBM key OBJ out. Then it could hide it. It's not needed inside of Blender, except for export. A button, maybe.

Perhaps some text fields to make it easier to name things.

Thoughts?
 

RAMWolff

Wolff Playing with Beez!
Contributing Artist
I'd be interested in this as well as I'm trying to get my ass in gear to learn how to use Blender more efficiently and let ZBrush go for the most part. Since they were bought out by Maxon I just don't have a good feeling about future upgrades so Blender here I come.
 

Miss B

Drawing Life 1 Pixel at a Time
CV-BEE
The only thing I ever used my old ZBrush for was remeshing, as it was always sooooo much better than in Blender 2.79 and earlier versions.

I haven't tried it yet in version 2.93, so that may have been reworked for a better result.
 

unreal

Energetic
The only thing I ever used my old ZBrush for was remeshing, as it was always sooooo much better than in Blender 2.79 and earlier versions.

I haven't tried it yet in version 2.93, so that may have been reworked for a better result.
For remeshing I use quad remesher. The programmer used to work on zbrush. I use the Blender add-on version. Very powerful. And (still) way better than Blender's built-in remeshing. At least if you're remeshing for animation and/or subd :)
 

MEC4D

Zbrushing through the topology
Contributing Artist
The workflow I am doing in Zbrush on Poser meshes is the same as yours in Blender , I import the full body mesh from Poser, make 2 copies, I weld one , sculpt whatever I want from it , then project the morph back to the un welded mesh and send it back to Poser .. it does not get more simple than that . Before I did welded and unwelded after sculpting but it does not always get as smooth .

Sometimes I like to work on unwelded figures it depends of what I am doing , I prefer the body parts to be separate for very fine details with a higher number of subdivision for poly painting and fine sculpting .

In DS it is just simpler as you can export the unimesh back and forth to any program you like to work with on it , however many folks also export the morphs to Poser as I do right now for Dawn 2. The DS-Poser workflow is more and more adopted right now by vendors as it is the most easy way of course if you have both rigs for DS and Poser .
 

unreal

Energetic
The workflow I am doing in Zbrush on Poser meshes is the same as yours in Blender , I import the full body mesh from Poser, make 2 copies, I weld one , sculpt whatever I want from it , then project the morph back to the un welded mesh and send it back to Poser .. it does not get more simple than that . Before I did welded and unwelded after sculpting but it does not always get as smooth .

Sometimes I like to work on unwelded figures it depends of what I am doing , I prefer the body parts to be separate for very fine details with a higher number of subdivision for poly painting and fine sculpting .

In DS it is just simpler as you can export the unimesh back and forth to any program you like to work with on it , however many folks also export the morphs to Poser as I do right now for Dawn 2. The DS-Poser workflow is more and more adopted right now by vendors as it is the most easy way of course if you have both rigs for DS and Poser .

So i'm not as crazy as I think. :)
 

Miss B

Drawing Life 1 Pixel at a Time
CV-BEE
For remeshing I use quad remesher. The programmer used to work on zbrush. I use the Blender add-on version. Very powerful. And (still) way better than Blender's built-in remeshing. At least if you're remeshing for animation and/or subd :)
Ohhh, that sounds familiar. I'll have to look into that.
 

unreal

Energetic
With Ken's help, I found a problem. It's specifically in Blender 3.x. Blender 2.9.3 does not have this problem.

Blender 2.9.3 imports the original OBJ mesh, keeping vert order and poly groups (and mats if you want) and you can edit that mesh, then export (keeping poly groups and vert order) back to an OBJ that Poser can use, directly, for an FBM. Easy peasy!

Blender 3.x apparently rewrote the OBJ import-export in C++ from the previous Python. It seems to not have a problem dealing with Poser exported OBJs. But it does have a problem with the original OBJ. So Blender 3.x is can't currently import an OBM to edit and export another OBJ to use as a FBM. It does something different.


I'm doing a deep dive into the OBJ, comparing the two to each other. They are each ~80900 lines long. So far, the v's are exactly the same. The f's look the same, but the g's are arranged differently, making exact f comparison harder. But it looks like the f's are *composed* the same (winding order preserved). The order of the f's in the file is also the same. It's just how the g's are distributed. Weird.

Keep in mind, I've only been playing with Dawn. Previously, I worked with LF but never made FBMs with Blender. I would not have for Dawn, except Dawn has a split-mesh face. LF has a single mesh face and I only ever made facial characters. For body, I used scales and body-dials from morph packs. For clothed figures, I found scales work better since the clothing generally handled that with no morphs needed.

But I reiterate: Blender 3.x breaks the ability to edit original OBJs as FBM key OBJs. It works fine in 2.9.3.
 

Miss B

Drawing Life 1 Pixel at a Time
CV-BEE
I still think 3.x is still too much of a WP. They'll probably get it fixed at some point, but who knows when.
 

unreal

Energetic
They're up to 3.1. It's a real improvement in raw performance. But yes, this bug makes it all but useless to me :D

I've done a deeper analysis on the files. Comparing Original OBJ to Blender 2.9.3 exported and Blender 3.1.0 exported.


Code:
Input files:
    ['Dawn.obj', 'Dawn-blender-2.93.obj', 'Dawn-blender-3.10.obj']
   
                        verts faces
Dawn-blender-2.93.obj   39096 39326
Dawn-blender-3.10.obj   39096 39326
Dawn.obj                39096 39326

face counts in group

      orig 2.93  3.10
head 10188 10188 10350
lowerJaw 4582 4582 4504
lEye 624 624 624
rEye 624 624 624
tongue01 72 72 80
tongue02 72 72 72
tongue03 72 72 72
tongue04 312 312 288
rForeArm 568 568 645
rCollar 463 463 536
rShldr 453 453 380
rHand 691 691 766
rThumb1 141 141 133
rThumb2 182 182 181
rCarpal 318 318 322
rIndex2 160 160 200
rIndex3 301 301 281
rIndex1 120 120 80
rMid2 160 160 200
rMid1 141 141 100
rRing2 160 160 200
rRing1 120 120 80
rPinky2 160 160 200
rPinky1 125 125 80
rMid3 301 301 281
rRing3 302 302 282
rPinky3 298 298 278
rThumb3 300 300 280
lForeArm 568 568 645
lCollar 463 463 536
lShldr 453 453 380
lHand 691 691 766
lThumb1 141 141 133
lThumb2 182 182 181
lCarpal 318 318 322
lIndex2 160 160 200
lIndex3 301 301 281
lIndex1 120 120 80
lMid2 160 160 200
lMid1 141 141 100
lRing2 160 160 200
lRing1 120 120 80
lPinky2 160 160 200
lPinky1 125 125 80
lMid3 301 301 281
lRing3 302 302 282
lPinky3 298 298 278
lThumb3 300 300 280
rThigh 626 626 692
rShin 562 562 565
rFoot 597 597 605
rToe 689 689 744
rBigToe 248 248 228
rIndexToe 308 308 288
rMidToe 283 283 263
rRingToe 263 263 243
rPinkyToe 245 245 225
lThigh 626 626 692
lShin 562 562 565
lFoot 597 597 605
lToe 689 689 744
lBigToe 248 248 228
lIndexToe 308 308 288
lMidToe 283 283 263
lRingToe 263 263 243
lPinkyToe 245 245 225
neck 338 338 442
neck2 260 260 136
chest2 1678 1678 1614
chest 446 446 444
abdomen2 256 256 256
abdomen 320 320 326
pelvis 618 618 618
hip 294 294 160

It is as I thought from looking at it. Some faces are ending up in the wrong group. The verts are the same. Same number, same order, The faces are the same. Same number, same structure, same order. But Blender's export is, for some reason, doing the groups wrong.

I'm filing the bug with the files and report.

I have a thought, though. I'm going to test it.

It occurred to me the difference between Poser's export of an OBJ and the original OBJ. It's the grouping. Poser writes the faces into groups together. There is only one of each group. The original (and Blender) processes the faces in some other order, so it has many occurrences of the same group. In OBJ format, that's OK. Example:

Code:
g one
f 1 2 3 4
f 9 10 11 12
g two
f 5 6 7 8

is technically, in OBJ format, the same as:

Code:
g one
f 1 2 3 4
g two
f 5 6 7 8
g one
f 9 10 11 12

Poser exports as the former. The original OBJ and Blender's export of an OBJ is the second form. Both are valid. The former triggers a bad export in Blender 3.1

I'll bet the bug in export is not triggered when all the faces in a group are in a single group section!
That would explain why it imports and exports the un-welded mesh fine. The bug is not triggered because Poser exported the un-welded mesh with all faces in a single group reference (owing to Poser's per actor processing of verts)
 

unreal

Energetic
And, the acid tests:

  1. I took the OBJ from 3.1 and the OBJ from 2.93. I copied the groups (ie: everything except the verts) from the 2.93 file and overwrote the groups in the 3.10 file. Poser loaded it just fine as a FBM.
  2. Same thing, only this time copying the original OBJ groups and overwriting 3.1's groups. It loads correctly!
The bug is absolutely in Blender 3.1's OBJ handling. What made it so maddening is the bug is NOT triggered by Poser exported OBJs because of how Poser writes groupings in the OBJ. Or even simple OBJ files. It depends on how the OBJ was written.

It's only triggered by mixed groupings on the input file. Blender writes those groups incorrectly. But not entirely. Only a bit. It's hard to see by eye.
 

unreal

Energetic
They're up to 3.1. It's a real improvement in raw performance. But yes, this bug makes it all but useless to me :D

I've done a deeper analysis on the files. Comparing Original OBJ to Blender 2.9.3 exported and Blender 3.1.0 exported.


Code:
Input files:
    ['Dawn.obj', 'Dawn-blender-2.93.obj', 'Dawn-blender-3.10.obj']
  
                        verts faces
Dawn-blender-2.93.obj   39096 39326
Dawn-blender-3.10.obj   39096 39326
Dawn.obj                39096 39326

face counts in group

      orig 2.93  3.10
head 10188 10188 10350
lowerJaw 4582 4582 4504
lEye 624 624 624
rEye 624 624 624
tongue01 72 72 80
tongue02 72 72 72
tongue03 72 72 72
tongue04 312 312 288
rForeArm 568 568 645
rCollar 463 463 536
rShldr 453 453 380
rHand 691 691 766
rThumb1 141 141 133
rThumb2 182 182 181
rCarpal 318 318 322
rIndex2 160 160 200
rIndex3 301 301 281
rIndex1 120 120 80
rMid2 160 160 200
rMid1 141 141 100
rRing2 160 160 200
rRing1 120 120 80
rPinky2 160 160 200
rPinky1 125 125 80
rMid3 301 301 281
rRing3 302 302 282
rPinky3 298 298 278
rThumb3 300 300 280
lForeArm 568 568 645
lCollar 463 463 536
lShldr 453 453 380
lHand 691 691 766
lThumb1 141 141 133
lThumb2 182 182 181
lCarpal 318 318 322
lIndex2 160 160 200
lIndex3 301 301 281
lIndex1 120 120 80
lMid2 160 160 200
lMid1 141 141 100
lRing2 160 160 200
lRing1 120 120 80
lPinky2 160 160 200
lPinky1 125 125 80
lMid3 301 301 281
lRing3 302 302 282
lPinky3 298 298 278
lThumb3 300 300 280
rThigh 626 626 692
rShin 562 562 565
rFoot 597 597 605
rToe 689 689 744
rBigToe 248 248 228
rIndexToe 308 308 288
rMidToe 283 283 263
rRingToe 263 263 243
rPinkyToe 245 245 225
lThigh 626 626 692
lShin 562 562 565
lFoot 597 597 605
lToe 689 689 744
lBigToe 248 248 228
lIndexToe 308 308 288
lMidToe 283 283 263
lRingToe 263 263 243
lPinkyToe 245 245 225
neck 338 338 442
neck2 260 260 136
chest2 1678 1678 1614
chest 446 446 444
abdomen2 256 256 256
abdomen 320 320 326
pelvis 618 618 618
hip 294 294 160

It is as I thought from looking at it. Some faces are ending up in the wrong group. The verts are the same. Same number, same order, The faces are the same. Same number, same structure, same order. But Blender's export is, for some reason, doing the groups wrong.

I'm filing the bug with the files and report.

I have a thought, though. I'm going to test it.

It occurred to me the difference between Poser's export of an OBJ and the original OBJ. It's the grouping. Poser writes the faces into groups together. There is only one of each group. The original (and Blender) processes the faces in some other order, so it has many occurrences of the same group. In OBJ format, that's OK. Example:

Code:
g one
f 1 2 3 4
f 9 10 11 12
g two
f 5 6 7 8

is technically, in OBJ format, the same as:

Code:
g one
f 1 2 3 4
g two
f 5 6 7 8
g one
f 9 10 11 12

Poser exports as the former. The original OBJ and Blender's export of an OBJ is the second form. Both are valid. The former triggers a bad export in Blender 3.1

I'll bet the bug in export is not triggered when all the faces in a group are in a single group section!
That would explain why it imports and exports the un-welded mesh fine. The bug is not triggered because Poser exported the un-welded mesh with all faces in a single group reference (owing to Poser's per actor processing of verts)
Nuts. where I said the former, I meant the latter. Poser's OBJ exports do not trigger the bug in Blender.
 
Top