Topics by tag:
Recently published articles by Dave G:
I was looking for a plug-in or script to overwrite ZBrush saves without prompt (still haven’t found one) and found this pretty sweet plug-in that lets you hold a single modifier to change the hardness and the brush width for brushes, Photoshop style:
Aside from the texture path bug for Windows machines that’s been fixed, I’ve been steadily adding things to Mari Me (Download) that I think will be welcome additions:
From the changelog:
Also, I’ve added a Utilities menu where I’ll start to add things that you’ll want to do inside of Maya for a workflow that involves Mari. Stuff like this UV Tile GUI to move and maximize UV shell space across UDIMs:
and I have put my AutoTileMe script in the Utils menu as well:
It now graphs the File node network at the end so you can see the structure and clearly know which to connect to your shader (the top one in the hierarchy).
Lastly, the Just Save OBJs script in the Utilities menu saves out an OBJ for selected objects to a project/GoZ folder for use with Mari (or ZBrush) with nothing sent to Mari. I’ll eventually update that to work with the smoothing and displacement options.
So, after tiring of Mari’s new project panel and its non-OS version of its open dialog, I decided to make a script (Download here) that sends the selected mesh from Maya to Mari for painting. It has some nice options that I think will be welcome:
The features are shown in the video here:
If you don’t choose to send an existing texture, it will create a 50% grey “color” channel that is set to the resolution of the slider, which snaps to Mari’s supported resolutions.
I added the ability to send a tessellated and displaced mesh even though I know that Mari does displacement previews but these don’t use your actual values from your existing Maya model so this script creates a mesh that is closer to what will render. It’s not the best solution since the geometry can be really jaggy but it’s better than nothing. Just make sure you only run this displacement script on cage-type geometry because it smooths the mesh and then tessellates so it will extremely slow if it’s a already high-ish res mesh.
As you can see from the video, I originally made this script to send Python to the clipboard since I didn’t see any documentation for the command port that is used by Nuke to talk to Mari but there was an example script that showed that it receives straight Python. So my script does all the gross code escaping and wraps the Python commands in a single line and passes it to Mari.
To get the script to speak to Mari, you need to make sure that Mari’s command port is open to the default port of 6100. This is in the Scripts portion of the Mari preferences.
The only limitations to the script right now are that it needs to have a relatively simple material applied to the selected mesh – it will simply fail if you have a V-Ray Blend Mat applied to it, for example – a fix for this will come soonish. You also have to have a mesh selected when you run it. Also, textures are currently sent only as RGB, with no scalar option. This will come later and I’d like to add an auto-detect for the applied texture res for the slider. Tiled mats are not supported – obviously that is a dealbreaker for many but hopefully I can get that working some time in the future. I haven’t tested it in Windows or Linux but it should work fine. The exported meshes are stored in a project_path/GoZ/ folder because I didn’t want to create a different folder for OBJs that I use with my ZBrush meshes.
Slowly getting my brain to function after the loss of my dad and put up new V-Ray Tuner version with some features:
5 notes | Permalink
If you tweak cage meshes in Maya that are to be subdivided and displaced, you end up worried about a couple things: what will happen to your seams when you do that tweak and what is the displacement going to do when applied to your tweak? As I mentioned in an earlier post, you can do a polygonal displacement preview but sometimes it is sufficient to just preview the displacement on your cage mesh in Maya. So I wrote a script that will be part of the next version of V-Ray Tuner that makes a temporary surface shader and applies the displacement map for the currently selected mesh as the diffuse colour. If you run it again, it switches back to the original shader and deletes the temp surface shader – no crap left around.
One nice feature of this script is that it uses the same file node as your material so even if you change the link to a new file you might have touched up, it will update the original shader’s displacement file node even though you are previewing the surface shader. I hope you find it useful.
Grab the script here. It works with all renderers.
5 notes | Permalink
The latest version of V-Ray Tuner is out now. 3.5 includes some
A lot of people wonder why I use a Mac to do 3D. There are more 3D apps for Windows, Linux has faster OpenGL speeds than both other the OSes that Maya runs on and the hardware choices are more limited. Well, this script sums up a lot of why I use it: incredible scriptability and a bridge between GUI tools like Spotlight search and the command line. If you read my article Creating the Ultimate Creative User OS, then you know what I’m talking about. OS X has all the command line goodies of Linux but it also has its own great tools like Spotlight that has a command line equivalent built into OS X (it’s called mdfind) and it is infinitely faster than the find command in Linux distros and OS X. So, after getting tired of hunting down linked media in an old Maya scene that had links to old hard drives, moved stock image folders, etc., I made a script that uses mdfind to quickly track down the media by name, take the first result and make a MEL command file that you then drag into the Script Editor to do your relinking:
The script obviously assumes that your files are intelligently named. You’re not going to want to use this if you have a ton of different textures are all named “file.tif” but if you have unique names, this should save you a ton of time if you’re on OS X.
Anyway, without further ado, here is the script.
Update: If you tried the script and it failed, grab it again because the previous one had a call to a “MergeVerts” function which is just a personal alias to MergeToCenter.
So, after years of having a hard time finding cameras and knowing where they are pointing, I decided to make a script that would give Maya a Nuke-style 3D camera frustum preview that is parented to the camera. It will accurately reflect what is shown in the camera according to it’s FOV/viewing angle. I’m pretty pleased with the result and I had to dig up some old trigonometry that I haven’t done in ages to calculate the face side lengths. Most of my other scripts are just tasks and variables, so to all you proper engineers – fear my grade 7 math!:
Anyway, grab the script here and run “makeFrustum;”, select a camera and go nuts. The only caveats are that it doesn’t work with vertical fitting, only the default horizontal. If you want to delete the frustum, it’s just under the object in the Outliner:
It’s templated, so that’s why it’s orange and it won’t show up in renders. In the future, I may look into making it update live but that would likely involve API stuff and Python.
0 notes | Permalink
Updated: now supports vertical UDIM tiling and textures from Mudbox.
I’ve been avoiding using multiple UV tiles for a long time since the workflow can be pretty annoying and there is a lot of room for human error but, with the coming of Mari on the Mac, I have been using them finally and developed a script to handle the creation of multi-UDIM tiled textures in Maya:
Grab the script here. The hooking up of the textures is based on this post on CGSociety, where it’s shown how you can completely avoid the layered texture workflow by just daisy-chaining the out colour of one texture into the default colour slot of the next. My script then reads the filename of the texture and guesses its frame offset (U/horizontal only for now) by the number before the file extension – if it’s colordust.1003.tif, then it’s assumed it’s offset by two U tiles. It also disables UV wrapping on the 2D texture nodes. When the connections are done, the top-level texture (that needs to be connected to your shader) is selected. This workflow works with any renderer. I’ve also updated it to support vertical UDIMs:
Important: the script relies on these two standard naming conventions: filename.1031.tif (name, dot, number, dot, extension) for Mari and Material1_Flattened_Diffuse_u2_v1 (name and then tiles appended to end) for Mudbox. These are the defaults so you shouldn’t have any problems but the script won’t work if you change the dots in the Mari name or the underscores in the Mudbox one.
Just a note that renderers like V-Ray and Arnold support UDIM and Mudbox-style tiles – see V-Ray docs here but those only appear at render time. You don’t get a preview in Maya since it doesn’t recognize the filename.UDIM.tif format. Thanks to Roman Lapaev for pointing this out though.
4 notes | Permalink
Every time a new Maya version comes out, it seems that ZBrush’s GoZ script gets broken and Pixologic hasn’t released a fix for GoZ and Maya 2014. So I made a sort of GoZ-ish script that isn’t as fully-functional as the Pixologic one – it doesn’t handle creases, for example – but at least it lets you work seamlessly between 2014 and ZBrush again. Grab it here. The script works by saving out an OBJ file to your current projects folder/GoZ folder (it makes this directory for your) and then using the OS to open that file with ZBrush. Fortunately, sending from ZBrush to Maya 2014 works the same as in older versions, so this can be used for round-tripping between the two apps on OS X:
and on Windows:
On Windows, you’ll need to configure OBJ files to open with ZBrush but on the Mac it’s handled by the script so you don’t need to do this—BUT Mac users do need to set the correct version of ZBrush in the script since it’s hard-wired to ZBrush 4R6. I did this because I use GoP, my send-to-Photoshop script and that depends on OBJ ownership. In the future I might make the ZBrush version variables with a dropdown menu or do an auto-detect.
To run the script, install it in your script folder run “GoZ_2014;” – put this command for your shelf for easy access. This is what you will use from now on instead of Pixologic’s GoZ script until they fix it for 2014. But you will likely need this script again when 2015/2016/etc. breaks GoZ yet again, since GoZ actually uses the Maya ASCII format as the go-between. This solution is future proof since OBJ isn’t going anywhere and the spec isn’t going to change.
Important note: ZBrush still sends meshes back to Maya with “Visible in Reflections/Visible in Refractions” off in the mesh shape’s properties. Remember to turn these on for proper rendering. Both my V-Ray Tuner and Facer scripts have this “objFix” script in them but here it is if you want it solo.
Mac users might notice that I’m running the Mavericks GM on my OS X machine. I’ll be doing a “what works and what doesn’t” style post for 3D people looking to upgrade when it launches. And I’ll be doing a full review of the coming Mac Pro for Ars Technica, which ships with Mavericks pre-installed.
4 notes | Permalink