Thursday, September 29, 2011

Starting Out, Logistics, and More

Tasks from my initial game plan and some for next week:

Note: Numbers in [ ] are estimated time left / projected hours needed

TO DO:
Build basic plug-in for Maya in MEL[4/4]
Read about Maya Nodes[5/5]

IN PROCESS:
Read about Maya C++ API, MEL Scripting [8/10] 
Fine tune details for implementation [5/6]
Set up framework [4/5]
Experiment with MEL UI creation [2/3]

COMPLETED:
Set up SVN [0/1]
Research dis/advantages of using Python vs. C++  API's for Maya [0/3]

I spent part of this week reading about the two main API's available for writing tools for Maya, namely Python and C++. From what I gathered online, most users agreed that python was an ideal entry point for learning to program for Maya because of its intuitive syntax. However, it's not as well documented online as its C++ counterpart. After talking with Joe and some friends with more expertise in the area, it seemed that C++ is more ideal for this project, since it offers more control and functionality (ie. creating custom nodes in Maya). I also found an article on interfacing between the two API's if the need ever arises.

I've also started to explore creating MEL user interfaces. I'm working through the examples on this site right now, so far everything's been easy to follow, and it's encouraging to have even a little bit of visual feedback.

Test window generated from the tutorial

For the next week, I'm planning on reading more about the Maya Dependency Graph and creating nodes.

Finally, here's the preliminary system diagram for my building generator:



I'm planning on emailing a few people this week to make sure that this is a reasonable approach, so the chart is subject to change depending on how the feedback turns out.

Also, Gliffy (the chart generator) is pretty amazing (thanks Marley!)

Friday, September 23, 2011

An Updated Approach

This week I rewrote some parts of my original design document, and I've up with a more detailed approach for my project. After talking to people who have implemented similar projects, the general advice I gathered was that it was best to ensure basic functionality first, before trying to implement all the details of a paper.

My major goal last week was to read through all the papers and find one that is most relative to my project. Vijay, who worked on the Building Building Builder project from a previous year, recommended Interactive Visual Editing of Grammars for Procedural Architecture, so I've decided to focus on this paper after I've created the tool with some basic functionalities.

As for the work flow, my plan for next week is to finish reading about scripting for and have a basic plug-in running that can create a cube and apply basic transformations (namely scale and rotation). The next step after that would be to add additional faces and edges onto the cube.

I'm really looking forward to next week and having a skeleton up and running. Thoughts and suggestions are much appreciated!

Wednesday, September 14, 2011

Game Plan

Things to check off for next week:
  • Finish background reading
  • Read about Maya C++ API, MEL Scripting
  • Iron out details for implementation
  • Start setting up the framework
  • Set up SVN

And So It Begins...

Procedural Generation of Urban Environments: the Abstract

With the advent of modern movies and video games, the demand for visually stimulating environments comprised of unique components has been ever increasing. Traditionally, the problem has been solved by simply creating more assets. However, given the time and effort necessary to create 3D models, a producer risks spending a lot of resources on what is ultimately a small part of the final product. Consequently, this solution becomes much less feasible.
An alternative to manually creating individual components is procedural generation. The result is a large number of variable 3D assets generated in relatively a short amount of time compared to the traditional method. This project will focus on the procedural generation of buildings in an urban environment. Users will be able to create procedurally generated buildings via a Maya authoring tool plug-in. The ultimate goal is for users to create urban environments without the need to model each structure individually.