Home Technical Talk

3ds Max tool for expediting model export to Valve Source Engine

13
polycounter lvl 13
Offline / Send Message
shawnolson polycounter lvl 13
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
[ame]http://www.youtube.com/watch?v=z74zF4W1fVg[/ame]

Quick Demo exporting Prop
[ame]http://www.youtube.com/watch?v=TEnYtBr-isg[/ame]


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

pick_models_rollout.png
lod_generator_rollout.png
lod_list_rollout.png
sequences_rollout.png
export_rollout.png


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

Replies

  • Emil Mujanovic
    Offline / Send Message
    Emil Mujanovic polycounter lvl 18
    Dude! This is dope!
  • Minos
    Offline / Send Message
    Minos polycounter lvl 16
    That's amazing. If only you had released it like 3 years ago... D:
  • Bruno Afonseca
    seriously. would've avoided so much headache! gonna tell my friends about this.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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.
  • CrazyMatt
    Great stuff mate, I will try this when I get home!
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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.
  • sprunghunt
    Offline / Send Message
    sprunghunt polycounter
    great stuff.

    I'm suprised that valve hasn't already released something like this.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    The tool has been updated to version 0.82.

    http://wallworm.com/projects/utilities/wallworm_model_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.
  • Av7xrocker97
    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. :)
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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.
  • MattLichy
    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.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 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.
  • Yozora
    Offline / Send Message
    Yozora polycounter lvl 11
    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/showthread.php?p=1251726#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.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    Yozora wrote: »
    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!
  • Yozora
    Offline / Send Message
    Yozora polycounter lvl 11
    oh yea forgot to mention, when I tried the model path thing I got this error;
    http://dl.dropbox.com/u/1319713/wip/ss_20101208032146.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
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    There is a new video demonstrating Wall Worm Model Tools sending an animated model straight to the compiler:

    [ame]http://www.youtube.com/watch?v=z74zF4W1fVg[/ame]

    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.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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/utilities/docs/rollouts/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.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    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.
  • oXYnary
    Offline / Send Message
    oXYnary polycounter lvl 18
    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).
  • marks
    Offline / Send Message
    marks greentooth
    1 max unit = 1 hammer unit
  • Mark Dygert
    oXYnary wrote: »
    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).
    Like marks pointed out 1unit = 1unit. You also need to make sure your objects local pivot point is on the grid, it won't do you much good if your geometry is snapped to a grid but your pivot point isn't.

    I like the idea behind a tool that helps automate the crazy process, I haven't taken it for a test drive yet, someday soon. Mostly because I'm a little sick of working with and around Hammer and Source. I seriously hope Valve has some super sexy tools that only they get to use, I couldn't imagine a company with those kinds of resources forcing their people to build and compile things like it was 1996 all over again. That would seriously bottle neck their pipeline and its probably one of the easier hurdles to tear down.

    It's scary how much hasn't changed in the mod tools since HL1...
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    I like the idea behind a tool that helps automate the crazy process, I haven't taken it for a test drive yet, someday soon. Mostly because I'm a little sick of working with and around Hammer and Source. I seriously hope Valve has some super sexy tools that only they get to use, I couldn't imagine a company with those kinds of resources forcing their people to build and compile things like it was 1996 all over again. That would seriously bottle neck their pipeline and its probably one of the easier hurdles to tear down.

    It's scary how much hasn't changed in the mod tools since HL1...

    Mark... I agree. My assumption is that they do have something much more advanced than this tool; the question is, if they do, why haven't they released it to the public? Why offer the system openly to encourage people to develop with your tools... then make them jump through hoops to do it?

    Anyway... I am nearing the completion of this project. I have some loose ends and cleanup left... but it is nearly complete.

    I've just added two new help pages: When I've finished with this I plan on building a cubemap exporter to quickly make the 2d sky textures.
  • oXYnary
    Offline / Send Message
    oXYnary polycounter lvl 18
    Like marks pointed out 1unit = 1unit. You also need to make sure your objects local pivot point is on the grid, it won't do you much good if your geometry is snapped to a grid but your pivot point isn't.

    I like the idea behind a tool that helps automate the crazy process, I haven't taken it for a test drive yet, someday soon. Mostly because I'm a little sick of working with and around Hammer and Source. I seriously hope Valve has some super sexy tools that only they get to use, I couldn't imagine a company with those kinds of resources forcing their people to build and compile things like it was 1996 all over again. That would seriously bottle neck their pipeline and its probably one of the easier hurdles to tear down.

    It's scary how much hasn't changed in the mod tools since HL1...

    Thanks but which max unit scale? I use cm (you know like most of the rest of the world does).
  • Mark Dygert
    Heh, really? I switch over to whatever the editor is using /shrug
    The unit setup is file specific so you don't have to worry about switching to Generic Units being a global setting across all your files. Only the files you set to Generic will stay that way.


    I was refering to the default 3dsmax "Generic Units". It's the same in Unreal, 1 3dsmax Generic Unit = 1 UDK unit.

    If you use a 4:1 textel ratio then thats 4 pixels for every unit.

    If you're really interested in always working in cm, you should be able to switch it to generic units, create a measuring stick or a cube and switch back to cm to get a sense of how it all lines up. I think cm works out fine on the generic unit grid, but "US Standard" is off or is it the other way around... meh... run some test, diddle some numbers, make it work.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    oXYnary wrote: »
    Thanks but which max unit scale?

    I always set the Max units to generic when working for Source. Then, for reference, I always make a 24x24x72 box that is about the size of an in-game player's bounding box... that helps me keep my designs at the right scale.
  • fusedgore
    Offline / Send Message
    fusedgore polycounter lvl 13
    Write this for maya that would be awesome
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    fusedgore wrote: »
    Write this for maya that would be awesome
    I've gotten a lot of requests to expand it to Maya, XSI and Blender. I wish I could say that I could do that... but the only one of those I even have is Blender... which I really don't like much. I made this tool for my own use inside Max... and decided to share it with everyone.

    If the sky falls and I'm forced to move to another app... then it might happen. But for my own sake... I hope that never happens. I already spent a month and a half getting used to MAXScript so I could make it... I cannot justify spending more time to extend it to apps I don't have and learning their scripting languages.

    Sorry :(
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    Version 0.98 released on 01-07-2011
    • Added support for 3ds Max 2008+. Before this update, the tool would not work in version 2008 or 2009.
    • Fixed bug to the Pick LOD buttons. They were broken in the 0.95 update.
    • Changed the way that the Texture Exporter utility works. The tool will now always run the VTF texture compiler when you run the Export Textures utility.
    • Renamed the Configure Tool button to Settings
  • piippo
    Really impressive, this makes exporting models a lot easier. Thanks a bunch!
  • Pix
    Finally a tool that will help me to get models into the engine much faster without additional headache. Thank you for this.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    piippo wrote: »
    Really impressive, this makes exporting models a lot easier. Thanks a bunch!
    You're welcome.
    Pix wrote: »
    Finally a tool that will help me to get models into the engine much faster without additional headache. Thank you for this.
    You are welcome as well!


    For the most part I've tried to make the tool expedite everything. Almost everyone has been pretty excited... but there have been some people who don't understand the flow of it or feel it's too complicated. Perhaps the video is too long winded.

    In any event, I am trying to add docs for each feature. I'll make short videos for each step/feature as I can get to them.

    Here is the latest doc (no video yet) on the minimum steps to compile a model.

    http://wallworm.com/projects/utilities/docs/using/export_static_prop.html

    Also, there is a new minor update that removes an unused button and adds a little error checking to start/end frames of sequences.

    PS. If anyone is having problems, please email me those problems. I've been trying to clean up some of the code and add some error checking... and those things that are most bothersome to the most people I'll try to address first. My attention is a little divided at the moment, but I'll get around to updates sooner or later.
  • shawnolson
  • achmedthesnake
    Offline / Send Message
    achmedthesnake polycounter lvl 17
    ummm encountered a small problem when exporting (in using 3dsmax2008 )
    exporting the model works perfectly - but when trying to export the texture - the error appears:

    Problem figuring out outputdir for C:/Programs Files <x86>\Steam\steamapps\eli_roberto\team fortress 2\tf\materials/custom_hats/square_hat/square_hat

    - it creates a tga and a batch file in the right folder but nthn else :( and i have steam open and everything...

    any suggests?
  • achmedthesnake
    Offline / Send Message
    achmedthesnake polycounter lvl 17
    **update**
    got it working by compiling the tga outside of the tools in vftlib (not really solved) but it works for the moment...
    - also tried it out in the new tf2 items test map and all seems okay (its just a cube w/ a diffuse texture for testing purposes)
    my first fake item actually in game yahhooo! - thanks for making much moar streamlined and easier shawn!
    tf2_test_sucess.jpg
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    encountered a small problem when exporting (in using 3dsmax2008 )
    exporting the model works perfectly - but when trying to export the texture - the error appears:

    Problem figuring out outputdir for C:/Programs Files <x86>\Steam\steamapps\eli_roberto\team fortress 2\tf\materials/custom_hats/square_hat/square_hat

    - it creates a tga and a batch file in the right folder but nthn else :( and i have steam open and everything...

    any suggests?

    This happens when the output folder doesn't exist. In this case, the path C:/Programs Files <x86>\Steam\steamapps\eli_roberto\team fortress 2\tf\materials/custom_hats/square_hat/square_hat does not exist at compile time... there are a few solutions:
    1. Make sure that path exists before running the exporter.
    2. Run 3ds as Administrator (might solve it)
    3. Run the batch file as administrator.
    #1 is the best solution.

    Just to clarify for everyone, you'll need to create two (2) sets of folders for your models in the file system. The first is in the SDK ... set the target materials and models folders. The second is the matching folder paths in the game's final materials and models folders.

    I suggest that you make a folder (or set of folders) that your model projects share so that you don't have to create the paths all too often. I personally would make the material paths in the tool something like custom_hats/square_hats (or in this case custom_hats/eli_roberto ) and always use that path in your own custom hat projects... that way you would have a common repositiory for your work, avoid namespace problems, and dont' have to continuously make folders when you make a new model.

    I hope this makes sense. I'll expand the docs sometime soon.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    Updated to version 0.983 today. Fixed a bug in the texture exporter if your material path folder names had a period (.) in them (which might be possible if you namespace your paths with your domain name). A couple other fixes in the changelog.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    I've been busy building props for my current project and decided to take a break and share a new video giving an overview on making LODs using WWMT. The preview graphic Youtube chose isn't really enticing... but maybe that just helps my voice seem a little less monotonous in comparison!

    Also, I added docs to go along with it at http://wallworm.com/projects/utilities/docs/using/generate_lods.html

    [ame]http://www.youtube.com/watch?v=d9sStyB7SVY[/ame]
  • MattLichy
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    MattLichy wrote: »
    Nice find Matt. :thumbup: It's certainly an option for now.

    The one that Michael Little is building for Convexity will be more viable, however, since it is going to have some features specifically for use in WWMT that give you control over what's going on. I don't know when he'll have it ready, though. I know he's been pretty busy on the next version... which will include the Collision Hull tool to which I'm refering. His new version is supposed to come in a couple of flavors, including one that is free.

    From all the emails I've gotten about WWMT in the last few months, I know how useful it is for many of you. I'm surprised that the same crowd isn't using Convexity more! Maybe the price? I know that I was hesitant to buy it when I first did... but I'm certainly glad I did. Hopefully when he's released the free version it will grow in user base... Just go to the video section on his site and watch the Side Wall Editor video and the Convexity Basics (they are a bit out-of-date from his current version but demonstrate some of the features)!

    While I'm on here... is there any feature to WWMT that anyone feels is missing? The most common thing so far have been emails about handling gibs somehow. Also prop_data ... but I can't really think of ways to integrate them simply. One option I've thought of is just a big text field where you can type in any value that WWMT doesn't handle...

    And just to ramble a little bit: I received an email from the great Jed Master a few weeks ago regarding his SMD exporter (I was bothering him with another feature request). I was asking for something that would make the usage of Max's Render to Texture Auto Unwrap more automated in the WWMT workflow. He said it "might work for a mapper wanting to make a quick and dirty prop but to be honest, no modeller worth his salt will use it."

    That stuck with me and forced me to spend some time learning more proper UVW habits. So I wanted to share a couple useful videos that helped me tremendously with my recent quest to fill a level with my own models that are not just "quick and dirty" texturing.
    I know the links are random... but of the videos I've watched lately, they were very good for someone (like me) who never really spent as much time as he should learning the texturing aspect. (or, like me, is self-taught...)

    And, though I'm certain everyone here already has and uses them, I've come to find Renderhjs's Textools invaluable in the modeling projects I'm working on.

    Anyway, these things aren't all related to WWMT directly, but they are precursors to good models that you would use WWMT to export. I thought they'd be good resources for some of you.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    There's a new update.


    Version 0.984 released on 02-01-2011
    • Added new LOD Camera functions in the Utilities rollout. Documentation not yet loaded. What you can do is view the model with this camera, and it will change the LOD mesh based on the distance and your current LOD switch distances as you move the camera around. This helps you get an idea if the mesh resolution is too dense/sparse and how the textures work as you move in and out.
    • Fixed UI bug where the last LOD in the LOD list would not fill details for LOD upon creation or reloading.
    • Added Show/Hide Collision Mesh buttons in the Utilities Rollout.
    • Made a change in the LOD generator procedure. Previously, LOD models were "frozen" upon creation. That no longer happens. They are still hidden at generation time, but can now be selected when unhid. This was important to make it easier to run the "Generate" for the MultiRes modifier of each in animated models. It was also necessary to make the new LOD Camera more useful so that textures can show up.
    I didn't have time to test it in anything other than Max 2011. I'm assuming this works fine back to 2008 but won't know for sure until I test it later in the week.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    There was a MAXScript error in the version I loaded last night. It's been updated to version 0.985. The error popped up when you moved the new LOD camera. That's what you get for doing MAXScript to 3 AM.

    Here is the new LOD camera.

    [ame]http://www.youtube.com/watch?v=XLSDpKdWZoE[/ame]
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    There's a new update:

    Version 0.986 released on 02-07-2011

    •Added Attachment Rollout.
    •Added UI entry for WWMT to create button in toolbar or menu. Installer is now in the Settings floater.
    •Fixed a MAXScript error when reloading a model that has LODs.
    •Fixed MAXScript error that occured in Generating LODs in older versions of Max.
    •Fixed texture exporter ui bug where the names of bitmaps were sometimes not shown.
    •Removed the title rollout and moved WWMT logo to About Section.
    •Added new Help links in some rollouts.
    •Replaced credits in tool to links for credits because UI is starting to fill up.
    •Removed some more of the items printed to the MAXScript listener when files structs are loaded.
    •Added more informative responses when various errors occur (like when exporting textures fail).

    The $attachments feature is a productive new addition. I'm sure that the second item for adding WWMT to the UI is useful... as it's something I've gotten a lot of emails about.

    I added brief docs on the attachment tools... will load more when I get time.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    Version 0.9871 released on 02-08-2011

    •Fixed bug where the collision hull was not animating with the bones designated in the mesh's skin modifier in models that only had one collision hull. Note that this was introduced in the 0.987 fix that addressed the 'EXCEPTION_ACCESS_VIOLATION' (assert: 1) compile problem (see below). Now both issues are resolved.

    Version 0.987 released on 02-08-2011

    •Fixed bug when trying to export a model that had multiple collision hull objects and also using the $masscenter gizmo. This bug was causing the following compile error: 'EXCEPTION_ACCESS_VIOLATION' (assert: 1).
    •Fixed bug when picking a pre-existing model that was previously given an $attachment that was not given a parent bone.
    •Fixed bug when picking a pre-existing model that was previously given a collision hull which was then deleted from the scene.
    •Added $contents selection.
    •Added $inertia for collision hulls.
    •Added $damping for collision hulls.
    •Added $drag for collision hulls.
    •Replaced credits to Michael Little and Jed since the UI still has space for it.

    I'll be updating the docs pages with more up-to-date ui icons and tutorials on usage over the next few days.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    Version 0.988 released on 02-12-2011

    •Added support for Cannonfodder's SMD exporter. To use, make sure you download Version 2.04 or later. Note that version 2.04 is not yet available on Cannonfodder's site... but when he has released the new version you will be able to use it with WWMT.
    •Added new Settings controller to choose which SMD exporter you want to use. You can now choose between the Wunderboy Exporter or Cannonfodder's exporter. The default is the Wunderboy exporter.
    •Updated Texture exporter to create the paths to the material export if MAXScript can write to the directories.
    •Updated texture export error checking to give more informative explanations for errors.
    •Added new model export checks for folder paths. WWMT will then try to create the path. If the export path for a model does not exist, the exporter will fail and prompt you to make that path.
    •Added new model export checks for materials on models and collision hulls. If there are not materials, the export will fail and prompt you to add materials.

    Other changes include updated docs including a new one on Compile Errors.
  • shawnolson
    Offline / Send Message
    shawnolson polycounter lvl 13
    For those of you sick of updates, here's some more! Thanks to everyone who's provided feedback over the last few months on this... it's zeroing in on completion. When Jed has a new version of his SMD Exporter out, I'll release the final version.




    Version 0.991 released on 02-15-2011
    • Added Auto Hull to Collision Hull & Physics Rollout. When checked, the tool does not make a separate collision hull SMD. The QC then uses the root model SMD for the collision hull.
    • Added Process CM to Collision Hull & Physics Rollout. When checked, each mesh and Element of each mesh is given a unique smoothing group. Needed if you want $concave and haven't prepared the mesh. Each mesh in collision hull is also given a material with a diffuse Bitmap and made non-renderable.
    • Fixed UI bug where some collision rollout items were not activating until after the collision hull was picked.
    Version 0.99 released on 02-14-2011




    NOTE: The 0.99 Update makes significant changes to the UI of Wall Worm Model Tools. The documentation may not reflect all these changes!
    • Optimized entire UI. Many functions are no longer where they were in previous versions. As such, the docs currently do not match the tool.
      • Many Rollouts Renamed.
      • Picking main model, setting base QC settings and the Run Export button now consolidated in the first Rollout which is now called "Model & Basic QC".
      • Collision Hull and Physics controls consolidated into own rollout.
      • LOD Generator, $shadowlod and LOD Camera controls placed into own rollout.
      • $illumposition now in Lighting & Miscellaneous
      • More changes. The docs now reflect most of these UI changes.
    • Fixed export bug where Sequence SMDs were not properly saved if using the Wunderboy SMD Exporter. This was a bug caused by bad logic added to the WWMT code in the 0.988 update.
    • Model name now will automatically convert periods and spaces to underscores.
    • Added $jointconstrain. If checked, the QC will include $jointconstrain lines in the QC for each axis of each bone the model that has Limits imposed in the IK tab of the Max Command Panel. Good for use in Rag Dolls (and reportedly Real Dolls too).
    • Tool now doesn't let you select objects as the model if not of the GeometryClass.
    • Added $rotDamping.
    • Fixed MAXScript bug where there was an exception if you deleted a mesh from the collision hull without first clicking the Del Sel button for collision hulls.
    • Fixed LOD List controls to activate the Append LOD # and + Sel to LOD # buttons when you have clicked the Pick LOD buttons.
    • Fixed + Sel to LOD button to work on all objects that have been selected. Previously, it was only adding a single object at a time.
    • Updated naming of most variables and functions in WWMT to have a prefix of wwmt_ to avoid namespace conflicts with other variables and functions.
13
Sign In or Register to comment.