Reply
Reply
 
Thread Tools Display Modes
Norman3D's Avatar
Old (#1151)
Quote:
Originally Posted by Kwramm View Post
getting my hands dirty with C++ and ZScript and managed to write a C++ DLL which I can load in a ZScript with FileExecute.... which then continues to host a .NET CLR with a loaded C# dll, which then launches a Python script (we use the same C# dll from Max).
C# talks to Python via ZMQ (thanks to Rob Galanakis for mentioning ZMQ). For the RPC calls JSON-RPC is used.

So far I can launch a Python script from ZBrush, cpp, Python, 3ds Max, Photoshop Extendscript and then call remote procedures either from Python or from the host app. Still working on ZBrush now - so far it's just one-directional communication, until I figure out if I can use the Sleep command for polling.

The idea is to have a universal communication library for RPC calls to a Python script which is launched by a host app. E.g. we can then put all the business logic of statistics, QA or file management scripts into python. Or we can just extend the app itself using Python.
Anyway, there's little to show as it's just a bunch of DLLs and scripts with text output, but if someone is crazy enough to attempt something similar... just ask
Hey Kwramm!

There was an undocumented function of the ZfileUtils.dll that allows you to launch any kind of program or pyhton script. I found the function while inspecting the dll with some tools, hehe.
I can't remember the function right now, but once I get home I'll let you know! I'm not sure how happy Pixologic will be about it!
I used to launch UVLayout from within Zbrush and send the meshes to the program.

I don't think you'll be able to use the sleep command for much other than "freezing" Zbrush for a some time. The way I handle bi-directional communication is to bind a Zscript to a specific hotkey.
This zscript will then load the contents of a txt file and evaluate them on runtime. This way you don't need to compile the script on zbrush startup and you can change the commands that you want to be evaluated on-the-fly in the txt.

So in order to run a command from an external application what you need to do is to change the TXT file and then send the hotkey combination to the Zbrush window so that the zscript starts.
Offline , spline, 153 Posts, Join Date Jan 2008,  
   Reply With Quote

Kwramm's Avatar
Old (#1152)
Thanks for the tip with the hotkey. I'll try that if sleep doesn't work.

Launching processes via ZFileUtils sounds useful too, although not for my current needs. I go via my own dll for launching Python because I want to monitor the process, I have to pass a port number to Python for socket communication, I have to tell it what the host app is (e.g. Max, ZB, other) so I can parent the Python UI and / or make it stay on top, minimize with the host app, etc. and I also want the host to know when the Python process quits (either crash or user closes the window).

Ideally you can have part of a tools UI in the host app (e.g. Max) and part of the UI written in Python. You can drive the host via Python or you can drive the Python app from the host via RPC calls in either direction.

I really want to avoid using a txt file but I could trigger a hotkey, and then poll for a waiting command from the Zbrush side via my dll. A bit hackish though... but why not.

How did you send meshes to UVLayout btw?

Last edited by Kwramm; 08-09-2012 at 06:47 AM..
Offline , dedicated polycounter, 1,607 Posts, Join Date Sep 2009, Location Virtuos Games @ Shanghai Send a message via MSN to Kwramm Send a message via Skype™ to Kwramm  
   Reply With Quote

Norman3D's Avatar
Old (#1153)
Quote:
Originally Posted by Kwramm View Post
Thanks for the tip with the hotkey. I'll try that if sleep doesn't work.

Launching processes via ZFileUtils sounds useful too, although not for my current needs. I go via my own dll for launching Python because I want to monitor the process, I have to pass a port number to Python for socket communication, I have to tell it what the host app is (e.g. Max, ZB, other) so I can parent the Python UI and / or make it stay on top, minimize with the host app, etc. and I also want the host to know when the Python process quits (either crash or user closes the window).

Ideally you can have part of a tools UI in the host app (e.g. Max) and part of the UI written in Python. You can drive the host via Python or you can drive the Python app from the host via RPC calls in either direction.

I really want to avoid using a txt file but I could trigger a hotkey, and then poll for a waiting command from the Zbrush side via my dll. A bit hackish though... but why not.

How did you send meshes to UVLayout btw?
ahh! I see! Sounds exciting!
I can't remember right now, but I think all I had to do is send the path to the obj as an argument to the UVLayout.exe
Offline , spline, 153 Posts, Join Date Jan 2008,  
   Reply With Quote

nyx702's Avatar
Old (#1154)
Quote:
Originally Posted by Talon View Post
This is a What Are You Working On thread... not a what's your thoughts on this, thread.

Jeesh alittle unnecessary?

Thinking can be work. That is what bloody designers get paid to do.


Norman3D That is awesome! Any chance you are ever going to share that? Roadkill would be pretty awesome too.

EDIT: Nevermind. I see that you did! Super cool. Roadkill would still be pretty awesome.

Last edited by nyx702; 08-09-2012 at 07:09 AM..
Offline , polygon, 541 Posts, Join Date Jan 2011, Location Raleigh NC  
   Reply With Quote

Norman3D's Avatar
Old (#1155)
Quote:
Originally Posted by nyx702 View Post
Jeesh alittle unnecessary?

Thinking can be work. That is what bloody designers get paid to do.


Norman3D That is awesome! Any chance you are ever going to share that? Roadkill would be pretty awesome too.

EDIT: Nevermind. I see that you did! Super cool. Roadkill would still be pretty awesome.
Ah thanks! I'm still looking for a bit of time to have another look at the UVLayout plugin. I tried it on ZB4R4 and it didn't seem to work!

A Roadkill plugin should be easy to do as well
Offline , spline, 153 Posts, Join Date Jan 2008,  
   Reply With Quote

Kwramm's Avatar
Old (#1156)
Quote:
Originally Posted by Norman3D View Post
ahh! I see! Sounds exciting!
I'm surprised that it's working pretty well so far. Even making DLLs for Photoshop and ZBrush turned out to be less difficult than I thought it would be. But yes, it's a pretty cool project. I hope we soon have some scripts using this, other than the tests/demos I made so far.

Quote:
Originally Posted by Norman3D View Post
I can't remember right now, but I think all I had to do is send the path to the obj as an argument to the UVLayout.exe
oh that's easy then. It sounded more exciting the way you worded it before ;)

Thanks again for the hotkey tip. I wouldn't have thought of that.
Offline , dedicated polycounter, 1,607 Posts, Join Date Sep 2009, Location Virtuos Games @ Shanghai Send a message via MSN to Kwramm Send a message via Skype™ to Kwramm  
   Reply With Quote

osman's Avatar
Old (#1157)
Working on a small cover system in Unity, and will probably do some tools for it as well.
www.gameartist.nl
Environment Artist - Guerrilla Games
Offline , polygon, 533 Posts, Join Date Aug 2005, Location Netherlands Send a message via MSN to osman  
   Reply With Quote

cupsster's Avatar
Old (#1158)
@osnam nice! is there more info about this somewhere? I suppose that that player cube is autoaligining itself with snap to edge if you move to side..
Offline , triangle, 349 Posts, Join Date Jan 2010, Location Slovakia Send a message via Skype™ to cupsster  
   Reply With Quote

osman's Avatar
Old (#1159)
I started doing this yesterday, so this is pretty much all of it atm.

Right now it will detect the angle of the wall and make you slide towards it and snap to it. When you go left and right while in-cover and reach the end, it will stop you. That is where I'll have to make him be able to look around the corner or fire.

It works on pretty much any collision surface, but of course it's the best on flat surfaces.

And the slide distance/speed etc all can be tweaked to make it more subtle, and not so gears-of-war'ish.
www.gameartist.nl
Environment Artist - Guerrilla Games
Offline , polygon, 533 Posts, Join Date Aug 2005, Location Netherlands Send a message via MSN to osman  
   Reply With Quote

renderhjs's Avatar
Old (#1160)
uploaded 4 new videos today for new features and updates in shoebox that are partially already available or will be out in 1-2 days.

Masking flat images

Extract sprites update

Sprite packing update

JPNG bitmaps

I also added some documentation on the masking technique that I used the masking tool
http://www.renderhjs.net/shoebox/maskImage.htm
Step by step images explain how its done
  1. input
  2. difference blend
  3. optimized alpha channel
  4. Hard mask
  5. Color bleed
  6. Final composite
Offline , veteran polycounter, 3,037 Posts, Join Date Mar 2008, Location Sydney Australia Send a message via AIM to renderhjs Send a message via MSN to renderhjs  
   Reply With Quote

Froyok's Avatar
Old (#1161)
Working on a new Maya script :



The goal is to setup and send the mesh that you have in your scene directly to xNormal without using the default UI. The base of the script work, I need to support some other things (like Cages, blockers, FBX and SBM format).
I also need some optimization on the way I handle the xml file by the way (currently I rewrote it for every parameter).

Latter I will add more options for the textures (AO rays, and so on).

Last edited by Froyok; 08-29-2012 at 09:56 AM..
Offline , polycounter, 797 Posts, Join Date Jun 2010, Location Namur, Belgium Send a message via MSN to Froyok Send a message via Skype™ to Froyok  
   Reply With Quote

nyx702's Avatar
Old (#1162)
Good Lord! So awesome! Why hasn't this been done before?!

Please tell me you are going to make it for 3DMax too?
Offline , polygon, 541 Posts, Join Date Jan 2011, Location Raleigh NC  
   Reply With Quote

Froyok's Avatar
Old (#1163)
Quote:
Originally Posted by nyx702 View Post
Good Lord! So awesome! Why hasn't this been done before?!

Please tell me you are going to make it for 3DMax too?
I wish I could but I don't know the Maxscript language.
(And I'm not a fan of Max unfortunately)


[EDIT] By the way I'm not the first one to have done this :
http://www.polycount.com/forum/showthread.php?t=88710

But I handle that in another manner, that I prefer.
Offline , polycounter, 797 Posts, Join Date Jun 2010, Location Namur, Belgium Send a message via MSN to Froyok Send a message via Skype™ to Froyok  
   Reply With Quote

bk3d's Avatar
Old (#1164)
Been re-writing Ninja Asset 2.0. An asset manager for Maya.

http://www.creativecrash.com/maya/do.../c/ninja-asset






Offline , spline, 101 Posts, Join Date Sep 2011,  
   Reply With Quote

Froyok's Avatar
Old (#1165)
Hey @bk3d ! That's nice !
Do you allow to change the size of the thumbnails ?
Offline , polycounter, 797 Posts, Join Date Jun 2010, Location Namur, Belgium Send a message via MSN to Froyok Send a message via Skype™ to Froyok  
   Reply With Quote

Norman3D's Avatar
Old (#1166)
Quote:
Originally Posted by Froyok View Post
I wish I could but I don't know the Maxscript language.
(And I'm not a fan of Max unfortunately)


[EDIT] By the way I'm not the first one to have done this :
http://www.polycount.com/forum/showthread.php?t=88710

But I handle that in another manner, that I prefer.
Cool there is also a 3dsMax version that would also need a redesign in my opinion:
http://www.polycount.com/forum/showthread.php?t=65536
Offline , spline, 153 Posts, Join Date Jan 2008,  
   Reply With Quote

bk3d's Avatar
Old (#1167)
Quote:
Originally Posted by Froyok View Post
Hey @bk3d ! That's nice !
Do you allow to change the size of the thumbnails ?
currenly right now you cant change the icon size. For shaders you do have the option to render at different sizes. You can double click the image of the shader and it will open up the image in Fcheck. I will be implementing this for other asset types
Offline , spline, 101 Posts, Join Date Sep 2011,  
   Reply With Quote

Computron's Avatar
Old (#1168)
Froyok, awesome script! I hope someday 3DS max will ave something like that.

Anyway:



Spelling. Some stuff is also capitalized randomly.
Offline , dedicated polycounter, 1,440 Posts, Join Date May 2011, Location Minnesota, USA  
   Reply With Quote

Froyok's Avatar
Old (#1169)
Quote:
Originally Posted by Computron View Post
Froyok, awesome script! I hope someday 3DS max will ave something like that.

Anyway:



Spelling. Some stuff is also capitalized randomly.
Haha, I was a bit tired when I wrote that...

I will post an usable version soon, I have added the FBX/SBM format and I'm working on the blocker files.
Offline , polycounter, 797 Posts, Join Date Jun 2010, Location Namur, Belgium Send a message via MSN to Froyok Send a message via Skype™ to Froyok  
   Reply With Quote

nyx702's Avatar
Old (#1170)
Quote:
Originally Posted by Norman3D View Post
Cool there is also a 3dsMax version that would also need a redesign in my opinion:
http://www.polycount.com/forum/showthread.php?t=65536

Sweet man! Thanks for linking that!
Offline , polygon, 541 Posts, Join Date Jan 2011, Location Raleigh NC  
   Reply With Quote

cptSwing's Avatar
Old (#1171)
^ Does it still work? Have never seen it, nice find
Offline , polycounter, 1,280 Posts, Join Date Aug 2011, Location Berlin  
   Reply With Quote

Norman3D's Avatar
Old (#1172)
I have no idea, haven't had the time to check it out myself! I would be surprised if it still works and supports the latest versions of xnormal, it's from 2009! But you never know.
Offline , spline, 153 Posts, Join Date Jan 2008,  
   Reply With Quote

Norman3D's Avatar
Old (#1173)
Quote:
Originally Posted by Froyok View Post
Working on a new Maya script :



The goal is to setup and send the mesh that you have in your scene directly to xNormal without using the default UI. The base of the script work, I need to support some other things (like Cages, blockers, FBX and SBM format).
I also need some optimization on the way I handle the xml file by the way (currently I rewrote it for every parameter).

Latter I will add more options for the textures (AO rays, and so on).
One thing that would be useful is to be able to store the presets for each object in the scene. Not sure if you can do this in Maya, but in 3dsmax you sure can.
This way, in a work environment, other users can open 3dsmax files and re-render the maps with the same settings if needed.
Offline , spline, 153 Posts, Join Date Jan 2008,  
   Reply With Quote

Kwramm's Avatar
Old (#1174)
could add it as custom attributes to something that doesn't get exported, like one of the default cameras? Then there's no crap nodes floating around either. Haven't tried it though.
Offline , dedicated polycounter, 1,607 Posts, Join Date Sep 2009, Location Virtuos Games @ Shanghai Send a message via MSN to Kwramm Send a message via Skype™ to Kwramm  
   Reply With Quote

Norman3D's Avatar
Old (#1175)
Quote:
Originally Posted by Kwramm View Post
could add it as custom attributes to something that doesn't get exported, like one of the default cameras? Then there's no crap nodes floating around either. Haven't tried it though.
In max you could add it to the user defined properties of the object. This way, even if the object is merged to other scenes it will carry the xnormal preset. Maybe there is an equivalent in Maya, so there is no need to have extra nodes in the scene.
Offline , spline, 153 Posts, Join Date Jan 2008,  
   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Copyright 1998-2012 A. Risch