wtorek, 28 stycznia 2014

Gradient gizmo

I 've always missed a good gradient node in nuke. You have to combine few nodes to get what you want. So here is my custom gradient gizmo.

gru_gradient.gizmo

poniedziałek, 21 października 2013

UPDATE: Tic Tac 30sec/8sec - MTV EMA

Here is one of few animation we did for Ferrero. I will post them later.
I did lighting, shading and rendering for this one.
Two words to discribe this project are - "Crazy timing"!!!



UPDATE:
Second animation. Again: rendering shading, lighting.




Maya, Mental Ray

poniedziałek, 14 października 2013

Vectra commercial

Here is a commercial I was working on about month ago. Last part (3d part...starts 22sec) is mine. I did a whole piece except animation.
 
Maya, Mental Ray.

niedziela, 18 sierpnia 2013

Voltaren Add

Hey. About one month ago we were working on an add for Voltaren. We struggle with this one a bit cause of the client. Who was not decided on how the add is going to look like. I loved the first idea but finally it turned out into something like this. My job was to build and animate the book and the packshots and also rendering/shading/lighting with exception of the fantom parts.



Prepering and animating book with a hell lot of pages was quite a challenge. I've created few scripts to speed up work.

First one is offsetting animation by one frame for multiple objects. Very simple but very useful. Here is a video how to use:
 

string $selekcja[] = `ls -sl`;
string $oldSelekcja[] = $selekcja;
int $ssize = size($selekcja);
 
for($i=0;$i<$ssize;$i++)
{
    timeSliderEditKeys addInbetween;
    select -d $selekcja[0];
    $selekcja = `ls -sl`;
}
select $oldSelekcja;
 
//timeSliderEditKeys addInbetween;


Second is a script of Zeth Willie.
//----------------------------------------------------------------
//select curve and object to attach and distribute along the curve
//----------------------------------------------------------------
string $sele[] = `ls -sl`;
int $selSize = size($sele);
int $numObj = $selSize-1;
string $cShapeArray[] = `listRelatives -c $sele[0]`;
string $cShape = $cShapeArray[0];
 
for ($a=1;$a<=$numObj;$a++)
{
    string $thisObj = $sele[$a];
    //print $a;
    shadingNode -asUtility pointOnCurveInfo -n ("POC"+$a);
    setAttr ("POC" + $a + ".turnOnPercentage") 1;
    connectAttr -f ($cShape + ".worldSpace") ("POC" + $a + ".inputCurve");
    connectAttr -f ("POC" + $a + ".result.position") ($thisObj + ".translate");
 
    //rotation
    tangentConstraint -weight 1 -aimVector 0 1 0 -upVector 1 0 0 -worldUpType "scene" $cShape $thisObj;
} 
 
setAttr ("POC1.parameter") 0;
setAttr ("POC" + $numObj + ".parameter") 1;
 
for ($z=2; $z<($numObj); $z++)
{
    string $POC = ("POC" + $z + ".parameter");
    float $increment = 1.0 / ($numObj-1);
    float $parameter = $increment * ($z-1);
    setAttr $POC ($parameter);
} // 

And an explanation video here. Selection is very important cause you have to select objects in an order you want them to stick to curve. Curve should be last in selection. Best way to do this is to use outliner.

Maya, Mental Ray

czwartek, 6 czerwca 2013

Agi Bagi

Hey. Here is a short promo from animated series produced by Badi-badi studio I've been working on recently. Episode is 10 min long. I did lot of things from modeling and texturing to layouting scenes and rendering.
This episode was rendered in 3Delight in Maya. So that was a new experience for me.


Maya, 3Delight

wtorek, 12 marca 2013

Update: How to Shuffle out passes from EXR in nuke FAST

Here is a simple script for Nuke that "Shuffle" out passes from your exr files.
Execute on selected "Read" node to get it work.
@Update
I've updated the script with a UI. Now it is available from the top menu.
###### gru_NK_Read2Shuffle.py ######
import nuke, os

def Read2Shuffle():
    sel = nuke.selectedNodes('Read')
    for file in sel:
        #gets the READ path 
       path = file.knob("file").getValue()
       print path
          
       ch = file.channels()
       # sets passes names
       pas = list( set([channel.split('.')[0] for channel in ch]) )
       pas.sort()
       print pas 
       #create Shuffle nodes
       for p in pas:
           shuffleNode = nuke.nodes.Shuffle(label = p, inputs=[file])
           shuffleNode['in'].setValue(p)
           shuffleNode['postage_stamp'].setValue(True)
           
###### init.py file ######
# nuke.pluginAddPath('./python')
           
###### menu.py #######
# import gru_NK_Read2Shuffle
# menubar = nuke.menu( 'Nuke' )
# gruMenu = menubar.addMenu( "gru" )
# gruMenu.addCommand( 'gru/exr_Read2Shuffle', 'gru_NK_Read2Shuffle.Read2Shuffle()')
Installation:
Posted code is divided to sections which you have to place in specific files.
All files have to be placed in ~/.nuke directory.
Script should work on Windows too.