Some people were asking me for a tutorial to show these techniques in greater detail. So I've made this Youtube tutorial to give more detail on how to do them.
Some people were asking me for a tutorial to show these techniques in greater detail. So I've made this Youtube tutorial to give more detail on how to do them.
I made a tutorial that shows how to cover a bottle in rope. I thought it would be a useful example of some basic modeling concepts.
I made this tutorial to show you how to make custom generators in substance designer that can be used in substance painter
I made this tutorial to show a technique in Houdini for creating upholstery.
I made a tutorial demonstrating how to create a vertex color blended shader using shaderFX
If you're familiar with scripting for Autodesk Maya you've probably used the PolyEvaluate command. This command is useful for getting information on object vertex count, bounding box size, face area, and many other things. To get the vertex count of an object you would use it like this:
vertex_count = cmds.polyEvaluate(vertex=True)
This is the current documentation on PolyEvaluate:
https://help.autodesk.com/cloudhelp/2016/ENU/Maya-Tech-Docs/CommandsPython/polyEvaluate.html
However I was looking at some of the scripts that come with Maya and I was surprised to find some flags that aren't in the documentation.
These flags are:
uvShell ( -us ) activeUVShells ( -aus ) uvsInShell ( -uis )
This flag returns the ID numbers of shells associated with selected faces. Here you can see me using the mel version of the command on a cube:
This flag returns a numbered list of the selected UV shells in a mesh. Here you can see me using the mel version of the command on a cube:
This returns a list of the uv points in a specified UV shell. You need to specify the UV shell after the flag. The UV shell number is one of the numbers the other commands return. Here you can see me using the mel version on a cube.
I have found out that these are documented in the pyMel documentation. However I've tested them and they work fine with Mel and normal Python.
In Maya if you want to import multiple FBX files you're supposed to be able to drag and drop them into a blank scene. However if you've changed your default settings you'll get a problem where it pops up a warning dialog and only imports the first FBX.
That looks like this:
There's a whole thread about it here:
I wasn't interested in figuring out the exact setting in the preferences that caused this. So instead I made this very basic script to do it (below) and I thought other people might like to use it. (I created a shelf button with this code in it)
string $files[] = ` fileDialog2 -fileFilter ("*" + ".fbx") -fm 4 -okc "Select Files"`;
for ($file in $files){
FBXImport -file $file;
}This Script will import everything you select in the dialog that pops up when you run it. It will use whatever FBX settings you used last time you imported a FBX.
I was interested in making something with ornate lattices and I became curious to see if I could recreate some traditional Islamic lattices using Houdini. So I ended up making these two patterns you see below.
The first pattern is made by creating a 16 sided circle and pulling four points in towards the center to create a "plus sign" shape. This is then copied and rotated to make the shape below.
The final pattern
This next pattern is created by;
This final shape was repeated and then the gaps filled in using some subdivided triangles. That you can see in the first image.
This is a Mel script for Maya I made to answer a question on polycount.
What it does is loop through selected objects and sets the smooth mesh vertex boundary value to 'sharp edges' instead of 'sharp edges and corners'.
It is also an example of a basic script that sets attributes on the shape node - you could switch the attributes for any others without any problems. To use it, make a new button in the shelf editor, and copy and paste the below code into the command window.
//set smoothing boundary script
//first get selected meshes
string $meshes[] = `ls -sl -tr`;
//loop through transforms
for( $mesh in $meshes) {
string $meshShapes[] = `listRelatives -s -f $mesh`;
//loop through shapes setting the value
for( $shape in $meshShapes){
setAttr ($shape + ".osdVertBoundary") 2; //this sets the vertex boundary on the OpenSubdivControls
}
}