+1 tag for Google+

Tuesday, 12 July 2016

Modelling and Setting Up Rail / Roller Coaster Tracks


Upon the request of  a former colleague and good friend, I decided to post a video showing exactly how to set up a roller coaster track in Maya.

In this video I show how I go about modelling roller coaster tracks. In the video I go through the technical steps as well as the thought processes I go through my head as I tackle the task.

This video is a bit long but I believe I cover quite a bit of ground on how to handle curves, extrusion, motion path, constraints and the animation snapshot tool.

I hope you find something useful from the video

Thursday, 7 July 2016

Maya Expressions Part 02 - Conditional Statements


In this second video of my Maya Expressions series, I show how use the graph editor to display a visual representation of the value of our expressions with a graph.

Then I move on to explain the basics of conditional statements in Maya's expression language, which also works with MEL scripts.

A basic conditional statement in MEL and Maya expression language has the structure as such:

if (condition) {
    statement1;
    statement2;

}

Condition is a test to see if a comparison between values is true, or false, for most cases.

Example 1:
if (cube1.translateX > cube2.translateX) { do_something; }

In the above example, if cube1's translateX value is greater than cube2's translateX value, then do_something will be performed.

Example 2:
if (cube1.translateX == cube2.translateX) { do_something; }

In the above, we are testing for equality. if both the values are equal, the do_something will be executed.

Example 3:
if (cube1.scaleX >= cube2.scaleY) { do_something }

In this case, do_something will be executed if cube1.scaleX is equals to cube2.scaleX, or if cube1.scaleX is greater than cube2.scaleX.

The >= or <= comparison operators tests for 2 conditions. In the case of the >= operator, it will test true in the case of "greater than", and also in the case of  "is equals to".

Example 4:
if (cube1.scaleX != cube2.scaleY) { do_something }

In this case, do_something will be performed only if cube1.scaleX is not euqals to cube2.scaleX. The != sign is the comparison operator for inequality.

Friday, 10 June 2016

Maya Modelling Tools and Workflow Video

In this latest video tutorial, I show a set of 2 very handy Maya tools, and the workflow context in which I often use them.

First I start off creating a complex shape that has edges running in various directions. This is achieved by using a combination of several deformers. Even though deformers are categorised as animation tools, I try to show here that they can be used in a modelling situation as well. This gives a hint at huge possibilities for even more complex objects to be constructed this way. The key is to understand what different deformers do on their own, before we can plan how to use them in combination.

Having an object that is bent by deformers gives it a very organic shape. The majority of the resulting faces are neither oriented along world axes nor object local axes. This is one of the situations where these tools will shine.

The one of the essential tools of my modelling workflow is the Slide Edge Tool. This allows the artist to position one or multiple selected edges along the existing neighbour edges by sliding along them, or perpendicular to them along the selected edge normals.

The next tool in the video is the relatively new Edit Edge Flow Tool. This tool takes selected edges and tries to relax, blend or flow them along the mesh according to the angle/relief/tangets of neighbouring edges/faces.

At first glance these tools seem to overlap each other in functionality. However as we proceed along in the video, we see certain situations where one tool was more ideal for a task instead of the other. Therefore it is a good thing to have access to both.

At the end I also show in an example involving a cylinder's edges, how my simple scaling tool can be used to push out edges and accomplish something similar to what the 2 tools can do. If we can really understand how our tools work, we will be able to use them creatively and continue to streamline our workflow, and achieve higher quality of work faster, and with less effort.

Thursday, 2 June 2016

Introduction to Expressions in Maya



I've just posted a video introduction to what expressions are and how to achieve a few basic movements with expressions. In this very basic introduction to expressions in Maya, I talk about how with expressions, we can drive attributes of objects with the current frame, the current time, or with another attribute that is animated.

First I talk about what expressions are, where in the Maya interface we can input expressions, how to create them, and update them.

Then I show the simplest form of expression, where we learn to feed an attribute with a constant value.

Following that I make use of the frame variable to read the value of the current frame in the timeline to drive our object's attribute.

Then I get a bit more complex, showing how to use subtraction, division and multiplication to offset,, amplify or reduce the the resulting value to a fraction of what it would otherwise be.

I also briefly show how to use the connection editor to connect 2 attributes, so that the value of 1 attribute drives the attribute of the other.

Monday, 9 May 2016

Houdini (and TouchDesigner) Proceduralism

Recently I've been spending more time with Derivative's TouchDesigner. Unlike Houdini which is more towards pre-rendered and simulated content for TV, Broadcast and Film,

TouchDesigner is more for interactive applications, like reactive Video projections, installation content, where the visuals react in accordance to data collected in real-time (from sensors, game-pads, Kinect devices, or even information from websites). TouchDesigner, like most software geared towards real-time applications, has less processor intensive operators for geometry manipulation and shading (raytracing!) operations, Nevertheless, the amount of flexibility it can achieve with realtime signal processing data manipulation is still very amazing. This is especially easy on interatctive visual designers when it uses node based visual programming and the Python scripting language.

I was recently trying to explain the idea of proceduralism in CG / VFX / Interactive applications to a friend, and I kept thinking back to these couple of Houdini demo videos of how powerful a workflow it is.



These videos were posted by Kim Goossens on his/her YouTube channel. They still amaze me with the power of Houdini to this day.