Hi everyone, after a long hiatus I’m starting back up again on another tool that I’ve been wanting to do for a while now and would like to share my process with everyone as a learning experience and for additional feedback along the way. The idea behind the Simple Vehicle Generator (or SVG as I’ll be calling it!) is to simplify the pipeline of getting a vehicle from Maya into UDK and having it be workable in a level. ie. Being able to drive around in it.
To dive right into things, the idea of the Simple Vehicle Generator (or SVG as I’ll be calling it!) is to simplify the process of getting a vehicle from Maya into UDK and having it work, without the artist ever having to interact directly with an UnrealScript file. After having done the Simple Weapon Generator (a similar script focused on creating weapons for UDK) I feel I am prepared for the task at hand, knowing some of the pitfalls I will encounter and things to watch out for with structure and usage.
So the best place to start is with a description of the 2 main components I plan to have:
[ol]
[li]The Simple Vehicle Generator App (Script Generation)
[/li][li]The Simple Vehicle Rig Generator (Maya tool for preparing the vehicle mesh for use in UDK)
[/li][/ol]
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! Somewhat 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…
-
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.
-
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.
-
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 and I hope that some of you might find interest in this!