Friday, December 31, 2010

Happy New Year!

With this quick and short voxel animation greetings
I wish you happy and fun new year!

The script I wrote by the way to build and animate this voxels
I'll publish very soon (maybe tomorrow).


Tuesday, December 28, 2010

FBX batch exporter

The question (read here) is (quote): I need a script that will batch export a selection of objects in a scene as .FBX files named the same as they are in max and into the same folder as the max file.

...and here is my quick reply:
if maxFilePath != "" and selection.count > 0 do
savePath = maxFilePath
selObjs = getCurrentSelection()

for obj in selObjs do
select obj
FName = savePath + + ".fbx"
exportFile FName #noPrompt selectedOnly:true
...hope its useful. If you need to specifying FBX export settings, look into the MAXScript Reference for "FBX Export Dialog Access" topic.


Thursday, December 23, 2010

Merry holidays!

A lot of job come to my head for the Christmas holidays,
but I hope you celebrate twice as much in my stead :D

Merry Max'ing!

Design Christmas Balls

Modeling tutorial by Hani Mohammadi
on how to design christmas ball in Max.

Wednesday, December 22, 2010

Interactive Fracture System

Video tutorial by Tzahi (Isaac) Keshet.

Select objects with missing UV's

Prior to rendering or exporting to a game engine we need to see which objects will cause problems because of missing UV's. Louis Marcoux offer video tutorial on how to write script for that purpose.

Marcoux script (for explanation watch his tutorial):
for a in objects do
TotalUVNumVerts = 0
for b in 1 to (meshop.getNumMaps a.mesh) do
UVFound = try(meshop.getNumMapVerts a.mesh b)
catch(results = 0)
TotalUVNumVerts += UVFound
if (TotalUVNumVerts == 0) then selectmore a

Recently David Stokes share different approach which I like because it is more simple. He use node.mesh.numtverts test to collect objects with missing UV's.

Stokes script:

unmappedObjs = for obj in geometry where
obj.mesh.numtverts == 0 collect obj

I was afford to add an error check filtering improvements to his solution. So, because we call node.mesh (i.e. using TriMesh) we need to filter and exclude objects like particles, targetObject, ... we can filter the objects using getPolygonCount() function:
select (
for obj in geometry where
(getPolygonCount obj)[2] > 0 collect (
if obj.mesh.numtverts == 0 then obj
else dontCollect

...or filtered with canConvertTo() function:
select (
for obj in geometry where
canConvertTo obj TriMeshGeometry collect (
if obj.mesh.numtverts == 0 then obj
else dontCollect

Bake-A-pi - Pie Charts Maker

A new max script by Raphael "Insanto" Steves.
"Heres a tool to make your 3D PieCharts for you."
More at ScriptSpot.

Tuesday, December 21, 2010

Max Underground

Well, my blog is made for 3ds Max users and lovers so hardly ever this is a real news for them. is the most popular site for fresh Max news of the day, but if by chance you miss it then it's time to visit and add bookmark it.

3ds Max 20th Anniversary Show Reel

In honor of the 3ds max 20th anniversary Autodesk made assembly from it old show reel content from the last 20 years and put it into a single video.

Monday, December 20, 2010

Substances in Max 2011

Three tutorials by Louis Marcoux and Gary Davis cover the new Substance material maps added to Max 2011 Advantage Pack.

Batch namespacing

How to batch process (with script) by name (scene object, modifiers, materials, ...), seems that question appear frequently. Here is a few recent forum topics that can helps about --

eHow - How To is a how-to depository about everything.
To find 3dsmax subjects just use the site search form.

Control working pivot

How to control working pivot by script (coding tips).

Friday, December 17, 2010

Free PSD graphics is a nice resource site for free PSD graphics templates.Also some Photoshop tutorials listed out there.

How to make Santa in 3 Hours

Fast modeling video tutorial by Kostas Yiatilis MacFarlane.

Thursday, December 16, 2010

2D Tracking in 3ds Max

A tutorial by Fred Ruff on 2d tracking in 3ds Max using Camera Tracker.

Wednesday, December 15, 2010

Free music resources sheet

Large list of online places where you can get royalty-free music for audiovisual media production is posted on Vimeo forum.

Customizing 3ds Max Start Up Settings

Using a maxstart.max scene is old and well known tip. Fred Ruff just append a few tips to it bound up with VRay setup.

Monday, December 13, 2010

Piston animation

Luke Pettit wrote an excellent script that recreates the tutorial from Dario Strano.

Sunday, December 12, 2010

Texturing for dummies

Leigh van der Byl share 3 PDF tutorials for beginner texture artists on hers web site.

MaxSharp Project – using Python and C# with Max

Autodesk and Ephere have been co-developing an experimental library that provides a simplified wrapper around the 3DS Max 2011 API that can be used from both Python and C#. MaxSharp is a research project.

Looks like Autodesk would like to get feedback from users to see if there's enough demand to pursue further development, but actually the bad news is that the project is not an open, it's an in-door project for Sparks developers. So, how we can send some feedback?...
I appreciate all the efforts in this direction, and I hope they become aware and start an open beta projects.

More at Ken Pimentel's blog.

Saturday, December 11, 2010

How to pan while creating a spline

Nice tip by Ramy Hanna posted on his blog. As you create your spline, if you hit "i" (keyboard key) Max will just re-center your view to your cursor location.


Voxelizer is a script created to convert animated object into voxels.

Thursday, December 9, 2010

Model a Stylish Eames Lounge Chair

Detailed step-by-step modeling tutorial by Martin Zeme.

finalRender 3.5 and 3.5 SE

Cebas releases finalRender 3.5 and 3.5 SE.
New Features - 3D-Stereo Camera, Ultra-Fast GI Engine, and more.

Structure Synth 1.5

Structure Synth is a cross-platform application for generating 3D structures by specifying a design grammar. And it's a free!

Wednesday, December 8, 2010

Tuesday, December 7, 2010

Hotfix 4 for 3ds Max (Design) 2011

Hot Fix 4 (Published date: 2010-Dec-03) from Autodesk for Autodesk® 3ds Max® 2011 and Autodesk® 3ds Max® Design 2011 software includes fixes for issues with stability and performance. Specific areas addressed include: FileLink, Graphite Modeling Tools, Bitmap Proxies, Satellite Rendering, Normal Mapping, Quicksilver Hardware Renderer, and User Interface.

Moving a piston with math

Very interesting video tutorial by Dario Strano, showing how to rig the head motion of an engine piston using math equation.

V-Ray 2.0 for 3ds Max now available

Chaos Group introduce V-Ray 2.0 for 3ds Max, which is officially on the market starting 6th December 2010.V-Ray 2.0 for 3ds Max comes with V-Ray RT and V-Ray RT GPU included. Read more.

Monday, December 6, 2010

Anubis Scripts Downloader

My shared scripts online are not uploaded as single rar/zip package and this downloader is intended to simplify downloads task by grabbing all of them at once. All scripts saved in your local data 3dsmax\downloads\AnubisScripts folder. I hope you like it ;-)

Saturday, December 4, 2010

Custom Helix

How to create helix spline with custom amount of knots (via MAXScript) was asked here, and here is my snippet code --

spline = splineShape()

addNewSpline spline

addKnot spline 1 #smooth #curve [0,0,0]

numK = 12 -- num.knots

incr = pi -- increment

rad = for i = 1 to numK collect i * incr

ang = 30 -- angle

points = for i = 1 to numK collect


for p in points do addKnot spline 1 #smooth #curve p

updateShape spline

Shortly, in this example, 12 knots with angle 30 made full turn (12*30=360). So, what else... If you like some improvements like adding a height, then here is --

spline = splineShape()

addNewSpline spline

addKnot spline 1 #smooth #curve [0,0,0]

numK = 12 -- num.knots

incr = pi -- increment

rad = for i = 1 to numK collect i * incr

ang = 30 -- angle

h = 10 as float -- example height

step = h / numK

points = for i = 1 to numK collect


for p in points do addKnot spline 1 #smooth #curve p

updateShape spline

Thats it for now.

Brazil for Developers SDK

Caustic Graphics, developers of OpenRL and the CausticTwo graphics card, announced that the Brazil renderer has been rewritten from the ground up to take advantage of OpenRL (Open Ray tracing Library) for standardized access to graphics devices from AMD, Intel, and NVidia, as well as Caustic Graphics. They have posted a video showing the real-time, interactive rendering API designed for integration into 3D graphics applications.

The Brazil for Developers beta program begins in February 2011, but if we can see a Max plugin version of the interactive renderer will dependent of the results of this thread, and that sounds very very strange... Its a big mystery (for me), why Caustic Graphics has some doubts to produce Max plugin version. Also is a big mystery, how some forum thread will help them to make decision. So, lets hope this is only a trade trick and we'll enjoy BrazilRT for Max (some day).

Friday, December 3, 2010

I hit 6660 SS points

Ha-ha-ha... :P

Cut hole around vertex

This was asked here.
Execute the code line by line to see what each command does.

p = Plane isSelected:on
convertTo p Editable_Poly
max modify mode
subobjectlevel = 1
polyop.setVertSelection p #{7, 9, 13, 17, 19}
update p
polyop.setVertSelection p #{13}
update p
p.chamferVertices 4.0 open:true -- *note below
update p
subobjectlevel = 0
-- note: looks like 'open:true' in chamferVertices() is broken!
-- so... delete the face:

polyop.deleteFaces p #{21}

Thursday, December 2, 2010

Containers Techniques part 2

Chris Murray from Autodesk posted part 2 of his Containers Techniques video tutorial. Read posted feedback from the users as well.

Wednesday, December 1, 2010

Bake Transform 1.2

A quick update of my Bake Transform script, requested a few hours ago. The tool bake animation transform keys to chosen object with specified interval and sample frame step. Also reduce keys for chosen object with specified interval, sample frame step and threshold.

The new improvement is about script controlled objects. They often need view port update on each frame by moving the time slider. That of course slow down a bit baking process, so I add this as optional feature - to can turn it on only when this is necessary.