Smart+/PropGoto+ HANDPROXYDATA list [Rel3 Ver1 Helpers]
N.B. Release 3 has a COMPLETELY DIFFERENT FORMAT for the HANDPROXYDATA datalines from the Release 3 Beta. Anything regarding the HANDPROXYDATA dataline format posted before 29th January is INVALID. The new Release 3 (Version 1.03) format is given in this 30th January 2016 post.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The purpose of this thread is to maintain a list of all the standard hand-held props that are explicitly supported by the Smart+/PropGoto+ stuff I'm working on. Don't know what the Smart+/PropGoto+ is? It's a freebie script-based method to put props correctly into the hands of a large selection of figure's. Both DAZ Studio and Poser versions available. The main thread for the project is also in this Freepozitory forum - "Wouldn’t It Be Nice If SmartProps Worked With More Than Just One Figure…"
If anybody uses the helper scripts from release 3 beta to get data for additional props then please post the new dataline here - if the prop is a freebie then please include a link to it. If it's NOT a freebie then (unless it's a prop from the DAZ store) a link is probably not permitted - just tell us where the prop comes from so other people can work out if they have it (e.g. "bundled with Poser 9", or "by XYZ from the ABC store". I'll then add the data to the list in the OP.
This is a NEW feature of the release 3 beta version, which is currently available for anybody who wants to test it. A couple of problems have already been identified that may require some minor changes to the HANDPROXYDATA dataline format. (N.B. The latest stable version is release 2, which does NOT have this 'HANDPROXYDATA' feature)
I'll tidy this up into a more user-friendly format as we proceed, and as the dataline format becomes fixed (it's still liable to change)
Notes:
- The props in red will NOT currently be auto-matched in DAZ Studio 4. The cause of this problem is known (post 71 of the main thread) and I'm working on a fix, which may involve the addition of an extra item to each dataline. Please let me know if any of the other props listed have the same problem, as I haven't tested every prop in DS4.
- <internalName> (or part of it) in purple indicates potential auto-match mismatch problems with another purple <internalName> if the order is altered. The ORDER of props with similar values in the HANDPROXYDATA section is important. E.g. if 'JScoutKatana' appeared BEFORE 'JSCoutKatanaInHand' in this list, then the 'In Hand' JSKatana would be incorrectly matched as an 'In Scabbard' one.
The order of paramaeters is currently <propName>,,,,,,,,
- <propName>: A user-defined name to uniquely identify the non-Smart+ prop, for display on the confirmation dialogue.
- : Poser's external name for the prop (act.Name()).
- : Poser's internal name for the prop (act.InternalName())
- ,,: YXZ rotations to align the NON-Smart+ Prop correctly in the zeroed DummyHand proxy. (N.B. YXZ order, not the usual x, y, z). All three values in degrees.
- ,,: XYZ translations to position the NON-Smart+ prop correctly in the zeroed DummyHand proxy. All three values in Poser units.
So here's the current list (I've removed links to the stuff in the DAZ store - this is the Freepozitory after all, and only links to freebies are allowed! Just search the store to find the non-freebies)
# Props that came with DS4.6 Pro
Genesis Magus Staff,Staff,Staff for Genesis,0.000,90.000,0.000,0.000,-0.513,-0.035
Genesis Katana In Hand,Katana In-Hand,KatanaInHand for Genesis,17.881,21.611,76.492,0.292,-0.590,-0.072
# The six swords that come with Poser 9
Demoniac Sword (Poser 9),Demoniac_Sword,Demoniac_Sword,0.0,-90.0,90.0,0.4588,-0.76,-0.0011
Bone Sword (Poser 9),Bone_Sword,Bone_Sword,0.0,-90.0,90.0,-0.2834,-0.5799,0.0
Katana (Poser 9),Katana,Katana,0.0,-90.0,-90.0,0.1443,-0.5973,0.0
Medieval Sword (Poser 9),Medieval_Sword,Medieval_Sword,0.0,-90.0,90.0,0.301,-0.6144,0.0
Roman Sword (Poser 9),Roman_Sword,Roman_Sword,0.0,-90.0,90.0,-0.1454,-0.5926,-0.0002
Persian Sword (Poser 9),Persian_Sword,Persian_Sword,90.0,-87.0,180.0,0.0,-0.6025,-0.0005
# Sword from “Kaileena For PBIV” (Pretty3D/Mytilus at Renderosity)
Kaileena Sword RH,SwordRH,SwordRH,-90.0,278.0,-255.0,0.291,-0.586,-0.065
Kaileena Sword LH,SwordLH,SwordLH,90.0,278.0,255.0,-0.291,-0.586,-0.065
Kaileena Sword,Sword,Sword,-90.0,-98.0,0.0,0.02,-0.242,0.0
# Weapons from "Henseki's Rune" (Orion1167 in the DAZ store)
Hensekis Rune Knife LH,KnifeLt,knifelt,0.0,0.0,-90.0,0.0,-0.586,-0.07
Hensekis Rune Knife RH,KnifeRt,knifert,0.0,0.0,-90.0,0.0,-0.586,-0.07
Hensekis Rune Sword LH,Henseki SwordLt,swordlt,0.0,0.0,-90.0,0.0,-0.586,-0.07
Hensekis Rune Sword RH,Henseki SwordRt,swordrt,0.0,0.0,-90.0,0.0,-0.586,-0.07
# Freebies from ShareCG (links included)
M4 Fable Sword (dyald),Sword,Sword,0.0,-90.0,90.0,0.0,-0.334,-0.09
Lightsaber (fantascopefilms),saberhandle,saberhandle,0.000,90.000,180.000,-0.001,-0.198,0.000
Shilleliegh (mjc26250),shil2,shil2,-16.804,16.143,0.000,0.345,-0.522,0.150
# Freebies from RDNA (links included)
Akira Katana,AK_katana,AK_katana,90.0,-184.0,2.0,0.0787,-0.4853,-0.234
# From"Journeyer Scout For M4"in the DAZ Store
Journeyer Scout Katana (In Hand),JScoutKatanaInHand,JScoutKatanaInHand,16.0,22.0,76.0,0.323,-0.6073,-0.063
Journeyer Scout Katana (In Scabbard),JScoutKatana,JScoutKatana,174.0,-46.0,0.0,-0.0709,-0.4889,-0.044
# Five props from "Bashers And Bludgeons" in the DAZ Store
Blockbuster (Bashers + Bludgeons),Blockbuster,B9BB_Blockbuster,0.0,0.0,0.0,0.0,-0.6078,-0.1771
Shillelagh (Bashers + Bludgeons),Shillelagh,B9BB_Shillelagh,0.0,0.0,0.0,0.0014,-0.6107,-0.13
Spikeclub (Bashers + Bludgeons),Spikeclub,B9BB_Spikeclub,0.0,0.0,0.0,-0.0008,-0.5937,-0.1388
Stoneclub (Bashers + Bludgeons),Stoneclub,B9BB_Stoneclub,0.0,0.0,0.0,0.0005,-0.6129,-0.1697
Treebranch (Bashers + Bludgeons),Treebranch,B9BB_Treebranch,0.0,0.0,0.0,0.0013,-0.6118,-0.1358
# From "Cleave" in the DAZ Store (thanks erostew)
GreatCleaver (Cleave Daz 15046),valCleaveGreatcleave,valCleaveGreatcleave,0.000,0.000,90.000,0.318,-0.595,0.000
Scythe (Cleave Daz 15046),valCleaveScythe,valCleaveScythe,0.000,0.000,90.000,0.317,-0.595,0.146
Comments
I managed to figure out how to use the helper script well enough to get data for Cleave. The Z-axis data is probably a bit arbitrary. The props are so large that I just kind of picked a fairly reasonable spot for a one-handed grasp. Tested with G2F and the Girl 4 and things looked good.
Looking at those three datalines I'd say that you can combine the second and third
- the numeric parameters are almost identical
- the external names (second parameter) match except for the number on the end
- the internal names (third parameter) match except for the number on the end
The dataline for the GreatCleaver seems fine as it is.
This example is really useful - it's reminded me that I need to explain properly how to take the datalines that the final helper script ('5 - GetProxyData') presents, decide whether any of them can be combined, and and edit them to ensure the best chance of correct matches.
The following is a basic overview only...
The lines for the Scthe01 and Scythe02 should probably be replaced with this:
The automatch currently only checks the third field, the internal name. It checks the length of that field in the dataline (in this case 'valCleaveScythe' is 15 characters) and then compares that many characters from the start of the internal name of the selected prop. If it's an exact match then it flags a succesful auto-match and doesn't check any more lines. If it's not an exact match it tries the next line. Etc.
So a prop with internal name 'valCleaveScythe01' or 'valCleaveScythe02' would be automatched against this line, as would 'valCleaveScythe03' or 'valCleaveScythe01_1' or 'valCleaveScythe02:5'. Those last three wouldn't be matched against either the second or third lines you originally had
Thanks for the explanation and the tip. As I mentioned, the X-axis translation was kind of arbitrary on those props anyway so it makes sense to combine the entries with such a small difference :)
Updated datafile uploaded to ShareCG;
Smart+/PropGoto+ Updated Datafile
There are two versions - one without HANDPROXYDATA (compatible with release 2), the other with HANDPROXYDATA (for those using release 3 beta) - the later includes additional prop support as well.
- mjc shilleliegh
- ESB lightsaber (doesn't work in DS4)
- Scythe/GreatCleaver from DAZ Store's 'Cleave'
Also includes the additional figure support data for Dusk, Genesis 2 Male, and Andy2/MilkManAndy.
Some Notes About Why Some Props Require Several Datalines... part 1
I'm in the process of adding some more props, whichever ones I happen to want for renders I'm doing. So it's the sword from the "Kaileena For PBIV" (Pretty3D/Mytilus at Renderosity, so no links).
This has three PP2s - one V4 left-hand smartprop, one V4 right-hand smartprop, and one plain prop. I loaded all three together into Poser 9, and checked 'Display origin for each. The origins were at the same point half-way down the handles on each (see first attached image)
Then I ran the HandProxyData helper script '1 - UnparentZeroAndProxy' on each in turn. See second attached image.The fact that the swordsare in different positions at this point means that each will require different rotation/translation parameters, and thus each will require a separate line in the datafile (in contrast when I did this with the M4 Fable sword all five variants were at exactly the same position and orientation at this stage, which is why I could combine them into a single dataline - they all required exactly the same translation/rotationparameters.
The right/left hand swords were difficult to rotate correctly (I think I should have looked at "A Note On Working Out What X/Y/Z Rotations You Need For A SmartProp" on my own site first... :D )
This is the data I got from my script (I've just changed the <propName> bit to something meaningful for each)
:HANDPROXYDATA
Kaileena Sword,Sword_1,Sword,-90.0,-98.0,0.0,0.02,-0.242,0.0
:HANDPROXYDATA
Kaileena Sword RH,SwordRH,SwordRH:1,64.0,75.0,77.0,0.292,-0.587,-0.064
:HANDPROXYDATA
Kaileena Sword LH,SwordLH,SwordLH:1,-59.0,68.0,-73.0,-0.291,-0.586,-0.065
I've mentioned that you need to remove digits, underscores and colons from the end of the <extternalName> (second) and <internalName> (third) fields. I've marked them in red above. Just to demonstrate I loaded a couple more copies of each sword and ran the '5 - GetProxyData' script on each (I'm not interested in the rotations/translations, just the names this time, so I haven't shown them here). Once again I marked the trailing digits/underscores/colons in red.
:HANDPROXYDATA
Kaileena Sword,Sword_3,Sword 2,...
:HANDPROXYDATA
Kaileena Sword,Sword_2,Sword 1,...
:HANDPROXYDATA
Kaileena Sword LH,SwordLH 1,SwordLH 1:1,...
:HANDPROXYDATA
V LH,SwordLH 2,SwordLH 2:1,...
:HANDPROXYDATA
V RH,SwordRH 1,SwordRH 1:1,...
:HANDPROXYDATA
Kaileena Sword RH,SwordRH 2,SwordRH 2:1,...
So here are the three datalines I'll actually put in my datafile:
# Sword from "Kaileena For PBIV" (Pretty3D/Mytilus at Renderosity)
Kaileena Sword,Sword,Sword,-90.0,-98.0,0.0,0.02,-0.242,0.0
Kaileena Sword RH,SwordRH,SwordRH,64.0,75.0,77.0,0.292,-0.587,-0.064
Kaileena Sword LH,SwordLH,SwordLH,-59.0,68.0,-73.0,-0.291,-0.586,-0.065
Anybody who's been paying attention will notice that the internal name for the "Kaileena Sword" in the first line is "Sword", which of course willclash with the M4 Fable sword as far as the auto-match is concerned.Even if I also checked the <extternalName> (second) field that wouldn't help - both the M4 Fable sword and Kaileena sword have just "Sword" here as well.
If anybody has any bright ideas of something else the script (both Poser and DAZ Studio versions) could check to distinguish between them I'd love to hear.
And, of course, I have to put the LH and RH versions before the plain version in my datafile, otherwise both RH and LH will be matched against the plain sword, and that will put it in the wrong place. It took awhileto work out what I'd missed there - see third attached image)
Since I use the Kaileena sword more often than the Fable sword, I'll add this data before the Fable stuff
Edit: Just read the bit on my site and redid the LH sword. The rules of thumb there didn't really work for this, but they reminded me that I have to be patient and careful. This timethe values are much better, and the LH/RH swords use the same numbers, but with some opposite signs.
# Sword from “Kaileena For PBIV” (Pretty3D/Mytilus at Renderosity)
Kaileena Sword RH,SwordRH,SwordRH,-90.0,278.0,-255.0,0.291,-0.586,-0.065
Kaileena Sword LH,SwordLH,SwordLH,90.0,278.0,255.0,-0.291,-0.586,-0.065
Kaileena Sword,Sword,Sword,-90.0,-98.0,0.0,0.02,-0.242,0.0
Some Notes About Why Some Props Require Several Datalines... part 2
In contrast the four weapon props from Orion1167's "Henseki's Rune" in the DAZ store (V4 lh smartprop sword, V4 rh smartprop sword,V4 lh smartprop knife, and V4 rh smartprop knife) all move to the same place after running '1 - UnparentZeroAndProxy' (see screenshot). The handgrips of the knife and sword are more or less identical, and positioned/oriented more-or-less identically. So all four props will use the same translations/rotations. Therefore I only did steps 2, 3, 4 and 5 for one prop. For the other three I ignored steps 2-4 and just did 5 to get the internal/external names. Here'swhat i got (from Poser 9 again):
:HANDPROXYDATA
<prpName>,KnifeLt,knifelt:1,0.0,0.0,-90.0,0.0,-0.586,-0.07
:HANDPROXYDATA
<prpName>,KnifeRt,knifert:1,...
:HANDPROXYDATA
<prpName>,Henseki SwordLt,swordlt:1,...
:HANDPROXYDATA
<prpName>,Henseki SwordRt,swordrt:1,...
Despite being able to use the same translation/rotation parameters for all four, the internal names are different for each. That mean they each requires a separate line. So using the same translations/rotations, removing trailing digits/underscores/commas, and adding a suitable <prpName> I get this:
# Weapons from "Henseki's Rune" (Orion1167 in the DAZ store)
Henseki's Rune Knife LH,KnifeLt,knifelt,0.0,0.0,-90.0,0.0,-0.586,-0.07
Henseki's Rune Knife RH,KnifeRt,knifert,0.0,0.0,-90.0,0.0,-0.586,-0.07
Henseki's Rune Sword LH,Henseki SwordLt,swordlt,0.0,0.0,-90.0,0.0,-0.586,-0.07
Henseki's Rune Sword RH,Henseki SwordRt,swordrt,0.0,0.0,-90.0,0.0,-0.586,-0.07
# The apostrophe in "Henseki's" caused the script to crash, so DON'T USE APOSTROPHES
No clashes with existing props (the test is case-sensitive, so the "swordrt" is NOT the same as the Kaileena "SwordRT") provided they go before the Fable sword
Edit: hmmm... interesting. the generic script crashed in Poser with a UTF8 decode error.Quicly tracked down to the apostrophes in "Henseki's" that I used in the datafile. So I've removed those.
Thoughts About Avoiding Auto-Match Mismatches
With only a few props added there's already some internalName clash problems, so it's time to look at improving the auto-match criteria.
Firstly, can I use external name too? If the auto-match required a match on both external and internal names, then both Henseki's Rune swords could be handled with a single line...
Hensekis Rune Sword,Henseki Sword,sword,0.0,0.0,-90.0,0.0,-0.586,-0.07
...although it wouldn't help with any of the others.
How about the OBJ filename (assuming the prop was loaded from an OBJ via a PP2 with external geometry). PoserPython can access this via ‘actor.GeomFileName()’, and I'm sure DAZ Script can do something similar - waiting for a reply on the Dev Discussion thread.
In the meantime I checked the PP2's for a few of the props:
Fable sword is... you've guessed... Sword.obj
Kaileena sword is ... kaileena_Sword.obj, kaileena_SwordRH.obj, or kaileena_SwordLH.obj
Henseki sword is ... SARUNESword.obj
The Poser 9 katana has geometry embedded in the PP2.
I can't say much but I am hoping that names and links will not be that much of a problem :) For me I have done S1 HER and HIM now need to do Orc and few others.
Regarding name mismatches from the auto-match: at worst this will mean that the user has to select the prop manually from the drop-down list. (Unfortunately the chances of accessing the OBJ filename from DAZ Script doesn't look too promising at the moment... Edit: I take that back - just got the basics working! :) - for any code-monkeys here's the post - rather easy really)
Regarding links: I've tried to use the exact name of the product in the store (DAZ or otherwise), so you should just be able to search the relevant store to find the item. But I mainly expect people to use the list to grab free hand-held props, or to see if commercial stuff they already have is supported.
Possible Way Forward For Better Auto-Matching Of Props ?
Thanks to feedback from Richard I've now found out the DAZ Script way to get the OBJ filename that a prop was loaded from (assuming it was loaded this way). If the prop was loaded another way (e.g. DUF, or PP2 with embedded geometry) then I get something different, but still meaningful and useful. Need to see what the the PoserPython version returns (edit: act.GeomFileName() returns full absolute path , name, and extension of OBJ/OBZ, or NoneType if the geometry was embedded in the PP2). But it's looking as if an extra 'geometryName' field in the dataline might be what's needed...
<propName>,<externalName>,<internalName>,<geometryName>,...
Plus I'm considering that a match against all three fields (externalName, internalName, and geometryName) might be the way to go - that needs a bit more thought.
I'm also wondering about putting multiple values for each field on a single line (again triggered by the new props I've added). E.g. something like this...
Kaileena Sword,SwordRH/SwordLH/Sword,SwordRH/SwordLH/Sword,kaileena_SwordRH/kaileena_SwordLH/kaileena_Sword,-90.0,278.0,-255.0,0.291,-0.586,-0.065
Nothing definite yet - just juggling ideas and pros and cons...
Edit: A bit more progress. The DAZ Script method for getting a geometry name always returns a useful string, but the PoserPython method only returns a string if the prop was loaded from an OBJ via a PP2 (Note: I don't use DSON, so I'm only considering PP2-based props for Poser)
Here's a few datalines direct from running my new GetProxyData script in DS4.6 (I've removed the rots/trans as they're not relevant here)...
In Poser 9 the corresponding script now gives these sort of results...
And here's a couple from DS3...
A couple of things struck me:
1) If a user is ONLY using DAZ Studio then leaving the '_11369' or whatever at the end of the internal name is fine, and improves chances for a correct match. But this is no good if the user also uses Poser, as Poser and DS use the same datafile.
2) As I mentioned before, a prop with geometry embedded in the PP2 gives a null 'geometryName' field.
Not sure where this is going, but I wanted to type it up before shutting down the computer.
Seven months later ...
Back To The Auto-Matching Of Props
I'm now working on the basis of using three pieces of data to do the HANDPROXYDATA auto-matching
{externalName} {internalName} {geometryName} ...field names (based on Poser)
act.Name() act.InternalName() act.GeomFileName() ...PoserPython functions
oProp.getLabel() oProp.name oGeom.name ...DAZ Script methods
Although this will probably mean 4 fields in each HANDPROXYDATA line:
{externalName} {internalName} {geometryName} {DSName} ...an additional field specifically for DS is the best way to get a correct match in DS3/4 (see next post)
Here's a couple of simple scripts and results from a quick test with a selection of the props for which we already have HANDPROXYDATA. The results aren't necessarily in the same order for each test:
DAZ (WeaponsTest.dsa)
=====================
var prop = Scene.getPrimarySelection(); //DzNode DzScene::getPrimarySelection ()
var oProp = prop.getObject(); //DzObject DzNode::getObject () ... in my main script oProp is actually a DzNode - in DS3 oProp.name/getLabel() give the Poser values
oShape = oProp.getCurrentShape()
oGeom = oShape.getGeometry()
print("oProp.getLabel()=",oProp.getLabel(),", oProp.name = ",oProp.name,", oGeom.name =",oGeom.name)
DS3
===
DEBUG: oProp.getLabel()= AK_katana_39283 , oProp.name = AK_katana_39283 , oGeom.name = AK_katana
DEBUG: oProp.getLabel()= saberhandle_19135 , oProp.name = saberhandle_19135 , oGeom.name = WeaponsTest ....??? something odd here*
DEBUG: oProp.getLabel()= Sword_2693 , oProp.name = Sword_2693 , oGeom.name = Sword
DEBUG: oProp.getLabel()= kaileena_Sword_11369 , oProp.name = kaileena_Sword_11369 , oGeom.name = kaileena_Sword
DEBUG: oProp.getLabel()= AK_katana_39283 , oProp.name = AK_katana_39283 , oGeom.name = AK_katana
DEBUG: oProp.getLabel()= Sword_2693 , oProp.name = Sword_2693 , oGeom.name = Sword
DEBUG: oProp.getLabel()= SARUNESword_5586 , oProp.name = SARUNESword_5586 , oGeom.name = SARUNESword
DEBUG: oProp.getLabel()= SARUNEKnife_5586 , oProp.name = SARUNEKnife_5586 , oGeom.name = SARUNEKnife
DEBUG: oProp.getLabel()= kaileena_SwordLH_11369 , oProp.name = kaileena_SwordLH_11369 , oGeom.name = kaileena_SwordLH
DEBUG: oProp.getLabel()= Sword_2693 , oProp.name = Sword_2693 , oGeom.name = Sword
DEBUG: oProp.getLabel()= SARUNESword_5586 , oProp.name = SARUNESword_5586 , oGeom.name = SARUNESword
DEBUG: oProp.getLabel()= SARUNEKnife_5586 , oProp.name = SARUNEKnife_5586 , oGeom.name = SARUNEKnife
DEBUG: oProp.getLabel()= kaileena_SwordRH_11369 , oProp.name = kaileena_SwordRH_11369 , oGeom.name = kaileena_SwordRH
DS4.8
=====
DEBUG: oProp.getLabel()= kaileena_Sword_11369 , oProp.name = kaileena_Sword_11369 , oGeom.name = kaileena_Sword
DEBUG: oProp.getLabel()= WeaponsTest_19135 , oProp.name = WeaponsTest_19135 , oGeom.name = WeaponsTest ....??? something very odd here*
DEBUG: oProp.getLabel()= AK_katana_39283 , oProp.name = AK_katana_39283 , oGeom.name = AK_katana
DEBUG: oProp.getLabel()= kaileena_SwordRH_11369 , oProp.name = kaileena_SwordRH_11369 , oGeom.name = kaileena_SwordRH
DEBUG: oProp.getLabel()= SARUNEKnife_5586 , oProp.name = SARUNEKnife_5586 , oGeom.name = SARUNEKnife
DEBUG: oProp.getLabel()= SARUNESword_5586 , oProp.name = SARUNESword_5586 , oGeom.name = SARUNESword
DEBUG: oProp.getLabel()= Sword_2693 , oProp.name = Sword_2693 , oGeom.name = Sword
DEBUG: oProp.getLabel()= AK_katana_39283 , oProp.name = AK_katana_39283 , oGeom.name = AK_katana
DEBUG: oProp.getLabel()= kaileena_SwordLH_11369 , oProp.name = kaileena_SwordLH_11369 , oGeom.name = kaileena_SwordLH
DEBUG: oProp.getLabel()= SARUNEKnife_5586 , oProp.name = SARUNEKnife_5586 , oGeom.name = SARUNEKnife
DEBUG: oProp.getLabel()= SARUNESword_5586 , oProp.name = SARUNESword_5586 , oGeom.name = SARUNESword
DEBUG: oProp.getLabel()= Sword_2693 , oProp.name = Sword_2693 , oGeom.name = Sword
DEBUG: oProp.getLabel()= AK_katana_39283 , oProp.name = AK_katana_39283 , oGeom.name = AK_katana
Poser script
============
import poser
act = poser.Scene().CurrentActor()
sGeom=act.GeomFileName()
if not sGeom:
print("act.Name()="+act.Name()+", act.InternalName()="+act.InternalName()+", act.GeomFileName()=NONE")
else:
aName=string.split(sGeom,'\\')
aFileExt=string.split(aName[len(aName)-1],'.')
print("act.Name()="+act.Name()+", act.InternalName()="+act.InternalName()+", act.GeomFileName()="+aFileExt[0])
Poser9
======
act.Name()=AK_katana_2_1, act.InternalName()=AK_katana_2:1, act.GeomFileName()=AK_katana
act.Name()=saberhandle_1, act.InternalName()=saberhandle, act.GeomFileName()=NONE
act.Name()=Sword_2, act.InternalName()=Sword 1, act.GeomFileName()=Sword
act.Name()=Sword_1, act.InternalName()=Sword, act.GeomFileName()=kaileena_Sword
act.Name()=AK_katana_1, act.InternalName()=AK_katana_1:1, act.GeomFileName()=AK_katana
act.Name()=AK_katana, act.InternalName()=AK_katana:1, act.GeomFileName()=AK_katana
act.Name()=SwordRH 1, act.InternalName()=Sword 3:1, act.GeomFileName()=Sword
act.Name()=SwordLH 1, act.InternalName()=Sword 2:1, act.GeomFileName()=Sword
act.Name()=Henseki SwordRt, act.InternalName()=swordrt:1, act.GeomFileName()=SARUNESword
act.Name()=Henseki SwordLt, act.InternalName()=swordlt:1, act.GeomFileName()=SARUNESword
act.Name()=KnifeRt, act.InternalName()=knifert:1, act.GeomFileName()=SARUNEKnife
act.Name()=KnifeLt, act.InternalName()=knifelt:1, act.GeomFileName()=SARUNEKnife
act.Name()=SwordRH, act.InternalName()=SwordRH:1, act.GeomFileName()=kaileena_SwordRH
act.Name()=SwordLH, act.InternalName()=SwordLH:1, act.GeomFileName()=kaileena_SwordLH
Just posting these for reference - I think I can now see how this is going to work...
*This turned out to be because the original lightsaber had its geometry embedded in a PP2, and all the props here were imported from a Poser scene PZ3
Brief Analysis Of The Results In The Previous Post
Referring to the previous post, the lightsaber seems to be giving some odd results. It's the only one with an embedded geometry (hence the 'act.GeomFileName()=NONE' in the Poser 9 test), and it also has a child prop, the blade (which doesn't appear here) The oddest thing is that the DAZ script results for some reason get the name of the test script itself as the geometry name! 'oGeom.name = WeaponsTest' {edit: incorrect analysis - the PZ3 file was also named 'WeaponsTest'...}
For all the other weapon props the DAZ Script oGeom.name and PoserPython act.GeomFileName() (after stripping off the path and extension) seem to match perfectly, and with less conflict than using the {internalName}.
It's also very clear now that the DAZStudio oProp.getLabel() or oProp.name are the best thing to use for the auto-match in DAZ Studio - the same values in DS3 and DS4. {edit: the _<propVertexCount> significantly reduces the chances of a mismatch )
So the main issue now is back with Poser, and whether possibly a combination of act.Name() and act.InternalName() together with the stripped-down act.GeomFileName() can give a high rate of successful auto-matches.
The LightSaber Isn't The Problem - Importing Props Into DAZ Studio From A PZ3 Is
The oddity with the Lightsaber doesn't seem to be anything to do with the PP2 having embedded geometry. Running the same DS/PP test scripts in DS4.8/P9 on another simple PP2 prop with embeddedgeometry I get this:
act.Name()=1mSquare_1, act.InternalName()=1mSquare, act.GeomFileName()=NONE
DEBUG: oProp.getLabel()= 1m x 1m Plane_4 , oProp.name = 1m x 1m Plane_4 , oGeom.name = 1m x 1m Plane
Just loaded the lightsaber PP2 into DS4.8 again and it nowseems fine!
DEBUG: oProp.getLabel()= ESB Skywalker Lightsaber_19135 , oProp.name = ESB Skywalker Lightsaber_19135 , oGeom.name = ESB Skywalker Lightsaber
Ah! Just realized the it's only when I load the lightsaber by importing a PZ3 Poser scene file including the lightsaber into DS that I get the problem:
DEBUG: oProp.getLabel()= WeaponsTest_19135 , oProp.name = WeaponsTest_19135 , oGeom.name = WeaponsTest
Edit: just did a further test - loaded my 1m x 1m Plane prop and the lightsaber prop into Poser 9, saved as a PZ3, imported that into DS4.8 and ran the test script on each prop:
DS3
===
Loaded file: Untitled.pz3
Executing DAZ Script file: H:/Poser/!ONGOING/runtime/libraries/props/Temporary/WeaponsTest - Copy.dsa
DEBUG: oProp.getLabel()= 1mSquare_4 , oProp.name = 1mSquare_4 , oGeom.name = Untitled
Script executed successfully.
Ran tdlmake on image H:/Poser/Additional/Runtime/Textures/fantascope/star wars/saber metal.jpg
Executing DAZ Script file: H:/Poser/!ONGOING/runtime/libraries/props/Temporary/WeaponsTest - Copy.dsa
DEBUG: oProp.getLabel()= saberhandle_19135 , oProp.name = saberhandle_19135 , oGeom.name = Untitled
Script executed successfully.
DS4.8
=====
Loaded file: Untitled.pz3
Loading script: H:/Poser/!ONGOING/runtime/libraries/Props/Temporary/WeaponsTest - Copy.dsa
DEBUG: oProp.getLabel()= Untitled_4 , oProp.name = Untitled_4 , oGeom.name = Untitled
Script executed successfully: H:/Poser/!ONGOING/runtime/libraries/Props/Temporary/WeaponsTest - Copy.dsa
Loading script: H:/Poser/!ONGOING/runtime/libraries/Props/Temporary/WeaponsTest - Copy.dsa
DEBUG: oProp.getLabel()= Untitled_19135 , oProp.name = Untitled_19135 , oGeom.name = Untitled
Script executed successfully: H:/Poser/!ONGOING/runtime/libraries/Props/Temporary/WeaponsTest - Copy.dsa
Puzzle resolved - the oGeom.name that DS gives to ANY prop from an imported PZ3 (edit)that originally had its geometry embedded in a PP2 is the PZ3 filename. And in DS4.8 the oProp.name/oProp.getLabel() are just this filename plus _<propVertexCount>
So when a prop is imported into DS from a PZ3 the existing release 3 beta automatching method will work in DS3. But in DS4.8 the ONLY possible way to match is by comparing the _<propVertexCount> part of oProp.name with the corresponding part of the {DSname} field. I think that might be ggod enough for most cases, but there's always a chance of mismatch
Extra data for the rest of the props we already have (except Cleave/Scythe, which I don't have)
DS3
===
DEBUG: oProp.getLabel()= B9BB_Treebranch_1082 , oProp.name = B9BB_Treebranch_1082 , oGeom.name = B9BB_Treebranch
DEBUG: oProp.getLabel()= B9BB_Stoneclub_1856 , oProp.name = B9BB_Stoneclub_1856 , oGeom.name = B9BB_Stoneclub
DEBUG: oProp.getLabel()= B9BB_Spikeclub_2830 , oProp.name = B9BB_Spikeclub_2830 , oGeom.name = B9BB_Spikeclub
DEBUG: oProp.getLabel()= B9BB_Shillelagh_562 , oProp.name = B9BB_Shillelagh_562 , oGeom.name = B9BB_Shillelagh
DEBUG: oProp.getLabel()= B9BB_Blockbuster_1316 , oProp.name = B9BB_Blockbuster_1316 , oGeom.name = B9BB_Blockbuster
DEBUG: oProp.getLabel()= Roman_Sword_877 , oProp.name = Roman_Sword_877 , oGeom.name = Roman_Sword
DEBUG: oProp.getLabel()= Persian_Sword_933 , oProp.name = Persian_Sword_933 , oGeom.name = Persian_Sword
DEBUG: oProp.getLabel()= Medieval_Sword_675 , oProp.name = Medieval_Sword_675 , oGeom.name = Medieval_Sword
DEBUG: oProp.getLabel()= Katana_184 , oProp.name = Katana_184 , oGeom.name = Katana
DEBUG: oProp.getLabel()= Bone_Sword_637 , oProp.name = Bone_Sword_637 , oGeom.name = Bone_Sword
DEBUG: oProp.getLabel()= Demoniac_Sword_888 , oProp.name = Demoniac_Sword_888 , oGeom.name = Demoniac_Sword
DS4.8
====
DEBUG: oProp.getLabel()= Shillelagh_12034 , oProp.name = Shillelagh_12034 , oGeom.name = Shillelagh
DEBUG: oProp.getLabel()= KatanaInHand for Genesis , oProp.name = KatanaInHand for Genesis , oGeom.name = A_JScoutKatanaInHand
DEBUG: oProp.getLabel()= Staff for Genesis , oProp.name = Staff for Genesis , oGeom.name = A_MagusStaff
DEBUG: oProp.getLabel()= JScoutKatanaInHand_1947 , oProp.name = JScoutKatanaInHand_1947 , oGeom.name = JScoutKatanaInHand
DEBUG: oProp.getLabel()= JScoutKatana_1947 , oProp.name = JScoutKatana_1947 , oGeom.name = JScoutKatana
P9
==
act.Name()=Treebranch_1, act.InternalName()=B9BB_Treebranch, act.GeomFileName()=B9BB_Treebranch
act.Name()=Stoneclub_1, act.InternalName()=B9BB_Stoneclub, act.GeomFileName()=B9BB_Stoneclub
act.Name()=Spikeclub_1, act.InternalName()=B9BB_Spikeclub, act.GeomFileName()=B9BB_Spikeclub
act.Name()=Shillelagh_1, act.InternalName()=B9BB_Shillelagh, act.GeomFileName()=B9BB_Shillelagh
act.Name()=Blockbuster_1, act.InternalName()=B9BB_Blockbuster, act.GeomFileName()=B9BB_Blockbuster
act.Name()=Roman_Sword_1, act.InternalName()=Roman_Sword, act.GeomFileName()=NONE
act.Name()=Persian_Sword_1, act.InternalName()=Persian_Sword, act.GeomFileName()=NONE
act.Name()=Medieval_Sword_1, act.InternalName()=Medieval_Sword, act.GeomFileName()=NONE
act.Name()=Katana_1, act.InternalName()=Katana, act.GeomFileName()=NONE
act.Name()=Demoniac_Sword_1, act.InternalName()=Demoniac_Sword, act.GeomFileName()=NONE
act.Name()=Bone_Sword_1, act.InternalName()=Bone_Sword, act.GeomFileName()=NONE
act.Name()=JScoutKatana_1, act.InternalName()=JScoutKatana, act.GeomFileName()=JScoutKatana
act.Name()=JScoutKatanaInHand, act.InternalName()=JScoutKatanaInHand:1, act.GeomFileName()=JScoutKatanaInHand
The original Genesis 1 props don't appear to use the <geomName>_<vertexCount> format...
Three props are DUF only format, so I can't get Poser data for them
I've updated my working copy of SmartPlusData.txt - next step is to start updating the DS and Poser scripts to use this new format. Hoping to have a release 3 beta 2 of both DS and Poser by end of next week.
I Think I'm Almost There Now - New Dataline Format...
After much running round in circles and banging my head against various walls, I've now settled on six fields for the auto-matching. The full dataline format is:
<propName>,<vertexCount>,<poserGeometryName>,<poserInternalName>,<poserExternalName>,<dsGeometryName>,<ds4Name>,<yR>,<xR>,<zR>,<xT>,<yT>,<zT>
The 2nd to 7th fields are the ones used for matching against the selected prop. The following note
...,<vertexCount>,<poserGeometryName>,<poserInternalName>,<poserExternalName>,<dsGeometryName>,<ds4Name>,...
Field values for the datafile are obtained by loading the prop from a PP2* (or DUF) and using updated versions of the Poser and/or DAZ Studio helper scripts (note -actor is the PoserPython Actor object for the prop, and nProp is the DAZ Script DzNode for the prop):
<vertexCount>
- Poser: actor.Geometry().NumVertices()
- DS3/4: nProp.getObject().getCurrentShape().getGeometry().getNumVertices()
<poserGeometryName>
- Poser: actor.GeomFileName() ... this returns full path, filename, and extension. I extract just the filename. If it returns NoneType
- DS3/4: N/A
<poserInternalName>
- Poser: actor.InternalName() ... may need to strip trailing instance identifiers
- DS3: nProp.name ... may need to strip trailing instance identifiers
- DS4: N/A
<poserExternalName> ... I don't actually use this field
- Poser: actor.Name() ... may need to strip trailing instance identifiers
- DS3/4: nProp.getLabel() ... may need to strip trailing instance identifiers
<dsGeometryName>
- DS3/4: nProp.getObject().getCurrentShape().getGeometry().name is the DzNode for the prop
<ds4Name>
- Poser: N/A
- DS3: N/A
- DS4: nProp.name
*The prop should NOT be loaded into DAZ Studio from a .PZ3 or .DAZ because this may create incorrect values:
- If a PP2 prop was is loaded into DS3/4 in a .DAZ scene file then nProp.getObject().getCurrentShape().getGeometry().name will return "geometry"
- If a PP2 prop with embedded geometry is imported into DS3/4 in a .DAZ scene file the nProp.getObject().getCurrentShape().getGeometry().name will return the filename of the PZ3 file.
(Associated post on the main "Wouldn't It Be Nice If SmartProps Worked With More Than Just One Figure..." thread here http://www.daz3d.com/forums/discussion/comment/973849/#Comment_973849 )
New Release 3 HANDPROXYDATA Dataline Format (Version 1.03)
Please note that this is completely different from the previous Release 3 beta format.
(There are 29th January 2016 posts on the main thread for the Poser Release 3 version and DAZ Studio Release 3 version )
These are the comment lines for the HANDPROXYDATA section of the Release 3 'SmartPlusData.txt' file - they specify the new format:
:HANDPROXYDATA
# Dataline Syntax:
# <propName>,<vertexCount>,<poserGeometryName>,<poserInternalName>,<poserExternalName>,<dsGeometryName>,<ds4Name>,<yR>,<xR>,<zR>,<xT>,<yT>,<zT>
# Details:
# To create a full dataline you need both Poser and DAZ Studio.
# The Poser 'GetProxyData' script will put "???" in fields that must be created by DAZ Studio version, and vice versa:
# - <propName>: A user-defined name to uniquely identify the non-Smart+ prop, for display on the confirmation dialogue and drop-down list
# Spaces and any printable ASCII characters (EXCEPT FOR COMMAS) are allowed
# - <vertexCount>: The number of vertices in the prop geometry, as obtained using PoserPython act.Geometry().NumVertices() or DAZ Script oGeom.getNumVertices() # (Both give the same number for all props I've tried)
# - <poserGeometryName>: The geometry filename for the prop, as obtained using PoserPython act.GeomFileName() and stripping off the path and extension
# For a PP2 with external geometry this is the filename of the external OBJ
# If the PP2 had embedded geometry act.GeomFileName() will return NoneType, and this field will be set to "EMBEDDED" (without the quotes)
# I don't use the Poser DSON stuff - if you load a DS4-native prop into Poser I guess this will be the geometry name from the DUF
# - <poserInternalName>: Poser's internal name for the prop, as obtained using PoserPython act.InternalName(), with any trailing ":1" etc stripped off
# DS3 (but NOT DS4!) can also create this field using DAZ Script oProp.name
# (N.B. This field may contain multiple values separated by a / forward-slash)
# - <poserExternalName>: Poser's external name for the prop, as obtained using PoserPython act.Name(), with any trailing "_1" etc stripped off
# DS3 and DS4 can create this field using DAZ Script oProp.getLabel()
# (N.B. This field may contain multiple values separated by a / forward-slash)
# - <dsGeometryName>: The geometry filename for the prop, as obtained using DAZ Script oGeom.name in DS3 or DS4
# If the prop was a PP2 with external OBJ this should be exactly the same value as <poserGeometryName>
# If the PP2 had embedded geometry this will be the PP2 filename, different from <poserGeometryName>
# If the prop was DS4-native and loaded from a DUF this should be the geometry name from the DUF (I think)
# - <ds4Name>: DAZ Studio 4's name for the prop, as obtained using DAZ Script oProp.name.
# If the prop was loaded from a PP2 it will (usually?) be "<dsGeometryName>_<numberOfVertices>"
# If the prop is DS4-native (i.e. it was loaded from a DUF) then it will be whatever the author named it.
# (THIS FIELD CAN ONLY BE CREATED FROM DS4)
# - <yR>,<xR>,<zR>: YXZ rotations to align the NON-Smart+ Prop correctly in the zeroed DummyHand proxy. (N.B. YXZ order, not the usual x, y, z). All three values in degrees.
# - <xT>,<yT>,<zT>: XYZ translations to position the NON-Smart+ prop correctly in the zeroed DummyHand proxy. All three values in Poser units.
# Notes:
# The ORDER of similarly named props is now only important for props that have an identical number of vertices
The HANDPROXYDATA For The 100+ Props Supported By Release 3
I've included support for many of the hand-held props that I have in my runtime (the data for "Cleave" which I don't have will probably be wrong). Swords, guns, everyday stuff like umbrellas. All these props are either freebies or were bought by my alter ego with the money
These are the HANDPROXYDATA datalines included in the Release 3 'SmartPlusData.txt' file:
# Props that came with DS4.6 Pro
Genesis Magus Staff,40026,???,???,Staff,A_MagusStaff,Staff for Genesis,0.000,90.000,0.000,0.000,-0.513,-0.035
Genesis Katana In Hand,1947,???,???,Katana In-Hand,A_JScoutKatanaInHand,KatanaInHand for Genesis,17.881,21.611,76.492,0.292,-0.590,-0.072
# The six swords that come with Poser 9
Demoniac Sword (Poser 9),888,EMBEDDED,Demoniac_Sword,Demoniac_Sword,Demoniac_Sword,Demoniac_Sword_888,0.0,-90.0,90.0,0.4588,-0.76,-0.0011
Bone Sword (Poser 9),637,EMBEDDED,Bone_Sword,Bone_Sword,Bone_Sword,Bone_Sword_637,0.0,-90.0,90.0,-0.2834,-0.5799,0.0
Katana (Poser 9),184,EMBEDDED,Katana,Katana,Katana,Katana_184,0.0,-90.0,-90.0,0.1443,-0.5973,0.0
Medieval Sword (Poser 9),675,EMBEDDED,Medieval_Sword,Medieval_Sword,Medieval_Sword,Medieval_Sword_675,0.0,-90.0,90.0,0.301,-0.6144,0.0
Roman Sword (Poser 9),877,EMBEDDED,Roman_Sword,Roman_Sword,Roman_Sword,Roman_Sword_877,0.0,-90.0,90.0,-0.1454,-0.5926,-0.0002
Persian Sword (Poser 9),933,EMBEDDED,Persian_Sword,Persian_Sword,Persian_Sword,Persian_Sword_933,90.0,-87.0,180.0,0.0,-0.6025,-0.0005
# Sword from “Kaileena For PBIV” (Pretty3D/Mytilus at Renderosity) - separate line required for each, as they require significantly different parameter values
# (The lines for the LH/RH versions must be before the basic version to ensure that the LH/RH props match the correct line)
Kaileena Sword RH,11369,kaileena_SwordRH,SwordRH,SwordRH,kaileena_SwordRH,kaileena_SwordRH_11369,-90.0,278.0,-255.0,0.291,-0.586,-0.065
Kaileena Sword LH,11369,kaileena_SwordLH,SwordLH,SwordLH,kaileena_SwordLH,kaileena_SwordLH_11369,90.0,278.0,255.0,-0.291,-0.586,-0.065
Kaileena Sword,11369,kaileena_Sword,Sword,Sword,kaileena_Sword,kaileena_Sword_11369,-90.0,-98.0,0.0,0.02,-0.242,0.0
# Weapons from “Henseki’s Rune” (Orion1167 in the DAZ store) - left/right hand versions can be put onto the same line as they have the same parameters
V4 Hensekis Rune Knife,5586,SARUNEKnife,knifelt/knifert,KnifeLt/KnifeRt,SARUNEKnife,SARUNEKnife_5586,0.0,0.0,-90.0,0.0,-0.586,-0.07
V4 Hensekis Rune Sword,5586,SARUNESword,swordlt/swordrt,Henseki SwordLt/Henseki SwordRt,SARUNESword,SARUNESword_5586,0.0,0.0,-90.0,0.0,-0.586,-0.07
# Freebies from ShareCG
M4 Fable Sword (dyald),2693,Sword,Sword,Sword,Sword,Sword_2693,0.0,-90.0,90.0,0.0,-0.334,-0.09
Lightsaber (fantascopefilms),19135,EMBEDDED,saberhandle,saberhandle,ESB Skywalker Lightsaber,ESB Skywalker Lightsaber_19135,0.000,90.000,180.000,-0.001,-0.198,0.000
Shilleliegh (mjc26250),3010,???,???,shil2,shil2,shil2,-16.804,16.143,0.000,0.345,-0.522,0.150
# Freebies from RDNA
Akira Katana,39283,AK_katana,AK_katana,AK_katana,AK_katana,AK_katana_39283,0.0,-184.0,2.0,0.0787,-0.4853,-0.234
# From “Journeyer Scout For M4" in the DAZ Store - separate line required for each, as they require significantly different parameter values
Journeyer Scout Katana (In Hand),1947,JScoutKatanaInHand,JScoutKatanaInHand,JScoutKatanaInHand,JScoutKatanaInHand,JScoutKatanaInHand_1947,16.0,22.0,76.0,0.323,-0.6073,-0.063
Journeyer Scout Katana (In Scabbard),1947,JScoutKatana,JScoutKatana,JScoutKatana,JScoutKatana,JScoutKatana_1947,174.0,-46.0,0.0,-0.0709,-0.4889,-0.044
# Five props from “Bashers And Bludgeons” in the DAZ Store
Blockbuster (Bashers + Bludgeons),1316,B9BB_Blockbuster,B9BB_Blockbuster,Blockbuster,B9BB_Blockbuster,B9BB_Blockbuster_1316,0.0,0.0,0.0,0.0,-0.6078,-0.1771
Shillelagh (Bashers + Bludgeons),562,B9BB_Shillelagh,B9BB_Shillelagh,Shillelagh,B9BB_Shillelagh,B9BB_Shillelagh_562,0.0,0.0,0.0,0.0014,-0.6107,-0.13
Spikeclub (Bashers + Bludgeons),2830,B9BB_Spikeclub,B9BB_Spikeclub,Spikeclub,B9BB_Spikeclub,B9BB_Spikeclub_2830,0.0,0.0,0.0,-0.0008,-0.5937,-0.1388
Stoneclub (Bashers + Bludgeons),1856,B9BB_Stoneclub,B9BB_Stoneclub,Stoneclub,B9BB_Stoneclub,B9BB_Stoneclub_1856,0.0,0.0,0.0,0.0005,-0.6129,-0.1697
Treebranch (Bashers + Bludgeons),1082,B9BB_Treebranch,B9BB_Treebranch,Treebranch,B9BB_Treebranch,B9BB_Treebranch_1082,0.0,0.0,0.0,0.0013,-0.6118,-0.1358
# Nailboard is too broad for the usual hand pose
Nailboard (Bashers + Bludgeons),1110,B9BB_Board,B9BB_Board,NailBoard,B9BB_Board,B9BB_Board_1110,0.0,0.0,0.0,0.0,-0.5989,-0.1287
# Sword from "Angeluz Fantasy Armor" in the DAZ Store
Angeluz Sword,2893,AngzeSword,Ang2HSword,Ang2HSword,AngzeSword,AngzeSword_2893,90.0,-90.0,0.0,0.0,-0.577,0.0
# Old Traveler freebies from RDNA
Hunter Dagger (Traveler),3002,EMBEDDED,HunterDagger,HunterDagger,Hunter Blade,Hunter Blade_3002,90.0,-90.0,0.0,0.002,-0.138,0.0
Barbarian Hand Axe (Traveler),8421,Tr_BarbarianHandAxe,Tr_BarbarianHandAxe,Tr_BarbarianHandAxe,Tr_BarbarianHandAxe,Tr_BarbarianHandAxe_8421,0.0,90.0,0.0,0.0,-0.06,0.0
Bowie Knife (Traveler),7887,TrBowieKnife01,TrBowieKnife01,TrBowieKnife01,TrBowieKnife01,TrBowieKnife01_7887,0.0,-90.0,0.0,-0.001,-0.077,0.0
Rope Coil (Traveler),12156,AdGearRope1,AdGearRope1,AdGearRope1,AdGearRope1,AdGearRope1_12156,90.0,0.0,0.0,0.008,-0.132,0.0
Grappling Hook (Traveler),2856,AdGearGrapple,AdGearGrapple,AdGearGrapple,AdGearGrapple,AdGearGrapple_2856,0.0,90.0,0.0,0.0,-0.033,0.0
#Yamato's Umbrella
Umbrella (Yamato),5199,EMBEDDED,Yamatoumbrella2,Yamatoumbrella2,kasa,kasa_5199,0.0,90.0,0.0,0.0,-0.327,0.0
#DAZ Ryuji Dragon Spear
Ryuji Dragon Spear,4456,RyujiSpear_RyuSpear,RyuSpear,RyuSpear,RyujiSpear_RyuSpear,RyujiSpear_RyuSpear_4456,0.0,90.0,0.0,0.0,-0.387,0.0
Digital SLR,66365,EMBEDDED,digital single lens camera,digital single lens camera,camera,camera_66365,0.0,90.0,0.0,0.0187,-0.0706,-0.058
# The '_1' in the Poser internal/external names for the Biwa is correct
Biwa (Yamato),8732,EMBEDDED,YamatoBiwa6_1,YamatoBiwa6_1,Biwa,Biwa_8732,0.0,90.0,0.0,0.0,-0.435,-0.02
Rababa (Arabian Music),9423,EMBEDDED,Rababa,Rababa,Rababa,Rababa_9423,0.0,90.0,0.0,0.0,-0.229,0.071
Rababa Bow (Arabian Music),690,EMBEDDED,Rababa-Bow,Rababa-Bow,Rababa Bow,Rababa Bow_690,90.0,0.0,90.0,0.017,-0.188,-0.022
Nay (Arabian Music),2399,EMBEDDED,Nay,Nay,Nay,Nay_2399,0.0,90.0,0.0,0.0,0.0,0.0
Dragon Bow (Arcane Archery),15944,valFancyDragonBow,DragonBow,DragonBow,valFancyDragonBow,valFancyDragonBow_15944,0.0,0.0,-90.0,-0.3279,-0.5931,-0.074
Dragon Arrow (Arcane Archery),16190,valFancyArrow002,DragonArrow,DragonArrow,valFancyArrow002,valFancyArrow002_16190,75.0,0.0,0.0,0.5528,-0.6021,-0.1144
Egyptian Bow (Arcane Archery),14298,valFancyEgyptianBow,EgyptBow,EgyptBow,valFancyEgyptianBow,valFancyEgyptianBow_14298,0.0,0.0,-87.0,-0.3239,-0.5928,-0.0732
Egyptian Arrow (Arcane Archery),21496,valFancyArrow003,EgyptArrow,EgyptArrow,valFancyArrow003,valFancyArrow003_21496,75.0,0.0,0.0,0.5329,-0.6008,-0.11
Tribal Bow (Arcane Archery),21100,valFancyTribalBow,TribalBow,TribalBow,valFancyTribalBow,valFancyTribalBow_21100,0.0,0.0,-90.0,-0.3268,-0.5939,-0.0731
Tribal Arrow (Arcane Archery),3730,valFancyArrow001,TribalArrow,TribalArrow,valFancyArrow001,valFancyArrow001_3730,75.0,0.0,0.0,0.5439,-0.6008,-0.1136
Colt (ChuckNepo),70598,EMBEDDED,Colt,Colt,Colt M1911,Colt M1911_70598,0.0,75.0,0.0,-0.0,-0.058,0.0329
Gatling Gun (Traveler),23062,Tr_HeavyArmsGattlingGun,Tr_HeavyArmsGattlingGun,Tr_HeavyArmsGattlingGun,Tr_HeavyArmsGattlingGun,Tr_HeavyArmsGattlingGun_23062,0.0,75.0,0.0,-0.0,-0.0706,0.1898
Heavy Blaster (Traveler),29759,Tr_HeavyArmsBlaster,Tr_HeavyArmsBlaster,Tr_HeavyArmsBlaster,Tr_HeavyArmsBlaster,Tr_HeavyArmsBlaster_29759,0.0,75.0,0.0,-0.0,-0.059,0.1107
# Traveler old stuff
Warhammer (Traveler),14935,TrWarHammer01,TrWarHammer01,TrWarHammer01,TrWarHammer01,TrWarHammer01_14935,90.0,90.0,0.0,0.0,-0.2382,-0.0018
Big Axe (Traveler),16181,TrBigAxe01,TrBigAxe01,TrBigAxe01,TrBigAxe01,TrBigAxe01_16181,90.0,90.0,0.0,0.0,-0.13,0.0
Crossbow (Traveler),7404,TrCrossbow1,TrCrossbow1,TrCrossbow1,TrCrossbow1,TrCrossbow1_7404,0.0,0.0,0.0,0.0,-0.073,-0.069
Crossbow Bolt (Traveler),919,TrCrossbowBolt1,TrCrossbowBolt1,TrCrossbowBolt1,TrCrossbowBolt1,TrCrossbowBolt1_919,0.0,0.0,0.0,0.0,-0.081,-0.123
Maul (RDNA),4398,EMBEDDED,Warhammer,Maul,Maul,Maul_4398,0.0,0.0,90.0,0.328,-0.586,-0.093
# CannonStuff
Bucket (Cannon Accessory),3245,bucket,bucket,bucket,bucket,bucket_3245,90.0,0.0,0.0,0.019,-0.196,0.0
Gun Ladle (Cannon Accessory),1167,gun-ladle,gun-ladle,gun-ladle,gun-ladle,gun-ladle_1167,0.0,90.0,0.0,0.0,-0.318,0.0
Gun Rammer (Cannon Accessory),1275,gun-rammer,gun-rammer:1,gun-rammer,gun-rammer,gun-rammer_1275,0.0,90.0,0.0,0.0,-0.349,0.0
# DAZ Firearms (used V4 LH versions)
12GAShotgun (DAZ Firearms),32537,DZBG870SCPE,870shotgun,12GAShotgun,DZBG870SCPE,DZBG870SCPE_32537,0.0,60.0,0.0,0.0,-0.0186,-0.0093
22Caliber (DAZ Firearms),49075,DZBGWG22SCP,walterG22scope,22 Caliber,DZBGWG22SCP,DZBGWG22SCP_49075,0.0,68.0,0.0,0.0,-0.0197,-0.0151
308Rifle (DAZ Firearms),63166,DZBGDSATACT,DSA,308Rifle,DZBGDSATACT,DZBGDSATACT_63166,0.0,73.0,0.0,0.0,-0.0197,-0.0133
38Revolver (DAZ Firearms),55498,DZBGSMWS649,sw649,38Revolver,DZBGSMWS649,DZBGSMWS649_55498,0.0,66.0,0.0,0.0,-0.0163,-0.0079
9mmPistol (DAZ Firearms),38369,DZBGDALY9MM,dalyZDA9mm,9mm Pistol,DZBGDALY9MM,DZBGDALY9MM_38369,0.0,63.0,0.0,0.0,-0.0174,-0.0163
AR-15Rifle (DAZ Firearms),49767,DZBGDPMSSSC,DPMS,AR-15Rifle,DZBGDPMSSSC,DZBGDPMSSSC_49767,0.0,59.0,0.0,0.0,-0.0221,-0.0197
AR-15Rifle_Tac (DAZ Firearms),50469,DZBGDPMSTSC,DPMS 1,AR-15TacRifle,DZBGDPMSTSC,DZBGDPMSTSC_50469,0.0,62.0,0.0,0.0,-0.0209,-0.0174
TommyGun (DAZ Firearms),24709,DZBGThompM1,thompsonM1,TommyGun,DZBGThompM1,DZBGThompM1_24709,0.0,62.0,0.0,0.0,-0.0186,-0.0163
# Deadly Edges
Starburst (Deadly Edges),7941,B9DE2_Starburst,B9DE2_Starburst,Starburst,B9DE2_Starburst,B9DE2_Starburst_7941,0.0,0.0,0.0,0.0,-0.589,-0.248
Whacksaw (Deadly Edges),2743,B9DE_Whacksaw,B9DE_Whacksaw,Whacksaw,B9DE_Whacksaw,B9DE_Whacksaw_2743,0.0,0.0,90.0,-0.0,-0.5477,0.107
Sickle (Deadly Edges),578,B9DE2_Sickle,B9DE2_Sickle,Harvester Sickle,B9DE2_Sickle,B9DE2_Sickle_578,0.0,0.0,0.0,0.0,-0.5528,-0.1248
Hungamunga (Deadly Edges),1771,B9DE_Hungamunga,B9DE_Hungamunga,Hungamunga,B9DE_Hungamunga,B9DE_Hungamunga_1771,0.0,0.0,0.0,0.0,-0.4738,-0.0178
Steel Orchid (Deadly Edges),9539,B9DE_SteelOrchid,B9DE_SteelOrchid,Steel_Orchid,B9DE_SteelOrchid,B9DE_SteelOrchid_9539,0.0,0.0,180.0,0.0,-0.4662,-0.0127
Raptor Axe (Deadly Edges),6862,B9DE_Axe,B9DE_Axe,Raptor_Axe,B9DE_Axe,B9DE_Axe_6862,0.0,0.0,0.0,-0.0,-0.5987,0.028
Pushdagger (Deadly Edges),1666,B9DE2_PushDagger,B9DE2_PushDagger,Ultimate PushDagger,B9DE2_PushDagger,B9DE2_PushDagger_1666,-90.0,0.0,90.0,-0.014,-0.5732,-0.079
Devils Corkscrew (Deadly Edges),1130,B9DE2_Corkscrew,B9DE2_Corkscrew,Devil's Corkscrew,B9DE2_Corkscrew,B9DE2_Corkscrew_1130,-90.0,0.0,90.0,0.0164,-0.585,-0.0382
# Drop The Hammer
Anvil Hammer (Drop The Hammer),22633,valWarHammer01,valWarHammer01,valWarHammer01,valWarHammer01,valWarHammer01_22633,0.0,15.0,90.0,0.325,-0.6039,-0.1022
Cross Hammer (Drop The Hammer),10468,valWarHammer02,valWarHammer02,valWarHammer02,valWarHammer02,valWarHammer02_10468,0.0,15.0,90.0,0.3198,-0.606,-0.1022
War Hammer (Drop The Hammer),8318,valWarHammer03,valWarHammer03,valWarHammer03,valWarHammer03,valWarHammer03_8318,0.0,15.0,90.0,0.3217,-0.608,-0.1266
Dwarf Hammer (Drop The Hammer),19729,valWarHammer04,valWarHammer04,valWarHammer04,valWarHammer04,valWarHammer04_19729,-6.0,15.0,90.0,0.316,-0.6095,-0.116
Mallet Sama (Drop The Hammer),5158,valWarHammerHen,valWarHammerHen,valWarHammerHen,valWarHammerHen,valWarHammerHen_5158,0.0,0.0,90.0,0.3008,-0.5796,-0.0999
# Fantasy Shields
Basic Heater (Fantasy Shields),8734,valShieldsBasicHeater,valShieldsBasicHeater,valShieldsBasicHeater,valShieldsBasicHeater,valShieldsBasicHeater_8734,22.0,0.0,-85.0,-0.312,-0.5955,-0.072
Basic Targ (Fantasy Shields),6408,valShieldsBasicTarg,valShieldsBasicTarg,valShieldsBasicTarg,valShieldsBasicTarg,valShieldsBasicTarg_6408,20.0,16.0,-41.0,-0.322,-0.6011,-0.0616
CelestialHeater (Fantasy Shields),11093,valShieldsCelheater,valShieldsCelheater,valShieldsCelheater,valShieldsCelheater,valShieldsCelheater_11093,21.0,0.0,-85.0,-0.3122,-0.5956,-0.071
Demonic Heater (Fantasy Shields),8348,valShieldsDemHeater,valShieldsDemHeater,valShieldsDemHeater,valShieldsDemHeater,valShieldsDemHeater_8348,19.0,0.0,-85.0,-0.3106,-0.596,-0.0708
Dragon Targ (Fantasy Shields),7512,valShieldsDragTarg,valShieldsDragTarg,valShieldsDragTarg,valShieldsDragTarg,valShieldsDragTarg_7512,20.0,13.0,-30.0,-0.32,-0.6005,-0.0627
# Fantasy Spears
Fish Spear (Fantasy Spears),5658,valPoArFishspear,Spear,valPoArFishspear,valPoArFishspear,valPoArFishspear_5658,-5.0,15.0,0.0,0.2951,-0.6686,-0.3089
Fork Spear (Fantasy Spears),5840,valPoArForkspear,Spear,valPoArForkspear,valPoArForkspear,valPoArForkspear_5840,-5.0,15.0,0.0,0.2935,-0.6739,-0.3361
Leaf Spear (Fantasy Spears),10403,valPoArLeafspear,Spear,valPoArLeafspear,valPoArLeafspear,valPoArLeafspear_10403,-5.0,15.0,0.0,0.2935,-0.6661,-0.3089
Basic Spear (Fantasy Spears),2532,valPoArSpear,Spear,valPoArSpear,valPoArSpear,valPoArSpear_2532,-5.0,15.0,0.0,0.284,-0.6841,-0.374
Woodland Spear (Fantasy Spears),2194,valPoArWoodlandSpear,Spear,valPoArWoodlandSpear,valPoArWoodlandSpear,valPoArWoodlandSpear_2194,-5.0,15.0,0.0,0.2828,-0.6817,-0.3716
Tri-Spear (Fantasy Spears),3789,valPoArTrispear,Spear,valPoArTrispear,valPoArTrispear,valPoArTrispear_3789,-5.0,15.0,0.0,0.284,-0.6983,-0.4308
# Martial Weapons
Kama Lt (Martial Weapons),2288,valMAWeapKamaLt,valMAWeapKamaLt,valMAWeapKamaLt,valMAWeapKamaLt,valMAWeapKamaLt_2288,0.0,20.0,0.0,-0.316,-0.5965,-0.058
Kama Rt (Martial Weapons),2288,valMAWeapKamaRt,valMAWeapKamaRt,valMAWeapKamaRt,valMAWeapKamaRt,valMAWeapKamaRt_2288,0.0,20.0,0.0,0.3167,-0.5967,-0.058
Tonfa Lt (Martial Weapons),4947,valMAWeapTonfaLf,valMAWeapTonfaLf,valMAWeapTonfaLf,valMAWeapTonfaLf,valMAWeapTonfaLf_4947,19.0,18.0,82.0,-0.3148,-0.6039,-0.0592
Tonfa Rt (Martial Weapons),4947,valMAWeapTonfaRt,valMAWeapTonfaRt,valMAWeapTonfaRt,valMAWeapTonfaRt,valMAWeapTonfaRt_4947,-21.0,17.0,-83.0,0.3164,-0.6012,-0.0579
Sai Lt (Martial Weapons),2770,valMAWeapSaiLf,valMAWeapSaiLf,valMAWeapSaiLf,valMAWeapSaiLf,valMAWeapSaiLf_2770,0.0,17.0,0.0,-0.3171,-0.6,-0.0627
Sai Rt (Martial Weapons),2770,valMAWeapSaiRt,valMAWeapSaiRt,valMAWeapSaiRt,valMAWeapSaiRt,valMAWeapSaiRt_2770,0.0,17.0,0.0,0.316,-0.6012,-0.0615
Kunai (Martial Weapons),2752,valMAWeapKunai,valMAWeapKunai,valMAWeapKunai,valMAWeapKunai,valMAWeapKunai_2752,0.0,20.0,0.0,0.3243,-0.6012,-0.0686
# OrderOfSteel
Crosshilt (Order Of Steel),30079,valOrdSteelCrosshilt,valOrdSteelCrosshilt,valOrdSteelCrosshilt,valOrdSteelCrosshilt,valOrdSteelCrosshilt_30079,0.0,15.0,90.0,0.3184,-0.5923,-0.0494
Fluketail (Order Of Steel),5965,valOrdSteelFluke,valOrdSteelFluke,valOrdSteelFluke,valOrdSteelFluke,valOrdSteelFluke_5965,0.0,19.0,90.0,0.3182,-0.5993,-0.0604
Man At Arms (Order Of Steel),8827,valOrdSteelMAA,valOrdSteelMAA,valOrdSteelMAA,valOrdSteelMAA,valOrdSteelMAA_8827,0.0,19.0,90.0,0.3182,-0.5981,-0.0604
Broken (on floor) (Order Of Steel),7949,valOrdSteelFloor01,valOrdSteelFloor01,valOrdSteelFloor01,valOrdSteelFloor01,valOrdSteelFloor01_7949,20.0,0.0,90.0,-0.0016,-0.0069,0.1661
Broken (in hand) (Order Of Steel),7949,valOrdSteelBroken01,valOrdSteelBroken01,valOrdSteelBroken01,valOrdSteelBroken01,valOrdSteelBroken01_7949,0.0,25.0,90.0,0.3182,-0.6063,-0.065
# Polearms
Bardiche (Polearms),13537,valPoleTwoBardiche,valPoleTwoBardiche,valPoleTwoBardiche,valPoleTwoBardiche,valPoleTwoBardiche_13537,0.0,20.0,90.0,0.32,-0.511,0.1661
Broad Glaive (Polearms),19525,valPoleArmsBroadglaive,valPoleArmsBroadglaive,valPoleArmsBroadglaive,valPoleArmsBroadglaive,valPoleArmsBroadglaive_19525,0.0,20.0,-90.0,-0.3208,-0.5998,-0.0778
Fauchard (Polearms),4901,valPoleTwoFauchard,valPoleTwoFauchard,valPoleTwoFauchard,valPoleTwoFauchard,valPoleTwoFauchard_4901,0.0,20.0,-90.0,-0.3187,-0.6088,-0.0964
Halberd 1 (Polearms),15710,valPoleTwoHalberd01,valPoleTwoHalberd01,valPoleTwoHalberd01,valPoleTwoHalberd01,valPoleTwoHalberd01_15710,0.0,20.0,-90.0,-0.3179,-0.5307,0.1196
Halberd 2 (Polearms),9536,valPoleTwoHalberd02,valPoleTwoHalberd02,valPoleTwoHalberd02,valPoleTwoHalberd02,valPoleTwoHalberd02_9536,0.0,20.0,-90.0,-0.3179,-0.5421,0.0848
Larks Tongue (Polearms),5654,valPoleArmsLarkstongue,valPoleArmsLarkstongue,valPoleArmsLarkstongue,valPoleArmsLarkstongue,valPoleArmsLarkstongue_5654,0.0,20.0,0.0,-0.3229,-0.5551,0.0429
Pike (Polearms),3074,valPoleTwoPike,valPoleTwoPike,valPoleTwoPike,valPoleTwoPike,valPoleTwoPike_3074,0.0,20.0,0.0,-0.322,-0.6124,-0.1153
Pilum (Polearms),6370,valPoleTwoPilum,valPoleTwoPilum,valPoleTwoPilum,valPoleTwoPilum,valPoleTwoPilum_6370,0.0,-160.0,0.0,0.3206,-0.5827,-0.0159
Ranseur (Polearms),12080,valPoleArmsRanseur,valPoleArmsRanseur,valPoleArmsRanseur,valPoleArmsRanseur,valPoleArmsRanseur_12080,0.0,20.0,0.0,-0.322,-0.5482,0.0508
Star Glaive (Polearms),8632,valPoleArmsStarglaive,valPoleArmsStarglaive,valPoleArmsStarglaive,valPoleArmsStarglaive,valPoleArmsStarglaive_8632,0.0,20.0,0.0,-0.321,-0.5789,-0.0172
Voulge (Polearms),8781,valPoleTwoVoulge,valPoleTwoVoulge,valPoleTwoVoulge,valPoleTwoVoulge,valPoleTwoVoulge_8781,0.0,20.0,0.0,-0.3194,-0.5459,0.0676
# RPG Launcher
RPG7 Launcher,10945,RPG7Launcher,RPG7Launcher_1,RPG7Launcher,RPG7Launcher,RPG7Launcher_10945,0.0,85.0,0.0,0.062,-0.6455,-0.1019
RPG7 Rocket,2054,RPG7Rocket,RPG7Rocket_1,RPG7Rocket,RPG7Rocket,RPG7Rocket_2054,0.0,0.0,0.0,0.063,-0.6592,-0.1658
# UziliteGun
Uzilite Gun,56609,hd_Gun,OD_Gun,OD_Gun,hd_Gun,hd_Gun_56609,0.0,76.0,0.0,0.0,-0.0227,-0.016
# From “Cleave” in the DAZ Store (thanks erostew)
GreatCleaver (Cleave Daz 15046),???,???,valCleaveGreatcleave,valCleaveGreatcleave,???,???,0.000,0.000,90.000,0.318,-0.595,0.000
Scythe (Cleave Daz 15046),???,???,valCleaveScythe,valCleaveScythe,???,???,0.000,0.000,90.000,0.317,-0.595,0.146
Please Inform Me If Any Of The Release 3 Supported Props Do Not Work
I created the data for all 100+ props using the Poser and/or DAZ Studio helper scripts that I will be releasing shortly.
I use these scripts regularly with a variety of figures, but I have not tested every prop.
If you find that any of them (a) are not correctly auto-matched or (b) do not end up in the hand of the selected figure then it is most likely due to an error in the dataline. Please let me know.
Can you please repost those posts in a fashion that does not completely break the forum page formatting. I don't want to remove them, as it's a not of work there,
Thanks
(Edit: OT discussion in response to chohole's comment regarding formatting problems moved by DAZ_Benjam to new Forum WYSIWYG Issues thread in the commons)
Additional Prop Support Data For Release 3 Format
(Not Included In Release 3)
I'm working on the helper scripts for adding new props, so obviously I'm creating data for the props I'm testing. I'll post the data here as I go along.
(Edit (14th March): Missing DAZ Studio fields added, so these are now complete datalines and can be added to your SmartPlusData.txt file manually if you're comfortable doing that.)
N.B. Since I'm testing there may be errors in the data below, most likely in the text-matching fields. I'll be correcting any I spot as I notice them. Also, some datlines may contain only the Poser data, or only the DS data, depending on which helper scripts I happened to be testing.
# Schoolgirl Bag from "School Girl Uniform for Aiko 4" at DAZ
A4 Schoolgirl Bag,6000,A4SchoolGirl_Bag,A4SchoolGirl_Bag,A4SchoolGirl_Bag,A4SchoolGirl_Bag,A4SchoolGirl_Bag_6000,-90.000,0.000,0.000,-0.024,-0.135,-0.101
# Garden Tools from "Potting Shed and Tools" at DAZ
Watering Can - Carrying (Garden Tools),5920,sstWtrPot,sstWtrPot,WateringPot,sstWtrPot,sstWtrPot_5920,-90.0,0.0,0.0,-0.021,-0.202,0.0
Watering Can - Pouring (Garden Tools),5920,sstWtrPot,sstWtrPot,WateringPot,sstWtrPot,sstWtrPot_5920,0.0,65.0,0.0,0.0,-0.138,0.086
Small Rake (Garden Tools),2030,sstSmRake,sstSmRake,SmRake,sstSmRake,sstSmRake_2030,0.0,90.0,0.0,0.0,-0.044,0.0
Small Fork (Garden Tools),2366,sstSmPFork,sstSmPFork,SmPitchfork,sstSmPFork,sstSmPFork_2366,0.0,90.0,0.0,0.0,-0.044,0.0
Small Chopper (Garden Tools),1393,sstSmChopper,sstSmChopper,SmChopper,sstSmChopper,sstSmChopper_1393,0.0,90.0,0.0,0.0,-0.045,0.0
Small Scoop (Garden Tools),1488,sstScoop,sstScoop,Scoop,sstScoop,sstScoop_1488,0.0,90.0,0.0,0.0,-0.045,0.0
Hammer (Garden Tools),962,sstHammer,sstHammer,Hammer,sstHammer,sstHammer_962,0.0,90.0,0.0,0.0,-0.0436,0.0
Chopper (Garden Tools),1703,sstChopper,sstChopper,Chopper,sstChopper,sstChopper_1703,0.0,90.0,0.0,0.0,-0.2422,0.0
Iron Rake (Garden Tools),4348,sstIrnRake,sstIrnRake,IronRake,sstIrnRake,sstIrnRake_4348,0.0,90.0,0.0,0.0,-0.2422,0.0
Grass Rake (Garden Tools),4062,sstGrssRake,sstGrssRake,GrassRake,sstGrssRake,sstGrssRake_4062,0.0,90.0,0.0,0.0,-0.2422,0.0
Shovel (Garden Tools),2242,sstShovel,sstShovel,Shovel,sstShovel,sstShovel_2242,0.0,90.0,0.0,0.0,-0.2422,0.0
Square Shovel (Garden Tools),2902,sstShovelSq,sstShovelSq,ShovelSq,sstShovelSq,sstShovelSq_2902,0.0,90.0,0.0,0.0,-0.2422,0.0
Pitchfork (Garden Tools),2336,sstPitchfork,sstPitchfork,PitchFork,sstPitchfork,sstPitchfork_2336,0.0,90.0,0.0,0.0,-0.2422,0.0
NOTES AND REMINDERS TO SELF:
I have to try this, it can be very useful only if I could make it work :D
New Prop Support Data (March 2016)
I'm currently testing the Poser helper scripts for adding new props.
Here's a new batch of data (including the DAZ Studio fields) that's come out of those tests. I'll be adding additional support data to this post for a while.
You can add this to your SmartPlusData.txt file manually if you're comfortable doing that.
(N.B. I've also added the missing DAZ Studio fields to the previous post with the garden tools)
# Warhammer (M4/H4 "Celestial Armor" from DAZ)
Warhammer (M4 Celestial Armor),12755,valCelArmHammer,valCelArmHammer,valCelArmHammer,valCelArmHammer,valCelArmHammer_12755,0.0,0.0,90.0,0.3206,-0.5935,-0.0672
# Mace ( Knight Champion for M4 from DAZ)
Mace (M4 Knight Champion),2894,VLKCflangedmace,mace,mace,VLKCflangedmace,VLKCflangedmace_2894,0.0,12.0,0.0,0.32,-0.602,-0.068
# BackBreaker (Lord of Battles for M4 and Hiro 4 from DAZ)
BackBreaker (H4 Lord Of Battles),11687,ValLOBsword,ValLOBsword,BackBreaker,ValLOBsword,ValLOBsword_11687,0.0,22.0,90.0,0.3136,-0.5993,-0.0501
# Axe (M4 Bone Smasher from DAZ)
Axe (M4 Bone Smasher),4648,BSr_Axe,BSr_Axe,BSr_Axe_,BSr_Axe,BSr_Axe_4648,0.0,90.0,0.0,0.0,-0.109,0.0
# Shield (Dyald's M4 Fable at ShareCG)
Shield (M4 Fable),3855,ShieldWStrp,ShieldWStrp,ShieldWStrp_,ShieldWStrp,ShieldWStrp_3855,17.0,0.0,-85.0,-0.3182,-0.5972,-0.0596
# Sword (Valiant for Michael 4 from DAZ)
Sword (M4 Valiant),8060,RDValSword,RDValSword,ValiantSword,RDValSword,RDValSword_8060,0.0,0.0,90.0,0.3245,-0.595,-0.0667
# From Aery Soul Weapons Collection (Renderosity?)
IcyingLight RH (AerySoul),7187,icyinglight,icyinglight,IcyingLight,icyinglight,icyinglight_7187,0.0,0.0,0.0,0.314,-0.5729,-0.0842
WindSinger LH (AerySoul),7187,WindSinger,WindSinger,WindSinger,WindSinger,WindSinger_7187,0.0,0.0,0.0,-0.3146,-0.5731,-0.0827
MoonBlade RH (AerySoul),7600,md_rgt_blade,md_rgt_blade,md_rgt_blade,md_rgt_blade,md_rgt_blade_7600,-19.0,19.0,92.0,0.2852,-0.5884,-0.0707
MoonBlade LH (AerySoul),7600,md_lft_blade,md_lft_blade,md_lft_blade,md_lft_blade,md_lft_blade_7600,20.0,19.0,-92.0,-0.2881,-0.5894,-0.0704
Rapier RH (AerySoul),13626,7s_rgt_rapier,7s_rgt_Rapier,7s_rgt_Rapier,7s_rgt_rapier,7s_rgt_rapier_13626,0.0,0.0,-90.0,0.3096,-0.5756,-0.0645
Rapier LH (AerySoul),13626,7s_lft_rapier,7s_lft_rapier,7s_lft_rapier,7s_lft_rapier,7s_lft_rapier_13626,0.0,0.0,90.0,-0.3105,-0.575,-0.0654
Justice Sword RH (AerySoul),20845,js_rgt_sword,js_rgt_sword,js_rgt_sword,js_rgt_sword,js_rgt_sword_20845,-20.0,12.0,-90.0,0.2814,-0.5889,-0.0864
Justice Sword LH (AerySoul),20845,js_lft_sword,js_lft_sword,js_lft_sword,js_lft_sword,js_lft_sword_20845,20.0,11.0,90.0,-0.2816,-0.59,-0.0876
# Gun and knife (M4 Ghost Agent)
Pistol (M4 Ghost Agent),5228,GAgun,GAgun,GAgun,GAgun,GAgun_5228,-174.0,-6.0,4.0,-0.0855,-0.3706,-0.0265
Knife (M4 Ghost Agent),1091,GAknife,GAknife,GAknife,GAknife,GAknife_1091,87.0,-93.0,97.0,0.0852,-0.332,-0.0231
# ToA Legendary
Dagger RH (ToA Legendary),1058,1108_DagRH,DaggerLeft,DaggerRIGHT,1108_DagRH,1108_DagRH_1058,183.0,-7.0,111.0,0.3231,-0.5912,-0.023
Dagger LH (ToA Legendary),1058,1108_DagLH,DaggerLeft,DaggerLeft,1108_DagLH,1108_DagLH_1058,178.0,-8.0,76.0,-0.325,-0.5907,-0.0225
Sabre RH (ToA Legendary),1995,1108_BladeRH,BladeRight,Sabre_R,1108_BladeRH,1108_BladeRH_1995,0.0,18.0,90.0,0.3181,-0.6022,-0.0638
Sabre LH (ToA Legendary),1995,1108_BladeLH,BladeLeft,SabreL,1108_BladeLH,1108_BladeLH_1995,0.0,18.0,-90.0,-0.3171,-0.6016,-0.06
# Sword (M4 Urban Warrior)
Sword (M4 Urban Warrior),2791,X_UW_Sword,M4Sword,M4Sword,X_UW_Sword,X_UW_Sword_2791,90.0,-90.0,0.0,-0.0081,-0.5095,-0.0089
NOTES AND REMINDERS TO SELF:
Ok, I think it is finaly time to try to use it, I hope I will be able to make it work.
Glad you're still working on this! I'm anxiously awaiting the helper scripts. Lately a lot of my renders seem to be using freebie weapon props and .obj files so it would be pretty cool to be able to save things for future use without having to always save it as a new prop and also a new pose to grab the prop and a pose to put the prop in the grasping hand :)
I've had the basic versions (i.e. updated versions of the Release 3 Beta helper scripts to create the proper Release 3 format data) for both Poser and DAZ Studio sitting on my machine for quite a while.
But I decided to expand the procedure to automatically strip off any additional suffix (i.e. the red bits in this post), and to provide assistance in determining whether right/left-hand smartprop versions of the prop require separate datalines.
I've been doing this in Poser first simply because I find it easier messing around in PoserPython than DAZ Script.
The main change (if I ever get it working) will be that you'll have to manually load two copies of the prop so that the script can compare the internal/external/geometry/etc names to find the longest common strings. And if there are smartprop versions you'll have to manually load two copies of each of those as well - one of the new scripts zeroes all props in the scene, allowing you to visually confirm whether they all zero to the same place and orientation, and thus determine whether or not they can all use a single dataline.
The biggest problem is simply that I'm getting bored doing it, and keep finding more interesting things to do ! But since you've actually asked about them I'll see if I can get my act together... :D
In the meantime I can upload the basic versions since they should allow you to create your own datafor the proper release 3 format in the same way as before. Edit: 28th Mar 2016 - basic interim 'Rel3 Ver1' versions uploaded - see post below
P.S. I assume that you're using DAZ Studio ? If so I might hang fire on the Poser scripts and try and get the DAZ Studio ones done first.
SmartPlus Prop Helper Scripts Rel3 Ver1 (DAZ Studio and Poser)
Interim version of the proper release 3 format DS prop helper scripts now available - see this 27th March 2016 post on the main thread.
Interim version of the proper release 3 format Poser prop helper scripts now available - see this 28th March 2016 post on the main thread.
These files have been sitting on my system for several weeks while I've been doing other stuff. After the nudge from erostew I did a quick run through with both DAZ Studio and Poser versions, did some minimal tidying up (some of the wording on the new 'for information only' dialogues), and checked that they still work before uploading them.
These 'interim' versions, which I've designated 'Rel3 Ver1', use more or less the same procedure as the release 3 beta helper scripts, so anybody who's used those should find them familiar. I didn't even change any of the icons.
The two main things that changed are:
A) The step 5 script now obviously creates the HANDPROXYDATA dataline in the proper release 3 format.
B) You don't have to worry about forgetting what you have to do. Double-clicking the '!Info' icon will now display instructions for the whole procedure, and double-clicking the icons for the two manual steps (2 and 4) will display brief instructions for that step.
For anybody who didn't play with the release 3 beta scripts then item (B) above should be a big help.
However, for the final step you still need to copy the resulting dataline from the log file (DAZ Studio) / debug window (Poser), paste it into a bsic text editor (i.e. NOT a wordprocessor or anything that adds formatting codes), make some manual changes/corrections, and then cut-and-paste the edited line into the HANDPROXYDATA section of your 'SmartPlusData.txt' file.
N.B. Props with Scale and/or any of x/y/zScale NOT set to 100% will usually prevent* these procedures from working. Simply setting scale to 100% will NOT resolve the problem. I need to make some changes to both Release 3 Core and these scripts to fix that.
*After running Step 3 (PropOriginToWorldOrigin) the prop origin will NOT be at the world centre. Setting all scales to 100% before Step 2 (MANUALLY Translate) may seem to work, but I think there's more to it - I need to do some more tests. avoids the problem
ONGOING...
I confirmed earlier today that setting Scale, xScale, yScale, and zScale all to 100% before starting the procedure avoids the problem noted in the previous post, so the next version of these prop helper scripts will do this automatically - it's already in my ongoing Poser version.
And talking of the next version - the Poser one's almost there. I'm testing it by creating data for more props. Things I've noticed while doing this:
Anyway, here's the data from the ongoing tests with my latest Poser dev version (so no DAZ Studio text parameters yet). I haven't verified any of this data by using it with PropGoto+ to put the prop into a figure's hand, but then I'm confident enough of the Smart+ stuff that I don't really need to ! (edit: just added everything up to and including the courageous stuff to my SmartPlusData.txt and tried giving them to Andy in Poser 9. Everything works fine, just as I knew it would ! )
# Slicer Sword ("Slicer" for M4, H4 in the DAZ Store )
Slicer Sword,3985,SlicerSword,SlicerSword,SlicerSword_,SlicerSword,SlicerSword_3985,0.0,-90.0,0.0,0.0,-0.337,0.0
# Horse Sword (from "Riders for V3" by WalkerofShadows - used to be at ShareCG)
Horse Sword (WalkerOfShadows),7500,HorseSword2,HorseSword,HorseSword,???,???,0.0,0.0,90.0,0.3118,-0.5788,-0.072
#Ski Sticks (from LDD's Ski Fun - old Renderosity freebie?)
Ski Stick RH,5550,rbaton,rbaton,right_Baton,???,???,-24.0,17.5,84.0,0.2909,-0.5923,-0.074
Ski Stick LH,5550,lbaton,lbaton,left_Baton,???,???,24.0,18.0,-84.0,-0.2894,-0.5939,-0.0767
# Pistol ("Action Poses" Mytilus at Renderosity) ... this one was a right PITA to set the rotations, and they're still a bit off !
Pistol RH (Mytilus Action Poses),56141,aposesPistolRH,GunR,GunR,???,???,60.0,82.0,79.0,0.289,-0.5864,-0.0679
Pistol LH (Mytilus Action Poses),56141,aposesPistolLH,GunL,GunL,???,???,-45.3398,66.3717,-82.2831,-0.2901,-0.586,-0.0667
# Bow/Arrow (B25 Archer from DAZ)
Arrow (B25 Archer),2100,B25ArcherArrow,B25ArcherArrow,B25ArcherArrow,???,???,0.0,90.0,0.0,0.0,-0.095,0.0
Bow (B25 Archer),6831,B25ArcherBow,Bow2,Bow2,???,???,3.0,6.0,-91.0,-0.2951,-0.587,-0.0767
# Mace (V4 Battle Maiden - DAZ)
Mace (Battle Maiden),9833,GermanMace,GermanMace,GermanMace,???,???,-6.0,18.0,0.0,0.2947,-0.5838,-0.0523
# Scimitar (Blood Bound from DAZ) ...this has two possible hand grip positions.*
Scimitar End Grip (Blood Bound),11126,M3DBBscimitar,M3DBBscimitar,BB_scimitar,???,???,-3.0,23.0,-178.0,0.293,-0.5942,-0.0715
Scimitar Back Grip (Blood Bound),11126,M3DBBscimitar,M3DBBscimitar,BB_scimitar,???,???,-1.0,-29.0,185.0,0.2888,-0.5171,-0.2697
# Courageous for V4 (DAZ) ... the rotations for these were a PITA too !
Shin Knife (Courageous),5061,v4c-kshin,v4c-kshin,v4c-kshin,???,???,90.0,-94.0,90.0,0.0624,-0.1837,0.005
Thigh Knife (Courageous),7444,v4c-kthigh,v4c-kthigh,C-KnifeThigh,???,???,90.0,-100.0,90.0,0.0768,-0.3055,0.0001
Rapier (Courageous),33079,v4c-rapier,v4c-rapier,C-Rapier,???,???,193.0,-72.0,211.0,-0.0713,-0.4708,-0.0126
*The Blood Bound Scimitar auto-matches the first line, so if you want to use the second one you have to cancel the match and manually select from the list. It's a looong list now !
I'm happy enough now that the procedure's more or less complete. The only thing that's really missing is automatically writing the dataline to the SmartPlusData.txt file, and I'm working on that*
And then updating the DAZ Studio version to match of course.
And then releasing both I guess ?
*The basics of the automatic file update (i.e. writing a new line at the end of the HANDPROXYDATA section) are more or less working in my Poser development version. I'm now working on checks to see whether there's already a line for the prop (i.e. by simply comparing the vertexCount and geometryFilename) - this should allow me to automatically add the missing Poser parameters to a dataline that was created from the DAZ Studio scripts (i.e. with the '???' fields).