I tested on Maya 2015 and 2016. For example if we create a multilevel instanced hierarchy:
and remove one object at the second level:
the object looks still instanced in the viewport:
If we change to Legacy Default Viewport it looks correct. To refresh Viewport 2.0 I had to reload the maya scene.
Monday, February 1, 2016
Tuesday, December 1, 2015
Breakdown / Making Of 1.
There is a lot of breakdown and making of stuff out there. A couple of my favorites below.
Development of the animation for special creatures in Cloudy with a Chance of Meatballs 2
ILM raised the standards of the breakdown clips. Check this out how it looks about the movie Battleship:
Character design on the film Rise of the Guardians:
Development of the animation for special creatures in Cloudy with a Chance of Meatballs 2
ILM raised the standards of the breakdown clips. Check this out how it looks about the movie Battleship:
Character design on the film Rise of the Guardians:
Wednesday, September 30, 2015
Autodesk Vision Series 2015
I think it is time to relax and let Autodesk be our entertainer. Okay, you might think I`m biased (or paid by Autodesk which is not the case unfortunately) I spend most of my time using Maya. Of course I`m biased. I wish I had more time to do cool stuff with other softwares like Modo, Houdini, ZBrush, Dynamo, Krita and learn more about Blender, Substance Painter and Designer, Photoshop, AfterEffects, Photoscan, PFTrack, FinalCut, Flix, Mari, Nuke, Hiero, Katana, Arnold, Renderman, OpenColorIO, ShotGun, Tactic, fTrack, USD, OSL, MU, Python, C++, JavaScript, never ending story...
Anyway, just relax and watch these videos:
Virtual production
Rendering and the cloud
The topic is Procedural Content Creation and the software is 3DS Max. I have to admit it is a bit disappointing for me because we waiting soo long ago a system like that in Maya. Okay, there is SOuP so Autodesk bosses think we don`t need proceduralism any more because we already have it.
And last but not least: Editorial
Anyway, just relax and watch these videos:
Virtual production
Rendering and the cloud
The topic is Procedural Content Creation and the software is 3DS Max. I have to admit it is a bit disappointing for me because we waiting soo long ago a system like that in Maya. Okay, there is SOuP so Autodesk bosses think we don`t need proceduralism any more because we already have it.
And last but not least: Editorial
Maya Rigging - Analyze stretching and compression with SOuP tensionMap
As we all know that SOuP maya plugin package has the tensionMap node. What it does is that colour coding the stretching or compression occurs on the deformed surface. It can be used for a lot of things. For example it can triggers blendShapes based on the surface compression or stretching.
I found it was useful to analyse how skinClusters (skin deformation) and blendShapes (morphed geometries) affected on the result surface. I made a short video to demonstrate this.
To utilize the tensionMap node easily I wrote a simple python script. We have to select the deformed mesh first and the original mesh after. It might be tricky to find those nodes in the node graph as you see below.
So here is the script:
I hope it works fine for you.
I found it was useful to analyse how skinClusters (skin deformation) and blendShapes (morphed geometries) affected on the result surface. I made a short video to demonstrate this.
To utilize the tensionMap node easily I wrote a simple python script. We have to select the deformed mesh first and the original mesh after. It might be tricky to find those nodes in the node graph as you see below.
So here is the script:
def AddTensionMaterial(Selection):
"""
== DESCRIPTION ==
It creates a lambert material diffuse color input from the vertex color map.
The color map is from SOuP tensionMap with applies an RGB color code to represent tension on the surface of the geometry.
Basic color code:
Green - relaxed
Blue - stretch
Red - compression
There is no error handling currently. SOuP plugin has to be loaded.
=== Limitations ===
It considers only the current modifiers.
=== Side Effects ===
Assign verex color set
== INPUT ARGUMENTS ==
+ List - Selection - Mesh nodes has to be selected in order -> select the deformed mesh first and the original one after
+
== RETURN ==
None
== TOOLTIP ==
Select the stretched or compressed shape node and the original (non-stretched or compressed)
shape then run the code like this:
AddTensionMaterial(cmds.ls(sl = 1))
"""
shapeResult = Selection[0]
shapeOriginal = Selection[1]
tensMap = cmds.shadingNode("tensionMap", asUtility = 1, n = "tensionColorMap")
lastDefomerOutput = cmds.listConnections(shapeResult + ".inMesh", source = 1, destination = 0, plugs = 1 )[0]
cmds.polyColorPerVertex(shapeResult, relative = 1, r = 0.5, g = 0.5, b = 0.5, a = 1, colorDisplayOption = 1)
cmds.connectAttr(lastDefomerOutput , tensMap + ".inGeometry")
cmds.connectAttr(shapeOriginal + ".worldMesh[0]", tensMap + ".restGeometry")
cmds.connectAttr(tensMap + ".outGeometry", shapeResult + ".inMesh", f = 1)
mrVertC = cmds.shadingNode("mentalrayVertexColors", asTexture = 1, n = "mrVertCol")
cmds.connectAttr(shapeResult + ".colorSet[0].colorName", mrVertC + ".cpvSets[0]", force = 1)
tensionShader = cmds.shadingNode("lambert", asShader = 1, n = "tensionMat")
cmds.connectAttr(mrVertC + ".outColor", tensionShader + ".color")
I hope it works fine for you.
Thursday, August 20, 2015
Gooseberry Project aka Cosmos Laundromat - First Cycle
The Blender Foundation released the first part of their open movie project called Gooseberry Project. The film title is Cosmos Laundromat. I think it is giant leap.
We can find tons of materials about this project on youtube and on the site. Via Blender Cloud we can also have access to all the source materials (blender files, textures, etc.) of the film.
A couple of videos I found usefull:
Animation progress
Victor's rig
We can find tons of materials about this project on youtube and on the site. Via Blender Cloud we can also have access to all the source materials (blender files, textures, etc.) of the film.
A couple of videos I found usefull:
Animation progress
Victor's rig
Intresting mix of asset creation process
Tuesday, July 28, 2015
Photoshop - Tips and Tricks - Lasso Tool
If you ever tried to trace the contour of something with the Lasso Tool you might found that it was appropriate tool for organic things. However sometimes we need straight lines for the selection and that is where Polygonal Lasso Tool comes in place.
The thing is you can mix both in the same time.
If you press and hold the Alt (Option key on Mac ) and then release the (left) mouse button, you'll temporarily switch to the Polygonal Lasso tool so you can draw a straight line. If you hold the mouse button again can continue to use the Lasso Tool. When you release the Alt (Option) key and the mouse button, Photoshop completes your selection with a straight line.
How wonderful it is.
The thing is you can mix both in the same time.
If you press and hold the Alt (Option key on Mac ) and then release the (left) mouse button, you'll temporarily switch to the Polygonal Lasso tool so you can draw a straight line. If you hold the mouse button again can continue to use the Lasso Tool. When you release the Alt (Option) key and the mouse button, Photoshop completes your selection with a straight line.
How wonderful it is.
Thursday, June 11, 2015
Maya - Node Types - Filter Types
How to list all the lambert shaders in maya?
Well, if we use the MEL or pyhton command ls -type "lambert" we get more than just lambert shaders (if there are others in the scene). The reason is that the lambert shader has a type name which is the type for eg. blinn and phong are inherited from. The class hierarchy or inheritance diagram looks like this.
We can get this from the maya API documentation but we can query via MEL or python commands.
The following line gives us the inheritance diagram of "blinn1" shader as a list:
As we can see the items are similar but not the same. That is why because MEL and python scripts not work with C++ API names. If we look up blinn node from the nodes list of the technical documentation area we can see the parents field:
If we click on reflect we get the node to get the description of that node we can see the relfect node's partent is the lambert.
So we can really search node types or "supertypes". We can imagine these nodes as part of a set. Maya ls command and other commands with type flag can use these types. So for eg. we can list all the shape nodes in the scene by entering the following line:
Or we can filter all the geometry type shapes, like curves, nurbs surfaces, meshes:
So answering the first question: we can filter lambert shaders if we list lambert type with ls than check the exact type with nodeType command.
With python set we can achieve useful functions easily. I wrote a function to check two or more objects' common type. I hope it works well.
Well, if we use the MEL or pyhton command ls -type "lambert" we get more than just lambert shaders (if there are others in the scene). The reason is that the lambert shader has a type name which is the type for eg. blinn and phong are inherited from. The class hierarchy or inheritance diagram looks like this.
We can get this from the maya API documentation but we can query via MEL or python commands.
The following line gives us the inheritance diagram of "blinn1" shader as a list:
cmds.nodeType("blinn1", inherited = 1)
# Result: [u'shadingDependNode', u'lambert', u'reflect', u'blinn'] #
As we can see the items are similar but not the same. That is why because MEL and python scripts not work with C++ API names. If we look up blinn node from the nodes list of the technical documentation area we can see the parents field:
If we click on reflect we get the node to get the description of that node we can see the relfect node's partent is the lambert.
So we can really search node types or "supertypes". We can imagine these nodes as part of a set. Maya ls command and other commands with type flag can use these types. So for eg. we can list all the shape nodes in the scene by entering the following line:
cmds.ls(type = "shape")
Or we can filter all the geometry type shapes, like curves, nurbs surfaces, meshes:
cmds.ls(type = "geometryShape")
So answering the first question: we can filter lambert shaders if we list lambert type with ls than check the exact type with nodeType command.
lambertTypeMaterialList = cmds.ls(type = "lambert")
lambertMaterialList = []
for item in lambertTypeMaterialList:
if cmds.nodeType(item) == "lambert":
lambertMaterialList.append(item)
# Result: [u'lambert1', u'lambert2'] #
With python set we can achieve useful functions easily. I wrote a function to check two or more objects' common type. I hope it works well.
def GetCommonClass(SelectedNodeList):
'''
== DESCRIPTION ==
Get the common type of the passed object list which is the first item in the inheritance diagram.
For eg. if we test a directionalLight and a nurbsCurve type nodes together the inheritance diagram are like this:
[u'containerBase', u'entity', u'dagNode', u'shape', u'geometryShape', u'deformableShape', u'controlPoint', u'curveShape', u'nurbsCurve']
[u'containerBase', u'entity', u'dagNode', u'shape', u'light', u'renderLight', u'nonAmbientLightShapeNode', u'nonExtendedLightShapeNode', u'directionalLight']
And we can see the first common type is the 'shape'.
== INPUT ARGUMENTS ==
+ list - SelectedNodeList - Maya node list
+
== RETURN ==
string - the first common type
== DEPENDENCIES ==
- maya.cmds
-
'''
if SelectedNodeList:
nodeTypeList = []
nodeTypeSet = set()
for item in SelectedNodeList:
nodeTypeList = cmds.nodeType(item, inherited = 1)
print nodeTypeList
if len(nodeTypeSet) != 0:
nodeTypeSet.intersection_update(set(nodeTypeList))
if len(nodeTypeSet) == 0:
print "There is no common type within selection."
return None
else:
nodeTypeSet.update(set(nodeTypeList))
commonTypeIndexList = []
for commonType in nodeTypeSet:
commonTypeIndexList.append(nodeTypeList.index(commonType))
firstCommonType = nodeTypeList[sorted(commonTypeIndexList)[-1]]
return firstCommonType
else:
return None
Subscribe to:
Posts (Atom)






