Tuesday, November 13, 2012

Simple Vehicle Generator - Process

After a long hiatus I'm back and this time with process of a new set of scripts to write, a Simple Vehicle Generator or SVG as I'll be calling it! To dive right into it, this has been on my mind for a while and after having done the Simple Weapon Generator (which has been updated a few times since first posted!) I feel I am prepared for the task at hand, knowing some of the pitfalls I will encounter and some things to watch out for with actual structure and usage.

So the best place to start is with a description of this new task. The goal of the Simple Vehicle Generator (SVG) is to allow for fellow artists and students to easily rig and script a vehicle for use in UDK. With this there will be 2 main components:
  1. The Simple Vehicle Generator Application (Script Generation)
  2. The Simple Vehicle Rig Generator (Maya script for preparing the vehicle mesh for use in UDK)
 The application portion of this I plan to structure like the Simple Weapon Generator. Having different categories for each of changeable values (meshes, sounds, handling, ect.) Possibly rearranging the structure however to be more user friendly and fun to use, sort of like in a racing game where you choose your racer and get to build the car the way you like, but with a lot more options! Sort of like...


But without the actual rendering of the car and mainly using the selection elements at the bottom and stat readout on the left hand side. I'll have to create a mock-up for my next update of my intended UI. I will either be using wxpython (something I've used quite frequently), qt, or Kivy to create this.

As far as the process to create the scripts goes I am leaning toward a modular script structure where there will be 2 types of scripts. Unreal Shell Scripts which are basic vanilla scripts needed for vehicles to work with none of the defaultproperties and a dictionary of defaultproperties that can be added to each Unreal Shell Script. This will hopefully become more clear as I visualize this structure soon.

The second part of the SVG will be the Maya tool to prepare the vehicle mesh for use in UDK. The idea for this tool is that it will allow for widgets to be placed around the vehicle mesh which will then be used as reference to create a skeletal structure and apply the right bindings. Below is a mock-up I put together of how I think I'd like the tool to look, ultimately it would be docked into the main Maya window.


And a description...


1. These are a collection of widgets to be placed onto the mesh. Upon clicking it will create a widget which can then be positioned and snapped onto the mesh. An example of this would be the wheel widget which would look like a simply polygon wheel. It would be placed around the actual wheel mesh of the vehicle to be rigged and serve as a locator for when the joints are created. It will also serve to name the joints correctly for use with the script generator.

2. The "?" buttons next to any of the widgets will provide extra information on its use by providing an infographic describing how it is placed visually on the model. This will change depending on which "?" is clicked.

3. Below the inforgraphic will be a textual description of its use and a step by step guide on how to place it for optimal bone structure within the mesh. Mostly an aid to the graphical element.

The rig button will effectively rig the vehicle with a proper bone structure, removing the widgets and providing proper controls. Readying it for export into engine.

I think that all of this is a good handful of a start for now, next time I'm hoping to post some of the sketching and hand written note part of the process to show how more of this developed. I find that doing these mock-ups of structure and UI help me to visualize its actual usage and the actual structure of the script running behind it. For now though it's time to buckle up and see where this ride takes me!

2 comments:

  1. Hey TJ, We're planning to introduce a vehicle assignment in the sophomore class. Let's test this in my class! When will it be ready?

    Jamie

    ReplyDelete
  2. Im hoping to have a working version over winter break, ill keep you up to date on it.

    ReplyDelete