• 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

seahorse for Harry

I experimented with the problem of spaces in group names.
Just because of cat-like curiosity.
What is really happening is that if there is a space in the letters that follow the 'g ' in the obj file,
the letters on each side are treated as separate words. Just like in a sentence.
So the list of polys that follow that 'g ' statement are included in multiple groups.
For example, if the g statement looks like 'g pink nose' , then the polys will be in the groups 'pink' and 'nose'.
And the interesting thing is, if you re-export the prop to obj then the group statements will still look the same.
So I was wrong about the spaces being gone.
They are still there, but act as dividers between group names.
So you could rig the group with a bone named 'pink' and all would be well.
I tested this.
You could even make a bone named 'pink nose' but it's to no avail because that won't make the bone match up with
two different poly groups named 'pink' and 'nose'.
Haven't really run into this exact scenario before because my modeling tool won't let me put spaces in group names.
 

FreyrStrongart

Brilliant
Contributing Artist
Without knowing how the fish tail is actually designed I just had to guess at this stuff.
Maybe this will work out, maybe not but it's a start on a general idea for the poser version.

There are comments (lines starting with #) in the python script to suggest changes that will likely be needed.
When you have the tail part rigged for Poser and saved as a figure in your library directory for the SeaHorse,
then you can copy the actual path to use in the loadFishTail() function.
If you run the script and an exception window pops up, look carefully at the description.
It will tell you exactly what's wrong with the script and where.
I've tested this, but with a substitute figure and it works just fine.
But when editing python scripts you need to be real careful because just getting an extra space or
misplaced character will cause the script to fail.

Add a directory in the Runtime\Python\posersScripts directory and add the GraftFishTail.py script there.

Then you can add the GraftFishTail prop to your props directory.
It just loads the tail figure and parents it to the horse's hip and makes all the back end of the horse invisible.

In the GraftFishTail.pp2 prop file, at the very end is a call to run the script.
You will probably need to change the path to the script.
It looks like the lines below. It's a very short file so you can probably make the edits with notepad.

}
}
doc

{

addActor GraftFishTail

}

runPythonScript "\Runtime\Python\poserScripts\StrongArt\SeaHorse\GraftFishTail.py"

}


Replacing the geometry is pretty far fetched since a fish tail is so different from a horse's hind quarters.
There's not much chance that the horse's rigging will be of any use for the tail fins.
I could right a script to do that, but it would surely be a disaster.

At the moment this is way beyond me. I will go with simple opacitys.. they work so far. (if I can figure out how to apply just the opacity without messing up the rest of the texture. Or if I can save just a layer to add to an existing texture, which would be necessary to do the merger between horse texture and fish texture. I am sure if I read the manual I can figure it out.. but right now I am too frustrated with poser's texture room to dig any deeper.
 

Sparky

Monster Maker
Contributing Artist
At the moment this is way beyond me. I will go with simple opacitys.. they work so far. (if I can figure out how to apply just the opacity without messing up the rest of the texture. Or if I can save just a layer to add to an existing texture, which would be necessary to do the merger between horse texture and fish texture. I am sure if I read the manual I can figure it out.. but right now I am too frustrated with poser's texture room to dig any deeper.

Usually for things like this, one would hide the extra bodyparts on the horse, and apply an opacity map to the conformer for blending, if necessary.
 
Usually for things like this, one would hide the extra bodyparts on the horse, and apply an opacity map to the conformer for blending, if necessary.
That's basically what the script is doing, except that it wouldn't need conforming geometry because it seems to me that Geografting, as defined in the DAZ documentation is just extending the 'Compatibility Base' which would be the horse.
The Doc calls for 'at least one loop of the outermost polygons and UVs that reside inside the perimeter of the hidden polygons of the Compatibility Base geometry' to blend the 'grafting figure' texture with.
So my guess was that this is how the tail part is designed.
From how it looks in the renders, it seems that the overlap is on the 'hip' part of the horse's geometry and the pelvis and beyond are the parts that are hidden by the Geografting tool.
I see no one has looked at the script, but there is really no need to understand it.
If the tail figure is made to comply with the requirements of Geografting then with the edits suggested for the library paths,
in the script, it will most likely work. A very quick solution if it does.
 
each element is geographted for the simple reason that the vertices follow much better. They could work as conforming items too but as they replace parts of the body geografting also saves me the necessity to use opacity maps on those parts that should be invisible.
It is due to this statement that I decided to write the script.
Just wanted to help with something that complies with the way you have already done it.
So none of the issues with the incompatible weight maps would block your progress.
 

FreyrStrongart

Brilliant
Contributing Artist
I experimented with the problem of spaces in group names.
Just because of cat-like curiosity.
What is really happening is that if there is a space in the letters that follow the 'g ' in the obj file,
the letters on each side are treated as separate words. Just like in a sentence.
So the list of polys that follow that 'g ' statement are included in multiple groups.
For example, if the g statement looks like 'g pink nose' , then the polys will be in the groups 'pink' and 'nose'.
And the interesting thing is, if you re-export the prop to obj then the group statements will still look the same.
So I was wrong about the spaces being gone.
They are still there, but act as dividers between group names.
So you could rig the group with a bone named 'pink' and all would be well.
I tested this.
You could even make a bone named 'pink nose' but it's to no avail because that won't make the bone match up with
two different poly groups named 'pink' and 'nose'.
Haven't really run into this exact scenario before because my modeling tool won't let me put spaces in group names.
Well, I've renamed all the bones and groups to contain underlines and that now works fine. Except for the non blending bit... which I still have to figure out.
 

Cliff Bowman

Adventurous
I see no one has looked at the script, but there is really no need to understand it.

I thought this part was worth repeating. The way good coders work when passing code to others to modify should be pretty self-explanatory. Follow the instructions following "#" characters to the letter and all should be well - you don't have to understand Python or programming, just text editing.

Cheers,

Cliff
 

FreyrStrongart

Brilliant
Contributing Artist
I thought this part was worth repeating. The way good coders work when passing code to others to modify should be pretty self-explanatory. Follow the instructions following "#" characters to the letter and all should be well - you don't have to understand Python or programming, just text editing.

Cheers,

Cliff
I WILL try my hand on it... once I have managed to get all the other snags out of the way.
 

FreyrStrongart

Brilliant
Contributing Artist
Without knowing how the fish tail is actually designed I just had to guess at this stuff.
Maybe this will work out, maybe not but it's a start on a general idea for the poser version.

There are comments (lines starting with #) in the python script to suggest changes that will likely be needed.
When you have the tail part rigged for Poser and saved as a figure in your library directory for the SeaHorse,
then you can copy the actual path to use in the loadFishTail() function.
If you run the script and an exception window pops up, look carefully at the description.
It will tell you exactly what's wrong with the script and where.
I've tested this, but with a substitute figure and it works just fine.
But when editing python scripts you need to be real careful because just getting an extra space or
misplaced character will cause the script to fail.

Add a directory in the Runtime\Python\posersScripts directory and add the GraftFishTail.py script there.

Then you can add the GraftFishTail prop to your props directory.
It just loads the tail figure and parents it to the horse's hip and makes all the back end of the horse invisible.

In the GraftFishTail.pp2 prop file, at the very end is a call to run the script.
You will probably need to change the path to the script.
It looks like the lines below. It's a very short file so you can probably make the edits with notepad.

}
}
doc

{

addActor GraftFishTail

}

runPythonScript "\Runtime\Python\poserScripts\StrongArt\SeaHorse\GraftFishTail.py"

}


Replacing the geometry is pretty far fetched since a fish tail is so different from a horse's hind quarters.
There's not much chance that the horse's rigging will be of any use for the tail fins.
I could right a script to do that, but it would surely be a disaster.

Ok... I tried to modify the script according to your instructions but something isn't working. Can you take a look at the screenshots to see where I flubbed? And I would need a second script for the flukeless tail. Would it be enough to change all the filenames to GraftFishTail2?

script.JPG


poserscreen.JPG


placing.JPG
 

Cliff Bowman

Adventurous
I haven't looked at the code, and don't have the fishtail, so please forgive the presumption of this interruption - but it seems to me that on line 17 of GraftFishTail.py you have "FS_Tail_with_Flippers.cr2" (which is the name of a character FILE) where what you appear to need is the name of the Figure within Poser (e.g. "Figure 1" or "Hivewire Horse" or similar - but the name of your fishtail "figure")

Cheers,

Cliff
 

FreyrStrongart

Brilliant
Contributing Artist
I haven't looked at the code, and don't have the fishtail, so please forgive the presumption of this interruption - but it seems to me that on line 17 of GraftFishTail.py you have "FS_Tail_with_Flippers.cr2" (which is the name of a character FILE) where what you appear to need is the name of the Figure within Poser (e.g. "Figure 1" or "Hivewire Horse" or similar - but the name of your fishtail "figure")

Cheers,

Cliff

hm...but that is what I get when I save the tail after working on it in the joint editor etc. So how do I get a figure?
 

NapalmArsenal

Distinguished
Contributing Artist
I've now figured out that it was my own stupidity that messed things up :p. Obvious... as I didn't export it as conforming item. But one problem solved isn't all of it. Now it turns out that it doesn't export all geometry. Happend to me before and then I figured out that it did not export geometry that wasn't assigned to a group of an existing bone. But that can't be the problem here, I controlled that all the faces are assigned, and to the proper bone. The bones themselves got exported to Poser but not the geometry belonging to them. or only half of them. So I checked the names... and found some mistakes there. But the kelpmane is giving me gip. I can't figure out what names are not working. I tried to change them around any which way and still the groups don't assign to the bones. Is it possible, that poser doesn't read spaces? I figured out a lot but here I seem to hit a wall.
Sounds like you are getting pretty far though, so don't get discouraged !! =) ((HUGS)) I hope to get on to the rest of the beta tests in the next few days for Daz if you want something to distract you for a while LOL!! I still have some to do for FL in FF as well. I wish my machine would run both programs at the same time!! LOL I'm trying to finish up on my promo images for the Gypsy Vanner Morph and the readme file, but the Western tack has been giving me fits!
 
Last edited:

Cliff Bowman

Adventurous
In the attached image I have "circled" the figure Name in red. That's what you need.

Cheers,

Cliff

View attachment 33769

Figure Names are like busses. They hide away for days and then three come along at once.

FigureName2.jpg


FigureName3.jpg


Or, if you prefer one of my less humorous responses, think of it like this. It's all easy once you know. Before you know, EVERYTHING is hard - but once you know everything is easy! Or at least seems obvious. I already know where the Figure Name can be found, so I can be all smug and irritating - but until someone points it out to you, nearly all knowledge is "black box magic".

Cheers,

Cliff

PS please don't think I'm an ass. I really DO tell people that everything is hard until you know it, and then everything is easy. Because it's true. I have had SO MANY things made easier for me in the Poserverse by people that already knew that I am VERY happy to "pay it forward" or "pay it back" or whatever it is that doesn't lighten my wallet.
 
I'm sorry, I didn't explain that very well did I.
Ok, as Cliff says, in line 17 the function scene.Figure() wants just the name of the figure as you see it in the drop-down list of figures.
There should be no .cr2 at the end of the quoted string.
And perhaps the name of the figure is different from the filename.
I see that filename in your library window but just put the FS_Tail_with_flippers figure in the scene and look at the figure drop-down list to see it's name in the scene. (in the screen-shot I can't see the figure list or names at the top)
Then put that name only in the quoted string in the scene.Figure() function in the script.
After that start with a fresh scene with only Harry, and it should be OK.
It does look like the tail is in just the right place.
 
In the attached image I have "circled" the figure Name in red. That's what you need.]
Very humorous Cliff.
Of course you don't want a fish tail on a Cat!
It's pretty comical to see a cat chasing his tail but things could get a bit wild if he thinks a fish is biting his behind.
Thank's for the help, though. That's just what I'm trying to point out, but my workstation doesn't connect to the internet so I would be running back and forth with screen shots.
 

Cliff Bowman

Adventurous
Very humorous Cliff.
Of course you don't want a fish tail on a Cat!
It's pretty comical to see a cat chasing his tail but things could get a bit wild if he thinks a fish is biting his behind.
Thank's for the help, though. That's just what I'm trying to point out, but my workstation doesn't connect to the internet so I would be running back and forth with screen shots.

A fish tail on a cat.... hmmmm, I could enjoy animating that...

When I'm posting from my phone or tablet I have the same problem - creating imagery to make things simple is hard. But I'm at my desktop right now so taking a quick snapshot is easy, so I'm glad to help. I think the Gorilla is the best image because the Figure Name is so distinct from the .CR2 File Name.

Cheers,

Cliff
 
Yeah, good example. Thanks again.
And if there are complications with the bending and blending I'll see what I can do to get parts to fit better.
So far, I haven't figured out if there is a way to 'Weld' the vertices at the joining polys.
There probably isn't without somehow 'tricking' Poser. And messing with the geometries of the body parts.
 
Ah yes, the file names. That would work.
If you put different paths and figure names in a copy of the script, save it as that other name,
and then put that filename in the call at the end of another prop with another name.
Er..now I'm getting confused. Yeah, that should work.
 
Top