Yes, that is true. Stuff that should be inherently and implicitly iterable, is not, when accessed from MAXScript.
I had to find out the hard way, so here I am sharing my findings and solutions so that you don’t have to waste time on this nonsense issue.
The problem I bumped into some time ago was when I tried to access Management Object Searchers in my code (for finding various HW IDs and serial numbers). When you call a dotNET iterable (or a collection) in MAXScript, you automatically assume you can iterate over its contents, just like with an array, for example.
Somebody at Autodesk decided that this isn’t the behavior you’d like and instead made you having to jump through hoops and obstacles to get to the object contents.
Anyways, lets look at this problem on a rather simple example of using Hashtables in MAXScript:
I just realized that after seeing what Autodesk has been doing to the (at the very least) DCC software packages for a long time now.
They just can’t write good software. Nothing breath taking, let alone revolutionary. Just look at it. All they sell is software they bought from really smart and bold developers in the past. Then they pretty much kept it the same way it had been, including all the bugs, quirks and issues, but slapping on fancier and fancier GUIs they also bought or licensed from someone else (Qt anyone?). They don’t have the balls, even though they pretty much have a monopoly on the DCC field. Pussies.
Seriously, when was the last time you were excited a new version of anything from Autodesk is coming out soon? I haven’t. Hell, I haven’t been even excited about their betas in a long while. Autodesk doesn’t listen to the users, they don’t care much about the old time power users either. They just don’t give a shit, in my opinion.
So, with all seriousness, I’m truly considering cancelling my subscription and just don’t give a shit back.
Do you remember my post about repathing 3ds Max assets in the .max and .mat files without actually running 3ds Max? Well, I cooked up a little utility that can be run from the command line without any IronPython installed. You can use this simple exe file to repath or simply just list all your external asset paths inside your .max and .mat files, should you need to. And since it’s a command line utility you can run it from within your programs and catch the outputs or batch feed it data for processing etc…
Anyways, the syntax is pretty simple:
You need to call the program and then pass it a .max or .mat scene file. If you provide only that, it’ll list the file’s asset paths. But if you provide a -p parameter followed by a new path, it’ll re-path all the file’s external assets to the new location you provided. Unfortunately, there is no way for me (afaik) to distinguish what is an actual render output or RE output and what are texture or cache data inputs, so everything will be linked to the new directory at once.
Should you need any help, just call the program without any parameters, or with the parameter -h for help.
Download the program from here.
Another one of those little things that can save up a ton of time in day to day productions.
I’ve added a simple “render with 3ds Max” shortcut to my right-click menu, so that I don’t have to open up Max if I need to render a scene. This actually came in handy on the current project where I was modifying a few scenes and re-saving them. Then I went through a few of them manually and needed to render them out quickly for reference. No need to actually run Max, open the scene, hit F9… it was all setup, I just needed to render them out.
If you want to modify your right-click menu this same way, just modify this registry key (3ds Max 2013 in this case):
Windows Registry Editor Version 5.00
@="Render with 3ds Max 2013"
@="\"C:\\Program Files\\Autodesk\\3ds Max 2013\\3dsmaxcmd.exe\" \"%1\""
There would be no fun without VFX!
I was shocked and very pleased to hear that Shotgun Software decided to unify their pricing and bring it down to $49 USD per month per user with the API! How awesome is that?!
That brings me to a thought of actually releasing our duberPython plugin for a ridiculously low price so that EVERYONE can use Shotgun and our Python module in their pipeline!
Let me know what you think, guys and I’ll prep the installations in the meantime.
As you may know, Nuke 7 is out and one of its very exciting features are the new re-lighting tools.
However, I’ve bumped into a bit of a problem. Since I’m primarily a 3ds Max user, all my world render passes are Z-up oriented. This is a bit of an issue, since Nuke is, more commonly, Y-up oriented.
Fret not! There is a rather simple solution. The ColorMatrix node, nobody seems to care about. All you need to know, if you’re not much into math and shit, is that in order to properly convert the RGB values representing the XYZ space coordinates in Max into Nuke’s world space, just type in these values:
- In the first row, type in: 1,0,0
- In the second row, type in: 0,0,1
- In the third row, type in: 0,-1,0
Or just look at the picture above.
Done! This is all you need in order to start re-lighting your renders in Nuke using 3ds Max’s World Point passes.
I’ve been extremely busy recently, thus the updates on this blog have been, well, nonexistent.
I promise I’ll write about some really fucking exciting shit (oh yeah: Max, Mari, Nuke…) pretty soon, but I’ll have to deliver two more TVCs this and early next month. So, possibly right after that.
Stay tuned, you won’t be dissappointed, I promise. Cheers…
Just a shout out to those who downloaded my RV Explorer integration Python script.
I’ve updated it so that RV now accepts file sequences with various leading zero lengths as I bumped into this issue myself recently.
Hope I haven’t caused you too much trouble.
Here’s the updated script: v0.3
Ever since I read this blog post on the Area, I was intrigued to get this working in an IronPython environment (that’s pretty much all I know, in the “serious programming” area). Unfortunately for me, the article mentions C++, OLE and COM. Which are my least favourite technical subjects.
So, now when I finally really needed this solution (more on that some time later), I had to ask on the Autodesk forums.
Luckily I got an answer. But first off, huge thank you goes to Larry Minton, an Autodesk Engineer, without whom I wouldn’t have been able to get this thing going.
Now, about the problem. If your facility has a render farm and you happen to work off of your local storage, you have to point your assets to a UNC path where they’re stored so that all the machines on the network can find and load them when rendering. There are many ways of doing this and usually your pipeline TDs had figured this one out prior you even starting any work on the project. Unfortunately for me, I’m the only pipeline TD here. So I had to figure out a way of re-pathing my assets in 3ds Max scene files prior to rendering.