Today, I'm excited to share insights from a personal project I pursued during my free time. Despite my enthusiasm and effort, it ultimately did not yield the outcomes I had hoped for, leading me to discontinue the endeavour. The project's ambitious goal was to create a scene node editor within Autodesk Maya, offering navigation and interaction akin to the node-based workflow found in Houdini. This concept aimed to blend Houdini's intuitive node-based interface with Maya's robust capabilities, hoping to enhance the scene management experience. (character model created by François Boquet, character rig by Santiago Calle)
Examining the node editor in Houdini, one can't help but appreciate its logical structure and the straightforward methodology it offers for navigating through scenes. Houdini's node-based approach allows for structured and intuitive scene traversal. In contrast, while Maya also incorporates a node editor, its functionality and design significantly differ. Maya's node editor, despite being robust, follows a distinct paradigm that doesn't quite mirror the organized, singular approach found in Houdini's node interface.
The initial concept behind my project was to develop a global node editor for Maya, akin to the one in Houdini. This editor aimed to enable users to traverse and edit dependencies throughout the entire scene more clearly and efficiently. Now, let’s delve into the specifics of my node editor and explore its features and design.
In my version of the global node editor for Maya, I successfully implemented a graphical view that prominently displays top-level nodes as primary entry points. From these nodes, users can navigate deeper into the hierarchical structure of a scene. This navigation is facilitated by intuitive hotkeys: pressing 'I' allows users to delve deeper into the hierarchy from the selected node, while 'O' enables them to step back out to a higher level. This system of in-depth traversal is designed to enhance the efficiency and clarity of navigating complex scene structures.
At the top of the editor, there's a convenient navigation bar that displays the current node you are working on. This feature ensures users always have a clear understanding of their location within the node hierarchy. Additionally, I endeavoured to emulate the aesthetic of Houdini's node editor by customizing CSS styles. This effort extended to enabling the creation of connections directly from one socket to another, mimicking the intuitive connection-making process found in Houdini. The aim was to blend Maya's powerful functionality with the user-friendly interface of Houdini's node system.
While developing this editor, I encountered two primary issues that became the root of various other challenges, and I could not devise a viable solution within a reasonable timeframe.
Although the node editor project is currently on hold and seemingly on the wrong path, I don't consider the time spent on it wasted. The development process involved extensive research into QT, QTGraphicalItems, and graphical views, enhancing my understanding of node interfaces and QT internals. Despite the challenges, working on this project was an enriching and enjoyable experience. For those interested, the source code is available, albeit unfinished and without comprehensive documentation or comments.