This is Kristine Middlemiss's Typepad Profile.
Join Typepad and start following Kristine Middlemiss's activity
Join Now!
Already a member? Sign In
Kristine Middlemiss
Recent Activity
Have you ever wanted to create a new attribute from the definition of an existing one, such as kTransform? However you cannot get the proper type from the attribute since MDataHanle::type() returns kInvalid: // Create attribute for future access MDataHandle hData =plug.asMDataHandle(); MFnTypedAttribute typedAttr; MFnAttribute fnAttr; fnAttr.setObject( plug.attribute() ); MString sName; MString sShortName =fnAttr.shortName(); MFnData::Type type =hData.type(); MObject newAttr =typedAttr.create( sName, sShortName, type, MObject::kNullObj, &st ); if ( MS::kSuccess == st ) { // Add a dynamic attribute to... Continue reading
Posted Aug 27, 2012 at Around the Corner
To create a custom cursor when using MPxContext::SetCursor, a cursor requires two XBM images: one for the mask, which defines which bits are transparent and which opaque, and one for the color, which defines which bits are white and which are black. If you look at an XBM image file you'll see that it's just a snippet of C code which defines macros giving the width and height of the image, and an array of unsigned char. E.g: #define HtumbleCursorMask_width... Continue reading
Posted Aug 22, 2012 at Around the Corner
I have just recently completed a MotionBuilder DevTV, called “Introduction to MotionBuilder OpenReality SDK Programming”. This is located on the public Autodesk MotionBuilder Developer Center page, under the title DevTV: This is a quick start guide (1.5 hours), the primary goal is: How to sit down and write your first plug-in Learn the general structure and capability of the SDK Where to go to find out more The target audience for this DevTV material: Familiar with the MotionBuilder product... Continue reading
Posted Aug 17, 2012 at Around the Corner
A callback is something you can setup to watch a specific behaviour, and when that behaviour is performed you do something special which is out of the normal behaviour or functionality of MotionBuilder (or Maya). Here is my everyday English example of a callbacks :) You assign me to watch a front door, and when people come in the door I hand them a visitor pass, without me watching the front door people would just come through the door and... Continue reading
Posted Aug 13, 2012 at Around the Corner
Please help us identify things that bother you when you’re working in Maya that we can easily fix. Suggest and vote for annoying little quirks or problems in Maya you want us to fix, and get others to vote for your ideas. Describe both the steps to show the issue, and how you would prefer it. Enter each idea separately (we’ll remove items with multiple ideas). Put larger issues in the Ideas for Maya forum. We’ll move issues that... Continue reading
Posted Aug 8, 2012 at Around the Corner
Through my years at Autodesk/Alias, I have done a lot of teaching and education (some is recorded and some is not), but some things you might catch me saying during training are… “Now you get the handle to the object”, or “this now returns the handle to the object”, but what the heck does that really mean? I will know try to explain my colloquialism below using MotionBuilder Python SDK code as an example. A Handle in Programming Terms What... Continue reading
Posted Aug 3, 2012 at Around the Corner
Today, I want to talk about the recommended way of handling the deletion of attributes and nodes within Maya through the wise guidance of Dean Edmonds (Autodesk Maya API Architect). We will examine this potential solution for this scenario: Let’s say you have plug-in that has a connection to a user defined attributes on other objects in a scene. You may write some code that detects that if the node is deleted, then the user defined attributes on the connected... Continue reading
Posted Jul 30, 2012 at Around the Corner
I was looking through some interesting questions that have come into ADN in the past, and thought I would share this one, it was about the possibility of setting a user event with a scriptJob (Maya Command). There are no MEL commands to create user events and the scriptJob command cannot be used to wait for them. However, you can do both in a Python script using API calls. Here's how you would register a new user event type called... Continue reading
Posted Jul 25, 2012 at Around the Corner
You may come across a time where you want to tell Maya to load/unload a plug-in during "plug-in load time" (i.e. while Maya is launching) or maybe you have certain plug-ins that conflict with each other, and you would like to have an automatic way of unloading (or "not" loading) various plug-ins. To go about doing this there are four options, I highly recommend option 1, as it is the most perdictable and safest. Option 1: Using Maya API Within... Continue reading
Posted Jul 20, 2012 at Around the Corner
Okay, let me re-phrase that, “All Things Qt….and Maya” :) In the past couple of years I have been getting more and more interested and into Qt, why you ask? Because it’s fun to develop things that are visual! I am what you would call a “Visual Learner” if I can see it or picture it with my mind’s eye, and then I will understand it a lot quicker! And reason two; there are Python wrappers for Qt!!! (Need I... Continue reading
Posted Jul 16, 2012 at Around the Corner
…Computer Programming…. Does that sound scary and yet inviting all at the same time? Are you ever curious to dive into programming and Maya? Are you a power user of Maya, or maybe interested in customizing or automating work flows? Are looking to take your work to the next level and challenge yourself, but not sure where to start… Here I will provide you with some places to start so you can get familiar with scripting so that you are... Continue reading
Posted Jul 11, 2012 at Around the Corner
Not Understanding the Difference between Python Script and Python API Maya has four programming interfaces, two of which are using the Python language. It’s important to know the distinction between the terminology of Python Script and the Python API, because they each access different functionality within Maya (with very little overlap). The other two interfaces are Maya Embedded Language (MEL) and the C++ API. Python Plug-in Disclosure You cannot hide your Python API code from users! If you’re a games... Continue reading
Posted Jul 5, 2012 at Around the Corner
First things first Happy Canada Day to all my fellow Canadians :) Are you looking to rewrite some of our Maya default scripts? In your environment, likely you will get to the point where you want to customize some of the MEL scripts that either builds the Maya UI or that create the functionality in Maya. To do this it means you will have to rewrite/change some of Maya’s default scripts. Rewrite/Change a MEL script Let’s examine all the ways... Continue reading
Posted Jul 1, 2012 at Around the Corner
We have updated the Maya 2013 API Documentation, so please download the latest version here: Within the updated documentation there are two major additions which have been done by Martin Ashton are API documentations Guru: First, we have a brand new Maya Python Learning Path Second, a class taxonomy – all classes arranged according to subject/concept Enjoy! Kristine Continue reading
Posted Jun 29, 2012 at Around the Corner
The FBX SDK animation system has been completely redesigned. Take nodes, take node containers, current takes, and FCurves have all been replaced by animation stacks (FbxAnimStack), animation layers (FbxAnimLayer) animation curve nodes (FbxAnimCurveNode), and animation curves (FbxAnimCurve). The classes in the FBX SDK have all been renamed using the "Fbx" prefix, instead of "KFbx" or "K". All structures have also been renamed with the same prefix, including global functions and enumerations. We did this to make the SDK simpler and... Continue reading
Posted Jun 22, 2012 at Around the Corner
Programming Environment and Code Refactoring Changes MotionBuilder and its distributed plug-ins are now compiled using Visual Studio 2010 (Service Pack 1). FBContainer has been renamed to FBVisualContainer for uniformity of cross-product naming schemes. const correctness improvements. Although not enforced in this release, we recommend that the "H" prefix in classes such as HFBPlug be removed and replaced by the pointer suffix "*", for example: FBPlug*. This change is intended to facilitate the use of the documentation system in the near... Continue reading
Posted Jun 18, 2012 at Around the Corner
The “devkit/plug-ins” folder has been reorganized so that the plug-in associated files are encapsulated under one folder and the plug-in project will be parented under a single parent solution file called “Plug-ins.sln” The module support for plug-in distribution has been improved so that you will be able to more easily create a distributable deployment of your plug-in. New attribute pattern API classes MAttributePattern: class that will provide a pattern of attributes to be applied to nodes as dynamic attributes or... Continue reading
Posted Jun 13, 2012 at Around the Corner