[Closed] Can MaxScript control every tool and parameter in Max?
Can MaxScript control every tool and parameter in Max?
Hi all.
Sorry for the dumb question, but how powerful is MaxScript? I mean, is it a full featured programming language and can it control every tool and parameter in Max?
Thanks in advance. -Mike Pauza
Yes and no. It is very powerful (in some areas it is more capable than MEL), but it does NOT have access to every tool in Max, mainly because, just like Lscript, it was added on top of the application as opposed to being at the core of the application (as with MEL+Maya).
There are a few things you cannot access just because they were programmed back in Max 1.0 when there was no MAXScript around, and have been implemented in a way that makes exposing them too difficult or impossible. For example, you cannot control the Video Post Queue AT ALL, you cannot set parameters in the Make Preview… dialog, you cannot create Loft Compound Objects (Loft was a whole sub-application of the old 3D Studio DOS, then it was converted to Max 1.0 by the original programmers and never touched again, so unless somebody would rewrite it to support ParameterBlock2 and/or Function Publishing Interfaces, it is a closed area). Most Utility Plug-ins (last tab in command panel) cannot be controlled fully because they are sort of running inside of Max, but are not really part of the system.
Still, there are very few things you cannot achieve with MAXScript, and the moment you hit a wall, the Max SDK becomes your friend – you can develop some functionality there using C++ and expose it to MAXScript or just stick to the plug-in…
Thanks for the reply Bobo.
It sounds like MAXScript is a lot more powerful than LScript even though they were developed in a similiar fashion.
So I guess it’s safe to say that most of the core functionality of MAX like individual vertice control, bones, textures, fields, etc. is controllable via script?
Thanks again. -Mike
Yes, you can write very complex tools with Max script. It is also some what object oriented and poly morphic if you get into using structs. You can also write scripted plugins like your own object types that are drag and drop, or modifiers and materials as well. Bobo has managed to write node based schematic views with Max Script alone, how he did that I will never know. You also have access to active X controls for more advanced UI controls.
Oh, and I wrote a raytracer (slow, but working!) purely in MAXScript, it will be featured on my next DVD
sounds very interesting bobo – thats a dvd i would be interested in – can you reaveal what else will be covered on it?
mark
It is called “The Matrix : Explained” and is intended to SHOW how vectors and matrices work without the need for background in mathematics.
It will cover the basics of vectors in multiple dimensions, simple trigonometry, basic vector operations like additions, scalar multiplications, dot and cross product in the practice, a very visual explanation of barycentric coordinates in theory and practice, ray values and mesh intersections in practice, combining the intersectRayEx and barycentric coordinates to find texel color based on UV coordinate interpolation.
Then we’ve got the basics of Matrix3 values and operations with them – converting Point3 values in different coordinate spaces, matrix rotations, matrix multiplications, finding whether an object/particle faces another object, converting world to local coordinates including the manipulation of Modifier Gizmos, conversion of world into viewport/camera coordinates and back, getting the right vertex coordinate from a mesh at different leves of the stack (base object, top of the stack before transformations, top of the stack after transformations, top of the stack after Space Warps) etc.
Finally, the basics of rendering starting with basic diffuse shading and lighting and slowly adding support for specular hightlights, spotlight cone falloff, raytraced shadows, raytraced reflections, texures (both bitmaps and basic procedural texture support as 2D maps) etc. I am recording this last part right now and it will depend on the total running time and how much I really want to include…
Since most of the rendering is a practical implementation of what was discussed earlier about vectors and matrices, I think it is a nice example to have
I was thinking about pitching you on another publisher, but it sounds like your very happy with cg-academy.net.
Good luck with your dvd. If I get the job I’m interviewing for tomorrow I’ll buy at least one.
Thanks Bobo. -Mike
To both Bobo and Paul,
I’ve purchased all of your DVD’s and found them simply amazing. I am a classically trained painter that picked up 3d on a whim, but soon found myself engrossed. I assumed that any kind of scripting would be excruciating, but your DVD series made it make perfect sense. So thanks for sharing your skills, I look forward to your next releases. By the way, I know you each have another DVD coming out soon, any idea when?
Thanks, dude!
As far as I can tell, Paul’s next DVD will come out first, then a week or two later should be mine. I intend to finish recording by the end of this week and then it depends on CG-Academy to add the final magic touches, additional illustrations, cover art etc. I hope it will be around the end of this month, but please don’t quote me…
Stay tuned!
I find it really frustrating that I can’t do simple stuff like extrude a face with maxscript. I’m sure you could use the coordinates of a face to build a new face and thus get the same result as extruding, but I’m not really experienced enough in maxscript to get that working.
I don’t see the problem – the MAXScript Reference even has example code on how to use meshop.extrudeFaces(). The resulting image is even features on the Introduction page.
In addition, there are a couple other ways to do face extrusion, including a mesh Select modifier to select a face and an Face_Extrude modifier to extrude the selection, the old extrudeFaces() method in the Editable_Mesh, the Editable_Poly extrudeFaces() method and the PolyOp.extrudeFaces() method. Some of these also have examples and illustrations.