MAXScript – Geometry to EditablePoly Modifier

When we want to convert one geometry into another we normally use Morpher, only if they have the same amount of vertices -and the same vertex order. Some time ago I found quite useful to have Edit Poly modifiers on top of that base geometry instead of using Morpher when modelling the different morph targets, mainly because it was easier to toggle them on/off to see the difference from the base object. I have been using this small script during these time, and I thought it could be useful for someone else.

So this is how it works: select one EDIT POLY object, then run the script (you can drag and drop it to a toolbar), then select the ‘target’ object. As I said, as if you were using Morpher :-)

fn geoToEPMod source target =
(
    local theVertCountA
    local posArrayA = #()
   
    local theVertCountB
    local posArrayB = #()
   
    in coordsys local
    (
        if classOf source == Editable_Poly do
        (
            theVertCountA = polyOp.getNumVerts source -- gets how many vertices are
            posArrayA = #()
            for i = 1 to theVertCountA do
            (
                theVertPos = polyOp.getVert source i
                append posArrayA theVertPos
            )
        )
    )

    in coordsys local
    (
        if classOf source == Editable_Poly do
        (
            theVertCountB = polyOp.getNumVerts target -- gets how many vertices are
            posArrayB = #()
            for i = 1 to theVertCountB do
            (
                theVertPos = polyOp.getVert target i
                append posArrayB theVertPos
            )
        )
    )

    max modify mode
    addModifier target (Edit_Poly())
   
    toolMode.coordsys #local
   
    for i = 1 to theVertCountA do  
    (
        if (matchPattern (posArrayA[i] as string) pattern:(posArrayB[i] as string)) == false do
            (              
                mod_verts = #{}                
                append mod_verts i             
                target.modifiers[#Edit_Poly].EditPolyMod.setVert mod_verts posArrayA[i]
            )
    )  
)

-- execution
if selection[1] != undefined then
(
    if selection.count == 1 then
    (
        if classOf selection[1] == Editable_Poly then
        (
            geoToEPMod (pickObject rubberBand:selection[1].pos rubberBandColor:white) selection[1]
        )
        else messageBox "Object must be an Editable Poly"
    )      
    else
    (
        messageBox "Please select only one object"
    )
)
else
(
    messageBox "Please select the target object"
)

OfficeMax – Elephant

The folks at Mill NY have completed a series of commercials for OfficeMax. One of them features the elephant we did at London. Mattias did the modelling and I was in charge of building the whole rig in Maya. Luis provided some invaluable feedback and Iván‘s scripts where a great assistance for the trunk.

iPad Facial GUI

A small test with connecting my iPad to 3DSMAX using the magic of TouchOSC. I had to struggle with the setup a bit until I realized I had a few too many Virtual MIDI controllers installed on my laptop. TouchOSC sends MIDI messages that are read by Float Motion Capture controllers on the facial mask that drives the morphs (I’m skipping here a couple of steps but I wouldn’t mind sharing the complete process).

There’s almost no latency between the iPad controls and 3DSMAX. In fact, what you see in the video is the real speed on both sides, with no editing to fix the delay.

Rainbow 6 – Patriots

Some minutes ago, this teaser for the upcoming Rainbow 6 game was shown on VGA (Video Games Awards).

We at The Mill completed this only just one week ago. So congratulations to everyone involved (me included!) because they really pushed the limits to deliver this masterpiece in the given amount of time. We build around 15 realistic characters  using the studio rig and taking care of each character deformations, including muscles on the necks (courtesy of Tom Ferstl, who developed a tool to make our life easier for that task). It’s a pity that the final edit has not all the delivered footage, because Jorge did some insane details on the props for the Rainbows (which are not appearing on the video above).

When learning a new software…

… take advantage of other packages that you might already know. But in my humble opinion you should never approach it the way you worked with other programas. The philosophy that lays behind this new software might differ from the one you are used to.

A couple of years ago, when working in Kandor, César showed me this. And I’m pretty sure it’s one of the most useful advices which someone has ever told me. It’s quite frequent finding people who complains about certain behaviour of certain software (‘Maya can do that and Softimage cannot’, ‘Maya is a sh*t because its Outliner sucks’, etc.). All of us have done that, and even it might be kind of funny sometimes. But if you see beyond the rant it reflects the frustration of the user when approaching a new paradigm with not-so-fresh ideas.

After having to learn two different softwares, Maya and Softimage, in the last couple of years I can tell you that César’s advice was wise and useful. I was struggling with Softimage, trying it to work the same way 3DSMAX did. Even I started to remap all the keys to match 3DSMAX ones. Wrong! He told me I needed to think that perhaps these hotkeys were the ones which made more sense according to how the software was designed, and that I would make the most of the program if I approached it like if I knew nothing.

That way I did convert the frustration of having to learn a whole new program in enjoyment of finding new and exciting ways to work. César’s advice completely changed my mind. I hope it works for you as well!!!

Müller – Wünderful stuff

So ‘wünderful’ that the team at The Mill has invested the entire summer for the ad! Commanded once more by David Fleet, and with character designs from Mushtashrik, we all did our best for this job. Peter Agg and me, with additional secret ingredients, ideas and advices and spiritual guidance from Luis San Juan, did all the rigging work for this commercial using Softimage.

Saturday night sketch: FK+IK Simultaneous Chain

To prove the technique described on the last post I built a little thing: a couple of bones with FK and IK behaviour at the same time. It’s just a quick sketch based on one of the videos from ToonKit. It could be developed further to make it animation friendly since it’s a rough prototype. But let me explain you how I did this…

Read More…

‘Fake’ callbacks in 3DSMAX

I haven’t used callbacks a lot. I guess I barely needed them, but for advanced behaviours they are amazing. According to MAXScript help…

Callbacks are used to register with 3ds Max functions that are called when specific events occur within 3ds Max. Events that can be monitored are changes to the time slider time and redrawing of viewports. Callbacks are not stored in a 3ds Max scene.

So here I present you an easy way to have a piece of code running without digging too much into complex stuff…

Read More…

Rigging for the masses!

Last weekend I’ve been giving a conference about rigging in Campus Party. My goal was making non-3D related people to understand what a rigger does in its day by day work. Folks uploaded the speech (as well as all the other talks) to Youtube, so here you can see the whole presentation. In spanish.

El pasado fin de semana estuve en Campus Party, en Valencia, dando una charla. Mi objetivo era hacer que la gente ajena al 3D entendiese en qué consiste la figura del ‘rigger’ y cómo se encaja dentro de una producción. La organización ha subido esta conferencia (así como todas las demás) a Youtube, así que se puede ver completa. En español.

——— ¡AUTOBOMBO EXTRA! ———

Hace unos meses, Abel, del podcast ‘Houston, tenemos un programa’, me hizo una entrevista para su programa. Se puede escuchar y descargar desde aquí.

Vimto – Lowrider car

A new commercial we made at The Mill, lead by David Fleet, that features 3 CG characters integrated on real footage. I put a lot of effort on the raspberry to get nice and soft deformations on the face, to achieve the expressions required by the animators but at the same time without having over-stretched berries. And here is the result:

I used 3DSMAX, Mudbox and Softimage during the building of the face, and Dave nailed some expressions using ZBrush. There’s a small ‘making off’ here where you can see some samples (including the back of my head) of the work we did: