Reply
Reply
 
Thread Tools Display Modes
shawnolson's Avatar
Old (#1)
I've just released a new tool ( the Wall Worm Model Tools ) to expedite the process of sending models from 3ds Max to the Valve Source Game Engine. The tool has the following features:
  • Automatically generates a QC text file for your model
  • Allows you to pick your own custom collision model if you don't want to use the auto-generated model (see planned features)
  • Auto-generate LOD models of your model
  • Gives you a visual representation inside Max of the limits (range) tied to each LOD model which is especially helpful if you are also building your level design inside of Max (with Convexity)
  • Visually set the $illumposition position
  • Assign a surface property to your model from inside the Max interface
  • Set various model flags including $staticprop, $opaque and $mostlyopaque
  • Automatically makes layers in the layer manager for the model, hull, LODs and helpers
  • You can select LOD objects in layer manager and tweak their Multi-Res settings or edit the LODs to your liking after they are created
  • Visually assign the $masscenter property
  • Make Sequences
  • Send SMDs straight to compiler
  • Compile VTFs from materials
Planned Features include:
  • Can automatically generate convex collision hulls for your model (not yet implemented)
General Overview

Quick Demo exporting Prop


Docs and downloads at http://wallworm.com/projects/utilities/docs/








I look forward to any feedback from any Source modelers that use the tool.

Last edited by shawnolson; 01-12-2011 at 04:09 PM.. Reason: New Youtube video, updated links and screen shots
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

Emil Mujanovic's Avatar
Old (#2)
Dude! This is dope!
Offline , veteran polycounter, 3,866 Posts, Join Date Feb 2005, Location Malmö, Sweden  
   Reply With Quote

Minos's Avatar
Old (#3)
That's amazing. If only you had released it like 3 years ago... D:
Thiago Klafke / Environment Artist
Portfolio - Linkedin
Offline , polygon, 686 Posts, Join Date May 2007, Location Sao Paulo  
   Reply With Quote

fonfa's Avatar
Old (#4)
seriously. would've avoided so much headache! gonna tell my friends about this.
Offline , triangle, 395 Posts, Join Date Nov 2007, Location Montreal, Canada  
   Reply With Quote

shawnolson's Avatar
Old (#5)
Thanks for all the positive hype. Please share any and all experience with it. I have only tested it in Max 2011. I know for a fact it won't work in Max 5 but a friend who has been helping guide my work on it may end up converting it to be usable in older versions of Max.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

CrazyMatt's Avatar
Old (#6)
Great stuff mate, I will try this when I get home!
Character Artist | Portfolio
Offline , triangle, 469 Posts, Join Date Oct 2006, Location Denver, CO  
   Reply With Quote

shawnolson's Avatar
Old (#7)
If you happen to encounter any bugs or problems, please make sure to send them to me. I have only developed it on Max 2011 but a friend who still does coding all the way back to Max 5 is going to do some tweaking so it will work in older versions. So if you have a problem share what version of Max you are using.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

sprunghunt's Avatar
Old (#8)
great stuff.

I'm suprised that valve hasn't already released something like this.
---------------------------------------
sci-fi base
Robot Hunters Room
CER level
Offline , polycounter, 1,284 Posts, Join Date Apr 2005, Location Massachusetts  
   Reply With Quote

shawnolson's Avatar
Old (#9)
The tool has been updated to version 0.82.

http://wallworm.com/projects/utiliti...del_tools.html

The latest update includes a fix where the LOD distance helpers select buttons where not working when you first create an LOD group. Now the LOD distance helper select buttons work when initialized.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

Av7xrocker97's Avatar
Old (#10)
If only there was such a tool for blender.
A standalone one would be nice too. Were you just pull in a universal file format like .dae or .obj and have it pump out a .qc, an .mdl and All would be well. Good tool nonetheless.
Offline , spline, 117 Posts, Join Date May 2010, Location Baltimore,MD  
   Reply With Quote

shawnolson's Avatar
Old (#11)
I've updated the tool. Thanks for the positive feedback, especially all the emails with ideas, suggestions and bug reports.

Here is a list of the latest fixes in version 0.83:
  • Fixed the problem with QC files having quotation marks at the beginning and end of the file.
  • Fixed the QC file bug where model paths and material paths has backslashes (\) when they needed forward slashes (/).
  • Made the Model Path and Material Path fields in the UI work regardless of whether forward slashes or back slashes are used.
  • Fixed bug where LOD would not generate if the LOD spinner was never changed from the default value of 1.
  • Commented out the $shadowlod property in the QC file. If you want that setting, simply uncomment the $shadowlod lines in the QC.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

MattLichy's Avatar
Old (#12)
Valve employees are gonna freakout, in a good way, haha. I don't think they even have this...?

Valve does cool shit.. but god damn I hated working with those .qc files.
Offline , spline, 204 Posts, Join Date Jan 2008, Location Kirkland, WA  
   Reply With Quote

shawnolson's Avatar
Old (#13)
Version 0.84 released on 12-07-2010
  • Added $automass flag.
  • Added Mass value setting.
  • Fixed bug with getting the $opaque setting of a model's attributes when reloaded in Max. $opaque was always being set to true.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

Yozora's Avatar
Old (#14)
I just tried these out, here are my comments/thoughts;

* I dislike the autio creation of those layers and their names, and also all the objects.
What I'd like is after I've set up my default settings (ticking staticprop), I'd like it to simply;
Select model
(optionally) Select collision
(optionally) select lods
export

I don't want it to generate anything extra in between, especially lods unless I click a button or tick a box to auto generate lods.


* I'd prefer an option to export to the current folder that the max file is in.

* I'd like to skip that smd export options window, or have those options built onto your wallworm model tools. More on that in this thread; http://www.polycount.com/forum/showt...26#post1251726

* If you could build those options into your tools, then there should be a option to export a idle animation smd file along with the other stuff (preferably with "_idle" attached at the end of the name - don't need to auto generate a new model for that - or, have it in the settings to attach any suffix you want).

* An option to add whatever extra lines to the QC. I want to add $scale 1.0 to mine and maybe some notes/disclaimers but I'm sure other people will have other things to add.


* This one is very specific, and a bit complicated. But my folder structure for the things I need to compile is completely different from the folder structure of my working files. For example, lets say my work is in the W:/Work/props/taxi folder...
The folder I need to compile it to is somewhere like P:/project/game/props/maps/blabla/vehicles

So, I'd like to be able to put a custom path in front of the $modelname and the $cdmaterials in the qc settings.
In this example, I'd put "props/maps/blabla/vehicles" in this extra option and the QC file will give me:

$modelname "props/maps/blabla/vehicles/taxi.mdl"


I know I'm probably asking too much and maybe my ideas will only benefit my workflow, but I figured I'll let you know about them anyway.


On a sidenote, I'm sure Valve has some more streamlined tools than we think. Or at least I'd like to hope so.

Last edited by Yozora; 12-07-2010 at 09:17 PM..
Offline , dedicated polycounter, 1,381 Posts, Join Date Nov 2007, Location UK Send a message via MSN to Yozora  
   Reply With Quote

shawnolson's Avatar
Old (#15)
Quote:
Originally Posted by Yozora View Post
I just tried these out, here are my comments/thoughts;
I'd like to be able to put a custom path in front of the $modelname and the $cdmaterials in the qc settings.
In this example, I'd put "props/maps/blabla/vehicles" in this extra option and the QC file will give me:

$modelname "props/maps/blabla/vehicles/taxi.mdl"


I know I'm probably asking too much and maybe my ideas will only benefit my workflow, but I figured I'll let you know about them anyway.
That idea is already part of the process. If you type "props/maps/blabla/vehicles" into the model path, you will get the $modelname you mentioned already

Today I did update the script to add $mass and $automass... and I intend to add a scale option as you mentioned.

The option of choosing the root export folder is something I have on my TODO list. I intend to add a CONFIG utility... so in essence you will be able to choose your Source SDK mod folder (or any other arbitrary folder) for exporting into your mod's model directory. That config will be remembered between Max sessions. I also intend to add a BATCH file into the export also that will allow you to go ahead and compile...

The LODs are not autogenerated unless you've asked it to. The LOD tool will, in an upcoming update, allow you to arbitrarily choose your own LODs in the same manner you currently chose the collision hull.

As for skipping the exporter pop-up... I know of no way to do it. Even though it adds a few seconds and requires clicking, I don't mind all too much. Neil, the programmer who made the exporter, gets the promotion for his site in the pop-up... and I am all about helping support his efforts. So I am personally fine with that.

Finally, to the layers. I suppose I can add a setting in the config utility (when I've added it) that lets you choose whether it makes layers or not. I personally work in some scenes that can get very complex and the placement of these into layers is simply a management issue. I can imagine finding ways of improving the naming conventions (and giving naming config options) but can't imagine not using them personally. But I am not adverse to the idea of giving the option to turn off layers.

And like the naming of layers, I may be able to improve the naming schemes of the objects. Ideas on the most sensible approach are appreciated... though it is a lower priority to me than finishing the rest of the functionality.

Anyway, I hope I've addressed most of your points. I really appreciate the feedback and look forward to getting more input from you and others as you use it.

Thank You!
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

Yozora's Avatar
Old (#16)
oh yea forgot to mention, when I tried the model path thing I got this error;
http://dl.dropbox.com/u/1319713/wip/...1208032146.jpg

But now I realized its because I pasted in a absolute path instead of a relative path... just tried it again now and it works. Only problem is, it creates all those folders (props/maps/blabla/vehicles/) when I actually don't want all those folders, I only want it to be in the QC.


I guess you are right with that pop up thing, I had no intention of denying the acknowledgement of Neil's work and only wanted things to be more streamlined.
Also, you can actually include his name and his site to your tools if you want. That's if you find a way to skip those windows Win/win!
Just put it under your logo. Speaking of your logo... it's a bit too big I think... I know you can minimize it but each time you open it, its maximised again. I'm not trying deny you acknowledgement either... I just don't think that logo needs to be there at the top. It should go in the about section. I see Neil is already there.


I guess the thing it created wasn't a lod then... when I picked my model it created a clone with a multires modifier on it, I just assumed this was a lod but it seems to just be ... a clone, like it says :p Well, still, I see no use for having a clone and that illuminationorigin thing, at least not with my workflow.

Speaking of picking models, I don't like the current way of doing it because you have to click the right thing which isnt that easy when there are multiple lods overlapping eachother. Ideally there should be a button there to "use currently selected mesh". That way people can select the objects using outliner (or whatever scene management tool they use). Or you could implement a pop up list to pick from like the Attach pop up list.


I use layers as well depending on the number of models I'm working with. But most of my work only have like 5 separate things to export and that doesn't really need layers. It doesn't really make things more tidy because my naming convention already does that for me. Most of my layer usage happens when I'm working on models rather than during the export phase. Could be because I mostly work on simple props.

However when I'm working on many things that need to be exported, I think my workflow is still faster than using this tool since this tool can only handle 1 object at a time (I posted my smd-export workflow at the bottom of that other thread I linked earlier). So I guess my next feature request is multi-smd export with multi-lod, multi-qc and multi-collision support!
Don't need multi-paths at least. But you can put it in there if you want :p


By the way, built in compiling sounds very very cool.

thanks for the quick reply

Last edited by Yozora; 12-07-2010 at 10:47 PM..
Offline , dedicated polycounter, 1,381 Posts, Join Date Nov 2007, Location UK Send a message via MSN to Yozora  
   Reply With Quote

shawnolson's Avatar
Old (#17)
I've updated the tool to version 0.85. This update fixes the QC syntax error with the idle line and FPS. It also adds the $masscenter control gizmo and the ability to add your own LOD models (instead of the auto-generated models)*.

The tool also no longer assumes $concave... you have to set it manually.

*The ability to choose your own LODs is limited and incomplete in this version. I wanted to finish that function before this release but got enough emails about the FPS error above that I released this as it is now. For the moment, you can choose your own LOD... but the tools to choose the helpers don't activate yet.

Last edited by shawnolson; 12-09-2010 at 11:21 PM..
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

shawnolson's Avatar
Old (#18)
Thank you... I've added a new update now... version 0.87. This version now has some configuration settings that can be set:

* Preference for Export root folder (now can export straight to SDK model_src folder
* Preference to turn off the model copy and use your model in tool directly (default is to copy)
* Preference to turn off the tool's creation of its own layers for items
* Turned on batch mode exporting... no longer have to click multiple OKs to export--note that because of this change, you cannot make settings to exporter directly--and this only works if MAXScript has write permission to your plugcfg folder in Max
* started batch file creation. In export process there is now a batch file. It's not got the right path to your orangebox bin folder... but otherwise it can be used to compile.

It's too late to give any documentation... which I need to do soon. I'll make a new video explaining the features I've added in last few days when I get a chance.

PS. Much thanks to Neil from http://www.wunderboy.org for giving me help on this tool and directing me to his batch export method.

I also wanted to let people know that Michael Little from www.maple3d.com is working on some new updates to Convexity... Among a release he expects out around the new year will be the Convex Hull creator that this tool will use. Michael has informed me that he is intending to make a free, stripped-down version of Convexity that will be available for anyone who wants to use that functionality--which this tool will hook into. Of course, I highly recommend anyone to get Convexity Pro as well... I certainly love it and hope to help generate interest in his awesome program!

Anyway, I'll release a new video on the new features soon.

Thanks to everyone for all the support lately. The emails and forum posts are greatly appreciated.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

shawnolson's Avatar
Old (#19)
OK... I've loaded a new Youtube video in the first post showing the tool in use at its current stage. I've added many of the features many of you have asked for.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

shawnolson's Avatar
Old (#20)
I was working on models this morning for my map and wanted the tool to do a few more things... so there is already a new version this morning: 0.88:

Finished adding support to pick all of your own LODs.
  • Finished adding support to pick all of your own LODs.
  • New User Preference to set the SDK bin folder... if set there is a working Batch file for compiling your model with the QC file.
  • Added settings to control the SMD exporter (Reference/Sequence, Start, End, etc). Note that for this to work you must make your Plugcfg folder writable!
  • Fixed the Pick Collision Model function to not Copy the selected mesh if you have set the preferences to not COPY.
  • Fixed bug where extra Center Of Mass helpers were created when changing a collision mesh.
  • New User Preference to set Material Export Root folder. This option is not used yet (since the tool does not yet export materials) but is in preparation for when that is added.
  • Various minor UI tweaks.
And now I am probably done adding to it for a short while as I work on my own level for CS:Source for a while.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

shawnolson's Avatar
Old (#21)
OK... I have added support for sequences to models. There is now a new rollout called Sequences (and another called Utilities).

The one problem I am having is figuring out how to add animated Collision Hulls. At the moment, collision hulls do not work with the sequences... so if you need the model to have animated collisions, you will need to edit your QC. Also, if anyone can help explain the process of animating collision hulls, it would be helpful.

I have also started working on actual documentation. The docs are now located at http://wallworm.com/projects/utilities/docs/
Some of the other main changes is that you can set the tool to autocompile on export... you should read the docs to set that up.

Here is a list of changes I've added:

Version 0.92 released on 12-20-2010
•Updated Use Local Origin as World Origin. Please see the entry.
•Added Utilities Rollout
•Added New Button to select the model objects in Utilities Rollout
•Added New Button to select the model Collision Hulls in Utilities Rollout
•Added New Button to Prepare a Mesh to be a Collision Mesh. This runs the same function as the Collisionmodel Prep Tool
•Added new button to remove selected items from the model.
•Added new button to remove selected items from the collision hull.
•De-activated the "Make and Use Copy" function in the settings. As the tool is getting closer to completion, this option has lost its need.
•Moved the Configure Tool button to the top of the About rollout.
•Updated the tool's documentation link to go straight to the documentation table of contents.
•Updated the tool's $collisionmodel line in the QC output. If the model has $staticprop set, the hull uses $collisionmodel. If $staticprop is not set, $collisionjoints is used instead. Animated collision hulls is still not available in WWMT.

Version 0.91 released on 12-19-2010

•Added Auto Compile
•Added support for loading multiple meshes to the main model, LODs and Collision Mesh.
•Added Sequences Rollout
•Added Model Name Field
•Added Append Mesh and Add Selection buttons for the Pick Models Rollout.
•Added Append CM and Add CM Sel buttons for Collision Models in the Pick Models Rollout.
•Added Append LOD # and +Sel to LOD # buttons for LODS in the LOD List Rollout.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

shawnolson's Avatar
Old (#22)
There is a new video demonstrating Wall Worm Model Tools sending an animated model straight to the compiler:


The tool is now at version 0.95 with the following changes:


Version 0.95 released on 12-24-2010
  • Added skinned mesh support. Now you can export meshes that are animated with bones and a skin modifier.
Version 0.94 released on 12-22-2010This is an important update that includes updates to the LOD metrics. The new features are not yet documented.
  • Updated and corrected LOD metric calculations! New LOD switches are more accurate. See following config additions.
  • Added new LOD Metric Resolution menu to config floater. This new menu determines the resolution to use for calculating LOD switch distances. This is a preference setting. The default is now set to 1680x1050 because that is the most common sreen resolution according to Steam Hardware survey.
  • New LOD Field of View (FOV) setting to use for calculating the LOD switch distance. This value, in conjunction with the LOD Metric Resolution control the calculation for the LOD values. The default is set to 75 which VDC reports as the FOV for HL2.
  • Added some try...catch blocks to code to stop MAXScript errors when generating LODs based off of models that were animated with various position and rotation controllers.
Version 0.93 released on 12-21-2010
  • Improvements to the Use Local Origin as World Origin
  • Added new option to use Alternate origin placement in case of incorrect placement with default compile
  • Updated Prepare CM utility to automatically set the prepared mesh to non-renderable
  • Tool no longer creates an $illumposition helper until you've clicked the $illumposition selector in the Export Options Rollout.
  • Tool no longer creates an $masscenter helper until you've clicked the $masscenter selector in the Export Options Rollout.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

shawnolson's Avatar
Old (#23)
I have updated the tool to Version 0.96 released on 01-01-2011

•Added Texture Export functionality in the Utilities Rollout. Note the use is not well documented yet, including the setup of the exporter.
•Fixed bug in Tool Config for setting the material export path. Note that the feature was not being used previously, but setting the Material Directory in settings would override the model export path settings. This is now fixed.
•Added $shadowlod checkbox to export options rollout. When added and there are LODs, the tool uses the lowest level LOD as the shadow lod.

Please note that I didn't have time to add a lot to the texture compiling docs but there are some at http://wallworm.com/projects/utiliti...utilities.html . Make sure to set up the tool's Bin Dir and Material Export Path in the Configure Tool floater... and Steam needs to be running. I'll update the docs this week.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

shawnolson's Avatar
Old (#24)
I've updated the tool today to version 0.97. Among the changes is the ability to compile your model's materials into VTFs. It will use Diffuse, Specular, Ambient, Bump/Displacement and Self-Illumination maps of the Standard Material.
Offline , spline, 150 Posts, Join Date Nov 2010, Location Columbus  
   Reply With Quote

oXYnary's Avatar
Old (#25)
Hi Shawn

Looks like exactly what I need for a project. And this is totally off subject but may be helpful to some here. Is there a scaling system to use in max to align correctly with source? Or it depends on the source game in question (in my case l4d2).
Offline , veteran polycounter, 4,600 Posts, Join Date Oct 2004, Location Seattle, WA Send a message via AIM to oXYnary Send a message via MSN to oXYnary  
   Reply With Quote

Reply

Tags
3ds max , model , qc file , script , source engine

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Copyright 1998-2012 A. Risch