Thursday, July 9, 2009

Recent to ramplayer

Another Ramplayer with a twist, very simple to use, developed because there wasn't anything like this :-)

You can compare recent rendering against the first one, reset all etc. Try it, download here

Wednesday, July 8, 2009

Engine expression

In case somebody needs engine animation method (you know, piston, crankshaft etc.), here comes one. It is based on expression that defines piston positions via point helpers, a few bones and IK system.

An animation with V8 engine! (.. hmmm, do they really construct it that way .. LOL!)

A working model (R2009) is available here

Tuesday, April 21, 2009

Equal dist btw objs


A small snippet putting selected different seized objs (blocks) at equal distancies on path. The pivots have to be at objs centers.

Get the code here


Rolling wheel

Ok, I admit this has been discussed to death on any 3d forum. There are different techniques depending on projects baseline, but I'll present here one that combines a scripted controller with custom attribute.

At PEN's site you'll find info on using attributes with scripted controllers.

First create a custom attribute definition where to store rot script variables

def = attributes wheelCtrl
(
local dist=0
local lastTime=0
)


Create a control circle

myCircle = circle name:"Master" radius:30
custAttributes.add myCircle def


Create a cylinder

myCyl = cylinder radius:30 height:10 name:"Wheel"
rotate myCyl (eulerAngles 90 0 0)
move myCyl [0,0,30]
myCyl.parent = myCircle


Apply a script controller to the y rotation of the wheel

myRotCtrl = myCyl.rotation.y_rotation.controller=float_script()
myRotCtrl.addNode "master" myCircle


And the script goes here:

myRotCtrl.script = "
if F==0 then
(
master.wheelCtrl.dist = 0
master.wheelCtrl.lastTime = 0
)
--The old and the current pos
p0 = at time (master.wheelCtrl.lastTime) master.pos
p1 = master.pos

--Get the distance traveled
newDist = distance p0 p1

--The direction of the wheel travelling
multi = dot master.transform.row1 (normalize (p1-p0))

--Calculate the rotation and add it to CA var
master.wheelCtrl.dist += multi * newDist / (master.radius)

--Set the last frame to current frame
master.wheelCtrl.lastTime = F

--apply result
master.wheelCtrl.dist
"


Here's file (R2009) to see it in action.

Friday, April 17, 2009

Fence primitive

A scripted plugin, developed from Jon Seagull's famous :-) Blinds.
Download from Scriptspot

Mental Ray daylight system

This is a quick way to test MR daylight in your scene. Only few params are included, so if you want to adjust more, you still have to go to motion panel. Needs R2009 or R2009 Design

What it does:
1. makes daylight system with Helsinki latitudes
2. turns current renderer to MR with draft FG settings
3. adds exp control

Delete button turns back to scanline with no environment or exp control

Download from Scriptspot

Wednesday, April 15, 2009

Some maxscripts used in production

I'll put a few snippets of code here, and maybe some pics or videos how to use them. Stay tuned ..