1. #1
    New Member Follow User Gallery
    Join Date
    Apr 2013
    Posts
    26

    Default Script suspended without any error shown

    I wrote a simple script as following:
    1, select one subtool;
    2, TPoseMesh it;
    3, import aother .obj mesh to the TPoseMesh created in step 2;
    4, TPose->SubTool

    When I run every step separately, they work fine. But if I put them together and run then fail. In exactly, the script's suspended after step 2. Could someone explain this to me? I'm very confused now.

  2. #2
    New Member Follow User Gallery
    Join Date
    Apr 2013
    Posts
    26

    Default

    Here's my little script:

    [VarDef,SubToolCount,[SubToolGetCount]]
    [VarDef,counter,0]
    [Loop,1,
    [SubToolSelect, counter]
    [VarSet, subToolName, [IGetTitle,Tool:Item Info]]
    [VarSet, subToolName, [StrExtract,subToolName,0, [StrLength,subToolName]-2]] // trims off end period '.'
    [IPress, Zplugin:Transpose Master:TPoseMesh]
    [SubToolSelect, 0]
    [Note, subToolName, , 1]
    //[FileNameSetNext, "G:\Project\3D_Project03\UMREAL\Pose\pose03\UHead. obj"]
    [FileNameSetNext,[StrMerge,"G:\Project\3D_Project03\UMREAL\Pose\pose 03", subToolName, ".obj"]]
    [IPress,Tool:Import]
    [IPress, Zplugin:Transpose Master:TPose>SubTool]
    //[Note, subToolName, , 1]
    [VarSet, counter, (counter+1)]
    ]

  3. #3
    Senior Member Follow User Gallery
    Join Date
    Feb 2015
    Location
    Paris
    Posts
    263

    Default

    I can't to test out myself you script, but
    a Coma is missing before the loop counter.

    [Loop, RepeatCount, Commands group, Optional loop-counter variable
    (starts at Zero)]

    should be :
    [VarDef,SubToolCount,[SubToolGetCount]]
    [VarDef,counter,0]
    [Loop,1,
    [SubToolSelect, counter]
    [VarSet, subToolName, [IGetTitle,Tool:Item Info]]
    [VarSet, subToolName, [StrExtract,subToolName,0, [StrLength,subToolName]-2]] // trims off end period '.'
    [IPress, Zplugin:Transpose Master:TPoseMesh]
    [SubToolSelect, 0]
    [Note, subToolName, , 1]
    //[FileNameSetNext, "G:\Project\3D_Project03\UMREAL\Pose\pose03\UH ead. obj"]
    [FileNameSetNext,[StrMerge,"G:\Project\3D_Project03\UMREAL\Pose\pose 03", subToolName, ".obj"]]
    [IPress,Tool:Import]
    [IPress, Zplugin:Transpose Master:TPose>SubTool]
    //[Note, subToolName, , 1]
    , // loop counter
    [VarSet, counter, (counter+1)]
    ]
    Plugins & Toolsets for Zbrush 4R8 : zCycler Pro | Plugin Manager |Matiere 3d | Twitter | @Facelessmindz

  4. #4
    New Member Follow User Gallery
    Join Date
    Apr 2013
    Posts
    26

    Default

    thanks for noted, f☺celess. But I tested it again, seems it's not comma's reason.


    And I executed above steps by hand and recorded then export as txt file. When I check it I found there are many other scripts inside not only TPoseMesh or Import thing. Does it mean one simple command in ZBrush including many other script and shall copy them into my script?

  5. #5
    Moderator Follow User Gallery
    Join Date
    Jun 2004
    Location
    UK
    Posts
    11,462

    Default

    Hi heroineism,

    Unfortunately ZBrush only allows one zscript or plugin to be active at a time. This means that if you press a plugin button in your script then control passes to the plugin and your code stops running. There's no way around this.

    Recording a zscript while using a plugin like Transpose Master will record some of the plugin's workings but not all, as some of the code is executed in a dynamic library, so playing back the recording will not give the same results.

    HTH,

  6. #6
    New Member Follow User Gallery
    Join Date
    Apr 2013
    Posts
    26

    Default

    Thanks marcus_civis, it's a bad news for me while it's still an good explaination to my question. Look forward to next update of ZScript.

    BTW, this script is for manually execute GOZ back from Maya to ZBrush. Because sometimes GOZ didn't work for me with warning as wrong name or missing something, I don't know why. But if I export transformaed mesh as obj file then import this file and replace TPoseMesh of the corresponding subtool, then execute TPose>SubTool, the reasult is exactly same as GOZ back from Maya. I just wandering why GOZ can't work with same logic as above.

  7. #7
    Senior Member Follow User Gallery
    Join Date
    Feb 2015
    Location
    Paris
    Posts
    263

    Default

    damn you're right marcus, it not always make sense to me

    Heroineism you can still split your code into two functions "[RoutineDef/call ]".

    The first function gather data into vars that you save on the disk with varSave

    then you finish with the [IPress, Zplugin:Transpose Master:TPoseMesh]

    the second function , get the var using VarLoad
    then you can apply the you code and finish with [IPress, Zplugin:Transpose Master:TPose>SubTool]
    Plugins & Toolsets for Zbrush 4R8 : zCycler Pro | Plugin Manager |Matiere 3d | Twitter | @Facelessmindz

  8. #8
    New Member Follow User Gallery
    Join Date
    Apr 2013
    Posts
    26

    Default

    Thanks f☺celess for your suggestion. But my goal is to make a loop of every subtool and to perform TPoseMesh -> Import obj -> TPose>SubT process, automatically. Since once running TPoseMesh plugin will stop my script and the loop either, the script has no meaning anymore.

    And I also found, I can't locate that plugin button "Zplugin:Transpose Master:TPose>SubT"(or TPose>SubTool) in IPress or ButtonPress, I got only error if I perform these command. I don't know why.

  9. #9
    Senior Member Follow User Gallery
    Join Date
    Feb 2015
    Location
    Paris
    Posts
    263

    Default

    yes you're right, especially with the Tpose function that can't to work.

    The path of the button you are looking for, if you do a CTRL and the cursor hover the plugin button you can get the path of the it so the "zplugin:Transpose Master:TPoseSubT" in your case.
    Plugins & Toolsets for Zbrush 4R8 : zCycler Pro | Plugin Manager |Matiere 3d | Twitter | @Facelessmindz

  10. #10

    Default

    Yes, I have tried many formats of this path like "Zplugin:Transpose Master:TPoseSubT" or "Zplugin:Transpose Master:TPose>SubT", but just get an error as following. Totally confused.


  11. #11
    Moderator Follow User Gallery
    Join Date
    Jun 2004
    Location
    UK
    Posts
    11,462

    Default

    Hi heroineism,

    Normally doing as f☺celess says and holding Ctrl to see the button path will give you the right path but Transpose Master uses a trick to get the arrow in TPose>SubT. ZBrush displays the pipe character '|' as an arrow on the button (but doesn't display it at all in the button path shown with Ctrl, which is unfortunate). Anyway, the correct path is:
    "ZPlugin:Transpose Master:TPose|SubT"

    HTH,

  12. #12
    New Member Follow User Gallery
    Join Date
    Apr 2013
    Posts
    26

    Default

    Thanks marcus, that's really tricky...

    And I just found I don't need TransPoseMaster anymore, all I need to do is to import obj into the lowest level of the subtool and make a loop for each subtool. It's quite simple than I thought.

  13. #13
    New Member Follow User Gallery
    Join Date
    Dec 2016
    Location
    Malta
    Posts
    16

    Default Controlling transpose master

    I've been having some similar trouble in regards to pressing UI buttons belonging to transpose master, it seems that from what i read in this thread there is no way to control transpose master??? I have a pre assembled zsphere rig and I just wanted to automise the following process:
    - having to import the rig
    - clicking on "storeTM rig"
    - switching to my character subtool
    - clicking on "PasteTM rig"
    - clicking on "TPoseMesh"
    - clicking on "TPose|SubT"

    Is there no way of achieving this?

  14. #14
    Moderator Follow User Gallery
    Join Date
    Jun 2004
    Location
    UK
    Posts
    11,462

    Default

    Quote Originally Posted by GrinningGecko
    I've been having some similar trouble in regards to pressing UI buttons belonging to transpose master, it seems that from what i read in this thread there is no way to control transpose master??? I have a pre assembled zsphere rig and I just wanted to automise the following process:
    - having to import the rig
    - clicking on "storeTM rig"
    - switching to my character subtool
    - clicking on "PasteTM rig"
    - clicking on "TPoseMesh"
    - clicking on "TPose|SubT"

    Is there no way of achieving this?
    No, you can't do that using zscript. It's not possible to control a plugin using zscript because only one plugin/macro/zscript can be active at a time. The moment your script presses a plugin button control passes to the plugin and the rest of you script will not run.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •