Friday 12 December 2014

motion vectors nuke/vray/maya


  • render in 32 bit exr format
  • nothing should be clamped

  • in nuke, grade the blackpoint of the velocity pass to 0.5
  • shuffle copy the R & G into your target's forward U&V
  • use vector blur
  • set to forward, tick on alpha
  • probably have to clamp values on your beauty before applying the motion blur, otherwise fringing occurs...

pole vector moves joints


One problem that I remember having over and over (since I’ve never rigged frequently enough to ever learn the correct method) is that when applying an IK handle to a joint chain, and then applying a pole vector constraint to that IK handle, the joints can sometimes move subtly. It’s not always a big deal, but it can be a problem when you’re trying to have multiple matching skeletons for FK and IK control, and suddenly your rotations don’t line up anymore.
The fix, as it turns out, is really easy. Before you apply the pole vector constraint, you need to place your controller (whatever is going to drive the pole vector) exactly between the start of the IK chain, and the end effector, e.g., the shoulder and the wrist. This is quickly done by selecting the start and end joints, and then the controller, and creating a point constraint (do not maintain offset). Then delete the constraint. Next, use an aim constraint to point the controller directly at the middle joint (say, the elbow). Delete the constraint. Then you just need to move the controller along its pointing axis a little ways, to push it away from the bones. For example, if your aim vector for the constraint was +X, then push your controller a few units forward in its local X axis. Now you can create the pole vector and the joints shouldn’t snap at all

stolen from http://www.toadstorm.com/blog/?p=129

Thursday 4 December 2014

Zbrush displacement To Maya (arnold)

Zbrush to Maya (arnold) displacement map..


  • sculpt your sculpts at higher levels, bla bla
  • open up Multimap exporter in the zplugins menu
  • set mid to 0
  • select the subdiv level you want to bake down onto (typically 1)
  • toggle 32bit and exr to ON
  • set adaptive, smooth UV & 3 channels to off - http://www.cggallery.com/tutorials/displacement/
  • I'm sure there are cases when you'll want to play with those last ones
  • When connecting the displacement in Maya, you probably have to connect the R to the Displacement, instead of the default Alpha value. Go figure.
this works with Vray too! Remember to add appropriate renderer specific smoothing - catmullclark/vray subdivs etc.

Monday 10 November 2014

shrinkwrap or conform-brush-from-Max.

Shrinkwrap things in maya (eg..low poly to high poly mesh)

select object to wrap around and object that is wrapping. Transfer attributes, select vertex position, and set search to closest along normal..
Remember you can paint attributes in maya...

Wednesday 17 September 2014

emit softbody

stolen from cgtalk, as always..

1. Create a soft body:
A. for creation methodselect "duplicate,make orig soft"
B. Hide non soft Object
C. Make non soft a goal with a goal weight of like .75

2. in the outliner select the particleShape node, which should now be the child of your soft body object.

3. in the particle's attribute editor take note of the "Count" found in the "General Control Attrinutes" tab, and replace the "-1" in the "Max Count" attribute (emission attributes tab of the particle) with the noted "Count" value.

4. under the softbody tab of the particle's attributes, uncheck enforce Count From History

5. set the particle's lifespan to "constant" '0', play a few frames; and go to solver/set initial state

6. set the lifespan back to "live forever"

7. create a new omni emitter, and delete the particle that comes with it.

8. With the particleShape selected, dive in to the dynamic relationship editor (Window/Relationship editors/ Dynamic relationships). Choose "emitters" in the upper right side, and highlight your newly created omni emitter.

9. Just adjust the emission rate in the emitter to be high enough to smoothly form your shape, and make sure there is a large enough frame range as well.

Friday 12 September 2014

quick nhair setup

nhair, based on the old digital tutors tutorial..

create curves, anywhich way. apply a brush to one curve, establish a good flat shape & width.
use "get settings from current" to set the new brush, then apply to the rest of the curves.
Adjust shapes a bit more...convert strokes to nurb surfaces. Extract U or V (whatever is going along the hair direction) surface curves.
Make a single poly face and create a hair system.
Now select all the curves and apply the hair system to them. Done did.

Friday 29 August 2014

ZBrush shit

zbrush  notes depository

alt l-click pans, let go of alt and you zoom
transpose can be used to generate masks.. ctrl click from the edge of object, inwards toward the centre..
hit alt and drag the middle transpose circle for a curve transform

more masking/isolation - ctrl+shift clicking isolates a polygroup (seems easiest to auto polygroup when things aren't working as you'd expect). If you then click and drag (with c+s held) the inverse isolation will be displayed. You can then ctrl+shift click on other polygroups/objects to be added to the hidden objects (c+s+drag click to invert again). Combining this with normal ctrl-click masking and inverting is an "efficient" way to move things/isolate specific bits in zbrush...


boolean (subtractive) A- B (dynamesh)

  • have subTool A and B set to Dynamesh. A should be above B
  • subTool B should be set to difference (the Venn diagram style icon)
  • In polygroups for subTool B, select group as Dynamesh Sub
  • Merge down, 
  • Finally Ctrl-click somewhere in the document to force Dynamesh to refresh and the boolean should be complete.
To perform the same without using dynamesh, set the venn diagram bits appropriately and hit remesh.. I find ticking off the xyz options on this button makes it work as you expect. Results aren't as nice as the dynamesh version..

using the move tool with the Brushes>Curve>Accucurve option toggled is a nice way to pull out spiky points




Wednesday 4 June 2014

vray buffer off screen

Vray Render Frame Buffer going missing

As I usually jump between 1 monitor setups and 2 monitor setups. This always happens. The dang Vray frame buffer goes missing. This seems to solve it, but I have only tested it once today.

1) Open the scene;
2) Before any rendering is done (this is important!) open the script editor and type this MEL command:

setAttr "vraySettings.vfbSettingsArr" -type Int32Array 0;

stolen from somewhere........

Monday 24 March 2014

soup - bounding object, geo volume

SOUP (Peter Shipkov) - how to use an object to select points/faces/edges by volume

- get selection object, make scatter points within (remember to connect world matrix to in matrix)
-setup group/bounding object as usual
-set bounding object to "geometry"
- use a points to mesh node on scatter, connect that into bounding object as mesh

ta da!

Tuesday 18 March 2014

Transfer UVs after rigging


Transferring UVs AFTER rigging....

This is a tough one, but here's the HACK. Lets say you've rigged up your amazing character and realize OH, I have to make a bunch of UV changes. You copy out your character's head, UV it up nicely, bring it back in and use the "transfer attributes" from your copied head to the rigged one.
No deal. It's because your transfer attributes input comes after rigging and all UV inputs have to come before rigging. Same as in Ncloth.
I don't understand why Autodesk doesn't put in a "before deformers" option or something similar to how you can insert blendshapes at certain parts of a deformer chain.
ANYWAY
Every object has a "shape orig" node which represents what an object was before it was deformed. We can apply a UV transfer to this no problem which will also transfer up the stack to your rigged object.
I access it like this

1. Select your rigged object, in the hypergraph hit options/display/ hidden nodes & shape nodes
2. You'll see a hidden node which is your Orig node, or what your object was before rigging.
3. In the orig node's attribute editor under object display, uncheck 'intermediate object'
4. Your Orig node is now accessible.
5. Apply your UV transfer attributes to it - then delete it's history.

There you go - you've applied your transfer to your object via it's history object. Maya sees it that you performed this operation before rigging. Now why Autodesk hasn't made a tool for this....who knows.


Straight up stolen from http://animbiz.blogspot.co.uk/2010/02/transferring-uvs-after-rigging.html
script by Zeth Willie!

//zbw_cleanTransferUV
//by Zeth Willie
//install in scripts folder and run "zbw_cleanTransferUV"
//select object w/ uv's then object to be transferred to then run
//zeth@catbuks.com


global proc zbw_cleanTransferUV()
{
string $sel[] = `ls -l -sl`;
int $sizeSel = size($sel);
if ($sizeSel != 2){
 error "hey. 2 objects. Select source then target";
 }
string $source = $sel[0];
string $target = $sel[1];
print ($source+"\n");
print ($target + "\n");

//try to do it by just reading SECOND shape node (first is shape, then ORIG, then other shape)
string $targetShapes[] = `listRelatives -f -s $target`;
string $targetOrig = $targetShapes[1];

//dummy check that this is orig object (is it intermediate? does it contain "orig"?)
if ((`getAttr ($targetOrig+".intermediateObject")`) && (endsWith ($targetOrig, "Orig"))){
 //turn off intermediate object setting on orig
 setAttr ($targetOrig + ".intermediateObject") 0;
 //transfer uv's to "orig" shape of target
 select -r $source;
 select -add $targetOrig;
 transferAttributes -pos 0 -nml 0 -uvs 2 -col 2 -spa 4 -suv "map1" -tuv "map1" -sm 3 -fuv 0 -clb 1;
 select -cl;
 //delete history on target orig then turn back on intermediate object attr
 delete -ch $targetOrig;
 setAttr ($targetOrig + ".intermediateObject") 1;
 }
else  {
 error "couldn't find the orig shape of the target object. make sure it's a bound/deformed thing";
 }
}

zbw_cleanTransferUV;